tizen 2.4 release accepted/tizen_2.4_mobile accepted/tizen/2.4/mobile/20151029.041532 submit/tizen_2.4/20151028.062620 tizen_2.4_mobile_release
authorjk7744.park <jk7744.park@samsung.com>
Sat, 24 Oct 2015 06:39:50 +0000 (15:39 +0900)
committerjk7744.park <jk7744.park@samsung.com>
Sat, 24 Oct 2015 06:39:50 +0000 (15:39 +0900)
459 files changed:
.gitignore [new file with mode: 0644]
CMakeLists.txt [new file with mode: 0755]
LICENSE [new file with mode: 0644]
class0/CMakeLists.txt [new file with mode: 0755]
class0/edje/msg_class0.edc [new file with mode: 0644]
class0/msg-ui-class0-main.c [new file with mode: 0755]
class0/msg-ui-class0-main.h [new file with mode: 0755]
common/CMakeLists.txt [new file with mode: 0755]
common/data/edc_image/00_MessageBubble_date_bg.png [new file with mode: 0755]
common/data/edc_image/00_button_01_bg.#.png [new file with mode: 0644]
common/data/edc_image/00_button_01_bg_dim_ef.#.png [new file with mode: 0644]
common/data/edc_image/00_button_01_bg_ef.#.png [new file with mode: 0644]
common/data/edc_image/00_button_01_bg_focus.#.png [new file with mode: 0644]
common/data/edc_image/00_button_01_bg_press_ef.#.png [new file with mode: 0644]
common/data/edc_image/00_button_delete.png [new file with mode: 0644]
common/data/edc_image/00_button_delete_dim_ef.png [new file with mode: 0644]
common/data/edc_image/00_button_delete_ef.png [new file with mode: 0644]
common/data/edc_image/00_circle_button_bg.png [new file with mode: 0644]
common/data/edc_image/00_circle_button_focus.png [new file with mode: 0644]
common/data/edc_image/00_focus_01.#.png [new file with mode: 0644]
common/data/edc_image/00_list_group_bg.#.png [new file with mode: 0644]
common/data/edc_image/00_list_group_bg.png [new file with mode: 0644]
common/data/edc_image/00_list_group_bg_bottom.#.png [new file with mode: 0644]
common/data/edc_image/00_list_group_bg_bottom.png [new file with mode: 0644]
common/data/edc_image/00_list_group_bg_bottom_ef.#.png [new file with mode: 0644]
common/data/edc_image/00_list_group_bg_bottom_focus.png [new file with mode: 0755]
common/data/edc_image/00_list_group_bg_bottom_press.png [new file with mode: 0755]
common/data/edc_image/00_list_group_bg_center.#.png [new file with mode: 0644]
common/data/edc_image/00_list_group_bg_center.png [new file with mode: 0644]
common/data/edc_image/00_list_group_bg_center_ef.#.png [new file with mode: 0644]
common/data/edc_image/00_list_group_bg_center_focus.png [new file with mode: 0755]
common/data/edc_image/00_list_group_bg_center_press.png [new file with mode: 0755]
common/data/edc_image/00_list_group_bg_ef.#.png [new file with mode: 0644]
common/data/edc_image/00_list_group_bg_press.png [new file with mode: 0755]
common/data/edc_image/00_list_group_bg_top.#.png [new file with mode: 0644]
common/data/edc_image/00_list_group_bg_top.png [new file with mode: 0644]
common/data/edc_image/00_list_group_bg_top_ef.#.png [new file with mode: 0644]
common/data/edc_image/00_list_group_bg_top_focus.png [new file with mode: 0755]
common/data/edc_image/00_list_group_bg_top_press.png [new file with mode: 0755]
common/data/edc_image/00_progress_bar.png [new file with mode: 0644]
common/data/edc_image/00_progress_bg.png [new file with mode: 0755]
common/data/edc_image/00_search_btn_press.#.png [new file with mode: 0644]
common/data/edc_image/00_search_edit_field_bg.#.png [new file with mode: 0644]
common/data/edc_image/00_search_edit_field_bg.png [new file with mode: 0644]
common/data/edc_image/00_search_edit_field_selected.#.png [new file with mode: 0644]
common/data/edc_image/00_title_bg.#.png [new file with mode: 0755]
common/data/edc_image/00_title_bg.png [new file with mode: 0755]
common/data/edc_image/00_title_press.#.png [new file with mode: 0755]
common/data/edc_image/00_title_press.png [new file with mode: 0755]
common/data/edc_image/00_video_play.png [new file with mode: 0644]
common/data/edc_image/M01_bg_style_default.png [new file with mode: 0755]
common/data/edc_image/M01_btn_schedule.png [new file with mode: 0755]
common/data/edc_image/M01_btn_translate.png [new file with mode: 0644]
common/data/edc_image/M01_btn_warning.png [new file with mode: 0755]
common/data/edc_image/M01_circle_button.png [new file with mode: 0644]
common/data/edc_image/M01_circle_button_delete.png [new file with mode: 0644]
common/data/edc_image/M01_circle_button_delete_dim.png [new file with mode: 0644]
common/data/edc_image/M01_circle_button_delete_press.png [new file with mode: 0644]
common/data/edc_image/M01_circle_button_dim.png [new file with mode: 0644]
common/data/edc_image/M01_circle_button_press.png [new file with mode: 0644]
common/data/edc_image/M01_file_bg.#.png [new file with mode: 0755]
common/data/edc_image/M01_file_bg_ef.#.png [new file with mode: 0755]
common/data/edc_image/M01_icon_play.png [new file with mode: 0644]
common/data/edc_image/M01_list_bubble_bg.#.png [new file with mode: 0644]
common/data/edc_image/M01_list_circle_thumbnail_bg.png [new file with mode: 0644]
common/data/edc_image/M01_list_swipe_left.#.png [new file with mode: 0644]
common/data/edc_image/M01_list_swipe_right.#.png [new file with mode: 0644]
common/data/edc_image/M01_messagebubble_bg_receive_01_bg_focus.#.png [new file with mode: 0644]
common/data/edc_image/M01_messagebubble_bg_sent_01_bg_focus.#.png [new file with mode: 0644]
common/data/edc_image/M01_sweep_call.png [new file with mode: 0644]
common/data/edc_image/M01_sweep_message.png [new file with mode: 0644]
common/data/edc_image/T02_progress_bar.png [new file with mode: 0755]
common/data/edc_image/T02_progress_bar_button.png [new file with mode: 0755]
common/data/edc_image/T02_progress_bar_button_pressed.png [new file with mode: 0755]
common/data/edc_image/T02_progress_bg.png [new file with mode: 0755]
common/data/edc_image/badge_bg_draft.png [new file with mode: 0755]
common/data/edc_image/badge_icon_draft_pencil.png [new file with mode: 0755]
common/data/edc_image/badge_icon_failed.png [new file with mode: 0755]
common/data/edc_image/btn_send_message_sim_1.png [new file with mode: 0755]
common/data/edc_image/btn_send_message_sim_2.png [new file with mode: 0755]
common/data/edc_image/btn_send_message_sim_bg.png [new file with mode: 0755]
common/data/edc_image/btn_send_message_sim_data.png [new file with mode: 0755]
common/data/edc_image/btn_send_message_sim_heart.png [new file with mode: 0755]
common/data/edc_image/btn_send_message_sim_home.png [new file with mode: 0755]
common/data/edc_image/btn_send_message_sim_internet.png [new file with mode: 0755]
common/data/edc_image/btn_send_message_sim_messages.png [new file with mode: 0755]
common/data/edc_image/btn_send_message_sim_office.png [new file with mode: 0755]
common/data/edc_image/btn_send_message_sim_phone.png [new file with mode: 0755]
common/data/edc_image/bubble_with_search_result_receive.#.png [new file with mode: 0644]
common/data/edc_image/bubble_with_search_result_send.#.png [new file with mode: 0644]
common/data/edc_image/core_button_effect_normal.#.png [new file with mode: 0755]
common/data/edc_image/core_button_effect_pressed.#.png [new file with mode: 0755]
common/data/edc_image/core_focus.#.png [new file with mode: 0755]
common/data/edc_image/core_icon_back.png [new file with mode: 0644]
common/data/edc_image/core_icon_badge_container.#.png [new file with mode: 0755]
common/data/edc_image/core_icon_container.png [new file with mode: 0755]
common/data/edc_image/core_icon_expand_close.png [new file with mode: 0644]
common/data/edc_image/core_navigation_bar_bg.png [new file with mode: 0644]
common/data/edc_image/core_navigation_bar_icon_arrow.png [new file with mode: 0644]
common/data/edc_image/core_tabs_fade_out_ef_l.#.png [new file with mode: 0644]
common/data/edc_image/core_tabs_fade_out_ef_r.#.png [new file with mode: 0644]
common/data/edc_image/core_theme_bg_01.png [new file with mode: 0644]
common/data/edc_image/full_player_button_01.png [new file with mode: 0755]
common/data/edc_image/full_player_button_02.png [new file with mode: 0755]
common/data/edc_image/full_player_button_next.png [new file with mode: 0644]
common/data/edc_image/full_player_button_pause.png [new file with mode: 0644]
common/data/edc_image/full_player_button_play.png [new file with mode: 0644]
common/data/edc_image/full_player_button_prev.png [new file with mode: 0644]
common/data/edc_image/masking_message_list.png [new file with mode: 0755]
common/data/edc_image/masking_message_recipient.png [new file with mode: 0755]
common/data/edc_image/messages_bubble_bg.#.png [new file with mode: 0644]
common/data/edc_image/messages_bubble_bg_receive.#.png [new file with mode: 0644]
common/data/edc_image/messages_bubble_bg_send.#.png [new file with mode: 0644]
common/data/edc_image/messages_bubble_line_draft.#.png [new file with mode: 0644]
common/data/edc_image/messages_bubble_line_send.#.png [new file with mode: 0644]
common/data/edc_image/messages_conversation_thumb_masking.png [new file with mode: 0644]
common/data/edc_image/messages_date_divider.#.png [new file with mode: 0644]
common/data/edc_image/messages_icon_bg.png [new file with mode: 0644]
common/data/edc_image/messages_icon_draft.png [new file with mode: 0644]
common/data/edc_image/messages_icon_failed.png [new file with mode: 0644]
common/data/edc_image/messages_list_thumb_image_bg.png [new file with mode: 0644]
common/data/edc_image/messages_state_ic_lock.png [new file with mode: 0644]
common/data/edc_image/titlemenu_mask_left.png [new file with mode: 0755]
common/data/edc_image/titlemenu_mask_right.png [new file with mode: 0755]
common/data/edj_image_list/00_icon_select_all.png [new file with mode: 0644]
common/data/edj_image_list/60_myfiles_file_etc.png [new file with mode: 0755]
common/data/edj_image_list/M01_attach_icon_dcm_contacts.png [new file with mode: 0644]
common/data/edj_image_list/M01_attach_icon_recorded_video.png [new file with mode: 0644]
common/data/edj_image_list/M01_attach_icon_text_templates.png [new file with mode: 0644]
common/data/edj_image_list/M01_btn_all.png [new file with mode: 0755]
common/data/edj_image_list/M01_btn_location.png [new file with mode: 0644]
common/data/edj_image_list/M01_btn_message.png [new file with mode: 0755]
common/data/edj_image_list/M01_btn_sender.png [new file with mode: 0755]
common/data/edj_image_list/M01_button_contact.png [new file with mode: 0644]
common/data/edj_image_list/M01_button_recent.png [new file with mode: 0755]
common/data/edj_image_list/M01_icon_Unsupported.png [new file with mode: 0755]
common/data/edj_image_list/M01_icon_bubble_drm.png [new file with mode: 0755]
common/data/edj_image_list/M01_icon_composer.png [new file with mode: 0644]
common/data/edj_image_list/M01_icon_message_status_mms_read_n.png [new file with mode: 0644]
common/data/edj_image_list/M01_icon_message_status_mms_sent_n.png [new file with mode: 0644]
common/data/edj_image_list/M01_icon_message_status_mms_unread_n.png [new file with mode: 0644]
common/data/edj_image_list/M01_icon_message_status_sms_read_n.png [new file with mode: 0644]
common/data/edj_image_list/M01_icon_message_status_sms_sent_n.png [new file with mode: 0644]
common/data/edj_image_list/M01_icon_message_status_sms_unread_n.png [new file with mode: 0644]
common/data/edj_image_list/M01_icon_send_schedule.png [new file with mode: 0755]
common/data/edj_image_list/M01_icon_send_translator.png [new file with mode: 0755]
common/data/edj_image_list/M01_title_icon_compose.png [new file with mode: 0755]
common/data/edj_image_list/M02_icon_invalid.png [new file with mode: 0644]
common/data/edj_image_list/U01_icon_drm.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_eml.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_etc.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_excel.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_file_zip.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_html.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_hwp.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_pdf.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_ppt.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_rss.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_svg.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_swf.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_text.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_tpk.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_vcf.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_vcs.png [new file with mode: 0755]
common/data/edj_image_list/U01_icon_word.png [new file with mode: 0755]
common/data/edj_image_list/U01_list_icon_amr.png [new file with mode: 0755]
common/data/edj_image_list/U01_list_icon_image.png [new file with mode: 0755]
common/data/edj_image_list/U01_list_icon_mp3.png [new file with mode: 0755]
common/data/edj_image_list/U01_list_icon_mp4.png [new file with mode: 0755]
common/data/edj_image_list/attach_icon.png [new file with mode: 0755]
common/data/edj_image_list/badge_icon_draft_pencil.png [new file with mode: 0755]
common/data/edj_image_list/btn_conversation_emotion.png [new file with mode: 0755]
common/data/edj_image_list/btn_conversation_message_sending.png [new file with mode: 0755]
common/data/edj_image_list/btn_conversation_mms_message_sending.png [new file with mode: 0755]
common/data/edj_image_list/core_button_add.png [new file with mode: 0644]
common/data/edj_image_list/icon_emotion_angry.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_confused.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_crying.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_disappointed.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_embarrassed.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_happy.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_heart.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_kiss.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_laughing.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_no_speak.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_pokerface.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_raised_eyebrow.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_sad.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_stick_out_tongue.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_sunglasses.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_surprised.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_wink.png [new file with mode: 0755]
common/data/edj_image_list/icon_emotion_yelling.png [new file with mode: 0755]
common/data/edj_image_list/masking_message_list.png [new file with mode: 0755]
common/data/edj_image_list/messages_add_contact.png [new file with mode: 0644]
common/data/edj_image_list/messages_add_object.png [new file with mode: 0644]
common/data/edj_image_list/title_thumbnail_image.png [new file with mode: 0755]
common/data/edj_image_list/title_thumbnail_image_bg.png [new file with mode: 0755]
common/data/edj_image_list/title_thumbnail_image_group.png [new file with mode: 0755]
common/data/icons/noti_emergency_mode.png [new file with mode: 0755]
common/data/icons/org.tizen.message.png [new file with mode: 0755]
common/data/icons/status_bar_cancel_message.png [new file with mode: 0755]
common/data/icons/status_bar_delivery_report_message.png [new file with mode: 0755]
common/data/icons/status_bar_message.png [new file with mode: 0755]
common/data/icons/status_bar_read_report_message.png [new file with mode: 0755]
common/data/icons/status_bar_sim_card_full.png [new file with mode: 0755]
common/data/icons/status_bar_voicemail.png [new file with mode: 0755]
common/data/images/07_message_sim.png [new file with mode: 0755]
common/data/images/dotted_line_divider.png [new file with mode: 0644]
common/data/images/list_ic_user_thumb_masking.png [new file with mode: 0755]
common/data/images/message_floating_button_icon.png [new file with mode: 0644]
common/data/images/messages_list_thumb_image_CB.png [new file with mode: 0644]
common/data/images/messages_list_thumb_image_OTA.png [new file with mode: 0644]
common/data/images/messages_list_thumb_image_bg.png [new file with mode: 0644]
common/data/images/messages_list_thumb_image_multi.png [new file with mode: 0644]
common/data/images/messages_list_thumb_image_push.png [new file with mode: 0644]
common/data/images/messages_list_thumb_image_single.png [new file with mode: 0644]
common/data/images/title_thumbnail_image.png [new file with mode: 0755]
common/data/images/title_thumbnail_image_group.png [new file with mode: 0755]
common/data/msg_bubble_entry.edc [new file with mode: 0755]
common/data/msg_button.edc [new file with mode: 0755]
common/data/msg_common.edc [new file with mode: 0755]
common/data/msg_custom_winset.edc [new file with mode: 0755]
common/data/msg_genlist.edc [new file with mode: 0755]
common/data/msg_genlist_macro.edc [new file with mode: 0755]
common/data/msg_image_macro.edc [new file with mode: 0755]
common/data/msg_images.edc [new file with mode: 0755]
common/data/sound/Tizen_Touch.wav [new file with mode: 0755]
common/data/sound/button-pressed.wav [new file with mode: 0755]
common/msg-file-util.c [new file with mode: 0755]
common/msg-file-util.h [new file with mode: 0755]
common/msg-system-util.c [new file with mode: 0755]
common/msg-system-util.h [new file with mode: 0755]
common/msg-ui-bundle.h [new file with mode: 0755]
common/msg-ui-color.h [new file with mode: 0644]
common/msg-ui-common-app-control.h [new file with mode: 0644]
common/msg-ui-common-utility.c [new file with mode: 0755]
common/msg-ui-common-utility.h [new file with mode: 0755]
common/msg-ui-content-utility.c [new file with mode: 0755]
common/msg-ui-content-utility.h [new file with mode: 0755]
common/msg-ui-db-util.c [new file with mode: 0755]
common/msg-ui-db-util.h [new file with mode: 0644]
common/msg-ui-image-resource.h [new file with mode: 0755]
common/msg-ui-smil-interface.c [new file with mode: 0755]
common/msg-ui-smil-interface.h [new file with mode: 0755]
common/msg-ui-smil-parser.c [new file with mode: 0755]
common/msg-ui-smil-parser.h [new file with mode: 0644]
common/msg-ui-util.h [new file with mode: 0755]
common/msg-vcard-utils.c [new file with mode: 0755]
common/msg-vcard-utils.h [new file with mode: 0755]
composer/CMakeLists.txt [new file with mode: 0755]
composer/data/composer_edc/composer_main.edc [new file with mode: 0755]
composer/data/composer_edc/msg-ui-composer-attachment.edc [new file with mode: 0755]
composer/data/composer_edc/msg-ui-composer-body.edc [new file with mode: 0755]
composer/data/composer_edc/msg-ui-composer-bubble.edc [new file with mode: 0755]
composer/data/composer_edc/msg-ui-composer-custom.edc [new file with mode: 0755]
composer/data/composer_edc/msg-ui-composer-data.edc [new file with mode: 0755]
composer/data/composer_edc/msg-ui-composer-main.edc [new file with mode: 0755]
composer/data/composer_edc/msg-ui-composer-recipient.edc [new file with mode: 0755]
composer/data/composer_edc/msg-ui-composer-subject.edc [new file with mode: 0755]
composer/include/msg-ui-composer-attachment.h [new file with mode: 0755]
composer/include/msg-ui-composer-body-callback.h [new file with mode: 0755]
composer/include/msg-ui-composer-body-page.h [new file with mode: 0644]
composer/include/msg-ui-composer-body.h [new file with mode: 0755]
composer/include/msg-ui-composer-bubble.h [new file with mode: 0755]
composer/include/msg-ui-composer-common.h [new file with mode: 0755]
composer/include/msg-ui-composer-data.h [new file with mode: 0755]
composer/include/msg-ui-composer-external.h [new file with mode: 0755]
composer/include/msg-ui-composer-main.h [new file with mode: 0755]
composer/include/msg-ui-composer-message-data.h [new file with mode: 0755]
composer/include/msg-ui-composer-message.h [new file with mode: 0755]
composer/include/msg-ui-composer-pageduration.h [new file with mode: 0755]
composer/include/msg-ui-composer-popup.h [new file with mode: 0755]
composer/include/msg-ui-composer-predictsearch.h [new file with mode: 0755]
composer/include/msg-ui-composer-recipient-callback.h [new file with mode: 0755]
composer/include/msg-ui-composer-recipient.h [new file with mode: 0755]
composer/include/msg-ui-composer-res.h [new file with mode: 0755]
composer/include/msg-ui-composer-subject.h [new file with mode: 0755]
composer/src/bubble/msg-ui-composer-bubble-callback.c [new file with mode: 0755]
composer/src/bubble/msg-ui-composer-bubble-list.c [new file with mode: 0755]
composer/src/bubble/msg-ui-composer-bubble-main.c [new file with mode: 0755]
composer/src/bubble/msg-ui-composer-bubble-util.c [new file with mode: 0755]
composer/src/external/msg-ui-composer-external.c [new file with mode: 0755]
composer/src/gadget/msg-ui-composer-gadget.c [new file with mode: 0755]
composer/src/message/msg-ui-composer-message.c [new file with mode: 0755]
composer/src/ui-composer/msg-ui-composer-attachment.c [new file with mode: 0755]
composer/src/ui-composer/msg-ui-composer-body-callback.c [new file with mode: 0755]
composer/src/ui-composer/msg-ui-composer-body-page.c [new file with mode: 0755]
composer/src/ui-composer/msg-ui-composer-body.c [new file with mode: 0755]
composer/src/ui-composer/msg-ui-composer-common.c [new file with mode: 0755]
composer/src/ui-composer/msg-ui-composer-main.c [new file with mode: 0755]
composer/src/ui-composer/msg-ui-composer-pageduration.c [new file with mode: 0755]
composer/src/ui-composer/msg-ui-composer-popup.c [new file with mode: 0755]
composer/src/ui-composer/msg-ui-composer-predictsearch.c [new file with mode: 0755]
composer/src/ui-composer/msg-ui-composer-recipient-callback.c [new file with mode: 0755]
composer/src/ui-composer/msg-ui-composer-recipient.c [new file with mode: 0755]
composer/src/ui-composer/msg-ui-composer-subject.c [new file with mode: 0755]
composer/src/util/msg-ui-composer-util.c [new file with mode: 0755]
composer/src/util/msg-ui-composer-util.h [new file with mode: 0755]
dialog/CMakeLists.txt [new file with mode: 0755]
dialog/message-dialog.c [new file with mode: 0755]
dialog/message-dialog.h [new file with mode: 0755]
main/CMakeLists.txt [new file with mode: 0755]
main/message.c [new file with mode: 0755]
main/message.h [new file with mode: 0755]
main/org.tizen.message-portrait.edc [new file with mode: 0755]
main/po/CMakeLists.txt [new file with mode: 0755]
main/po/ar.po [new file with mode: 0644]
main/po/as.po [new file with mode: 0644]
main/po/az.po [new file with mode: 0644]
main/po/bg.po [new file with mode: 0644]
main/po/bn.po [new file with mode: 0644]
main/po/ca.po [new file with mode: 0644]
main/po/cs.po [new file with mode: 0644]
main/po/da.po [new file with mode: 0644]
main/po/de.po [new file with mode: 0644]
main/po/el_GR.po [new file with mode: 0644]
main/po/en.po [new file with mode: 0644]
main/po/en_PH.po [new file with mode: 0644]
main/po/en_US.po [new file with mode: 0644]
main/po/es_ES.po [new file with mode: 0644]
main/po/es_US.po [new file with mode: 0644]
main/po/et.po [new file with mode: 0644]
main/po/eu.po [new file with mode: 0644]
main/po/fa.po [new file with mode: 0644]
main/po/fi.po [new file with mode: 0644]
main/po/fr.po [new file with mode: 0644]
main/po/fr_CA.po [new file with mode: 0644]
main/po/ga.po [new file with mode: 0644]
main/po/gl.po [new file with mode: 0644]
main/po/gu.po [new file with mode: 0644]
main/po/hi.po [new file with mode: 0644]
main/po/hr.po [new file with mode: 0644]
main/po/hu.po [new file with mode: 0644]
main/po/hy.po [new file with mode: 0644]
main/po/id.po [new file with mode: 0644]
main/po/is.po [new file with mode: 0644]
main/po/it.po [new file with mode: 0644]
main/po/it_IT.po [new file with mode: 0644]
main/po/ja_JP.po [new file with mode: 0644]
main/po/ka.po [new file with mode: 0644]
main/po/kk.po [new file with mode: 0644]
main/po/km.po [new file with mode: 0644]
main/po/kn.po [new file with mode: 0644]
main/po/ko_KR.po [new file with mode: 0644]
main/po/lo.po [new file with mode: 0644]
main/po/lt.po [new file with mode: 0644]
main/po/lv.po [new file with mode: 0644]
main/po/mk.po [new file with mode: 0644]
main/po/ml.po [new file with mode: 0644]
main/po/mr.po [new file with mode: 0644]
main/po/ms.po [new file with mode: 0644]
main/po/my.po [new file with mode: 0644]
main/po/my_MM.po [new file with mode: 0644]
main/po/nb.po [new file with mode: 0644]
main/po/ne.po [new file with mode: 0644]
main/po/nl.po [new file with mode: 0644]
main/po/or.po [new file with mode: 0644]
main/po/pa.po [new file with mode: 0644]
main/po/pl.po [new file with mode: 0644]
main/po/pt_BR.po [new file with mode: 0644]
main/po/pt_PT.po [new file with mode: 0644]
main/po/ro.po [new file with mode: 0644]
main/po/ru_RU.po [new file with mode: 0644]
main/po/si.po [new file with mode: 0644]
main/po/sk.po [new file with mode: 0644]
main/po/sl.po [new file with mode: 0644]
main/po/sr.po [new file with mode: 0644]
main/po/sv.po [new file with mode: 0644]
main/po/ta.po [new file with mode: 0644]
main/po/te.po [new file with mode: 0644]
main/po/th.po [new file with mode: 0644]
main/po/tl.po [new file with mode: 0644]
main/po/tr_TR.po [new file with mode: 0644]
main/po/uk.po [new file with mode: 0644]
main/po/ur.po [new file with mode: 0644]
main/po/uz.po [new file with mode: 0644]
main/po/vi.po [new file with mode: 0644]
main/po/zh_CN.po [new file with mode: 0644]
main/po/zh_HK.po [new file with mode: 0644]
main/po/zh_TW.po [new file with mode: 0644]
message.efl.in [new file with mode: 0755]
message.manifest.in [new file with mode: 0755]
message.xml.in [new file with mode: 0755]
packaging/message-app-db.sql [new file with mode: 0755]
packaging/message.spec [new file with mode: 0755]
run.sh [new file with mode: 0644]
setting/CMakeLists.txt [new file with mode: 0755]
setting/include/msg-ui-setting-callback.h [new file with mode: 0755]
setting/include/msg-ui-setting-common-util.h [new file with mode: 0755]
setting/include/msg-ui-setting-gadget.h [new file with mode: 0755]
setting/include/msg-ui-setting-main.h [new file with mode: 0755]
setting/include/msg-ui-setting-mm-message.h [new file with mode: 0755]
setting/include/msg-ui-setting-msg-service-wrapper.h [new file with mode: 0755]
setting/include/msg-ui-setting-notification.h [new file with mode: 0755]
setting/include/msg-ui-setting-text-message.h [new file with mode: 0755]
setting/include/msg-ui-setting-text-sim-card-msg.h [new file with mode: 0755]
setting/include/msg-ui-setting-types.h [new file with mode: 0755]
setting/src/main/msg-ui-setting-callback.c [new file with mode: 0755]
setting/src/main/msg-ui-setting-common-util.c [new file with mode: 0755]
setting/src/main/msg-ui-setting-gadget.c [new file with mode: 0755]
setting/src/main/msg-ui-setting-main.c [new file with mode: 0755]
setting/src/main/msg-ui-setting-msg-service-wrapper.c [new file with mode: 0755]
setting/src/multimedia/msg-ui-setting-mm-message.c [new file with mode: 0755]
setting/src/notification/msg-ui-setting-notification.c [new file with mode: 0755]
setting/src/text/msg-ui-setting-text-message.c [new file with mode: 0755]
setting/src/text/msg-ui-setting-text-service-center.c [new file with mode: 0755]
setting/src/text/msg-ui-setting-text-sim-card-msg.c [new file with mode: 0755]
setting/theme/setting_theme.edc [new file with mode: 0755]
sim_reset/CMakeLists.txt [new file with mode: 0755]
sim_reset/msg-sim-reset-main.c [new file with mode: 0755]
sim_reset/msg-sim-reset-main.h [new file with mode: 0644]
thread/include/msg-ui-thread-main.h [new file with mode: 0755]
thread/src/msg-ui-thread-callback.c [new file with mode: 0755]
thread/src/msg-ui-thread-list.c [new file with mode: 0755]
thread/src/msg-ui-thread-main.c [new file with mode: 0755]
thread/src/msg-ui-thread-util.c [new file with mode: 0755]
thread/theme/thread_genlist.edc [new file with mode: 0755]
thread/theme/thread_genlist_macro.edc [new file with mode: 0755]
ug.msg-composer-efl.include [new file with mode: 0755]
ug.msg-setting-efl.include [new file with mode: 0755]
ug.msg-viewer-efl.include [new file with mode: 0755]
viewer/CMakeLists.txt [new file with mode: 0755]
viewer/include/msg-ui-viewer-common.h [new file with mode: 0755]
viewer/include/msg-ui-viewer-main.h [new file with mode: 0755]
viewer/include/msg-ui-viewer-play-view.h [new file with mode: 0755]
viewer/include/msg-ui-viewer-summary-view.h [new file with mode: 0755]
viewer/include/msg-ui-viewer-types.h [new file with mode: 0755]
viewer/include/msg-ui-viewer-utility.h [new file with mode: 0755]
viewer/smil-player/include/msg-smil-content-manager.h [new file with mode: 0755]
viewer/smil-player/include/msg-smil-event-manager.h [new file with mode: 0755]
viewer/smil-player/include/msg-smil-player-interface.h [new file with mode: 0755]
viewer/smil-player/include/msg-smil-player.h [new file with mode: 0755]
viewer/smil-player/include/msg-smil-render.h [new file with mode: 0755]
viewer/smil-player/include/msg-smil-types.h [new file with mode: 0755]
viewer/smil-player/include/msg-smil-util.h [new file with mode: 0755]
viewer/smil-player/src/msg-smil-content-manager.c [new file with mode: 0755]
viewer/smil-player/src/msg-smil-event-manager.c [new file with mode: 0755]
viewer/smil-player/src/msg-smil-media-render.c [new file with mode: 0755]
viewer/smil-player/src/msg-smil-player-interface.c [new file with mode: 0755]
viewer/smil-player/src/msg-smil-player.c [new file with mode: 0755]
viewer/smil-player/src/msg-smil-render.c [new file with mode: 0755]
viewer/smil-player/src/msg-smil-text-render.c [new file with mode: 0755]
viewer/smil-player/src/msg-smil-util.c [new file with mode: 0755]
viewer/src/msg-ui-viewer-callback.c [new file with mode: 0755]
viewer/src/msg-ui-viewer-gadget.c [new file with mode: 0755]
viewer/src/msg-ui-viewer-main.c [new file with mode: 0755]
viewer/src/msg-ui-viewer-play-view-attachment.c [new file with mode: 0755]
viewer/src/msg-ui-viewer-play-view-main.c [new file with mode: 0755]
viewer/src/msg-ui-viewer-play-view-options.c [new file with mode: 0755]
viewer/src/msg-ui-viewer-play-view-play-controller.c [new file with mode: 0755]
viewer/src/msg-ui-viewer-summary-view-attachment.c [new file with mode: 0755]
viewer/src/msg-ui-viewer-summary-view-main.c [new file with mode: 0755]
viewer/src/msg-ui-viewer-summary-view-message.c [new file with mode: 0755]
viewer/src/msg-ui-viewer-summary-view-option.c [new file with mode: 0755]
viewer/src/msg-ui-viewer-utility.c [new file with mode: 0755]
viewer/theme/msg_viewer.edc [new file with mode: 0755]
viewer/theme/msg_viewer_custom.edc [new file with mode: 0755]
viewer/theme/msg_viewer_defines.edc [new file with mode: 0755]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..76ddce7
--- /dev/null
@@ -0,0 +1,5 @@
+.cproject
+.project
+/Tizen-Emulator
+/debugtemp
+*~
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..4e40925
--- /dev/null
@@ -0,0 +1,63 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+SET(PKGNAME ${CMAKE_PKGNAME})
+SET(CMAKE_SOURCE_COMMON_DIR "${CMAKE_SOURCE_DIR}/common")
+SET(CMAKE_SOURCE_MAIN_DIR "${CMAKE_SOURCE_DIR}/main")
+SET(CMAKE_SOURCE_THREAD_DIR "${CMAKE_SOURCE_DIR}/thread")
+SET(CMAKE_SOURCE_BUBBLE_DIR "${CMAKE_SOURCE_DIR}/bubble")
+SET(CMAKE_SOURCE_COMPOSER_DIR "${CMAKE_SOURCE_DIR}/composer")
+SET(CMAKE_SOURCE_SETTING_DIR "${CMAKE_SOURCE_DIR}/setting")
+SET(CMAKE_SOURCE_VIEWER_DIR "${CMAKE_SOURCE_DIR}/viewer")
+SET(CMAKE_SOURCE_CLASS0_DIR "${CMAKE_SOURCE_DIR}/class0")
+#SET(CMAKE_SOURCE_DIALOG_DIR "${CMAKE_SOURCE_DIR}/dialog")
+#SET(CMAKE_SOURCE_SIM_RESET_DIR "${CMAKE_SOURCE_DIR}/sim_reset")
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(BINDIR "${PREFIX}/bin")
+SET(RESDIR "${PREFIX}/res")
+SET(DATADIR ${CMAKE_INSTALL_DATADIR})
+SET(LOCALEDIR "${RESDIR}/locale")
+SET(ICONDIR "${RESDIR}/icons/default/small")
+SET(IMGDIR "${RESDIR}/images")
+SET(SNDDIR "${RESDIR}/sounds")
+SET(EDJDIR "${RESDIR}/edje")
+SET(LIBDIR "${PREFIX}/lib")
+SET(UGDIR "${LIBDIR}/ug")
+
+ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
+ADD_DEFINITIONS("-DIMGDIR=\"${IMGDIR}\"")
+ADD_DEFINITIONS("-DSNDDIR=\"${SNDDIR}\"")
+ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
+
+IF(TIZEN_VERSION MATCHES "(2.3)")
+    ADD_DEFINITIONS("-DTIZEN_2_3")
+ELSEIF(TIZEN_VERSION MATCHES "(2.4)")
+    ADD_DEFINITIONS("-DTIZEN_2_4")
+ENDIF(TIZEN_VERSION)
+
+#Enabling of the DSDS feature
+ADD_DEFINITIONS("-D_MSG_FEATURE_DSDS_ENABLED")
+
+# Add buildtime feature definitions
+SET(EDJE_CC_DEFINITIONS "")
+# If mms should be disabled, enable below feature.
+#ADD_DEFINITIONS("-D_MSG_FEATURE_MMS_DISABLE")
+#SET(EDJE_CC_DEFINITIONS ${EDJE_CC_DEFINITIONS} "-D_MSG_FEATURE_MMS_DISABLE")
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -Wall -Werror -Wno-unused -Wno-format-extra-args -Wl,--no-undefined")
+SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
+SET(CMAKE_LDFLAGS "-Wl,-zdefs" )
+
+#Add your submodule directory name
+ADD_SUBDIRECTORY(common)
+ADD_SUBDIRECTORY(main)
+ADD_SUBDIRECTORY(composer)
+ADD_SUBDIRECTORY(viewer)
+ADD_SUBDIRECTORY(setting)
+ADD_SUBDIRECTORY(class0)
+#ADD_SUBDIRECTORY(sim_reset)
+#ADD_SUBDIRECTORY(dialog)
diff --git a/LICENSE b/LICENSE
new file mode 100644 (file)
index 0000000..d645695
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+
+   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.
diff --git a/class0/CMakeLists.txt b/class0/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..5cd8be3
--- /dev/null
@@ -0,0 +1,59 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(message C)
+
+SET(MSG_UI_CLASS0 msg-ui-class0)
+SET(SRCS ./msg-ui-class0-main.c)
+SET(CMAKE_SKIP_BUILD_RPATH TRUE)
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+       SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_COMMON_DIR}
+                               ${CMAKE_SOURCE_CLASS0_DIR}
+                               /usr/include/msg-service/
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED elementary aul dlog msg-service capi-appfw-application)
+
+FOREACH(flag ${pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fpie")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+       MESSAGE("add -DTARGET")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+ADD_DEFINITIONS("-DDEBUG")
+ADD_DEFINITIONS("-DDEBUG_ON")
+ADD_DEFINITIONS("-DLCD_TYPE_WVGA")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+
+ADD_EXECUTABLE(${MSG_UI_CLASS0} ${SRCS})
+TARGET_LINK_LIBRARIES(${MSG_UI_CLASS0} ${pkgs_LDFLAGS})
+
+ADD_CUSTOM_TARGET(msg_class0.edj
+               COMMAND edje_cc -no-save ${EDJE_CC_DEFINITIONS} -id ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image
+               ${CMAKE_CURRENT_SOURCE_DIR}/edje/msg_class0.edc
+               ${CMAKE_CURRENT_SOURCE_DIR}/edje/msg_class0.edj
+               DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/edje/msg_class0.edc
+)
+
+ADD_DEPENDENCIES(${PROJECT_NAME} msg_class0.edj)
+
+INSTALL(TARGETS ${MSG_UI_CLASS0} DESTINATION bin)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/edje/msg_class0.edj DESTINATION ${EDJDIR})
+
+# install desktop file & icon
+
+# i18n
+#ADD_SUBDIRECTORY(po)
diff --git a/class0/edje/msg_class0.edc b/class0/edje/msg_class0.edc
new file mode 100644 (file)
index 0000000..df126b5
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+collections{
+       base_scale: 2.6;
+       
+       group{
+               name : "class0_viewer_layout";
+               
+               parts{
+                       part {
+                               name: "pad_left";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min : 70 0;
+                                       color: 255 255 255 255;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 0.0 1.0;
+                               }
+                       }
+                       part {
+                               name: "pad_right";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min : 70 0;
+                                       color: 255 255 255 255;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1.relative: 1.0 0.0;
+                                       rel2.relative: 1.0 1.0;
+                               }
+                       }
+                       part {
+                               name: "pad_top";
+                               type: RECT;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       color: 255 255 255 255;
+                                       fixed: 0 1;
+                                       visible: 0;
+                                       rel1 { relative: 1.0 0.0; to_x: "pad_left"; }
+                                       rel2 { relative: 0.0 0.0; to_x: "pad_right"; }
+                               }
+                       }
+                       part {
+                               name: "pad_bottom";
+                               type: RECT;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       color: 255 255 255 255;
+                                       fixed: 0 1;
+                                       visible: 0;
+                                       rel1 { relative: 1.0 1.0; to_x: "pad_left"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "pad_right"; }
+                               }
+                       }
+                       part{
+                               name:"elm.swallow.content";
+                               type: SWALLOW;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       color: 255 255 255 255;
+                                       align: 0 0;
+                                       fixed: 1 0;
+                                       rel1 { relative: 0.0 1.0;       to: "pad_top"; }
+                                       rel2 { relative: 1.0 1.0;       to: "pad_bottom"; }
+                               }
+                       }
+               }
+       }
diff --git a/class0/msg-ui-class0-main.c b/class0/msg-ui-class0-main.c
new file mode 100755 (executable)
index 0000000..6de0a7c
--- /dev/null
@@ -0,0 +1,639 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+
+#include "msg-ui-class0-main.h"
+#include "msg-ui-common-utility.h"
+
+#define __TITLE_TEXT()         dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MESSAGE")
+#define        __LEFT_BTN_TEXT()       dgettext(MESSAGE_PKGNAME, "IDS_MSG_BUTTON_DISCARD_ABB")
+#define        __RIGHT_BTN_TEXT()      dgettext(MESSAGE_PKGNAME, "IDS_MSG_BUTTON_SAVE_ABB2")
+
+static Eina_Bool __msg_ui_class0_keydown_cb(void *data, int type, void *event);
+static int __msg_ui_class0_load_msg_data(void *data);
+static void __msg_ui_class0_btn_clicked_event(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_class0_create_contents(void *data);
+static int __msg_ui_class0_create_view(void *data);
+
+static void __msg_ui_class0_win_del(void *data, Evas_Object *obj, void *event);
+static Evas_Object *__msg_ui_class0_create_win(const char *name);
+static int __msg_ui_class0_show_message(void *data);
+static void __msg_ui_class0_rotation_changed_cb(void *data, Evas_Object *obj, void *event);
+
+#define KEY_PHONE "XF86Phone"
+
+void msg_ui_class0_exit(void *data)
+{
+       D_ENTER;
+
+       struct appdata *ad = data;
+       int ret = 0;
+
+       if (ad->msgInfo != NULL) {
+               msg_release_struct(&ad->msgInfo);
+               ad->msgInfo = NULL;
+       }
+
+       if (ad->msgHandle != NULL) {
+               ret = msg_close_msg_handle(&ad->msgHandle);
+               if (ret != MSG_SUCCESS) {
+                       D_EMSG("msg_close_msg_handle() is failed !! : ret value is %d", ret);
+               }
+       }
+
+       if (ad->msgid_list) {
+               int *msgId = NULL;
+
+               EINA_LIST_FREE(ad->msgid_list, msgId)
+               {
+                       if (msgId)      free(msgId);
+               }
+               ad->msgid_list = NULL;
+       }
+
+       elm_exit();
+}
+
+static Eina_Bool __msg_ui_class0_keydown_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       if (data == NULL) {
+               D_EMSG("data is null, calling elm_exit...\n");
+               elm_exit();
+               return EINA_FALSE;
+       }
+
+       struct appdata *ad = data;
+       int *msgId = NULL;
+       int i;
+       int err = MSG_SUCCESS;
+
+       Ecore_Event_Key *ev = event;
+
+       D_MSG("KEY = %s\n", ev->keyname);
+
+       if ((!strcmp(ev->keyname, KEY_END)) || (!strcmp(ev->keyname, KEY_PHONE))) {
+               D_MSG("keyname = %s ...calling elm_exit...\n", ev->keyname);
+               if (ad->msgid_list == NULL) {
+                       elm_exit();
+                       return EINA_FALSE;
+               }
+
+               int count = eina_list_count(ad->msgid_list);
+               for (i = 0; i < count; i++) {
+                       D_MSG("app_pause() count = %d", count);
+                       msgId = eina_list_nth(ad->msgid_list, i);
+                       if (msgId == NULL) {
+                               elm_exit();
+                               return EINA_FALSE;
+                       }
+
+                       err = msg_delete_message(ad->msgHandle, *msgId);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_delete_message() is failed : err = %d", err);
+                       }
+               }
+               elm_exit();
+       }
+
+       return EINA_FALSE;
+}
+
+static int __msg_ui_class0_load_msg_data(void *data)
+{
+       struct appdata *ad = data;
+       msg_error_t err = MSG_SUCCESS;
+       int     rtn = MSG_UI_RET_ERR;
+
+       Eina_List *l = NULL, *l_next = NULL;
+       int     *msgId = 0;
+
+       if (ad->msgHandle == NULL) {
+               D_EMSG("msgHandle is NULL !!");
+               return MSG_UI_RET_ERR;
+       }
+
+       EINA_LIST_FOREACH_SAFE(ad->msgid_list, l, l_next, msgId)
+       {
+               if (msgId == NULL) {
+                       ad->msgid_list = eina_list_remove_list(ad->msgid_list, l);
+                       D_WMSG("msgId is NULL !!");
+                       continue;
+               }
+
+               D_MSG("msgInfo with id(%d) will be loaded.", *msgId);
+
+               if (ad->msgInfo != NULL) {
+                       msg_release_struct(&ad->msgInfo);
+                       ad->msgInfo = NULL;
+               }
+
+               ad->msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+               if (ad->msgInfo == NULL) {
+                       D_EMSG("msg_create_struct() for msgInfo is failed!");
+                       return MSG_UI_RET_ERR;
+               }
+
+               msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+               if (sendOpt == NULL) {
+                       D_EMSG("msg_create_struct() for sendOpt is failed!");
+                       msg_release_struct(&ad->msgInfo);
+                       ad->msgInfo = NULL;
+                       return MSG_UI_RET_ERR;
+               }
+
+               err = msg_get_message(ad->msgHandle, *msgId, ad->msgInfo, sendOpt);
+               if (err == MSG_SUCCESS) {
+                       D_EMSG("msg_get_message is success");
+                       rtn = MSG_UI_RET_SUCCESS;
+
+                       msg_release_struct(&sendOpt);
+                       sendOpt = NULL;
+                       break;
+               }
+
+               D_EMSG("msg_get_message for id(%d) is failed! : %d", *msgId, err);
+               msg_release_struct(&ad->msgInfo);
+               ad->msgInfo = NULL;
+               msg_release_struct(&sendOpt);
+               sendOpt = NULL;
+
+               free(msgId);
+               ad->msgid_list = eina_list_remove_list(ad->msgid_list, l);
+       }
+
+       return rtn;
+}
+
+static void __msg_ui_class0_btn_clicked_event(void *data, Evas_Object *obj, void *event_info)
+{
+       struct appdata *ad = data;
+       int *msgId = NULL;
+
+       int err = MSG_SUCCESS;
+
+       D_SEC_MSG("obj = 0x%x", obj);
+       D_SEC_MSG("event_info = 0x%x", event_info);
+
+       msgId = eina_list_nth(ad->msgid_list, 0);
+       if (msgId == NULL)              goto class0_exit;
+
+       if (obj == ad->right_btn) {
+               /* Save it to Inbox. */
+               err = msg_move_msg_to_folder(ad->msgHandle, *msgId, MSG_INBOX_ID);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_move_msg_to_folder() is failed : err = %d", err);
+               }
+       } else if (obj == ad->left_btn) {
+               /* Discard this message */
+               err = msg_delete_message(ad->msgHandle, *msgId);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_delete_message() is failed : err = %d", err);
+               }
+       } else {
+               D_EMSG("Invalid obj = 0x%x", obj);
+               return;
+       }
+
+       /* check if the next message exists */
+       if (eina_list_count(ad->msgid_list) > 1) {
+               int ret = MSG_UI_RET_SUCCESS;
+
+               /* remove current msgId */
+               ad->msgid_list = eina_list_remove(ad->msgid_list, msgId);
+               free(msgId);
+
+               /* show next message */
+               ret = __msg_ui_class0_show_message(ad);
+               if (ret < 0) {
+                       D_EMSG("__msg_ui_class0_load_msg_data() is failed : ret = %d", ret);
+                       goto class0_exit;
+               }
+
+               return;
+       }
+
+class0_exit:
+       msg_ui_class0_exit(ad);
+
+}
+
+static Evas_Object *__msg_ui_class0_create_contents(void *data)
+{
+       D_ENTER;
+
+       struct appdata *ad = data;
+
+       Evas_Object *layout = NULL;
+       Evas_Object *scroller = NULL;
+
+       char buf[2048] = { 0, };
+
+       int msgSize = 0;
+       char pMsgBody[2048] = {0,};
+       char strSenderNumber[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+
+       layout = elm_layout_add(ad->navi_frame);
+       elm_layout_theme_set(layout, "layout", "application", "default");
+       elm_layout_file_set(layout, MSG_CLASS0_EDJ, "class0_viewer_layout");
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       /* Create scroller. */
+       scroller = elm_scroller_add(layout);
+       elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
+       elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+       evas_object_show(scroller);
+
+       elm_object_part_content_set(layout, "elm.swallow.content", scroller);
+
+       /* Create entry. */
+       ad->entry = elm_entry_add(scroller);
+       evas_object_size_hint_align_set(ad->entry, EVAS_HINT_FILL, 0.0);
+       evas_object_size_hint_weight_set(ad->entry, EVAS_HINT_EXPAND, 0.0);
+       elm_entry_editable_set(ad->entry, EINA_FALSE);
+       elm_object_content_set(scroller, ad->entry);
+       evas_object_show(ad->entry);
+
+       /* get sender address */
+       {
+               msg_list_handle_t addr_list = NULL;
+               msg_struct_t addr_info = NULL;
+
+               msg_get_list_handle(ad->msgInfo, MSG_MESSAGE_ADDR_LIST_HND, (void **)&addr_list);
+               addr_info = (msg_struct_t)msg_list_nth_data(addr_list, 0);
+               msg_get_str_value(addr_info, MSG_ADDRESS_INFO_DISPLAYNAME_STR, strSenderNumber, MAX_ADDRESS_VAL_LEN);
+               if (strSenderNumber[0] == '\0')
+                       msg_get_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, strSenderNumber, MAX_ADDRESS_VAL_LEN);
+       }
+
+       /* get message body */
+       msg_get_int_value(ad->msgInfo, MSG_MESSAGE_DATA_SIZE_INT, &msgSize);
+       if (msgSize > 0) {
+               msg_get_str_value(ad->msgInfo, MSG_MESSAGE_SMS_DATA_STR, pMsgBody, sizeof(pMsgBody));
+               if (pMsgBody[0] != '\0') {
+                       snprintf(buf, sizeof(buf), "%s", pMsgBody);
+               } else {
+                       D_WMSG("msg_sms_get_message_body() is failed !!");
+                       snprintf(buf, sizeof(buf), "Message is empty !!");
+               }
+       } else {
+               snprintf(buf, sizeof(buf), "Message is empty !!");
+       }
+
+       if (strSenderNumber[0] != '\0') {
+               char buf1[DEF_BUF_LEN] = { 0, };
+               snprintf(buf1, sizeof(buf1), "\n\n%s: %s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_FROM"), strSenderNumber);
+
+               char *markup_text = elm_entry_utf8_to_markup(buf1);
+               if (markup_text) {
+                       elm_entry_entry_append(ad->entry, markup_text);
+                       free(markup_text);
+                       markup_text = NULL;
+               }
+       }
+
+       return layout;
+}
+
+static int __msg_ui_class0_create_view(void *data)
+{
+       D_ENTER;
+
+       struct appdata *ad = data;
+
+       Evas_Object *content = NULL;
+       Evas_Object *rightBox = NULL;
+       Evas_Object *leftBox = NULL;
+
+       Evas_Object *ctrl_btn_left = NULL;
+       Evas_Object *ctrl_btn_right = NULL;
+
+       /* Create layout */
+       ad->layout_main = elm_layout_add(ad->win_main);
+       elm_layout_theme_set(ad->layout_main, "layout", "application", "default");
+       evas_object_size_hint_weight_set(ad->layout_main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(ad->win_main, ad->layout_main);
+       evas_object_show(ad->layout_main);
+
+       /* Create navi_frame */
+       ad->navi_frame = elm_naviframe_add(ad->layout_main);
+       elm_object_part_content_set(ad->layout_main, "elm.swallow.content", ad->navi_frame);
+       evas_object_show(ad->navi_frame);
+       elm_object_focus_set(ad->navi_frame, EINA_TRUE);
+
+       /* Create contents */
+       content = __msg_ui_class0_create_contents(ad);
+       if (content == NULL) {
+               D_EMSG("__msg_ui_class0_create_contents() is failed !!");
+               return MSG_UI_RET_ERR;
+       }
+
+       Elm_Object_Item *nf_it = elm_naviframe_item_push(ad->navi_frame, __TITLE_TEXT(), NULL, NULL, content, NULL);
+
+       /*ad->toolbar = elm_toolbar_add(ad->navi_frame);
+       elm_object_style_set(ad->toolbar, "default");
+       elm_toolbar_select_mode_set(ad->toolbar, ELM_OBJECT_SELECT_MODE_NONE);
+       elm_toolbar_shrink_mode_set(ad->toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
+       elm_toolbar_transverse_expanded_set(ad->toolbar, EINA_TRUE);
+       elm_object_item_part_content_set(nf_it, "toolbar", ad->toolbar);*/
+
+       /* Create toolbar buttons */
+       /*ctrl_btn_left = elm_toolbar_item_append(ad->toolbar, NULL, __LEFT_BTN_TEXT(), __msg_ui_class0_btn_clicked_event, (void *)ad);
+       D_MSG_RETVM_IF(ctrl_btn_left == NULL, MSG_UI_RET_ERR, "ctrl_btn_left is NULL !!");
+       ad->left_btn = ctrl_btn_left;
+
+       ctrl_btn_right = elm_toolbar_item_append(ad->toolbar, NULL, __RIGHT_BTN_TEXT(), __msg_ui_class0_btn_clicked_event, (void *)ad);
+       D_MSG_RETVM_IF(ctrl_btn_right == NULL, MSG_UI_RET_ERR, "ctrl_btn_right is NULL !!");
+       ad->right_btn = ctrl_btn_right;*/
+
+       /* Bottom Toolbar Button */
+       ad->toolbar = elm_box_add(ad->navi_frame);
+       elm_box_horizontal_set(ad->toolbar, EINA_TRUE);
+       evas_object_size_hint_weight_set(ad->toolbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(ad->toolbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_min_set(ad->toolbar, 0, ELM_SCALE_SIZE(74));
+       elm_box_padding_set(ad->toolbar, ELM_SCALE_SIZE(12), ELM_SCALE_SIZE(5));
+       /*elm_box_pack_before*/
+       elm_object_item_part_content_set(nf_it, "toolbar", ad->toolbar);
+       evas_object_show(ad->toolbar);
+
+
+       leftBox = elm_box_add(ad->toolbar);
+       elm_box_pack_end(ad->toolbar, leftBox);
+
+       ctrl_btn_left = elm_button_add(ad->toolbar);
+       elm_object_style_set(ctrl_btn_left, "bottom");
+       evas_object_size_hint_weight_set(ctrl_btn_left, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(ctrl_btn_left, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_object_domain_translatable_text_set(ctrl_btn_left, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_DISCARD_ABB");
+       evas_object_smart_callback_add(ctrl_btn_left, "clicked", __msg_ui_class0_btn_clicked_event, (void *)ad);
+       evas_object_show(ctrl_btn_left);
+       ad->left_btn = ctrl_btn_left;
+
+       elm_box_pack_end(ad->toolbar, ctrl_btn_left);
+
+       ctrl_btn_right = elm_button_add(ad->toolbar);
+       elm_object_style_set(ctrl_btn_right, "bottom");
+       evas_object_size_hint_weight_set(ctrl_btn_right, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(ctrl_btn_right, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_object_domain_translatable_text_set(ctrl_btn_right, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_SAVE_ABB2");
+       evas_object_smart_callback_add(ctrl_btn_right, "clicked", __msg_ui_class0_btn_clicked_event, (void *)ad);
+       evas_object_show(ctrl_btn_right);
+       ad->right_btn = ctrl_btn_right;
+
+       elm_box_pack_end(ad->toolbar, ctrl_btn_right);
+
+       rightBox = elm_box_add(ad->toolbar);
+       elm_box_pack_end(ad->toolbar, rightBox);
+
+       return MSG_UI_RET_SUCCESS;
+}
+
+static void __msg_ui_class0_win_del(void *data, Evas_Object *obj, void *event)
+{
+       elm_exit();
+}
+
+static Evas_Object *__msg_ui_class0_create_win(const char *name)
+{
+       D_ENTER;
+
+       Evas_Object *eo;
+       int w, h;
+
+       eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+       if (eo) {
+               elm_win_title_set(eo, name);
+               evas_object_smart_callback_add(eo, "delete,request", __msg_ui_class0_win_del, NULL);
+               ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+               evas_object_resize(eo, w, h);
+       }
+
+       return eo;
+}
+
+static int __msg_ui_class0_show_message(void *data)
+{
+       struct appdata *ad = data;
+       int ret = MSG_UI_RET_SUCCESS;
+
+       /* Load message data by using message ID. */
+       ret = __msg_ui_class0_load_msg_data(ad);
+       if (ret < 0) {
+               D_EMSG("__msg_ui_class0_load_msg_data() is failed : ret = %d", ret);
+               return ret;
+       }
+
+       /* delete the old layout_main */
+       if (ad->layout_main != NULL) {
+               D_MSG("delete old layout_main");
+               evas_object_del(ad->layout_main);
+               ad->layout_main = NULL;
+       }
+
+       /* Create main view */
+       __msg_ui_class0_create_view(ad);
+
+       if (ad->win_main) {
+               evas_object_show(ad->win_main);
+               elm_win_activate(ad->win_main);
+       }
+
+       return ret;
+}
+
+static bool app_create(void *data)
+{
+       struct appdata *ad = data;
+
+       int ret = 0;
+
+       ad->msgid_list = NULL;
+
+       ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, __msg_ui_class0_keydown_cb, ad);
+
+       ret = msg_open_msg_handle(&ad->msgHandle);
+       if (ret != MSG_SUCCESS) {
+               D_EMSG("msg_open_msg_handle() is failed : ret = %d", ret);
+               msg_ui_class0_exit(ad);
+               return FALSE;
+       }
+
+       /* init internationalization */
+       if (bindtextdomain(MESSAGE_PKGNAME, LOCALEDIR) == NULL) {
+               D_EMSG("bindtextdomain() is failed : ret = %d", ret);
+               return FALSE;
+       }
+
+       if (textdomain(MESSAGE_PKGNAME) == NULL) {
+               D_EMSG("textdomain() is failed : ret = %d", ret);
+               return FALSE;
+       }
+
+       ad->win_main = __msg_ui_class0_create_win(PACKAGE);
+       if (ad->win_main == NULL) {
+               D_EMSG("Main window is NULL");
+               return FALSE;
+       } else {
+               evas_object_show(ad->win_main);
+       }
+
+       /* Indicator */
+       elm_win_indicator_mode_set(ad->win_main, ELM_WIN_INDICATOR_HIDE);
+
+       evas_object_geometry_get(ad->win_main, NULL, NULL, &ad->root_w, &ad->root_h);
+       D_SEC_MSG("main window width[%d], height[%d]", ad->root_w, ad->root_h);
+
+       /* draw background image */
+       ad->bg = elm_bg_add(ad->win_main);
+       evas_object_size_hint_weight_set(ad->bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(ad->win_main, ad->bg);
+       evas_object_show(ad->bg);
+
+       if (elm_win_wm_rotation_supported_get(ad->win_main)) {
+               int rotation[4] = {0, 90, 180, 270};
+               elm_win_wm_rotation_available_rotations_set(ad->win_main, rotation, 4);
+               ad->cur_rotation = elm_win_rotation_get(ad->win_main);
+               D_MSG("current rotation %d", ad->cur_rotation);
+               evas_object_smart_callback_add(ad->win_main, "wm,rotation,changed", __msg_ui_class0_rotation_changed_cb, ad);
+       }
+
+       return TRUE;
+}
+
+static void app_terminate(void *data)
+{
+       D_ENTER;
+       struct appdata *ad = data;
+
+       msg_ui_class0_exit(data);
+
+       if (ad->win_main) {
+               evas_object_del(ad->win_main);
+               ad->win_main = NULL;
+    }
+}
+
+static void app_pause(void *data)
+{
+       D_ENTER;
+}
+
+static void app_resume(void *data)
+{
+       D_ENTER;
+}
+
+static void app_service(app_control_h service, void *data)
+{
+       D_ENTER;
+
+       struct appdata *ad = data;
+
+       char *strMsgId = NULL;
+       int *msgId = NULL;
+       int ret = 0;
+
+       app_control_get_extra_data(service, MSG_BUNDLE_KEY_MSG_ID, &strMsgId);
+
+       if (strMsgId == NULL) {
+               D_EMSG("app_control_get_extra_data() is failed !!");
+               return;
+       }
+
+       /* add message ID into first node of msgid_list */
+       if ((msgId = malloc(sizeof(int))) == NULL) {
+               free(strMsgId);
+               strMsgId = NULL;
+               return;
+       }
+       memset(msgId, 0, sizeof(int));
+       *msgId = atoi(strMsgId);
+       ad->msgid_list = eina_list_prepend(ad->msgid_list, msgId);
+       D_MSG("new msgid(%d) was added into msgid_list ", *msgId);
+
+       free(strMsgId);
+       strMsgId = NULL;
+
+       /* show the first message of msgid_list. */
+       ret = __msg_ui_class0_show_message(ad);
+       if (ret < 0) {
+               D_EMSG("__msg_ui_class0_load_msg_data() is failed : ret = %d", ret);
+               msg_ui_class0_exit(ad);
+               return;
+       }
+}
+
+static void lang_changed(app_event_info_h event_info, void *data)
+{
+       D_ENTER;
+
+       struct appdata *ad = data;
+       Elm_Object_Item *nf_it = NULL;
+
+       if (!ad) return;
+
+       /* title text update */
+       nf_it = elm_naviframe_top_item_get(ad->navi_frame);
+       elm_object_item_text_set(nf_it, __TITLE_TEXT());
+
+       /* toolbar text update */
+       if (ad->left_btn)
+               elm_object_domain_translatable_text_set(ad->left_btn, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_DISCARD_ABB");
+       if (ad->right_btn)
+               elm_object_domain_translatable_text_set(ad->right_btn, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_SAVE_ABB2");
+}
+
+static void __msg_ui_class0_rotation_changed_cb(void *data, Evas_Object *obj, void *event)
+{
+       struct appdata *ad = data;
+
+       if (ad == NULL || ad->win_main == NULL)
+               return;
+
+       int changed_rotation = elm_win_rotation_get(obj);
+
+       if (changed_rotation != ad->cur_rotation) {
+               D_MSG("current rotation [%d], changed rotation [%d]", ad->cur_rotation, changed_rotation);
+               ad->cur_rotation = changed_rotation;
+       }
+}
+
+
+__EXPORT_API__ int main(int argc, char *argv[])
+{
+       D_ENTER;
+
+       struct appdata ad;
+       memset(&ad, 0x0, sizeof(struct appdata));
+
+       ui_app_lifecycle_callback_s event_callback = {0,};
+       app_event_handler_h handler = {NULL,};
+
+       event_callback.create = app_create;
+       event_callback.terminate = app_terminate;
+       event_callback.pause = app_pause;
+       event_callback.resume = app_resume;
+       event_callback.app_control = app_service;
+
+       ui_app_add_event_handler(&handler, APP_EVENT_LANGUAGE_CHANGED, lang_changed, &ad);
+
+       return ui_app_main(argc, argv, &event_callback, &ad);
+}
diff --git a/class0/msg-ui-class0-main.h b/class0/msg-ui-class0-main.h
new file mode 100755 (executable)
index 0000000..6d96ee0
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_msg_ui_class0_main_H__
+#define __DEF_msg_ui_class0_main_H__
+
+#include <stdio.h>
+#include <app.h>
+#include <utilX.h>
+#include <Ecore_X.h>
+#include "msg-ui-util.h"
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+#include <Elementary.h>
+
+#define PACKAGE "msg-ui-class0" /* for i18n */
+#define GRP_MAIN "main"
+
+#define MSG_CLASS0_EDJ         EDJDIR"/msg_class0.edj"
+
+struct appdata {
+       int root_w;
+       int root_h;
+       int root_x;
+       int root_y;
+       double w_ratio, h_ratio;
+
+       Evas *evas;
+       Evas_Object *win_main;
+       Evas_Object *bg;
+       Evas_Object *layout_main;
+       Evas_Object *navi_frame;
+       Evas_Object *toolbar;
+       Evas_Object *entry;
+       Evas_Object *left_btn;
+       Evas_Object *right_btn;
+       msg_handle_t msgHandle;
+
+       /* argument */
+       // int msg_id;
+       Eina_List *msgid_list;
+       int cur_rotation;
+
+       msg_struct_t msgInfo;
+};
+
+void msg_ui_class0_exit(void *data);
+int main(int argc, char **argv);
+
+#endif /* __DEF_msg_ui_class0_main_H__ */
diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..5c7ab9e
--- /dev/null
@@ -0,0 +1,119 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(msg-common C)
+
+SET(VERSION 0.1.0)
+#################################
+#      Message Common          #
+#################################
+
+SET(COMMON_SRCS
+       ./msg-ui-common-utility.c
+       ./msg-ui-db-util.c
+       ./msg-ui-content-utility.c
+       ./msg-ui-smil-parser.c
+       ./msg-ui-smil-interface.c
+       ./msg-file-util.c
+       ./msg-system-util.c
+       ./msg-vcard-utils.c
+)
+
+INCLUDE_DIRECTORIES(
+       ${CMAKE_SOURCE_COMMON_DIR}
+)
+
+INCLUDE(FindPkgConfig)
+SET(msg-required_pkgs
+       bundle
+       capi-appfw-application
+       capi-appfw-app-manager
+       capi-appfw-preference
+       capi-base-utils-i18n
+       capi-content-media-content
+       capi-system-device
+       capi-system-info
+       capi-system-sensor
+       capi-media-image-util
+       capi-media-metadata-extractor
+       capi-media-player
+       capi-media-sound-manager
+       capi-system-system-settings
+       capi-telephony
+       capi-system-runtime-info
+       contacts-service2
+       csr-framework
+       db-util dlog
+       elementary ecore ecore-x ecore-input ecore-imf ecore-file eina
+       feedback
+       glib-2.0
+       libexif
+       libcore-context-manager
+       mm-common mm-player mm-session
+       msg-service
+       notification
+       shortcut
+       tapi
+       tts
+       ui-gadget-1
+       utilX
+       accounts-svc
+       libxml-2.0
+       libpng
+       storage
+       efl-extension
+       attach-panel
+       storage
+)
+
+pkg_check_modules(pkgs REQUIRED "${msg-required_pkgs}")
+
+FOREACH(flag ${pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(HELP_DATA_DIR_PATH "${PREFIX}/shared/res/")
+
+ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{PREFIX}\"")
+ADD_DEFINITIONS("-DDATAFS=\"$ENV{DATADIR}\"")
+ADD_DEFINITIONS("-DTARGET")
+ADD_DEFINITIONS("-DSLP_PROF")
+
+ADD_LIBRARY(${PROJECT_NAME} SHARED ${COMMON_SRCS})
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION} )
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${CMAKE_LDFLAGS})
+
+ADD_CUSTOM_TARGET(msg_common.edj
+               COMMAND edje_cc -no-save ${EDJE_CC_DEFINITIONS} -id
+                       ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image
+                       ${CMAKE_SOURCE_COMMON_DIR}/data/msg_common.edc
+                       ${CMAKE_SOURCE_COMMON_DIR}/data/msg_common.edj
+                       DEPENDS ${CMAKE_SOURCE_COMMON_DIR}/data/msg_common.edc
+)
+
+ADD_CUSTOM_TARGET(msg_custom_winset.edj
+               COMMAND edje_cc -no-save ${EDJE_CC_DEFINITIONS}
+                       -id ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image
+                       -sd ${CMAKE_SOURCE_COMMON_DIR}/data/sound
+                       ${CMAKE_SOURCE_COMMON_DIR}/data/msg_custom_winset.edc
+                       ${CMAKE_SOURCE_COMMON_DIR}/data/msg_custom_winset.edj
+                       DEPENDS ${CMAKE_SOURCE_COMMON_DIR}/data/msg_custom_winset.edc
+)
+
+ADD_CUSTOM_TARGET(msg_images.edj
+               COMMAND edje_cc -no-save ${EDJE_CC_DEFINITIONS} -id
+                       ${CMAKE_SOURCE_COMMON_DIR}/data/edj_image_list
+                       ${CMAKE_SOURCE_COMMON_DIR}/data/msg_images.edc
+                       ${CMAKE_SOURCE_COMMON_DIR}/data/msg_images.edj
+                       DEPENDS ${CMAKE_SOURCE_COMMON_DIR}/data/msg_images.edc
+)
+
+ADD_DEPENDENCIES(${PROJECT_NAME} msg_common.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} msg_custom_winset.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} msg_images.edj)
+
+# Install so files.
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIBDIR})
+INSTALL(FILES ${CMAKE_SOURCE_COMMON_DIR}/data/msg_common.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_SOURCE_COMMON_DIR}/data/msg_custom_winset.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_SOURCE_COMMON_DIR}/data/msg_images.edj DESTINATION ${EDJDIR})
diff --git a/common/data/edc_image/00_MessageBubble_date_bg.png b/common/data/edc_image/00_MessageBubble_date_bg.png
new file mode 100755 (executable)
index 0000000..b0fb761
Binary files /dev/null and b/common/data/edc_image/00_MessageBubble_date_bg.png differ
diff --git a/common/data/edc_image/00_button_01_bg.#.png b/common/data/edc_image/00_button_01_bg.#.png
new file mode 100644 (file)
index 0000000..bfca892
Binary files /dev/null and b/common/data/edc_image/00_button_01_bg.#.png differ
diff --git a/common/data/edc_image/00_button_01_bg_dim_ef.#.png b/common/data/edc_image/00_button_01_bg_dim_ef.#.png
new file mode 100644 (file)
index 0000000..dbde380
Binary files /dev/null and b/common/data/edc_image/00_button_01_bg_dim_ef.#.png differ
diff --git a/common/data/edc_image/00_button_01_bg_ef.#.png b/common/data/edc_image/00_button_01_bg_ef.#.png
new file mode 100644 (file)
index 0000000..e760712
Binary files /dev/null and b/common/data/edc_image/00_button_01_bg_ef.#.png differ
diff --git a/common/data/edc_image/00_button_01_bg_focus.#.png b/common/data/edc_image/00_button_01_bg_focus.#.png
new file mode 100644 (file)
index 0000000..84eb170
Binary files /dev/null and b/common/data/edc_image/00_button_01_bg_focus.#.png differ
diff --git a/common/data/edc_image/00_button_01_bg_press_ef.#.png b/common/data/edc_image/00_button_01_bg_press_ef.#.png
new file mode 100644 (file)
index 0000000..d75ce0a
Binary files /dev/null and b/common/data/edc_image/00_button_01_bg_press_ef.#.png differ
diff --git a/common/data/edc_image/00_button_delete.png b/common/data/edc_image/00_button_delete.png
new file mode 100644 (file)
index 0000000..ea0ae46
Binary files /dev/null and b/common/data/edc_image/00_button_delete.png differ
diff --git a/common/data/edc_image/00_button_delete_dim_ef.png b/common/data/edc_image/00_button_delete_dim_ef.png
new file mode 100644 (file)
index 0000000..e93a4df
Binary files /dev/null and b/common/data/edc_image/00_button_delete_dim_ef.png differ
diff --git a/common/data/edc_image/00_button_delete_ef.png b/common/data/edc_image/00_button_delete_ef.png
new file mode 100644 (file)
index 0000000..707c72f
Binary files /dev/null and b/common/data/edc_image/00_button_delete_ef.png differ
diff --git a/common/data/edc_image/00_circle_button_bg.png b/common/data/edc_image/00_circle_button_bg.png
new file mode 100644 (file)
index 0000000..2f26ab3
Binary files /dev/null and b/common/data/edc_image/00_circle_button_bg.png differ
diff --git a/common/data/edc_image/00_circle_button_focus.png b/common/data/edc_image/00_circle_button_focus.png
new file mode 100644 (file)
index 0000000..c621797
Binary files /dev/null and b/common/data/edc_image/00_circle_button_focus.png differ
diff --git a/common/data/edc_image/00_focus_01.#.png b/common/data/edc_image/00_focus_01.#.png
new file mode 100644 (file)
index 0000000..e9a1206
Binary files /dev/null and b/common/data/edc_image/00_focus_01.#.png differ
diff --git a/common/data/edc_image/00_list_group_bg.#.png b/common/data/edc_image/00_list_group_bg.#.png
new file mode 100644 (file)
index 0000000..0f5c388
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg.#.png differ
diff --git a/common/data/edc_image/00_list_group_bg.png b/common/data/edc_image/00_list_group_bg.png
new file mode 100644 (file)
index 0000000..91f575a
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg.png differ
diff --git a/common/data/edc_image/00_list_group_bg_bottom.#.png b/common/data/edc_image/00_list_group_bg_bottom.#.png
new file mode 100644 (file)
index 0000000..c818d9f
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_bottom.#.png differ
diff --git a/common/data/edc_image/00_list_group_bg_bottom.png b/common/data/edc_image/00_list_group_bg_bottom.png
new file mode 100644 (file)
index 0000000..ffec7fb
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_bottom.png differ
diff --git a/common/data/edc_image/00_list_group_bg_bottom_ef.#.png b/common/data/edc_image/00_list_group_bg_bottom_ef.#.png
new file mode 100644 (file)
index 0000000..cf2143e
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_bottom_ef.#.png differ
diff --git a/common/data/edc_image/00_list_group_bg_bottom_focus.png b/common/data/edc_image/00_list_group_bg_bottom_focus.png
new file mode 100755 (executable)
index 0000000..e69967b
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_bottom_focus.png differ
diff --git a/common/data/edc_image/00_list_group_bg_bottom_press.png b/common/data/edc_image/00_list_group_bg_bottom_press.png
new file mode 100755 (executable)
index 0000000..56b9ede
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_bottom_press.png differ
diff --git a/common/data/edc_image/00_list_group_bg_center.#.png b/common/data/edc_image/00_list_group_bg_center.#.png
new file mode 100644 (file)
index 0000000..305d3b7
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_center.#.png differ
diff --git a/common/data/edc_image/00_list_group_bg_center.png b/common/data/edc_image/00_list_group_bg_center.png
new file mode 100644 (file)
index 0000000..e5d1cb4
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_center.png differ
diff --git a/common/data/edc_image/00_list_group_bg_center_ef.#.png b/common/data/edc_image/00_list_group_bg_center_ef.#.png
new file mode 100644 (file)
index 0000000..f126a90
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_center_ef.#.png differ
diff --git a/common/data/edc_image/00_list_group_bg_center_focus.png b/common/data/edc_image/00_list_group_bg_center_focus.png
new file mode 100755 (executable)
index 0000000..fcd1c6f
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_center_focus.png differ
diff --git a/common/data/edc_image/00_list_group_bg_center_press.png b/common/data/edc_image/00_list_group_bg_center_press.png
new file mode 100755 (executable)
index 0000000..06593f4
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_center_press.png differ
diff --git a/common/data/edc_image/00_list_group_bg_ef.#.png b/common/data/edc_image/00_list_group_bg_ef.#.png
new file mode 100644 (file)
index 0000000..000546c
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_ef.#.png differ
diff --git a/common/data/edc_image/00_list_group_bg_press.png b/common/data/edc_image/00_list_group_bg_press.png
new file mode 100755 (executable)
index 0000000..e0c84fa
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_press.png differ
diff --git a/common/data/edc_image/00_list_group_bg_top.#.png b/common/data/edc_image/00_list_group_bg_top.#.png
new file mode 100644 (file)
index 0000000..65da1ba
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_top.#.png differ
diff --git a/common/data/edc_image/00_list_group_bg_top.png b/common/data/edc_image/00_list_group_bg_top.png
new file mode 100644 (file)
index 0000000..1be8639
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_top.png differ
diff --git a/common/data/edc_image/00_list_group_bg_top_ef.#.png b/common/data/edc_image/00_list_group_bg_top_ef.#.png
new file mode 100644 (file)
index 0000000..adf4ce6
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_top_ef.#.png differ
diff --git a/common/data/edc_image/00_list_group_bg_top_focus.png b/common/data/edc_image/00_list_group_bg_top_focus.png
new file mode 100755 (executable)
index 0000000..1d6a05e
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_top_focus.png differ
diff --git a/common/data/edc_image/00_list_group_bg_top_press.png b/common/data/edc_image/00_list_group_bg_top_press.png
new file mode 100755 (executable)
index 0000000..15f0b06
Binary files /dev/null and b/common/data/edc_image/00_list_group_bg_top_press.png differ
diff --git a/common/data/edc_image/00_progress_bar.png b/common/data/edc_image/00_progress_bar.png
new file mode 100644 (file)
index 0000000..740e30e
Binary files /dev/null and b/common/data/edc_image/00_progress_bar.png differ
diff --git a/common/data/edc_image/00_progress_bg.png b/common/data/edc_image/00_progress_bg.png
new file mode 100755 (executable)
index 0000000..9d3751d
Binary files /dev/null and b/common/data/edc_image/00_progress_bg.png differ
diff --git a/common/data/edc_image/00_search_btn_press.#.png b/common/data/edc_image/00_search_btn_press.#.png
new file mode 100644 (file)
index 0000000..519e436
Binary files /dev/null and b/common/data/edc_image/00_search_btn_press.#.png differ
diff --git a/common/data/edc_image/00_search_edit_field_bg.#.png b/common/data/edc_image/00_search_edit_field_bg.#.png
new file mode 100644 (file)
index 0000000..834f3f6
Binary files /dev/null and b/common/data/edc_image/00_search_edit_field_bg.#.png differ
diff --git a/common/data/edc_image/00_search_edit_field_bg.png b/common/data/edc_image/00_search_edit_field_bg.png
new file mode 100644 (file)
index 0000000..5a8d7bb
Binary files /dev/null and b/common/data/edc_image/00_search_edit_field_bg.png differ
diff --git a/common/data/edc_image/00_search_edit_field_selected.#.png b/common/data/edc_image/00_search_edit_field_selected.#.png
new file mode 100644 (file)
index 0000000..7cebd9a
Binary files /dev/null and b/common/data/edc_image/00_search_edit_field_selected.#.png differ
diff --git a/common/data/edc_image/00_title_bg.#.png b/common/data/edc_image/00_title_bg.#.png
new file mode 100755 (executable)
index 0000000..834f3f6
Binary files /dev/null and b/common/data/edc_image/00_title_bg.#.png differ
diff --git a/common/data/edc_image/00_title_bg.png b/common/data/edc_image/00_title_bg.png
new file mode 100755 (executable)
index 0000000..eae1794
Binary files /dev/null and b/common/data/edc_image/00_title_bg.png differ
diff --git a/common/data/edc_image/00_title_press.#.png b/common/data/edc_image/00_title_press.#.png
new file mode 100755 (executable)
index 0000000..834f3f6
Binary files /dev/null and b/common/data/edc_image/00_title_press.#.png differ
diff --git a/common/data/edc_image/00_title_press.png b/common/data/edc_image/00_title_press.png
new file mode 100755 (executable)
index 0000000..ba64a45
Binary files /dev/null and b/common/data/edc_image/00_title_press.png differ
diff --git a/common/data/edc_image/00_video_play.png b/common/data/edc_image/00_video_play.png
new file mode 100644 (file)
index 0000000..29472e1
Binary files /dev/null and b/common/data/edc_image/00_video_play.png differ
diff --git a/common/data/edc_image/M01_bg_style_default.png b/common/data/edc_image/M01_bg_style_default.png
new file mode 100755 (executable)
index 0000000..3c73349
Binary files /dev/null and b/common/data/edc_image/M01_bg_style_default.png differ
diff --git a/common/data/edc_image/M01_btn_schedule.png b/common/data/edc_image/M01_btn_schedule.png
new file mode 100755 (executable)
index 0000000..a43bc4c
Binary files /dev/null and b/common/data/edc_image/M01_btn_schedule.png differ
diff --git a/common/data/edc_image/M01_btn_translate.png b/common/data/edc_image/M01_btn_translate.png
new file mode 100644 (file)
index 0000000..2f6ecd5
Binary files /dev/null and b/common/data/edc_image/M01_btn_translate.png differ
diff --git a/common/data/edc_image/M01_btn_warning.png b/common/data/edc_image/M01_btn_warning.png
new file mode 100755 (executable)
index 0000000..dc58b38
Binary files /dev/null and b/common/data/edc_image/M01_btn_warning.png differ
diff --git a/common/data/edc_image/M01_circle_button.png b/common/data/edc_image/M01_circle_button.png
new file mode 100644 (file)
index 0000000..be53b8a
Binary files /dev/null and b/common/data/edc_image/M01_circle_button.png differ
diff --git a/common/data/edc_image/M01_circle_button_delete.png b/common/data/edc_image/M01_circle_button_delete.png
new file mode 100644 (file)
index 0000000..1078284
Binary files /dev/null and b/common/data/edc_image/M01_circle_button_delete.png differ
diff --git a/common/data/edc_image/M01_circle_button_delete_dim.png b/common/data/edc_image/M01_circle_button_delete_dim.png
new file mode 100644 (file)
index 0000000..ec37809
Binary files /dev/null and b/common/data/edc_image/M01_circle_button_delete_dim.png differ
diff --git a/common/data/edc_image/M01_circle_button_delete_press.png b/common/data/edc_image/M01_circle_button_delete_press.png
new file mode 100644 (file)
index 0000000..544d110
Binary files /dev/null and b/common/data/edc_image/M01_circle_button_delete_press.png differ
diff --git a/common/data/edc_image/M01_circle_button_dim.png b/common/data/edc_image/M01_circle_button_dim.png
new file mode 100644 (file)
index 0000000..47b4335
Binary files /dev/null and b/common/data/edc_image/M01_circle_button_dim.png differ
diff --git a/common/data/edc_image/M01_circle_button_press.png b/common/data/edc_image/M01_circle_button_press.png
new file mode 100644 (file)
index 0000000..6ab9935
Binary files /dev/null and b/common/data/edc_image/M01_circle_button_press.png differ
diff --git a/common/data/edc_image/M01_file_bg.#.png b/common/data/edc_image/M01_file_bg.#.png
new file mode 100755 (executable)
index 0000000..0f5c388
Binary files /dev/null and b/common/data/edc_image/M01_file_bg.#.png differ
diff --git a/common/data/edc_image/M01_file_bg_ef.#.png b/common/data/edc_image/M01_file_bg_ef.#.png
new file mode 100755 (executable)
index 0000000..000546c
Binary files /dev/null and b/common/data/edc_image/M01_file_bg_ef.#.png differ
diff --git a/common/data/edc_image/M01_icon_play.png b/common/data/edc_image/M01_icon_play.png
new file mode 100644 (file)
index 0000000..2a5ee94
Binary files /dev/null and b/common/data/edc_image/M01_icon_play.png differ
diff --git a/common/data/edc_image/M01_list_bubble_bg.#.png b/common/data/edc_image/M01_list_bubble_bg.#.png
new file mode 100644 (file)
index 0000000..834f3f6
Binary files /dev/null and b/common/data/edc_image/M01_list_bubble_bg.#.png differ
diff --git a/common/data/edc_image/M01_list_circle_thumbnail_bg.png b/common/data/edc_image/M01_list_circle_thumbnail_bg.png
new file mode 100644 (file)
index 0000000..96a0eb8
Binary files /dev/null and b/common/data/edc_image/M01_list_circle_thumbnail_bg.png differ
diff --git a/common/data/edc_image/M01_list_swipe_left.#.png b/common/data/edc_image/M01_list_swipe_left.#.png
new file mode 100644 (file)
index 0000000..0f322e5
Binary files /dev/null and b/common/data/edc_image/M01_list_swipe_left.#.png differ
diff --git a/common/data/edc_image/M01_list_swipe_right.#.png b/common/data/edc_image/M01_list_swipe_right.#.png
new file mode 100644 (file)
index 0000000..8f2184f
Binary files /dev/null and b/common/data/edc_image/M01_list_swipe_right.#.png differ
diff --git a/common/data/edc_image/M01_messagebubble_bg_receive_01_bg_focus.#.png b/common/data/edc_image/M01_messagebubble_bg_receive_01_bg_focus.#.png
new file mode 100644 (file)
index 0000000..f6fa0d6
Binary files /dev/null and b/common/data/edc_image/M01_messagebubble_bg_receive_01_bg_focus.#.png differ
diff --git a/common/data/edc_image/M01_messagebubble_bg_sent_01_bg_focus.#.png b/common/data/edc_image/M01_messagebubble_bg_sent_01_bg_focus.#.png
new file mode 100644 (file)
index 0000000..611a352
Binary files /dev/null and b/common/data/edc_image/M01_messagebubble_bg_sent_01_bg_focus.#.png differ
diff --git a/common/data/edc_image/M01_sweep_call.png b/common/data/edc_image/M01_sweep_call.png
new file mode 100644 (file)
index 0000000..9fddc28
Binary files /dev/null and b/common/data/edc_image/M01_sweep_call.png differ
diff --git a/common/data/edc_image/M01_sweep_message.png b/common/data/edc_image/M01_sweep_message.png
new file mode 100644 (file)
index 0000000..5e28962
Binary files /dev/null and b/common/data/edc_image/M01_sweep_message.png differ
diff --git a/common/data/edc_image/T02_progress_bar.png b/common/data/edc_image/T02_progress_bar.png
new file mode 100755 (executable)
index 0000000..e557cdd
Binary files /dev/null and b/common/data/edc_image/T02_progress_bar.png differ
diff --git a/common/data/edc_image/T02_progress_bar_button.png b/common/data/edc_image/T02_progress_bar_button.png
new file mode 100755 (executable)
index 0000000..c4e7a4f
Binary files /dev/null and b/common/data/edc_image/T02_progress_bar_button.png differ
diff --git a/common/data/edc_image/T02_progress_bar_button_pressed.png b/common/data/edc_image/T02_progress_bar_button_pressed.png
new file mode 100755 (executable)
index 0000000..b1977db
Binary files /dev/null and b/common/data/edc_image/T02_progress_bar_button_pressed.png differ
diff --git a/common/data/edc_image/T02_progress_bg.png b/common/data/edc_image/T02_progress_bg.png
new file mode 100755 (executable)
index 0000000..6bfcd0c
Binary files /dev/null and b/common/data/edc_image/T02_progress_bg.png differ
diff --git a/common/data/edc_image/badge_bg_draft.png b/common/data/edc_image/badge_bg_draft.png
new file mode 100755 (executable)
index 0000000..045620d
Binary files /dev/null and b/common/data/edc_image/badge_bg_draft.png differ
diff --git a/common/data/edc_image/badge_icon_draft_pencil.png b/common/data/edc_image/badge_icon_draft_pencil.png
new file mode 100755 (executable)
index 0000000..0558207
Binary files /dev/null and b/common/data/edc_image/badge_icon_draft_pencil.png differ
diff --git a/common/data/edc_image/badge_icon_failed.png b/common/data/edc_image/badge_icon_failed.png
new file mode 100755 (executable)
index 0000000..eddef85
Binary files /dev/null and b/common/data/edc_image/badge_icon_failed.png differ
diff --git a/common/data/edc_image/btn_send_message_sim_1.png b/common/data/edc_image/btn_send_message_sim_1.png
new file mode 100755 (executable)
index 0000000..2330278
Binary files /dev/null and b/common/data/edc_image/btn_send_message_sim_1.png differ
diff --git a/common/data/edc_image/btn_send_message_sim_2.png b/common/data/edc_image/btn_send_message_sim_2.png
new file mode 100755 (executable)
index 0000000..55c753e
Binary files /dev/null and b/common/data/edc_image/btn_send_message_sim_2.png differ
diff --git a/common/data/edc_image/btn_send_message_sim_bg.png b/common/data/edc_image/btn_send_message_sim_bg.png
new file mode 100755 (executable)
index 0000000..8b3a748
Binary files /dev/null and b/common/data/edc_image/btn_send_message_sim_bg.png differ
diff --git a/common/data/edc_image/btn_send_message_sim_data.png b/common/data/edc_image/btn_send_message_sim_data.png
new file mode 100755 (executable)
index 0000000..ab6a6bc
Binary files /dev/null and b/common/data/edc_image/btn_send_message_sim_data.png differ
diff --git a/common/data/edc_image/btn_send_message_sim_heart.png b/common/data/edc_image/btn_send_message_sim_heart.png
new file mode 100755 (executable)
index 0000000..3111c22
Binary files /dev/null and b/common/data/edc_image/btn_send_message_sim_heart.png differ
diff --git a/common/data/edc_image/btn_send_message_sim_home.png b/common/data/edc_image/btn_send_message_sim_home.png
new file mode 100755 (executable)
index 0000000..ef079b4
Binary files /dev/null and b/common/data/edc_image/btn_send_message_sim_home.png differ
diff --git a/common/data/edc_image/btn_send_message_sim_internet.png b/common/data/edc_image/btn_send_message_sim_internet.png
new file mode 100755 (executable)
index 0000000..a4fd5e2
Binary files /dev/null and b/common/data/edc_image/btn_send_message_sim_internet.png differ
diff --git a/common/data/edc_image/btn_send_message_sim_messages.png b/common/data/edc_image/btn_send_message_sim_messages.png
new file mode 100755 (executable)
index 0000000..76064a1
Binary files /dev/null and b/common/data/edc_image/btn_send_message_sim_messages.png differ
diff --git a/common/data/edc_image/btn_send_message_sim_office.png b/common/data/edc_image/btn_send_message_sim_office.png
new file mode 100755 (executable)
index 0000000..347f2d1
Binary files /dev/null and b/common/data/edc_image/btn_send_message_sim_office.png differ
diff --git a/common/data/edc_image/btn_send_message_sim_phone.png b/common/data/edc_image/btn_send_message_sim_phone.png
new file mode 100755 (executable)
index 0000000..34f5b03
Binary files /dev/null and b/common/data/edc_image/btn_send_message_sim_phone.png differ
diff --git a/common/data/edc_image/bubble_with_search_result_receive.#.png b/common/data/edc_image/bubble_with_search_result_receive.#.png
new file mode 100644 (file)
index 0000000..000c15c
Binary files /dev/null and b/common/data/edc_image/bubble_with_search_result_receive.#.png differ
diff --git a/common/data/edc_image/bubble_with_search_result_send.#.png b/common/data/edc_image/bubble_with_search_result_send.#.png
new file mode 100644 (file)
index 0000000..0dd5c55
Binary files /dev/null and b/common/data/edc_image/bubble_with_search_result_send.#.png differ
diff --git a/common/data/edc_image/core_button_effect_normal.#.png b/common/data/edc_image/core_button_effect_normal.#.png
new file mode 100755 (executable)
index 0000000..28c6e47
Binary files /dev/null and b/common/data/edc_image/core_button_effect_normal.#.png differ
diff --git a/common/data/edc_image/core_button_effect_pressed.#.png b/common/data/edc_image/core_button_effect_pressed.#.png
new file mode 100755 (executable)
index 0000000..8b93be3
Binary files /dev/null and b/common/data/edc_image/core_button_effect_pressed.#.png differ
diff --git a/common/data/edc_image/core_focus.#.png b/common/data/edc_image/core_focus.#.png
new file mode 100755 (executable)
index 0000000..ce05d0e
Binary files /dev/null and b/common/data/edc_image/core_focus.#.png differ
diff --git a/common/data/edc_image/core_icon_back.png b/common/data/edc_image/core_icon_back.png
new file mode 100644 (file)
index 0000000..7d6c0fd
Binary files /dev/null and b/common/data/edc_image/core_icon_back.png differ
diff --git a/common/data/edc_image/core_icon_badge_container.#.png b/common/data/edc_image/core_icon_badge_container.#.png
new file mode 100755 (executable)
index 0000000..b999e46
Binary files /dev/null and b/common/data/edc_image/core_icon_badge_container.#.png differ
diff --git a/common/data/edc_image/core_icon_container.png b/common/data/edc_image/core_icon_container.png
new file mode 100755 (executable)
index 0000000..570a91e
Binary files /dev/null and b/common/data/edc_image/core_icon_container.png differ
diff --git a/common/data/edc_image/core_icon_expand_close.png b/common/data/edc_image/core_icon_expand_close.png
new file mode 100644 (file)
index 0000000..55c36ad
Binary files /dev/null and b/common/data/edc_image/core_icon_expand_close.png differ
diff --git a/common/data/edc_image/core_navigation_bar_bg.png b/common/data/edc_image/core_navigation_bar_bg.png
new file mode 100644 (file)
index 0000000..d609b33
Binary files /dev/null and b/common/data/edc_image/core_navigation_bar_bg.png differ
diff --git a/common/data/edc_image/core_navigation_bar_icon_arrow.png b/common/data/edc_image/core_navigation_bar_icon_arrow.png
new file mode 100644 (file)
index 0000000..4ca4418
Binary files /dev/null and b/common/data/edc_image/core_navigation_bar_icon_arrow.png differ
diff --git a/common/data/edc_image/core_tabs_fade_out_ef_l.#.png b/common/data/edc_image/core_tabs_fade_out_ef_l.#.png
new file mode 100644 (file)
index 0000000..64d4f9e
Binary files /dev/null and b/common/data/edc_image/core_tabs_fade_out_ef_l.#.png differ
diff --git a/common/data/edc_image/core_tabs_fade_out_ef_r.#.png b/common/data/edc_image/core_tabs_fade_out_ef_r.#.png
new file mode 100644 (file)
index 0000000..ce4a74d
Binary files /dev/null and b/common/data/edc_image/core_tabs_fade_out_ef_r.#.png differ
diff --git a/common/data/edc_image/core_theme_bg_01.png b/common/data/edc_image/core_theme_bg_01.png
new file mode 100644 (file)
index 0000000..be3057d
Binary files /dev/null and b/common/data/edc_image/core_theme_bg_01.png differ
diff --git a/common/data/edc_image/full_player_button_01.png b/common/data/edc_image/full_player_button_01.png
new file mode 100755 (executable)
index 0000000..6d0a523
Binary files /dev/null and b/common/data/edc_image/full_player_button_01.png differ
diff --git a/common/data/edc_image/full_player_button_02.png b/common/data/edc_image/full_player_button_02.png
new file mode 100755 (executable)
index 0000000..8b57c0b
Binary files /dev/null and b/common/data/edc_image/full_player_button_02.png differ
diff --git a/common/data/edc_image/full_player_button_next.png b/common/data/edc_image/full_player_button_next.png
new file mode 100644 (file)
index 0000000..a113871
Binary files /dev/null and b/common/data/edc_image/full_player_button_next.png differ
diff --git a/common/data/edc_image/full_player_button_pause.png b/common/data/edc_image/full_player_button_pause.png
new file mode 100644 (file)
index 0000000..e333710
Binary files /dev/null and b/common/data/edc_image/full_player_button_pause.png differ
diff --git a/common/data/edc_image/full_player_button_play.png b/common/data/edc_image/full_player_button_play.png
new file mode 100644 (file)
index 0000000..213c6d8
Binary files /dev/null and b/common/data/edc_image/full_player_button_play.png differ
diff --git a/common/data/edc_image/full_player_button_prev.png b/common/data/edc_image/full_player_button_prev.png
new file mode 100644 (file)
index 0000000..155955e
Binary files /dev/null and b/common/data/edc_image/full_player_button_prev.png differ
diff --git a/common/data/edc_image/masking_message_list.png b/common/data/edc_image/masking_message_list.png
new file mode 100755 (executable)
index 0000000..6532233
Binary files /dev/null and b/common/data/edc_image/masking_message_list.png differ
diff --git a/common/data/edc_image/masking_message_recipient.png b/common/data/edc_image/masking_message_recipient.png
new file mode 100755 (executable)
index 0000000..6bb8fd5
Binary files /dev/null and b/common/data/edc_image/masking_message_recipient.png differ
diff --git a/common/data/edc_image/messages_bubble_bg.#.png b/common/data/edc_image/messages_bubble_bg.#.png
new file mode 100644 (file)
index 0000000..d4817db
Binary files /dev/null and b/common/data/edc_image/messages_bubble_bg.#.png differ
diff --git a/common/data/edc_image/messages_bubble_bg_receive.#.png b/common/data/edc_image/messages_bubble_bg_receive.#.png
new file mode 100644 (file)
index 0000000..f77292a
Binary files /dev/null and b/common/data/edc_image/messages_bubble_bg_receive.#.png differ
diff --git a/common/data/edc_image/messages_bubble_bg_send.#.png b/common/data/edc_image/messages_bubble_bg_send.#.png
new file mode 100644 (file)
index 0000000..f2a59e8
Binary files /dev/null and b/common/data/edc_image/messages_bubble_bg_send.#.png differ
diff --git a/common/data/edc_image/messages_bubble_line_draft.#.png b/common/data/edc_image/messages_bubble_line_draft.#.png
new file mode 100644 (file)
index 0000000..38379be
Binary files /dev/null and b/common/data/edc_image/messages_bubble_line_draft.#.png differ
diff --git a/common/data/edc_image/messages_bubble_line_send.#.png b/common/data/edc_image/messages_bubble_line_send.#.png
new file mode 100644 (file)
index 0000000..c501c71
Binary files /dev/null and b/common/data/edc_image/messages_bubble_line_send.#.png differ
diff --git a/common/data/edc_image/messages_conversation_thumb_masking.png b/common/data/edc_image/messages_conversation_thumb_masking.png
new file mode 100644 (file)
index 0000000..66ae050
Binary files /dev/null and b/common/data/edc_image/messages_conversation_thumb_masking.png differ
diff --git a/common/data/edc_image/messages_date_divider.#.png b/common/data/edc_image/messages_date_divider.#.png
new file mode 100644 (file)
index 0000000..00af9ed
Binary files /dev/null and b/common/data/edc_image/messages_date_divider.#.png differ
diff --git a/common/data/edc_image/messages_icon_bg.png b/common/data/edc_image/messages_icon_bg.png
new file mode 100644 (file)
index 0000000..89fa34c
Binary files /dev/null and b/common/data/edc_image/messages_icon_bg.png differ
diff --git a/common/data/edc_image/messages_icon_draft.png b/common/data/edc_image/messages_icon_draft.png
new file mode 100644 (file)
index 0000000..f870128
Binary files /dev/null and b/common/data/edc_image/messages_icon_draft.png differ
diff --git a/common/data/edc_image/messages_icon_failed.png b/common/data/edc_image/messages_icon_failed.png
new file mode 100644 (file)
index 0000000..71f8240
Binary files /dev/null and b/common/data/edc_image/messages_icon_failed.png differ
diff --git a/common/data/edc_image/messages_list_thumb_image_bg.png b/common/data/edc_image/messages_list_thumb_image_bg.png
new file mode 100644 (file)
index 0000000..fbe98ac
Binary files /dev/null and b/common/data/edc_image/messages_list_thumb_image_bg.png differ
diff --git a/common/data/edc_image/messages_state_ic_lock.png b/common/data/edc_image/messages_state_ic_lock.png
new file mode 100644 (file)
index 0000000..064efca
Binary files /dev/null and b/common/data/edc_image/messages_state_ic_lock.png differ
diff --git a/common/data/edc_image/titlemenu_mask_left.png b/common/data/edc_image/titlemenu_mask_left.png
new file mode 100755 (executable)
index 0000000..fb47c1d
Binary files /dev/null and b/common/data/edc_image/titlemenu_mask_left.png differ
diff --git a/common/data/edc_image/titlemenu_mask_right.png b/common/data/edc_image/titlemenu_mask_right.png
new file mode 100755 (executable)
index 0000000..0b5cc4c
Binary files /dev/null and b/common/data/edc_image/titlemenu_mask_right.png differ
diff --git a/common/data/edj_image_list/00_icon_select_all.png b/common/data/edj_image_list/00_icon_select_all.png
new file mode 100644 (file)
index 0000000..372810f
Binary files /dev/null and b/common/data/edj_image_list/00_icon_select_all.png differ
diff --git a/common/data/edj_image_list/60_myfiles_file_etc.png b/common/data/edj_image_list/60_myfiles_file_etc.png
new file mode 100755 (executable)
index 0000000..26748d8
Binary files /dev/null and b/common/data/edj_image_list/60_myfiles_file_etc.png differ
diff --git a/common/data/edj_image_list/M01_attach_icon_dcm_contacts.png b/common/data/edj_image_list/M01_attach_icon_dcm_contacts.png
new file mode 100644 (file)
index 0000000..f0be7c5
Binary files /dev/null and b/common/data/edj_image_list/M01_attach_icon_dcm_contacts.png differ
diff --git a/common/data/edj_image_list/M01_attach_icon_recorded_video.png b/common/data/edj_image_list/M01_attach_icon_recorded_video.png
new file mode 100644 (file)
index 0000000..a3706ac
Binary files /dev/null and b/common/data/edj_image_list/M01_attach_icon_recorded_video.png differ
diff --git a/common/data/edj_image_list/M01_attach_icon_text_templates.png b/common/data/edj_image_list/M01_attach_icon_text_templates.png
new file mode 100644 (file)
index 0000000..806d3da
Binary files /dev/null and b/common/data/edj_image_list/M01_attach_icon_text_templates.png differ
diff --git a/common/data/edj_image_list/M01_btn_all.png b/common/data/edj_image_list/M01_btn_all.png
new file mode 100755 (executable)
index 0000000..a7350a7
Binary files /dev/null and b/common/data/edj_image_list/M01_btn_all.png differ
diff --git a/common/data/edj_image_list/M01_btn_location.png b/common/data/edj_image_list/M01_btn_location.png
new file mode 100644 (file)
index 0000000..fb8fc2a
Binary files /dev/null and b/common/data/edj_image_list/M01_btn_location.png differ
diff --git a/common/data/edj_image_list/M01_btn_message.png b/common/data/edj_image_list/M01_btn_message.png
new file mode 100755 (executable)
index 0000000..81300de
Binary files /dev/null and b/common/data/edj_image_list/M01_btn_message.png differ
diff --git a/common/data/edj_image_list/M01_btn_sender.png b/common/data/edj_image_list/M01_btn_sender.png
new file mode 100755 (executable)
index 0000000..9462cd3
Binary files /dev/null and b/common/data/edj_image_list/M01_btn_sender.png differ
diff --git a/common/data/edj_image_list/M01_button_contact.png b/common/data/edj_image_list/M01_button_contact.png
new file mode 100644 (file)
index 0000000..478239c
Binary files /dev/null and b/common/data/edj_image_list/M01_button_contact.png differ
diff --git a/common/data/edj_image_list/M01_button_recent.png b/common/data/edj_image_list/M01_button_recent.png
new file mode 100755 (executable)
index 0000000..e9c4a5c
Binary files /dev/null and b/common/data/edj_image_list/M01_button_recent.png differ
diff --git a/common/data/edj_image_list/M01_icon_Unsupported.png b/common/data/edj_image_list/M01_icon_Unsupported.png
new file mode 100755 (executable)
index 0000000..fbef800
Binary files /dev/null and b/common/data/edj_image_list/M01_icon_Unsupported.png differ
diff --git a/common/data/edj_image_list/M01_icon_bubble_drm.png b/common/data/edj_image_list/M01_icon_bubble_drm.png
new file mode 100755 (executable)
index 0000000..ecdfc83
Binary files /dev/null and b/common/data/edj_image_list/M01_icon_bubble_drm.png differ
diff --git a/common/data/edj_image_list/M01_icon_composer.png b/common/data/edj_image_list/M01_icon_composer.png
new file mode 100644 (file)
index 0000000..a0adf12
Binary files /dev/null and b/common/data/edj_image_list/M01_icon_composer.png differ
diff --git a/common/data/edj_image_list/M01_icon_message_status_mms_read_n.png b/common/data/edj_image_list/M01_icon_message_status_mms_read_n.png
new file mode 100644 (file)
index 0000000..886cb1a
Binary files /dev/null and b/common/data/edj_image_list/M01_icon_message_status_mms_read_n.png differ
diff --git a/common/data/edj_image_list/M01_icon_message_status_mms_sent_n.png b/common/data/edj_image_list/M01_icon_message_status_mms_sent_n.png
new file mode 100644 (file)
index 0000000..fea0230
Binary files /dev/null and b/common/data/edj_image_list/M01_icon_message_status_mms_sent_n.png differ
diff --git a/common/data/edj_image_list/M01_icon_message_status_mms_unread_n.png b/common/data/edj_image_list/M01_icon_message_status_mms_unread_n.png
new file mode 100644 (file)
index 0000000..7bbff72
Binary files /dev/null and b/common/data/edj_image_list/M01_icon_message_status_mms_unread_n.png differ
diff --git a/common/data/edj_image_list/M01_icon_message_status_sms_read_n.png b/common/data/edj_image_list/M01_icon_message_status_sms_read_n.png
new file mode 100644 (file)
index 0000000..a8b22f4
Binary files /dev/null and b/common/data/edj_image_list/M01_icon_message_status_sms_read_n.png differ
diff --git a/common/data/edj_image_list/M01_icon_message_status_sms_sent_n.png b/common/data/edj_image_list/M01_icon_message_status_sms_sent_n.png
new file mode 100644 (file)
index 0000000..9bfde36
Binary files /dev/null and b/common/data/edj_image_list/M01_icon_message_status_sms_sent_n.png differ
diff --git a/common/data/edj_image_list/M01_icon_message_status_sms_unread_n.png b/common/data/edj_image_list/M01_icon_message_status_sms_unread_n.png
new file mode 100644 (file)
index 0000000..9798115
Binary files /dev/null and b/common/data/edj_image_list/M01_icon_message_status_sms_unread_n.png differ
diff --git a/common/data/edj_image_list/M01_icon_send_schedule.png b/common/data/edj_image_list/M01_icon_send_schedule.png
new file mode 100755 (executable)
index 0000000..cfbb1af
Binary files /dev/null and b/common/data/edj_image_list/M01_icon_send_schedule.png differ
diff --git a/common/data/edj_image_list/M01_icon_send_translator.png b/common/data/edj_image_list/M01_icon_send_translator.png
new file mode 100755 (executable)
index 0000000..78e6c0a
Binary files /dev/null and b/common/data/edj_image_list/M01_icon_send_translator.png differ
diff --git a/common/data/edj_image_list/M01_title_icon_compose.png b/common/data/edj_image_list/M01_title_icon_compose.png
new file mode 100755 (executable)
index 0000000..43b1f82
Binary files /dev/null and b/common/data/edj_image_list/M01_title_icon_compose.png differ
diff --git a/common/data/edj_image_list/M02_icon_invalid.png b/common/data/edj_image_list/M02_icon_invalid.png
new file mode 100644 (file)
index 0000000..09a16fc
Binary files /dev/null and b/common/data/edj_image_list/M02_icon_invalid.png differ
diff --git a/common/data/edj_image_list/U01_icon_drm.png b/common/data/edj_image_list/U01_icon_drm.png
new file mode 100755 (executable)
index 0000000..a04c6f7
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_drm.png differ
diff --git a/common/data/edj_image_list/U01_icon_eml.png b/common/data/edj_image_list/U01_icon_eml.png
new file mode 100755 (executable)
index 0000000..008dc78
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_eml.png differ
diff --git a/common/data/edj_image_list/U01_icon_etc.png b/common/data/edj_image_list/U01_icon_etc.png
new file mode 100755 (executable)
index 0000000..6ea35ea
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_etc.png differ
diff --git a/common/data/edj_image_list/U01_icon_excel.png b/common/data/edj_image_list/U01_icon_excel.png
new file mode 100755 (executable)
index 0000000..540d8bc
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_excel.png differ
diff --git a/common/data/edj_image_list/U01_icon_file_zip.png b/common/data/edj_image_list/U01_icon_file_zip.png
new file mode 100755 (executable)
index 0000000..a288acb
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_file_zip.png differ
diff --git a/common/data/edj_image_list/U01_icon_html.png b/common/data/edj_image_list/U01_icon_html.png
new file mode 100755 (executable)
index 0000000..f7806a8
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_html.png differ
diff --git a/common/data/edj_image_list/U01_icon_hwp.png b/common/data/edj_image_list/U01_icon_hwp.png
new file mode 100755 (executable)
index 0000000..6570834
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_hwp.png differ
diff --git a/common/data/edj_image_list/U01_icon_pdf.png b/common/data/edj_image_list/U01_icon_pdf.png
new file mode 100755 (executable)
index 0000000..aefa229
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_pdf.png differ
diff --git a/common/data/edj_image_list/U01_icon_ppt.png b/common/data/edj_image_list/U01_icon_ppt.png
new file mode 100755 (executable)
index 0000000..459e6bb
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_ppt.png differ
diff --git a/common/data/edj_image_list/U01_icon_rss.png b/common/data/edj_image_list/U01_icon_rss.png
new file mode 100755 (executable)
index 0000000..8202716
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_rss.png differ
diff --git a/common/data/edj_image_list/U01_icon_svg.png b/common/data/edj_image_list/U01_icon_svg.png
new file mode 100755 (executable)
index 0000000..a6e3994
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_svg.png differ
diff --git a/common/data/edj_image_list/U01_icon_swf.png b/common/data/edj_image_list/U01_icon_swf.png
new file mode 100755 (executable)
index 0000000..eb1e51b
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_swf.png differ
diff --git a/common/data/edj_image_list/U01_icon_text.png b/common/data/edj_image_list/U01_icon_text.png
new file mode 100755 (executable)
index 0000000..c1244a5
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_text.png differ
diff --git a/common/data/edj_image_list/U01_icon_tpk.png b/common/data/edj_image_list/U01_icon_tpk.png
new file mode 100755 (executable)
index 0000000..97c3582
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_tpk.png differ
diff --git a/common/data/edj_image_list/U01_icon_vcf.png b/common/data/edj_image_list/U01_icon_vcf.png
new file mode 100755 (executable)
index 0000000..6c21e42
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_vcf.png differ
diff --git a/common/data/edj_image_list/U01_icon_vcs.png b/common/data/edj_image_list/U01_icon_vcs.png
new file mode 100755 (executable)
index 0000000..b40edf4
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_vcs.png differ
diff --git a/common/data/edj_image_list/U01_icon_word.png b/common/data/edj_image_list/U01_icon_word.png
new file mode 100755 (executable)
index 0000000..f1f1f8c
Binary files /dev/null and b/common/data/edj_image_list/U01_icon_word.png differ
diff --git a/common/data/edj_image_list/U01_list_icon_amr.png b/common/data/edj_image_list/U01_list_icon_amr.png
new file mode 100755 (executable)
index 0000000..e246a58
Binary files /dev/null and b/common/data/edj_image_list/U01_list_icon_amr.png differ
diff --git a/common/data/edj_image_list/U01_list_icon_image.png b/common/data/edj_image_list/U01_list_icon_image.png
new file mode 100755 (executable)
index 0000000..df359bb
Binary files /dev/null and b/common/data/edj_image_list/U01_list_icon_image.png differ
diff --git a/common/data/edj_image_list/U01_list_icon_mp3.png b/common/data/edj_image_list/U01_list_icon_mp3.png
new file mode 100755 (executable)
index 0000000..895cc1a
Binary files /dev/null and b/common/data/edj_image_list/U01_list_icon_mp3.png differ
diff --git a/common/data/edj_image_list/U01_list_icon_mp4.png b/common/data/edj_image_list/U01_list_icon_mp4.png
new file mode 100755 (executable)
index 0000000..a8d295d
Binary files /dev/null and b/common/data/edj_image_list/U01_list_icon_mp4.png differ
diff --git a/common/data/edj_image_list/attach_icon.png b/common/data/edj_image_list/attach_icon.png
new file mode 100755 (executable)
index 0000000..062ce45
Binary files /dev/null and b/common/data/edj_image_list/attach_icon.png differ
diff --git a/common/data/edj_image_list/badge_icon_draft_pencil.png b/common/data/edj_image_list/badge_icon_draft_pencil.png
new file mode 100755 (executable)
index 0000000..0558207
Binary files /dev/null and b/common/data/edj_image_list/badge_icon_draft_pencil.png differ
diff --git a/common/data/edj_image_list/btn_conversation_emotion.png b/common/data/edj_image_list/btn_conversation_emotion.png
new file mode 100755 (executable)
index 0000000..d83beca
Binary files /dev/null and b/common/data/edj_image_list/btn_conversation_emotion.png differ
diff --git a/common/data/edj_image_list/btn_conversation_message_sending.png b/common/data/edj_image_list/btn_conversation_message_sending.png
new file mode 100755 (executable)
index 0000000..305b4ee
Binary files /dev/null and b/common/data/edj_image_list/btn_conversation_message_sending.png differ
diff --git a/common/data/edj_image_list/btn_conversation_mms_message_sending.png b/common/data/edj_image_list/btn_conversation_mms_message_sending.png
new file mode 100755 (executable)
index 0000000..f5f29e0
Binary files /dev/null and b/common/data/edj_image_list/btn_conversation_mms_message_sending.png differ
diff --git a/common/data/edj_image_list/core_button_add.png b/common/data/edj_image_list/core_button_add.png
new file mode 100644 (file)
index 0000000..0ced369
Binary files /dev/null and b/common/data/edj_image_list/core_button_add.png differ
diff --git a/common/data/edj_image_list/icon_emotion_angry.png b/common/data/edj_image_list/icon_emotion_angry.png
new file mode 100755 (executable)
index 0000000..c85ace1
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_angry.png differ
diff --git a/common/data/edj_image_list/icon_emotion_confused.png b/common/data/edj_image_list/icon_emotion_confused.png
new file mode 100755 (executable)
index 0000000..498a43f
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_confused.png differ
diff --git a/common/data/edj_image_list/icon_emotion_crying.png b/common/data/edj_image_list/icon_emotion_crying.png
new file mode 100755 (executable)
index 0000000..abc96a8
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_crying.png differ
diff --git a/common/data/edj_image_list/icon_emotion_disappointed.png b/common/data/edj_image_list/icon_emotion_disappointed.png
new file mode 100755 (executable)
index 0000000..62e62e1
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_disappointed.png differ
diff --git a/common/data/edj_image_list/icon_emotion_embarrassed.png b/common/data/edj_image_list/icon_emotion_embarrassed.png
new file mode 100755 (executable)
index 0000000..739941f
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_embarrassed.png differ
diff --git a/common/data/edj_image_list/icon_emotion_happy.png b/common/data/edj_image_list/icon_emotion_happy.png
new file mode 100755 (executable)
index 0000000..67ccb4e
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_happy.png differ
diff --git a/common/data/edj_image_list/icon_emotion_heart.png b/common/data/edj_image_list/icon_emotion_heart.png
new file mode 100755 (executable)
index 0000000..a618ce5
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_heart.png differ
diff --git a/common/data/edj_image_list/icon_emotion_kiss.png b/common/data/edj_image_list/icon_emotion_kiss.png
new file mode 100755 (executable)
index 0000000..58b43ad
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_kiss.png differ
diff --git a/common/data/edj_image_list/icon_emotion_laughing.png b/common/data/edj_image_list/icon_emotion_laughing.png
new file mode 100755 (executable)
index 0000000..90069b3
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_laughing.png differ
diff --git a/common/data/edj_image_list/icon_emotion_no_speak.png b/common/data/edj_image_list/icon_emotion_no_speak.png
new file mode 100755 (executable)
index 0000000..5a93d82
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_no_speak.png differ
diff --git a/common/data/edj_image_list/icon_emotion_pokerface.png b/common/data/edj_image_list/icon_emotion_pokerface.png
new file mode 100755 (executable)
index 0000000..49aa004
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_pokerface.png differ
diff --git a/common/data/edj_image_list/icon_emotion_raised_eyebrow.png b/common/data/edj_image_list/icon_emotion_raised_eyebrow.png
new file mode 100755 (executable)
index 0000000..644f123
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_raised_eyebrow.png differ
diff --git a/common/data/edj_image_list/icon_emotion_sad.png b/common/data/edj_image_list/icon_emotion_sad.png
new file mode 100755 (executable)
index 0000000..6a31554
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_sad.png differ
diff --git a/common/data/edj_image_list/icon_emotion_stick_out_tongue.png b/common/data/edj_image_list/icon_emotion_stick_out_tongue.png
new file mode 100755 (executable)
index 0000000..5aeb261
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_stick_out_tongue.png differ
diff --git a/common/data/edj_image_list/icon_emotion_sunglasses.png b/common/data/edj_image_list/icon_emotion_sunglasses.png
new file mode 100755 (executable)
index 0000000..4f9e591
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_sunglasses.png differ
diff --git a/common/data/edj_image_list/icon_emotion_surprised.png b/common/data/edj_image_list/icon_emotion_surprised.png
new file mode 100755 (executable)
index 0000000..fb7da2b
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_surprised.png differ
diff --git a/common/data/edj_image_list/icon_emotion_wink.png b/common/data/edj_image_list/icon_emotion_wink.png
new file mode 100755 (executable)
index 0000000..2c452a0
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_wink.png differ
diff --git a/common/data/edj_image_list/icon_emotion_yelling.png b/common/data/edj_image_list/icon_emotion_yelling.png
new file mode 100755 (executable)
index 0000000..a0b41a0
Binary files /dev/null and b/common/data/edj_image_list/icon_emotion_yelling.png differ
diff --git a/common/data/edj_image_list/masking_message_list.png b/common/data/edj_image_list/masking_message_list.png
new file mode 100755 (executable)
index 0000000..6532233
Binary files /dev/null and b/common/data/edj_image_list/masking_message_list.png differ
diff --git a/common/data/edj_image_list/messages_add_contact.png b/common/data/edj_image_list/messages_add_contact.png
new file mode 100644 (file)
index 0000000..607d032
Binary files /dev/null and b/common/data/edj_image_list/messages_add_contact.png differ
diff --git a/common/data/edj_image_list/messages_add_object.png b/common/data/edj_image_list/messages_add_object.png
new file mode 100644 (file)
index 0000000..ef87e7b
Binary files /dev/null and b/common/data/edj_image_list/messages_add_object.png differ
diff --git a/common/data/edj_image_list/title_thumbnail_image.png b/common/data/edj_image_list/title_thumbnail_image.png
new file mode 100755 (executable)
index 0000000..94e9bed
Binary files /dev/null and b/common/data/edj_image_list/title_thumbnail_image.png differ
diff --git a/common/data/edj_image_list/title_thumbnail_image_bg.png b/common/data/edj_image_list/title_thumbnail_image_bg.png
new file mode 100755 (executable)
index 0000000..b5e8cb9
Binary files /dev/null and b/common/data/edj_image_list/title_thumbnail_image_bg.png differ
diff --git a/common/data/edj_image_list/title_thumbnail_image_group.png b/common/data/edj_image_list/title_thumbnail_image_group.png
new file mode 100755 (executable)
index 0000000..0fc0107
Binary files /dev/null and b/common/data/edj_image_list/title_thumbnail_image_group.png differ
diff --git a/common/data/icons/noti_emergency_mode.png b/common/data/icons/noti_emergency_mode.png
new file mode 100755 (executable)
index 0000000..d03286b
Binary files /dev/null and b/common/data/icons/noti_emergency_mode.png differ
diff --git a/common/data/icons/org.tizen.message.png b/common/data/icons/org.tizen.message.png
new file mode 100755 (executable)
index 0000000..b744368
Binary files /dev/null and b/common/data/icons/org.tizen.message.png differ
diff --git a/common/data/icons/status_bar_cancel_message.png b/common/data/icons/status_bar_cancel_message.png
new file mode 100755 (executable)
index 0000000..206bb61
Binary files /dev/null and b/common/data/icons/status_bar_cancel_message.png differ
diff --git a/common/data/icons/status_bar_delivery_report_message.png b/common/data/icons/status_bar_delivery_report_message.png
new file mode 100755 (executable)
index 0000000..cbf5c6c
Binary files /dev/null and b/common/data/icons/status_bar_delivery_report_message.png differ
diff --git a/common/data/icons/status_bar_message.png b/common/data/icons/status_bar_message.png
new file mode 100755 (executable)
index 0000000..1613c6e
Binary files /dev/null and b/common/data/icons/status_bar_message.png differ
diff --git a/common/data/icons/status_bar_read_report_message.png b/common/data/icons/status_bar_read_report_message.png
new file mode 100755 (executable)
index 0000000..ee59aed
Binary files /dev/null and b/common/data/icons/status_bar_read_report_message.png differ
diff --git a/common/data/icons/status_bar_sim_card_full.png b/common/data/icons/status_bar_sim_card_full.png
new file mode 100755 (executable)
index 0000000..be221fb
Binary files /dev/null and b/common/data/icons/status_bar_sim_card_full.png differ
diff --git a/common/data/icons/status_bar_voicemail.png b/common/data/icons/status_bar_voicemail.png
new file mode 100755 (executable)
index 0000000..8a30e15
Binary files /dev/null and b/common/data/icons/status_bar_voicemail.png differ
diff --git a/common/data/images/07_message_sim.png b/common/data/images/07_message_sim.png
new file mode 100755 (executable)
index 0000000..84aff16
Binary files /dev/null and b/common/data/images/07_message_sim.png differ
diff --git a/common/data/images/dotted_line_divider.png b/common/data/images/dotted_line_divider.png
new file mode 100644 (file)
index 0000000..db27023
Binary files /dev/null and b/common/data/images/dotted_line_divider.png differ
diff --git a/common/data/images/list_ic_user_thumb_masking.png b/common/data/images/list_ic_user_thumb_masking.png
new file mode 100755 (executable)
index 0000000..6532233
Binary files /dev/null and b/common/data/images/list_ic_user_thumb_masking.png differ
diff --git a/common/data/images/message_floating_button_icon.png b/common/data/images/message_floating_button_icon.png
new file mode 100644 (file)
index 0000000..9cb20e1
Binary files /dev/null and b/common/data/images/message_floating_button_icon.png differ
diff --git a/common/data/images/messages_list_thumb_image_CB.png b/common/data/images/messages_list_thumb_image_CB.png
new file mode 100644 (file)
index 0000000..95b85ce
Binary files /dev/null and b/common/data/images/messages_list_thumb_image_CB.png differ
diff --git a/common/data/images/messages_list_thumb_image_OTA.png b/common/data/images/messages_list_thumb_image_OTA.png
new file mode 100644 (file)
index 0000000..ffef384
Binary files /dev/null and b/common/data/images/messages_list_thumb_image_OTA.png differ
diff --git a/common/data/images/messages_list_thumb_image_bg.png b/common/data/images/messages_list_thumb_image_bg.png
new file mode 100644 (file)
index 0000000..fbe98ac
Binary files /dev/null and b/common/data/images/messages_list_thumb_image_bg.png differ
diff --git a/common/data/images/messages_list_thumb_image_multi.png b/common/data/images/messages_list_thumb_image_multi.png
new file mode 100644 (file)
index 0000000..22071e5
Binary files /dev/null and b/common/data/images/messages_list_thumb_image_multi.png differ
diff --git a/common/data/images/messages_list_thumb_image_push.png b/common/data/images/messages_list_thumb_image_push.png
new file mode 100644 (file)
index 0000000..948cba9
Binary files /dev/null and b/common/data/images/messages_list_thumb_image_push.png differ
diff --git a/common/data/images/messages_list_thumb_image_single.png b/common/data/images/messages_list_thumb_image_single.png
new file mode 100644 (file)
index 0000000..23a346e
Binary files /dev/null and b/common/data/images/messages_list_thumb_image_single.png differ
diff --git a/common/data/images/title_thumbnail_image.png b/common/data/images/title_thumbnail_image.png
new file mode 100755 (executable)
index 0000000..94e9bed
Binary files /dev/null and b/common/data/images/title_thumbnail_image.png differ
diff --git a/common/data/images/title_thumbnail_image_group.png b/common/data/images/title_thumbnail_image_group.png
new file mode 100755 (executable)
index 0000000..0fc0107
Binary files /dev/null and b/common/data/images/title_thumbnail_image_group.png differ
diff --git a/common/data/msg_bubble_entry.edc b/common/data/msg_bubble_entry.edc
new file mode 100755 (executable)
index 0000000..84845c7
--- /dev/null
@@ -0,0 +1,1300 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "../msg-ui-color.h"
+
+#define ENTRY_TEXTBLOCK_MIN_WIDTH 135
+#define ENTRY_SELECTION_BG_COLOR 90 123 138 127
+#define ENTRY_BUBBLE_EX_PAD 58
+#define ENTRY_BUBBLE_EX_CALLERID_PAD 178
+#define ENTRY_BUBBLE_IX_PAD 20
+#define ENTRY_BUBBLE_Y_PAD 15
+#define ENTRY_BUBBLE_BOTTOM_PAD 17
+#define ENTRY_BUBBLE_CALLERID_PAD 115
+#define ENTRY_BUBBLE_CALLERID_ICON_PAD 16
+#define ENTRY_BUBBLE_CALLERID_WIDTH 99
+#define ENTRY_BUBBLE_CALLERID_HEIGHT 99
+#define ENTRY_BUBBLE_GROUPCHAT_PAD 42
+#define ENTRY_BUBBLE_GROUPCHAT_TEXT_PAD 38
+#define ENTRY_BUBBLE_STATUS_PAD 55
+#define ENTRY_SELECTION_BG_COLOR 90 123 138 127
+#define ENTRY_BUBBLE_SENT_TEXT_SHADOW_STYLE "shadow,bottom"
+#define ENTRY_BUBBLE_SENT_TEXT_SHADOW_COLOR "#ffffff7f"
+#define ENTRY_BUBBLE_RECEV_TEXT_SHADOW_STYLE "shadow,bottom"
+#define ENTRY_BUBBLE_RECEV_TEXT_SHADOW_COLOR "#ffffff7f"
+#define ENTRY_BUBBLE_TEXT_SIZE 36
+
+#define RECV_BUBBLE_STYLE_01_BORDER 55 24 55 15
+#define RECV_BUBBLE_STYLE_02_BORDER 55 24 55 15
+#define RECV_BUBBLE_STYLE_03_BORDER 40 39 31 39
+#define RECV_BUBBLE_STYLE_04_BORDER 82 46 44 26
+#define RECV_BUBBLE_STYLE_05_BORDER 111 17 78 30
+
+#define SENT_BUBBLE_STYLE_01_BORDER 24 55 55 15
+#define SENT_BUBBLE_STYLE_02_BORDER 24 55 55 15
+#define SENT_BUBBLE_STYLE_03_BORDER 40 39 31 39
+#define SENT_BUBBLE_STYLE_04_BORDER 46 82 44 26
+#define SENT_BUBBLE_STYLE_05_BORDER 17 111 78 30
+
+#define THUMB_WIDTH 80
+#define THUMB_HEIGHT 80
+
+/* GUI_HD sizes */
+#define SIDE_SPACER_WIDTH 32
+#define CHECKBOX_SIZE 50
+#define NEARMESSAGE_SPACER 248
+#define MIN_BUBBLE_BG_HEIGHT 122
+#define MIN_BUBBLE_BG_WIDTH 120
+#define BUBBLE_TOP_PAD 10
+#define BUBBLE_SIDE_PAD 34
+#define BUBBLE_BOTTOM_PAD 16
+#define BADGE_SIZE 56
+#define BADGE_LEFT_PAD 26
+#define BADGE_RIGHT_PAD 44
+#define BADGE_TOP_PAD 7
+#define BADGE_SPACER 126
+#define SELECT_VIEW_SPACER 114
+#define STATUS_SIZE 44
+
+images {
+       image: "bubble_with_search_result_receive.#.png" COMP;
+       image: "bubble_with_search_result_send.#.png" COMP;
+       image: "messages_bubble_bg.#.png" COMP;
+       image: "messages_bubble_line_draft.#.png" COMP;
+}
+
+#define MAKE_COLOR_CLASS(NAME, COLORS)\
+       color_class {\
+               name: NAME;\
+               color: COLORS;\
+       }\
+
+color_classes {
+       MAKE_COLOR_CLASS("bubble_recieve_color",COLOR_CONV_BUBBLE_RECIEVE)
+       MAKE_COLOR_CLASS("bubble_recieve_color_pressed",COLOR_CONV_BUBBLE_RECIEVE_PRESSED)
+       MAKE_COLOR_CLASS("bubble_send_color",COLOR_CONV_BUBBLE_SEND)
+       MAKE_COLOR_CLASS("bubble_send_color_pressed", COLOR_CONV_BUBBLE_SEND_PRESSED)
+       MAKE_COLOR_CLASS("bubble_draft_color",COLOR_CONV_BUBBLE_DRAFT)
+       MAKE_COLOR_CLASS("bubble_draft_color_pressed",COLOR_CONV_BUBBLE_DRAFT_PRESED)
+       MAKE_COLOR_CLASS("bubble_failed_color",COLOR_CONV_BUBBLE_FAILED)
+       MAKE_COLOR_CLASS("bubble_failed_color_pressed",COLOR_CONV_BUBBLE_FAILED_PRESSED)
+}
+
+group {
+       name: "elm/entry/selection/default";
+       parts {
+               part { name: "bg";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               color: ENTRY_SELECTION_BG_COLOR;
+                       }
+               }
+       }
+}
+
+group {
+       name: "elm/entry/anchor/default";
+       parts {
+               part { name: "bg";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+       }
+}
+
+styles {
+       style {
+               name: "entry_bubble_sent_textblock_style";
+               base: "font=Tizen:style=Roman font_size="ENTRY_BUBBLE_TEXT_SIZE" color=#FFFFFF left_margin=1 right_margin=2 wrap=mixed text_class=label";
+               tag:  "tab" "\t";
+               tag:  "em" "+ font=Tizen:style=Oblique";
+               tag:  "b" "+ font=Tizen:style=Bold";
+               tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+               tag:  "hilight" "+ font=Tizen:style=Bold";
+               tag:  "match" "+ color=#FFFFFF color_class=T1067";
+       }
+       style {
+               name: "entry_bubble_receive_textblock_style";
+               base: "font=Tizen:style=Roman font_size="ENTRY_BUBBLE_TEXT_SIZE" color=#FFFFFF  left_margin=1 right_margin=2 wrap=mixed text_class=label";
+               tag:  "tab" "\t";
+               tag:  "em" "+ font=Tizen:style=Oblique";
+               tag:  "b" "+ font=Tizen:style=Bold";
+               tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+               tag:  "hilight" "+ font=Tizen:style=Bold";
+               tag:  "match" "+ color=#FFFFFF color_class=T1067";
+       }
+       style {
+               name: "entry_textblock_disabled_style";
+               base: "font=Tizen:style=Roman font_size="ENTRY_BUBBLE_TEXT_SIZE" color=#00000080 left_margin=1 right_margin=2 wrap=mixed text_class=label";
+               tag:  "tab" "\t";
+               tag:  "em" "+ font=Tizen:style=Oblique";
+               tag:  "b" "+ font=Tizen:style=Bold";
+               tag:  "link" "+ color=#00000080 underline=on underline_color=#00000080";
+               tag:  "hilight" "+ font=Tizen:style=Bold";
+               tag:  "match" "+ color=#FFFFFF color_class=T1067";
+       }
+       style {
+               name: "entry_bubble_textblock_draft_style";
+               base: "font=Tizen:style=Roman font_size="ENTRY_BUBBLE_TEXT_SIZE" color=#00000080 left_margin=1 right_margin=2 wrap=mixed text_class=label";
+               tag:  "tab" "\t";
+               tag:  "em" "+ font=Tizen:style=Oblique";
+               tag:  "b" "+ font=Tizen:style=Bold";
+               tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+               tag:  "hilight" "+ font=Tizen:style=Bold";
+               tag:  "match" "+ color=#FFFFFF color_class=T1067";
+       }
+}
+
+/* Entry's bubble style */
+#define BUBBLE_RECV_MESSAGE_STYLE(style_name, bubble_image, focus_image, bg_color, press_color, left_pad, right_pad, top_pad, bottom_pad) \
+group { \
+       name:  "elm/label/base/readmessage/custom/"style_name; \
+       script { \
+               public anchor_down = 0; \
+       } \
+       data { \
+               item: "focus_highlight" "on"; \
+       } \
+       parts { \
+               part { \
+                       name: "base"; \
+                       type: RECT; \
+                       mouse_events: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 255 255 255 0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.left.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1.relative: 0.0 0.0; \
+                               rel2.relative: 0.0 1.0; \
+                               align: 0.0 0.0; \
+                               min: SIDE_SPACER_WIDTH 0; \
+                               max: SIDE_SPACER_WIDTH 0; \
+                               fixed: 1 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.top.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                       state: "default" 0.0; \
+                       rel1 { to_y: "elm.thumbnail.swallow"; relative: 0.0 1.0; } \
+                       rel2 { to_y: "elm.thumbnail.swallow"; relative: 0.0 1.0; } \
+                       align: 0.0 0.0; \
+                       min: 0 8; \
+                       max: 0 8; \
+                       fixed: 1 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.thumbnail.swallow"; \
+                       type: SWALLOW; \
+                       scale: 1; \
+                       description { \
+                       state: "default" 0.0; \
+                       fixed: 1 1; \
+                       rel1 { to_x: "elm.image.bg"; relative: 0.0 0.0; } \
+                       rel2 { to_x: "elm.image.bg"; relative: 0.0 0.0; } \
+                       align: 0.0 0.0; \
+                       min: THUMB_WIDTH THUMB_HEIGHT; \
+                       max: THUMB_WIDTH THUMB_HEIGHT; \
+                       visible: 1; \
+                       color: 255 0 0 100; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.status.pad"; \
+                       type: RECT; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1.relative: 1.0 0.0; \
+                               align: 1.0 0.5; \
+                               min: ENTRY_BUBBLE_STATUS_PAD 0; \
+                               fixed: 1 0; \
+                               visible: 0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.right.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to_x: "elm.bubble.status.pad"; relative: 0.0 0.0; } \
+                               rel2 { to_x: "elm.bubble.status.pad"; relative: 0.0 1.0; } \
+                               align: 1.0 0.5; \
+                               min: (NEARMESSAGE_SPACER + SIDE_SPACER_WIDTH - ENTRY_BUBBLE_STATUS_PAD) 0; \
+                               fixed: 1 0; \
+                       } \
+                       description { \
+                               state: "selectview" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: (NEARMESSAGE_SPACER + SIDE_SPACER_WIDTH - ENTRY_BUBBLE_STATUS_PAD) 0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.lefttop.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to_x: "elm.bubble.left.pad"; to_y: "elm.bubble.top.pad"; relative: 1.0 1.0; } \
+                               rel2 { to_x: "elm.bubble.left.pad"; to_y: "elm.bubble.top.pad"; } \
+                               align: 0.0 0.0; \
+                               min: left_pad top_pad; \
+                               fixed: 1 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.righttop.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to_x: "elm.bubble.right.pad"; to_y: "elm.bubble.top.pad"; relative: 0.0 1.0; } \
+                               rel2 { to_x: "elm.bubble.right.pad"; to_y: "elm.bubble.top.pad"; relative: 0.0 1.0; } \
+                               align: 1.0 0.0; \
+                               min: right_pad top_pad; \
+                               fixed: 1 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.image.bg"; \
+                       type: IMAGE; \
+                       mouse_events: 1; \
+                       repeat_events: 1; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: 0 0; \
+                               rel1.to: "elm.bubble.lefttop.pad"; \
+                               rel2.to: "elm.bubble.rightbottom.pad"; \
+                               color_class: bg_color; \
+                               image { \
+                                       normal: bubble_image; \
+                               } \
+                       } \
+                       description { \
+                               state: "pressed" 0.0; \
+                               inherit: "default" 0.0; \
+                               color_class: press_color; \
+                       } \
+               } \
+               part { \
+                       name: "elm.image.focus"; \
+                       type: IMAGE; \
+                       mouse_events: 0; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: 0 0; \
+                               rel1.to: "elm.image.bg"; \
+                               rel2.to: "elm.image.bg"; \
+                               image { \
+                                       normal: focus_image; \
+                               } \
+                               visible: 0; \
+                       } \
+                       description { \
+                               state: "focused" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: 0 48; \
+                               color: COLOR_BLUE_EDC; \
+                               visible: 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.text"; \
+                       type: TEXTBLOCK; \
+                       mouse_events: 1; \
+                       repeat_events: 1; \
+                       scale: 1; \
+                       multiline: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: (MIN_BUBBLE_BG_WIDTH - left_pad - right_pad) (MIN_BUBBLE_BG_HEIGHT - top_pad - bottom_pad); \
+                               align: 0.0 0.0; \
+                               rel1 { to: "elm.bubble.lefttop.pad"; relative: 1.0 1.0; } \
+                               rel2 { to: "elm.bubble.righttop.pad"; relative: 0.0 1.0; } \
+                               text { \
+                                       style: "entry_bubble_receive_textblock_style"; \
+                                       min: 0 1; \
+                                       max: 1 0; \
+                               } \
+                       } \
+               } \
+               part { \
+                       name: "elm.rect.middle.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to: "elm.text"; relative: 0.0 1.0; } \
+                               rel2.to: "elm.text"; \
+                               align: 0.5 0.0; \
+                               min: 0 0; \
+                       } \
+                       description { \
+                               state: "show" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: 0 16; \
+                       } \
+               } \
+               part { \
+                       name: "elm.swallow.end"; \
+                       type: SWALLOW; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to: "elm.rect.middle.pad"; relative: 0.0 1.0; } \
+                               rel2.to: "elm.rect.middle.pad"; \
+                               align: 0.0 0.0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.rightbottom.pad"; \
+                       type: RECT; \
+                       scale: 1; \
+                       description { \
+                               rel1 { to: "elm.swallow.end"; relative: 1.0 1.0; } \
+                               rel2.to: "elm.swallow.end"; \
+                               align: 0.0 0.0; \
+                               min: right_pad bottom_pad; \
+                               visible: 0; \
+                               fixed: 1 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.swallow.status"; \
+                       type: SWALLOW; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 {to_x: "elm.text.time"; to_y: "elm.text.time"; relative: 0.0 0.0;} \
+                               rel2 {to_x: "elm.text.time"; to_y: "elm.text.time"; relative: 0.0 0.0;} \
+                               align: 0.0 1.0; \
+                               min: STATUS_SIZE STATUS_SIZE; \
+                               max: STATUS_SIZE STATUS_SIZE; \
+                               fixed: 1 1; \
+                               visible: 0; \
+                       } \
+                       description { \
+                               state: "enabled" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.text.time"; \
+                       type: TEXT; \
+                       scale: 1; \
+                       mouse_events: 0; \
+                       repeat_events: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               text { \
+                                       size: 28; \
+                                       min: 1 1; \
+                                       align: 0.0 0.5; \
+                               } \
+                               color: BUBBLE_TIME_TEXT_COLOR; \
+                               rel1 {to_x: "elm.thumbnail.swallow"; relative: 1.0 0.0; offset: 13 0; } \
+                               rel2 {to_y: "elm.image.bg"; relative: 0.0 0.0; offset: 0 -3; } \
+                               align: 0.0 1.0; \
+                               min: 0 38; \
+                               max: 0 38; \
+                               fixed: 1 1; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bottom.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               rel1 { to_y: "elm.image.bg"; relative: 0.0 1.0; } \
+                               min: 0 ENTRY_BUBBLE_BOTTOM_PAD; \
+                       } \
+               } \
+               part { \
+                       name: "elm.swallow.icon1"; \
+                       type: SWALLOW; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to: "elm.swallow.status"; relative: 1.0 0.0; offset: 3 0; } \
+                               rel2 { to: "elm.swallow.status"; relative: 1.0 1.0;} \
+                               min: STATUS_SIZE STATUS_SIZE; \
+                               max: STATUS_SIZE STATUS_SIZE; \
+                               fixed: 1 1; \
+                               align: 0.0 0.0; \
+                               visible: 0; \
+                       } \
+                       description { \
+                               state: "contents_on" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.select_icon.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to_y: "elm.image.bg"; relative: 1.0 0.0; } \
+                               rel2 { to_y: "elm.image.bg"; relative: 1.0 1.0; } \
+                               align: 1.0 0.0; \
+                               fixed: 1 1; \
+                               min: 0 0; \
+                       } \
+                       description { \
+                               state: "selectview" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: SIDE_SPACER_WIDTH 0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.swallow.select_icon"; \
+                       type: SWALLOW; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               align: 1.0 0.5; \
+                               fixed: 1 1; \
+                               rel1 { to: "elm.bubble.select_icon.pad"; relative: 0.0 0.0; } \
+                               rel2 { to: "elm.bubble.select_icon.pad"; relative: 0.0 1.0; } \
+                               min: 0 0; \
+                               max: 0 0; \
+                               visible: 0; \
+                       } \
+                       description { \
+                               state: "selectview" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: CHECKBOX_SIZE CHECKBOX_SIZE; \
+                               max: CHECKBOX_SIZE CHECKBOX_SIZE; \
+                               visible: 1; \
+                       } \
+               } \
+       } \
+       programs { \
+               program { \
+                       name: "focus"; \
+                       signal: "load"; \
+                       source: ""; \
+                       action: FOCUS_SET; \
+                       target: "elm.text"; \
+               } \
+               program { \
+                       name: "action_focus";   \
+                       signal: "elm,action,focus_highlight,show"; \
+                       source: "elm"; \
+                       action: STATE_SET "focused" 0.0; \
+                       target: "elm.image.bg"; \
+               } \
+               program { \
+                       name: "action_unfocus"; \
+                       signal: "elm,action,focus_highlight,hide"; \
+                       source: "elm"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.image.bg"; \
+               } \
+               program { \
+                       name: "selectview_on"; \
+                       signal: "elm,state,select,enable"; \
+                       source: "elm"; \
+                       action: STATE_SET "selectview" 0.0; \
+                       target: "elm.bubble.select_icon.pad"; \
+                       target: "elm.bubble.swallow.select_icon"; \
+                       target: "elm.bubble.right.pad"; \
+               } \
+               program { \
+                       name: "selectview_off"; \
+                       signal: "elm,state,select,disable"; \
+                       source: "elm"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.bubble.select_icon.pad"; \
+                       target: "elm.bubble.swallow.select_icon"; \
+                       target: "elm.bubble.right.pad"; \
+               } \
+               program { \
+                       name: "go_textstatus_on"; \
+                       signal: "elm,state,text,status,enabled"; \
+                       source: ""; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.text.time"; \
+                       after: "go_contentstatus_off"; \
+               } \
+               program { \
+                       name: "go_textstatus_off"; \
+                       signal: "elm,state,text,status,disabled"; \
+                       source: ""; \
+                       action: STATE_SET "disabled" 0.0; \
+                       target: "elm.text.time"; \
+               } \
+               program { \
+                       name: "go_contentstatus_on"; \
+                       signal: "elm,state,content,status,enabled"; \
+                       source: ""; \
+                       action: STATE_SET "enabled" 0.0; \
+                       target: "elm.swallow.status"; \
+                       after: "go_textstatus_off"; \
+               } \
+               program { \
+                       name: "go_contentstatus_off"; \
+                       signal: "elm,state,content,status,disabled"; \
+                       source: ""; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.swallow.status"; \
+               } \
+               program { \
+                       name: "focus_show"; \
+                       signal: "elm,state,focus,show"; \
+                       source: ""; \
+                       action: STATE_SET "focused" 0.0; \
+                       target: "elm.image.focus"; \
+               } \
+               program { \
+                       name: "focus_off"; \
+                       signal: "elm,state,focus,hide"; \
+                       source: ""; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.image.focus"; \
+               } \
+               program { \
+                       name: "show_middle_pad"; \
+                       signal: "elm,state,middle,pad,enabled"; \
+                       source: "elm"; \
+                       action: STATE_SET "show" 0.0; \
+                       target: "elm.rect.middle.pad"; \
+               } \
+               program { \
+                       name: "hide_middle_pad"; \
+                       signal: "elm,state,middle,pad,disabled"; \
+                       source: "elm"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.rect.middle.pad"; \
+               } \
+               program { \
+                       name: "go_contents_on"; \
+                       signal: "elm,state,contents,enabled"; \
+                       source: ""; \
+                       action: STATE_SET "contents_on" 0.0; \
+                       target: "elm.swallow.icon1"; \
+               } \
+               program { \
+                       name: "go_contents_off"; \
+                       signal: "elm,state,contents,disabled"; \
+                       source: ""; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.swallow.icon1"; \
+               } \
+               program { \
+                       name: "anchor_pressed"; \
+                       signal: "elm,state,anchor,pressed"; \
+                       source: "*"; \
+                       script { \
+                               set_int(anchor_down, 1); \
+                       } \
+               } \
+               program { \
+                       name: "anchor_released"; \
+                       signal: "elm,state,anchor,released"; \
+                       source: "*"; \
+                       script { \
+                               set_int(anchor_down, 0); \
+                       } \
+               } \
+               program { \
+                       name: "bubble_pressed"; \
+                       signal: "mouse,down,1"; \
+                       source: "elm.image.bg"; \
+                       script { \
+                               if (get_int(anchor_down) == 0) { \
+                                       set_state(PART:"elm.image.bg", "pressed", 0.0);\
+                               } \
+                       } \
+               } \
+               program { \
+                       name: "bubble_released"; \
+                       signal: "mouse,up,1"; \
+                       source: "*"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.image.bg"; \
+               } \
+               program { \
+                       name: "attachment_click"; \
+                       signal: "mouse,clicked,1"; \
+                       source: "elm.rect.attachment"; \
+                       action: SIGNAL_EMIT "label,swallow,clicked" ""; \
+               } \
+               program { \
+                       name: "sound_click"; \
+                       signal: "mouse,clicked,1"; \
+                       source: "elm.rect.sound"; \
+                       action: SIGNAL_EMIT "label,swallow,clicked" ""; \
+               } \
+               program { \
+                       name: "play_button_press"; \
+                       signal: "elm,state,play,sound"; \
+                       source: "elm"; \
+                       action: RUN_PLUGIN "touch_sound"; \
+               } \
+               program { \
+                       name: "touch_snd"; \
+                       signal: "bubble,anchor,clicked"; \
+                       source: "elm.text"; \
+                       action: RUN_PLUGIN "touch_sound"; \
+               } \
+       } \
+} \
+///////////////////////////////////////////////////////////////////////////
+BUBBLE_RECV_MESSAGE_STYLE("recv_style_01", "messages_bubble_bg.#.png", "messages_bubble_bg.#.png", "bubble_recieve_color", "bubble_recieve_color_pressed", BUBBLE_SIDE_PAD, BUBBLE_SIDE_PAD, BUBBLE_TOP_PAD, BUBBLE_BOTTOM_PAD)
+
+// TODO : HANDLING FOCUS
+BUBBLE_RECV_MESSAGE_STYLE("recv_style_01_focus", "messages_bubble_bg.#.png", "messages_bubble_bg.#.png", "bubble_recieve_color", "bubble_recieve_color_pressed", BUBBLE_SIDE_PAD, BUBBLE_SIDE_PAD, BUBBLE_TOP_PAD, BUBBLE_BOTTOM_PAD)
+/////////////////////////////////////////////////////////////////////////////////
+
+
+#define BUBBLE_SENT_MESSAGE_STYLE(style_name, bubble_image, focus_image, bg_color, press_color, left_pad, right_pad, top_pad, bottom_pad, textblock_style) \
+group { \
+       name: "elm/label/base/sentmessage/custom/"style_name; \
+       script { \
+               public anchor_down = 0; \
+       } \
+       data { \
+               item: "focus_highlight" "on"; \
+       } \
+       parts { \
+               part { \
+                       name: "base"; \
+                       type: RECT; \
+                       mouse_events: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 255 255 255 0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.top.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to_y: "elm.thumbnail.swallow"; relative: 0.0 1.0; } \
+                               rel2 { to_y: "elm.thumbnail.swallow"; relative: 0.0 1.0; } \
+                               align: 0.0 0.0; \
+                               min: 0 8; \
+                               max: 0 8; \
+                               fixed: 1 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.thumbnail.swallow"; \
+                       type: SWALLOW; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               fixed: 1 1; \
+                               rel1 { to_x: "elm.bubble.status.pad"; relative: 0.0 0.0; } \
+                               rel2 { to_x: "elm.bubble.status.pad"; relative: 0.0 0.0; } \
+                               align: 1.0 0.0; \
+                               min: THUMB_WIDTH THUMB_HEIGHT; \
+                               max: THUMB_WIDTH THUMB_HEIGHT; \
+                               visible: 1; \
+                               color: 255 0 0 100; \
+                       } \
+               } \
+               part { \
+                       name: "elm.pad.one"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1.relative: 0.0 0.0; \
+                               rel2.relative: 0.0 1.0; \
+                               align: 0.0 0.0; \
+                               min: BADGE_SPACER 0; \
+                               fixed: 1 1; \
+                       } \
+                       description { \
+                               state: "show" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: SIDE_SPACER_WIDTH 0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.pad.two"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to_x: "elm.pad.one"; to_y: "elm.pad.one"; relative: 1.0 0.0; } \
+                               rel2 { to_x: "elm.pad.one"; to_y: "elm.pad.one"; relative: 1.0 1.0; } \
+                               align: 0.0 0.0; \
+                               min: SELECT_VIEW_SPACER 0; \
+                               fixed: 1 1; \
+                       } \
+                       description { \
+                               state: "selectview" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: SIDE_SPACER_WIDTH 0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.left.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to_x: "elm.pad.two"; to_y: "elm.pad.two"; relative: 1.0 0.0; } \
+                               rel2 { to_x: "elm.pad.two"; to_y: "elm.pad.two"; relative: 1.0 1.0; } \
+                               align: 0.0 0.0; \
+                               min: 40 0; \
+                               fixed: 1 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.status.pad"; \
+                       type: RECT; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1.relative: 1.0 0.0; \
+                               rel2.relative: 1.0 1.0; \
+                               align: 1.0 0.5; \
+                               min: SIDE_SPACER_WIDTH 0; \
+                               max: SIDE_SPACER_WIDTH 0; \
+                               fixed: 1 0; \
+                               visible: 0; \
+                       } \
+                       description { \
+                               state: "selectview" 0.0; \
+                               inherit: "default" 0.0; \
+                               rel2.relative: 0.0 1.0; \
+                               rel2.to: "elm.bubble.swallow.select_icon"; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.select_icon.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               align: 1.0 0.0; \
+                               fixed: 1 1; \
+                               rel1 { to_y: "elm.image.bg"; relative: 1.0 0.0; } \
+                               rel2 { to_y: "elm.image.bg"; relative: 1.0 1.0; } \
+                               min: 0 0; \
+                       } \
+                       description { \
+                               state: "selectview" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: SIDE_SPACER_WIDTH 0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.swallow.select_icon"; \
+                       type: SWALLOW; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               fixed: 1 1; \
+                               rel1 { to: "elm.bubble.select_icon.pad"; relative: 0.0 0.0; } \
+                               rel2 { to: "elm.bubble.select_icon.pad"; relative: 0.0 1.0; } \
+                               align: 1.0 0.5; \
+                               min: 0 0; \
+                               max: 0 0; \
+                               visible: 0; \
+                       } \
+                       description { \
+                               state: "selectview" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: CHECKBOX_SIZE CHECKBOX_SIZE; \
+                               max: CHECKBOX_SIZE CHECKBOX_SIZE; \
+                               visible: 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.lefttop.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to_x: "elm.bubble.left.pad";  to_y: "elm.bubble.top.pad"; relative: 1.0 1.0; } \
+                               rel2 { to_x: "elm.bubble.left.pad";  to_y: "elm.bubble.top.pad"; } \
+                               align: 0.0 0.0; \
+                               min: left_pad top_pad; \
+                               fixed: 1 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.righttop.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to_x: "elm.badge.pad"; to_y: "elm.bubble.top.pad"; relative: 0.0 1.0; } \
+                               rel2 { to_x: "elm.badge.pad"; to_y: "elm.bubble.top.pad"; relative: 0.0 1.0; } \
+                               align: 1.0 0.0; \
+                               min: right_pad top_pad; \
+                               fixed: 1 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.image.bg"; \
+                       type: IMAGE; \
+                       scale: 1; \
+                       mouse_events: 1; \
+                       repeat_events: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: 0 0; \
+                               rel1 { to_x: "elm.bubble.leftbottom.pad"; to_y: "elm.bubble.lefttop.pad";} \
+                               rel2 { to_x: "elm.bubble.righttop.pad"; to_y: "elm.bubble.leftbottom.pad";} \
+                               color_class: bg_color; \
+                               image { \
+                                       normal: bubble_image; \
+                               } \
+                       } \
+                       description {   \
+                               state: "pressed" 0.0; \
+                               inherit: "default" 0.0; \
+                                       color_class: press_color; \
+                       } \
+               } \
+               part { \
+                       name: "elm.image.focus"; \
+                       type: IMAGE; \
+                       mouse_events: 0; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: 0 0; \
+                               rel1.to: "elm.image.bg"; \
+                               rel2.to: "elm.image.bg"; \
+                               image { \
+                                       normal: focus_image; \
+                               } \
+                               visible: 0; \
+                       } \
+                       description { \
+                               state: "focused" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: 0 48; \
+                               color: COLOR_BLUE_EDC; \
+                               visible: 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.text"; \
+                       type: TEXTBLOCK; \
+                       mouse_events: 1; \
+                       repeat_events: 1; \
+                       scale: 1; \
+                       multiline: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: (MIN_BUBBLE_BG_WIDTH - left_pad - right_pad) (MIN_BUBBLE_BG_HEIGHT - top_pad - bottom_pad); \
+                               align: 1.0 0.0; \
+                               rel1 { to: "elm.bubble.lefttop.pad"; relative: 1.0 1.0; } \
+                               rel2 { to: "elm.bubble.righttop.pad"; relative: 0.0 1.0; } \
+                               text { \
+                                       style: textblock_style; \
+                                       min: 0 1; \
+                                       max: 1 0; \
+                               } \
+                       } \
+               } \
+               part { \
+                       name: "elm.rect.middle.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to: "elm.text"; relative: 0.0 1.0;} \
+                               rel2.to: "elm.text"; \
+                               align: 0.5 0.0; \
+                               min: 0 0; \
+                       } \
+                       description { \
+                               state: "show" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: 0 9; \
+                       } \
+               } \
+               part { \
+                       name: "elm.swallow.end"; \
+                       type: SWALLOW; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to: "elm.rect.middle.pad"; relative: 0.0 1.0; } \
+                               rel2.to: "elm.rect.middle.pad"; \
+                               align: 1.0 0.0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bubble.leftbottom.pad"; \
+                       type: RECT; \
+                       scale: 1; \
+                       description { \
+                               rel1 { to: "elm.swallow.end"; relative: 0.0 1.0; } \
+                               rel2 { to: "elm.swallow.end"; relative: 0.0 1.0; } \
+                               align: 1.0 0.0; \
+                               min: left_pad bottom_pad; \
+                               visible: 0; \
+                               fixed: 1 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.swallow.status"; \
+                       type: SWALLOW; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 {to_x: "elm.text.time"; to_y: "elm.text.time"; relative: 1.0 0.0; } \
+                               rel2 {to_x: "elm.text.time"; to_y: "elm.text.time"; relative: 1.0 0.0; offset: -2 17;} \
+                               align: 1.0 1.0; \
+                               min: STATUS_SIZE STATUS_SIZE; \
+                               max: STATUS_SIZE STATUS_SIZE; \
+                               fixed: 1 1; \
+                               visible: 0; \
+                       } \
+                       description { \
+                               state: "enabled" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.badge.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to_x: "elm.bubble.status.pad"; to_y: "elm.image.bg"; relative: 0.0 0.0;} \
+                               rel2 { to: "elm.bubble.status.pad"; relative: 0.0 1.0;} \
+                               align: 1.0 0.0; \
+                               min: 0 0; \
+                               fixed: 1 1; \
+                       } \
+                       description { \
+                               state: "show" 0.0; \
+                               inherit: "default" 0.0; \
+                               min: (BADGE_LEFT_PAD + BADGE_SIZE + BADGE_RIGHT_PAD - SIDE_SPACER_WIDTH) 0; \
+                               max: (BADGE_LEFT_PAD + BADGE_SIZE + BADGE_RIGHT_PAD - SIDE_SPACER_WIDTH) 0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.badge.swallow"; \
+                       type: SWALLOW; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to_x: "elm.thumbnail.swallow"; to_y: "elm.badge.pad"; relative: 0.0 0.0; offset: 0 BADGE_TOP_PAD; } \
+                               rel2 { to_x: "elm.thumbnail.swallow"; to_y: "elm.badge.pad"; relative: 1.0 1.0;  } \
+                               align: 0.5 0.0; \
+                               min: BADGE_SIZE BADGE_SIZE; \
+                               max: BADGE_SIZE BADGE_SIZE; \
+                               visible: 0; \
+                               fixed: 1 1; \
+                       } \
+                       description { \
+                               state: "show"; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                       } \
+               } \
+               part { \
+                       name: "elm.text.time"; \
+                       type: TEXT; \
+                       scale: 1; \
+                       mouse_events: 0; \
+                       repeat_events: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               text { \
+                                       min: 1 1; \
+                                       size: 28; \
+                                       align: 1.0 0.5; \
+                               } \
+                               color: BUBBLE_TIME_TEXT_COLOR; \
+                               rel1 { to_x: "elm.thumbnail.swallow"; relative: 0.0 0.0; offset: -13 0; } \
+                               rel2 { to_y: "elm.image.bg"; relative: 0.0 0.0; offset: 0 -3; } \
+                               align: 0.0 1.0; \
+                               min: 0 38; \
+                               max: 0 38; \
+                               fixed: 1 1; \
+                               visible: 1; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 0; \
+                       } \
+               } \
+               part { \
+                       name: "elm.bottom.pad"; \
+                       type: SPACER; \
+                       scale: 1; \
+                       description { \
+                               rel1 { to_y: "elm.image.bg"; relative: 0.0 1.0; } \
+                               min: 0 ENTRY_BUBBLE_BOTTOM_PAD; \
+                       } \
+               } \
+               part { \
+                       name: "elm.swallow.icon1"; \
+                       type: SWALLOW; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { to: "elm.swallow.status"; relative: 0.0 0.0; } \
+                               rel2 { to: "elm.swallow.status"; relative: 0.0 0.0; } \
+                               min: STATUS_SIZE STATUS_SIZE; \
+                               max: STATUS_SIZE STATUS_SIZE; \
+                               fixed: 1 1; \
+                               align: 1.0 0.0; \
+                               visible: 0; \
+                       } \
+                       description { \
+                               state: "contents_on"; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                       } \
+               } \
+       } \
+       programs { \
+               program { \
+                       name: "focus"; \
+                       signal: "load"; \
+                       source: ""; \
+                       action: FOCUS_SET; \
+                       target: "elm.text"; \
+               } \
+               program { \
+                       name: "badge_show"; \
+                       signal: "elm,action,elm.badge.swallow,show"; \
+                       source: ""; \
+                       action: STATE_SET "show" 0.0; \
+                       target: "elm.badge.pad"; \
+                       target: "elm.badge.swallow"; \
+                       target: "elm.pad.one"; \
+               } \
+               program { \
+                       name: "badge_hide"; \
+                       signal: "elm,action,elm.badge.swallow,hide"; \
+                       source: ""; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.badge.pad"; \
+                       target: "elm.badge.swallow"; \
+                       target: "elm.pad.one"; \
+               } \
+               program { \
+                       name: "action_focus";   \
+                       signal: "elm,action,focus_highlight,show"; \
+                       source: "elm"; \
+                       action: STATE_SET "focused" 0.0; \
+                       target: "elm.image.bg"; \
+               } \
+               program { \
+                       name: "action_unfocus"; \
+                       signal: "elm,action,focus_highlight,hide"; \
+                       source: "elm"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.image.bg"; \
+               } \
+               program { \
+                       name: "selectview_on"; \
+                       signal: "elm,state,select,enable"; \
+                       source: "elm"; \
+                       action: STATE_SET "selectview" 0.0; \
+                       target: "elm.bubble.select_icon.pad"; \
+                       target: "elm.bubble.swallow.select_icon"; \
+                       target: "elm.bubble.status.pad"; \
+                       target: "elm.pad.two"; \
+               } \
+               program { \
+                       name: "selectview_off"; \
+                       signal: "elm,state,select,disable"; \
+                       source: "elm"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.bubble.select_icon.pad"; \
+                       target: "elm.bubble.swallow.select_icon"; \
+                       target: "elm.bubble.status.pad"; \
+                       target: "elm.pad.two"; \
+               } \
+               program { \
+                       name: "go_textstatus_on"; \
+                       signal: "elm,state,text,status,enabled"; \
+                       source: ""; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.text.time"; \
+                       after: "go_contentstatus_off"; \
+               } \
+               program { \
+                       name: "go_textstatus_off"; \
+                       signal: "elm,state,text,status,disabled"; \
+                       source: ""; \
+                       action: STATE_SET "disabled" 0.0; \
+                       target: "elm.text.time"; \
+               } \
+               program { \
+                       name: "focus_show"; \
+                       signal: "elm,state,focus,show"; \
+                       source: ""; \
+                       action: STATE_SET "focused" 0.0; \
+                       target: "elm.image.focus"; \
+               } \
+               program { \
+                       name: "focus_off"; \
+                       signal: "elm,state,focus,hide"; \
+                       source: ""; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.image.focus"; \
+               } \
+               program { \
+                       name: "go_contentstatus_on"; \
+                       signal: "elm,state,content,status,enabled"; \
+                       source: ""; \
+                       action: STATE_SET "enabled" 0.0; \
+                       target: "elm.swallow.status"; \
+                       after: "go_textstatus_off"; \
+               } \
+               program { \
+                       name: "go_contentstatus_off"; \
+                       signal: "elm,state,content,status,disabled"; \
+                       source: ""; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.swallow.status"; \
+               } \
+               program { \
+                       name: "show_middle_pad"; \
+                       signal: "elm,state,middle,pad,enabled"; \
+                       source: "elm"; \
+                       action: STATE_SET "show" 0.0; \
+                       target: "elm.rect.middle.pad"; \
+               } \
+               program { \
+                       name: "hide_middle_pad"; \
+                       signal: "elm,state,middle,pad,disabled"; \
+                       source: "elm"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.rect.middle.pad"; \
+               } \
+               program { \
+                       name: "go_contents_on"; \
+                       signal: "elm,state,contents,enabled"; \
+                       source: ""; \
+                       action: STATE_SET "contents_on" 0.0; \
+                       target: "elm.swallow.icon1"; \
+               } \
+               program { \
+                       name: "go_contents_off"; \
+                       signal: "elm,state,contents,disabled"; \
+                       source: ""; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.swallow.icon1"; \
+               } \
+               program { \
+                       name: "anchor_pressed"; \
+                       signal: "elm,state,anchor,pressed"; \
+                       source: "*"; \
+                       script { \
+                               set_int(anchor_down, 1); \
+                       } \
+               } \
+               program { \
+                       name: "anchor_released"; \
+                       signal: "elm,state,anchor,released"; \
+                       source: "*"; \
+                       script { \
+                               set_int(anchor_down, 0); \
+                       } \
+               } \
+               program { \
+                       name: "bubble_pressed"; \
+                       signal: "mouse,down,1"; \
+                       source: "elm.image.bg"; \
+                       script { \
+                               if (get_int(anchor_down) == 0) { \
+                                       set_state(PART:"elm.image.bg", "pressed", 0.0); \
+                               } \
+                       } \
+               } \
+               program { \
+                       name: "bubble_released"; \
+                       signal: "mouse,up,1"; \
+                       source: "*"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "elm.image.bg"; \
+               } \
+               program { \
+                       name: "attachment_click"; \
+                       signal: "mouse,clicked,1"; \
+                       source: "elm.rect.attachment"; \
+                       action: SIGNAL_EMIT "label,swallow,clicked" ""; \
+               } \
+               program { \
+                       name: "sound_click"; \
+                       signal: "mouse,clicked,1"; \
+                       source: "elm.rect.sound"; \
+                       action: SIGNAL_EMIT "label,swallow,clicked" ""; \
+               } \
+               program { \
+                       name: "play_button_press"; \
+                       signal: "elm,state,play,sound"; \
+                       source: "elm"; \
+                       action: RUN_PLUGIN "touch_sound"; \
+               } \
+               program { \
+                       name: "touch_snd"; \
+                       signal: "bubble,anchor,clicked"; \
+                       source: "elm.text"; \
+                       action: RUN_PLUGIN "touch_sound"; \
+               } \
+       } \
+}
+//////////////////////////////////////////////////////////////////////////////
+BUBBLE_SENT_MESSAGE_STYLE("sent_style_01", "messages_bubble_bg.#.png", "messages_bubble_bg.#.png", "bubble_send_color", "bubble_send_color_pressed", BUBBLE_SIDE_PAD, BUBBLE_SIDE_PAD, BUBBLE_TOP_PAD, BUBBLE_BOTTOM_PAD, "entry_bubble_sent_textblock_style")
+
+BUBBLE_SENT_MESSAGE_STYLE("sent_style_draft_01", "messages_bubble_line_draft.#.png", "messages_bubble_line_draft.#.png", "bubble_draft_color", "bubble_draft_color_pressed", BUBBLE_SIDE_PAD, BUBBLE_SIDE_PAD, BUBBLE_TOP_PAD, BUBBLE_BOTTOM_PAD, "entry_bubble_textblock_draft_style")
+
+BUBBLE_SENT_MESSAGE_STYLE("sent_style_01_focus", "messages_bubble_bg.#.png", "messages_bubble_bg.#.png", "bubble_send_color", "bubble_send_color_pressed", BUBBLE_SIDE_PAD, BUBBLE_SIDE_PAD, BUBBLE_TOP_PAD, BUBBLE_BOTTOM_PAD, "entry_bubble_sent_textblock_style")
+
+BUBBLE_SENT_MESSAGE_STYLE("sent_style_01_failed", "messages_bubble_line_draft.#.png", "messages_bubble_line_draft.#.png", "bubble_failed_color", "bubble_failed_color_pressed", BUBBLE_SIDE_PAD, BUBBLE_SIDE_PAD, BUBBLE_TOP_PAD, BUBBLE_BOTTOM_PAD, "entry_bubble_textblock_draft_style")
+
+BUBBLE_SENT_MESSAGE_STYLE("sent_style_01_failed_focus", "messages_bubble_line_draft.#.png", "messages_bubble_line_draft.#.png", "bubble_failed_color", "bubble_failed_color_pressed", BUBBLE_SIDE_PAD, BUBBLE_SIDE_PAD, BUBBLE_TOP_PAD, BUBBLE_BOTTOM_PAD, "entry_bubble_textblock_draft_style")
diff --git a/common/data/msg_button.edc b/common/data/msg_button.edc
new file mode 100755 (executable)
index 0000000..0e02e1c
--- /dev/null
@@ -0,0 +1,2941 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "../msg-ui-color.h"
+
+#define BUTTON_STATE_ENABLED 0
+#define BUTTON_STATE_DISABLED 1
+
+#define BUTTON_TEXT_STYLE1_BG_BORDER_INC 12 12 14 16
+#define BUTTON_TEXT_STYLE1_PADDING_MIN_INC 8 0
+#define BUTTON_TEXT_STYLE1_BG_MIN_INC 30 20
+#define BUTTON_TEXT_STYLE1_VISIBLE_BG_MIN_INC 30 20
+#define BUTTON_TEXT_STYLE1_ICONONLY_BG_MIN_INC 30 20
+
+#define BUTTON_TEXT_STYLE1_VISIBLE_ICON_RECT_MIN_MAX_INC 28 28
+#define BUTTON_TEXT_STYLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC 0 0
+#define BUTTON_TEXT_STYLE1_VISIBLE_ICON_MIN_MAX_INC 28 28
+#define BUTTON_TEXT_STYLE1_ICONONLY_ICON_MIN_MAX_INC 28 28
+#define BUTTON_BG_BORDER_INC 8 8 8 8
+
+//text
+#define BUTTON_TEXT_STYLE1_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_STYLE1_FONT_SIZE_INC 16
+#define BUTTON_TEXT_STYLE1_EASY_MODE_FONT_SIZE_INC 36
+#define BUTTON_TEXT_STYLE1_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_STYLE1_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_STYLE1_DISABLED_COLOR_INC 48 49 50 255
+
+#define TITLE_CT_THUMBNAIL_WIDTH_HEIGHT 66
+#define TITLE_TEXT_X_OFFSET (-66 - 15)
+#define TITLE_TEXT_Y_OFFSET (0)
+
+#define BADGE_SIZE 56
+
+externals {
+   external: "elm";
+   external: "feedback";
+}
+
+   plugins {
+      plugin {
+         name: "touch_sound";
+         source: "feedback";
+         param:  "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+         /* 2014.06.11 updated from libsvi(feedback)
+          Above plugin will run below external function:
+          int feedback_play_type(feedback_type_e type, feedback_pattern_e pattern);
+
+          param1: feedback_type_e
+          FEEDBACK_TYPE_NONE = 0,
+          FEEDBACK_TYPE_SOUND = 1,
+          FEEDBACK_TYPE_VIBRATION,
+          FEEDBACK_TYPE_END
+
+          * param2 enumeration:
+          FEEDBACK_PATTERN_TAP = 0,
+          FEEDBACK_PATTERN_SIP,
+          ...
+
+          * Fore information, please refer the libsvi libraries.
+          * git: slp-info.sec.samsung.net:29418/magnolia/framework/system/libsvi
+          * web: http://slp-info.sec.samsung.net/gerrit/plugins/gitiles/magnolia/framework/system/libsvi
+          */
+      }
+   }
+
+sounds {
+       sample {
+               name: "touch_sound" AS_IS;
+               source: "Tizen_Touch.wav";
+       }
+}
+
+///////////////////////////////////////////////////////
+// easy mode list 3.1.1.1 button (for Icon + Text)
+//////////////////////////////////////////////////////
+group {
+       name: "elm/button/base/easymode_icon_text_button";
+       data {
+               item: "focus_highlight" "on";
+       }
+       images {
+               image: "00_button_01_bg.#.png" COMP;
+               image: "00_button_01_bg_dim_ef.#.png" COMP;
+               image: "00_button_01_bg_ef.#.png" COMP;
+               image: "00_button_01_bg_focus.#.png" COMP;
+               image: "00_button_01_bg_press_ef.#.png" COMP;
+       }
+       parts {
+               part {
+                       name: "button_image";
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 66 49;
+                               image {
+                                       normal: "00_button_01_bg.#.png";
+                               }
+                               color_class: "W011";
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               color_class: "B042";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               color_class: "W011D";
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "button_effect_image";
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               image {
+                                       normal: "00_button_01_bg_ef.#.png";
+                               }
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "00_button_01_bg_press_ef.#.png";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "00_button_01_bg_dim_ef.#.png";
+                       }
+               }
+               part {
+                       name: "focus_image";
+                       scale: 1;
+                       mouse_events: 0;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1.to : "button_image";
+                               rel2.to : "button_image";
+                               image {
+                                       normal: "00_button_01_bg_focus.#.png";
+                               }
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                               color_class: "W161";
+                       }
+               }
+               part {
+                       name: "swallow.inner.layout";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       clip_to: "clipper";
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.5;
+                               rel1 { relative: 0.0 0.0; to: "button_image";}
+                               rel2 { relative: 1.0 1.0; to: "button_image"; }
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       repeat_events: 1;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "clipper";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               color_class: "F031L1";
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               color_class: "F031L1P";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               color_class: "F031L1D";
+                       }
+               }
+               part { name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "button_effect_image";
+                       target: "clipper";
+               }
+               program {
+                       name: "button_unpress";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+               }
+               program {
+                       name: "button_mouseout_clicked";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       script {
+                               set_state(PART:"button_image", "default", 0.0);
+                               set_state(PART:"clipper", "default", 0.0);
+                       }
+                       after: button_unpress;
+               }
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+               target: "button_image";
+                       target: "button_effect_image";
+               target: "disabler";
+               target: "clipper";
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+               target: "button_image";
+                       target: "button_effect_image";
+               target: "clipper";
+               target: "disabler";
+               }
+               program {
+                       name: "button_click2";
+                       signal: "mouse,down,1";
+                       source: "over3";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "over3";
+               }
+               program {
+                       name: "button_unclick2";
+                       signal: "mouse,clicked,1";
+                       source: "over3";
+                       action: STATE_SET "default" 0.0;
+                       target: "over3";
+               }
+               program {
+                       name: "button_unclick3";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+               program {
+                       name: "focused";
+                       action: STATE_SET "focused" 0.0;
+                       target: "button_image";
+                       target: "button_effect_image";
+               }
+               program {
+                       name: "unfocused";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "button_effect_image";
+               }
+               program {
+                       name: "button_sound";
+                       signal: "mouse,clicked,1";
+                       source: "over3";
+                       action: RUN_PLUGIN "touch_sound";
+               }
+               program {
+                       name: "action_focus";
+                       signal: "elm,action,focus_highlight,show";
+                       source: "elm";
+                       action: STATE_SET "focused" 0.0;
+                       target: "focus_image";
+                       target: "button_effect_image";
+               }
+               program {
+                       name: "action_unfocus";
+                       signal: "elm,action,focus_highlight,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "focus_image";
+                       target: "button_effect_image";
+               }
+       }
+}
+
+///////////////////////////////////////////////////////////////////
+// send button
+///////////////////////////////////////////////////
+
+group {
+       name: "elm/button/base/sendbutton";     /* elm/button/base/search_button */
+       data {
+               item: "focus_highlight" "on";
+       }
+       images {
+               image: "00_button_01_bg_dim_ef.#.png" COMP;
+               image: "00_button_01_bg_ef.#.png" COMP;
+               image: "00_button_01_bg_focus.#.png" COMP;
+               image: "00_button_01_bg_press_ef.#.png" COMP;
+               image: "00_search_btn_press.#.png" COMP;
+       }
+       script {
+               public button_state = BUTTON_STATE_ENABLED;
+       }
+       parts {
+               part {
+                       name: "button_image";
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               image {
+                                       normal: "00_search_btn_press.#.png";
+                               }
+                               color_class: "W011";
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               color_class: "B0215P";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               color_class: "W011D";
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "button_effect_image";
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               image {
+                                       normal: "00_button_01_bg_ef.#.png";
+                               }
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "00_button_01_bg_press_ef.#.png";
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: "00_button_01_bg_dim_ef.#.png";
+                       }
+               }
+               part {
+                       name: "focus_image";
+                       scale: 1;
+                       mouse_events: 0;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1.to : "button_image";
+                               rel2.to : "button_image";
+                               image {
+                                       normal: "00_button_01_bg_focus.#.png";
+                               }
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                               color_class: "W161";
+                       }
+               }
+               part {
+                       name: "padding_left_top";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               rel2.relative: 0.0 0.0;
+                               min: BUTTON_TEXT_STYLE1_PADDING_MIN_INC;
+                               fixed: 1 1;
+                       }
+               }
+               part {
+                       name: "bg";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: BUTTON_TEXT_STYLE1_BG_MIN_INC;
+                               visible: 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: BUTTON_TEXT_STYLE1_VISIBLE_BG_MIN_INC;
+                       }
+                       description {
+                               state: "icononly" 0.0;
+                               inherit: "default" 0.0;
+                               min: BUTTON_TEXT_STYLE1_ICONONLY_BG_MIN_INC;
+                       }
+               }
+               part {
+                       name: "padding_right_bottom";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               align: 1.0 1.0;
+                               rel1.relative: 1.0 1.0;
+                               min: BUTTON_TEXT_STYLE1_PADDING_MIN_INC;
+                               fixed: 1 1;
+                       }
+               }
+               part {
+                       name: "icon_rect";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 0 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to: "padding_left_top";
+                               }
+                               rel2 {
+                                       relative: 1.0 0.0;
+                                       to_x: "padding_left_top";
+                                       to_y: "padding_right_bottom";
+                               }
+                               align: 0.0 0.5;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: BUTTON_TEXT_STYLE1_VISIBLE_ICON_RECT_MIN_MAX_INC;
+                               max: BUTTON_TEXT_STYLE1_VISIBLE_ICON_RECT_MIN_MAX_INC;
+                       }
+                       description {
+                               state: "icononly" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "padding_after_icon";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0; //when only icon or no icon is there
+                               align: 0.0 0.0;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to: "icon_rect";
+                               }
+                               rel2.to: "icon_rect";
+                               fixed: 1 0;
+                               min: 0 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               min: BUTTON_TEXT_STYLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC;
+                       }
+                       description {
+                               state: "icononly" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "padding_before_text";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0; //when only icon or no icon is there
+                               align: 1.0 0.5;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to_x: "elm.text";
+                                       to_y: "padding_left_top";
+                               }
+                               rel2 {
+                                       relative: 0.0 0.0;
+                                       to_x: "elm.text";
+                                       to_y: "padding_right_bottom";
+                               }
+                               fixed: 1 0;
+                               min: BUTTON_TEXT_STYLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "clipper";
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               align: 0.0 0.5;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to: "padding_left_top";
+                               }
+                               rel2 {
+                                       relative: 1.0 0.0;
+                                       to_x: "padding_left_top";
+                                       to_y: "padding_right_bottom";
+                               }
+                               fixed: 1 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               fixed: 1 0;
+                               min: BUTTON_TEXT_STYLE1_VISIBLE_ICON_MIN_MAX_INC;
+                               max: BUTTON_TEXT_STYLE1_VISIBLE_ICON_MIN_MAX_INC;
+                               align: 1.0 0.5;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to_x: "padding_before_text";
+                                       to_y: "padding_left_top";
+                               }
+                               rel2 {
+                                       relative: 0.0 0.0;
+                                       to_x: "padding_before_text";
+                                       to_y: "padding_right_bottom";
+                               }
+                       }
+                       description {
+                               state: "icononly" 0.0;
+                               min: BUTTON_TEXT_STYLE1_ICONONLY_ICON_MIN_MAX_INC;
+                               max: BUTTON_TEXT_STYLE1_ICONONLY_ICON_MIN_MAX_INC;
+                       }
+                       description {
+                               state: "easymode_layout" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                               align: 0.5 0.5;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       effect: SHADOW BOTTOM;
+                       scale: 1;
+                       clip_to: "clipper";
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "padding_after_icon";
+                                       to_y: "padding_left_top";
+                               }
+                               rel2 {
+                                       relative: 0.0 0.0;
+                                       to: "padding_right_bottom";
+                               }
+                               color: BUTTON_TEXT_STYLE1_NORMAL_COLOR_INC;
+                               text {
+                                       font: "Tizen:style=Regular";
+                                       size: BUTTON_TEXT_STYLE1_FONT_SIZE_INC;
+                                       min: 0 0;
+                                       max: 1 0;
+                                       text_class: "button";
+                               }
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                               color: BUTTON_TEXT_STYLE1_PRESSED_COLOR_INC;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled_visible" 0.0;
+                               inherit: "default" 0.0;
+                               color: BUTTON_TEXT_STYLE1_DISABLED_COLOR_INC;
+                               visible: 1;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                               color: BUTTON_TEXT_STYLE1_FOCUSED_COLOR_INC;
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       repeat_events: 1;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "clipper";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 255 255 255 255;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               color: 255 255 255 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               color: 255 255 255 76;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       after: "button_click_anim";
+               }
+               program {
+                       name: "button_click_anim";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+                       target: "button_effect_image";
+                       target: "clipper";
+                       after: "text_clicked";
+               }
+               program {
+                       name: "text_clicked";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"elm.text", st, 30, vl);
+                               if (!strcmp(st, "visible"))
+                                       set_state(PART:"elm.text", "clicked", 0.0);
+                       }
+               }
+               program {
+                       name: "button_unpress";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+               }
+               program {
+                       name: "button_mouseout_clicked";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"elm.swallow.content", st, 30, vl);
+
+                               if (strcmp(st, "icononly")) {
+                                       emit("elm,action,default,text,set", "");
+                                       set_state(PART:"elm.text", "visible", 0.0);
+                               }
+
+                               if (get_int(button_state) != BUTTON_STATE_DISABLED) {
+                                       set_state(PART:"button_image", "default", 0.0);
+                                       set_state(PART:"button_effect_image", "default", 0.0);
+                                       set_state(PART:"clipper", "default", 0.0);
+                               }
+                       }
+                       after: button_unpress;
+               }
+               program {
+                       name: "touch_snd";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: RUN_PLUGIN "touch_sound";
+                       after: button_unclick3;
+               }
+               program {
+                       name: "button_unclick3";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+               program {
+                       name: "text_show";
+                       signal: "elm,state,text,visible";
+                       source: "elm";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"elm.swallow.content", st, 30, vl);
+
+                               if (!strcmp(st, "icononly")) {
+                                       set_state(PART:"elm.swallow.content", "visible", 0.0);
+                                       set_state(PART:"icon_rect", "visible", 0.0);
+                                       set_state(PART:"padding_after_icon", "visible", 0.0);
+                                       set_state(PART:"bg", "visible", 0.0);
+                               }
+
+                               if (get_int(button_state) != BUTTON_STATE_DISABLED)
+                                       set_state(PART:"elm.text", "visible", 0.0);
+                               else
+                                       set_state(PART:"elm.text", "disabled_visible", 0.0);
+                       }
+               }
+               program {
+                       name: "text_hide";
+                       signal: "elm,state,text,hidden";
+                       source: "elm";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"elm.swallow.content", st, 30, vl);
+
+                               if (!strcmp(st, "visible")) {
+                                       set_state(PART:"elm.swallow.content", "icononly", 0.0);
+                                       set_state(PART:"icon_rect", "icononly", 0.0);
+                                       set_state(PART:"padding_after_icon", "icononly", 0.0);
+                                       set_state(PART:"bg", "icononly", 0.0);
+                               }
+                               set_state(PART:"elm.text", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "icon_show";
+                       signal: "elm,state,icon,visible";
+                       source: "elm";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"elm.text", st, 30, vl);
+
+                               if (!strcmp(st, "visible")) {
+                                       set_state(PART:"elm.swallow.content", "visible", 0.0);
+                                       set_state(PART:"icon_rect", "visible", 0.0);
+                                       set_state(PART:"padding_after_icon", "visible", 0.0);
+                                       set_state(PART:"bg", "visible", 0.0);
+                               } else {
+                                       set_state(PART:"elm.swallow.content", "icononly", 0.0);
+                                       set_state(PART:"icon_rect", "icononly", 0.0);
+                                       set_state(PART:"padding_after_icon", "icononly", 0.0);
+                                       set_state(PART:"bg", "icononly", 0.0);
+                               }
+                       }
+               }
+               program {
+                       name: "icon_hide";
+                       signal: "elm,state,icon,hidden";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "elm.swallow.content";
+                       target: "padding_after_icon";
+                       target: "icon_rect";
+                       target: "bg";
+               }
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "button_image";
+                       target: "button_effect_image";
+                       target: "disabler";
+                       target: "clipper";
+                       after: "disable_text";
+               }
+               program {
+                       name: "disable_text";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"elm.text", st, 30, vl);
+
+                               if (!strcmp(st, "visible"))
+                                       set_state(PART:"elm.text", "disabled_visible", 0.0);
+                               else
+                                       set_state(PART:"elm.text", "disabled", 0.0);
+
+                               set_int(button_state, BUTTON_STATE_DISABLED);
+                       }
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "button_effect_image";
+                       target: "clipper";
+                       target: "disabler";
+                       after: "enable_text";
+               }
+               program {
+                       name: "enable_text";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"elm.text", st, 30, vl);
+
+                               if (!strcmp(st, "disabled_visible"))
+                                       set_state(PART:"elm.text", "visible", 0.0);
+                               else
+                                       set_state(PART:"elm.text", "default", 0.0);
+
+                               set_int(button_state, BUTTON_STATE_ENABLED);
+                       }
+               }
+               program {
+                       name: "change_easymode";
+                       signal: "elm,state,easymode";
+                       source: "elm";
+                       action: STATE_SET "easymode_layout" 0.0;
+                       target: "elm.swallow.content";
+               }
+               program {
+                       name: "focused";
+                       action: STATE_SET "focused" 0.0;
+                       target: "button_image";
+                       target: "button_effect_image";
+                       target: "elm.text";
+               }
+               program {
+                       name: "unfocused";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+                       target: "button_effect_image";
+                       after: "unfocus_text";
+               }
+               program {
+                       name: "unfocus_text";
+                       action: STATE_SET "visible" 0.0;
+                       target: "elm.text";
+               }
+               program {
+                       name: "action_focus";
+                       signal: "elm,action,focus_highlight,show";
+                       source: "elm";
+                       action: STATE_SET "focused" 0.0;
+                       target: "focus_image";
+               }
+               program {
+                       name: "action_unfocus";
+                       signal: "elm,action,focus_highlight,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "focus_image";
+               }
+       }
+}
+
+//////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////
+// button for bubble warning / scheduled message /
+/////////////////////////////////////////////////////////////////
+#define MSG_BUBBLE_BUTTON_STYLE(style_name, bg_image, btn_image, norm_color, press_color, dim_color, image_color) \
+group { \
+       name: "elm/button/base/"style_name; \
+       data.item: "focus_highlight" "on"; \
+       images { \
+               image: bg_image COMP; \
+               image: press_image COMP; \
+               image: dim_image COMP; \
+               image: btn_image COMP; \
+       } \
+       parts { \
+               part { \
+                       name: "button_image"; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: BADGE_SIZE BADGE_SIZE; \
+                               max: BADGE_SIZE BADGE_SIZE; \
+                               color: norm_color; \
+                               image.normal: bg_image; \
+                       } \
+                       description { \
+                               state: "clicked" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: press_color; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: dim_color; \
+                       } \
+               } \
+               part { \
+                       name: "left_top_padding"; \
+                       scale: 1; \
+                       type: SPACER; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: 6 6; \
+                               max: 6 6; \
+                               fixed: 1 1; \
+                               align: 0.0 0.0; \
+                               rel1.to: "button_image"; \
+                               rel2.to: "button_image"; \
+                       } \
+               } \
+               part {  \
+                       name: "right_bottom_padding";  \
+                       scale: 1; \
+                       type: SPACER; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: 5 5; \
+                               max: 7 7; \
+                               fixed: 1 1; \
+                               align: 1.0 1.0; \
+                               rel1.to: "button_image"; \
+                               rel1.relative: 1.0 1.0; \
+                               rel2.to: "button_image"; \
+                       } \
+               }  \
+               part {  \
+                       name: "button_center_part";  \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: BADGE_SIZE BADGE_SIZE; \
+                               max: BADGE_SIZE BADGE_SIZE; \
+                               image.normal: btn_image; \
+                               color: image_color; \
+                               align: 0.5 0.5; \
+                       } \
+               }  \
+               part {  \
+                       name: "elm.swallow.icon.shadow.proxy";  \
+                       type: PROXY; \
+                       clip_to: "elm.icon.proxy.clipper"; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               source: "button_center_part"; \
+                               proxy.source_clip: 0; \
+                               rel1 { to: "button_center_part"; } \
+                               rel2 { to: "button_center_part"; } \
+                       } \
+                       description { \
+                               state: "clicked" 0.0; \
+                               inherit: "default" 0.0; \
+                               rel1 { to: "button_center_part";  } \
+                               rel2 { to: "button_center_part"; } \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               inherit: "default" 0.0; \
+                       } \
+               }  \
+               part {  \
+                       name: "elm.swallow.icon.proxy";  \
+                       type: PROXY; \
+                       scale: 1; \
+                       clip_to: "icon_clipper"; \
+                       description { \
+                               state: "default" 0.0; \
+                               source: "button_center_part"; \
+                               proxy.source_clip: 0; \
+                               rel1.to: "button_center_part"; \
+                               rel2.to: "button_center_part"; \
+                       } \
+               }  \
+               part {  \
+                       name: "elm.icon.proxy.clipper";  \
+                       type: RECT; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 0 0 0 255; \
+                       } \
+                       description { \
+                               state: "clicked" 0.0; \
+                               color: 0 0 0 255; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               color: 34 44 72 255; \
+                       } \
+               } \
+               part {  \
+                       name: "icon_clipper"; \
+                       type: RECT; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 250 250 250 255; \
+                       } \
+                       description { \
+                               state: "clicked" 0.0; \
+                               color: 250 250 250 255; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               color: 166 167 169 255; \
+                       } \
+               }  \
+               part {  \
+                       name: "over1";  \
+                       type: RECT; \
+                       ignore_flags: ON_HOLD; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 0 0 0 0; \
+                               min: 30 30; \
+                       } \
+               } \
+               part {  \
+                       name: "over2";  \
+                       type: RECT; \
+                       repeat_events: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 0 0 0 0; \
+                       } \
+               }  \
+               part {  \
+                       name: "disabler";  \
+                       type: RECT; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 0 0 0 0; \
+                               visible: 0; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                       } \
+               }  \
+       }  \
+       programs { \
+               program { \
+                       name: "button_click"; \
+                       signal: "mouse,down,1"; \
+                       source: "over1"; \
+                       action: SIGNAL_EMIT "elm,action,press" ""; \
+                       after: "button_click_anim"; \
+               } \
+               program { \
+                       name: "button_click_anim"; \
+                       action: STATE_SET "clicked" 0.0; \
+                       target: "button_image"; \
+                       target: "elm.swallow.icon.shadow.proxy"; \
+                       target: "elm.icon.proxy.clipper"; \
+                       target: "icon_clipper"; \
+               } \
+               program { \
+                       name: "button_double_click"; \
+                       signal: "mouse,down,1,double"; \
+                       source: "over1"; \
+                       after: "button_click_anim"; \
+               } \
+               program { \
+                       name: "button_unclick"; \
+                       signal: "mouse,up,1"; \
+                       source: "over2"; \
+                       action: SIGNAL_EMIT "elm,action,unpress" ""; \
+                       after: "button_unclick_anim"; \
+               } \
+               program { \
+                       name: "button_unclick_anim"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "button_image"; \
+                       target: "elm.swallow.icon.shadow.proxy"; \
+                       target: "elm.icon.proxy.clipper"; \
+                       target: "icon_clipper"; \
+               } \
+               program { \
+                       name: "touch_snd"; \
+                       signal: "mouse,clicked,1"; \
+                       source: "over1"; \
+                       action: RUN_PLUGIN "touch_sound"; \
+                       after: "button_unclick3"; \
+               } \
+               program { \
+                       name: "button_unclick3"; \
+                       action: SIGNAL_EMIT "elm,action,click" ""; \
+               } \
+               program { \
+                       name: "disable"; \
+                       signal: "elm,state,disabled"; \
+                       source: "elm"; \
+                       action: STATE_SET "disabled" 0.0; \
+                       target: "disabler"; \
+                       target: "button_image"; \
+                       target: "elm.swallow.icon.shadow.proxy"; \
+                       target: "elm.icon.proxy.clipper"; \
+                       target: "icon_clipper"; \
+               } \
+               program { \
+                       name: "enable"; \
+                       signal: "elm,state,enabled"; \
+                       source: "elm"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "disabler"; \
+                       target: "button_image"; \
+                       target: "elm.swallow.icon.shadow.proxy"; \
+                       target: "elm.icon.proxy.clipper"; \
+                       target: "icon_clipper"; \
+               } \
+       } \
+}
+
+MSG_BUBBLE_BUTTON_STYLE("edit_button", "messages_icon_bg.png", "messages_icon_draft.png", BUBBLE_BADGE_DRAFT_BG_COLOR_EDC, BUBBLE_BADGE_DRAFT_BG_COLOR_EDC, BUBBLE_BADGE_DRAFT_BG_COLOR_EDC, BUBBLE_BADGE_IMAGE_COLOR_EDC)
+MSG_BUBBLE_BUTTON_STYLE("failed_button", "messages_icon_bg.png", "messages_icon_failed.png", BUBBLE_BADGE_FAILED_BG_COLOR_EDC, BUBBLE_BADGE_FAILED_BG_COLOR_EDC, BUBBLE_BADGE_FAILED_BG_COLOR_EDC, BUBBLE_BADGE_IMAGE_COLOR_EDC)
+#define MSG_TITLE_TEXT_BUTTON_WIDTH 130
+#define MSG_TITLE_TEXT_BUTTON_HEIGHT 43
+#define MSG_SEND_BUTTON_WIDTH 100
+#define MSG_SEND_BUTTON_HEIGHT 43
+#define MSG_TEXT_BUTTON_FONT_SIZE 32
+
+#define MSG_TITLE_TEXT_BUTTON_STYLE(style_name, button_width, button_height, text_size, norm_color, press_color, dim_color) \
+group { \
+       name: "elm/button/base/"style_name; \
+       data.item: "focus_highlight" "on"; \
+       parts { \
+               part { \
+                       name: "button_text"; \
+                       scale: 1; \
+                       type: TEXT; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: norm_color; \
+                               min: button_width button_height; \
+                               max: button_width button_height; \
+                               text { \
+                               size: text_size; \
+                               align: 0.5 0.5; \
+                               min: 0 1; \
+                               max: 0 1; \
+                               } \
+                       } \
+                       description { \
+                               state: "clicked" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: press_color; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               inherit: "default" 0.0; \
+                               color: dim_color; \
+                       } \
+               } \
+               part {  \
+                       name: "button_center_part";  \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1.to: "button_text"; \
+                               rel2.to: "button_text"; \
+                               color: 0 0 0 0; \
+                               align: 0.5 0.5; \
+                       } \
+               }  \
+               part {  \
+                       name: "elm.swallow.icon.shadow.proxy";  \
+                       type: PROXY; \
+                       clip_to: "elm.icon.proxy.clipper"; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               source: "button_center_part"; \
+                               proxy.source_clip: 0; \
+                               rel1 { to: "button_center_part"; } \
+                               rel2 { to: "button_center_part"; } \
+                       } \
+                       description { \
+                               state: "clicked" 0.0; \
+                               inherit: "default" 0.0; \
+                               rel1 { to: "button_center_part";  } \
+                               rel2 { to: "button_center_part"; } \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               inherit: "default" 0.0; \
+                       } \
+               }  \
+               part {  \
+                       name: "elm.swallow.icon.proxy";  \
+                       type: PROXY; \
+                       scale: 1; \
+                       clip_to: "icon_clipper"; \
+                       description { \
+                               state: "default" 0.0; \
+                               source: "button_center_part"; \
+                               proxy.source_clip: 0; \
+                               rel1.to: "button_center_part"; \
+                               rel2.to: "button_center_part"; \
+                       } \
+               }  \
+               part {  \
+                       name: "elm.icon.proxy.clipper";  \
+                       type: RECT; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 0 0 0 255; \
+                       } \
+                       description { \
+                               state: "clicked" 0.0; \
+                               color: 0 0 0 255; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               color: 34 44 72 255; \
+                       } \
+               } \
+               part {  \
+                       name: "icon_clipper"; \
+                       type: RECT; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 250 250 250 255; \
+                       } \
+                       description { \
+                               state: "clicked" 0.0; \
+                               color: 250 250 250 255; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               color: 166 167 169 255; \
+                       } \
+               }  \
+               part {  \
+                       name: "over1";  \
+                       type: RECT; \
+                       ignore_flags: ON_HOLD; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 0 0 0 0; \
+                               min: 30 30; \
+                       } \
+               } \
+               part {  \
+                       name: "over2";  \
+                       type: RECT; \
+                       repeat_events: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 0 0 0 0; \
+                       } \
+               }  \
+               part {  \
+                       name: "disabler";  \
+                       type: RECT; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 0 0 0 0; \
+                               visible: 0; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                       } \
+               }  \
+       }  \
+       programs { \
+               program { \
+                       name: "button_click"; \
+                       signal: "mouse,down,1"; \
+                       source: "over1"; \
+                       action: SIGNAL_EMIT "elm,action,press" ""; \
+                       after: "button_click_anim"; \
+               } \
+               program { \
+                       name: "button_click_anim"; \
+                       action: STATE_SET "clicked" 0.0; \
+                       target: "button_text"; \
+                       target: "elm.swallow.icon.shadow.proxy"; \
+                       target: "elm.icon.proxy.clipper"; \
+                       target: "icon_clipper"; \
+               } \
+               program { \
+                       name: "button_double_click"; \
+                       signal: "mouse,down,1,double"; \
+                       source: "over1"; \
+                       after: "button_click_anim"; \
+               } \
+               program { \
+                       name: "button_unclick"; \
+                       signal: "mouse,up,1"; \
+                       source: "over2"; \
+                       action: SIGNAL_EMIT "elm,action,unpress" ""; \
+                       after: "button_unclick_anim"; \
+               } \
+               program { \
+                       name: "button_unclick_anim"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "button_text"; \
+                       target: "elm.swallow.icon.shadow.proxy"; \
+                       target: "elm.icon.proxy.clipper"; \
+                       target: "icon_clipper"; \
+               } \
+               program { \
+                       name: "touch_snd"; \
+                       signal: "mouse,clicked,1"; \
+                       source: "over1"; \
+                       action: RUN_PLUGIN "touch_sound"; \
+                       after: "button_unclick3"; \
+               } \
+               program { \
+                       name: "button_unclick3"; \
+                       action: SIGNAL_EMIT "elm,action,click" ""; \
+               } \
+               program { \
+                       name: "disable"; \
+                       signal: "elm,state,disabled"; \
+                       source: "elm"; \
+                       action: STATE_SET "disabled" 0.0; \
+                       target: "disabler"; \
+                       target: "button_text"; \
+                       target: "elm.swallow.icon.shadow.proxy"; \
+                       target: "elm.icon.proxy.clipper"; \
+                       target: "icon_clipper"; \
+               } \
+               program { \
+                       name: "enable"; \
+                       signal: "elm,state,enabled"; \
+                       source: "elm"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "disabler"; \
+                       target: "button_text"; \
+                       target: "elm.swallow.icon.shadow.proxy"; \
+                       target: "elm.icon.proxy.clipper"; \
+                       target: "icon_clipper"; \
+               } \
+       } \
+}
+
+MSG_TITLE_TEXT_BUTTON_STYLE("title_text_button", MSG_TITLE_TEXT_BUTTON_WIDTH, MSG_TITLE_TEXT_BUTTON_HEIGHT, MSG_TEXT_BUTTON_FONT_SIZE, BUBBLE_NAVI_TITLE_SELECT_ALL_COLOR, BUBBLE_NAVI_TITLE_TEXT_COLOR, BUBBLE_NAVI_TITLE_TEXT_COLOR)
+MSG_TITLE_TEXT_BUTTON_STYLE("title_text_button_white", MSG_TITLE_TEXT_BUTTON_WIDTH, MSG_TITLE_TEXT_BUTTON_HEIGHT, MSG_TEXT_BUTTON_FONT_SIZE, BUBBLE_NAVI_TITLE_TEXT_COLOR_WHITE, BUBBLE_NAVI_TITLE_TEXT_PRESSED_COLOR_WHITE, BUBBLE_NAVI_TITLE_TEXT_DIMMED_COLOR_WHITE)
+MSG_TITLE_TEXT_BUTTON_STYLE("sendbutton_text_button", MSG_SEND_BUTTON_WIDTH, MSG_SEND_BUTTON_HEIGHT, MSG_TEXT_BUTTON_FONT_SIZE, COLOR_SEND_BUTTON_EDC, COLOR_SEND_BUTTON_PRESSED_EDC, COLOR_SEND_BUTTON_DIMMED_EDC)
+
+#define MSG_BUTTON_CIRCLE_STYLE(style_name, image_normal, image_effect, image_dim_effect, min_width, min_height) \
+   group { name: "elm/button/base/"style_name; \
+      data { \
+         item: "focus_highlight" "on"; \
+      } \
+      images { \
+         image: image_normal COMP; \
+         image: image_effect COMP; \
+         image: image_dim_effect COMP; \
+         image: 00_circle_button_focus.png COMP; \
+         image: 00_circle_button_bg.png COMP; \
+      } \
+      script { \
+         public mouse_down = 0; \
+         public multi_down = 0; \
+      } \
+      parts { \
+         part { name: "button_image"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 40 40; \
+               max: 40 40; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "button_bg"; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 40 40; \
+               max: 40 40; \
+               image.normal: "00_circle_button_bg.png"; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+               visible: 0 ; \
+            } \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1 ; \
+               color_class: "B042"; \
+            } \
+          } \
+         part { name: "left_top_padding"; \
+            scale: 1; \
+            type: SPACER; \
+            description { state: "default" 0.0; \
+               min: 8 8; \
+               max: 8 8; \
+               fixed: 1 1; \
+               align: 0.0 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+            } \
+         } \
+         part { name: "right_bottom_padding"; \
+            scale: 1; \
+            type: SPACER; \
+            description { state: "default" 0.0; \
+               min: 8 8; \
+               max: 8 8; \
+               fixed: 1 1; \
+               align: 1.0 1.0; \
+               rel1 { \
+                  relative: 1.0 1.0; \
+                  to: "button_image"; \
+               } \
+               rel2.to: "button_image"; \
+            } \
+         } \
+         part { name: "button_center_part"; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 30 30; \
+               max: 30 30; \
+               image.normal: image_normal; \
+               rel1 { \
+                  relative: 1.0 1.0; \
+                  to: "left_top_padding"; \
+               } \
+               rel2 { \
+                  relative: 0.0 0.0; \
+                  to: "right_bottom_padding"; \
+               } \
+               color_class: "F032L21"; \
+            } \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+               color_class: "F032L21P"; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color_class: "F032L21D"; \
+            } \
+         } \
+         part { name: "button_center_part_effect"; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+                rel1.to: "button_center_part"; \
+                rel2.to: "button_center_part"; \
+                image.normal: image_effect; \
+            } \
+            description { state: "pressed" 0.0; \
+                inherit: "default" 0.0; \
+                visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+                inherit: "default" 0.0; \
+                image.normal: image_dim_effect; \
+            } \
+         } \
+         part { name: "focus_image"; \
+            scale: 1; \
+            mouse_events: 0; \
+            repeat_events: 1; \
+              description { state: "default" 0.0; \
+                 min: 40 40; \
+                 max: 40 40; \
+                 visible: 0; \
+                 rel1.to : "button_image"; \
+                 rel2.to : "button_image"; \
+                 image { \
+                  normal: "00_circle_button_focus.png"; \
+               } \
+            } \
+            description { state: "focused" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+               color_class: "W161";\
+            } \
+         } \
+         part { name: "over1"; \
+            type: RECT; \
+            ignore_flags: ON_HOLD; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+               min: min_width min_height; \
+            } \
+         } \
+         part { name: "over2"; \
+            type: RECT; \
+            repeat_events: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "disabler"; \
+            type: RECT; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+               visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+      } \
+      programs { \
+         program { name: "button_press"; \
+            signal: "mouse,down,1*"; \
+            source: "over1"; \
+            script { \
+               if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) \
+                 { \
+                     set_int(mouse_down, 1); \
+                     run_program(PROGRAM:"button_press2"); \
+                 } \
+            } \
+         } \
+         program { name: "button_press2"; \
+            action: SIGNAL_EMIT "elm,action,press" ""; \
+            after: "button_press_anim"; \
+         } \
+         program { name: "button_press_anim"; \
+            action: STATE_SET "pressed" 0.0; \
+            target: "button_bg"; \
+            target: "button_center_part"; \
+            target: "button_center_part_effect"; \
+         } \
+         program { name: "button_unpress"; \
+            signal: "mouse,up,1*"; \
+            source: "over2"; \
+            script { \
+               if (get_int(mouse_down) == 1) \
+                 { \
+                    set_int(mouse_down, 0); \
+                    run_program(PROGRAM:"button_unpress2"); \
+                    run_program(PROGRAM:"button_unpress_anim"); \
+                 } \
+            } \
+         } \
+         program { name: "button_unpress2"; \
+            action: SIGNAL_EMIT "elm,action,unpress" ""; \
+         } \
+         program { name: "button_unpress_anim"; \
+            action: STATE_SET "default" 0.0; \
+            target: "button_bg"; \
+            target: "button_center_part"; \
+            target: "button_center_part_effect"; \
+         } \
+         program { name: "key_press"; \
+            signal: "elm,action,pressed"; \
+            source: "elm"; \
+            action: STATE_SET "pressed" 0.0; \
+            target: "button_bg"; \
+            target: "button_center_part"; \
+            target: "button_center_part_effect"; \
+         } \
+         program { name: "key_unpress"; \
+            signal: "elm,action,unpressed"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "button_bg"; \
+            target: "button_center_part"; \
+            target: "button_center_part_effect"; \
+         } \
+         program { name: "button_click"; \
+            signal: "mouse,clicked,1"; \
+            source: "over1"; \
+            script { \
+               if (get_int(multi_down) == 0) { \
+                 run_program(PROGRAM:"play_sound"); \
+                 run_program(PROGRAM:"button_click2"); \
+               } \
+            } \
+         } \
+         program { name: "play_sound"; \
+            action: RUN_PLUGIN "touch_sound"; \
+         } \
+         program { name: "button_click2"; \
+            action: SIGNAL_EMIT "elm,action,click" ""; \
+         } \
+         program { name: "disable"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            target: "disabler"; \
+            target: "button_center_part"; \
+            target: "button_center_part_effect"; \
+         } \
+         program { name: "enable"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "disabler"; \
+            target: "button_center_part"; \
+            target: "button_center_part_effect"; \
+         } \
+         program { name: "action_focus"; \
+            signal: "elm,action,focus_highlight,show"; \
+            source: "elm"; \
+            action: STATE_SET "focused" 0.0; \
+            target: "focus_image"; \
+         } \
+         program { name: "action_unfocus"; \
+            signal: "elm,action,focus_highlight,hide"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "focus_image"; \
+         } \
+         program { \
+            name: "multi_down"; \
+            signal: "elm,action,multi,down"; \
+            source: "elm"; \
+            script { \
+               set_int(multi_down, 1); \
+            } \
+         } \
+         program { \
+            name: "multi_up"; \
+            signal: "elm,action,multi,up"; \
+            source: "elm"; \
+            script { \
+               set_int(multi_down, 0); \
+            } \
+         } \
+      } \
+   }
+
+MSG_BUTTON_CIRCLE_STYLE("attachment_remove_button", "00_button_delete.png", "00_button_delete_ef.png", "00_button_delete_dim_ef.png",40, 40)
+
+
+/* thread contact image circle button. */
+#define MSG_BUTTON_THREAD_CONTACT_CIRCLE_STYLE(style_name, min_width, min_height) \
+   group { name: "elm/button/base/"style_name; \
+      data { \
+         item: "focus_highlight" "on"; \
+      } \
+      images { \
+         image: 00_circle_button_focus.png COMP; \
+         image: 00_circle_button_bg.png COMP; \
+      } \
+      script { \
+         public mouse_down = 0; \
+         public multi_down = 0; \
+      } \
+      parts { \
+         part { name: "button_image"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 99 99; \
+               max: 99 99; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "button_bg"; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 99 99; \
+               max: 99 99; \
+               image.normal: "00_circle_button_bg.png"; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+               visible: 0 ; \
+            } \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1 ; \
+               color: 0 0 0 0; \
+            } \
+          } \
+         part { name: "left_top_padding"; \
+            scale: 1; \
+            type: SPACER; \
+            description { state: "default" 0.0; \
+               min: 0 0; \
+               max: 0 0; \
+               fixed: 1 1; \
+               align: 0.0 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+            } \
+         } \
+         part { name: "right_bottom_padding"; \
+            scale: 1; \
+            type: SPACER; \
+            description { state: "default" 0.0; \
+               min: 0 0; \
+               max: 0 0; \
+               fixed: 1 1; \
+               align: 1.0 1.0; \
+               rel1 { \
+                  relative: 1.0 1.0; \
+                  to: "button_image"; \
+               } \
+               rel2.to: "button_image"; \
+            } \
+         } \
+         part { name: "elm.swallow.content"; \
+         type: SWALLOW; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 99 99; \
+               max: 99 99; \
+               rel1 { \
+                  relative: 1.0 1.0; \
+                  to: "left_top_padding"; \
+               } \
+               rel2 { \
+                  relative: 0.0 0.0; \
+                  to: "right_bottom_padding"; \
+               } \
+            } \
+         } \
+         part { name: "focus_image"; \
+            scale: 1; \
+            mouse_events: 0; \
+            repeat_events: 1; \
+              description { state: "default" 0.0; \
+                 min: 99 99; \
+                 max: 99 99; \
+                 visible: 0; \
+                 rel1.to : "button_image"; \
+                 rel2.to : "button_image"; \
+                 image { \
+                  normal: "00_circle_button_focus.png"; \
+               } \
+            } \
+            description { state: "focused" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+               color_class: "W161";\
+            } \
+         } \
+         part { name: "over1"; \
+            type: RECT; \
+            ignore_flags: ON_HOLD; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+               min: min_width min_height; \
+            } \
+         } \
+         part { name: "over2"; \
+            type: RECT; \
+            repeat_events: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "disabler"; \
+            type: RECT; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+               visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+      } \
+      programs { \
+         program { name: "button_press"; \
+            signal: "mouse,down,1*"; \
+            source: "over1"; \
+            script { \
+               if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) \
+                 { \
+                     set_int(mouse_down, 1); \
+                     run_program(PROGRAM:"button_press2"); \
+                 } \
+            } \
+         } \
+         program { name: "button_press2"; \
+            action: SIGNAL_EMIT "elm,action,press" ""; \
+            after: "button_press_anim"; \
+         } \
+         program { name: "button_press_anim"; \
+            action: STATE_SET "pressed" 0.0; \
+            target: "button_bg"; \
+            target: "elm.swallow.content"; \
+         } \
+         program { name: "button_unpress"; \
+            signal: "mouse,up,1*"; \
+            source: "over2"; \
+            script { \
+               if (get_int(mouse_down) == 1) \
+                 { \
+                    set_int(mouse_down, 0); \
+                    run_program(PROGRAM:"button_unpress2"); \
+                    run_program(PROGRAM:"button_unpress_anim"); \
+                 } \
+            } \
+         } \
+         program { name: "button_unpress2"; \
+            action: SIGNAL_EMIT "elm,action,unpress" ""; \
+         } \
+         program { name: "button_unpress_anim"; \
+            action: STATE_SET "default" 0.0; \
+            target: "button_bg"; \
+            target: "elm.swallow.content"; \
+         } \
+         program { name: "key_press"; \
+            signal: "elm,action,pressed"; \
+            source: "elm"; \
+            action: STATE_SET "pressed" 0.0; \
+            target: "button_bg"; \
+            target: "elm.swallow.content"; \
+         } \
+         program { name: "key_unpress"; \
+            signal: "elm,action,unpressed"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "button_bg"; \
+            target: "elm.swallow.content"; \
+         } \
+         program { name: "button_click"; \
+            signal: "mouse,clicked,1"; \
+            source: "over1"; \
+            script { \
+               if (get_int(multi_down) == 0) { \
+                 run_program(PROGRAM:"play_sound"); \
+                 run_program(PROGRAM:"button_click2"); \
+               } \
+            } \
+         } \
+         program { name: "play_sound"; \
+            action: RUN_PLUGIN "touch_sound"; \
+         } \
+         program { name: "button_click2"; \
+            action: SIGNAL_EMIT "elm,action,click" ""; \
+         } \
+         program { name: "disable"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            target: "disabler"; \
+            target: "elm.swallow.content"; \
+         } \
+         program { name: "enable"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "disabler"; \
+            target: "elm.swallow.content"; \
+         } \
+         program { name: "action_focus"; \
+            signal: "elm,action,focus_highlight,show"; \
+            source: "elm"; \
+            action: STATE_SET "focused" 0.0; \
+            target: "focus_image"; \
+         } \
+         program { name: "action_unfocus"; \
+            signal: "elm,action,focus_highlight,hide"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "focus_image"; \
+         } \
+         program { \
+            name: "multi_down"; \
+            signal: "elm,action,multi,down"; \
+            source: "elm"; \
+            script { \
+               set_int(multi_down, 1); \
+            } \
+         } \
+         program { \
+            name: "multi_up"; \
+            signal: "elm,action,multi,up"; \
+            source: "elm"; \
+            script { \
+               set_int(multi_down, 0); \
+            } \
+         } \
+      } \
+   }
+
+MSG_BUTTON_THREAD_CONTACT_CIRCLE_STYLE("circle_button", 99, 99)
+///////////////////////////////////////////////////////////////////////////////////////
+#define BUTTON_ICON_STYLES(style_name , min_width, min_height) \
+   group { name: "elm/button/base/"style_name; \
+      images { \
+      } \
+      script { \
+         public mouse_down = 0; \
+         public multi_down = 0; \
+      } \
+      parts { \
+         part { name: "button_image"; \
+            type: SPACER; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: min_width min_height; \
+               max: min_width min_height; \
+            } \
+         } \
+         part { name: "button_center_part"; \
+                       type : SWALLOW ; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+            } \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+            } \
+         } \
+         part { name: "over1"; \
+            type: RECT; \
+            repeat_events: 1; \
+            ignore_flags: ON_HOLD; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "over2"; \
+            type: RECT; \
+            repeat_events: 1; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "disabler"; \
+            type: RECT; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+               color: 0 0 0 0; \
+               visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+      } \
+      programs { \
+         program { name: "button_press"; \
+            signal: "mouse,down,1*"; \
+            source: "over1"; \
+            script { \
+               if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) \
+                 { \
+                     set_int(mouse_down, 1); \
+                     run_program(PROGRAM:"button_press2"); \
+                 } \
+            } \
+         } \
+         program { name: "button_press2"; \
+            action: SIGNAL_EMIT "elm,action,press" ""; \
+            after: "button_press_anim"; \
+         } \
+         program { name: "button_press_anim"; \
+            action: STATE_SET "pressed" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "key_press"; \
+            signal: "elm,action,pressed"; \
+            source: "elm"; \
+            action: STATE_SET "pressed" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "key_unpress"; \
+            signal: "elm,action,unpressed"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "button_unpress"; \
+            signal: "mouse,up,1*"; \
+            source: "over2"; \
+            script { \
+               if (get_int(mouse_down) == 1) \
+                 { \
+                    set_int(mouse_down, 0); \
+                    run_program(PROGRAM:"button_unpress2"); \
+                    run_program(PROGRAM:"button_unpress_anim"); \
+                 } \
+            } \
+         } \
+         program { name: "button_unpress2"; \
+            action: SIGNAL_EMIT "elm,action,unpress" ""; \
+         } \
+         program { name: "button_unpress_anim"; \
+            action: STATE_SET "default" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "button_click"; \
+            signal: "mouse,clicked,1"; \
+            source: "over2"; \
+            script { \
+               if (get_int(multi_down) == 0) { \
+                 run_program(PROGRAM:"touch_sound"); \
+                 run_program(PROGRAM:"button_click2"); \
+               } \
+            } \
+         } \
+         program { name: "touch_sound"; \
+            action: RUN_PLUGIN "touch_sound"; \
+         } \
+         program { name: "button_click2"; \
+            action: SIGNAL_EMIT "elm,action,click" ""; \
+         } \
+         program { name: "disable"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            target: "disabler"; \
+            target: "button_center_part"; \
+         } \
+         program { name: "enable"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "disabler"; \
+            target: "button_center_part"; \
+         } \
+         program { \
+            name: "multi_down"; \
+            signal: "elm,action,multi,down"; \
+            source: "elm"; \
+            script { \
+               set_int(multi_down, 1); \
+            } \
+         } \
+         program { \
+            name: "multi_up"; \
+            signal: "elm,action,multi,up"; \
+            source: "elm"; \
+            script { \
+               set_int(multi_down, 0); \
+            } \
+         } \
+      } \
+   }
+
+BUTTON_ICON_STYLES("send_custom",  46 , 40)
+
+#define BUTTON_ICON_SEND_SIM_STYLES(STYLE_NAME , MIN_WIDTH, MIN_HEIGHT, BG_CN_R, BG_CN_G, BG_CN_B, BG_CN_A, BG_CP_R, BG_CP_G, BG_CP_B, BG_CP_A, BG_CD_R, BG_CD_G, BG_CD_B, BG_CD_A, SIM_IMG_PATH) \
+   group { name: "elm/button/base/"STYLE_NAME; \
+      images { \
+             image: "btn_send_message_sim_bg.png" COMP; \
+             image: SIM_IMG_PATH COMP; \
+      } \
+      script { \
+         public mouse_down = 0; \
+         public multi_down = 0; \
+      } \
+      parts { \
+         part { name: "button_image"; \
+            type: SPACER; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: MIN_WIDTH MIN_HEIGHT; \
+               max: MIN_WIDTH MIN_HEIGHT; \
+            } \
+         } \
+         part { name: "button_center_part"; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+               image.normal : "btn_send_message_sim_bg.png"; \
+               color: BG_CN_R BG_CN_G BG_CN_B BG_CN_A; \
+            } \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+               color: BG_CP_R BG_CP_G BG_CP_B BG_CP_A; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: BG_CD_R BG_CD_G BG_CD_B BG_CD_A; \
+            } \
+         } \
+         part { \
+                       name: "button_sim"; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1.to: "button_image"; \
+                               rel2.to: "button_image"; \
+                               image.normal : SIM_IMG_PATH; \
+                               color: COLOR_BLUE_EDC; \
+                       } \
+               } \
+         part { name: "over1"; \
+            type: RECT; \
+            repeat_events: 1; \
+            ignore_flags: ON_HOLD; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "over2"; \
+            type: RECT; \
+            repeat_events: 1; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "disabler"; \
+            type: RECT; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+               color: 0 0 0 0; \
+               visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+      } \
+      programs { \
+         program { name: "button_press"; \
+            signal: "mouse,down,1*"; \
+            source: "over1"; \
+            script { \
+               if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) \
+                 { \
+                     set_int(mouse_down, 1); \
+                     run_program(PROGRAM:"button_press2"); \
+                 } \
+            } \
+         } \
+         program { name: "button_press2"; \
+            action: SIGNAL_EMIT "elm,action,press" ""; \
+            after: "button_press_anim"; \
+         } \
+         program { name: "button_press_anim"; \
+            action: STATE_SET "pressed" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "key_press"; \
+            signal: "elm,action,pressed"; \
+            source: "elm"; \
+            action: STATE_SET "pressed" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "key_unpress"; \
+            signal: "elm,action,unpressed"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "button_unpress"; \
+            signal: "mouse,up,1*"; \
+            source: "over2"; \
+            script { \
+               if (get_int(mouse_down) == 1) \
+                 { \
+                    set_int(mouse_down, 0); \
+                    run_program(PROGRAM:"button_unpress2"); \
+                    run_program(PROGRAM:"button_unpress_anim"); \
+                 } \
+            } \
+         } \
+         program { name: "button_unpress2"; \
+            action: SIGNAL_EMIT "elm,action,unpress" ""; \
+         } \
+         program { name: "button_unpress_anim"; \
+            action: STATE_SET "default" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "button_click"; \
+            signal: "mouse,clicked,1"; \
+            source: "over2"; \
+            script { \
+               if (get_int(multi_down) == 0) { \
+                 run_program(PROGRAM:"touch_sound"); \
+                 run_program(PROGRAM:"button_click2"); \
+               } \
+            } \
+         } \
+         program { name: "touch_sound"; \
+            action: RUN_PLUGIN "touch_sound"; \
+         } \
+         program { name: "button_click2"; \
+            action: SIGNAL_EMIT "elm,action,click" ""; \
+         } \
+         program { name: "disable"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            target: "disabler"; \
+            target: "button_center_part"; \
+         } \
+         program { name: "enable"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "disabler"; \
+            target: "button_center_part"; \
+         } \
+         program { \
+            name: "multi_down"; \
+            signal: "elm,action,multi,down"; \
+            source: "elm"; \
+            script { \
+               set_int(multi_down, 1); \
+            } \
+         } \
+         program { \
+            name: "multi_up"; \
+            signal: "elm,action,multi,up"; \
+            source: "elm"; \
+            script { \
+               set_int(multi_down, 0); \
+            } \
+         } \
+      } \
+   }
+
+       BUTTON_ICON_SEND_SIM_STYLES("send_custom/sim_1" , 46, 42, 107, 211, 255, 255, 31, 188, 255, 255, 107, 211, 255, 71, "btn_send_message_sim_1.png")
+       BUTTON_ICON_SEND_SIM_STYLES("send_custom/sim_2" , 46, 42, 214, 106, 236, 255, 123, 19, 144, 255, 214, 106, 236, 71, "btn_send_message_sim_2.png")
+       BUTTON_ICON_SEND_SIM_STYLES("send_custom/sim_call" , 46, 42, 160, 243, 109, 255, 114, 237, 38, 255, 160, 243, 109, 71, "btn_send_message_sim_phone.png")
+       BUTTON_ICON_SEND_SIM_STYLES("send_custom/sim_messages" , 46, 42, 255, 251, 240, 255, 254, 231, 165, 255, 255, 251, 240, 71, "btn_send_message_sim_messages.png")
+       BUTTON_ICON_SEND_SIM_STYLES("send_custom/sim_data" , 46, 42, 255, 240, 230, 255, 254, 133, 52, 255, 255, 240, 230, 71, "btn_send_message_sim_data.png")
+       BUTTON_ICON_SEND_SIM_STYLES("send_custom/sim_internet" , 46, 42, 26, 72, 224, 255, 18, 50, 155, 255, 26, 72, 224, 71, "btn_send_message_sim_internet.png")
+       BUTTON_ICON_SEND_SIM_STYLES("send_custom/sim_home" , 46, 42, 46, 255, 185, 255, 0, 224, 150, 255, 46, 255, 185, 71, "btn_send_message_sim_home.png")
+       BUTTON_ICON_SEND_SIM_STYLES("send_custom/sim_office" , 46, 42, 59, 74, 84, 255, 27, 35, 39, 255, 59, 74, 84, 71, "btn_send_message_sim_office.png")
+       BUTTON_ICON_SEND_SIM_STYLES("send_custom/sim_heart" , 46, 42, 248, 216, 233, 255, 237, 151, 197, 255, 248, 216, 233, 71, "btn_send_message_sim_heart.png")
+
+#define BUTTON_BODY_STYLES(style_name ,img_width, img_height, bg_width, bg_height) \
+   group { name: "elm/button/base/"style_name; \
+      images { \
+      } \
+      script { \
+         public mouse_down = 0; \
+         public multi_down = 0; \
+      } \
+      parts { \
+         part { name: "button_bg"; \
+            type: SPACER; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: bg_width bg_height; \
+               max: bg_width bg_height; \
+            } \
+         } \
+         part { name: "button_image"; \
+            type: SPACER; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: img_width img_height; \
+               max: img_width img_height; \
+            } \
+         } \
+         part { name: "button_center_part"; \
+                       type : SWALLOW ; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+            } \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+            } \
+         } \
+         part { name: "over1"; \
+            type: RECT; \
+            repeat_events: 1; \
+            ignore_flags: ON_HOLD; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_bg"; \
+               rel2.to: "button_bg"; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "over2"; \
+            type: RECT; \
+            repeat_events: 1; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_bg"; \
+               rel2.to: "button_bg"; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "disabler"; \
+            type: RECT; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_bg"; \
+               rel2.to: "button_bg"; \
+               color: 0 0 0 0; \
+               visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+      } \
+      programs { \
+         program { name: "button_press"; \
+            signal: "mouse,down,1*"; \
+            source: "over1"; \
+            script { \
+               if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) \
+                 { \
+                     set_int(mouse_down, 1); \
+                     run_program(PROGRAM:"button_press2"); \
+                 } \
+            } \
+         } \
+         program { name: "button_press2"; \
+            action: SIGNAL_EMIT "elm,action,press" ""; \
+            after: "button_press_anim"; \
+         } \
+         program { name: "button_press_anim"; \
+            action: STATE_SET "pressed" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "key_press"; \
+            signal: "elm,action,pressed"; \
+            source: "elm"; \
+            action: STATE_SET "pressed" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "key_unpress"; \
+            signal: "elm,action,unpressed"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "button_unpress"; \
+            signal: "mouse,up,1*"; \
+            source: "over2"; \
+            script { \
+               if (get_int(mouse_down) == 1) \
+                 { \
+                    set_int(mouse_down, 0); \
+                    run_program(PROGRAM:"button_unpress2"); \
+                    run_program(PROGRAM:"button_unpress_anim"); \
+                 } \
+            } \
+         } \
+         program { name: "button_unpress2"; \
+            action: SIGNAL_EMIT "elm,action,unpress" ""; \
+         } \
+         program { name: "button_unpress_anim"; \
+            action: STATE_SET "default" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "button_click"; \
+            signal: "mouse,clicked,1"; \
+            source: "over2"; \
+            script { \
+               if (get_int(multi_down) == 0) { \
+                 run_program(PROGRAM:"touch_sound"); \
+                 run_program(PROGRAM:"button_click2"); \
+               } \
+            } \
+         } \
+         program { name: "touch_sound"; \
+            action: RUN_PLUGIN "touch_sound"; \
+         } \
+         program { name: "button_click2"; \
+            action: SIGNAL_EMIT "elm,action,click" ""; \
+         } \
+         program { name: "disable"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            target: "disabler"; \
+            target: "button_center_part"; \
+         } \
+         program { name: "enable"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "disabler"; \
+            target: "button_center_part"; \
+         } \
+         program { \
+            name: "multi_down"; \
+            signal: "elm,action,multi,down"; \
+            source: "elm"; \
+            script { \
+               set_int(multi_down, 1); \
+            } \
+         } \
+         program { \
+            name: "multi_up"; \
+            signal: "elm,action,multi,up"; \
+            source: "elm"; \
+            script { \
+               set_int(multi_down, 0); \
+            } \
+         } \
+      } \
+   }
+
+BUTTON_BODY_STYLES("body_button",72,72,72,72)
+BUTTON_BODY_STYLES("contact_button",50,50,80,80)
+BUTTON_BODY_STYLES("plus_button",80,80,80,80)
+
+///////////////////////////////////////////////////////////////////
+// button for navi title
+///////////////////////////////////////////////////
+group {
+       name: "elm/button/base/title_button";
+       data {
+               item: "focus_highlight" "on";
+       }
+       images {
+               image: "00_title_press.#.png" COMP;
+               image: "00_focus_01.#.png" COMP;
+       }
+       parts {
+               part { name: "focus_image";
+                       description {
+                               state: "default" 0.0;
+                               image.normal: "00_focus_01.#.png";
+                               color_class: "W161";
+                               visible: 0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "padding_top";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               min: 0 4;
+                               align: 0.5 0.0;
+                               rel1 {relative: 0.0 0.0;}
+                               rel2 {relative: 1.0 0.0;}
+                       }
+               }
+               part {
+                       name: "padding_bottom";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               min: 0 4;
+                               align: 0.5 1.0;
+                               rel1 {relative: 0.0 1.0; offset: 0 -4;}
+                               rel2 {relative: 1.0 1.0;}
+                       }
+               }
+               part {
+                       name: "button_image";
+                       type: IMAGE;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               rel1 {relative: 0.0 0.0; }
+                               rel2 {relative: 1.0 1.0; }
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                               image.normal: "00_title_press.#.png";
+                               color: 138 195 204 255;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "title_text_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 32;
+                               fixed: 0 1;
+                               align: 0.0 0.5;
+                               rel1 { relative: 0.0 1.0; to_y:"padding_top";}
+                               rel2 { relative: 1.0 0.0; to_y:"padding_bottom";}
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "clipper";
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               text {
+                                       align: 0.5 0.5;
+                                       size: 50;
+                                       text_class: "title_bar";
+                               }
+                               min: 0 32;
+                               color: COLOR_WHITE_EDC;
+                               align: 0.5 0.5;
+                               rel1 {to: "title_text_bg"; }
+                               rel2.to: "title_text_bg";
+                       }
+               }
+               part {
+                       name: "over2";
+                       type: RECT;
+                       repeat_events: 1;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1 {relative: 0.0 0.0; to: "title_text_bg"; }
+                               rel2 {relative: 1.0 1.0; to: "title_text_bg"; }
+                       }
+               }
+               part {
+                       name: "over3";
+                       type: RECT;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               rel1 {relative: 0.0 0.0; to: "title_text_bg"; }
+                               rel2 {relative: 1.0 1.0; to: "title_text_bg"; }
+                       }
+               }
+               part {
+                       name: "clipper";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 250 250 250 255;
+                       }
+               }
+               part {
+                       name: "disabler";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       action: SIGNAL_EMIT "elm,action,press" "";
+                       action: RUN_PLUGIN "touch_sound";
+                       action: STATE_SET "clicked" 0.0;
+                       target: "button_image";
+               }
+               program {
+                       name: "button_unclick";
+                       signal: "mouse,up,1";
+                       source: "over3";
+                       action: SIGNAL_EMIT "elm,action,unpress" "";
+                       action: STATE_SET "default" 0.0;
+                       target: "button_image";
+               }
+               program {
+                       name: "button_clicked";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       action: RUN_PLUGIN "touch_sound";
+                       after: "button_unclick3";
+               }
+               program {
+                       name: "button_unclick3";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+               program {
+                       name: "action_focus";
+                       signal: "elm,action,focus_highlight,show";
+                       source: "elm";
+                       action: STATE_SET "focused" 0.0;
+                       target: "focus_image";
+               }
+               program {
+                       name: "action_unfocus";
+                       signal: "elm,action,focus_highlight,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "focus_image";
+               }
+       }
+}
+
+/////////////////////////////////////////////////////////////////
+// button for translate
+/////////////////////////////////////////////////////////////////
+#define MSG_BUBBLE_BUTTON_STYLE_TRANSLATE(style_name, bg_image, press_image, dim_image, btn_image) \
+group { \
+       name: "elm/button/base/"style_name; \
+       data.item: "focus_highlight" "on"; \
+       images { \
+               image: bg_image COMP; \
+               image: press_image COMP; \
+               image: dim_image COMP; \
+               image: btn_image COMP; \
+       } \
+       parts { \
+               part { \
+                       name: "button_image"; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: 40 40; \
+                               max: 40 40; \
+                               image.normal: bg_image; \
+                       } \
+                       description { \
+                               state: "clicked" 0.0; \
+                               inherit: "default" 0.0; \
+                               image.normal: press_image; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               inherit: "default" 0.0; \
+                               image.normal: dim_image; \
+                       } \
+               } \
+               part { \
+                       name: "left_top_padding"; \
+                       scale: 1; \
+                       type: SPACER; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: 6 6; \
+                               max: 6 6; \
+                               fixed: 1 1; \
+                               align: 0.0 0.0; \
+                               rel1.to: "button_image"; \
+                               rel2.to: "button_image"; \
+                       } \
+               } \
+               part {  \
+                       name: "right_bottom_padding";  \
+                       scale: 1; \
+                       type: SPACER; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: 7 7; \
+                               max: 7 7; \
+                               fixed: 1 1; \
+                               align: 1.0 1.0; \
+                               rel1.to: "button_image"; \
+                               rel1.relative: 1.0 1.0; \
+                               rel2.to: "button_image"; \
+                       } \
+               }  \
+               part {  \
+                       name: "button_center_part";  \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               min: 30 30; \
+                               max: 30 30; \
+                               image.normal: btn_image; \
+                               align: 0.5 0.5; \
+                       } \
+               }  \
+               part {  \
+                       name: "elm.swallow.icon.shadow.proxy";  \
+                       type: PROXY; \
+                       clip_to: "elm.icon.proxy.clipper"; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               source: "button_center_part"; \
+                               proxy.source_clip: 0; \
+                               rel1 { to: "button_center_part"; } \
+                               rel2 { to: "button_center_part"; } \
+                       } \
+                       description { \
+                               state: "clicked" 0.0; \
+                               inherit: "default" 0.0; \
+                               rel1 { to: "button_center_part";  } \
+                               rel2 { to: "button_center_part"; } \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               inherit: "default" 0.0; \
+                       } \
+               }  \
+               part {  \
+                       name: "elm.swallow.icon.proxy";  \
+                       type: PROXY; \
+                       scale: 1; \
+                       clip_to: "icon_clipper"; \
+                       description { \
+                               state: "default" 0.0; \
+                               source: "button_center_part"; \
+                               proxy.source_clip: 0; \
+                               rel1.to: "button_center_part"; \
+                               rel2.to: "button_center_part"; \
+                       } \
+               }  \
+               part {  \
+                       name: "elm.icon.proxy.clipper";  \
+                       type: RECT; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 0 0 0 255; \
+                       } \
+                       description { \
+                               state: "clicked" 0.0; \
+                               color: 0 0 0 255; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               color: 34 44 72 255; \
+                       } \
+               } \
+               part {  \
+                       name: "icon_clipper"; \
+                       type: RECT; \
+                       scale: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 250 250 250 255; \
+                       } \
+                       description { \
+                               state: "clicked" 0.0; \
+                               color: 250 250 250 255; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               color: 166 167 169 255; \
+                       } \
+               }  \
+               part {  \
+                       name: "over1";  \
+                       type: RECT; \
+                       ignore_flags: ON_HOLD; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 0 0 0 0; \
+                               min: 40 40; \
+                       } \
+               } \
+               part {  \
+                       name: "over2";  \
+                       type: RECT; \
+                       repeat_events: 1; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 0 0 0 0; \
+                       } \
+               }  \
+               part {  \
+                       name: "disabler";  \
+                       type: RECT; \
+                       description { \
+                               state: "default" 0.0; \
+                               color: 0 0 0 0; \
+                               visible: 0; \
+                       } \
+                       description { \
+                               state: "disabled" 0.0; \
+                               inherit: "default" 0.0; \
+                               visible: 1; \
+                       } \
+               }  \
+       }  \
+       programs { \
+               program { \
+                       name: "button_click"; \
+                       signal: "mouse,down,1"; \
+                       source: "over1"; \
+                       action: SIGNAL_EMIT "elm,action,press" ""; \
+                       after: "button_click_anim"; \
+               } \
+               program { \
+                       name: "button_click_anim"; \
+                       action: STATE_SET "clicked" 0.0; \
+                       target: "button_image"; \
+                       target: "elm.swallow.icon.shadow.proxy"; \
+                       target: "elm.icon.proxy.clipper"; \
+                       target: "icon_clipper"; \
+               } \
+               program { \
+                       name: "button_double_click"; \
+                       signal: "mouse,down,1,double"; \
+                       source: "over1"; \
+                       after: "button_click_anim"; \
+               } \
+               program { \
+                       name: "button_unclick"; \
+                       signal: "mouse,up,1"; \
+                       source: "over2"; \
+                       action: SIGNAL_EMIT "elm,action,unpress" ""; \
+                       after: "button_unclick_anim"; \
+               } \
+               program { \
+                       name: "button_unclick_anim"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "button_image"; \
+                       target: "elm.swallow.icon.shadow.proxy"; \
+                       target: "elm.icon.proxy.clipper"; \
+                       target: "icon_clipper"; \
+               } \
+               program { \
+                       name: "touch_snd"; \
+                       signal: "mouse,clicked,1"; \
+                       source: "over1"; \
+                       action: RUN_PLUGIN "touch_sound"; \
+                       after: "button_unclick3"; \
+               } \
+               program { \
+                       name: "button_unclick3"; \
+                       action: SIGNAL_EMIT "elm,action,click" ""; \
+               } \
+               program { \
+                       name: "disable"; \
+                       signal: "elm,state,disabled"; \
+                       source: "elm"; \
+                       action: STATE_SET "disabled" 0.0; \
+                       target: "disabler"; \
+                       target: "button_image"; \
+                       target: "elm.swallow.icon.shadow.proxy"; \
+                       target: "elm.icon.proxy.clipper"; \
+                       target: "icon_clipper"; \
+               } \
+               program { \
+                       name: "enable"; \
+                       signal: "elm,state,enabled"; \
+                       source: "elm"; \
+                       action: STATE_SET "default" 0.0; \
+                       target: "disabler"; \
+                       target: "button_image"; \
+                       target: "elm.swallow.icon.shadow.proxy"; \
+                       target: "elm.icon.proxy.clipper"; \
+                       target: "icon_clipper"; \
+               } \
+       } \
+}
+
+MSG_BUBBLE_BUTTON_STYLE_TRANSLATE("translate_button", "M01_circle_button.png", "M01_circle_button_press.png", "M01_circle_button_dim.png", "M01_btn_translate.png")
diff --git a/common/data/msg_common.edc b/common/data/msg_common.edc
new file mode 100755 (executable)
index 0000000..c8e2bd0
--- /dev/null
@@ -0,0 +1,1876 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "../../common/msg-ui-color.h"
+#define BUBBLE_SOUND_ICON_BG_COLOR 255 255 255 255
+#define BUBBLE_ATTACH_ICON_BG_COLOR 0 0 0 255
+
+#define BUTTON_TEXT_SHADOW_TEXTBLOCK_NORMAL_COLOR_INC "#000000FF"
+#define BUTTON_TEXT_SHADOW_TEXTBLOCK_PRESSED_COLOR_INC "#243D4BFF"
+#define BUTTON_TEXT_SHADOW_TEXTBLOCK_DIM_COLOR_INC "#323232FF"
+
+#define MSG_COMMON_TOAST_POPUP_WIDTH 450
+#define MSG_COMMON_TOAST_POPUP_HEIGHT_1LINE 64 //32 + 16 + 16
+#define MSG_COMMON_TOAST_POPUP_HEIGHT_2LINE 96 //32 + 32 + 16 + 16
+#define MSG_COMMON_TOAST_POPUP_TITLE_TOP_PADDING 16
+#define MSG_COMMON_TOAST_POPUP_TITLE_BOTTOM_PADDING 16
+#define MSG_COMMON_TOAST_POPUP_TITLE_LEFT_PADDING 28
+#define MSG_COMMON_TOAST_POPUP_TITLE_RIGHT_PADDING 28
+#define MSG_COMMON_TOAST_POPUP_TEXT_BLOCK_1LINE 32
+#define MSG_COMMON_TOAST_POPUP_TEXT_BLOCK_2LINE 64
+#define MSG_COMMON_TOAST_POPUP_TEXT_BLOCK_MAX_WIDTH 394        //450 - 28 - 28
+
+#define TITLE_TEXT_BUTTON_HEIGHT 70
+#define TITLE_TEXT_BUTTON_INNER_PADDING 23
+#define TITLE_TEXT_BUTTON_SIDE_PADDING 32
+#define TITLE_SIDE_PADDING 32
+#define CHECKBOX_SIZE 50
+
+// PART
+#define PART(TYPE, NAME, DESCRIPION) \
+   part { name: NAME; \
+         scale: 1; \
+         type: TYPE; \
+         DESCRIPION \
+   }
+
+// TEXT STYLE
+#define TITLE_TEXT_STYLE \
+       text {\
+               font: "Samsung Condensed";\
+               size: 50;\
+               min: 0 0;\
+               max: 1 0;\
+               align: 0.5 0.5;\
+       }\
+       color: BUBBLE_NAVI_TITLE_TEXT_COLOR;\
+
+//circle mask
+#define CIRCLE_MASK(NAME, MASK)\
+       group { \
+               name: NAME;\
+               images {\
+                       image: MASK COMP;\
+               }\
+               parts {\
+                       part {\
+                               name: "masking";\
+                               type: IMAGE;\
+                               precise_is_inside: 1;\
+                               description {\
+                                       state: "default" 0.0;\
+                                       rel1.relative: 0.0 0.0;\
+                                       rel2.relative: 1.0 1.0;\
+                                       image.normal: MASK;\
+                               }\
+                       }\
+                       part {\
+                               name: "content";\
+                               type: SWALLOW;\
+                               clip_to: "masking";\
+                               description {\
+                                       state: "default" 0.0;\
+                                       rel1.relative: 0.0 0.0;\
+                                       rel2.relative: 1.0 1.0;\
+                               }\
+                       }\
+               }\
+       }\
+
+collections {
+       base_scale: 2.6;
+       externals {
+               external: "elm";
+               external: "feedback";
+       }
+       plugins {
+               plugin {
+                       name: "touch_sound";
+                       source: "feedback";
+                       param:  "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+                       /* 2014.06.11 updated from libsvi(feedback)
+                       Above plugin will run below external function:
+                       int feedback_play_type(feedback_type_e type, feedback_pattern_e pattern);
+
+                       param1: feedback_type_e
+                       FEEDBACK_TYPE_NONE = 0,
+                       FEEDBACK_TYPE_SOUND = 1,
+                       FEEDBACK_TYPE_VIBRATION,
+                       FEEDBACK_TYPE_END
+
+                       * param2 enumeration:
+                       FEEDBACK_PATTERN_TAP = 0,
+                       FEEDBACK_PATTERN_SIP,
+                       ...
+                       * For information, please refer the libsvi libraries.
+                       * git: slp-info.sec.samsung.net:29418/magnolia/framework/system/libsvi
+                       * web: http://slp-info.sec.samsung.net/gerrit/plugins/gitiles/magnolia/framework/system/libsvi
+                       */
+               }
+       }
+       images {
+               image: "M01_bg_style_default.png" COMP;
+               image: "badge_icon_draft_pencil.png" COMP;
+               image: "badge_icon_failed.png" COMP;
+               image: "badge_bg_draft.png" COMP;
+               image: "core_icon_back.png" COMP;
+               image: "core_icon_expand_close.png" COMP;
+       }
+       
+       styles {
+               style { name: "title_style";
+                       base: "font=Samsung Condensed:style=Regular align=center font_size=38 color=#FFFFFFFF wrap=mixed ellipsis=1.0 text_class=title_bar";
+                       tag:  "br" "\n";
+                       tag:  "tab" "\t";
+               }
+               style { name: "subtitle_visible_style";
+                       base: "font=Samsung Condensed:style=Regular align=center font_size=32 color=#FFFFFFFF wrap=mixed ellipsis=1.0 text_class=title_bar";
+                       tag:  "br" "\n";
+                       tag:  "tab" "\t";
+               }
+       }
+
+       CIRCLE_MASK("messages_conversation_thumb_masking","messages_conversation_thumb_masking.png")
+       CIRCLE_MASK("messages_list_thumb_image_bg","messages_list_thumb_image_bg.png")
+
+       group {
+               name: "title";
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       color: BUBBLE_NAVI_TITLE_COLOR;
+                                       min: 0 BUBBLE_NAVI_TITLE_HEIGHT_POTRAIT;
+                                       max: -1 BUBBLE_NAVI_TITLE_HEIGHT_POTRAIT;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 BUBBLE_NAVI_TITLE_HEIGHT_LANDSCAPE;
+                                       max: -1 BUBBLE_NAVI_TITLE_HEIGHT_LANDSCAPE;
+                               }
+                       }
+                       part {
+                               name: "padding_top";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       min: 0 4;
+                                       align: 0.5 0;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 1.0 0.0;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "base";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1.relative: 0.0 1.0;
+                                       rel2.relative: 1.0 0.0;
+                                       rel1.to: "padding_top";
+                                       rel2.to: "padding_bottom";
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "padding_bottom";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       min: 0 4;
+                                       align: 0.5 1;
+                                       rel1.relative: 0.0 1.0;
+                                       rel2.relative: 1.0 1.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "padding_left";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 15 0;
+                                       max: 15 0;
+                                       align: 0 0.5;
+                                       rel1.relative: 0 0;
+                                       rel2.relative: 0 1;
+                                       color: 255 255 255 0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "title_bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 64;
+                                       fixed: 1 1;
+                                       align : 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "padding_left"; to_y: "base";}
+                                       rel2 { relative: 0.0 1.0; to_x: "down_arrow"; to_y: "base";}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "back_btn_padding_left";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 10 0;
+                                       max: 10 0;
+                                       align: 0 0.5;
+                                       rel1.relative: 0 0;
+                                       rel2.relative: 0 1;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "back_arrow";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 0;
+                                       image.normal: "core_icon_back.png";
+                                       color: BUBBLE_NAVI_TITLE_ARROW_COLOR;
+                                       min: 80 80;
+                                       max: 80 80;
+                                       rel1 { relative: 1.0 0.0; to_x: "back_btn_padding_left"; to_y: "base"; }
+                                       rel2 { relative: 1.0 1.0; to_y: "base"; }
+                                       align: 0.0 0.5;
+                               }
+                               description {
+                                       state: "pressed";
+                                       inherit: "default" 0.0;
+                                       color: BUBBLE_NAVI_TITLE_ARROW_PRESSED_COLOR;
+                               }
+                               description {
+                                       state: "show_select_info";
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "title_text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       TITLE_TEXT_STYLE
+                                       align: 0.5 0.5;
+                                       min: 0 67;
+                                       max: -1 67;
+                                       fixed: 1 0;
+                                       rel1 { relative: 1.0 0.0; to: "back_arrow"; }
+                                       rel2 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "back_arrow"; }
+                               }
+                               description {
+                                       state: "show_select_info" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "title_btn";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to: "back_arrow"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "padding_right"; to_y: "back_arrow"; }
+                               }
+                       }
+                       part {
+                               name: "delete_title_bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 TITLE_TEXT_BUTTON_HEIGHT;
+                                       max: 0 TITLE_TEXT_BUTTON_HEIGHT;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "padding_left"; to_y: "base";}
+                                       rel2 { relative: 1.0 1.0; to_x: "padding_left"; to_y: "base";}
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show_select_info" 0.0;
+                                       align : 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "padding_left"; to_y: "base";}
+                                       rel2 { relative: 0.0 1.0; to_x: "down_arrow"; to_y: "base";}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "cancel_btn_pad";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       max: 0 0;
+                                       rel1 { relative: 0.0 0.0; to: "delete_title_bg";}
+                                       rel2 { relative: 0.0 1.0; to: "delete_title_bg";}
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show_select_info" 0.0;
+                                       fixed: 1 1;
+                                       min: 17 TITLE_TEXT_BUTTON_HEIGHT;
+                                       rel1 { relative: 0.0 0.0; to: "delete_title_bg";}
+                                       rel2 { relative: 0.0 1.0; to: "delete_title_bg";}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "cancel_btn";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       max: 0 0;
+                                       rel1 { relative: 1.0 0.0; to: "cancel_btn_pad";}
+                                       rel2 { relative: 1.0 1.0; to: "cancel_btn_pad";}
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show_select_info" 0.0;
+                                       fixed: 1 1;
+                                       min: 28 28;
+                                       max: 28 28;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.0 0.0; to_y: "cancel_btn_pad"; offset: TITLE_TEXT_BUTTON_SIDE_PADDING 0;}
+                                       rel2 { relative: 0.0 1.0; to_y: "cancel_btn_pad";}
+                               }
+                       }
+                       part {
+                               name: "delete_title_text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       max: 0 0;
+                                       rel1 { relative: 1.0 0.0; to_x: "cancel_btn"; to_y: "delete_title_bg"; offset: TITLE_TEXT_BUTTON_INNER_PADDING 0;}
+                                       rel2 { relative: 0.0 1.0; to_x: "done_btn"; to_y: "delete_title_bg"; offset: -TITLE_TEXT_BUTTON_INNER_PADDING 0;}
+                                       visible: 0;
+                                       fixed: 1 1;
+                               }
+                               description {
+                                       state: "show_select_info" 0.0;
+                                       TITLE_TEXT_STYLE
+                                       align: 0.5 0.5;
+                                       min: 0 64;
+                                       max: -1 64;
+                                       fixed: 1 1;
+                                       rel1 { relative: 1.0 0.0; to_x: "cancel_btn"; to_y: "delete_title_bg"; offset: TITLE_TEXT_BUTTON_INNER_PADDING 0;}
+                                       rel2 { relative: 0.0 1.0; to_x: "done_btn"; to_y: "delete_title_bg"; offset: -TITLE_TEXT_BUTTON_INNER_PADDING 0;}
+                               }
+                       }
+                       part {
+                               name: "done_btn_pad";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       max: 0 0;
+                                       rel1 { relative: 1.0 0.0; to: "delete_title_bg";}
+                                       rel2 { relative: 1.0 1.0; to: "delete_title_bg";}
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show_select_info" 0.0;
+                                       fixed: 1 1;
+                                       min: 17 TITLE_TEXT_BUTTON_HEIGHT;
+                                       rel1 { relative: 1.0 0.0; to: "delete_title_bg"; offset: 17 0;}
+                                       rel2 { relative: 1.0 1.0; to: "delete_title_bg";}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "done_btn";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       max: 0 0;
+                                       rel1 { relative: 0.0 0.0; to: "done_btn_pad";}
+                                       rel2 { relative: 0.0 1.0; to: "done_btn_pad";}
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show_select_info" 0.0;
+                                       fixed: 1 1;
+                                       min: 28 28;
+                                       max: 28 28;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_y: "done_btn_pad"; }
+                                       rel2 { relative: 1.0 1.0; to_y: "done_btn_pad"; offset: -TITLE_TEXT_BUTTON_SIDE_PADDING 0;}
+                               }
+                       }
+                       part {
+                               name: "down_arrow";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       image.normal: "core_icon_expand_close.png";
+                                       color: BUBBLE_NAVI_TITLE_ARROW_COLOR;
+                                       min: 80 80;
+                                       max: 80 80;
+                                       rel1 { relative: 0.0 0.0; to_x: "padding_right"; to_y: "base"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "padding_right"; to_y: "base"; }
+                                       align: 1.0 0.5;
+                               }
+                               description {
+                                       state: "pressed";
+                                       inherit: "default" 0.0;
+                                       color: BUBBLE_NAVI_TITLE_ARROW_PRESSED_COLOR;
+                               }
+                               description {
+                                       state: "hide";
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "padding_right";
+                               type: SPACER;
+                               scale: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 17 0;
+                                       max: 17 0;
+                                       align: 1 0.5;
+                                       rel1 { relative: 1.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "show_select_info";
+                               signal: "show,select,info";
+                               source: "";
+                               action: STATE_SET "show_select_info" 0.0;
+                               target: "delete_title_bg";
+                               target: "cancel_btn_pad";
+                               target: "cancel_btn";
+                               target: "delete_title_text";
+                               target: "done_btn_pad";
+                               target: "done_btn";
+                               target: "back_arrow";
+                       }
+                       program {
+                               name: "hide_select_info";
+                               signal: "hide,select,info";
+                               source: "";
+                               action: STATE_SET "default" 0.0;
+                               target: "delete_title_bg";
+                               target: "cancel_btn_pad";
+                               target: "cancel_btn";
+                               target: "delete_title_text";
+                               target: "done_btn_pad";
+                               target: "done_btn";
+                               target: "back_arrow";
+                               target: "title_text";
+                       }
+                       program {
+                               name: "show_cancel_button";
+                               signal: "show,cancel,button";
+                               source: "";
+                               action: STATE_SET "show_select_info" 0.0;
+                               target: "cancel_btn";
+                               target: "back_arrow";
+                       }
+                       program {
+                               name: "hide_cancel_button";
+                               signal: "hide,cancel,button";
+                               source: "";
+                               action: STATE_SET "default" 0.0;
+                               target: "cancel_btn";
+                               target: "back_arrow";
+                       }
+                       program {
+                               name: "show_done_button";
+                               signal: "show,done,button";
+                               source: "";
+                               action: STATE_SET "show_select_info" 0.0;
+                               target: "done_btn";
+                       }
+                       program {
+                               name: "hide_done_button";
+                               signal: "hide,done,button";
+                               source: "";
+                               action: STATE_SET "default" 0.0;
+                               target: "done_btn";
+                       }
+                       program {
+                               name: "title_text_bg_clicked";
+                               source: "title_bg";
+                               signal: "mouse,clicked,1";
+                               filter: "delete_title_text" "default";
+                               action: SIGNAL_EMIT "title_text,clicked" "";
+                       }
+                       program {
+                               name: "title_text_clicked";
+                               source: "title_text";
+                               signal: "mouse,clicked,1";
+                               action: SIGNAL_EMIT "title_text,clicked" "";
+                       }
+                       program {
+                               name: "back_arrow_clicked";
+                               source: "back_arrow";
+                               signal: "mouse,clicked,1";
+                               action: SIGNAL_EMIT "back_arrow,clicked" "";
+                       }
+                       program {
+                               name: "back_arrow_pressed";
+                               source: "back_arrow";
+                               signal: "mouse,down,1";
+                               action: STATE_SET "pressed";
+                               target: "back_arrow";
+                       }
+                       program {
+                               name: "back_arrow_unpressed";
+                               source: "back_arrow";
+                               signal: "mouse,up,1";
+                               action: STATE_SET "default" 0.0;
+                               target: "back_arrow";
+                       }
+                       program {
+                               name: "down_arrow_clicked";
+                               source: "down_arrow";
+                               signal: "mouse,clicked,1";
+                               action: SIGNAL_EMIT "down_arrow,clicked" "";
+                       }
+                       program {
+                               name: "down_arrow_pressed";
+                               source: "down_arrow";
+                               signal: "mouse,down,1";
+                               action: STATE_SET "pressed";
+                               target: "down_arrow";
+                       }
+                       program {
+                               name: "down_arrow_unpressed";
+                               source: "down_arrow";
+                               signal: "mouse,up,1";
+                               action: STATE_SET "default" 0.0;
+                               target: "down_arrow";
+                       }
+                       program {
+                               name: "hide_down_arrow";
+                               signal: "hide,arrow";
+                               source: "";
+                               action: STATE_SET "hide" 0.0;
+                               target: "down_arrow";
+                       }
+                       program {
+                               name: "show_down_arrow";
+                               signal: "show,arrow";
+                               source: "";
+                               action: STATE_SET "default" 0.0;
+                               target: "down_arrow";
+                       }
+               }
+       }
+
+////////////////////////////////////////////////////////////////////////////////////////////////
+       group {
+               name: "toolbar";
+               parts {
+                       part {
+                               name: "padding1";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 74 0;
+                                       align: 0.0 0.0;
+                                       rel1.relative: 0 0;
+                                       rel2.relative: 0 1;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "more_btn";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       max: 86 98;
+                                       fixed: 1 1;
+                                       rel1.to: "padding1";
+                                       rel2.to: "padding1";
+                                       visible: 0; //hide
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "padding2";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 74 0;
+                                       align: 1.0 0.0;
+                                       rel1.relative: 1 0;
+                                       rel2.relative: 1 1;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "prev_btn";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       max: 86 98;
+                                       fixed: 1 1;
+                                       rel1.to: "padding2";
+                                       rel2.to: "padding2";
+                                       visible: 0; //hide
+                               }
+                       }
+                       part {
+                               name: "toolbar_clip";
+                               type: RECT;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 1.0 1.0;
+                               }
+                       }
+                       part {
+                               name: "toolbar_btns_area";
+                               type: RECT;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "padding1"; }
+                                       rel2 { relative: 0.0 1.0; to: "padding2"; }
+                                       visible: 0;
+                                       color: 0 0 100 100;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 { relative: 1.0 1.0; to: "padding1"; }
+                                       rel2 { relative: 1.0 1.0; to: "padding1"; }
+                                       min: 0 0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "toolbar_button1_rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               clip_to: "toolbar_clip";
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 120 48;
+                                       max: 120 48;
+                                       align: 0.5 0.5;
+                                       rel1.to: "toolbar_btns_area";
+                                       rel2.to: "toolbar_btns_area";
+                                       visible: 0;
+                                       color: 0 100 0 100;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "toolbar_button1";
+                               type: SWALLOW;
+                               scale: 1;
+                               //clip_to: "toolbar_clip";
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1.to: "toolbar_button1_rect";
+                                       rel2.to: "toolbar_button1_rect";
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "show.editmode";
+                               signal: "show.editmode";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "padding1";
+                               target: "more_btn";
+                               target: "toolbar_btns_area";
+                               target: "toolbar_button1_rect";
+                               target: "toolbar_button1";
+                       }
+                       program {
+                               name: "hide.editmode";
+                               signal: "hide.editmode";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "padding1";
+                               target: "more_btn";
+                               target: "toolbar_btns_area";
+                               target: "toolbar_button1_rect";
+                               target: "toolbar_button1";
+                       }
+               }
+       }
+////////////////////////////////////////////////////////////////////////////////////////////////
+       group {
+               name: "common/content/bubble/media";
+               images {
+                       image: "00_video_play.png" COMP;
+               }
+
+               parts {
+                       part{
+                               name: "rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events : 0;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+                                       rel1{relative: 0.0 0.0;}
+                                       rel2{relative: 1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "rect.bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "bubble.swallow.media"; relative: 0.0 0.0; offset: -2 -2; }
+                                       rel2 { to: "bubble.swallow.media"; relative: 1.0 1.0; offset: 1 0;}
+                                       align: 0.0 0.0;
+                                       visible: 0;
+                                       color: 0 0 255 255;
+                               }
+                               description {
+                                       state: "focus" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "top_pad";
+                               type: SPACER;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 0;
+                               description {
+                                       min: 0 10;
+                                       state: "default" 0.0;
+                                       rel1 { to: "rect"; relative: 0.0 0.0;}
+                                       rel2 { to: "rect"; relative: 1.0 0.0;}
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "bubble.swallow.media";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 0;
+                                       align: 0.0 0.0;
+                                       rel1{to: "top_pad"; relative: 0.0 1.0;}
+                                       rel2{to: "rect"; relative: 1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "play_button";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       image.normal: "00_video_play.png";
+                                       align: 0.5 0.5;
+                                       min: 72 72;
+                                       rel1 {to: "bubble.swallow.media"; relative: 0.5 0.5; offset: -24 -24;}
+                                       rel2 {to: "bubble.swallow.media"; relative: 0.5 0.5; offset: 24 24;}
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "play_button_show";
+                               signal: "elm,state,icon,show";
+                               source: "";
+                               action: STATE_SET "show" 0.0;
+                               target: "play_button";
+                       }
+                       program {
+                       name: "focused";
+                       signal: "mouse,down,1";
+                       source: "*";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"rect.bg", st, 30, vl);
+
+                               if (!strcmp(st, "default")) {
+                                       set_state(PART:"rect.bg", "focus", 0.0);
+                               }
+                       }
+               }
+                       program {
+                       name: "unfocused";
+                       signal: "mouse,up,1";
+                       source: "*";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"rect.bg", st, 30, vl);
+
+                               if (!strcmp(st, "focus")) {
+                                       set_state(PART:"rect.bg", "default", 0.0);
+                               }
+                       }
+               }
+       }
+}
+
+       // Since there was no height defined for this popup in the GUI taken the height
+       // from elm_demo_tizen code.
+       group {
+               name: "delete_popup_center_progressbar";
+               parts {
+                       part {
+                               name: "bg";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 278 102;
+                               }
+                       }
+                       part {
+                               name: "pad_t";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       min: 0 22;
+                                       fixed: 0 1;
+                                       rel1 {
+                                               relative: 1.0 0.0;to_x: "pad_l";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;to_x: "pad_r";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "pad_l";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 18 0;
+                                       max: 18 0;
+                                       fixed: 1 0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                       }
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "pad_r";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 18 0;
+                                       max: 26 0;
+                                       fixed: 1 0;
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                       }
+                                       align: 1.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "pad_b";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 1.0;
+                                       min: 0 22;
+                                       fixed: 0 1;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "pad_l";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to_x: "pad_r";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "text.box";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "pad_l"; to_y: "pad_t";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "pad_r"; to_y: "elm.swallow.content";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "popup.text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       text {
+                                               font: "T057L3";
+                                               size: 30;
+                                               min: 0 0;
+                                               align: 0.5 0.5;
+                                               text_class: "label";
+                                       }
+                                       color: 0 0 0 255;
+                                       align: 0.5 0.5;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to: "text.box";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               to: "text.box";
+                                       }
+                               }
+                       }
+                       part{
+                               name:"elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 1.0;
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               to_x: "pad_l";
+                                               to_y: "pad_b";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "pad_r";
+                                               to_y: "pad_b";
+                                       }
+                               }
+                       }
+               }
+       }
+
+       group {
+               styles {
+                       style {
+                               name: "button_text_style_default";
+                               base: "font=Tizen:style=Regular font_size=36 align=center color=#FFFFFF color_class=T051 style=far_shadow,bottom shadow_color="BUTTON_TEXT_SHADOW_TEXTBLOCK_NORMAL_COLOR_INC" ellipsis=1.0 wrap=none text_class=button";
+                               tag: "br" "\n";
+                               tag: "ps" "ps";
+                               tag: "tab" "\t";
+                       }
+#if 0
+                       style {
+                               name: "btn_base_style1_pressed";
+                               base: "font=Tizen:style=Regular font_size=36 align=center color=#FFFFFF color_class=T051P style=far_shadow,top shadow_color="BUTTON_TEXT_SHADOW_TEXTBLOCK_PRESSED_COLOR_INC" ellipsis=1.0 wrap=none text_class=button";
+                               tag: "br" "\n";
+                               tag: "ps" "ps";
+                               tag: "tab" "\t";
+                       }
+#endif
+                       style {
+                               name: "button_text_style_disabled";
+                               base: "font=Tizen:style=Regular font_size=36 align=center color=#FFFFFF color_class=T051D style=far_shadow,bottom shadow_color="BUTTON_TEXT_SHADOW_TEXTBLOCK_DIM_COLOR_INC" ellipsis=1.0 wrap=none text_class=button";
+                               tag: "br" "\n";
+                               tag: "ps" "ps";
+                               tag: "tab" "\t";
+                       }
+#if 0
+                       style { name: "btn_base_style1_focus";
+                               base: "font=Tizen:style=Regular font_size=36 align=center color=#FFFFFF color_class=T051S ellipsis=1.0 wrap=none text_class=button";
+                               tag: "br" "\n";
+                               tag: "ps" "ps";
+                               tag: "tab" "\t";
+                       }
+#endif
+               }
+
+               name: "easymode_btn_inner_layout";
+               parts {
+                       part {
+                               name: "base";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 164 30;
+                                       fixed: 1 0;
+                               }
+                       }
+                       part {
+                               name: "pad_t";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       rel1 {
+                                               relative: 1.0 0.0;to_x: "pad_l";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;to_x: "pad_r";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "pad_l";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 8 0;
+                                       max: 12 0;
+                                       fixed: 1 0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to: "base";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to: "base";
+                                       }
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "pad_r";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 8 0;
+                                       max: 12 0;
+                                       fixed: 1 0;
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               to: "base";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               to: "base";
+                                       }
+                                       align: 1.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "pad_b";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 1.0;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "pad_l";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to_x: "pad_r";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "spacing";
+                               scale: 1;
+                               type: SPACER;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       min: 30 30;
+                                       max: 45 45;
+                                       fixed: 1 1;
+                                       rel1 {
+                                               relative: 0.0 1.0;
+                                               to: "pad_t";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to: "pad_b";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "elm.text";
+                               type: TEXTBLOCK;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       fixed: 1 1;
+                                       text {
+                                               style: "button_text_style_default";
+                                               min: 0 1;
+                                               max: 1 1;
+                                       }
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "spacing";
+                                               to_y: "pad_t";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "pad_r";
+                                               to_y: "pad_b";
+                                       }
+                               }
+                               description {
+                                       state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       text {
+                                               style: "button_text_style_disabled";
+                                               min: 0 0;
+                                       }
+                               }
+                       }
+                       part {
+                               name:"pad_before_text";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 7 30;
+                                       max: 10 45;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to: "elm.text";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to: "elm.text";
+                                       }
+                               }
+                       }
+                       part {
+                               name:"swallow.icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 30 30;
+                                       max: 45 45;
+                                       fixed: 1 1;
+                                       align: 1.0 0.0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to: "pad_before_text";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to: "pad_before_text";
+                                       }
+                               }
+                       }
+                       programs {
+                               program {
+                                       name: "disable";
+                                       signal: "elm,state,disabled";
+                                       source: "elm";
+                                       script {
+                                               new st[31];
+                                               new Float:vl;
+                                               get_state(PART:"elm.text", st, 30, vl);
+                                               if (!strcmp(st, "default")) {
+                                                       set_state(PART:"elm.text", "disable", 0.0);
+                                               }
+                                       }
+                               }
+                               program {
+                                       name: "enable";
+                                       signal: "elm,state,enabled";
+                                       source: "elm";
+                                       script {
+                                               new st[31];
+                                               new Float:vl;
+                                               get_state(PART:"elm.text", st, 30, vl);
+                                               if (!strcmp(st, "disable")) {
+                                                       set_state(PART:"elm.text", "default", 0.0);
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+
+#define BUBBLE_SOUND_ATTACH_LAYOUT(style_name, bg_color) \
+       group { \
+               name: style_name; \
+               parts { \
+                       part { \
+                               name: "base"; \
+                               type: RECT; \
+                               scale: 1; \
+                               mouse_events: 1; \
+                               repeat_events: 0; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       visible: 0; \
+                               } \
+                       } \
+                       part { \
+                               name: "base.bg"; \
+                               type: RECT; \
+                               scale: 1; \
+                               mouse_events: 1; \
+                               repeat_events: 0; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       rel1 { to: "base"; relative: 0.0 0.0; offset: -1 -1; } \
+                                       rel2 { to: "base"; relative: 1.0 1.0; offset: 1 1;} \
+                                       align: 0.0 0.0; \
+                                       visible: 0; \
+                                       color_class: B042; \
+                               } \
+                               description { \
+                                       state: "pressed" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 1; \
+                               } \
+                       } \
+                       part { \
+                               name: "padding_top"; \
+                               type: SPACER; \
+                               scale: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       min: 0 0; \
+                                       fixed: 0 1; \
+                                       align: 0.0 0.0; \
+                                       rel1 { relative: 0.0 0.0; } \
+                                       rel2 { relative: 1.0 0.0; } \
+                               } \
+                       } \
+                       part { \
+                               name: "padding_bottom"; \
+                               type: SPACER; \
+                               scale: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       min: 0 1; \
+                                       fixed: 0 1; \
+                                       align: 0.0 1.0; \
+                                       rel1 { relative: 0.0 1.0; } \
+                                       rel2 { relative: 1.0 1.0; } \
+                               } \
+                       } \
+                       part { \
+                               name: "padding_left"; \
+                               type: SPACER; \
+                               scale: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       min: 0 0; \
+                                       fixed: 1 0; \
+                                       align: 0.0 0.0; \
+                                       rel1 { relative: 0.0 0.0; } \
+                                       rel2 { relative: 0.0 1.0; } \
+                               } \
+                       } \
+                       part { \
+                               name: "padding_right"; \
+                               type: SPACER; \
+                               scale: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       min: 0 0; \
+                                       fixed: 1 0; \
+                                       align: 1.0 0.0; \
+                                       rel1 { relative: 1.0 0.0; } \
+                                       rel2 { relative: 1.0 1.0; } \
+                               } \
+                       } \
+                       part { \
+                               name: "elm.text.filename"; \
+                               type: TEXT; \
+                               scale: 1; \
+                               mouse_events: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       rel1 { relative: 1.0 0.0; to_x: "padding_left"; } \
+                                       rel2 { relative: 0.0 1.0; to_x: "padding_right";} \
+                                       align: 0.0 0.5; \
+                                       color: COLOR_DARK_GRAY_EDC; \
+                                       min: 0 25; \
+                                       text { \
+                                               size: 24; \
+                                               align: 0.0 0.5; \
+                                               text: ""; \
+                                               text_class: "label"; \
+                                       } \
+                               } \
+                       } \
+               } \
+               programs { \
+                       program { \
+                               name: "focused"; \
+                               signal: "mouse,down,1"; \
+                               source: "*"; \
+                               action: STATE_SET "pressed" 0.0; \
+                               target: "elm.text.filename"; \
+                               target: "base.bg"; \
+                       } \
+                       program { \
+                               name: "unfocused"; \
+                               signal: "mouse,up,1"; \
+                               source: "*"; \
+                               action: STATE_SET "default" 0.0; \
+                               target: "elm.text.filename"; \
+                               target: "base.bg"; \
+                       } \
+               } \
+       } \
+
+
+
+       BUBBLE_SOUND_ATTACH_LAYOUT("bubble_sound_layout", BUBBLE_SOUND_ICON_BG_COLOR)
+       BUBBLE_SOUND_ATTACH_LAYOUT("bubble_attachment_layout", BUBBLE_ATTACH_ICON_BG_COLOR)
+
+       group { name: "popup_with_checkbox";
+               parts {
+                       part { name: "bg";
+                               scale: 1;
+                               type: SPACER;
+                               description { state: "default" 0.0;
+                                       fixed: 1 0;
+                               }
+                       }
+                       part { name: "pad_l";
+                               type: SPACER;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 15 0;
+                                       fixed: 1 0;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 0.0 1.0;
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part { name: "pad_r";
+                               type: SPACER;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 15 0;
+                                       fixed: 1 0;
+                                       rel1.relative: 1.0 0.0;
+                                       rel2.relative: 1.0 1.0;
+                                       align: 1.0 0.0;
+                               }
+                       }
+                       part { name: "pad_b";
+                               type: SPACER;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       align: 0.0 1.0;
+                                       min: 0 67;
+                                       fixed: 0 1;
+                                       rel1.relative: 0.0 1.0;
+                               }
+                       }
+                       part { name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       align: 0.5 1.0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to: "pad_b";
+                                       }
+                               }
+                       }
+                       part { name: "elm.swallow.end";
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       align: 0.0 1.0;
+                                       min: 40 40;
+                                       fixed: 1 1;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "pad_l";
+                                               to_y: "pad_b";
+                                               offset: 0 -27;
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to_x: "pad_r";
+                                               to_y: "pad_b";
+                                               offset: 0 -27;
+                                       }
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "common/list_popup/icon_layout";
+               parts {
+                       part {
+                               name: "rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 48 48;
+                                       max: 48 48;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 255 255 255 0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "imgclip";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 255 255 255 255;
+                               }
+                               description {
+                                       state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "elm.icon";
+                               clip_to: "imgclip";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 48 48;
+                                       max: 48 48;
+                                       fixed: 1 1;
+                                       rel1 { to: "rect"; relative: 0.0 0.0; }
+                                       rel2 { to: "rect"; relative: 1.0 1.0; }
+                                       align: 0.0 0.0;
+                               }
+                       }
+               }
+               programs{
+                       program{
+                               name: "item_selected";
+                               signal: "elm,state,selected";
+                               source: "elm";
+                               action: STATE_SET "selected" 0.0;
+                               target: "imgclip";
+                       }
+                       program{
+                               name: "item_unselected";
+                               signal: "elm,state,unselected";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "imgclip";
+                       }
+               }
+       }
+
+       group {
+               name: "elm/layout/content/menustyle";
+               parts {
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 76;
+                                       align: 0.5 0.5;
+                                       fixed: 1 0;
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "elm/layout/select_all_layout";
+               parts {
+                       part {
+                               name: "rect";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 120;
+                                       color: BUBBLE_BACKGROUND_COLOR_EDC;
+                               }
+                       }
+                       part {
+                               name: "elm.sel_layout.left.pad";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 0.0 1.0; }
+                                       align: 0.0 0.0;
+                                       min: TITLE_SIDE_PADDING 0;
+                                       fixed: 1 1;
+                               }
+                       }
+                       part {
+                               name: "elm.select_all_text.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "elm.sel_layout.left.pad"; relative: 1.0 0.0; }
+                                       rel2 { to: "elm.select_icon.pad"; relative: 0.0 1.0; }
+                                       fixed: 1 1;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "elm.select_all_text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       color: BUBBLE_NAVI_TITLE_SELECT_ALL_COLOR;
+                                       text {
+                                               align: 0.0 0.5;
+                                               min: 1 1;
+                                               size: 40;
+                                               text_class: "title_bar";
+                                       }
+                                       rel1 { to: "elm.select_all_text.bg"; relative: 0.0 0.0; }
+                                       rel2 { to: "elm.select_all_text.bg"; relative: 1.0 1.0; }
+                               }
+                       }
+                       part {
+                               name: "over";
+                               type: RECT;
+                               scale: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       rel1 { to: "elm.select_all_text.bg"; relative: 0.0 0.0; }
+                                       rel2 { to: "elm.select_all_text.bg"; relative: 1.0 1.0; }
+                                       fixed : 1 1;
+                                       color : 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "elm.select_icon.pad";//padding between swallow.select_icon & select_all_text.bg
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to_x: "elm.swallow.select_icon"; relative: 0.0 0.0; }
+                                       rel2 { to_x: "elm.swallow.select_icon"; relative: 0.0 1.0; }
+                                       align: 1.0 0.0;
+                                       min: 15 0;
+                                       fixed: 1 1;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.select_icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "elm.sel_layout.right.pad"; relative: 0.0 0.0; }
+                                       rel2 { to: "elm.sel_layout.right.pad"; relative: 0.0 1.0; }
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       min: CHECKBOX_SIZE CHECKBOX_SIZE;
+                                       max: CHECKBOX_SIZE CHECKBOX_SIZE;
+                               }
+                       }
+                       part {
+                               name: "elm.sel_layout.right.pad";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 1.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       align: 1.0 0.0;
+                                       min: TITLE_SIDE_PADDING 0;
+                                       fixed: 1 1;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "select_all_text_bg_clicked";
+                               source: "elm.select_all_text.bg";
+                               signal: "mouse,clicked,1";
+                               action: SIGNAL_EMIT "sel_all_layout,clicked" "";
+                       }
+                       program {
+                               name: "select_all_text_clicked";
+                               source: "elm.select_all_text";
+                               signal: "mouse,clicked,1";
+                               action: SIGNAL_EMIT "sel_all_layout,clicked" "";
+                       }
+                       program {
+                               name: "over_clicked";
+                               source: "over";
+                               signal: "mouse,down,1";
+                               action: RUN_PLUGIN "touch_sound";
+                       }
+               }
+       }
+
+       group {
+               name: "popup/sim/icon";
+               parts {
+                       part {
+                               name: "swl.icon.bg";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "swl.icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                       }
+                               }
+                       }
+               }
+       }
+
+#define BUBBLE_BADGE_STYLE(style_name, bg_color_r, bg_color_g, bg_color_b, bg_color_a, icon_image) \
+       group { \
+               name: "elm/layout/bubble/badge/"style_name; \
+               parts { \
+                       part { \
+                               name: "bg"; \
+                               mouse_events: 0; \
+                               repeat_events: 1; \
+                               type: IMAGE; \
+                               scale: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       min: 28 28; \
+                                       max: 28 28; \
+                                       image.normal: "badge_bg_draft.png"; \
+                                       color: bg_color_r bg_color_g bg_color_b bg_color_a; \
+                               } \
+                       } \
+                       part { \
+                               name: "elm.icon"; \
+                               type: IMAGE; \
+                               scale: 1; \
+                               mouse_events: 0; \
+                               repeat_events: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       min: 28 28; \
+                                       max: 28 28; \
+                                       image.normal: icon_image; \
+                                       color: COLOR_WHITE_EDC; \
+                               } \
+                       } \
+               } \
+       }
+
+       BUBBLE_BADGE_STYLE("failed_style", 224, 33, 33, 255, "badge_icon_failed.png");
+       BUBBLE_BADGE_STYLE("draft_style", 2, 61, 132, 255, "badge_icon_draft_pencil.png");
+
+       group {
+               name: "elm/layout/bubble/bubble_layout";
+               parts {
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+               }
+       }
+       group {
+               name: "elm/composer/bubble_bg_default";
+               parts {
+                       part {
+                               name: "elm.swallow.content";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       color: BUBBLE_BACKGROUND_COLOR_EDC;
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "elm/layout/bubble/bubble_bg_layout";
+               parts {
+                       part {
+                               name: "elm.swallow.bg";
+                               type : SWALLOW;
+                               scale: 1;
+                               description {
+                                       state:  "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+               }
+       }
+
+#define BUBBLE_BG_STYLE(style_name, bg_image) \
+       group { \
+               name: "elm/layout/bubble/"style_name; \
+               parts { \
+                       part { \
+                               name: "elm.image.bg"; \
+                               type: RECT; \
+                               scale: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       color_class: "B0211"; \
+                               } \
+                       } \
+               } \
+       } \
+
+//////////////////////////////////////////////////////////
+BUBBLE_BG_STYLE("bubble_bg_default", "M01_bg_style_default.png")
diff --git a/common/data/msg_custom_winset.edc b/common/data/msg_custom_winset.edc
new file mode 100755 (executable)
index 0000000..a238765
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+collections
+{
+       base_scale: 2.6;
+
+#include "msg_button.edc"
+#include "msg_genlist.edc"
+#include "msg_bubble_entry.edc"
+}
diff --git a/common/data/msg_genlist.edc b/common/data/msg_genlist.edc
new file mode 100755 (executable)
index 0000000..7146ce2
--- /dev/null
@@ -0,0 +1,812 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg_genlist_macro.edc"
+
+
+/***************************************************************************/
+/************************ Genlist - Descriptions ***************************/
+/***************************************************************************/
+
+//////////////////////////////////////////////////////////////////////////////
+group {
+       GENLIST_NAME("2text.1icon.custom/default")
+       GENLIST_PROLOG_NORMAL
+       data.item: "texts" "elm.text.1 elm.text.2";
+       data.item: "contents" "elm.icon";
+       images {
+               image : "00_focus_01.#.png" COMP;
+               image : "00_list_group_bg.#.png" COMP;
+               image : "00_list_group_bg_ef.#.png" COMP;
+       }
+       parts {
+               GENLIST_PART_BASE
+               GENLIST_PART_BG_NORMAL_WITHOUT_COLOR_CUSTOM
+               GENLIST_PART_BOTTOM_LINE
+               GENLIST_PART_PADDING_LEFT_EMOTICON
+               GENLIST_PART_PADDING_RIGHT_EMOTICON
+               GENLIST_PART_PADDING_TOP
+               GENLIST_PART_PADDING_BOTTOM
+               GENLIST_PART_ICON_MEDIUM_L("elm.icon", "elm.padding.left")
+               GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon")
+               GENLIST_PART_LISTITEM_LR("elm.text.1", GENLIST_HEIGHT_1LINE, "elm.padding.icon.right", "elm.text.2",)
+               GENLIST_PART_SUBITEM_R("elm.text.2", GENLIST_HEIGHT_1LINE, "elm.padding.right")
+               GENLIST_PART_FLIP_NEW
+               GENLIST_PART_FOCUS_NORMAL
+       }
+       GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.icon"; )
+}
+
+group {
+      GENLIST_NAME("2text.1icon.4.tb.custom/default")
+      GENLIST_PROLOG_NORMAL
+      data.item: "texts" "elm.text.1 elm.text.2";
+      data.item: "contents" "elm.icon";
+      data.item: "bg_color" "B0211";
+
+      parts {
+         GENLIST_PART_BASE
+         GENLIST_PART_BG_NORMAL_CUSTOM
+         GENLIST_PART_PADDING_LEFT
+         GENLIST_PART_PADDING_RIGHT
+         GENLIST_PART_PADDING_TOP_2LINE
+         GENLIST_PART_PADDING_BOTTOM_2LINE
+
+         GENLIST_PART_ICON_LARGE_L("elm.icon", "elm.padding.left")
+         GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon")
+         GENLIST_PART_LISTITEM_TB_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+            "elm.padding.icon.right", "elm.padding.right",
+            "elm.padding.top", "elm.text.2",)
+         GENLIST_PART_SUBITEM_LRB_TB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+            "elm.padding.icon.right", "elm.padding.right", "elm.padding.bottom")
+         GENLIST_PART_FLIP_NEW
+         GENLIST_PART_FOCUS_NORMAL
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2";target: "elm.icon"; )
+   }
+
+group {
+      GENLIST_NAME("2text.1icon.2.tb.thumb.circle.custom/default")
+      inherit: "elm/genlist/item/2text.1icon.4.tb.custom/default";
+
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.icon"; )
+   }
+
+group {
+      GENLIST_NAME("2text.2.tb.custom/default")
+      GENLIST_PROLOG_NORMAL
+      data.item: "texts" "elm.text.1 elm.text.2";
+      data.item: "bg_color" "B0211";
+
+      parts {
+         GENLIST_PART_BASE
+         GENLIST_PART_BG_NORMAL_CUSTOM
+         GENLIST_PART_PADDING_LEFT
+         GENLIST_PART_PADDING_RIGHT
+         GENLIST_PART_PADDING_TOP_2LINE
+         GENLIST_PART_PADDING_BOTTOM_2LINE
+
+         GENLIST_PART_LISTITEM_TB_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+            "elm.padding.left", "elm.padding.right",
+            "elm.padding.top", "elm.text.2",
+         )
+         GENLIST_PART_SUBITEM_LRB_TB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+            "elm.padding.left", "elm.padding.right", "elm.padding.bottom"
+         )
+         GENLIST_PART_FLIP_NEW
+         GENLIST_PART_FOCUS_NORMAL
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; )
+   }
+
+ group { GENLIST_NAME("1text.tb.custom/default")
+      GENLIST_PROLOG_NORMAL
+      data.item: "texts" "elm.text";
+      parts {
+         GENLIST_PART_BASE
+         GENLIST_PART_BG_NORMAL_CUSTOM
+         GENLIST_PART_BOTTOM_LINE_CUSTOM
+         GENLIST_PART_PADDING_LEFT
+         GENLIST_PART_PADDING_RIGHT
+         GENLIST_PART_PADDING_TOP
+         GENLIST_PART_PADDING_BOTTOM
+
+         GENLIST_PART_LISTITEM_TB_("elm.text", GENLIST_HEIGHT_1LINE,
+            "elm.padding.left", "elm.padding.right",
+            "elm.padding.top", "elm.padding.bottom",
+         )
+         GENLIST_PART_FLIP_NEW
+         GENLIST_PART_FOCUS_NORMAL
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text"; )
+   }
+
+   group { GENLIST_NAME("1text.tb.thumb.circle.custom/default")
+      GENLIST_PROLOG_NORMAL
+      data.item: "texts" "elm.text";
+      data.item: "contents" "elm.icon";
+      data.item: "bg_color" "B0211";
+
+      parts {
+         GENLIST_PART_BASE
+         GENLIST_PART_BG_NORMAL_CUSTOM
+         GENLIST_PART_PADDING_LEFT
+         GENLIST_PART_PADDING_RIGHT
+         GENLIST_PART_PADDING_TOP
+         GENLIST_PART_PADDING_BOTTOM
+
+         GENLIST_PART_ICON_LARGE_L("elm.icon", "elm.padding.left")
+         GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon")
+         GENLIST_PART_LISTITEM_TB_("elm.text", GENLIST_HEIGHT_1LINE,
+            "elm.padding.icon.right", "elm.padding.right",
+            "elm.padding.top", "elm.padding.bottom",
+         )
+         GENLIST_PART_FLIP_NEW
+         GENLIST_PART_FOCUS_NORMAL
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text"; target: "elm.icon"; )
+   }
+
+/*****************************************************************************/
+/************************ Dialogue group - Descriptions *********************/
+/*************************** ************************************************/
+
+group { GENLIST_NAME("1text.1icon.translate.custom/default")
+       GENLIST_PROLOG_NORMAL_CUSTOM
+
+       data.item: "texts" "elm.text";
+       data.item: "contents" "elm.icon";
+
+       parts {
+               GENLIST_PART_BASE
+               GENLIST_PART_BG_NORMAL
+               GENLIST_PART_BOTTOM_LINE
+               GENLIST_PART_PADDING_LEFT
+               GENLIST_PART_PADDING_RIGHT
+               GENLIST_PART_PADDING_TOP
+               GENLIST_PART_PADDING_BOTTOM
+
+               GENLIST_PART_ICON_BTN_01_RTB("elm.icon", "elm.padding.right", "elm.padding.top", "elm.padding.bottom")
+               GENLIST_PART_PADDING_R("elm.padding.icon.left", "elm.icon")
+               GENLIST_PART_LISTITEM_TB_CUSTOM("elm.text", GENLIST_HEIGHT_MULTILINE,
+               "elm.padding.left", "elm.padding.icon.left",
+               "elm.padding.top", "elm.padding.bottom",)
+               GENLIST_PART_FLIP_CUSTOM
+               GENLIST_PART_FOCUS_NORMAL
+       }
+       GENLIST_PROGRAMS_NORMAL_CUSTOM( target: "elm.text"; target: "elm.icon"; )
+}
+
+group { GENLIST_NAME("dialogue/multiline/1text.1icon.custom/default")
+       inherit: "elm/genlist/item/1text.1icon.translate.custom/default";
+
+       data.item: "contents" "elm.icon elm.icon.edit";
+
+       parts {
+               GENLIST_PART_ICON_LARGE_R("elm.icon", "elm.padding.right")
+
+               part { name: "elm.text";
+                       description { state: "default" 0.0;
+                               text.style: "genlist_style_list_main_text_wrap";
+                       }
+                       description { state: "selected" 0.0;
+                               text.style: "genlist_style_list_main_text_press_wrap";
+                       }
+                       description { state: "disabled" 0.0;
+                               text.style: "genlist_style_list_main_text_dim_wrap";
+                       }
+               }
+       }
+
+       GENLIST_DIALOGUE_INHERIT_BODY( ; )
+       GENLIST_PROGRAMS_DIALOGUE( target: "elm.text"; target: "elm.icon"; )
+}
+
+group { GENLIST_NAME("dialogue/separator.custom/default")
+       alias: "elm/layout/dialogue/separator";
+
+       data.item: "stacking" "above";
+       data.item: "selectraise" "on";
+
+       parts {
+               GENLIST_PART_BASE
+               GENLIST_PART_RECT("separator",
+                       description { state: "default" 0.0;
+                               min: 0 24;
+                               max: -1 24;
+                               color: GENLIST_LIST_BG_COLOR;
+                       }
+               )
+       }
+}
+
+
+#define GRID_ICON_PRESSED_COLOR 255 255 255 178
+#define GRID_DEFAULT_BG_COLOR 0 0 0 0
+#define GRID_POPUP_TEXT_FONT_SIZE 24
+#define GRID_POPUP_PADDING_LEFT_TOP_SIZE      17 23
+#define GRID_POPUP_PADDING_RIGHT_BOTTOM_SIZE  17 23
+#define GRID_POPUP_ITEM_REAL_BG_SIZE          80 92
+#define GRID_POPUP_SWALLOW_ICON_SIZE          46 46
+
+
+group { name: "elm/gengrid/item/default/custom_popup";
+       data.item: "contents" "elm.swallow.icon";
+       data.item: "focus_highlight" "on";
+       images {
+               image : "core_focus.#.png" COMP;
+       }
+       parts {
+               part { name: "select_clip";
+                       type: RECT;
+                       description { state: "default" 0.0;
+                               visible: 1;
+                               color: 255 255 255 255;
+                       }
+                       description { state: "selected" 0.0;
+                               visible: 1;
+                               color: GRID_ICON_PRESSED_COLOR;
+                       }
+               }
+               part { name: "bg";
+                       type: RECT;
+                       description { state: "default" 0.0;
+                               color: GRID_DEFAULT_BG_COLOR;
+                       }
+               }
+               part { name: "selected_bg";
+                       type: RECT;
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               rel1.to: "item_real_bg";
+                               rel2.to: "item_real_bg";
+                       }
+                       description { state: "enabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part { name: "item_real_bg";
+                       type: SPACER;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.0;
+                               min: GRID_POPUP_ITEM_REAL_BG_SIZE;
+                               max: GRID_POPUP_ITEM_REAL_BG_SIZE;
+                               rel1.relative: 0.0 0.0;
+                               rel2.relative: 1.0 1.0;
+                       }
+               }
+               part { name: "left_top_padding";
+                       type: SPACER;
+                       scale : 1;
+                       description { state: "default" 0.0;
+                               min: GRID_POPUP_PADDING_LEFT_TOP_SIZE;
+                               align: 0.0 0.0;
+                               rel1.to: "item_real_bg";
+                               rel2 {
+                                       relative: 0.0 0.0;
+                                       to: "item_real_bg";
+                               }
+                       }
+               }
+               part { name: "elm.swallow.icon";
+                       type: SWALLOW;
+                       description { state: "default" 0.0;
+                               min: GRID_POPUP_SWALLOW_ICON_SIZE;
+                               max: GRID_POPUP_SWALLOW_ICON_SIZE;
+                               align: 0.5 0.5;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to: "item_real_bg";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "item_real_bg";
+                               }
+                       }
+                       clip_to: "select_clip";
+               }
+               part { name: "right_bottom_padding";
+                       type: SPACER;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GRID_POPUP_PADDING_RIGHT_BOTTOM_SIZE;
+                               align: 1.0 1.0;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to: "item_real_bg";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "item_real_bg";
+                               }
+                       }
+               }
+               part { name: "reorder_bg";
+                       type: RECT;
+                       repeat_events: 1;
+                       description { state: "default" 0.0;
+                               rel1.to: "selected_bg";
+                               rel2.to: "selected_bg";
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "outline_bg";
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               rel1.to: "item_real_bg";
+                               rel2.to: "item_real_bg";
+                               image.normal: "core_focus.#.png";
+                               color_class: "W161";
+                       }
+                       description { state: "enabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+               part { name: "focus_bg";
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               rel1.to: "item_real_bg";
+                               rel2.to: "item_real_bg";
+                               image.normal: "core_focus.#.png";
+                               color_class: "W161";
+                       }
+                       description { state: "enabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       }
+       programs
+       {
+               program { name: "touch_snd";
+                       signal: "mouse,clicked,1";
+                       source: "reorder_bg";
+                       action: RUN_PLUGIN "touch_sound";
+               }
+               program { name: "selected";
+                       signal: "elm,state,selected";
+                       source: "elm";
+                       script {
+                               set_state(PART:"selected_bg", "default",  0.0);
+                               set_state(PART:"outline_bg", "default", 0.0);
+                               set_state(PART:"select_clip", "selected",  0.0);
+                       }
+               }
+               program { name: "unselected";
+                       signal: "elm,state,unselected";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "select_clip";
+               }
+               program { name: "select_enabled";
+                       signal: "elm,select,enabled";
+                       source: "";
+                       action: STATE_SET "enabled" 0.0;
+                       target: "selected_bg";
+                       target: "outline_bg";
+               }
+               program { name: "select_disabled";
+                       signal: "elm,select,disabled";
+                       source: "";
+                       action: STATE_SET "default" 0.0;
+                       target: "selected_bg";
+                       target: "outline_bg";
+               }
+               program { name: "action_focus";
+                       signal: "elm,action,focus_highlight,show";
+                       source: "elm";
+                       action: STATE_SET "enabled" 0.0;
+                       target: "focus_bg";
+               }
+               program { name: "action_unfocus";
+                       signal: "elm,action,focus_highlight,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "focus_bg";
+               }
+       }
+}
+
+/************************* multiline style for quick responses ************************/
+
+#define LIST_WRAP_PADDING_LEFT_SIZE         15
+#define LIST_WRAP_PADDING_RIGHT_SIZE        15
+#define LIST_WRAP_PADDING_TOP_SIZE          14
+#define LIST_WRAP_PADDING_BOTTOM_SIZE       14
+#define LIST_MULTILINE_ICON_SIZE1           40 40
+#define LIST_PADDING_CENTER_LEFT_SIZE       15
+#define LIST_PADDING_CENTER_RIGHT_SIZE      15
+#define LIST_TEXT_MAIN_HEIGHT               38
+
+//size
+#define LIST_TEXT_MAIN_SIZE                 30
+
+//Expand style
+#define GENLIST_TREESIZE_EXPAND            22
+
+#define STYLE_TAGS \
+   tag:  "br" "\n";\
+   tag:  "ps" "ps";\
+   tag:  "tab" "\t";\
+   tag:  "b" "+ font_weight=Bold";
+
+// multiline text style
+styles{
+   style { name: "list_text_multiline_main_custom";
+      base: "font=Tizen:style=Regular font_size="LIST_TEXT_MAIN_SIZE" color=#000000 wrap=mixed";
+      STYLE_TAGS
+      STYLE_TAG_MATCH
+   }
+   style { name: "list_text_multiline_main_dim_custom";
+      base: "font=Tizen:style=Regular font_size="LIST_TEXT_MAIN_SIZE" color=#000000 wrap=mixed";
+      STYLE_TAGS
+      STYLE_TAG_MATCH
+   }
+   style { name: "list_text_multiline_main_press_custom";
+      base: "font=Tizen:style=Regular font_size="LIST_TEXT_MAIN_SIZE" color=#101010 wrap=mixed";
+      STYLE_TAGS
+      STYLE_TAG_MATCH
+   }
+}
+
+#define LIST_PART_BG \
+   PART(RECT, "bg", \
+      description { state: "default" 0.0; \
+         color_class: "B0211"; \
+      } \
+      description { state: "pressed" 0.0; \
+         inherit: "default" 0.0; \
+         color_class: "B0211P"; \
+      } \
+      description { state: "disabled" 0.0; \
+         color_class: "B0211"; \
+      } \
+      description { state: "reorder" 0.0; \
+         color: 0 0 0 0; \
+      } \
+   )
+
+#define PART(TYPE, NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: TYPE; \
+      DESCRIPION \
+   }
+
+#define DSC_FROM_L( STATE, PARAM ) \
+   description { state: STATE; \
+      fixed: 1 0; \
+      align: 0.0 0.5; \
+      rel2.relative: 0.0 1.0; \
+      PARAM \
+   }
+
+#define DSC_L( STATE, LEFT, PARAM ) \
+   description { state: STATE; \
+      align: 0 0.5; \
+      fixed: 1 0; \
+      rel1 { \
+         relative: 1 0; \
+         to_x: LEFT; \
+      } \
+      rel2 { \
+         relative: 1 1; \
+         to_x: LEFT; \
+      } \
+      PARAM \
+   }
+
+#define DSC_FROM_R( STATE, PARAM ) \
+   description { state: STATE; \
+      fixed: 1 0; \
+      align: 1.0 0.5; \
+      rel1.relative: 1 0; \
+      PARAM \
+   }
+
+#define DSC_FROM_T( STATE, PARAM ) \
+   description { state: STATE; \
+      fixed: 0 1; \
+      align: 0.5 0.0; \
+      rel2.relative: 1.0 0.0; \
+      PARAM \
+   }
+
+#define DSC_FROM_B( STATE, PARAM ) \
+   description { state: STATE; \
+      fixed: 0 1; \
+      rel1.relative: 0.0 1.0; \
+      align: 0.5 1.0; \
+      PARAM \
+   }
+
+#define DSC_R( STATE, RIGHT, PARAM ) \
+   description { state: STATE; \
+      align: 1 0.5; \
+      fixed: 1 0; \
+      rel1 { \
+         relative: 0 0; \
+         to_x: RIGHT; \
+      } \
+      rel2 { \
+         relative: 0 1; \
+         to_x: RIGHT; \
+      } \
+      PARAM \
+   }
+
+#define DSC_LRTB( STATE, LEFT, RIGHT, TOP, BOTTOM, PARAM ) \
+   description { state: STATE; \
+      rel1 { \
+         relative: 1 1; \
+         to_x: LEFT; \
+         to_y: TOP; \
+      } \
+      rel2 { \
+         relative: 0 0; \
+         to_x: RIGHT; \
+         to_y: BOTTOM; \
+      } \
+      PARAM \
+   }
+
+#define DSC_LRB( STATE, LEFT, RIGHT, BOTTOM, PARAM ) \
+   description { state: STATE; \
+      align: 0.5 1; \
+      rel1 { \
+         relative: 1 0; \
+         to_x: LEFT; \
+         to_y: BOTTOM; \
+      } \
+      rel2 { \
+         relative: 0 0; \
+         to_x: RIGHT; \
+         to_y: BOTTOM; \
+      } \
+      PARAM \
+   }
+
+#define DSC_RTB( STATE, RIGHT, TOP, BOTTOM, PARAM ) \
+   description { state: STATE; \
+      align: 1 0.5; \
+      rel1 { \
+         relative: 0 1; \
+         to_x: RIGHT; \
+         to_y: TOP; \
+      } \
+      rel2 { \
+         relative: 0 0; \
+         to_x: RIGHT; \
+         to_y: BOTTOM; \
+      } \
+      PARAM \
+   }
+
+#define LIST_PROGRAM_DEFAULT( TARGET ) \
+   program { name: "default"; \
+      signal: "elm,state,default"; \
+      source: "elm"; \
+      action: STATE_SET "default" 0.0; \
+      TARGET \
+   } \
+
+#define LIST_PROGRAM_DISABLED( TARGET ) \
+   program { name: "enabled"; \
+      signal: "elm,state,enabled"; \
+      source: "elm"; \
+      action: STATE_SET "default" 0.0; \
+      TARGET \
+   } \
+   program { name: "disabled"; \
+      signal: "elm,state,disabled"; \
+      source: "elm"; \
+      action: STATE_SET "disabled" 0.0; \
+      TARGET \
+   }
+
+#define LIST_PROGRAM_SELECT( TARGET ) \
+   program { name: "pressed"; \
+      signal: "elm,state,selected"; \
+      source: "elm"; \
+      action: STATE_SET "pressed" 0.0; \
+      TARGET \
+   } \
+   program { name: "unselected"; \
+      signal: "elm,state,unselected"; \
+      source: "elm"; \
+      action: STATE_SET "default" 0.0; \
+      TARGET \
+   }
+
+  #define LIST_PROGRAM_REORDER( TARGET ) \
+   program { name: "reorder_enabled"; \
+      signal: "elm,state,reorder,enabled"; \
+      source: "elm"; \
+      action: STATE_SET "reorder" 0.0; \
+      TARGET \
+   } \
+   program { name: "reorder_disabled"; \
+      signal: "elm,state,reorder,disabled"; \
+      source: "elm"; \
+      action: STATE_SET "default" 0.0; \
+      TARGET \
+   }
+
+#define LIST_PROGRAM_SOUND \
+   program { name: "play_sound"; \
+      signal: "elm,state,clicked"; \
+      source: "elm"; \
+      script { \
+         run_program(PROGRAM:"touch_sound"); \
+      } \
+   } \
+   program { name: "touch_sound"; \
+      action: RUN_PLUGIN "touch_sound"; \
+   }
+
+#define LIST_PROGRAMS( TARGET ) \
+   programs { \
+      LIST_PROGRAM_DEFAULT( TARGET \
+         target: "bg"; \
+      ) \
+      LIST_PROGRAM_DISABLED( TARGET \
+         target: "bg"; \
+      ) \
+      LIST_PROGRAM_SELECT( TARGET \
+         target: "bg"; \
+      ) \
+      LIST_PROGRAM_REORDER( TARGET \
+         target: "bg"; \
+      ) \
+      LIST_PROGRAM_SOUND \
+   }
+
+// multiline text + icon
+group { name: "elm/genlist/item/multiline_main_custom_idential_height_1_2line_1icon/default";
+
+   data.item: "treesize" GENLIST_TREESIZE_EXPAND;
+   data.item: "texts" "elm.text.main";
+   data.item: "contents" "elm.icon";
+   data.item: "bg_color" "B0211";
+
+   parts {
+      LIST_PART_BG
+      PART(SWALLOW, "elm.swallow.pad",
+         DSC_FROM_L("default" 0.0, );
+         mouse_events: 0;
+      )
+      PART(SPACER, "elm.padding.left",
+         DSC_L("default" 0.0,
+            "elm.swallow.pad",
+            min: LIST_WRAP_PADDING_LEFT_SIZE 96;
+            max: LIST_WRAP_PADDING_LEFT_SIZE -1;
+         )
+      )
+      PART(SPACER, "elm.padding.right",
+         DSC_FROM_R("default" 0.0,
+            min: LIST_WRAP_PADDING_RIGHT_SIZE 96;
+            max: LIST_WRAP_PADDING_RIGHT_SIZE -1;
+         )
+      )
+      PART(SPACER, "elm.padding.top",
+         DSC_FROM_T("default" 0.0,
+            min: 0 10;
+            max: -1 29;
+         )
+      )
+      PART(SPACER, "elm.padding.bottom",
+         DSC_FROM_B("default" 0.0,
+            min: 0 10;
+            max: -1 29;
+         )
+      )
+      PART(SPACER, "elm.padding.center.right",
+         DSC_R("default" 0.0,
+            "elm.icon",
+            min: LIST_PADDING_CENTER_RIGHT_SIZE 0;
+            max: LIST_PADDING_CENTER_RIGHT_SIZE -1;
+         )
+      )
+      PART(TEXTBLOCK, "elm.text.main",
+         DSC_LRTB("default" 0.0,
+            "elm.padding.left", "elm.padding.center.right", "elm.padding.top", "elm.padding.bottom",
+            min: 0 LIST_TEXT_MAIN_HEIGHT;
+            text.min: 0 1;
+            text.style: "list_text_multiline_main_custom";
+         )
+         description { state: "pressed" 0.0;
+            inherit: "default" 0.0;
+            text.style: "list_text_multiline_main_press_custom";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text.style: "list_text_multiline_main_dim_custom";
+         }
+      )
+      PART(SWALLOW, "elm.icon",
+         DSC_RTB("default" 0.0,
+            "elm.padding.right", "elm.padding.top", "elm.padding.bottom",
+            fixed: 1 1;
+            min: LIST_MULTILINE_ICON_SIZE1;
+            max: LIST_MULTILINE_ICON_SIZE1;
+         )
+      )
+   }
+   LIST_PROGRAMS( target: "elm.text.main"; )
+}
+
+// custom multiline
+group { name: "elm/genlist/item/multiline_main_custom_idential_height_1_2line/default";
+
+   data.item: "treesize" GENLIST_TREESIZE_EXPAND;
+   data.item: "texts" "elm.text.multiline";
+   data.item: "bg_color" "B0211";
+   data.item: "texts" "elm.text.multiline";
+
+   parts {
+       PART(SWALLOW, "elm.swallow.pad",
+         DSC_FROM_L("default" 0.0, );
+         mouse_events: 0;
+      )
+      LIST_PART_BG
+      PART(SPACER, "elm.padding.left",
+         DSC_L("default" 0.0,
+            "elm.swallow.pad",
+            min: LIST_WRAP_PADDING_LEFT_SIZE 96;
+            max: LIST_WRAP_PADDING_LEFT_SIZE -1;
+         )
+      )
+      PART(SPACER, "elm.padding.right",
+         DSC_FROM_R("default" 0.0,
+            min: LIST_WRAP_PADDING_RIGHT_SIZE 96;
+            max: LIST_WRAP_PADDING_RIGHT_SIZE -1;
+         )
+      )
+      PART(SPACER, "elm.padding.top",
+         DSC_FROM_T("default" 0.0,
+            min: 0 10;
+            max: -1 29;
+         )
+      )
+      PART(SPACER, "elm.padding.bottom",
+         DSC_FROM_B("default" 0.0,
+            min: 0 10;
+            max: -1 29;
+         )
+      )
+      PART(TEXTBLOCK, "elm.text.multiline",
+         DSC_LRTB("default" 0.0,
+            "elm.padding.left", "elm.padding.right", "elm.padding.top", "elm.padding.bottom",
+            min: 0 LIST_TEXT_MAIN_HEIGHT;
+            text.min: 0 1;
+            text.style: "list_text_multiline_main_custom";
+         )
+         description { state: "pressed" 0.0;
+            inherit: "default" 0.0;
+            text.style: "list_text_multiline_main_press_custom";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            text.style: "list_text_multiline_main_dim_custom";
+         }
+      )
+   }
+   LIST_PROGRAMS( target: "elm.text.multiline"; )
+}
diff --git a/common/data/msg_genlist_macro.edc b/common/data/msg_genlist_macro.edc
new file mode 100755 (executable)
index 0000000..04524c9
--- /dev/null
@@ -0,0 +1,3188 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#define GENLIST_HEIGHT_1LINE              68
+#define GENLIST_HEIGHT_2LINE_MAIN                      38
+#define GENLIST_HEIGHT_2LINE_SUB                       30
+
+#define GENLIST_HEIGHT_2LINE_MAIN         38
+#define GENLIST_HEIGHT_2LINE_SUB          30
+#define GENLIST_PART_LIST_LINE_HEIGHT     1
+
+#define GENLIST_TREESIZE_DEFAULT          18
+#define GENLIST_PADDING_SIZE_DEFAULT            11
+#define GENLIST_PADDING_SIZE_LEFT               18
+#define GENLIST_PADDING_SIZE_RIGHT              18
+#define GENLIST_PADDING_SIZE_TOP                10
+#define GENLIST_PADDING_SIZE_BOTTOM             10
+#define GENLIST_PADDING_SIZE_TOP_2LINE          10
+#define GENLIST_PADDING_SIZE_BOTTOM_2LINE       10
+
+// Genlist Text
+#define GENLIST_LIST_MAIN_TEXT_SIZE                         24
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR                 250 250 250 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE           "#FAFAFAFF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR             250 250 250 153
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE       "#FAFAFA99"
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR                   110 111 118 255
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR_STYLE           "#FAFAFAFF"
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR               110 111 118 127
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_STYLE       "#FAFAFA99"
+#define GENLIST_LIST_TEXT_FOCUS_COLOR                       250 250 250 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE                 "#FAFAFAFF"
+#define GENLIST_LIST_COUNT_COLOR 140 141 148 255
+
+#define GENLIST_LIST_SUB_TEXT_SIZE                          20
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR                 110 111 118 255
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE           "#6E6F76FF"
+#define GENLIST_LIST_SUB_TEXT_HIGHLIGHT_COLOR                 133 166 234 250
+#define GENLIST_LIST_SUB_TEXT_HIGHLIGHT_COLOR_STYLE           "#6E6F76FF"
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR             110 111 118 153
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE       "#6E6F7699"
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR                104 144 255 255
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE          "#6890FFFF"
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR            104 144 255 153
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR_STYLE      "#6890FF99"
+
+#define GENLIST_LIST_SUB_TEXT_02_SIZE                       18
+#define GENLIST_LIST_SUB_TEXT_02_COLOR                      219 57 0 255
+
+#define GENLIST_LIST_BUBBLE_TEXT_SIZE                       22
+#define GENLIST_LIST_BUBBLE_TEXT_COLOR                      249 249 249 255
+#define GENLIST_LIST_BUBBLE_TEXT_FOCUS_COLOR                43 58 175 255
+#define GENLIST_LIST_BUBBLE_COLOR                           0 78 104 255
+#define GENLIST_LIST_BUBBLE_PRESS_COLOR                     250 250 250 255
+
+#define GENLIST_LIST_POPUP_BG_COLOR                                    5 90 118 255
+#define GENLIST_LIST_LINE1_POPUP_COLOR              68 131 152 255
+#define GENLIST_LIST_LINE2_POPUP_COLOR              68 131 152 255
+
+#define GENLIST_PART_MATCH_TAG_COLOR                    "+ color=#ffffff color_class=T1067"
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE                 "#FAFAFAFF"
+#define FOCUS_BORDER           8 8 8 8
+
+// List bg color
+#define GENLIST_LIST_BG_COLOR                       8 8 8 255
+#define GENLIST_LIST_PRESS_COLOR                    0 78 104 255
+#define GENLIST_LIST_DIM_COLOR                      8 8 8 255
+#define GENLIST_LIST_LINE1_COLOR                    8 8 8 255
+#define GENLIST_LIST_LINE2_COLOR                    64 64 64 255
+
+#define GENLIST_ICON_SMALL_SIZE           30
+#define GENLIST_ICON_LARGE_SIZE           74
+#define GENLIST_ICON_MEDIUM_SIZE          54
+#define GENLIST_ICON_THUMBNAIL_SIZE       74
+
+#define STYLE_TAG \
+      tag:  "br" "\n";\
+      tag:  "ps" "ps";\
+      tag:  "tab" "\t";\
+      tag:  "b" "+ font_weight=Bold";
+
+#define STYLE_TAG_MATCH \
+      tag:  "match" GENLIST_PART_MATCH_TAG_COLOR;
+
+styles {
+   // ********************** list main text
+   style { name: "genlist_style_list_main_text";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#ffffff color_class=T023 text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_dim";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#ffffff color_class=T023D text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_press";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#ffffff color_class=T023P text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+  // **********************  list main text (multiline)
+  style { name: "genlist_style_list_main_text_wrap";
+        base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#ffffff color_class=T023 text_class=list_item wrap=mixed";
+        STYLE_TAG
+        STYLE_TAG_MATCH
+  }
+  style { name: "genlist_style_list_main_text_dim_wrap";
+        base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#ffffff color_class=T023D text_class=list_item wrap=mixed";
+        STYLE_TAG
+        STYLE_TAG_MATCH
+  }
+  style { name: "genlist_style_list_main_text_press_wrap";
+        base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#ffffff color_class=T023P text_class=list_item wrap=mixed";
+        STYLE_TAG
+        STYLE_TAG_MATCH
+  }
+   // ********************** list sub text
+   style { name: "genlist_style_list_sub_text_default";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#ffffff color_class=T024 text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_default_dim";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#ffffff color_class=T024D text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_default_press";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#ffffff color_class=T024P text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_time";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#ffffff color_class=T0241 text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   // ********************** list sub text (multiline)
+   style { name: "genlist_style_list_sub_text_default_wrap";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#ffffff color_class=T024 text_class=list_item wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_default_dim_wrap";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#ffffff color_class=T024D text_class=list_item wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_default_press_wrap";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#ffffff color_class=T024P text_class=list_item wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+}
+
+// *****************  EDJE description have 24 patterns **********************//
+// ------------------
+// |  PART == HERE  |
+// ------------------
+ #define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 0 0; \
+            to: PART; \
+         }\
+         rel2 {\
+            relative: 1 1;\
+            to: PART; \
+         }\
+         PARAM\
+      }
+
+//      |   top  |
+// ---------------------
+// left |  HERE  | right
+// ---------------------
+//      | bottom |
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// ---------------------
+// left |--> HERE
+// ---------------------
+#define GENLIST_DESCRIPTION_L( left, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 { \
+            relative: 1 1;\
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+// ---------------------
+//   HERE  <--| right
+// ---------------------
+#define GENLIST_DESCRIPTION_R( right, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 0 0; \
+            to_x: right; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+// --------------------------
+// left |--> HERE  <--| right
+// --------------------------
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+//   |  top     |
+// -----------------
+//  |  HERE  <--| right
+// -----------------
+//  | bottom   |
+#define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5;\
+         rel1 { \
+            relative: 0 1; \
+            to_x: right; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// left |  HERE  | right
+// ---------------------
+//      | bottom |
+#define GENLIST_DESCRIPTION_LRB( left, right, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 1;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+//      |   top  |
+// ---------------------
+// left |  HERE  | right
+#define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+//      |       top  |
+// ---------------------
+// left | -->  HERE  |
+#define GENLIST_DESCRIPTION_LT( left, top, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 1;\
+            to_x: left;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+// left |  --> HERE  |
+// ---------------------
+//      |     bottom |
+#define GENLIST_DESCRIPTION_LB( left, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0 1;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_x: left;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+//      |     top  |
+// ---------------------
+// left |--> HERE  |
+// ---------------------
+//      |   bottom |
+#define GENLIST_DESCRIPTION_LTB( left, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_x: left;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+//      |   top  |
+// ---------------------
+//     |  HERE <--| right
+#define GENLIST_DESCRIPTION_RT( right, top, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0;\
+         rel1 { \
+            relative: 0 1; \
+            to_x: right; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+//  | HERE <-- | right
+// ---------------------
+//  |  bottom  |
+#define GENLIST_DESCRIPTION_RB( right, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 1 1;\
+         rel1 { \
+            relative: 0 0; \
+            to_x: right; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// |   top  |
+// ----------
+// |  HERE  |
+// ----------
+// | bottom |
+#define GENLIST_DESCRIPTION_TB( top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0.5;\
+         rel1 { \
+            relative: 0 1; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+#define GENLIST_PROLOG \
+      data.item: "selectraise" "on"; \
+      data.item: "treesize" 0; \
+      data.item: "focus_highlight" "on";
+
+#define GENLIST_PROLOG_NORMAL \
+      GENLIST_PROLOG \
+      data.item: "treesize" GENLIST_TREESIZE_DEFAULT; \
+      data.item: "flips" "elm.flip.content elm.flip.icon"; \
+      images { \
+       image : "00_list_group_bg.#.png" COMP; \
+       image : "00_list_group_bg_ef.#.png" COMP; \
+      }
+
+#define GENLIST_NAME(NAME) \
+      name: "elm/genlist/item/"NAME;
+
+#define GENLIST_INHERIT_THUMB_CIRCLE(SIZE, PARENT) \
+     images { \
+         image: "M01_list_circle_thumbnail_bg.png" COMP; \
+      } \
+      parts { \
+         GENLIST_PART_RECT("elm.thumb.clip", \
+            description { state: "default";  \
+            } \
+            description { state: "flipped";  \
+               color: 0 0 0 0; \
+            } \
+         ) \
+         GENLIST_PART_IMAGE("elm.thumb", \
+            insert_before: "focus_part"; \
+            clip_to: "elm.thumb.clip"; \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_ENVELOP(PARENT, \
+               image.normal: "M01_list_circle_thumbnail_bg.png"; \
+               min: SIZE SIZE; \
+               max: SIZE SIZE; \
+               fixed:1 1; \
+               color_class: "B011"; \
+            ) \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+               color_class: "B041P"; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "M01_list_circle_thumbnail_bg.png"; \
+               color_class: "B0217"; \
+            } \
+            description { state: "reorder_selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "M01_list_circle_thumbnail_bg.png"; \
+               color_class: "B041P"; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default" 0.0; \
+            } \
+            description { state: "decorate_reorder" 0.0; \
+               inherit: "reorder" 0.0; \
+            } \
+         ) \
+      }
+
+// ****************************** BG Image **********************************//
+#define GENLIST_PART_BG_NORMAL \
+      GENLIST_PART_RECT("bg_clip", \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            visible: 1; \
+            color: 255 255 255 255; \
+         } \
+         description { state: "decorate" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "decorate_reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_RECT("bg_reorder_clip", \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 1; \
+            color: 255 255 255 255; \
+         } \
+         description { state: "decorate_reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "decorate" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "reorder_flip" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_RECT("bg",  \
+         clip_to: "bg_clip"; \
+         description { state: "default" 0.0; \
+            color_class: "B011"; \
+         } \
+         description { state: "pressed" 0.0; \
+            inherit: "default" 0.0; \
+            color_class: "B041P"; \
+         } \
+         description { state: "disabled" 0.0; \
+            inherit: "default" 0.0; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_left", \
+         description { state: "default" 0.0; \
+            min: 16 0; \
+            max: 16 -1; \
+            fixed: 1 0; \
+            align: 0 0.5; \
+            rel2.relative: 0 1; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_right", \
+         description { state: "default" 0.0; \
+            min: 16 0; \
+            max: 16 -1; \
+            fixed: 1 0; \
+            align: 1.0 0.5; \
+            rel1.relative: 1 0; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_top", \
+         description { state: "default" 0.0; \
+            min: 0 2; \
+            max: -1 2; \
+            fixed: 0 1; \
+            align: 0.5 0; \
+            rel2.relative: 1 0; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_bottom", \
+         description { state: "default" 0.0; \
+            min: 0 2; \
+            max: -1 2; \
+            fixed: 0 1; \
+            align: 0.5 1.0; \
+            rel1.relative: 0 1; \
+         } \
+      ) \
+      GENLIST_PART_IMAGE("bg_reorder", \
+         clip_to: "bg_reorder_clip"; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 1; \
+               to_x: "bg_reorder_left"; \
+               to_y: "bg_reorder_top"; \
+            } \
+            rel2 { \
+               relative: 0 0; \
+               to_x: "bg_reorder_right"; \
+               to_y: "bg_reorder_bottom"; \
+            } \
+            image { \
+               normal: "00_list_group_bg.#.png"; \
+            } \
+            color_class: "B0217"; \
+         } \
+         description { state: "pressed" 0.0; \
+            inherit: "default"; \
+            color_class: "B041P"; \
+         } \
+         description { state: "flipped" 0.0; \
+            inherit: "default"; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_IMAGE("bg_reorder_ef", \
+         clip_to: "bg_reorder_clip"; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 1; \
+               to_x: "bg_reorder_left"; \
+               to_y: "bg_reorder_top"; \
+            } \
+            rel2 { \
+               relative: 0 0; \
+               to_x: "bg_reorder_right"; \
+               to_y: "bg_reorder_bottom"; \
+            } \
+            image { \
+               normal: "00_list_group_bg_ef.#.png"; \
+            } \
+            color_class: "B0217"; \
+         } \
+         description { state: "pressed" 0.0; \
+            inherit: "default"; \
+         } \
+         description { state: "flipped" 0.0; \
+            inherit: "default"; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_RECT("sound",  \
+         repeat_events: 1;  /*for play_sound to check pressed state*/ \
+         description { state: "default" 0.0; \
+            color: 0 0 0 0; \
+         } \
+      ) \
+
+// ****************************** BASE  ********************************//
+#define GENLIST_PART_BASE_SIZE(HEIGHT) \
+         part { name: "base"; \
+            type: RECT; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+               min: 0 HEIGHT; \
+            } \
+         } \
+         part { name: "state"; \
+            type: RECT; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default"; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default"; \
+            } \
+            description { state: "decorate_reorder" 0.0; \
+               inherit: "default"; \
+            } \
+         }
+
+#define GENLIST_PART_BASE \
+         GENLIST_PART_BASE_SIZE(0)
+
+//#define GENLIST_PART_BASE(HEIGHT) \
+//         GENLIST_PART_BASE_SIZE(HEIGHT)
+
+#define GENLIST_PART_FOCUS \
+   GENLIST_PART_IMAGE("focus_part", \
+      mouse_events: 0; \
+      description { state: "default" 0.0; \
+         visible: 0; \
+         image { \
+            normal: "00_focus_01.#.png"; \
+         } \
+         color_class: "W161"; \
+      } \
+      description { state: "focused" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+      } \
+   ) \
+
+#define GENLIST_PART_FOCUS_REORDER \
+   GENLIST_PART_IMAGE("focus_part_reorder", \
+      mouse_events: 0; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 1; \
+               to_x: "bg_reorder_left"; \
+               to_y: "bg_reorder_top"; \
+            } \
+            rel2 { \
+               relative: 0 0; \
+               to_x: "bg_reorder_right"; \
+               to_y: "bg_reorder_bottom"; \
+            } \
+         visible: 0; \
+         image { \
+            normal: "00_focus_01.#.png"; \
+         } \
+         color_class: "W161"; \
+      } \
+      description { state: "focused" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+      } \
+   )
+
+#define GENLIST_PART_FOCUS_NORMAL \
+   GENLIST_PART_FOCUS \
+   GENLIST_PART_FOCUS_REORDER
+
+// ****************************** LINE ********************************//
+#define GENLIST_PART_BOTTOM_LINE \
+         GENLIST_PART_RECT("bottom_line_clip", \
+            description { state: "default" 0.0; \
+               color: 255 255 255 255; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "decorate_reorder" 0.0; \
+               inherit: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+         ) \
+         GENLIST_PART_RECT("bottom_line", \
+            mouse_events: 0; \
+            clip_to: "bottom_line_clip"; \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               color_class: "B0223"; \
+               rel1.to_x: "base"; \
+               rel1.relative: 0 0; \
+               rel2.to_x: "base"; \
+               rel2.relative: 1 1; \
+               rel1.offset: -1 -1; \
+            } \
+            description { state: "flipped" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "hidden" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+         )
+
+//********************************* PADDING **********************************//
+#define GENLIST_PART_EXPANDED_PAD \
+         part { name: "elm.swallow.pad"; \
+            type: SWALLOW; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               min: 0 0; \
+               fixed: 1 0; \
+               align: 0.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 0.0 1.0; \
+            } \
+         } \
+
+#define GENLIST_DESCRIPTION_DECORATE_PADDING \
+   description { state: "decorate" 0.0; \
+      inherit: "default" 0.0; \
+      min: 0 0; \
+      max: 0 0; \
+   }
+
+#define GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+   description { state: "decorate_reorder" 0.0; \
+      inherit: "default" 0.0; \
+      min: 0 0; \
+      max: 0 0; \
+   }
+
+#define GENLIST_DESCRIPTION_REORDER_PADDING \
+   description { state: "reorder" 0.0; \
+      inherit: "default" 0.0; \
+      min: 32 0; \
+      max: 32 -1; \
+   }
+
+#define GENLIST_PART_PADDING_LEFT \
+       GENLIST_PART_EXPANDED_PAD \
+       GENLIST_PART_SPACER("elm.padding.left", \
+           GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+              min: GENLIST_PADDING_SIZE_LEFT 0; \
+              max: GENLIST_PADDING_SIZE_LEFT -1; \
+              fixed: 1 0; \
+           ) \
+           GENLIST_DESCRIPTION_DECORATE_PADDING \
+           GENLIST_DESCRIPTION_REORDER_PADDING \
+           GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+       )
+
+#define GENLIST_PART_PADDING_RIGHT \
+       GENLIST_PART_SPACER("elm.padding.right", \
+               description { state: "default" 0.0; \
+                  min: GENLIST_PADDING_SIZE_RIGHT 0; \
+                  max: GENLIST_PADDING_SIZE_RIGHT -1; \
+                  fixed: 1 0; \
+                  align: 1.0 0.5; \
+                  rel1.to: "base"; \
+                  rel2.to: "base"; \
+                  rel1.relative: 1 0; \
+               } \
+               GENLIST_DESCRIPTION_DECORATE_PADDING \
+               GENLIST_DESCRIPTION_REORDER_PADDING \
+               GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+       )
+
+#define GENLIST_PART_PADDING_TOP \
+         GENLIST_PART_SPACER("elm.padding.top", \
+            description { \
+               state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_TOP; \
+               max: -1 GENLIST_PADDING_SIZE_TOP; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.5 0.0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 (GENLIST_PADDING_SIZE_TOP+2); \
+               max: -1 (GENLIST_PADDING_SIZE_TOP+2); \
+            } \
+         )
+
+
+#define GENLIST_PART_PADDING_TOP_2LINE \
+       GENLIST_PART_SPACER("elm.padding.top", \
+               description { \
+                  state: "default" 0.0; \
+                  min: 0 GENLIST_PADDING_SIZE_TOP_2LINE; \
+                  max: -1 GENLIST_PADDING_SIZE_TOP_2LINE; \
+                  fixed: 0 1; \
+                  rel1.to: "base"; \
+                  rel2.to: "base"; \
+                  rel2.relative: 1.0 0.0; \
+                  align: 0.5 0.0; \
+               } \
+               description { state: "reorder" 0.0; \
+                  inherit: "default" 0.0; \
+                  min: 0 (GENLIST_PADDING_SIZE_TOP_2LINE+2); \
+                  max: -1 (GENLIST_PADDING_SIZE_TOP_2LINE+2); \
+               } \
+       )
+
+#define GENLIST_PART_PADDING_BOTTOM \
+         GENLIST_PART_SPACER("elm.padding.bottom", \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_BOTTOM; \
+               max: -1 GENLIST_PADDING_SIZE_BOTTOM; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 0.0 1.0; \
+               align: 0.5 1.0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+               max: -1 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_BOTTOM_2LINE \
+       GENLIST_PART_SPACER("elm.padding.bottom", \
+               description { state: "default" 0.0; \
+                  min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+                  max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+                  fixed: 0 1; \
+                  rel1.to: "base"; \
+                  rel2.to: "base"; \
+                  rel1.relative: 0.0 1.0; \
+                  align: 0.5 1.0; \
+               } \
+               description { state: "reorder" 0.0; \
+                  inherit: "default" 0.0; \
+                  min: 0 (GENLIST_PADDING_SIZE_BOTTOM_2LINE+2); \
+                  max: -1 (GENLIST_PADDING_SIZE_BOTTOM_2LINE+2); \
+               } \
+       )
+
+#define GENLIST_PART_PADDING_L( NAME, LEFT ) \
+        GENLIST_PART_SPACER(NAME, \
+               description { state: "default" 0.0; \
+                  fixed: 1 0; \
+                  min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+                  max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+                  align: 0 0.5; \
+                  rel1 { \
+                         relative: 1 0; \
+                         to_x: LEFT; \
+                  } \
+                  rel2 { \
+                         relative: 1 1; \
+                         to_x: LEFT; \
+                  } \
+               } \
+        )
+
+#define GENLIST_PART_PADDING_R( NAME, RIGHT ) \
+        GENLIST_PART_SPACER(NAME, \
+               description { state: "default" 0.0; \
+                  fixed: 1 0; \
+                  min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+                  max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+                  align: 1 0.5; \
+                  rel1 { \
+                         relative: 0 0; \
+                         to_x: RIGHT; \
+                  } \
+                  rel2 { \
+                         relative: 0 1; \
+                         to_x: RIGHT; \
+                  } \
+               } \
+        )
+
+#define GENLIST_PARAM_ICON_MEDIUM \
+         min: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE; \
+         max: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE;
+
+#define GENLIST_PART_ICON_MEDIUM_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
+         GENLIST_PARAM_ICON_MEDIUM \
+         fixed: 1 1; \
+      ) \
+   )
+
+
+#define GENLIST_PART_FLIP \
+        GENLIST_PART_RECT("elm.flip.bg", \
+               mouse_events: 0; \
+               description { state: "default" 0.0;\
+                  color: 0 0 0 0;\
+               } \
+               description { state: "flipped" 0.0; \
+                  inherit: "default" 0.0; \
+                  rel2.offset: 0 -3; \
+                  color: GENLIST_LIST_BG_COLOR;\
+               }\
+        ) \
+        GENLIST_PART_SPACER("elm.flip.padding.right", \
+               description { state: "default" 0.0; \
+                  min: 18 0; \
+                  max: 18 -1; \
+                  fixed: 1 0; \
+                  align: 1 0.5; \
+                  rel1.relative: 1 0; \
+               } \
+        ) \
+        GENLIST_PART_ICON("elm.flip.content", \
+               GENLIST_DESCRIPTION("elm.padding.left", "elm.flip.padding.icon.left",  \
+                  "elm.padding.top", "elm.padding.bottom", \
+                  visible: 0; \
+                  aspect: 1 1; \
+                  min: 0 64; \
+               ) \
+               description { state: "flipped" 0.0; \
+                  inherit: "default" 0.0; \
+                  visible: 1; \
+               } \
+        ) \
+        GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+        GENLIST_PART_ICON( "elm.flip.icon", \
+               GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \
+                  "elm.padding.top", "elm.padding.bottom", \
+                  visible: 0; \
+                  aspect: 1 1; \
+                  align: 1 0.5; \
+                  max: 158 74; \
+               ) \
+               description { state: "flipped" 0.0; \
+                  inherit: "default" 0.0; \
+                  visible: 1; \
+               } \
+        )
+
+// *******************************  Programs ********************************//
+#define GENLIST_PROGRAM_DEFAULT( TARGET ) \
+         program { name: "default"; \
+            signal: "elm,state,default"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+
+#define GENLIST_PROGRAM_DISABLED( TARGET ) \
+         program { name: "enabled"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+         program { name: "disabled"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_BOTTOMLINE \
+      program { name : "hide_bottomline"; \
+         signal: "elm,state,bottomline,hide"; \
+         source: ""; \
+         action: STATE_SET "hidden" 0.0; \
+         target: "bottom_line"; \
+      } \
+      program { name : "show_bottomline"; \
+         signal: "elm,state,bottomline,show"; \
+         source: ""; \
+         action: STATE_SET "default" 0.0; \
+         target: "bottom_line"; \
+      }
+
+#define GENLIST_PROGRAM_FOCUS \
+      program { name: "focused"; \
+         signal: "elm,action,focus_highlight,show"; \
+         source: "elm"; \
+         action: STATE_SET "focused" 0.0; \
+         target: "focus_part"; \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,action,focus_highlight,hide"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part"; \
+      }
+
+#define GENLIST_PROGRAM_FOCUS_NORMAL \
+      program { name: "focused"; \
+         signal: "elm,action,focus_highlight,show"; \
+         source: "elm"; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:"bg_reorder_clip", st, 30, vl); \
+            if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \
+               set_state(PART:"focus_part_reorder", "focused", 0.0); \
+            else \
+               set_state(PART:"focus_part", "focused", 0.0); \
+         } \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,action,focus_highlight,hide"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part_reorder"; \
+         target: "focus_part"; \
+      }
+
+#define GENLIST_PROGRAM_SOUND( SRC ) \
+      program { name: "play_sound"SRC; \
+         signal: "mouse,clicked,1"; \
+         source: SRC; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:SRC, st, 30, vl); \
+            if (!strcmp(st, "pressed") || \
+                !strcmp(st, "top_pressed") || \
+                !strcmp(st, "center_pressed") || \
+                !strcmp(st, "bottom_pressed")) \
+               play_sample("touch_sound", 1.0); \
+         } \
+      }
+
+#define GENLIST_PROGRAM_SELECT( TARGET ) \
+         program { name: "pressed"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            action: STATE_SET "pressed" 0.0; \
+            TARGET \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_DECORATE_REORDER( NAME, TARGET ) \
+         program { name: "reorder_enabled"NAME; \
+            signal: "elm,state,reorder,mode_set"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "reorder_disabled"NAME; \
+            signal: "elm,state,reorder,mode_unset"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "decorate_enabled_effect"NAME; \
+            signal: "elm,state,decorate,enabled,effect";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_disabled_effect"NAME;\
+            signal: "elm,state,decorate,disabled,effect";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_enabled"NAME;\
+            signal: "elm,state,decorate,enabled";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_disabled"NAME;\
+            signal: "elm,state,decorate,disabled";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "default_set"NAME; \
+            action: STATE_SET "default" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "decorate_set"NAME; \
+            action: STATE_SET "decorate" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "reorder_set"NAME; \
+            action: STATE_SET "reorder" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "decorate_reorder_set"NAME; \
+            action: STATE_SET "decorate_reorder" 0.0;\
+            target: "state"; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_FLIP \
+       program { name: "flip_enabled"; \
+          signal: "elm,state,flip,enabled"; \
+          source: "elm"; \
+          transition: DECELERATE 0.5; \
+          action: STATE_SET "flipped" 0.0; \
+          target: "elm.flip.content"; \
+          target: "elm.flip.icon"; \
+       } \
+       program { name: "flip_disabled"; \
+          signal: "elm,state,flip,disabled"; \
+          source: "elm"; \
+          transition: DECELERATE 0.5; \
+          action: STATE_SET "default" 0.0; \
+          target: "elm.flip.content"; \
+          target: "elm.flip.icon"; \
+       } \
+       program { name: "flip_enabled_bg"; \
+          signal: "elm,state,flip,enabled"; \
+          source: "elm"; \
+          action: STATE_SET "flipped" 0.0; \
+          target: "elm.flip.bg"; \
+       } \
+       program { name: "flip_disabled_bg"; \
+          signal: "elm,state,flip,disabled"; \
+          source: "elm"; \
+          action: STATE_SET "default" 0.0; \
+          target: "elm.flip.bg"; \
+       }
+
+#define GENLIST_PROGRAM_FLIP_TARGET( TARGET ) \
+         program { name: "flip_enabled_target"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "flipped" 0.0; \
+            TARGET \
+         } \
+         program { name: "flip_disabled_target"; \
+            signal:  "elm,state,flip,disabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "default" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAMS_TEXT_ONLY( TARGET ) \
+   programs { \
+      GENLIST_PROGRAM_DEFAULT( TARGET \
+         target: "bg"; \
+         target: "bg_clip"; \
+         target: "bottom_line"; \
+         target: "bottom_line_clip"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+         target: "bg_reorder_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+      ) \
+      GENLIST_PROGRAM_DISABLED( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+      ) \
+      GENLIST_PROGRAM_BOTTOMLINE \
+      GENLIST_PROGRAM_FOCUS_NORMAL \
+      GENLIST_PROGRAM_SELECT( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+      ) \
+      GENLIST_PROGRAM_SOUND("bg") \
+      GENLIST_PROGRAM_SOUND("bg_reorder") \
+      GENLIST_PROGRAM_SOUND("bg_reorder_ef") \
+      GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \
+         target: "bg_clip"; \
+         target: "bg_reorder_clip"; \
+         target: "bottom_line_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+      ) \
+      GENLIST_PROGRAM_FLIP \
+   }
+
+#if 1
+#define GENLIST_PROGRAMS_NORMAL( TARGET ) \
+   programs { \
+      GENLIST_PROGRAM_DEFAULT( TARGET \
+         target: "bg"; \
+         target: "bg_clip"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+         target: "bg_reorder_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+         target: "focus_part"; \
+         target: "focus_part_reorder"; \
+      ) \
+      GENLIST_PROGRAM_DISABLED( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+      ) \
+      GENLIST_PROGRAM_FOCUS_NORMAL \
+      GENLIST_PROGRAM_SELECT( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+      ) \
+      GENLIST_PROGRAM_SOUND("bg") \
+      GENLIST_PROGRAM_SOUND("bg_reorder") \
+      GENLIST_PROGRAM_SOUND("bg_reorder_ef") \
+      GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \
+         target: "bg_clip"; \
+         target: "bg_reorder_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+      ) \
+      GENLIST_PROGRAM_FLIP \
+   }
+#else
+#define GENLIST_PROGRAMS_NORMAL( TARGET ) \
+   programs { \
+      GENLIST_PROGRAM_DEFAULT( TARGET \
+         target: "bg"; \
+         target: "bg_clip"; \
+         target: "bottom_line"; \
+         target: "bottom_line_clip"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+         target: "bg_reorder_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+         target: "focus_part"; \
+         target: "focus_part_reorder"; \
+         target: "elm.thumb"; \
+         target: "elm.thumb.clip"; \
+      ) \
+      GENLIST_PROGRAM_DISABLED( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+      ) \
+      GENLIST_PROGRAM_BOTTOMLINE \
+      GENLIST_PROGRAM_FOCUS_NORMAL \
+      GENLIST_PROGRAM_SELECT( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+      ) \
+      GENLIST_PROGRAM_SOUND("bg") \
+      GENLIST_PROGRAM_SOUND("bg_reorder") \
+      GENLIST_PROGRAM_SOUND("bg_reorder_ef") \
+      GENLIST_PROGRAM_SOUND("elm.thumb") \
+      GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \
+         target: "bg_clip"; \
+         target: "bg_reorder_clip"; \
+         target: "bottom_line_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+         target: "elm.thumb"; \
+         target: "elm.thumb.clip"; \
+      ) \
+      GENLIST_PROGRAM_FLIP \
+   }
+#endif
+
+#define GENLIST_PROGRAMS_THUMB \
+   GENLIST_PROGRAM_DECORATE_REORDER( "thumb", target: "elm.thumb"; ) \
+   GENLIST_PROGRAM_FLIP_TARGET( target: "elm.thumb.clip"; ) \
+   program { name: "enabled_thumb"; \
+      signal: "elm,state,enabled"; \
+      source: "elm"; \
+      action: STATE_SET "default" 0.0; \
+      target: "elm.thumb"; \
+   } \
+   program { name: "disabled_thumb"; \
+      signal: "elm,state,disabled"; \
+      source: "elm"; \
+      action: STATE_SET "disabled" 0.0; \
+      target: "elm.thumb"; \
+   } \
+   program { name: "selected_thumb"; \
+      signal: "elm,state,selected"; \
+      source: "elm"; \
+      script { \
+         new st[31]; \
+         new Float:vl; \
+         get_state(PART:"elm.thumb", st, 30, vl); \
+         if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \
+            set_state(PART:"elm.thumb", "reorder_selected", 0.0); \
+         else \
+            set_state(PART:"elm.thumb", "pressed", 0.0); \
+      } \
+   } \
+   program { name: "unselected_thumb"; \
+      signal: "elm,state,unselected"; \
+      source: "elm"; \
+      script { \
+         new st[31]; \
+         new Float:vl; \
+         get_state(PART:"elm.thumb", st, 30, vl); \
+         if (!strcmp(st, "reorder_selected")) \
+            set_state(PART:"elm.thumb", "reorder", 0.0); \
+         else \
+            set_state(PART:"elm.thumb", "default", 0.0); \
+      } \
+   }
+
+// *******************************  Icon Part ******************************//
+#define GENLIST_PARAM_ICON_LARGE \
+         min: GENLIST_ICON_LARGE_SIZE GENLIST_ICON_LARGE_SIZE; \
+         max: GENLIST_ICON_LARGE_SIZE GENLIST_ICON_LARGE_SIZE;
+
+#define GENLIST_PARAM_ICON_SMALL \
+         min: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE; \
+         max: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE;
+
+#define GENLIST_PART_ICON(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: SWALLOW; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_ICON_LARGE_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
+         GENLIST_PARAM_ICON_LARGE \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_SMALL_RTB(NAME, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         GENLIST_PARAM_ICON_SMALL \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PARAM_LIST_BUBBLE_TEXT \
+   color_class: "T025"; \
+   text { \
+      align: 1 0.5; \
+      min: 0 1; \
+      text_class: "label"; \
+   }
+
+// FIXME: Need to find why rel2.offset: 9 -1 will not fix the alignment of bubble text ?
+#define GENLIST_PART_LIST_BUBBLE_TEXT_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+         GENLIST_PART_IMAGE("elm.bubble", \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_ENVELOP(NAME, \
+               image { \
+                  normal: "M01_list_bubble_bg.#.png"; \
+               } \
+               color_class: "B0219"; \
+               rel1.offset: -10 0; \
+               rel2.offset: 8 -1; \
+               min: 32 25; \
+               max: -1 25; \
+               fixed: 0 1; \
+            ) \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+               color_class: "B0219P"; \
+            } \
+         ) \
+         GENLIST_PART_TEXT(NAME, \
+            GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+               min: 0 HEIGHT; \
+               GENLIST_PARAM_TEXT_LIMIT_RT \
+               rel2.offset: -10 -1; /* This maintain the text alignment with bubble text. */\
+               GENLIST_PARAM_LIST_BUBBLE_TEXT \
+            ) \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+               color_class: "T025P"; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color_class: "T025D"; \
+            } \
+         )
+
+/******************************* Genlist IMAGE ********************************/
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: IMAGE; \
+      DESCRIPION \
+   }
+
+/******************************* Genlist RECT ********************************/
+#define GENLIST_PART_SPACER(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      mouse_events: 0; \
+      type: SPACER; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_RECT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: RECT; \
+      DESCRIPION \
+   }
+
+/******************************* Genlist TEXT ********************************/
+#define GENLIST_PART_TEXT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: TEXT; \
+      repeat_events: 1; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: TEXTBLOCK; \
+      repeat_events: 1; \
+      DESCRIPION \
+   }
+
+/*************************** parameters **********************************/
+#define GENLIST_PARAM_TEXT_LIMIT_RB \
+   rel1.to_x: "base"; /* This limits text growing. */\
+   rel1.relative: 0.5 0; /* This limits text growing. */\
+   text.max: 1 0; /* This limits text growing. */
+
+#define GENLIST_PARAM_TEXT_LIMIT_RT \
+   rel1.to_x: "base"; /* This limits text growing. */\
+   rel1.relative: 0.5 1; /* This limits text growing. */\
+   text.max: 1 0; /* This limits text growing. */
+
+#define GENLIST_PARAM_TEXT_LIMIT_RT_( LIMIT ) \
+   rel1.to_x: "base"; /* This limits text growing. */\
+   rel1.relative: LIMIT 1; /* This limits text growing. */\
+   text.max: 1 0; /* This limits text growing. */
+
+// list main text
+#define GENLIST_PARAM_LISTITEM \
+   color_class: "T023"; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_LISTITEM_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_main_text"; \
+   }
+
+#define GENLIST_PARAM_LISTITEM_TB_WRAP \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_main_text_wrap"; \
+   }
+
+#define GENLIST_PARAM_LISTITEM_CENTER \
+   color_class: "T023"; \
+   text { \
+      align: 0.5 0.5; \
+      min: 0 1; \
+      text_class: "list_item"; \
+   }
+
+// list subtext
+#define GENLIST_PARAM_SUBITEM_DEFAULT \
+   color_class: "T024"; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_sub_text_default"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_TIME \
+   color_class: "T0241"; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_TIME_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_sub_text_time"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_sub_text_default_wrap"; \
+   }
+
+// list subtext 02
+#define GENLIST_PARAM_SUBITEM_02 \
+   color_class: "T0242"; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      text_class: "list_item"; \
+   }
+
+/*************************** Descriptions **********************************/
+// list main text
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color_class: "T023D"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      color_class: "T023P"; \
+   }
+
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_dim"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_press"; \
+   }
+
+// list sub text
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color_class: "T024D"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      color_class: "T024P"; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_default_dim"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_default_press"; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_default_dim_wrap"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_default_press_wrap"; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color_class: "T024D"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      color_class: "T024P"; \
+   }
+
+// list main text multiline
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB_WRAP \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_dim_wrap"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_press_wrap"; \
+   }
+
+/*************************** Parts **********************************/
+#define GENLIST_PART_LISTITEM(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXT(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_TB(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_LISTITEM_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_CENTER(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+       GENLIST_PART_TEXT(NAME, \
+          GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+                 min: 0 HEIGHT; \
+               GENLIST_PARAM_LISTITEM_CENTER \
+                 PARAM \
+          ) \
+          GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+       )
+
+#define GENLIST_PART_LISTITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 0; \
+         GENLIST_PARAM_LISTITEM_TB \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_LISTITEM_LR(NAME, HEIGHT, LEFT, RIGHT, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, "elm.padding.top", "elm.padding.bottom", \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+         min: 0 HEIGHT; \
+         fixed: 0 1; \
+         GENLIST_PARAM_LISTITEM \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_LRT_TB(NAME, HEIGHT, LEFT, RIGHT, TOP, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+         min: 0 HEIGHT; \
+         fixed: 0 1; \
+         GENLIST_PARAM_LISTITEM_TB \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_LISTITEM_LR_TB(NAME, HEIGHT, LEFT, RIGHT, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, "elm.padding.top", "elm.padding.bottom", \
+         min: 0 HEIGHT; \
+         fixed: 1 0; \
+         GENLIST_PARAM_LISTITEM_TB \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXT(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_R(NAME, HEIGHT, RIGHT) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.top", "elm.padding.bottom", \
+         min: 0 HEIGHT; \
+         fixed: 1 0; \
+         GENLIST_PARAM_TEXT_LIMIT_RB \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+         fixed: 0 1; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_LRB_TB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+         fixed: 0 1; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RT \
+         GENLIST_PARAM_SUBITEM_TIME \
+         fixed: 1 0; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_RTB_TB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RT \
+         GENLIST_PARAM_SUBITEM_TIME_TB \
+         fixed: 1 0; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_02_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RT \
+         GENLIST_PARAM_SUBITEM_02 \
+         fixed: 1 0; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_FLIP_NEW \
+     GENLIST_PART_RECT("elm.flip.bg", \
+        mouse_events: 0; \
+        description { state: "default" 0.0;\
+           color: 0 0 0 0;\
+        } \
+        description { state: "flipped" 0.0; \
+           inherit: "default" 0.0; \
+           rel2.offset: 0 -3; \
+           color: 0 0 0 0 ;\
+        }\
+     ) \
+     GENLIST_PART_SPACER("elm.flip.padding.right", \
+        description { state: "default" 0.0; \
+           min: 18 0; \
+           max: 18 -1; \
+           fixed: 1 0; \
+           align: 1 0.5; \
+           rel1.relative: 1 0; \
+        } \
+     ) \
+     GENLIST_PART_ICON("elm.flip.content", \
+        GENLIST_DESCRIPTION("elm.padding.left", "elm.flip.padding.icon.left",  \
+           "elm.padding.top", "elm.padding.bottom", \
+           visible: 0; \
+           aspect: 1 1; \
+           min: 0 64; \
+        ) \
+        description { state: "flipped" 0.0; \
+           inherit: "default" 0.0; \
+           visible: 1; \
+        } \
+     ) \
+     GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+     GENLIST_PART_ICON( "elm.flip.icon", \
+        GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \
+           "elm.padding.top", "elm.padding.bottom", \
+           visible: 0; \
+           aspect: 1 1; \
+           align: 1 0.5; \
+           max: 158 74; \
+        ) \
+        description { state: "flipped" 0.0; \
+           inherit: "default" 0.0; \
+           visible: 1; \
+        } \
+     )
+
+/*****************************************************************************/
+/******************************* Dialogue group ******************************/
+/*****************************************************************************/
+
+#define GENLIST_HEIGHT_MULTILINE                 112
+#define DIALOGUE_PADDING_SIZE_LEFT        16+20
+#define DIALOGUE_PADDING_SIZE_RIGHT       16+20
+#define GENLIST_BTN_01_HEIGHT             74
+#define GENLIST_BTN_02_SIZE               72
+
+
+#define GENLIST_DESCRIPTION_R( right, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 0 0; \
+            to_x: right; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+#define GENLIST_PROLOG_CUSTOM \
+      data.item: "selectraise" "on"; \
+      data.item: "treesize" 0;
+
+#define GENLIST_PROLOG_NORMAL_CUSTOM \
+      GENLIST_PROLOG_CUSTOM \
+      data.item: "treesize" GENLIST_TREESIZE_DEFAULT; \
+      data.item: "flips" "elm.flip.content elm.flip.icon"; \
+      images { \
+         image : "00_focus_01.#.png" COMP; \
+                image : "00_list_group_bg.#.png" COMP; \
+                image : "00_list_group_bg_bottom.#.png" COMP; \
+                image : "00_list_group_bg_bottom_ef.#.png" COMP; \
+                image : "00_list_group_bg_center.#.png" COMP; \
+                image : "00_list_group_bg_center_ef.#.png" COMP; \
+                image : "00_list_group_bg_ef.#.png" COMP; \
+                image : "00_list_group_bg_top.#.png" COMP; \
+                image : "00_list_group_bg_top_ef.#.png" COMP; \
+      }
+
+#define GENLIST_PART_BG_NORMAL_OFF \
+   GENLIST_PART_RECT("bg_clip", \
+      mouse_events: 0; \
+      description { state: "default" 0.0; \
+         visible: 0; \
+      } \
+      description { state: "decorate" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 0; \
+      } \
+      description { state: "reorder" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 0; \
+      } \
+      description { state: "decorate_reorder" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 0; \
+      } \
+   ) \
+   GENLIST_PART_RECT("bg", \
+      mouse_events: 0; \
+      description { state: "default" 0.0; \
+         visible: 0; \
+      } \
+      description { state: "pressed" 0.0; \
+         visible: 0; \
+      } \
+      description { state: "disabled" 0.0; \
+         visible: 0; \
+      } \
+   ) \
+   GENLIST_PART_RECT("bg_reorder_clip", \
+      mouse_events: 0; \
+      description { state: "default" 0.0; \
+         visible: 0; \
+      } \
+      description { state: "reorder" 0.0; \
+         visible: 0; \
+      } \
+      description { state: "decorate_reorder" 0.0; \
+         visible: 0; \
+      } \
+      description { state: "decorate" 0.0; \
+         visible: 0; \
+      } \
+      description { state: "reorder_flip" 0.0; \
+         visible: 0; \
+      } \
+   ) \
+   GENLIST_PART_IMAGE("bg_reorder", \
+      mouse_events: 0; \
+      description {state: "default" 0.0;\
+         visible: 0;\
+      }\
+      description { state: "pressed" 0.0; {\
+         visible: 0; \
+      } \
+      description { state: "flipped" 0.0; {\
+         visible: 0; \
+      } \
+   ) \
+   GENLIST_PART_IMAGE("bg_reorder_ef", \
+      mouse_events: 0; \
+      description {state: "default" 0.0;\
+         visible: 0;\
+      }\
+      description { state: "pressed" 0.0; {\
+         visible: 0; \
+      } \
+      description { state: "flipped" 0.0; {\
+         visible: 0; \
+      } \
+   )
+
+#define GENLIST_PART_BG_DIALOGUE \
+   GENLIST_PART_SPACER("bg_dialogue_left", \
+      description { state: "default" 0.0; \
+         min: 16 0; \
+         max: 16 -1; \
+         fixed: 1 0; \
+         align: 0 0.5; \
+         rel2.relative: 0 1; \
+      } \
+   ) \
+   GENLIST_PART_SPACER("bg_dialogue_right", \
+      description { state: "default" 0.0; \
+         min: 16 0; \
+         max: 16 -1; \
+         fixed: 1 0; \
+         align: 1.0 0.5; \
+         rel1.relative: 1 0; \
+      } \
+      description { state: "editmode" 0.0; \
+         inherit: "default" 0.0; \
+         min: (GENLIST_PADDING_SIZE_DEFAULT*2+GENLIST_BTN_02_SIZE) 0; \
+         max: (GENLIST_PADDING_SIZE_DEFAULT*2+GENLIST_BTN_02_SIZE) 0; \
+      } \
+   ) \
+   part { name: "bg_dialogue_clip"; \
+      type: RECT;\
+      scale: 1;\
+      description { state: "default" 0.0;\
+         color_class: "B0217"; \
+      }\
+      description { state: "pressed" 0.0;\
+         color_class: "B041P"; \
+      }\
+      description { state: "2depth" 0.0;\
+         color_class: "B0214"; \
+      }\
+      description { state: "2depth_pressed" 0.0;\
+         color_class: "B041P"; \
+      }\
+   }\
+   GENLIST_PART_IMAGE("bg_dialogue", \
+      clip_to: "bg_dialogue_clip"; \
+      insert_after: "base"; \
+      GENLIST_DESCRIPTION_LR("bg_dialogue_left", "bg_dialogue_right", \
+         image { \
+            normal: "00_list_group_bg.#.png"; \
+         } \
+                color_class: "B0217L1"; \
+      ) \
+      description { state: "top" 0.0; \
+         inherit: "default" 0.0; \
+         image { \
+            normal: "00_list_group_bg_top.#.png"; \
+         } \
+         color_class: "B0217"; \
+      } \
+      description { state: "center" 0.0; \
+         inherit: "default" 0.0; \
+         image { \
+            normal: "00_list_group_bg_center.#.png"; \
+         } \
+         color_class: "B0217"; \
+      } \
+      description { state: "bottom" 0.0; \
+         inherit: "default" 0.0; \
+         image { \
+            normal: "00_list_group_bg_bottom.#.png"; \
+         } \
+         color_class: "B0217"; \
+      } \
+   ) \
+   GENLIST_PART_IMAGE("bg_dialogue_ef", \
+      insert_after: "bg_dialogue"; \
+      GENLIST_DESCRIPTION_LR("bg_dialogue_left", "bg_dialogue_right", \
+         image { \
+            normal: "00_list_group_bg_ef.#.png"; \
+         } \
+      ) \
+      description { state: "top" 0.0; \
+         inherit: "default" 0.0; \
+         image { \
+            normal: "00_list_group_bg_top_ef.#.png"; \
+         } \
+      } \
+      description { state: "center" 0.0; \
+         inherit: "default" 0.0; \
+         image { \
+            normal: "00_list_group_bg_center_ef.#.png"; \
+         } \
+      } \
+      description { state: "bottom" 0.0; \
+         inherit: "default" 0.0; \
+         image { \
+            normal: "00_list_group_bg_bottom_ef.#.png"; \
+         } \
+      } \
+   ) \
+   GENLIST_PART_RECT("sound",  \
+      repeat_events: 1;  /*for play_sound to check pressed state*/ \
+      description { state: "default" 0.0; \
+         color: 0 0 0 0; \
+      } \
+   ) \
+
+#define GENLIST_PART_BOTTOM_LINE_OFF \
+         GENLIST_PART_RECT("bottom_line", \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+         ) \
+         GENLIST_PART_RECT("bottom_line2", \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_LEFT_SIZE( SIZE ) \
+         GENLIST_PART_EXPANDED_PAD \
+         GENLIST_PART_SPACER("elm.padding.left", \
+            GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+               min: SIZE 0; \
+               max: SIZE -1; \
+               fixed: 1 0; \
+            ) \
+            GENLIST_DESCRIPTION_DECORATE_PADDING \
+            GENLIST_DESCRIPTION_REORDER_PADDING \
+            GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+         )
+
+#define GENLIST_PART_PADDING_RIGHT_EDIT \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            GENLIST_DESCRIPTION_R("elm.padding.right.edit", \
+               min: DIALOGUE_PADDING_SIZE_RIGHT 0; \
+               max: DIALOGUE_PADDING_SIZE_RIGHT -1; \
+               fixed: 1 0; \
+            ) \
+            GENLIST_DESCRIPTION_DECORATE_PADDING \
+            GENLIST_DESCRIPTION_REORDER_PADDING \
+            GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+         ) \
+         GENLIST_PART_SPACER("elm.padding.right.edit", \
+            description { state: "default" 0.0; \
+               min:0 0; \
+               max: 0 -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.relative: 1 0; \
+            } \
+            description { state: "editmode" 0.0; \
+               inherit: "default" 0.0; \
+               min: (GENLIST_PADDING_SIZE_DEFAULT+GENLIST_BTN_02_SIZE) 0; \
+               max: (GENLIST_PADDING_SIZE_DEFAULT+GENLIST_BTN_02_SIZE) -1; \
+            } \
+         ) \
+         GENLIST_PART_EDITBTN
+
+#define GENLIST_PART_FLIP_CUSTOM \
+         GENLIST_PART_RECT("elm.flip.bg", \
+            mouse_events: 0; \
+            description { state: "default" 0.0;\
+               color: 0 0 0 0;\
+            } \
+            description { state: "flipped" 0.0; \
+               inherit: "default" 0.0; \
+               rel2.offset: 0 -3; \
+               color: 0 0 0 0;\
+            }\
+         ) \
+         GENLIST_PART_SPACER("elm.flip.padding.right", \
+            description { state: "default" 0.0; \
+               min: 18 0; \
+               max: 18 -1; \
+               fixed: 1 0; \
+               align: 1 0.5; \
+               rel1.relative: 1 0; \
+            } \
+         ) \
+         GENLIST_PART_ICON("elm.flip.content", \
+            GENLIST_DESCRIPTION("elm.padding.left", "elm.flip.padding.icon.left",  \
+               "elm.padding.top", "elm.padding.bottom", \
+               visible: 1; /* FIXME: object(entry) should be visible when focused. if not, it will be unfocused immediately */ \
+               min: 0 64; \
+            ) \
+            description { state: "flipped" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         ) \
+         GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+         GENLIST_PART_ICON( "elm.flip.icon", \
+            GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \
+               "elm.padding.top", "elm.padding.bottom", \
+               visible: 0; \
+               aspect: 1 1; \
+               align: 1 0.5; \
+               max: 158 74; \
+            ) \
+            description { state: "flipped" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         )
+
+#define GENLIST_PART_FOCUS_DIALOGUE \
+   GENLIST_PART_IMAGE("focus_part_dialogue", \
+      mouse_events: 0; \
+      GENLIST_DESCRIPTION_LR("bg_dialogue_left", "bg_dialogue_right", \
+         visible: 0; \
+         image { \
+            normal: "00_focus_01.#.png"; \
+         } \
+         color_class: "W161"; \
+      ) \
+      description { state: "focused" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+      } \
+   ) \
+
+
+#define GENLIST_DIALOGUE_INHERIT_BODY( _PARTS ) \
+      data.item: "treesize" 0; \
+      parts { \
+         GENLIST_PART_BG_NORMAL_OFF \
+         GENLIST_PART_BOTTOM_LINE_OFF \
+         GENLIST_PART_BG_DIALOGUE \
+         GENLIST_PART_PADDING_LEFT_SIZE( DIALOGUE_PADDING_SIZE_LEFT ) \
+         GENLIST_PART_PADDING_RIGHT_EDIT \
+         _PARTS \
+         GENLIST_PART_FLIP_CUSTOM \
+         GENLIST_PART_FOCUS_DIALOGUE \
+      }
+
+
+//****************************************************************************//
+//********************************* PADDING **********************************//
+//****************************************************************************//
+#define GENLIST_PART_EDITBTN \
+   GENLIST_PART_SPACER("elm.padding.edit.right", \
+      description { state: "default" 0.0; \
+         fixed: 1 0; \
+         align: 1.0 0.5; \
+         rel1.relative: 1 0; \
+         min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+         max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+      } \
+   ) \
+   GENLIST_PART_ICON("elm.icon.edit", \
+      GENLIST_DESCRIPTION_R("elm.padding.edit.right", \
+         visible: 0; \
+      ) \
+      description { state: "editmode" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+         fixed: 1 1; \
+         min: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE; \
+         max: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE; \
+      } \
+   )
+
+#define GENLIST_PARAM_ICON_LARGE_CUSTOM \
+         min: GENLIST_ICON_LARGE_SIZE GENLIST_ICON_LARGE_SIZE; \
+         max: GENLIST_ICON_LARGE_SIZE GENLIST_ICON_LARGE_SIZE;
+
+#define GENLIST_PARAM_ICON_BTN_01 \
+         min: 0 GENLIST_BTN_01_HEIGHT; \
+         max: -1 GENLIST_BTN_01_HEIGHT;
+
+#define GENLIST_PART_ICON_LARGE_R(NAME, RIGHT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.top", "elm.padding.bottom", \
+         GENLIST_PARAM_ICON_LARGE_CUSTOM \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_BTN_01_RTB(NAME, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM,\
+         GENLIST_PARAM_ICON_BTN_01 \
+         fixed: 1 1; \
+      ) \
+   )
+//****************************************************************************//
+// ******************************* Dialogue program ********************************//
+//**************************************************************************//
+#if 1
+#define GENLIST_PROGRAMS_DIALOGUE( TARGET ) \
+   programs { \
+      GENLIST_PROGRAM_DEFAULT( TARGET \
+         target: "bg_dialogue_clip"; \
+         target: "bg_dialogue"; \
+         target: "bg_dialogue_ef"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.right.edit"; \
+         target: "elm.icon.edit"; \
+         target: "bg_dialogue_right"; \
+         target: "focus_part_dialogue"; \
+      ) \
+      GENLIST_PROGRAM_DISABLED( TARGET ) \
+      GENLIST_PROGRAM_FOCUS_DIALOGUE \
+      GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \
+      program { name: "bg_color_change"; \
+         signal: "bg_color_change"; \
+         source: "elm"; \
+         action: STATE_SET "2depth" 0.0; \
+         target: "bg_dialogue_clip"; \
+      } \
+      GENLIST_PROGRAM_SOUND("bg_dialogue") \
+      GENLIST_PROGRAM_SOUND("bg_dialogue_ef") \
+      GENLIST_PROGRAM_DECORATE_REORDER( "normal", TARGET \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+      ) \
+      GENLIST_PROGRAM_FLIP \
+      GENLIST_PROGRAM_EDITMODE \
+   }
+
+#define GENLIST_PROGRAM_FOCUS_DIALOGUE \
+      program { name: "focused"; \
+         signal: "elm,action,focus_highlight,show"; \
+         source: "elm"; \
+         script { \
+            set_state(PART:"focus_part_dialogue", "focused", 0.0); \
+         } \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,action,focus_highlight,hide"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part_dialogue"; \
+      }
+
+#define GENLIST_PROGRAM_BG_DIALOGUE \
+         program { name: "bg_top"; \
+            signal: "elm,state,top"; \
+            source: "*"; \
+            script { \
+               set_state(PART:"bg_dialogue", "top", 0.0); \
+               set_state(PART:"bg_dialogue_ef", "top", 0.0); \
+            } \
+         } \
+         program { name: "bg_center"; \
+            signal: "elm,state,center"; \
+            source: "*"; \
+            script { \
+               set_state(PART:"bg_dialogue", "center", 0.0); \
+               set_state(PART:"bg_dialogue_ef", "center", 0.0); \
+            } \
+         } \
+         program { name: "bg_bottom"; \
+            signal: "elm,state,bottom"; \
+            source: "*"; \
+            script { \
+               set_state(PART:"bg_dialogue", "bottom", 0.0); \
+               set_state(PART:"bg_dialogue_ef", "bottom", 0.0); \
+            } \
+         } \
+         program { name: "bg_normal"; \
+            signal: "elm,state,normal"; \
+            source: "*"; \
+            script { \
+               set_state(PART:"bg_dialogue", "default", 0.0); \
+               set_state(PART:"bg_dialogue_ef", "default", 0.0); \
+            } \
+         }
+
+#define GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \
+         program { name: "pressed"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"bg_dialogue_clip", st, 30, vl); \
+               if (!strcmp(st, "2depth")) \
+                  set_state(PART:"bg_dialogue_clip", "2depth_pressed", 0.0); \
+               else \
+                  set_state(PART:"bg_dialogue_clip", "pressed", 0.0); \
+               run_program(PROGRAM:"target_selected"); \
+            } \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"bg_dialogue_clip", st, 30, vl); \
+               if (!strcmp(st, "2depth_pressed")) \
+                  set_state(PART:"bg_dialogue_clip", "2depth", 0.0); \
+               else if (!strcmp(st, "pressed")) \
+                  set_state(PART:"bg_dialogue_clip", "default", 0.0); \
+               run_program(PROGRAM:"target_unselected"); \
+            } \
+         } \
+         program { name: "target_selected"; \
+            action: STATE_SET "pressed" 0.0; \
+            TARGET \
+         }\
+         program { name: "target_unselected"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+         GENLIST_PROGRAM_BG_DIALOGUE
+#else
+
+#define GENLIST_PROGRAMS_DIALOGUE( TARGET ) \
+   programs { \
+      GENLIST_PROGRAM_DEFAULT( TARGET \
+         target: "2depth"; \
+         target: "bg_dialogue"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.right.edit"; \
+         target: "elm.icon.edit"; \
+         target: "bg_dialogue_right"; \
+      ) \
+      GENLIST_PROGRAM_DISABLED_CUSTOM( TARGET ) \
+      GENLIST_PROGRAM_FOCUS_DIALOGUE \
+      GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \
+      program { name: "bg_color_change"; \
+         signal: "bg_color_change"; \
+         source: "elm"; \
+         action: STATE_SET "2depth" 0.0; \
+         target: "2depth"; \
+      } \
+      GENLIST_PROGRAM_SOUND("bg_dialogue") \
+      GENLIST_PROGRAM_DECORATE_REORDER( "normal", TARGET \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+      ) \
+      GENLIST_PROGRAM_FLIP \
+      GENLIST_PROGRAM_EDITMODE \
+   }
+
+#define GENLIST_PROGRAM_FOCUS_DIALOGUE \
+      program { name: "focused"; \
+         signal: "elm,state,focused"; \
+         source: "elm"; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:"bg_dialogue", st, 30, vl); \
+            if (!strcmp(st, "top") || !strcmp(st, "top_selected") || !strcmp(st, "2depth_top")) \
+               set_state(PART:"focus_part_dialogue", "top_focused", 0.0); \
+            else if (!strcmp(st, "center") || !strcmp(st, "center_selected") || !strcmp(st, "2depth_center")) \
+               set_state(PART:"focus_part_dialogue", "center_focused", 0.0); \
+            else if (!strcmp(st, "bottom") || !strcmp(st, "bottom_selected") || !strcmp(st, "2depth_bottom")) \
+               set_state(PART:"focus_part_dialogue", "bottom_focused", 0.0); \
+            else if (!strcmp(st, "default") || !strcmp(st, "selected") || !strcmp(st, "2depth")) \
+               set_state(PART:"focus_part_dialogue", "focused", 0.0); \
+         } \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,state,unfocused"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part_dialogue"; \
+      }
+
+#define GENLIST_PROGRAM_BG_DIALOGUE \
+         program { name: "bg_top"; \
+            signal: "elm,state,top"; \
+            source: "*"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               new st2[31]; \
+               new Float:vl2; \
+               get_state(PART:"2depth", st, 30, vl); \
+               get_state(PART:"bg_dialogue", st2, 30, vl2); \
+               if (!strcmp(st2, "selected") || \
+                  !strcmp(st2, "top_selected") || \
+                  !strcmp(st2, "center_selected") ||  \
+                  !strcmp(st2, "bottom_selected")) \
+                  set_state(PART:"bg_dialogue", "top_selected", 0.0); \
+               else if (!strcmp(st, "2depth")) \
+                  set_state(PART:"bg_dialogue", "2depth_top", 0.0); \
+               else \
+                  set_state(PART:"bg_dialogue", "top", 0.0); \
+            } \
+         } \
+         program { name: "bg_center"; \
+            signal: "elm,state,center"; \
+            source: "*"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               new st2[31]; \
+               new Float:vl2; \
+               get_state(PART:"2depth", st, 30, vl); \
+               get_state(PART:"bg_dialogue", st2, 30, vl2); \
+               if (!strcmp(st2, "selected") || \
+                  !strcmp(st2, "top_selected") || \
+                  !strcmp(st2, "center_selected") ||  \
+                  !strcmp(st2, "bottom_selected")) \
+                  set_state(PART:"bg_dialogue", "center_selected", 0.0); \
+               else if (!strcmp(st, "2depth")) \
+                  set_state(PART:"bg_dialogue", "2depth_center", 0.0); \
+               else \
+                  set_state(PART:"bg_dialogue", "center", 0.0); \
+            } \
+         } \
+         program { name: "bg_bottom"; \
+            signal: "elm,state,bottom"; \
+            source: "*"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               new st2[31]; \
+               new Float:vl2; \
+               get_state(PART:"2depth", st, 30, vl); \
+               get_state(PART:"bg_dialogue", st2, 30, vl2); \
+               if (!strcmp(st2, "selected") || \
+                  !strcmp(st2, "top_selected") || \
+                  !strcmp(st2, "center_selected") ||  \
+                  !strcmp(st2, "bottom_selected")) \
+                  set_state(PART:"bg_dialogue", "bottom_selected", 0.0); \
+               else if (!strcmp(st, "2depth")) \
+                  set_state(PART:"bg_dialogue", "2depth_bottom", 0.0); \
+               else \
+                  set_state(PART:"bg_dialogue", "bottom", 0.0); \
+            } \
+         } \
+         program { name: "bg_normal"; \
+            signal: "elm,state,normal"; \
+            source: "*"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               new st2[31]; \
+               new Float:vl2; \
+               get_state(PART:"2depth", st, 30, vl); \
+               get_state(PART:"bg_dialogue", st2, 30, vl2); \
+               if (!strcmp(st2, "selected") || \
+                  !strcmp(st2, "top_selected") || \
+                  !strcmp(st2, "center_selected") ||  \
+                  !strcmp(st2, "bottom_selected")) \
+                  set_state(PART:"bg_dialogue", "selected", 0.0); \
+               else if (!strcmp(st, "2depth")) \
+                  set_state(PART:"bg_dialogue", "2depth", 0.0); \
+               else \
+                  set_state(PART:"bg_dialogue", "default", 0.0); \
+            } \
+         }
+
+#define GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"bg_dialogue", st, 30, vl); \
+               if (!strcmp(st, "top") || !strcmp(st, "2depth_top")) \
+                  set_state(PART:"bg_dialogue", "top_selected", 0.0); \
+               else if (!strcmp(st, "center") || !strcmp(st, "2depth_center")) \
+                  set_state(PART:"bg_dialogue", "center_selected", 0.0); \
+               else if (!strcmp(st, "bottom") || !strcmp(st, "2depth_bottom")) \
+                  set_state(PART:"bg_dialogue", "bottom_selected", 0.0); \
+               else if (!strcmp(st, "default") || !strcmp(st, "2depth")) \
+                  set_state(PART:"bg_dialogue", "selected", 0.0); \
+               run_program(PROGRAM:"target_selected"); \
+            } \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"2depth", st, 30, vl); \
+               if (!strcmp(st, "2depth")) { \
+                  get_state(PART:"bg_dialogue", st, 30, vl); \
+                  if (!strcmp(st, "top_selected")) \
+                     set_state(PART:"bg_dialogue", "2depth_top", 0.0); \
+                  else if (!strcmp(st, "center_selected"))  \
+                     set_state(PART:"bg_dialogue", "2depth_center", 0.0); \
+                  else if (!strcmp(st, "bottom_selected"))  \
+                     set_state(PART:"bg_dialogue", "2depth_bottom", 0.0); \
+                  else if (!strcmp(st, "selected")) \
+                     set_state(PART:"bg_dialogue", "2depth", 0.0); \
+               } else { \
+                  get_state(PART:"bg_dialogue", st, 30, vl); \
+                  if (!strcmp(st, "top_selected")) \
+                  set_state(PART:"bg_dialogue", "top", 0.0); \
+                  else if (!strcmp(st, "center_selected"))  \
+                     set_state(PART:"bg_dialogue", "center", 0.0); \
+                  else if (!strcmp(st, "bottom_selected"))  \
+                     set_state(PART:"bg_dialogue", "bottom", 0.0); \
+                  else if (!strcmp(st, "selected")) \
+                     set_state(PART:"bg_dialogue", "default", 0.0); \
+               } \
+               run_program(PROGRAM:"target_unselected"); \
+            } \
+         } \
+         program { name: "target_selected"; \
+            action: STATE_SET "selected" 0.0; \
+            TARGET \
+         }\
+         program { name: "target_unselected"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+         GENLIST_PROGRAM_BG_DIALOGUE
+#endif
+
+
+
+
+
+
+
+#define GENLIST_PROGRAM_EDITMODE \
+   program { name: "edit_enabled"; \
+      signal:  "elm,state,edit,enabled"; \
+      source:  "*"; \
+      action:  STATE_SET "editmode" 0.0; \
+      target: "elm.padding.right.edit"; \
+      target: "elm.icon.edit"; \
+      target: "bg_dialogue_right"; \
+   } \
+   program { name: "edit_disabled"; \
+      signal:  "elm,state,edit,disabled"; \
+      source:  "*"; \
+      action:  STATE_SET "default" 0.0; \
+      target: "elm.padding.right.edit"; \
+      target: "elm.icon.edit"; \
+      target: "bg_dialogue_right"; \
+   }
+
+//****************************************************************************//
+// *******************************  Custom ********************************//
+//**************************************************************************//
+
+#define GENLIST_PART_PADDING_LEFT_EMOTICON \
+     GENLIST_PART_EXPANDED_PAD \
+     GENLIST_PART_SPACER("elm.padding.left", \
+        GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+           min: GENLIST_PADDING_SIZE_LEFT 0; \
+           max: GENLIST_PADDING_SIZE_LEFT -1; \
+           fixed: 1 0; \
+        ) \
+        GENLIST_DESCRIPTION_DECORATE_PADDING \
+        GENLIST_DESCRIPTION_REORDER_PADDING \
+        GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+     )
+
+#define GENLIST_PART_PADDING_RIGHT_EMOTICON \
+     GENLIST_PART_SPACER("elm.padding.right", \
+        description { state: "default" 0.0; \
+           min: GENLIST_PADDING_SIZE_RIGHT 0; \
+           max: GENLIST_PADDING_SIZE_RIGHT -1; \
+           fixed: 1 0; \
+           align: 1.0 0.5; \
+           rel1.to: "base"; \
+           rel2.to: "base"; \
+           rel1.relative: 1 0; \
+        } \
+        GENLIST_DESCRIPTION_DECORATE_PADDING \
+        GENLIST_DESCRIPTION_REORDER_PADDING \
+        GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+     )
+
+#define GENLIST_PART_BG_NORMAL_CUSTOM \
+      GENLIST_PART_RECT("bg_clip", \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            visible: 1; \
+            color: 255 255 255 255; \
+         } \
+         description { state: "decorate" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "decorate_reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_RECT("bg_reorder_clip", \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 1; \
+            color: 255 255 255 255; \
+         } \
+         description { state: "decorate_reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "decorate" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "reorder_flip" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_RECT("bg",  \
+         clip_to: "bg_clip"; \
+         description { state: "default" 0.0; \
+            color_class: "B0211"; \
+         } \
+         description { state: "pressed" 0.0; \
+            inherit: "default" 0.0; \
+            color_class: "B0211P"; \
+         } \
+         description { state: "disabled" 0.0; \
+            inherit: "default" 0.0; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_left", \
+         description { state: "default" 0.0; \
+            min: 16 0; \
+            max: 16 -1; \
+            fixed: 1 0; \
+            align: 0 0.5; \
+            rel2.relative: 0 1; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_right", \
+         description { state: "default" 0.0; \
+            min: 16 0; \
+            max: 16 -1; \
+            fixed: 1 0; \
+            align: 1.0 0.5; \
+            rel1.relative: 1 0; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_top", \
+         description { state: "default" 0.0; \
+            min: 0 2; \
+            max: -1 2; \
+            fixed: 0 1; \
+            align: 0.5 0; \
+            rel2.relative: 1 0; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_bottom", \
+         description { state: "default" 0.0; \
+            min: 0 2; \
+            max: -1 2; \
+            fixed: 0 1; \
+            align: 0.5 1.0; \
+            rel1.relative: 0 1; \
+         } \
+      ) \
+      GENLIST_PART_IMAGE("bg_reorder", \
+         clip_to: "bg_reorder_clip"; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 1; \
+               to_x: "bg_reorder_left"; \
+               to_y: "bg_reorder_top"; \
+            } \
+            rel2 { \
+               relative: 0 0; \
+               to_x: "bg_reorder_right"; \
+               to_y: "bg_reorder_bottom"; \
+            } \
+            image { \
+               normal: "00_list_group_bg.#.png"; \
+            } \
+            color_class: "B0217"; \
+         } \
+         description { state: "pressed" 0.0; \
+            inherit: "default"; \
+            color_class: "B041P"; \
+         } \
+         description { state: "flipped" 0.0; \
+            inherit: "default"; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_IMAGE("bg_reorder_ef", \
+         clip_to: "bg_reorder_clip"; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 1; \
+               to_x: "bg_reorder_left"; \
+               to_y: "bg_reorder_top"; \
+            } \
+            rel2 { \
+               relative: 0 0; \
+               to_x: "bg_reorder_right"; \
+               to_y: "bg_reorder_bottom"; \
+            } \
+            image { \
+               normal: "00_list_group_bg_ef.#.png"; \
+            } \
+            color_class: "B0217"; \
+         } \
+         description { state: "pressed" 0.0; \
+            inherit: "default"; \
+         } \
+         description { state: "flipped" 0.0; \
+            inherit: "default"; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_RECT("sound",  \
+         repeat_events: 1;  /*for play_sound to check pressed state*/ \
+         description { state: "default" 0.0; \
+            color: 0 0 0 0; \
+         } \
+      )
+
+/* For genlist popup without bg color */
+#define GENLIST_PART_BG_NORMAL_WITHOUT_COLOR_CUSTOM \
+      GENLIST_PART_RECT("bg_clip", \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            visible: 1; \
+            color: 255 255 255 255; \
+         } \
+         description { state: "decorate" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "decorate_reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_RECT("bg_reorder_clip", \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 1; \
+            color: 255 255 255 255; \
+         } \
+         description { state: "decorate_reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "decorate" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "reorder_flip" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_RECT("bg",  \
+         clip_to: "bg_clip"; \
+         description { state: "default" 0.0; \
+            color: 0 0 0 0; \
+         } \
+         description { state: "pressed" 0.0; \
+            inherit: "default" 0.0; \
+            color: 255 255 255 255; \
+            color_class: "B0411"; \
+         } \
+         description { state: "disabled" 0.0; \
+            inherit: "default" 0.0; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_left", \
+         description { state: "default" 0.0; \
+            min: 16 0; \
+            max: 16 -1; \
+            fixed: 1 0; \
+            align: 0 0.5; \
+            rel2.relative: 0 1; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_right", \
+         description { state: "default" 0.0; \
+            min: 16 0; \
+            max: 16 -1; \
+            fixed: 1 0; \
+            align: 1.0 0.5; \
+            rel1.relative: 1 0; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_top", \
+         description { state: "default" 0.0; \
+            min: 0 2; \
+            max: -1 2; \
+            fixed: 0 1; \
+            align: 0.5 0; \
+            rel2.relative: 1 0; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_bottom", \
+         description { state: "default" 0.0; \
+            min: 0 2; \
+            max: -1 2; \
+            fixed: 0 1; \
+            align: 0.5 1.0; \
+            rel1.relative: 0 1; \
+         } \
+      ) \
+      GENLIST_PART_IMAGE("bg_reorder", \
+         clip_to: "bg_reorder_clip"; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 1; \
+               to_x: "bg_reorder_left"; \
+               to_y: "bg_reorder_top"; \
+            } \
+            rel2 { \
+               relative: 0 0; \
+               to_x: "bg_reorder_right"; \
+               to_y: "bg_reorder_bottom"; \
+            } \
+            image { \
+               normal: "00_list_group_bg.#.png"; \
+            } \
+            color_class: "B0217"; \
+         } \
+         description { state: "pressed" 0.0; \
+            inherit: "default"; \
+            color_class: "B041P"; \
+         } \
+         description { state: "flipped" 0.0; \
+            inherit: "default"; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_IMAGE("bg_reorder_ef", \
+         clip_to: "bg_reorder_clip"; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 1; \
+               to_x: "bg_reorder_left"; \
+               to_y: "bg_reorder_top"; \
+            } \
+            rel2 { \
+               relative: 0 0; \
+               to_x: "bg_reorder_right"; \
+               to_y: "bg_reorder_bottom"; \
+            } \
+            image { \
+               normal: "00_list_group_bg_ef.#.png"; \
+            } \
+            color_class: "B0217"; \
+         } \
+         description { state: "pressed" 0.0; \
+            inherit: "default"; \
+         color_class: "B041P"; \
+         } \
+         description { state: "flipped" 0.0; \
+            inherit: "default"; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_RECT("sound",  \
+         repeat_events: 1;  /*for play_sound to check pressed state*/ \
+         description { state: "default" 0.0; \
+            color: 0 0 0 0; \
+         } \
+      ) \
+
+#define GENLIST_PART_BOTTOM_LINE_CUSTOM \
+         GENLIST_PART_RECT("bottom_line_clip", \
+            description { state: "default" 0.0; \
+               color: 255 255 255 255; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "decorate_reorder" 0.0; \
+               inherit: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+         ) \
+         GENLIST_PART_RECT("bottom_line", \
+            mouse_events: 0; \
+            clip_to: "bottom_line_clip"; \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               color: 64 64 64 255; \
+               rel1.to: "bottom_line2"; \
+               rel2.to: "bottom_line2"; \
+               rel2.relative: 1 0; \
+               rel1.offset: -1 -1; \
+            } \
+            description { state: "flipped" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+         ) \
+         GENLIST_PART_RECT("bottom_line2", \
+            mouse_events: 0; \
+            clip_to: "bottom_line_clip"; \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               color: 64 64 64 255; \
+               rel1.to_x: "base"; \
+               rel1.relative: 0 0; \
+               rel1.offset: 4 -1; \
+               rel2.to_x: "base"; \
+               rel2.relative: 1 1; \
+               rel2.offset: -4 0; \
+            } \
+            description { state: "flipped" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+         )
+
+#define GENLIST_PART_LISTITEM_TB_CUSTOM(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 0 0; \
+         GENLIST_PARAM_LISTITEM_TB \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB_WRAP \
+   )
+
+//****************************************************************************//
+// *******************************  Custom - program ********************************//
+//**************************************************************************//
+
+#define GENLIST_PROGRAMS_NORMAL_CUSTOM( TARGET ) \
+   programs { \
+      GENLIST_PROGRAM_DEFAULT( TARGET \
+         target: "bg"; \
+         target: "bg_clip"; \
+         target: "bottom_line"; \
+         target: "bottom_line_clip"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+      ) \
+      GENLIST_PROGRAM_DISABLED_CUSTOM( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+      ) \
+      GENLIST_PROGRAM_BOTTOMLINE \
+      GENLIST_PROGRAM_FOCUS_NORMAL_CUSTOM \
+      GENLIST_PROGRAM_SELECT( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+      ) \
+      GENLIST_PROGRAM_SOUND("bg") \
+      GENLIST_PROGRAM_SOUND("bg_reorder") \
+      GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \
+         target: "bg_clip"; \
+         target: "bg_reorder_clip"; \
+         target: "bottom_line_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+      ) \
+      GENLIST_PROGRAM_FLIP \
+   }
+
+#define GENLIST_PROGRAM_DISABLED_CUSTOM( TARGET ) \
+         program { name: "enabled"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+         program { name: "disabled"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_FOCUS_NORMAL_CUSTOM \
+      program { name: "focused"; \
+         signal: "elm,state,focused"; \
+         source: "elm"; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:"bg_reorder_clip", st, 30, vl); \
+            if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \
+               set_state(PART:"focus_part_reorder", "focused", 0.0); \
+            else \
+               set_state(PART:"focus_part", "focused", 0.0); \
+         } \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,state,unfocused"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part_reorder"; \
+         target: "focus_part"; \
+      }
+
diff --git a/common/data/msg_image_macro.edc b/common/data/msg_image_macro.edc
new file mode 100755 (executable)
index 0000000..e59dffa
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#define RESOURCE_IMAGE( FILE_NAME ) \
+   group { \
+      name: FILE_NAME; \
+      images.image: FILE_NAME COMP; \
+      parts { \
+         part { name: "image"; \
+            description { \
+               state: "default" 0.0; \
+               image.normal: FILE_NAME; \
+               aspect: 1 1; \
+               aspect_preference: BOTH; \
+            } \
+         } \
+      } \
+   }
+
+#define RESOURCE_IMAGE_NO_ASPECT( FILE_NAME ) \
+   group { \
+      name: FILE_NAME; \
+      images.image: FILE_NAME COMP; \
+      parts { \
+         part { name: "image"; \
+            description { \
+               state: "default" 0.0; \
+               image.normal: FILE_NAME; \
+            } \
+         } \
+      } \
+   }
+
+#define RESOURCE_IMAGE_LOSSY( FILE_NAME ) \
+   group { \
+      name: FILE_NAME; \
+      images.image: FILE_NAME LOSSY 85; \
+      parts { \
+         part { name: "image"; \
+            description { \
+               state: "default" 0.0; \
+               image.normal: FILE_NAME; \
+               aspect: 1 1; \
+               aspect_preference: BOTH; \
+            } \
+         } \
+      } \
+   }
+
+#define RESOURCE_OVERLAP_IMAGE( GROUP_NAME, BG_FILE_NAME, BG_COLOR_R, BG_COLOR_G, BG_COLOR_B, BG_COLOR_A, ICON_FILE_NAME, ICON_COLOR_R, ICON_COLOR_G, ICON_COLOR_B, ICON_COLOR_A) \
+               group { \
+                       name: GROUP_NAME; \
+                       images.image: BG_FILE_NAME COMP; \
+                       images.image: ICON_FILE_NAME COMP; \
+                       parts { \
+                               part { \
+                                       name: "bg"; \
+                                       description { \
+                                               state: "default" 0.0; \
+                                               image.normal: BG_FILE_NAME; \
+                                               color: BG_COLOR_R BG_COLOR_G BG_COLOR_B BG_COLOR_A;\
+                                       } \
+                               } \
+                               part { \
+                                       name: FILE_NAME; \
+                                       description { \
+                                               state: "default" 0.0; \
+                                               image.normal: ICON_FILE_NAME; \
+                                               color: ICON_COLOR_R ICON_COLOR_G ICON_COLOR_B ICON_COLOR_A;\
+                                       } \
+                               } \
+                       } \
+               }
+
diff --git a/common/data/msg_images.edc b/common/data/msg_images.edc
new file mode 100755 (executable)
index 0000000..d3da403
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg_image_macro.edc"
+
+collections {
+       RESOURCE_IMAGE("60_myfiles_file_etc.png");
+       RESOURCE_IMAGE("attach_icon.png");
+       RESOURCE_IMAGE("M01_icon_message_status_mms_read_n.png");
+       RESOURCE_IMAGE("M01_icon_message_status_mms_sent_n.png");
+       RESOURCE_IMAGE("M01_icon_message_status_mms_unread_n.png");
+       RESOURCE_IMAGE("M01_icon_message_status_sms_read_n.png");
+       RESOURCE_IMAGE("M01_icon_message_status_sms_sent_n.png");
+       RESOURCE_IMAGE("M01_icon_message_status_sms_unread_n.png");
+       RESOURCE_IMAGE("M01_icon_composer.png");
+       RESOURCE_IMAGE("masking_message_list.png");
+       RESOURCE_IMAGE("U01_icon_etc.png");
+       RESOURCE_IMAGE("U01_icon_excel.png");
+       RESOURCE_IMAGE("U01_icon_html.png");
+       RESOURCE_IMAGE("U01_list_icon_image.png");
+       RESOURCE_IMAGE("U01_list_icon_amr.png");
+       RESOURCE_IMAGE("U01_list_icon_mp3.png");
+       RESOURCE_IMAGE("U01_icon_pdf.png");
+       RESOURCE_IMAGE("U01_icon_ppt.png");
+       RESOURCE_IMAGE("U01_icon_rss.png");
+       RESOURCE_IMAGE("U01_icon_vcf.png");
+       RESOURCE_IMAGE("U01_icon_vcs.png");
+       RESOURCE_IMAGE("U01_icon_svg.png");
+       RESOURCE_IMAGE("U01_icon_swf.png");
+       RESOURCE_IMAGE("U01_icon_text.png");
+       RESOURCE_IMAGE("U01_list_icon_mp4.png");
+       RESOURCE_IMAGE("U01_icon_word.png");
+       RESOURCE_IMAGE("U01_icon_drm.png");
+       RESOURCE_IMAGE("U01_icon_eml.png");
+       RESOURCE_IMAGE("U01_icon_hwp.png");
+       RESOURCE_IMAGE("U01_icon_file_zip.png");
+       RESOURCE_IMAGE("U01_icon_tpk.png");
+       RESOURCE_IMAGE("M01_icon_Unsupported.png");
+       RESOURCE_IMAGE("M01_title_icon_compose.png");
+       RESOURCE_IMAGE("00_icon_select_all.png");
+       RESOURCE_IMAGE("core_button_add.png");
+       RESOURCE_IMAGE("messages_add_object.png");
+       RESOURCE_IMAGE("btn_conversation_emotion.png");
+       RESOURCE_IMAGE("messages_add_contact.png");
+       RESOURCE_IMAGE_NO_ASPECT("btn_conversation_message_sending.png");
+       RESOURCE_IMAGE_NO_ASPECT("btn_conversation_mms_message_sending.png");
+       RESOURCE_IMAGE("M01_icon_send_schedule.png");
+       RESOURCE_IMAGE("M01_icon_send_translator.png");
+       RESOURCE_IMAGE("M01_button_contact.png");
+       RESOURCE_IMAGE("M01_button_recent.png");
+       RESOURCE_IMAGE("M01_btn_location.png");
+       RESOURCE_IMAGE("M01_attach_icon_dcm_contacts.png");
+       RESOURCE_IMAGE("M01_attach_icon_recorded_video.png");
+       RESOURCE_IMAGE("M01_attach_icon_text_templates.png");
+       RESOURCE_IMAGE("M02_icon_invalid.png");
+       RESOURCE_IMAGE("M01_icon_bubble_drm.png");
+       RESOURCE_IMAGE("M01_btn_all.png");
+       RESOURCE_IMAGE("M01_btn_sender.png");
+       RESOURCE_IMAGE("M01_btn_message.png");
+       RESOURCE_IMAGE("icon_emotion_happy.png");
+       RESOURCE_IMAGE("icon_emotion_sad.png");
+       RESOURCE_IMAGE("icon_emotion_wink.png");
+       RESOURCE_IMAGE("icon_emotion_stick_out_tongue.png");
+       RESOURCE_IMAGE("icon_emotion_surprised.png");
+       RESOURCE_IMAGE("icon_emotion_kiss.png");
+       RESOURCE_IMAGE("icon_emotion_yelling.png");
+       RESOURCE_IMAGE("icon_emotion_sunglasses.png");
+       RESOURCE_IMAGE("icon_emotion_embarrassed.png");
+       RESOURCE_IMAGE("icon_emotion_disappointed.png");
+       RESOURCE_IMAGE("icon_emotion_crying.png");
+       RESOURCE_IMAGE("icon_emotion_no_speak.png");
+       RESOURCE_IMAGE("icon_emotion_laughing.png");
+       RESOURCE_IMAGE("icon_emotion_confused.png");
+       RESOURCE_IMAGE("icon_emotion_heart.png");
+       RESOURCE_IMAGE("icon_emotion_angry.png");
+       RESOURCE_IMAGE("icon_emotion_raised_eyebrow.png");
+       RESOURCE_IMAGE("icon_emotion_pokerface.png");
+       RESOURCE_IMAGE("badge_icon_draft_pencil.png");
+
+       RESOURCE_OVERLAP_IMAGE("title/thumb/contact", "title_thumbnail_image_bg.png", 255, 255, 255, 255, "title_thumbnail_image.png", 2, 61, 132, 255);
+       RESOURCE_OVERLAP_IMAGE("title/thumb/group", "title_thumbnail_image_bg.png", 255, 255, 255, 255, "title_thumbnail_image_group.png", 2, 61, 132, 255);
+}
diff --git a/common/data/sound/Tizen_Touch.wav b/common/data/sound/Tizen_Touch.wav
new file mode 100755 (executable)
index 0000000..ef6e6ae
Binary files /dev/null and b/common/data/sound/Tizen_Touch.wav differ
diff --git a/common/data/sound/button-pressed.wav b/common/data/sound/button-pressed.wav
new file mode 100755 (executable)
index 0000000..99ba74d
Binary files /dev/null and b/common/data/sound/button-pressed.wav differ
diff --git a/common/msg-file-util.c b/common/msg-file-util.c
new file mode 100755 (executable)
index 0000000..49b5549
--- /dev/null
@@ -0,0 +1,219 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <msg-file-util.h>
+
+#include <unistd.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <dirent.h>
+#include <string.h>
+#include <ctype.h>
+
+#define BUF_SIZE 1024 * 16
+
+__EXPORT_API__ long long msg_file_size_get(const char *file)
+{
+       long long res = 0;
+
+       if (file) {
+               struct stat st;
+               if (stat(file, &st) == 0) {
+                       res = st.st_size;
+               }
+       }
+
+       return res;
+}
+
+__EXPORT_API__ bool msg_file_exists(const char *file)
+{
+       bool res = false;
+       if (file) {
+               struct stat st;
+               res = stat(file, &st) == 0 || strcmp(file, "/") == 0;
+       }
+
+       return res;
+}
+
+__EXPORT_API__ bool msg_file_cp(const char *src, const char *dst)
+{
+       FILE *f1 = NULL;
+       FILE *f2 = NULL;
+
+       char buf[BUF_SIZE];
+       char realpath1[PATH_MAX];
+       char realpath2[PATH_MAX];
+
+       size_t num = 0;
+       bool ret = true;
+
+       if (!realpath(src, realpath1)) {
+               return false;
+       }
+
+       if (realpath(dst, realpath2) && !strcmp(realpath1, realpath2)) {
+               return false;
+       }
+
+       f1 = fopen(src, "rb");
+       if (!f1) {
+               return false;
+       }
+
+       f2 = fopen(dst, "wb");
+       if (!f2) {
+               fclose(f1);
+               return false;
+       }
+
+       while ((num = fread(buf, 1, sizeof(buf), f1)) > 0) {
+               if (fwrite(buf, 1, num, f2) != num) {
+                       ret = false;
+               }
+       }
+
+       fclose(f1);
+       fclose(f2);
+       return ret;
+}
+
+__EXPORT_API__ const char *msg_file_file_get(const char *path)
+{
+       char *result = NULL;
+
+       if (path) {
+               if ((result = strrchr(path, '/'))) {
+                       ++result;
+               } else {
+                       result = (char *)path;
+               }
+       }
+
+       return result;
+}
+
+__EXPORT_API__ bool msg_file_mkdir(const char *dir)
+{
+       bool res = false;
+
+       if (dir) {
+               mode_t mode = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
+               res = mkdir(dir, mode) == 0;
+       }
+
+       return res;
+}
+
+__EXPORT_API__ char *msg_file_app_exe_get(const char *app)
+{
+       char *res = NULL;
+
+       if (app) {
+               const char *tmp = strchr(app, ' ');
+
+               if (tmp && *tmp == ' ') {
+                       size_t size = tmp - app;
+                       res = (char *)calloc(1, size + 1);
+
+                       if (res) {
+                               memcpy(res, app, size);
+                       }
+               } else {
+                       res = strdup(app);
+               }
+       }
+
+       return res;
+}
+
+__EXPORT_API__ bool msg_file_is_dir(const char *file)
+{
+       bool res = false;
+
+       if (file) {
+               struct stat st;
+               if (stat(file, &st) == 0) {
+                       res = S_ISDIR(st.st_mode);
+               }
+       }
+
+       return res;
+}
+
+__EXPORT_API__ char *msg_file_strip_ext(const char *path)
+{
+       char *p = NULL;
+       char *file = NULL;
+
+       if (!path) {
+               return NULL;
+       }
+
+       p = strrchr(path, '.');
+       if (!p) {
+               file = strdup(path);
+       } else if (p != path) {
+               file = malloc(((p - path) + 1) * sizeof(char));
+               if (file) {
+                       memcpy(file, path, (p - path));
+                       file[p - path] = 0;
+               }
+       }
+
+       return file;
+}
+
+__EXPORT_API__ bool msg_file_remove(const char *file)
+{
+       bool res = false;
+       if (file) {
+               res = remove(file) == 0;
+       }
+
+       return res;
+}
+
+__EXPORT_API__ bool msg_file_recursive_rm(const char *dir)
+{
+       bool res = true;
+       DIR *dp = NULL;
+       struct dirent *ep = NULL;
+       char p_buf[PATH_MAX] = {0};
+
+       dp = opendir(dir);
+
+       while ((ep = readdir(dp)) != NULL) {
+               if (strcmp(ep->d_name, ".") != 0 && strcmp(ep->d_name, "..") != 0) {
+                       sprintf(p_buf, "%s/%s", dir, ep->d_name);
+
+                       if (msg_file_is_dir(p_buf))     {
+                               res &= msg_file_recursive_rm(p_buf);
+                       } else  {
+                               unlink(p_buf);
+                       }
+               }
+       }
+
+       closedir(dp);
+       res &= rmdir(dir) == 0;
+
+       return res;
+}
diff --git a/common/msg-file-util.h b/common/msg-file-util.h
new file mode 100755 (executable)
index 0000000..c0d4e0f
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_FILE_UTIL_H__
+#define __MSG_FILE_UTIL_H__
+
+#include <stdbool.h>
+
+#ifndef __EXPORT_API__
+#define __EXPORT_API__  __attribute__((visibility("default")))
+#endif
+
+long long msg_file_size_get(const char *file);
+bool msg_file_exists(const char *file);
+bool msg_file_cp(const char *src, const char *dst);
+const char *msg_file_file_get(const char *path);
+bool msg_file_mkdir(const char *dir);
+char *msg_file_app_exe_get(const char *app);
+bool msg_file_is_dir(const char *file);
+char *msg_file_strip_ext(const char *path);
+bool msg_file_remove(const char *file);
+bool msg_file_recursive_rm(const char *dir);
+
+#endif /* __MSG_FILE_UTIL_H__ */
diff --git a/common/msg-system-util.c b/common/msg-system-util.c
new file mode 100755 (executable)
index 0000000..cc2d768
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-system-util.h"
+#include "msg-ui-util.h"
+
+#include <telephony.h>
+#include <runtime_info.h>
+#include <system_info.h>
+
+#define MAX_MMS_RECIPIENT_COUNT (20)
+#define MAX_SMS_RECIPIENT_COUNT (20)
+#define PHONENUMBER_MIN_MATCH_DIGIT (8)
+
+__EXPORT_API__ int msg_sys_phonenumber_min_match_digit_get(int *digit)
+{
+       if (digit) {
+               *digit = PHONENUMBER_MIN_MATCH_DIGIT;
+       }
+       return 0;
+}
+
+__EXPORT_API__ int msg_sys_sound_status_get(bool *status)
+{
+       bool silent = false;
+       int res = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE, &silent);
+       if (res == 0) {
+               *status = !silent;
+       }
+       return res;
+}
+
+__EXPORT_API__  int msg_sys_vibration_status_get(bool *status)
+{
+       return runtime_info_get_value_bool (RUNTIME_INFO_KEY_VIBRATION_ENABLED, status);
+}
+
+__EXPORT_API__ int msg_sys_flight_mode_cb_set(system_settings_changed_cb cb, void *user_data)
+{
+       return cb ? system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE, cb, user_data) :
+                               system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE);
+}
+
+__EXPORT_API__ int msg_sys_flight_mode_get(bool *mode)
+{
+       return system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE, mode);
+}
+
+__EXPORT_API__ int msg_sms_recipient_count_limit_get(int *count)
+{
+       if (count) {
+               *count = MAX_SMS_RECIPIENT_COUNT;
+               return 0;
+       }
+       return -1;
+}
+
+__EXPORT_API__ int msg_mms_recipient_count_limit_get(int *count)
+{
+       if (count) {
+               *count = MAX_MMS_RECIPIENT_COUNT;
+               return 0;
+       }
+       return -1;
+}
+
+__EXPORT_API__ bool msg_is_mms_enabled()
+{
+       bool res = false;
+       int get_system_info_res = system_info_get_platform_bool("http://tizen.org/feature/network.telephony.mms", &res);
+       D_MSG("get_system_info_res = %d", get_system_info_res);
+       return res;
+}
diff --git a/common/msg-system-util.h b/common/msg-system-util.h
new file mode 100755 (executable)
index 0000000..6550643
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_SYSTEM_UTIL_H__
+#define __MSG_SYSTEM_UTIL_H__
+
+#include <stdbool.h>
+#include <system_settings.h>
+
+#ifndef __EXPORT_API__
+#define __EXPORT_API__  __attribute__((visibility("default")))
+#endif
+
+typedef void(* msg_sys_changed_cb)(int key, void *user_data);
+
+int msg_sys_phonenumber_min_match_digit_get(int *digit);
+int msg_sys_sound_status_get(bool *status);
+int msg_sys_vibration_status_get(bool *status);
+int msg_sys_flight_mode_cb_set(system_settings_changed_cb cb, void *user_data);
+int msg_sys_flight_mode_get(bool *mode);
+int msg_sms_recipient_count_limit_get(int *count);
+int msg_mms_recipient_count_limit_get(int *count);
+bool msg_is_mms_enabled();
+
+#endif /* __MSG_SYSTEM_UTIL_H__ */
diff --git a/common/msg-ui-bundle.h b/common/msg-ui-bundle.h
new file mode 100755 (executable)
index 0000000..1fde601
--- /dev/null
@@ -0,0 +1,269 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_BUNDLE_H__
+#define __MSG_BUNDLE_H__
+
+
+ /* Bundle key name */
+#define MSG_BUNDLE_KEY_TYPE                            "type"
+#define MSG_BUNDLE_KEY_RUN_TYPE                        "RUN_TYPE"              /* type for email */
+#define MSG_BUNDLE_KEY_LAUNCH_APPLICATION      "launching_application" /* type for call */
+
+#define MSG_BUNDLE_KEY_MSG_ID                  "msgId"
+#define MSG_BUNDLE_KEY_THREAD_ID               "threadId"
+#define MSG_BUNDLE_KEY_THREAD_NAME             "threadName"
+#define MSG_BUNDLE_KEY_THREAD_ADDRESS  "threadAddr"
+#define MSG_BUNDLE_KEY_CONTACT_ID              "contactId"
+#define MSG_BUNDLE_KEY_STORAGE_ID              "storageId"
+#define MSG_BUNDLE_KEY_FOLDER_ID               "folderId"
+#define MSG_BUNDLE_KEY_MSG_TYPE                "msgType"
+#define MSG_BUNDLE_KEY_RESET_ID                        "resetSimId"
+
+
+
+#define MSG_BUNDLE_KEY_VIEW_TYPE               "view_type"     /* it is used when composer is launched as specific view type like normal composer/bubble view */
+#define MSG_BUNDLE_KEY_COMPOSER_ONLY   "composer_only" /* it is used only when composer is destroyed after sending as normal composer */
+#define MSG_BUNDLE_KEY_TO                              "TO"
+#define MSG_BUNDLE_KEY_CC                              "CC"
+#define MSG_BUNDLE_KEY_BCC                             "BCC"
+#define MSG_BUNDLE_KEY_ATTACHFILE              "ATTACHFILE"
+#define MSG_BUNDLE_KEY_ATTACHFILE_ARRAY                "ATTACHFILE_ARRAY"
+
+#define MSG_BUNDLE_KEY_SUBJECT                 "SUBJECT"
+#define MSG_BUNDLE_KEY_BODY                    "BODY"
+#define MSG_BUNDLE_KEY_RECIPIENT               "recipient"
+#define MSG_BUNDLE_KEY_NUMBER_INDEX            "number/index"
+#define MSG_BUNDLE_KEY_INDEX           "index"
+#define MSG_BUNDLE_KEY_VIEWER_INTERNAL_CALLER          "viewer_internal_caller"
+#define MSG_BUNDLE_KEY_INDICATOR_MODE          "indicator_mode"
+
+#define MSG_BUNDLE_KEY_SEARCH_ID               "searchId"
+#define MSG_BUNDLE_KEY_SEARCH_WORD             "search_word"
+
+#define MSG_BUNDLE_KEY_REQUEST_TYPE            "request_type"
+#define MSG_BUNDLE_KEY_FILE_TYPE               "file_type"
+#define MSG_BUNDLE_KEY_SELECT_TYPE             "select_type"
+#define MSG_BUNDLE_KEY_PREVIEW_DATA            "preview_data"
+#define MSG_BUNDLE_KEY_LAYOUT_ADDRESS  "layout_address"
+
+#define MSG_BUNDLE_KEY_GET_SEL_LIST            "get_select_list"
+#define MSG_BUNDLE_KEY_NAMECARD_INDEX          "id"
+#define MSG_BUNDLE_KEY_COUNT           "count"
+#define MSG_BUNDLE_KEY_IMAGE           "image"
+#define MSG_BUNDLE_KEY_TEXT            "text"
+#define MSG_BUNDLE_KEY_PATH            "path"
+#define MSG_BUNDLE_KEY_MM_PATH         "PATH"
+
+#define MSG_BUNDLE_KEY_CALLER          "CALLER"
+#define MSG_BUNDLE_KEY_RESOLUTION      "RESOLUTION"
+#define MSG_BUNDLE_KEY_LIMIT           "LIMIT"
+#define MSG_BUNDLE_KEY_SIZE            "SIZE"
+#define MSG_BUNDLE_KEY_QUALITY         "QUALITY"
+
+#define MSG_BUNDLE_KEY_LAUNCH_APPLICATION      "launching_application"
+#define MSG_BUNDLE_KEY_VIEWER_MESSAGE  "msg_viewer_message"
+#define MSG_BUNDLE_KEY_PAGE_CHANGE             "PAGE_CHANGE"
+
+#define MSG_BUNDLE_KEY_RESULT                  "result"
+#define MSG_BUNDLE_KEY_MODE                            "mode"
+#define MSG_BUNDLE_KEY_DESTROY                 "destroy"
+#define MSG_BUNDLE_KEY_NUMBER                  "number"
+#define MSG_BUNDLE_KEY_MAX                             "max"
+#define MSG_BUNDLE_KEY_PWD_RESULT              "Result"
+#define MSG_BUNDLE_KEY_FROM                            "from"
+#define MSG_BUNDLE_KEY_LAYOUT                  "layout"
+#define MSG_BUNDLE_KEY_RESULT_TYPE             "result_type"
+
+#define MSG_BUNDLE_KEY_VCALL_TYPE              "KEY_CALL_TYPE"
+#define MSG_BUNDLE_KEY_VCALL_HANDLE            "KEY_CALL_HANDLE"
+#define MSG_BUNDLE_KEY_VCALL_PARTY_NUM "KEY_CALLING_PARTY_NUMBER"
+#define MSG_BUNDLE_KEY_VCALL_CLI_CAUSE "KEY_CLI_CAUSE"
+#define MSG_BUNDLE_KEY_VCALL_FORWARDED "KEY_FORWARDED"
+#define MSG_BUNDLE_KEY_SYSPOPUP_CONTENT "_SYSPOPUP_CONTENT_"
+
+#define MSG_BUNDLE_KEY_CHECK_CALLEE            "CHECK_CALLEE"
+#define MSG_BUNDLE_KEY_SHOW_LIST               "show_list"
+#define MSG_BUNDLE_KEY_EMERGENCY_MODE  "emergency_mode"
+#define MSG_BUNDLE_VALUE_SIM_LIST_SHOW "sim_list_show"
+#define MSG_BUNDLE_VALUE_SIM_SETTING   "sim_setting"
+
+/* contact bundle key */
+#define MSG_CT_UG_BUNDLE_TYPE "type"
+#define MSG_CT_UG_BUNDLE_RESULT_TYPE "result_type"
+#define MSG_CT_UG_BUNDLE_MAX "ct_max"
+#define MSG_CT_UG_BUNDLE_EMAIL "ct_email"
+#define MSG_CT_UG_BUNDLE_NUM "ct_num"
+#define MSG_CT_UG_BUNDLE_ID "person_id"
+#define MSG_CT_UG_BUNDLE_PERSON_INFO "person_info"
+
+#define MSG_BUNDLE_VALUE_CT_UG_NO_LOGS "no_logs"
+
+/* Bundle value name */
+#define MSG_BUNDLE_VALUE_COMPOSE               "compose"
+#define MSG_BUNDLE_VALUE_NORMAL_COMPOSER               "normal_composer" /* it is value of MSG_BUNDLE_KEY_VIEW_TYPE */
+#define MSG_BUNDLE_VALUE_SMS_URI               "sms"
+#define MSG_BUNDLE_VALUE_MMS_URI               "mmsto"
+#define MSG_BUNDLE_VALUE_MMS_URI_UPPER "MMSTO"
+#define MSG_BUNDLE_VALUE_FILE_URI              "file"
+#define MSG_BUNDLE_VALUE_FILE_URI_FULL "file://"
+#define MSG_BUNDLE_VALUE_BODY_URI              "body"
+#define MSG_BUNDLE_VALUE_NEW_MSG               "new_msg"
+#define MSG_BUNDLE_VALUE_SEND_FAILED_MSG       "send_failed_msg"
+#define MSG_BUNDLE_VALUE_MSG_ID                        "msg_id"
+#define MSG_BUNDLE_VALUE_INTERNAL              "internal"
+#define MSG_BUNDLE_VALUE_EDIT                  "edit"
+#define MSG_BUNDLE_VALUE_FORWARD               "forward"
+#define MSG_BUNDLE_VALUE_REPLY                 "reply"
+#define MSG_BUNDLE_VALUE_RESEND                        "resend"
+#define MSG_BUNDLE_VALUE_CANCEL_MSG            "cancel_msg"
+#define MSG_BUNDLE_VALUE_REFRESH_CONV          "refresh_conv"
+#define MSG_BUNDLE_VALUE_REMOVE_CONV           "remove_conv"
+#define MSG_BUNDLE_VALUE_COPY_TO_SIM           "copy_to_sim"
+#define MSG_BUNDLE_VALUE_NORMAL                        "normal"
+#define MSG_BUNDLE_VALUE_REPORT                        "report"
+#define MSG_BUNDLE_VALUE_ADD_RECIPIENT "add_recipient"
+#define MSG_BUNDLE_VALUE_BUBBLE                        "bubble"
+
+#define MSG_BUNDLE_VALUE_SOUND                 "SOUND"
+#define MSG_BUNDLE_VALUE_MULTI_FILE            "MULTI_FILE"
+#define MSG_BUNDLE_VALUE_SINGLE_FILE           "SINGLE_FILE"
+#define MSG_BUNDLE_VALUE_OTHERS                "OTHERS"
+#define MSG_BUNDLE_VALUE_FILE                  "file"
+#define MSG_BUNDLE_VALUE_TEXT                  "text"
+#define MSG_BUNDLE_VALUE_SELECT                "select"
+#define MSG_BUNDLE_VALUE_TEXTONLY              "textonly"
+
+#define MSG_BUNDLE_VALUE_GET                   "get"
+
+#define MSG_BUNDLE_VALUE_SEARCH_MODE                   "search_mode"
+#define MSG_BUNDLE_VALUE_NO_CONTENT                    "no_content"
+
+#define MSG_BUNDLE_VALUE_DEL_ALL               "del_all"
+#define MSG_BUNDLE_VALUE_DEL_BUBBLE            "bubble_delete"
+#define MSG_BUNDLE_VALUE_FORWARDED             "forwarded"
+#define MSG_BUNDLE_VALUE_MODE_CHANGE   "mode_change"
+#define MSG_BUNDLE_VALUE_RESTORE               "restore"
+
+
+
+#define MSG_BUNDLE_VALUE_DESTROY               "destroy"
+#define MSG_BUNDLE_VALUE_ERROR                 "error"
+#define MSG_BUNDLE_VALUE_SENT                  "sent"
+#define MSG_BUNDLE_VALUE_RESET         "reset"
+#define MSG_BUNDLE_VALUE_FOCUS_IN      "focus_in"
+
+#define MSG_BUNDLE_VALUE_VGA           "VGA"
+#define MSG_BUNDLE_VALUE_QCIF          "QCIF"
+#define MSG_BUNDLE_VALUE_LOW           "LOW"
+
+#define MSG_BUNDLE_VALUE_PREVIEW_MODE  "preview_mode"
+#define MSG_BUNDLE_VALUE_CALENDAR_MAX  "10"
+
+#define MSG_BUNDLE_VALUE_EMAIL_COMPOSE "5"
+
+#define MSG_BUNDLE_VALUE_CALL_MO               "MO"    /* "MO" : normal call, "EMERGENCY" : emergency call */
+#define MSG_BUNDLE_VALUE_VCALL_MO              "mo"
+#define MSG_BUNDLE_VALUE_VCALL_HANDLE  "1"
+#define MSG_BUNDLE_VALUE_VCALL_FALSE           "-1"
+#define MSG_BUNDLE_VALUE_AUTO_REJECT_LIST      "1"
+#define MSG_BUNDLE_VALUE_CONTACT_CHECK_LIST    "46"
+
+#define MSG_BUNDLE_VALUE_DRM_WITHOUT_FL        "DRM_WITHOUT_FL"
+
+#define MSG_BUNDLE_VALUE_SPAM_SETTING  "spam_setting"
+
+#define MSG_BUNDLE_VALUE_PAGE_NEXT     "page_next"
+#define MSG_BUNDLE_VALUE_PAGE_PREV     "page_prev"
+#define MSG_BUNDLE_VALUE_SPAM_MSG              "spam_msgbox"
+#define MSG_BUNDLE_VALUE_SIM_MSG               "sim_msgbox"
+#define MSG_BUNDLE_VALUE_CB_MSG                        "cb_msgbox"
+#define MSG_BUNDLE_VALUE_SCHEDULED_MSG "scheduled_msgbox"
+#define MSG_BUNDLE_VALUE_PROTECTED_SUMMARY_MMS "protected_summary_mms"
+#define MSG_BUNDLE_VALUE_SCHEDULED_SUMMARY_MMS "scheduled_summary_mms"
+#define MSG_BUNDLE_VALUE_SPAM_SUMMARY_MMS "spam_summary_mms"
+#define MSG_BUNDLE_VALUE_NORMAL_SUMMARY_MMS "normal_summary_mms"
+
+#define MSG_BUNDLE_VALUE_INDICATOR             "indicator"
+#define MSG_BUNDLE_VALUE_NO_INDICATOR          "no_indicator"
+
+#define MSG_BUNDLE_VALUE_YES           "YES"   /* YES : ungrab key when UG is destroyed */
+
+#define MSG_BUNDLE_VALUE_KEYPAD_SHOW           "KEYPAD_SHOW"
+#define MSG_BUNDLE_VALUE_KEYPAD_HIDE           "KEYPAD_HIDE"
+
+#define MSG_BUNDLE_VALUE_LIST_SHOW     "list_show"
+
+#define MSG_BUNDLE_VALUE_DEFAULT_RINGTONE_PATH         "/opt/usr/share/settings/Alerts/Whistle.ogg"
+
+enum MSG_CT_UG_DETAILS_TYPE {
+       MSG_CT_UG_REQUEST_DETAIL = 0,
+       MSG_CT_UG_REQUEST_EDIT = 11,
+
+       MSG_CT_UG_REQUEST_ADD = 21,
+       MSG_CT_UG_REQUEST_ADD_WITH_NUM = 22,
+       MSG_CT_UG_REQUEST_ADD_WITH_EMAIL = 23,
+       MSG_CT_UG_REQUEST_ADD_WITH_WEB = 24,
+};
+
+enum MSG_CT_UG_LIST_TYPE {
+       MSG_CT_UG_REQUEST_LIST = 0,
+       MSG_CT_UG_REQUEST_LIST_WITH_BACK = 1,
+
+       MSG_CT_UG_REQUEST_SELECT_CONTACT = 11,
+       MSG_CT_UG_REQUEST_SELECT_NUMBER = 12,
+       MSG_CT_UG_REQUEST_SELECT_EMAIL = 13,
+       MSG_CT_UG_REQUEST_SELECT_VCARD = 14,
+       MSG_CT_UG_REQUEST_SELECT_CONTACT_ADD_TO_HOME = 15,
+       MSG_CT_UG_REQUEST_SELECT_GROUP_ADD_TO_HOME = 16,
+       MSG_CT_UG_REQUEST_SELECT_NUMBER_OR_EMAIL = 17,
+       MSG_CT_UG_REQUEST_SELECT_GROUP = 18,
+
+       MSG_CT_UG_REQUEST_UPDATE_CONTACT = 20,
+       MSG_CT_UG_REQUEST_UPDATE_WITH_NUM = 21,
+       MSG_CT_UG_REQUEST_UPDATE_WITH_EMAIL = 22,
+       MSG_CT_UG_REQUEST_UPDATE_WITH_WEB = 23,
+
+       MSG_CT_UG_REQUEST_CHECK = 31,
+       MSG_CT_UG_REQUEST_CHECK_FOR_NUMBER = 32,
+       MSG_CT_UG_REQUEST_CHECK_FOR_EMAIL = 33,
+       MSG_CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL = 34,
+
+       MSG_CT_UG_REQUEST_CHECK_GROUP = 36,
+       MSG_CT_UG_REQUEST_CHECK_GROUP_FOR_NUMBER = 37,
+       MSG_CT_UG_REQUEST_CHECK_GROUP_FOR_EMAIL = 38,
+
+       MSG_CT_UG_REQUEST_SAVE_IMG = 41,
+       MSG_CT_UG_REQUEST_SAVE_RINGTONE = 42,
+
+       MSG_CT_UG_REQUEST_SHARE_CONTACT_INFO = 61,
+
+       MSG_CT_UG_REQUEST_GROUP_DETAIL = 71,
+       MSG_CT_UG_REQUEST_GROUP_DETAIL_WITH_OPTION = 72,
+};
+
+
+/* contact result */
+#define MSG_CT_UG_BUNDLE_RESULT_NUMBER_ID "num_id"
+#define MSG_CT_UG_BUNDLE_RESULT_NUMBER_ID_LIST "num_id_list"
+#define MSG_CT_UG_BUNDLE_RESULT_EMAIL_ID_LIST "email_id_list"
+#define MSG_CT_UG_BUNDLE_RESULT_PERSON_ID_LIST "person_id_list"
+#define MSG_CT_UG_BUNDLE_RESULT_CONTACTS_SHARING_OP    "contact_sharing_settings"
+
+
+#endif /* __MSG_BUNDLE_H__ */
+
diff --git a/common/msg-ui-color.h b/common/msg-ui-color.h
new file mode 100644 (file)
index 0000000..88ed4ad
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef MSG_UI_COLOR_H_
+#define MSG_UI_COLOR_H_
+
+#define BUBBLE_NAVI_TITLE_HEIGHT_POTRAIT 120
+#define BUBBLE_NAVI_TITLE_HEIGHT_LANDSCAPE 120
+#define BUBBLE_NAVI_TITLE_COLOR 250 250 250 255
+#define BUBBLE_NAVI_TITLE_TEXT_COLOR 46 139 153 255
+#define BUBBLE_NAVI_TITLE_ARROW_COLOR 61 185 204 255
+#define BUBBLE_NAVI_TITLE_ARROW_PRESSED_COLOR 46 139 153 255
+#define BUBBLE_NAVI_TITLE_SELECT_ALL_COLOR 61 185 204 255
+
+#define BUBBLE_NAVI_TITLE_TEXT_COLOR_WHITE 250 250 250 222
+#define BUBBLE_NAVI_TITLE_TEXT_PRESSED_COLOR_WHITE 250 250 250 255
+#define BUBBLE_NAVI_TITLE_TEXT_DIMMED_COLOR_WHITE 250 250 250 115
+
+#define BUBBLE_BACKGROUND_COLOR_EDC 250 250 250 255
+#define BUBBLE_BADGE_IMAGE_COLOR_EDC 250 250 250 255
+#define BUBBLE_BADGE_DRAFT_BG_COLOR_EDC 106 126 204 255
+#define BUBBLE_BADGE_FAILED_BG_COLOR_EDC 224 34 34 255
+
+#define BUBBLE_DATELINE_DIVIDER_COLOR_EDC 0 0 0 51
+#define BUBBLE_DATELINE_TEXT_COLOR_EDC 128 128 128 255
+
+#define COLOR_BLACK_EDC                        0 0 0 255
+#define COLOR_BLACK_TRANSPARENT_EDC 0 0 0 204
+#define COLOR_WHITE_EDC                        255 255 255 255
+#define COLOR_GRAY_EDC                                 245 245 242 255
+#define COLOR_DARK_GRAY_EDC            213 213 212 255
+#define COLOR_BLUE_EDC                         2 61 132 255
+#define COLOR_DARK_BLUE_EDC            1 37 79 255
+#define COLOR_BLUE_TRANSPARENT_EDC     179 197 218 255
+#define COLOR_RED_EDC                          224 33 33 255
+#define COLOR_BUBBLE_LINE_EDC          78 97 173 255
+#define COLOR_SEND_BUTTON_EDC          78 97 173 255
+#define COLOR_SEND_BUTTON_PRESSED_EDC 55 69 122 255
+#define COLOR_SEND_BUTTON_DIMMED_EDC 131 145 201 255
+#define COLOR_LINE_INPUT_EDC           78 97 173 255
+#define COLOR_LINE_BODY_DIVIDER_EDC 216 219 235 255
+
+/* colors */
+#define COLOR_BLACK                    0, 0, 0, 255
+#define COLOR_BLACK_TRANSPARENT 0, 0, 0, 204
+#define COLOR_WHITE                            255, 255, 255, 255
+#define COLOR_WHITE_TRANSPARENT1 255, 255, 255, 230
+#define COLOR_WHITE_TRANSPARENT2 255, 255, 255, 204
+#define COLOR_GRAY                             245, 245, 242, 255
+#define COLOR_DARK_GRAY                        213, 213, 212, 255
+#define COLOR_BLUE                             61, 185, 204, 255
+#define COLOR_DARK_BLUE                        1, 37, 79, 255
+#define COLOR_BLUE_TRANSPARENT 179, 197, 218, 255
+#define COLOR_RED                              224, 33, 33, 255
+#define COLOR_SEND_BUTTON              78, 97, 173, 255
+#define COLOR_SEND_BUTTON_PRESSED 55, 69, 122, 255
+#define COLOR_SEND_BUTTON_DIMMED 131, 145, 201, 255
+
+#define COLOR_ADD_BUTTON                               COLOR_SEND_BUTTON
+#define COLOR_ADD_BUTTON_PRESSED               COLOR_SEND_BUTTON_PRESSED
+#define COLOR_ADD_BUTTON_DIMMED                COLOR_SEND_BUTTON_DIMMED
+
+#define BUBBLE_BACKGROUND_COLOR 250, 250, 250, 255
+
+#define COLOR_CONV_BUBBLE_RECIEVE 65 197 217 255
+#define COLOR_CONV_BUBBLE_RECIEVE_PRESSED 50 152 166 255
+
+#define COLOR_CONV_BUBBLE_SEND 90 111 199 230
+#define COLOR_CONV_BUBBLE_SEND_PRESSED 67 84 148 230
+
+#define COLOR_CONV_BUBBLE_DRAFT 106 126 204 255
+#define COLOR_CONV_BUBBLE_DRAFT_PRESED 80 95 153 255
+
+#define COLOR_CONV_BUBBLE_FAILED 0 0 0 102
+#define COLOR_CONV_BUBBLE_FAILED_PRESSED 0 0 0 153
+
+#define BUBBLE_TIME_TEXT_COLOR BUBBLE_DATELINE_TEXT_COLOR_EDC
+#define SENDBUTTON_CHARCOUNT_TEXT_COLOR 128 128 128 255
+
+#define COLOR_BUTTON                   61, 185, 204, 255
+#define COLOR_BUTTON_PRESSED   46, 139, 153, 255
+
+#endif /* MSG_UI_COLOR_H_ */
diff --git a/common/msg-ui-common-app-control.h b/common/msg-ui-common-app-control.h
new file mode 100644 (file)
index 0000000..2d4dcc0
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef MSG_UI_COMMON_APP_CONTROL_H_
+#define MSG_UI_COMMON_APP_CONTROL_H_
+
+// Delete this defines after adding them to app_control header
+#define APP_CONTROL_OPERATION_ADD "http://tizen.org/appcontrol/operation/add"
+#define APP_CONTROL_MIME_CONTACT "application/vnd.tizen.contact"
+#define APP_CONTROL_DATA_LIMIT "http://tizen.org/appcontrol/data/limit"
+
+#define APP_CONTROL_DATA_RESULT_TYPE "http://tizen.org/appcontrol/data/type"
+#define APP_CONTROL_DATA_ITEM_ID "http://tizen.org/appcontrol/data/item_id"
+#define APP_CONTROL_DATA_PHONE "http://tizen.org/appcontrol/data/phone"
+#define APP_CONTROL_DATA_EMAIL "http://tizen.org/appcontrol/data/email"
+#define APP_CONTROL_DATA_VCS_PATH "http://tizen.org/appcontrol/data/vcs_path"
+#define APP_CONTROL_DATA_SELECTED "http://tizen.org/appcontrol/data/selected"
+#define APP_CONTROL_TOTAL_SIZE "http://tizen.org/appcontrol/data/total_size"
+#define APP_CONTROL_TOTAL_COUNT "http://tizen.org/appcontrol/data/total_count"
+
+
+#define APP_CONTROL_DATA_SELECTION_MODE_SINGLE "single"
+#define APP_CONTROL_DATA_SELECTION_MODE_MULTIPLE "multiple"
+#define APP_CONTROL_DATA_RESULT_TYPE_ITEM_ID "item_id"
+#define APP_CONTROL_DATA_RESULT_TYPE_PHONE "phone"
+#define APP_CONTROL_MY_PROFILE_DATA_TYPE "my_profile"
+
+#define APP_CONTROL_DATA_RESULT_TYPE_EMAIL "email"
+#define APP_CONTROL_DATA_RESULT_TYPE_VCARD "vcard"
+
+
+// Delete this defines after adding to app_control ]
+
+#endif /* MSG_UI_COMMON_APP_CONTROL_H_ */
diff --git a/common/msg-ui-common-utility.c b/common/msg-ui-common-utility.c
new file mode 100755 (executable)
index 0000000..a316cf0
--- /dev/null
@@ -0,0 +1,5005 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*=================
+ * INCLUDE HEADERS
+ * ================= */
+#include <msg-ui-util.h>
+#include <msg-ui-common-utility.h>
+#include <msg-system-util.h>
+#include <contacts.h>
+#include <msg-ui-content-utility.h>
+#include <msg-ui-image-resource.h>
+#include <msg-ui-smil-interface.h>
+#include <msg-ui-db-util.h>
+#include <msg_storage.h>
+#include <sys/vfs.h>
+#ifdef MSG_USE_ELM_WIDGET_HEADER
+#include <elm_widget.h>
+#endif
+/* for i18n */
+#include <utils_i18n_ustring.h>
+#include <utils_i18n_ulocale.h>
+#include <utils_i18n_udatepg.h>
+#include <utils_i18n_udate.h>
+
+#include <stdlib.h>
+#include <bundle.h>
+#include <storage.h>
+
+#include <notification_status.h>
+#include <notification.h>
+#include <efl_extension.h>
+#include "msg-system-util.h"
+#include <app_control.h>
+#include <app_control_internal.h>
+#include <telephony.h>
+
+#include "msg-ui-common-app-control.h"
+
+#define MSG_COMMON_BUBBLE_MIXED_MSG_MAX_SIZE (10*1024)
+
+#define MSG_COMMON_BUBBLE_SCHEDULED_ICON_WIDTH 34
+#define MSG_COMMON_BUBBLE_SCHEDULED_ICON_HEIGHT 34
+
+#define MSG_COMMON_BUBBLE_BADGE_WIDTH 29
+#define MSG_COMMON_BUBBLE_BADGE_HEIGHT 29
+#define MSG_COMMON_BUBBLE_BADGE_PADDING 8
+
+#define MSG_COMMON_BUBBLE_MIN_WIDTH_PORTRAIT   480
+#define MSG_COMMON_BUBBLE_MIN_WIDTH_LADNSCAPE  800
+#define MSG_COMMON_BUBBLE_MIN_HEIGHT                   48
+#define MSG_COMMON_THUMBNAIL_SIZE                              60
+#define MSG_COMMON_BUBBLE_ATTACH_TEMPLATE_SIZE  36
+
+#define MSG_COMMON_ADD_SELF_NUM(text_data, self_ph_num) \
+       eina_strbuf_append(text_data, " "); \
+       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_ME")); \
+       eina_strbuf_append(text_data, " ("); \
+       eina_strbuf_append(text_data, self_ph_num); \
+       eina_strbuf_append(text_data, ")");
+
+i18n_udate_format_h g_last_date_format = NULL;
+char *g_last_locale = NULL;
+i18n_uchar *g_last_pattern = NULL;
+
+static char *icon_array[MSG_APP_FILE_TYPE_MAX] = {
+       [MSG_APP_FILE_TYPE_IMAGE] = MSG_COMMON_FILE_IMAGE_ICON,
+       [MSG_APP_FILE_TYPE_VIDEO] = MSG_COMMON_FILE_VIDEO_ICON,
+       [MSG_APP_FILE_TYPE_MUSIC] = MSG_COMMON_FILE_MUSIC_ICON,
+       [MSG_APP_FILE_TYPE_PDF] = MSG_COMMON_FILE_PDF_ICON,
+       [MSG_APP_FILE_TYPE_DOC] = MSG_COMMON_FILE_DOC_ICON,
+       [MSG_APP_FILE_TYPE_PPT] = MSG_COMMON_FILE_PPT_ICON,
+       [MSG_APP_FILE_TYPE_EXCEL] = MSG_COMMON_FILE_EXCEL_ICON,
+       [MSG_APP_FILE_TYPE_VOICE] = MSG_COMMON_FILE_VOICE_ICON,
+       [MSG_APP_FILE_TYPE_HTML] = MSG_COMMON_FILE_HTML_ICON,
+       [MSG_APP_FILE_TYPE_FLASH] = MSG_COMMON_FILE_FLASH_ICON,
+       [MSG_APP_FILE_TYPE_TXT] = MSG_COMMON_FILE_TXT_ICON,
+       [MSG_APP_FILE_TYPE_VCONTACT] = MSG_COMMON_FILE_VCONTACT_ICON,
+       [MSG_APP_FILE_TYPE_VCALENDAR] = MSG_COMMON_FILE_VCALENDAR_ICON,
+       [MSG_APP_FILE_TYPE_SVG] = MSG_COMMON_FILE_SVG_ICON,
+       [MSG_APP_FILE_TYPE_RSS] = MSG_COMMON_FILE_RSS_ICON,
+       [MSG_APP_FILE_TYPE_HWP] = MSG_COMMON_FILE_HWP_ICON,
+       [MSG_APP_FILE_TYPE_EMAIL] = MSG_COMMON_FILE_EMAIL_ICON,
+       [MSG_APP_FILE_TYPE_DRM] = MSG_COMMON_FILE_DRM_ICON,
+       [MSG_APP_FILE_TYPE_TPK] = MSG_COMMON_FILE_TPK_ICON,
+       [MSG_APP_FILE_TYPE_ZIP] = MSG_COMMON_FILE_ZIP_ICON,
+       [MSG_APP_FILE_TYPE_ETC] = MSG_COMMON_FILE_ETC_ICON,
+};
+
+static char *bubble_bg_style_name[BUBBLE_BACKGROUND_STYLE_MAX] = {
+       [BUBBLE_BACKGROUND_STYLE_DEFAULT] = MSG_BUBBLE_BG_STYLE_DEFAULT
+};
+
+static char *recv_bubble_style_name[BUBBLE_RECV_STYLE_MAX] = {
+       [BUBBLE_RECV_STYLE_01] = MSG_BUBBLE_STYLE_RECV_01
+};
+
+static char *sent_bubble_style_name[BUBBLE_SENT_STYLE_MAX] = {
+       [BUBBLE_SENT_STYLE_01] = MSG_BUBBLE_STYLE_SENT_01
+};
+
+static char *sent_failed_bubble_style_name[BUBBLE_SENT_STYLE_MAX] = {
+       [BUBBLE_SENT_STYLE_01] = MSG_BUBBLE_STYLE_SENT_FAILED_01
+};
+
+static MSG_COMMON_EMOTICON_S emotion_name_table[MSG_APP_EMOTICON_MAX] = {
+       [MSG_APP_EMOTICON_HAPPY] = {"emoticon/happy", ":-)"},
+       [MSG_APP_EMOTICON_SORRY] = {"emoticon/sorry", ":-("},
+       [MSG_APP_EMOTICON_WINK] = {"emoticon/wink", ";-)"},
+       [MSG_APP_EMOTICON_TONGUE_DANGLING] = {"emoticon/tongue-dangling", ":-P"},
+       [MSG_APP_EMOTICON_SUPRISED] = {"emoticon/surprised", "=-O"},
+       [MSG_APP_EMOTICON_KISS] = {"emoticon/kiss", ":-*"},
+       [MSG_APP_EMOTICON_ANGRY_SHOUT] = {"emoticon/angry-shout", ":O"},
+       [MSG_APP_EMOTICON_SMILE] = {"emoticon/smile", "B-)"},
+       [MSG_APP_EMOTICON_OMG] = {"emoticon/omg", ":-["},
+       [MSG_APP_EMOTICON_LITTLE_BIT_SORRY] = {"emoticon/little-bit-sorry", ":-\\"},
+       [MSG_APP_EMOTICON_VERY_SORRY] = {"emoticon/very-sorry", ":'("},
+       [MSG_APP_EMOTICON_GUILTY] = {"emoticon/guilty", ":-X"},
+       [MSG_APP_EMOTICON_HAHA] = {"emoticon/haha", ":-D"},
+       [MSG_APP_EMOTICON_WORRIED] = {"emoticon/worried", "o_O"},
+       [MSG_APP_EMOTICON_LOVE] = {"emoticon/love", "&lt;3"}, /*<3*/
+       [MSG_APP_EMOTICON_EVIL] = {"emoticon/angry", "x-("},
+       [MSG_APP_EMOTICON_HALF_SMILE] = {"emoticon/half-smile", ":-/"},
+       [MSG_APP_EMOTICON_MINIMAL_SMILE] = {"emoticon/minimal-smile", ":-|"},
+};
+
+typedef struct {
+       int     status;
+       time_t time;
+} MSG_DETAIL_REPORT_STRUCT;
+
+typedef struct {
+       char address[MAX_ADDRESS_VAL_LEN+1];
+       MSG_DETAIL_REPORT_STRUCT delivery;
+       MSG_DETAIL_REPORT_STRUCT read;
+} MSG_DETAIL_REPORT_LIST_S;
+
+static void _preference_test_set_int(const char *key, int val);
+static void _naviframe_back_button_cb(void *data, Evas_Object *obj, void *event_info);
+static char *_get_thumbnail_by_addr(const char *addr, int address_type);
+static char *_get_thumbail_by_profile();
+
+Evas_Coord down_x_pos, down_y_pos;
+
+/*==========================
+ * FUNCTION IMPLEMENTATIONS
+ *========================== */
+
+__EXPORT_API__ char *msg_common_DID_to_string(char *DID)
+{
+       D_MSG_RETVM_IF(!DID, NULL, "str is NULL");
+
+       if (strstr(DID, "IDS_COM"))
+               return dgettext("sys_string", DID);
+       else if (strstr(DID, "IDS_MSG"))
+               return dgettext(MESSAGE_PKGNAME, DID);
+
+       return DID;
+}
+
+__EXPORT_API__ char *msg_common_make_normalized_number(const char *src)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(src == NULL, NULL, "src is NULL");
+
+       char *normalized_number = NULL;
+       char *ptr = NULL;
+       const char *number_type_list[] = {" ", "/", "-", "(", ")"};
+       int number_type_list_cnt = sizeof(number_type_list)/sizeof(number_type_list[0]);
+       int src_len = strlen(src);
+       int i = 0;
+       bool is_number_type = false;
+
+       /* check number type */
+       for (i = 0; i < number_type_list_cnt; i++) {
+               ptr = strstr(src, number_type_list[i]);
+               if (ptr) {
+                       is_number_type = true;
+                       break;
+               }
+       }
+
+       /* make normalized number */
+       if (src_len && is_number_type) {
+               normalized_number = (char *)calloc(src_len + 1, sizeof(char));
+               if (!normalized_number) {
+                       D_EMSG("calloc is failed %s", strerror(errno));
+               } else {
+                       const char *oneChar = src;
+                       int d_pos = 0;
+
+                       while (*oneChar) {
+                               if (isdigit(*oneChar) || (*oneChar == '*') || (*oneChar == '#') || (*oneChar == '+')) {
+                                       normalized_number[d_pos] = *oneChar;
+                                       ++d_pos;
+                               }
+
+                               ++oneChar;
+                       }
+
+                       normalized_number[d_pos] = '\0';
+
+                       return normalized_number;
+               }
+       }
+
+       return NULL;
+}
+
+__EXPORT_API__ const char *msg_common_get_default_locale()
+{
+       const char *locale = NULL;
+
+       /* ICU API to set default locale */
+       i18n_ulocale_set_default(getenv("LC_TIME"));
+       i18n_ulocale_get_default(&locale);
+       strtok((char *)locale, ".UTF8");
+
+       return locale;
+}
+
+__EXPORT_API__ char *msg_common_get_timezone()
+{
+       char buf[DEF_BUF_LEN*2] = {0,};
+       ssize_t len = readlink("/opt/etc/localtime", buf, sizeof(buf)-1);
+
+       if (len != -1) {
+               buf[len] = '\0';
+       } else {
+               char *time_zone = NULL;
+
+               D_EMSG("Getting default timezone failed, use system settings value");
+               system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, &time_zone);
+               return time_zone;
+       }
+
+       return g_strdup(buf+20);
+}
+
+__EXPORT_API__ int msg_common_get_timeformat()
+{
+       bool timeformat = false;
+
+       if (system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, &timeformat) < 0)
+               return MSG_TIME_FORMAT_UNKNOWN;
+
+       return timeformat ? MSG_TIME_FORMAT_24H : MSG_TIME_FORMAT_12H;
+}
+
+__EXPORT_API__ char *msg_common_get_date_best_pattern(const char* locale, char* skeleton)
+{
+       D_MSG_RETVM_IF(locale == NULL, NULL, "locale is NULL");
+       D_MSG_RETVM_IF(skeleton == NULL, NULL, "skeleton is NULL");
+
+       i18n_udatepg_h generator = NULL;
+       i18n_uchar bestPattern[MSG_COMMON_MAX_UCHAR_PATTERN_LEN + 1] = {0,};
+       char bestPatternString[MSG_COMMON_MAX_CHAR_PATTERN_LEN + 1] = {0,};
+       int32_t bestPatternCapacity = 0;
+       int bestPatternLen = 0;
+
+       i18n_uchar customSkeleton[MSG_COMMON_MAX_UCHAR_PATTERN_LEN + 1] = {0,};
+       int skeletonLength = 0;
+
+       skeletonLength = strlen(skeleton);
+       /* convert char to uchar */
+       if (skeletonLength <= MSG_COMMON_MAX_UCHAR_PATTERN_LEN)
+               i18n_ustring_copy_ua_n(customSkeleton, skeleton, skeletonLength);
+       else
+               i18n_ustring_copy_ua_n(customSkeleton, skeleton, MSG_COMMON_MAX_UCHAR_PATTERN_LEN);
+
+       i18n_udatepg_create(locale, &generator);
+       bestPatternCapacity = MSG_COMMON_MAX_UCHAR_PATTERN_LEN;
+
+       /* get bestpattern from customskeletom of uchar */
+       skeletonLength = i18n_ustring_get_length(customSkeleton);
+       i18n_udatepg_get_best_pattern(generator, customSkeleton, skeletonLength, bestPattern, bestPatternCapacity, &bestPatternLen);
+
+       /* convert uchar to char to know bestpatternstring */
+       i18n_ustring_copy_au(bestPatternString, bestPattern);
+
+       i18n_udatepg_destroy(generator);
+
+       return strdup(bestPatternString);
+}
+
+static i18n_udate_format_h __msg_get_date_format(const char *locale, const i18n_uchar *pattern, int *status)
+{
+       D_MSG_RETVM_IF(locale == NULL, NULL, "locale is NULL");
+       D_MSG_RETVM_IF(pattern == NULL, NULL, "pattern is NULL");
+
+       if (!g_last_date_format || !g_last_locale || strcmp(locale, g_last_locale) || !g_last_pattern || i18n_ustring_compare(pattern, g_last_pattern)) {
+               if (g_last_date_format)
+                       i18n_udate_destroy(g_last_date_format);
+
+               *status = i18n_udate_create(I18N_UDATE_PATTERN, I18N_UDATE_PATTERN, locale, NULL, -1, pattern, -1, &g_last_date_format);
+
+               if (g_last_locale)
+                       free(g_last_locale);
+               g_last_locale = strdup(locale);
+
+               if (g_last_pattern)
+                       free(g_last_pattern);
+
+               g_last_pattern = malloc((i18n_ustring_get_length(pattern) + 1) * sizeof(i18n_uchar));
+               i18n_ustring_copy(g_last_pattern, pattern);
+       }
+
+       return g_last_date_format;
+}
+
+__EXPORT_API__ void msg_common_delete_last_date_format(void)
+{
+       D_ENTER;
+
+       if (g_last_date_format) {
+               i18n_udate_destroy(g_last_date_format);
+               g_last_date_format = NULL;
+       }
+
+       if (g_last_locale) {
+               free(g_last_locale);
+               g_last_locale = NULL;
+       }
+
+       if (g_last_pattern) {
+               free(g_last_pattern);
+               g_last_pattern = NULL;
+       }
+}
+
+__EXPORT_API__ char *msg_common_get_formatted_date(const char* locale, char* bestPattern, void *time)
+{
+       D_MSG_RETVM_IF(locale == NULL, NULL, "locale is NULL");
+       D_MSG_RETVM_IF(bestPattern == NULL, NULL, "bestPattern is NULL");
+
+       int status = I18N_ERROR_NONE;
+       i18n_udate date;
+       i18n_udate_format_h date_format = NULL;
+       i18n_uchar utimezone_id[DEF_BUF_LEN] = {0,};
+       char *timezone_id = NULL;
+       i18n_uchar uBestPattern[MSG_COMMON_MAX_UCHAR_PATTERN_LEN + 1] = {0,};
+       i18n_uchar formatted[MSG_COMMON_MAX_UCHAR_PATTERN_LEN + 1] = {0,};
+       char formattedString[MSG_COMMON_MAX_CHAR_PATTERN_LEN + 1] = {0,};
+       int32_t formattedCapacity = 0;
+       int formattedLength = 0;
+       int patternLength = 0;
+
+       patternLength = strlen(bestPattern);
+       /* convert char to uchar */
+       if (patternLength <= MSG_COMMON_MAX_UCHAR_PATTERN_LEN)
+               i18n_ustring_copy_ua_n(uBestPattern, bestPattern, patternLength);
+       else
+               i18n_ustring_copy_ua_n(uBestPattern, bestPattern, MSG_COMMON_MAX_UCHAR_PATTERN_LEN);
+
+       /* get current timezone and set as default timezone */
+       timezone_id = msg_common_get_timezone();
+       i18n_ustring_copy_ua(utimezone_id, timezone_id);
+
+       status = i18n_ucalendar_set_default_timezone(utimezone_id);
+       if (status != I18N_ERROR_NONE)
+               D_EMSG("default timezone set error");
+
+       if (timezone_id) {
+               free(timezone_id);
+               timezone_id = NULL;
+       }
+
+       /* convert time_t to UDate, if it is */
+       if (time) {
+               time_t msg_time = *(time_t *) time;
+               date = (i18n_udate) msg_time * 1000; /* Equivalent to Date = i18n_ucalendar_get_now() in Milliseconds */
+       } else {
+               i18n_ucalendar_get_now(&date);
+       }
+
+       date_format = __msg_get_date_format(locale, uBestPattern, &status);
+       formattedCapacity = MSG_COMMON_MAX_UCHAR_PATTERN_LEN;
+       /* get formatted string */
+       i18n_udate_format_date(date_format, date, formatted, formattedCapacity, NULL, &formattedLength);
+       /* convert uchar to char */
+       i18n_ustring_copy_au(formattedString, formatted);
+
+       return strdup(formattedString);
+}
+
+__EXPORT_API__ char *msg_common_get_date_text(const char* locale, char* skeleton, void* time)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(locale == NULL, NULL, "locale is NULL");
+       D_MSG_RETVM_IF(skeleton == NULL, NULL, "skeleton is NULL");
+
+       i18n_uchar customSkeleton[MSG_COMMON_MAX_UCHAR_PATTERN_LEN + 1] = {0,};
+       int skeletonLength = 0;
+
+       skeletonLength = strlen(skeleton);
+       /* convert char to uchar */
+       if (skeletonLength <= MSG_COMMON_MAX_UCHAR_PATTERN_LEN)
+               i18n_ustring_copy_ua_n(customSkeleton, skeleton, skeletonLength);
+       else
+               i18n_ustring_copy_ua_n(customSkeleton, skeleton, MSG_COMMON_MAX_UCHAR_PATTERN_LEN);
+
+       int status = I18N_ERROR_NONE;
+       i18n_udatepg_h generator = NULL;
+       i18n_udate_format_h date_format = NULL;
+       i18n_udate date;
+       i18n_uchar bestPattern[MSG_COMMON_MAX_UCHAR_PATTERN_LEN + 1] = {0,};
+       i18n_uchar formatted[MSG_COMMON_MAX_UCHAR_PATTERN_LEN + 1] = {0,};
+       i18n_uchar utimezone_id[DEF_BUF_LEN] = {0,};
+       char *timezone_id = NULL;
+       char bestPatternString[MSG_COMMON_MAX_CHAR_PATTERN_LEN + 1] = {0,};
+       char formattedString[MSG_COMMON_MAX_CHAR_PATTERN_LEN + 1] = {0,};
+       int32_t bestPatternCapacity = 0;
+       int32_t formattedCapacity = 0;
+       int formattedLen = 0;
+       int bestPatternLen = 0;
+
+       status = i18n_udatepg_create(locale, &generator);
+       bestPatternCapacity = MSG_COMMON_MAX_UCHAR_PATTERN_LEN;
+
+       /* get current timezone and set as default timezone */
+       timezone_id = msg_common_get_timezone();
+       i18n_ustring_copy_ua(utimezone_id, timezone_id);
+
+       status = i18n_ucalendar_set_default_timezone(utimezone_id);
+       if (status != I18N_ERROR_NONE)
+               D_EMSG("default timezone set error");
+
+       if (timezone_id) {
+               free(timezone_id);
+               timezone_id = NULL;
+       }
+
+       /* get bestpattern from customskeletom of uchar */
+       status = i18n_udatepg_get_best_pattern(generator, customSkeleton, i18n_ustring_get_length(customSkeleton), bestPattern, bestPatternCapacity, &bestPatternLen);
+
+       /* convert uchar to char to know bestpatternstring */
+       i18n_ustring_copy_au(bestPatternString, bestPattern);
+
+       /* convert time_t to UDate, if it is */
+       if (time) {
+               time_t msg_time = *(time_t *) time;
+               date = (i18n_udate) msg_time * 1000; /* Equivalent to Date = i18n_ucalendar_get_now() in Milliseconds */
+       } else
+               i18n_ucalendar_get_now(&date);
+
+       date_format = __msg_get_date_format(locale, bestPattern, &status);
+       formattedCapacity = MSG_COMMON_MAX_UCHAR_PATTERN_LEN;
+       /* get formatted string */
+       status = i18n_udate_format_date(date_format, date, formatted, formattedCapacity, NULL, &formattedLen);
+       /* convert uchar to char */
+       i18n_ustring_copy_au(formattedString, formatted);
+
+       i18n_udatepg_destroy(generator);
+
+       return strdup(formattedString);
+}
+
+__EXPORT_API__ char *msg_common_get_display_date(const char* locale, char* yearPattern, time_t *msg_t)
+{
+       char msg_date_buf[DEF_BUF_LEN] = { '0', };
+       char *date_str = NULL;
+
+       date_str = msg_common_get_formatted_date(locale, yearPattern, msg_t);
+
+       strncpy(msg_date_buf, date_str, sizeof(msg_date_buf) - 1);
+
+       free(date_str);
+       return strdup(msg_date_buf);
+}
+
+__EXPORT_API__ char *msg_common_convert_cr_to_nl(char *src_text)
+{
+       char *org_text = src_text;
+
+       char *token = strchr(src_text, '\r');
+
+       while (token) {
+               /* When a message is received from Windows Mobile phone, only CR('\r') is inserted.
+                * It is ignored in elm_entry_utf8_to_markup(). Therefore, "Enter" doesn't work.
+                * If only '\r' exist, it should be converted to LF('\n').
+                */
+               if (token[0] == '\r') {
+                       if (token[1] != '\n')
+                               token[0] = '\n';
+                       else
+                               token++;
+               }
+
+               token = strchr(token, '\r');
+       }
+
+       return org_text;
+}
+
+static int __msg_common_find_emoticon(char **src_text)
+{
+       while (**src_text != '\0') {
+               switch (**src_text) {
+               case ':':
+                       if (strncmp(":-)", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_HAPPY;
+                       else if (strncmp(":-(", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_SORRY;
+                       else if (strncmp(":-P", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_TONGUE_DANGLING;
+                       else if (strncmp(":-*", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_KISS;
+                       else if (strncmp(":O", *src_text, 2) == 0)
+                               return MSG_APP_EMOTICON_ANGRY_SHOUT;
+                       else if (strncmp(":-[", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_OMG;
+                       else if (strncmp(":-\\", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_LITTLE_BIT_SORRY;
+                       else if (strncmp(":'(", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_VERY_SORRY;
+                       else if (strncmp(":-X", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_GUILTY;
+                       else if (strncmp(":-D", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_HAHA;
+                       else if (strncmp(":-/", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_HALF_SMILE;
+                       else if (strncmp(":-|", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_MINIMAL_SMILE;
+                       break;
+               case ';':
+                       if (strncmp(";-)", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_WINK;
+                       break;
+               case '=':
+                       if (strncmp("=-O", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_SUPRISED;
+                       break;
+               case 'B':
+                       if (strncmp("B-)", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_SMILE;
+                       break;
+               case 'o':
+                       if (strncmp("o_O", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_WORRIED;
+                       break;
+               case 'x':
+                       if (strncmp("x-(", *src_text, 3) == 0)
+                               return MSG_APP_EMOTICON_EVIL;
+                       break;
+               case '&':
+                       if (strncmp("&lt;3", *src_text, 5) == 0)
+                               return MSG_APP_EMOTICON_LOVE;
+                       break;
+               default:
+                       break;
+               }
+               (*src_text)++;
+       }
+       return MSG_APP_EMOTICON_NONE;
+}
+
+static int __msg_common_find_emoticon_origin_string(char **src_text, int* item_length)
+{
+       int i = 0;
+       char *start_item = NULL;
+       char *end_item = NULL;
+       char *emoticon = NULL;
+
+       int start_item_pos = 0;
+       int end_item_pos = 0;
+       int emoticon_pos = 0;
+
+       char href_buf[DEF_BUF_LEN] = {0, };
+
+       start_item = strstr(*src_text, "<item");
+
+       if (start_item)
+               start_item_pos = strlen(*src_text) - strlen(start_item);
+
+       end_item = strchr(*src_text, '>');
+
+       if (end_item)
+               end_item_pos = strlen(*src_text) - strlen(end_item);
+
+       if (start_item_pos >= end_item_pos)
+               return MSG_APP_EMOTICON_NONE;
+
+       for (i = 1; i < MSG_APP_EMOTICON_MAX; i++) {
+               bzero(href_buf, sizeof(href_buf));
+               snprintf(href_buf, sizeof(href_buf), "href=%s", emotion_name_table[i].emoticon_name);
+               emoticon = strstr(*src_text, href_buf);
+               if (emoticon) {
+                       emoticon_pos = strlen(*src_text) - strlen(emoticon);
+
+                       if (emoticon_pos > start_item_pos && emoticon_pos < end_item_pos) {
+                               *src_text += start_item_pos;
+                               *item_length = end_item_pos - start_item_pos + 1;
+                               return i;
+                       }
+               }
+       }
+
+       return MSG_APP_EMOTICON_NONE;
+}
+
+__EXPORT_API__ char *msg_common_apply_emoticon_to_string(const char *src_text)
+{
+       D_MSG_RETVM_IF(!src_text, NULL, "src_text is NULL");
+
+       char *remain_text = (char *)src_text;
+       char *dst_str = NULL;
+
+       Eina_Strbuf *msg_data = eina_strbuf_new();
+
+       while (*remain_text) {
+               char *text_start = remain_text;
+               int emoticon = MSG_APP_EMOTICON_NONE;
+
+               emoticon = __msg_common_find_emoticon(&remain_text);
+
+               if (emoticon != MSG_APP_EMOTICON_NONE) {
+                       eina_strbuf_append_length(msg_data, text_start, remain_text - text_start);
+                       eina_strbuf_append_printf(msg_data, "<item size=32x32 vsize=ascent href=%s></item>", emotion_name_table[emoticon].emoticon_name);
+
+                       remain_text = remain_text + strlen(emotion_name_table[emoticon].text);
+
+                       if (*remain_text == '\0')
+                               break;
+               } else {
+                       eina_strbuf_append(msg_data, text_start);
+                       break;
+               }
+
+       }
+       const char *content = eina_strbuf_string_get(msg_data);
+       D_MSG_RETVM_IF(!content, NULL, "content is NULL");
+       dst_str = strdup(content);
+       eina_strbuf_free(msg_data);
+       return dst_str;
+}
+
+__EXPORT_API__ char *msg_common_convert_emoticon_to_normal_text(const char *src_text)
+{
+       D_MSG_RETVM_IF(!src_text, NULL, "src_text is NULL");
+
+       char *remain_text = (char *)src_text;
+       char *dst_str = NULL;
+
+       Eina_Strbuf *msg_data = eina_strbuf_new();
+
+       while (*remain_text) {
+               char *text_start = remain_text;
+               int emoticon = MSG_APP_EMOTICON_NONE;
+               int emoticon_txt_length = 0;
+
+               emoticon = __msg_common_find_emoticon_origin_string(&remain_text, &emoticon_txt_length);
+
+               if (emoticon != MSG_APP_EMOTICON_NONE) {
+                       eina_strbuf_append_length(msg_data, text_start, remain_text - text_start);
+                       eina_strbuf_append_printf(msg_data, "%s", emotion_name_table[emoticon].text);
+
+                       remain_text = remain_text + emoticon_txt_length;
+
+                       if (strncmp(remain_text, "</item>", strlen("</item>")) == 0) {
+                               remain_text = remain_text + strlen("</item>");
+                       }
+
+                       if (*remain_text == '\0')
+                               break;
+               } else {
+                       eina_strbuf_append(msg_data, text_start);
+                       break;
+               }
+       }
+
+       const char *content = eina_strbuf_string_get(msg_data);
+       D_MSG_RETVM_IF(!content, NULL, "content is NULL");
+       dst_str = strdup(content);
+       eina_strbuf_free(msg_data);
+
+       return dst_str;
+}
+
+__EXPORT_API__ void msg_common_apply_emoticon_to_entry(Evas_Object *entry)
+{
+       D_ENTER;
+
+       if (!entry) {
+               D_EMSG("[ERROR] entry is not exist");
+               return;
+       }
+
+       const char *src_text = elm_entry_entry_get(entry);
+
+       char *dst_str = msg_common_apply_emoticon_to_string(src_text);
+
+       if (dst_str) {
+               elm_entry_entry_set(entry, dst_str);
+               free(dst_str);
+       }
+}
+
+static char *__msg_common_apply_search_result_string(const char *src_text, const char *search_word)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!src_text || !search_word, NULL, "invalid parameter");
+
+       char *dst_str = NULL;
+       char *remain_text = (char *)src_text;
+       int word_len = 0;
+       bool istag = false;
+       bool isAnchor = false;
+       char *markup_search_word = NULL;
+
+       markup_search_word = elm_entry_utf8_to_markup(search_word);
+       D_MSG("markup_search_word = %s", markup_search_word);
+       if (!markup_search_word) {
+               D_EMSG("markup_search_word is NULL");
+               markup_search_word = strdup(search_word);
+       }
+       word_len = strlen(markup_search_word);
+       Eina_Strbuf *msg_text = eina_strbuf_new();
+
+       char *text_start = remain_text;
+       while (*remain_text) {
+               if (isAnchor) {
+                       if (strncmp(remain_text, "/a>", 3) == 0) {
+                               isAnchor = false;
+                               remain_text += 3;
+                       } else {
+                               remain_text++;
+                       }
+               } else if (istag) {
+                       if (*remain_text == '>')
+                               istag = false;
+                       remain_text++;
+               } else {
+                       if (strncmp(remain_text, "<a ", 3) == 0) {
+                               isAnchor = true;
+                               remain_text += 3;
+                               continue;
+                       } else if (*remain_text == '<') {
+                               istag = true;
+                               remain_text++;
+                               continue;
+                       }
+                       if (strncasecmp(remain_text, markup_search_word, word_len) == 0) {
+                               gchar *markup_text = NULL;
+                               char *match_text = NULL;
+                               markup_text =  g_markup_escape_text(remain_text, word_len);
+                               match_text = elm_entry_markup_to_utf8(markup_text);
+                               eina_strbuf_append_length(msg_text, text_start, remain_text - text_start);
+                               if (match_text) {
+                                       eina_strbuf_append_printf(msg_text, "<match>%s</match>", match_text);
+                                       free(match_text);
+                                       match_text = NULL;
+                               } else {
+                                       eina_strbuf_append_printf(msg_text, "<match>%s</match>", markup_text);
+                               }
+
+                               g_free(markup_text);
+
+                               remain_text = remain_text + word_len;
+                               text_start = remain_text;
+
+                       } else {
+                               remain_text++;
+                       }
+               }
+       }
+
+       free(markup_search_word);
+       markup_search_word = NULL;
+
+       eina_strbuf_append(msg_text, text_start);
+
+       const char *content = eina_strbuf_string_get(msg_text);
+       D_MSG_RETVM_IF(!content, NULL, "content is NULL");
+       dst_str = strdup(content);
+       eina_strbuf_free(msg_text);
+
+       D_LEAVE;
+       return dst_str;
+}
+
+__EXPORT_API__ void msg_common_apply_search_result_to_entry(Evas_Object *entry, const char *search_word)
+{
+       D_MSG_RETM_IF(!entry || !search_word, "invalid parameter");
+
+       char *src_text = (char *)elm_entry_entry_get(entry);
+       char *dst_text = NULL;
+       if (src_text) {
+               dst_text = __msg_common_apply_search_result_string(src_text, search_word);
+               if (dst_text) {
+                       elm_entry_entry_set(entry, dst_text);
+                       free(dst_text);
+               }
+               free(src_text);
+       }
+}
+
+__EXPORT_API__ MSG_BOOL msg_common_is_valid_phone_number(const char *address)
+{
+       D_MSG_RETVM_IF(address == NULL, FALSE, "address is NULL");
+
+       int addr_len = 0;
+       addr_len = strlen(address);
+
+       if (addr_len == 0)
+               return FALSE;
+
+       /*  length check phone address should be longer than 2 and shorter than 40 */
+       if (addr_len > 2 && addr_len <= MSG_COMMON_NUMBER_MAX_LEN) {
+               const char *pszOneChar = address;
+
+               if (*pszOneChar == '+')
+                       ++pszOneChar;
+
+               while (*pszOneChar) {
+                       if (!isdigit(*pszOneChar) && (*pszOneChar != '*') && (*pszOneChar != '#'))
+                               return FALSE;
+
+                       ++pszOneChar;
+               }
+
+               return TRUE;
+       } else {
+               D_MSG("invalid address length [%d]", addr_len);
+               return FALSE;
+       }
+}
+
+__EXPORT_API__ MSG_BOOL msg_common_is_valid_email_addr(const char *address)
+{
+       D_MSG_RETVM_IF(address == NULL, FALSE, "address is NULL");
+       char *token1 = NULL;
+       char *token2 = NULL;
+
+       token1 = strchr(address, '@');
+       if (!token1) {
+               D_IMSG("address has no @");
+               return FALSE;
+       }
+
+       if (strchr(&token1[1], '@')) {
+               D_IMSG("address cannot have two more @");
+               return FALSE;
+       }
+
+       token2 = strchr(token1, '.');
+       if (!token2) {
+               D_IMSG("there's no . character");
+               return FALSE;
+       }
+
+       if ((token2 == token1 + 1) || (*(token2 + 1) == '\0')) {
+               D_IMSG("address type should be \'xxx.xxx\'");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+__EXPORT_API__ bool msg_common_is_connected_call(void)
+{
+       D_ENTER;
+       bool res = false;
+       telephony_handle_list_s tel_handle_list;
+       if (telephony_init(&tel_handle_list) == TELEPHONY_ERROR_NONE) {
+               if (tel_handle_list.count > 0)  {
+                       telephony_h tel_handle = tel_handle_list.handle[0];
+
+                       telephony_call_h *call_handles = NULL;
+                       unsigned int call_handles_num = 0;
+
+                       int get_call_list_res = telephony_call_get_call_list(tel_handle, &call_handles_num, &call_handles);
+                       if (get_call_list_res == TELEPHONY_ERROR_NONE) {
+                               D_MSG("telephony_call_get_call_list() succseed, %d call-handles got", call_handles_num)
+
+                               telephony_call_status_e status;
+                               int i = 0;
+                               for (; i < call_handles_num; ++i) {
+                                       if (telephony_call_get_status(call_handles[i], &status) == TELEPHONY_ERROR_NONE) {
+                                               D_MSG("status = %d", status);
+                                               if (status != TELEPHONY_CALL_STATUS_IDLE) {
+                                                       res = true;
+                                                       break;
+                                               }
+                                       }
+                               }
+
+                               telephony_call_release_call_list(call_handles_num, &call_handles);
+                       }
+               }
+
+               telephony_deinit(&tel_handle_list);
+       }
+
+       return res;
+}
+
+__EXPORT_API__ bool msg_common_is_sim_inserted(void)
+{
+       D_ENTER;
+       bool res = false;
+       telephony_handle_list_s tel_handle_list;
+       if (telephony_init(&tel_handle_list) == TELEPHONY_ERROR_NONE) {
+               if (tel_handle_list.count > 0) {
+                       telephony_h tel_handle = tel_handle_list.handle[0];
+
+                       telephony_sim_state_e sim_state;
+                       if (telephony_sim_get_state(tel_handle, &sim_state) != TELEPHONY_ERROR_NONE) {
+                               res = (sim_state != TELEPHONY_SIM_STATE_UNAVAILABLE)
+                                               && (sim_state != TELEPHONY_SIM_STATE_UNKNOWN);
+                       }
+                       D_IMSG("sim_state = %d", sim_state);
+               }
+
+               telephony_deinit(&tel_handle_list);
+       }
+
+       return res;
+}
+
+__EXPORT_API__ MSG_BOOL msg_common_get_font_size(int *index)
+{
+       D_MSG_RETVM_IF(index == NULL, FALSE, "font_size is NULL");
+
+       if (preference_get_int(KEY_MSG_APP_FONT_SIZE, index) < 0) {
+               D_EMSG("preference_get_int() has failed !!");
+               return FALSE;
+       }
+
+       if (*index < MSG_APP_FONT_SIZE_INDEX_SMALL || *index >= MSG_APP_FONT_SIZE_INDEX_MAX) {
+               D_EMSG("invalid index = %d", *index);
+               return FALSE;
+       } else {
+               D_MSG("index = %d", *index);
+       }
+
+       return TRUE;
+}
+
+__EXPORT_API__ char *msg_common_get_font_name()
+{
+       char *font_name = NULL;
+
+       if (system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &font_name) < 0) {
+               D_EMSG("system_settings_get_value_string failed");
+               return NULL;
+       } else {
+               D_SEC_MSG("font_name = [%s]", font_name);
+               return font_name;
+       }
+}
+
+__EXPORT_API__ MSG_BOOL msg_common_set_font_size(int index)
+{
+       if (index < MSG_APP_FONT_SIZE_INDEX_SMALL || index >= MSG_APP_FONT_SIZE_INDEX_MAX) {
+               D_EMSG("invalid index = %d", index);
+               return FALSE;
+       } else {
+               D_MSG("index = %d", index);
+       }
+
+       if (preference_set_int(KEY_MSG_APP_FONT_SIZE, index) < 0) {
+               D_EMSG("preference_get_int() has failed !!");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+__EXPORT_API__ int msg_common_get_font_size_from_index(int index)
+{
+       if (index < MSG_APP_FONT_SIZE_INDEX_SMALL || index >= MSG_APP_FONT_SIZE_INDEX_MAX) {
+               D_EMSG("invalid index = %d", index);
+               return -1;
+       } else {
+               D_MSG("index = %d", index);
+       }
+
+       int font_size = 0;
+
+       switch (index) {
+       case MSG_APP_FONT_SIZE_INDEX_SMALL:
+               font_size = MSG_APP_FONT_SIZE_SMALL;
+               break;
+       case MSG_APP_FONT_SIZE_INDEX_NORMAL:
+               font_size = MSG_APP_FONT_SIZE_NORMAL;
+               break;
+       case MSG_APP_FONT_SIZE_INDEX_LARGE:
+               font_size = MSG_APP_FONT_SIZE_LARGE;
+               break;
+       case MSG_APP_FONT_SIZE_INDEX_HUGE:
+               font_size = MSG_APP_FONT_SIZE_HUGE;
+               break;
+       case MSG_APP_FONT_SIZE_INDEX_GIANT:
+               font_size = MSG_APP_FONT_SIZE_GIANT;
+               break;
+       }
+
+       return font_size;
+}
+
+__EXPORT_API__ void msg_common_change_bubble_font_style(int index)
+{
+       D_ENTER;
+
+       int font_size = 0;
+       char *font_name = NULL;
+       Evas_Font_Size font_size_scale = 0;
+
+       font_size = msg_common_get_font_size_from_index(index);
+       if (font_size == -1) {
+               D_EMSG("msg_common_get_font_size_from_index() is failed !!");
+               return;
+       }
+
+       /* Calculate the scale factor */
+       font_size_scale -= (font_size * 100) / MSG_APP_FONT_SIZE_NORMAL;
+
+       /** Getting font type **/
+       font_name = msg_common_get_font_name();
+       if (font_name == NULL) {
+               D_EMSG("msg_common_get_font_name() returns NULL!!");
+               return;
+       }
+
+       elm_config_font_overlay_set("bubble", font_name, font_size_scale);
+       elm_config_font_overlay_apply();
+
+       if (font_name)
+               free(font_name);
+}
+
+__EXPORT_API__ int msg_common_get_index_from_font_size(int font_size)
+{
+       if (font_size < MSG_APP_FONT_SIZE_SMALL || font_size >= MSG_APP_FONT_SIZE_MAX) {
+               D_EMSG("invalid font_size = %d", font_size);
+               return -1;
+       } else {
+               D_MSG("font_size = %d", font_size);
+       }
+       int index = 0;
+
+       switch (font_size) {
+       case MSG_APP_FONT_SIZE_SMALL:
+               index = MSG_APP_FONT_SIZE_INDEX_SMALL;
+               break;
+       case MSG_APP_FONT_SIZE_NORMAL:
+               index = MSG_APP_FONT_SIZE_INDEX_NORMAL;
+               break;
+       case MSG_APP_FONT_SIZE_LARGE:
+               index = MSG_APP_FONT_SIZE_INDEX_LARGE;
+               break;
+       case MSG_APP_FONT_SIZE_HUGE:
+               index = MSG_APP_FONT_SIZE_INDEX_HUGE;
+               break;
+       case MSG_APP_FONT_SIZE_GIANT:
+               index = MSG_APP_FONT_SIZE_INDEX_GIANT;
+               break;
+       default:
+               index = MSG_APP_FONT_SIZE_INDEX_NORMAL;
+               break;
+       }
+
+       return index;
+}
+
+#ifdef MSG_USE_ELM_WIDGET_HEADER
+__EXPORT_API__ MSG_BOOL msg_common_apply_font_style(const char *widget_name, Evas_Object *obj)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(widget_name == NULL, FALSE, "widget_name is NULL");
+       D_MSG_RETVM_IF(obj == NULL, FALSE, "obj is NULL");
+
+       int index = 0;
+       int font_size = 0;
+       char *font_name = NULL;
+       Evas_Font_Size font_size_scale = 0;
+
+       if (msg_common_get_font_size(&index) != TRUE) {
+               D_EMSG("msg_common_get_font_size() is failed !!");
+               return FALSE;
+       } else {
+               D_MSG("selected index = %d", index);
+       }
+
+       font_size = msg_common_get_font_size_from_index(index);
+       if (font_size == -1) {
+               D_EMSG("msg_common_get_font_size_from_index() is failed !!");
+               return FALSE;
+       }
+
+       /* Calculate the scale factor */
+       font_size_scale -= (font_size * 100) / MSG_APP_FONT_SIZE_NORMAL;
+
+       D_MSG("font_size = %d, font_size_scale = %d", font_size, font_size_scale);
+
+       /** Getting font type **/
+       font_name = msg_common_get_font_name();
+       if (font_name == NULL) {
+               D_EMSG("msg_common_get_font_name() returns NULL!!");
+               return FALSE;
+       }
+
+       edje_text_class_del(widget_name);
+       edje_text_class_set(widget_name, font_name, font_size_scale);
+       elm_widget_theme_specific(obj, NULL, EINA_TRUE);
+
+       if (font_name)
+               free(font_name);
+
+       return TRUE;
+}
+#endif
+
+__EXPORT_API__ void msg_common_reset_font_size(const char *widget_name)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(widget_name == NULL, "widget_name is NULL");
+
+       edje_text_class_del(widget_name);
+
+       return;
+}
+
+static char *__msg_common_get_file_ext(const char *a_pszfile_name)
+{
+       if (a_pszfile_name != NULL) {
+               int nlen = strlen(a_pszfile_name);
+               char *psztemp = (char *)a_pszfile_name + nlen;
+
+               while (nlen--) {
+                       psztemp--;
+                       if (*psztemp == '.') {
+                               psztemp++;
+                               break;
+                       }
+               }
+               return psztemp;
+       }
+
+       return NULL;
+}
+
+static MSG_BOOL __msg_common_is_drm_file(const char *filepath)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(filepath == NULL, FALSE, "filepath is NULL");
+       return FALSE;
+}
+
+static MSG_APP_FILE_TYPE_E __msg_common_get_file_type_by_file_ext(const char *file_ext, const char *fullpath)
+{
+       D_ENTER;
+       int i = 0;
+
+       if (file_ext == NULL) {
+               D_EMSG("file_ext is NULL");
+               return MSG_APP_FILE_TYPE_ETC;
+       }
+
+       switch (file_ext[i]) {
+       case 'a':
+       case 'A':
+               if (strcasecmp("ASF", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VIDEO;
+               }
+               if (strcasecmp("AMR", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VOICE;
+               }
+               if (strcasecmp("AWB", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VOICE;
+               }
+               if (strcasecmp("AAC", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("AVI", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VIDEO;
+               }
+               break;
+
+       case 'b':
+       case 'B':
+               if (strcasecmp("BMP", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_IMAGE;
+               }
+               break;
+
+       case 'd':
+       case 'D':
+               if (strcasecmp("DOC", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_DOC;
+               }
+               if (strcasecmp("DOCX", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_DOC;
+               }
+               if (strcasecmp("DIVX", &file_ext[i]) == 0) {
+                       if (__msg_common_is_drm_file(fullpath) == 0) {
+                               return MSG_APP_FILE_TYPE_DRM;
+                       } else {
+                               return MSG_APP_FILE_TYPE_VIDEO;
+                       }
+               }
+               if (strcasecmp("DCF", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_DRM;
+               }
+               if (strcasecmp("DM", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_DRM;
+               }
+               break;
+
+       case 'g':
+       case 'G':
+               if (strcasecmp("GIF", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_IMAGE;
+               }
+               if (strcasecmp("G72", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               break;
+
+       case 'h':
+       case 'H':
+               if (strcasecmp("HTML", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_HTML;
+               }
+               if (strcasecmp("HTM", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_HTML;
+               }
+               break;
+
+       case 'i':
+       case 'I':
+               if (strcasecmp("IMY", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("ICS", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VCALENDAR;
+               }
+               break;
+
+       case 'j':
+       case 'J':
+               if (strcasecmp("JPG", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_IMAGE;
+               }
+               if (strcasecmp("JPEG", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_IMAGE;
+               }
+               if (strcasecmp("JPE", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_IMAGE;
+               }
+               break;
+
+       case 'm':
+       case 'M':
+               if (strcasecmp("MMF", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("MP3", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("MID", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("MIDI", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("MP4", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VIDEO;
+               }
+               if (strcasecmp("MPG", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VIDEO;
+               }
+               if (strcasecmp("MPEG", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VIDEO;
+               }
+               if (strcasecmp("M4A", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("M3G", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_FLASH;
+               }
+               if (strcasecmp("MXMF", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("MKV", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VIDEO;
+               }
+               break;
+
+       case 'o':
+       case 'O':
+               if (strcasecmp("opml", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_RSS;
+               }
+               if (strcasecmp("ODF", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_DRM;
+               }
+               if (strcasecmp("ORO", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_DRM;
+               }
+               break;
+
+       case 'p':
+       case 'P':
+               if (strcasecmp("PNG", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_IMAGE;
+               }
+               if (strcasecmp("PJPEG", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_IMAGE;
+               }
+               if (strcasecmp("PDF", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_PDF;
+               }
+               if (strcasecmp("PPT", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_PPT;
+               }
+               if (strcasecmp("PPTX", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_PPT;
+               }
+               break;
+
+       case 'r':
+       case 'R':
+               if (strcasecmp("RO", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_DRM;
+               }
+               break;
+
+       case 's':
+       case 'S':
+               if (strcasecmp("SDP", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VIDEO;
+               }
+               if (strcasecmp("SPM", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("SMP", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("SPF", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("SWF", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_FLASH;
+               }
+               if (strcasecmp("SVG", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_SVG;
+               }
+               if (strcasecmp("SVGZ", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_SVG;
+               }
+               break;
+
+       case 't':
+       case 'T':
+               if (strcasecmp("TXT", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_TXT;
+               }
+               if (strcasecmp("TPK", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_TPK;
+               }
+               break;
+
+       case 'v':
+       case 'V':
+               if (strcasecmp("VCF", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VCONTACT;
+               }
+               if (strcasecmp("VTS", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VCALENDAR;
+               }
+               if (strcasecmp("VCS", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VCALENDAR;
+               }
+               break;
+
+       case 'w':
+       case 'W':
+               if (strcasecmp("WAV", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("WBMP", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_IMAGE;
+               }
+               if (strcasecmp("WGT", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_WGT;
+               }
+               if (strcasecmp("WMA", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("WMV", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VIDEO;
+               }
+               break;
+
+       case 'x':
+       case 'X':
+               if (strcasecmp("XLS", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_EXCEL;
+               }
+               if (strcasecmp("XLSX", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_EXCEL;
+               }
+               if (strcasecmp("XMF", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_MUSIC;
+               }
+               if (strcasecmp("XHTML", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_HTML;
+               }
+               break;
+
+       case '3':
+               if (strcasecmp("3GP", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VIDEO;
+               }
+               if (strcasecmp("3GPP", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VIDEO;
+               }
+               if (strcasecmp("3G2", &file_ext[i]) == 0) {
+                       return MSG_APP_FILE_TYPE_VIDEO;
+               }
+               break;
+       }
+
+       return MSG_APP_FILE_TYPE_ETC;
+}
+
+__EXPORT_API__ const char *__msg_common_get_file_icon_by_file_type(MSG_APP_FILE_TYPE_E file_type)
+{
+       const char *icon_path = MSG_COMMON_FILE_ETC_ICON;
+       if (file_type <= MSG_APP_FILE_TYPE_NONE || file_type >= MSG_APP_FILE_TYPE_MAX) {
+               D_EMSG("Invalid file_type!! file_type = %d", file_type);
+               return NULL;
+       }
+
+       if (icon_array[file_type]) {
+               icon_path = icon_array[file_type];
+       }
+
+       return icon_path;
+}
+
+__EXPORT_API__ const char *msg_common_get_file_icon(const char *filepath)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(filepath == NULL, NULL, "filepath is NULL");
+       const char *icon_path = MSG_COMMON_FILE_ETC_ICON;
+       char *file_ext = __msg_common_get_file_ext(filepath);
+
+       if (file_ext) {
+               MSG_APP_FILE_TYPE_E file_type = MSG_APP_FILE_TYPE_NONE;
+
+               file_type = __msg_common_get_file_type_by_file_ext(file_ext, filepath);
+               icon_path = __msg_common_get_file_icon_by_file_type(file_type);
+       } else {
+               D_EMSG("file_ext is NULL");
+       }
+
+       return icon_path;
+}
+
+__EXPORT_API__ void msg_common_remove_prefix_from_number(const char *pSrcNum, char *pDestNum)
+{
+       int srcLen = 0;
+       int overLen = 0;
+       int i = 0;
+
+       int min_match_num = 0;
+       if (msg_sys_phonenumber_min_match_digit_get(&min_match_num) < 0) {
+               D_EMSG("msg_sys_phonenumber_min_match_digit_get is failed !!");
+               return;
+       }
+
+       srcLen = strlen(pSrcNum);
+       if (srcLen > min_match_num) {
+               overLen = srcLen - min_match_num;
+
+               for (i = 0; i < min_match_num; i++)
+                       pDestNum[i] = pSrcNum[i+overLen];
+
+               pDestNum[i] = '\0';
+       } else {
+               strncpy(pDestNum, pSrcNum, srcLen);
+       }
+}
+
+static MSG_DETAIL_REPORT_LIST_S *__msg_common_get_mms_report_info(msg_handle_t msgHandle, int msgId, msg_struct_list_s *address_list)
+{
+       MSG_DETAIL_REPORT_LIST_S *report_data_list = NULL;
+
+       report_data_list = (MSG_DETAIL_REPORT_LIST_S *)calloc(address_list->nCount, sizeof(MSG_DETAIL_REPORT_LIST_S));
+
+       if (report_data_list) {
+               msg_struct_list_s report_list = {0,};
+               char addr_value[MAX_ADDRESS_VAL_LEN+1] = {0,};
+               int i = 0;
+
+               msg_get_report_status(msgHandle, msgId, &report_list);
+
+               for (i = 0; i < address_list->nCount; i++) {
+                       bzero(addr_value, sizeof(addr_value));
+                       msg_get_str_value(address_list->msg_struct_info[i], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, addr_value, MAX_ADDRESS_VAL_LEN);
+
+                       strncpy(report_data_list[i].address, addr_value, MAX_ADDRESS_VAL_LEN);
+                       report_data_list[i].delivery.status = MSG_DELIVERY_REPORT_NONE;
+                       report_data_list[i].read.status = MSG_READ_REPORT_NONE;
+               }
+
+               for (i = 0; i < report_list.nCount; i++) {
+                       int type;
+                       int status;
+                       time_t time;
+
+                       bzero(addr_value, sizeof(addr_value));
+
+                       msg_get_int_value(report_list.msg_struct_info[i], MSG_REPORT_TYPE_INT, (int *)&type);
+                       msg_get_int_value(report_list.msg_struct_info[i], MSG_REPORT_STATUS_INT, (int *)&status);
+                       msg_get_str_value(report_list.msg_struct_info[i], MSG_REPORT_ADDRESS_STR, addr_value, MAX_ADDRESS_VAL_LEN);
+                       msg_get_int_value(report_list.msg_struct_info[i], MSG_REPORT_TIME_INT, (int *)&time);
+
+                       int j = 0;
+                       /* fill values for viewer report list */
+                       for (j = 0; j < address_list->nCount; j++) {
+                               if (!strncmp(report_data_list[j].address, addr_value, MAX_ADDRESS_VAL_LEN)) {
+                                       if (type == MSG_REPORT_TYPE_DELIVERY) {
+                                               report_data_list[j].delivery.status = status;
+                                               report_data_list[j].delivery.time = time;
+                                       } else {
+                                               report_data_list[j].read.status = status;
+                                               report_data_list[j].read.time = time;
+                                       }
+                               }
+                       }
+               }
+               msg_release_list_struct(&report_list);
+       } else {
+               D_EMSG("report_list is null");
+               return NULL;
+       }
+
+       return report_data_list;
+}
+
+static char *__msg_common_make_mms_delivery_report_str(MSG_DETAIL_REPORT_LIST_S *report_data_list, msg_struct_list_s *address_list)
+{
+       int i;
+       Eina_Strbuf *delivery_text = eina_strbuf_new();
+
+       eina_strbuf_append(delivery_text, "<br/>");
+       for (i = 0; i < address_list->nCount; i++) {
+               eina_strbuf_append(delivery_text, report_data_list[i].address);
+               eina_strbuf_append(delivery_text, " - ");
+
+               if (report_data_list[i].delivery.status == MSG_DELIVERY_REPORT_NONE) {
+                       eina_strbuf_append(delivery_text, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_REQUESTED"));
+               } else if (report_data_list[i].delivery.status == MSG_DELIVERY_REPORT_EXPIRED) {
+                       eina_strbuf_append(delivery_text, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_EXPIRED"));
+               } else if (report_data_list[i].delivery.status == MSG_DELIVERY_REPORT_SUCCESS) {
+                       eina_strbuf_append(delivery_text, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_RECEIVED"));
+                       eina_strbuf_append(delivery_text, " (");
+
+                       char *str_time = NULL;
+                       int timeformat = 0;
+                       timeformat = msg_common_get_timeformat();
+                       if (timeformat == MSG_TIME_FORMAT_24H) {
+                               str_time = msg_common_get_formatted_date(msg_common_get_default_locale(), "HH:mm, d MMM", &(report_data_list[i].delivery.time));
+                       } else {
+                               str_time = msg_common_get_formatted_date(msg_common_get_default_locale(), "hh:mm a, d MMM", &(report_data_list[i].delivery.time));
+                       }
+                       if (str_time) {
+                               eina_strbuf_append(delivery_text, str_time);
+                               free(str_time);
+                               str_time = NULL;
+                       }
+                       eina_strbuf_append(delivery_text, ")");
+               } else if (report_data_list[i].delivery.status == MSG_DELIVERY_REPORT_REJECTED) {
+                       eina_strbuf_append(delivery_text, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_REJECTED"));
+               } else {
+                       eina_strbuf_append(delivery_text, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_UNKNOWN"));
+               }
+
+               if (i != address_list->nCount-1)
+                       eina_strbuf_append(delivery_text, "<br/>");
+       }
+
+       const char *content = eina_strbuf_string_get(delivery_text);
+       D_MSG_RETVM_IF(!content, NULL, "content is NULL");
+       char *str = strdup(content);
+       eina_strbuf_free(delivery_text);
+
+       return str;
+}
+
+static char *__msg_common_make_mms_read_report_str(MSG_DETAIL_REPORT_LIST_S *report_data_list, msg_struct_list_s *address_list)
+{
+       Eina_Strbuf *read_text = eina_strbuf_new();
+       int i;
+
+       eina_strbuf_append(read_text, "<br/>");
+       for (i = 0; i < address_list->nCount; i++) {
+               eina_strbuf_append(read_text, report_data_list[i].address);
+               eina_strbuf_append(read_text, " - ");
+               if (report_data_list[i].read.status == MSG_READ_REPORT_NONE) {
+                       eina_strbuf_append(read_text, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_REQUESTED"));
+               } else if (report_data_list[i].read.status == MSG_READ_REPORT_IS_READ) {
+                       eina_strbuf_append(read_text, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"));
+                       eina_strbuf_append(read_text, " (");
+
+                       const char *locale = NULL;
+                       char *best_pattern = NULL;
+                       char *str_time = NULL;
+                       int timeformat = 0;
+
+                       locale = msg_common_get_default_locale();
+                       timeformat = msg_common_get_timeformat();
+                       if (timeformat == MSG_TIME_FORMAT_24H)
+                               best_pattern = msg_common_get_date_best_pattern(locale, "MMM/dd/yyyy HHmm");
+                       else
+                               best_pattern = msg_common_get_date_best_pattern(locale, "MMM/dd/yyyy hma");
+
+                       if (best_pattern) {
+                               str_time = msg_common_get_formatted_date(locale, best_pattern, &(report_data_list[i].read.time));
+                               free(best_pattern);
+                               best_pattern = NULL;
+                       }
+
+                       if (str_time)
+                               eina_strbuf_append(read_text, str_time);
+
+                       eina_strbuf_append(read_text, ")");
+               } else if (report_data_list[i].read.status == MSG_READ_REPORT_IS_DELETED) {
+                       eina_strbuf_append(read_text, dgettext(MESSAGE_PKGNAME, "IDS_MSG_POP_DELETED"));
+               }
+
+               if (i != address_list->nCount-1)
+                       eina_strbuf_append(read_text, "<br/>");
+       }
+
+       const char *content = eina_strbuf_string_get(read_text);
+       D_MSG_RETVM_IF(!content, NULL, "content is NULL");
+       char *str = strdup(content);
+       eina_strbuf_free(read_text);
+
+       return str;
+}
+
+#ifdef _MSG_FEATURE_SMS_DELIVERY_REPORT
+static char *__msg_common_make_sms_report_result_str(msg_handle_t msgHandle, int msgId, msg_struct_list_s *address_list)
+{
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_list_s report_list = {0,};
+       char addr_value[MAX_ADDRESS_VAL_LEN+1] = {0,};
+
+       err = msg_get_report_status(msgHandle, msgId, &report_list);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_report_status error !!");
+               return NULL;
+       }
+
+
+       int min_match_num = 0;
+       if (msg_sys_phonenumber_min_match_digit_get(&min_match_num) < 0) {
+               D_EMSG("msg_sys_phonenumber_min_match_digit_get is failed !!");
+               return NULL;
+       }
+
+       int i = 0;
+       Eina_Strbuf *deliver_text = eina_strbuf_new();
+
+       if (report_list.nCount != 0) {
+               msg_struct_t report = NULL;
+               int type;
+               int status;
+               time_t time;
+               char address[MAX_ADDRESS_VAL_LEN+1] = {0,};
+
+               eina_strbuf_append(deliver_text, "<br/>");
+               for (i = 0; i < address_list->nCount; i++) {
+                       char list_address[min_match_num+1];
+                       bool report_found = false;
+
+                       bzero(list_address, sizeof(list_address));
+                       bzero(addr_value, sizeof(addr_value));
+                       bzero(address, sizeof(address));
+                       msg_get_str_value(address_list->msg_struct_info[i], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, addr_value, MAX_ADDRESS_VAL_LEN);
+                       msg_common_remove_prefix_from_number(addr_value, list_address);
+
+                       eina_strbuf_append(deliver_text, addr_value);
+                       eina_strbuf_append(deliver_text, " - ");
+
+                       char report_address[min_match_num+1];
+                       bzero(report_address, sizeof(report_address));
+                       report = report_list.msg_struct_info[report_list.nCount - 1];
+                       msg_get_str_value(report, MSG_REPORT_ADDRESS_STR, address, sizeof(address));
+                       msg_common_remove_prefix_from_number(address, report_address);
+
+                       if (!strncmp(list_address, report_address, min_match_num)) {
+                               report_found = true;
+                               msg_get_int_value(report, MSG_REPORT_TYPE_INT, &type);
+                               msg_get_int_value(report, MSG_REPORT_STATUS_INT, &status);
+                               msg_get_int_value(report, MSG_REPORT_TIME_INT, (int *)&time);
+
+                               if (type == MSG_REPORT_TYPE_DELIVERY) {
+                                       if (status == MSG_DELIVERY_REPORT_SUCCESS) {
+                                               eina_strbuf_append(deliver_text, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_RECEIVED"));
+                                               eina_strbuf_append(deliver_text, " (");
+                                               const char *locale = NULL;
+                                               char *best_pattern = NULL;
+                                               char *str_time = NULL;
+                                               int timeformat = 0;
+
+                                               locale = msg_common_get_default_locale();
+                                               timeformat = msg_common_get_timeformat();
+                                               if (timeformat == MSG_TIME_FORMAT_24H)
+                                                       best_pattern = msg_common_get_date_best_pattern(locale, "MMM/dd/yyyy HHmm");
+                                               else
+                                                       best_pattern = msg_common_get_date_best_pattern(locale, "MMM/dd/yyyy hma");
+
+                                               if (best_pattern) {
+                                                       str_time = msg_common_get_formatted_date(locale, best_pattern, &time);
+                                                       free(best_pattern);
+                                                       best_pattern = NULL;
+                                               }
+
+                                               if (str_time)
+                                                       eina_strbuf_append(deliver_text, str_time);
+
+                                               eina_strbuf_append(deliver_text, ")");
+                                       } else if (status == MSG_DELIVERY_REPORT_EXPIRED) {
+                                               eina_strbuf_append(deliver_text, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_EXPIRED"));
+                                       } else {
+                                               eina_strbuf_append(deliver_text, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_REQUESTED"));
+                                       }
+                               }
+                       }
+
+                       if (!report_found) {
+                               eina_strbuf_append(deliver_text, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_REQUESTED"));
+                       }
+
+                       eina_strbuf_append(deliver_text, "<br/>");
+               }
+       } else {
+               eina_strbuf_append(deliver_text, "<br/>");
+               for (i = 0; i < address_list->nCount; i++) {
+                       bzero(addr_value, sizeof(addr_value));
+                       msg_get_str_value(address_list->msg_struct_info[i], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, addr_value, MAX_ADDRESS_VAL_LEN);
+                       eina_strbuf_append(deliver_text, addr_value);
+                       eina_strbuf_append(deliver_text, " - ");
+                       eina_strbuf_append(deliver_text, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_REQUESTED"));
+                       eina_strbuf_append(deliver_text, "<br/>");
+               }
+       }
+       const char *content = eina_strbuf_string_get(deliver_text);
+       D_MSG_RETVM_IF(!content, NULL, "content is NULL.");
+       char *str = strdup(content);
+       eina_strbuf_free(deliver_text);
+
+       return str;
+}
+#endif
+
+__EXPORT_API__ int msg_common_get_contact_index_by_recipient(const char *address)
+{
+       int index = -1;
+       int ct_err = CONTACTS_ERROR_NONE;
+       contacts_list_h list = NULL;
+       contacts_query_h query = NULL;
+       contacts_filter_h filter = NULL;
+
+       /* get number list first */
+       contacts_query_create(_contacts_person_number._uri, &query);
+       contacts_filter_create(_contacts_person_number._uri, &filter);
+       contacts_filter_add_str(filter, _contacts_person_number.number_filter, CONTACTS_MATCH_EXACTLY, address);
+       contacts_query_set_filter(query, filter);
+
+       ct_err = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+       filter = NULL;
+       query = NULL;
+
+       if (ct_err != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+               contacts_list_destroy(list, true);
+               return index;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_err) {
+               contacts_record_h ct_value = NULL;
+               contacts_list_get_current_record_p(list, &ct_value);
+
+               if (ct_value) {
+                       contacts_record_get_int(ct_value, _contacts_person_number.person_id, &index);
+                       if (index > 0) {
+                               contacts_list_destroy(list, true);
+                               return index;
+                       }
+               }
+
+               ct_err = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+       list = NULL;
+
+       /* get email list second */
+       contacts_query_create(_contacts_person_email._uri, &query);
+       contacts_filter_create(_contacts_person_email._uri, &filter);
+       contacts_filter_add_str(filter, _contacts_person_email.email, CONTACTS_MATCH_EXACTLY, address);
+       contacts_query_set_filter(query, filter);
+
+       ct_err = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+
+       if (ct_err != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+               contacts_list_destroy(list, true);
+               return index;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_err) {
+               contacts_record_h ct_value = NULL;
+               contacts_list_get_current_record_p(list, &ct_value);
+
+               if (ct_value) {
+                       contacts_record_get_int(ct_value, _contacts_person_email.person_id, &index);
+                       if (index > 0) {
+                               contacts_list_destroy(list, true);
+                               return index;
+                       }
+               }
+
+               ct_err = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+
+       return index;
+}
+
+__EXPORT_API__ int msg_common_get_contact_display_name_by_index(int index, char *dest, int dest_size)
+{
+       D_MSG_RETVM_IF(dest == NULL, COMMON_RETURN_FAIL, "dest is NULL");
+
+       int ct_ret = CONTACTS_ERROR_NONE;
+       int ret = COMMON_RETURN_SUCCESS;
+       char *display = NULL;
+       contacts_record_h ct_value = NULL;
+
+       ct_ret = contacts_db_get_record(_contacts_person._uri, index, &ct_value);
+       if (ct_ret != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+               return COMMON_RETURN_FAIL;
+       }
+
+       contacts_record_get_str_p(ct_value, _contacts_person.display_name, &display);
+
+       if (!display) {
+               D_EMSG("display name is NULL");
+               ret = COMMON_RETURN_FAIL;
+       } else {
+               if (strlen(display)) {
+                       strncpy(dest, display, dest_size);
+               } else {
+                       ret = COMMON_RETURN_FAIL;
+               }
+       }
+
+       contacts_record_destroy(ct_value, true);
+
+       return ret;
+}
+
+static void __msg_common_get_self_number(char **self_ph_num) {
+       telephony_handle_list_s tel_handle_list;
+       int err = telephony_init(&tel_handle_list);
+
+       if (err == TELEPHONY_ERROR_NONE) {
+               if (tel_handle_list.count > 0) {
+                       telephony_h tel_handle = tel_handle_list.handle[0];
+
+                       err = telephony_sim_get_subscriber_number(tel_handle, self_ph_num);
+
+                       if (err != TELEPHONY_ERROR_NONE) {
+                               if (*self_ph_num) {
+                                       free(*self_ph_num);
+                               }
+                               D_EMSG("Cannot get self phone number, err = %d", err);
+                       }
+               } else {
+                       err = TELEPHONY_ERROR_SIM_NOT_AVAILABLE;
+                       D_EMSG("Any SIM unavailable.");
+               }
+               telephony_deinit(&tel_handle_list);
+       }
+
+       if (err != TELEPHONY_ERROR_NONE || *self_ph_num[0] == 0) {
+               D_IMSG("Provider doesn't support self number.");
+
+               if (*self_ph_num) {
+                       free(*self_ph_num);
+               }
+
+               const char *unkn_str = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_UNKNOWN");
+               *self_ph_num = calloc(strlen(unkn_str) + 1, sizeof(char));
+               if (*self_ph_num) {
+                       strncpy(*self_ph_num, unkn_str, strlen(unkn_str) + 1);
+               }
+       }
+}
+
+/*********************
+* [SMS]
+*      [sent / outbox]
+*      1. Type:
+*      2. To:
+*      3. sent time:
+*      4. delivery report
+*      5. Status:
+*
+*      [inbox]
+*      1. Type:
+*      2. From
+*      3. Received time:
+*
+* [MMS notification]
+*      1. Type:
+*      2. From:
+*      3: Expire:
+*      4. Subject:
+*      5. Message size: KB
+*
+* [MMS]
+*      [ For sent/outbox msg]
+*      1. Type:
+*      2. To:
+*      3. Sent time:
+*      4. Subject:
+*      5. Message size:
+*      6. Delivery report:
+*      7. Read report:
+*
+*      [For inbox msg]
+*      1. Type:
+*      2. From:
+*      3. Received time:
+*      4. Subject:
+*      5. Message size: KB
+**********************/
+
+__EXPORT_API__ char *msg_common_make_message_detail_text(msg_handle_t msgHandle, int msgId)
+{
+       msg_error_t err = MSG_SUCCESS;
+       int msg_type = MSG_TYPE_INVALID;
+       int folder_id = MSG_MAX_FOLDER_ID;
+       int thread_id = 0;
+       int contact_id = 0;
+       int timeformat = 0;
+       bool delivery_flag = false;
+       bool read_flag = false;
+       char addr_value[MAX_ADDRESS_VAL_LEN+1] = {0,};
+       char name[MAX_DISPLAY_NAME_LEN] = {0,};
+       msg_struct_t msgNotiInfo = {0,};
+       msg_struct_list_s addrList = {0,};
+       msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+       /** Get message **/
+       err = msg_get_message(msgHandle, msgId, msgInfo, sendOpt);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_message has failed");
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               return NULL;
+       }
+
+       msg_get_int_value(msgInfo, MSG_MESSAGE_TYPE_INT, &msg_type);
+       msg_get_int_value(msgInfo, MSG_MESSAGE_FOLDER_ID_INT, &folder_id);
+       msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, &thread_id);
+
+       if (msg_type == MSG_TYPE_MMS_NOTI) {
+               D_MSG("msg_type == MSG_TYPE_MMS_NOTI");
+               msgNotiInfo = msg_create_struct(MSG_STRUCT_MMS);
+                err = msg_get_mms_struct(msgInfo, msgNotiInfo);
+                if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_get_mms_struct has failed");
+               }
+       }
+       /** Get address list **/
+       err = msg_get_address_list(msgHandle, thread_id, &addrList);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_message has failed");
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               return NULL;
+       }
+
+       /* create str buf */
+       Eina_Strbuf *text_data = eina_strbuf_new();
+
+       /*** Type ***/
+       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_TYPE_C"));
+       eina_strbuf_append(text_data, " ");
+
+       if (msg_type == MSG_TYPE_MMS) {
+               eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"));
+       } else if (msg_type == MSG_TYPE_MMS_NOTI) {
+               eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"));
+       } else if (msg_type == MSG_TYPE_SMS || msg_type == MSG_TYPE_SMS_REJECT) {
+               eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_TEXT_MESSAGE"));
+       } else if (msg_type == MSG_TYPE_SMS_CB) {
+               eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_CB_MESSAGE"));
+       } else {
+               D_EMSG("invalid msg type! [%d]", msg_type);
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+
+               eina_strbuf_free(text_data);
+               return NULL;
+       }
+       eina_strbuf_append(text_data, "<br/>");
+
+       char *self_ph_num = NULL;
+
+       __msg_common_get_self_number(&self_ph_num);
+
+       D_IMSG("self_ph_num = %s", self_ph_num);
+
+       if (msg_type != MSG_TYPE_SMS_CB) {
+               /*** From / To ***/
+               if (folder_id == MSG_SENTBOX_ID || folder_id == MSG_OUTBOX_ID) {
+
+                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_FLFROM"));
+                       MSG_COMMON_ADD_SELF_NUM(text_data, self_ph_num);
+                       eina_strbuf_append(text_data, "<br/>");
+
+                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_TO_C"));
+                       eina_strbuf_append(text_data, " ");
+               } else if (folder_id == MSG_INBOX_ID || folder_id == MSG_SPAMBOX_ID) {
+                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_FLFROM"));
+                       eina_strbuf_append(text_data, " ");
+               } else {
+                       D_EMSG("invalid folder_id type! [%d]", folder_id);
+                       msg_release_struct(&msgInfo);
+                       msg_release_struct(&sendOpt);
+
+                       eina_strbuf_free(text_data);
+                       free(self_ph_num);
+                       return NULL;
+               }
+
+               int index = 0;
+               for (index = 0; index < addrList.nCount; index++) {
+                       bzero(name, sizeof(name));
+                       bzero(addr_value, sizeof(addr_value));
+
+                       msg_get_int_value(addrList.msg_struct_info[index], MSG_ADDRESS_INFO_CONTACT_ID_INT, &contact_id);
+                       msg_get_str_value(addrList.msg_struct_info[index], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, addr_value, MAX_ADDRESS_VAL_LEN);
+
+                       /* getting all the names of sender/receipient */
+                       int pid = -1;
+                       pid = msg_common_get_contact_index_by_recipient(addr_value);
+                       if (pid > 0) {
+                               msg_common_get_contact_display_name_by_index(pid, name, sizeof(name));
+                       }
+
+                       if (name[0] != '\0') {
+                               eina_strbuf_append(text_data, name);
+                               eina_strbuf_append(text_data, " (");
+                               eina_strbuf_append(text_data, addr_value);
+                               eina_strbuf_append(text_data, ")");
+                       } else {
+                               if (addr_value[0] == '\0' || strlen(addr_value) == 0)
+                                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_UNKNOWN"));
+                               else
+                                       eina_strbuf_append(text_data, addr_value);
+                       }
+                       if (index != addrList.nCount-1)
+                               eina_strbuf_append(text_data, ", ");
+               }
+               eina_strbuf_append(text_data, "<br/>");
+
+
+               if (folder_id == MSG_INBOX_ID || folder_id == MSG_SPAMBOX_ID)  {
+                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_TO_C"));
+                       MSG_COMMON_ADD_SELF_NUM(text_data, self_ph_num);
+                       eina_strbuf_append(text_data, "<br/>");
+               }
+       }
+
+       free(self_ph_num);
+
+       /*** Sent / Received / Expire Time ***/
+       timeformat = msg_common_get_timeformat();
+
+       const char *locale = msg_common_get_default_locale();
+       char *date_ptn = msg_common_get_date_best_pattern(locale, "MM/dd/yyyy");
+       char *time_ptn = msg_common_get_date_best_pattern(locale, ((timeformat == MSG_TIME_FORMAT_24H) ? "Hm" : "hma"));
+
+       char *date_string = NULL;
+       char *time_string = NULL;
+       char msg[DEF_BUF_LEN] = {0,};
+       char msg1[DEF_BUF_LEN] = {0,};
+
+       if (msg_type == MSG_TYPE_MMS_NOTI) {
+               msg_struct_t mmsSendOpt = NULL;
+               int expiry_time;
+
+               msg_get_struct_handle(sendOpt, MSG_SEND_OPT_MMS_OPT_HND, &mmsSendOpt);
+               msg_get_int_value(mmsSendOpt, MSG_MMS_SENDOPTION_EXPIRY_TIME_INT, &expiry_time);
+
+               date_string = msg_common_get_formatted_date(locale, date_ptn, &expiry_time);
+
+               if (timeformat == MSG_TIME_FORMAT_24H)
+                       time_string = msg_common_get_formatted_date(locale, time_ptn, &expiry_time);
+               else
+                       time_string = msg_common_get_formatted_date(locale, time_ptn, (void *)&expiry_time);
+
+               if (date_string && time_string)
+                       snprintf(msg, sizeof(msg), "%s %s", date_string, time_string);
+
+               const char *expire_str = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_EXPIRES_C_PS");
+               snprintf(msg1, sizeof(msg1), expire_str, msg);
+               eina_strbuf_append(text_data, msg1);
+       } else {
+               if (folder_id == MSG_SENTBOX_ID || folder_id == MSG_OUTBOX_ID) {
+                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_TIME_SENT_C"));
+               } else if (folder_id == MSG_INBOX_ID || folder_id == MSG_SPAMBOX_ID || msg_type == MSG_TYPE_SMS_CB) {
+                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_TIME_RECEIVED_C"));
+               }
+               eina_strbuf_append(text_data, " ");
+
+               int dptime = 0;
+               msg_get_int_value(msgInfo, MSG_MESSAGE_DISPLAY_TIME_INT, &dptime);
+
+               date_string = msg_common_get_formatted_date(locale, date_ptn, &dptime);
+
+               if (timeformat == MSG_TIME_FORMAT_24H)
+                       time_string = msg_common_get_formatted_date(locale, time_ptn, &dptime);
+               else
+                       time_string = msg_common_get_formatted_date(locale, time_ptn, (void *)&dptime);
+
+               if (date_string && time_string)
+                       snprintf(msg, sizeof(msg), "%s %s", date_string, time_string);
+
+               eina_strbuf_append(text_data, msg);
+       }
+
+       if (date_ptn)
+               free(date_ptn);
+
+       if (time_ptn)
+               free(time_ptn);
+
+       if (date_string)
+               free(date_string);
+
+       if (time_string)
+               free(time_string);
+
+       if (msg_type == MSG_TYPE_SMS || msg_type == MSG_TYPE_SMS_REJECT) { /*** SMS ***/
+               int status;
+
+               switch (folder_id) {
+               case MSG_SENTBOX_ID:
+               case MSG_OUTBOX_ID:
+                       /*line change*/
+                       eina_strbuf_append(text_data, "<br/>");
+
+                       msg_get_int_value(msgInfo, MSG_MESSAGE_NETWORK_STATUS_INT, &status);
+                       /* We need to check message sending status before checking delivery status. */
+#ifdef _MSG_FEATURE_SMS_DELIVERY_REPORT
+                       /** delivery report */
+                       char *deliver_str = dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_DELIVERY_REPORT_C_PS");
+                       /* get delivery report setting value */
+                       msg_get_bool_value(sendOpt, MSG_SEND_OPT_DELIVER_REQ_BOOL, &delivery_flag);
+                       if (delivery_flag && (status == MSG_NETWORK_SEND_SUCCESS || status == MSG_NETWORK_DELIVER_SUCCESS)) {
+                               char *deliver_result = NULL;
+                               deliver_result = __msg_common_make_sms_report_result_str(msgHandle, msgId, &addrList);
+                               if (deliver_result) {
+                                       eina_strbuf_append_printf(text_data, deliver_str, deliver_result);
+                                       free(deliver_result);
+                                       deliver_result = NULL;
+                               }
+                       } else {
+                               eina_strbuf_append_printf(text_data, deliver_str, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_BODY_NOT_REQUESTED"));
+                               eina_strbuf_append(text_data, "<br/>");
+                       }
+#endif
+                       /** status **/
+
+                       switch (status) {
+                               case MSG_NETWORK_SENDING:
+                                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_STATUS_C"));
+                                       eina_strbuf_append(text_data, " ");
+                                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"));
+                                       break;
+                               case MSG_NETWORK_SEND_SUCCESS:
+                               case MSG_NETWORK_DELIVER_SUCCESS:
+                                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_STATUS_C"));
+                                       eina_strbuf_append(text_data, " ");
+                                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_SENT_M_STATUS"));
+                                       break;
+                               case MSG_NETWORK_SEND_PENDING:
+                                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_STATUS_C"));
+                                       eina_strbuf_append(text_data, " ");
+                                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"));
+                                       break;
+                               case MSG_NETWORK_SEND_FAIL:
+                               case MSG_NETWORK_DELIVER_FAIL:
+                               case MSG_NETWORK_SEND_TIMEOUT:
+                               case MSG_NETWORK_SEND_FAIL_MANDATORY_INFO_MISSING:
+                               case MSG_NETWORK_SEND_FAIL_TEMPORARY:
+                               case MSG_NETWORK_SEND_FAIL_BY_MO_CONTROL_WITH_MOD:
+                               case MSG_NETWORK_SEND_FAIL_BY_MO_CONTROL_NOT_ALLOWED:
+                                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_STATUS_C"));
+                                       eina_strbuf_append(text_data, " ");
+                                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"));
+                                       break;
+                               default:
+                                       D_WMSG("Indifference type of network status!! [%d]", status);
+                                       break;
+                       }
+
+                       break;
+               default:
+                       break;
+               }
+       } else if (msg_type == MSG_TYPE_MMS || msg_type == MSG_TYPE_MMS_NOTI) { /*** MMS ***/
+               int status = MSG_NETWORK_NOT_SEND;
+               /*line change*/
+               eina_strbuf_append(text_data, "<br/>");
+
+               /** subject **/
+               char subject[DEF_BUF_LEN_S] = {0,};
+               eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_SUBJECT_COLON"));
+               eina_strbuf_append(text_data, " ");
+               msg_get_str_value(msgInfo, MSG_MESSAGE_SUBJECT_STR, subject, sizeof(subject));
+               if (subject[0] != '\0')
+                       eina_strbuf_append(text_data, subject);
+               else
+                       eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_NO_SUBJECT"));
+               eina_strbuf_append(text_data, "<br/>");
+
+               /** messae size **/
+               int msgSize = 0;
+               int sizeKB = 0;
+               char strSize[DEF_BUF_LEN_D] = {0,};
+               eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MESSAGE_SIZE"));
+               eina_strbuf_append(text_data, ": ");
+               if (msg_type == MSG_TYPE_MMS_NOTI) {
+                       msg_get_int_value(msgNotiInfo, MSG_MMS_HEADER_SIZE_INT, &msgSize);
+                       D_MSG("msg_type == MSG_TYPE_MMS_NOTI msgSize:%d", msgSize);
+               } else {
+                       msg_get_int_value(msgInfo, MSG_MESSAGE_DATA_SIZE_INT, &msgSize);
+               }
+
+               sizeKB = msgSize/1024;
+               if (msgSize < 1024) /* checking if the MMS size is less than 1 KB. In this case, we need to show it as 1KB. For the case of msgSize > 1024 bytes, else part is called to check if rounding off is required or not. */
+                       sizeKB = 1;
+               else if (msgSize%1024 > 512)
+                       sizeKB++;
+               snprintf(strSize, sizeof(strSize), "%d %s", sizeKB, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MSGSIZE_KB"));
+               eina_strbuf_append(text_data, strSize);
+
+               if (folder_id == MSG_SENTBOX_ID || folder_id == MSG_OUTBOX_ID) {
+                       eina_strbuf_append(text_data, "<br/>");
+
+                       MSG_DETAIL_REPORT_LIST_S *report_data_list = NULL;
+                       msg_struct_t mms_send_opt = NULL;
+
+                       msg_get_bool_value(sendOpt, MSG_SEND_OPT_DELIVER_REQ_BOOL, &delivery_flag);
+                       msg_get_struct_handle(sendOpt, MSG_SEND_OPT_MMS_OPT_HND, &mms_send_opt);
+                       msg_get_bool_value(mms_send_opt, MSG_MMS_SENDOPTION_READ_REQUEST_BOOL, &read_flag);
+
+                       msg_get_int_value(msgInfo, MSG_MESSAGE_NETWORK_STATUS_INT, &status);
+                       /* getting delivery & read report information */
+                       if ((delivery_flag || read_flag) && (status == MSG_NETWORK_SEND_SUCCESS || status == MSG_NETWORK_DELIVER_SUCCESS)) {
+                               report_data_list = (MSG_DETAIL_REPORT_LIST_S *)__msg_common_get_mms_report_info(msgHandle, msgId, &addrList);
+                               if (report_data_list == NULL)
+                                       D_EMSG("report_list is null");
+                       }
+
+                       /** delivery report **/
+                       char *delivery_str = dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_DELIVERY_REPORT_C_PS");
+                       if (!delivery_flag || report_data_list == NULL) {
+                               eina_strbuf_append_printf(text_data, delivery_str, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_BODY_NOT_REQUESTED"));
+                       } else {
+                               char *deliver_result = NULL;
+                               deliver_result = __msg_common_make_mms_delivery_report_str(report_data_list, &addrList);
+                               if (deliver_result) {
+                                       eina_strbuf_append_printf(text_data, delivery_str, deliver_result);
+                                       free(deliver_result);
+                                       deliver_result = NULL;
+                               } else {
+                                       D_EMSG("[ERROR]__msg_common_make_mms_delivery_report_str returns NULL");
+                                       eina_strbuf_append_printf(text_data, delivery_str, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_BODY_NOT_REQUESTED"));
+                               }
+                       }
+                       eina_strbuf_append(text_data, "<br/>");
+
+                       /** read report **/
+                       char *read_str = dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_READ_REPORT_C_PS");
+                       if (!read_flag || report_data_list == NULL) {
+                               eina_strbuf_append_printf(text_data, read_str, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_BODY_NOT_REQUESTED"));
+                       } else {
+                               char *read_result = NULL;
+                               read_result = __msg_common_make_mms_read_report_str(report_data_list, &addrList);
+                               if (read_result) {
+                                       eina_strbuf_append_printf(text_data, read_str, read_result);
+                                       free(read_result);
+                                       read_result = NULL;
+                               } else {
+                                       D_EMSG("[ERROR]__msg_common_make_mms_read_report_str returns NULL");
+                                       eina_strbuf_append_printf(text_data, read_str, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_BODY_NOT_REQUESTED"));
+                               }
+                       }
+
+                       if (report_data_list) {
+                               free(report_data_list);
+                               report_data_list = NULL;
+                       }
+               }
+       }
+
+       char *str = strdup(eina_strbuf_string_get(text_data));
+       if (msg_type == MSG_TYPE_MMS_NOTI) {
+               msg_release_struct(&msgNotiInfo);
+       }
+       msg_release_list_struct(&addrList);
+       eina_strbuf_free(text_data);
+
+       msg_release_struct(&msgInfo);
+       msg_release_struct(&sendOpt);
+
+       return str;
+}
+
+__EXPORT_API__ char *msg_common_get_display_time(time_t *msg_t, PMSG_COMMON_BUBBLE_TIME_S time_info)
+{
+       if (!msg_t || !time_info)
+               return NULL;
+
+       char buf[DEF_BUF_LEN] = { 0 };
+       char *str_time = NULL;
+
+       if (time_info->time_fmt == MSG_TIME_FORMAT_12H)
+               str_time = msg_common_get_formatted_date(time_info->locale, time_info->time_12h_ptn, msg_t);
+       else
+               str_time = msg_common_get_formatted_date(time_info->locale, time_info->time_24h_ptn, msg_t);
+
+       snprintf(buf, sizeof(buf), "%s", str_time);
+
+       if (str_time)
+               free(str_time);
+
+       return strdup(buf);
+}
+
+__EXPORT_API__ void msg_common_release_mms_struct_data(void *mms_data)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, NULL == mms_data);
+
+       msg_ui_smil_interface_release_mms_struct((MMS_DATA_S *)mms_data);
+}
+
+static char *_get_thumbail_by_profile()
+{
+       D_ENTER;
+
+       char *res = NULL;
+       int err = CONTACTS_ERROR_NONE;
+       contacts_list_h myprofile_list = NULL;
+       int count = 0;
+       contacts_record_h record = NULL;
+
+       err = contacts_db_get_all_records(_contacts_my_profile._uri, 0, 0, &myprofile_list);
+       if (err == CONTACTS_ERROR_NONE) {
+               contacts_list_get_count(myprofile_list, &count);
+
+               if (count > 0) {
+                       err = contacts_list_get_current_record_p(myprofile_list, &record);
+                       if (err == CONTACTS_ERROR_NONE) {
+                               contacts_record_get_str(record, _contacts_my_profile.image_thumbnail_path, &res);
+                       }
+               }
+
+               contacts_list_destroy(myprofile_list, true);
+       }
+
+       return res;
+}
+
+static char *_get_thumbnail_by_addr(const char *addr, int address_type)
+{
+       D_ENTER;
+
+       char *res = NULL;
+       int contact_id = 0;
+       int ct_err = CONTACTS_ERROR_NONE;
+       contacts_list_h list = NULL;
+       contacts_query_h query = NULL;
+       contacts_filter_h filter = NULL;
+
+       unsigned int number_projection[] = {
+               _contacts_person_number.person_id,
+               _contacts_person_number.image_thumbnail_path,
+       };
+
+       unsigned int email_projection[] = {
+               _contacts_person_email.person_id,
+               _contacts_person_email.image_thumbnail_path,
+       };
+
+       if (address_type == MSG_ADDRESS_TYPE_PLMN) {
+               contacts_query_create(_contacts_person_number._uri, &query);
+               contacts_filter_create(_contacts_person_number._uri, &filter);
+               contacts_filter_add_str(filter, _contacts_person_number.number_filter, CONTACTS_MATCH_EXACTLY, addr);
+       } else if (address_type == MSG_ADDRESS_TYPE_EMAIL) {
+               contacts_query_create(_contacts_person_email._uri, &query);
+               contacts_filter_create(_contacts_person_email._uri, &filter);
+               contacts_filter_add_str(filter, _contacts_person_email.email, CONTACTS_MATCH_EXACTLY, addr);
+       }
+       contacts_query_set_filter(query, filter);
+
+       if (address_type == MSG_ADDRESS_TYPE_PLMN)
+               ct_err = contacts_query_set_projection(query, number_projection, sizeof(number_projection)/sizeof(int));
+       else if (address_type == MSG_ADDRESS_TYPE_EMAIL)
+               ct_err = contacts_query_set_projection(query, email_projection, sizeof(email_projection)/sizeof(int));
+
+       if (ct_err == CONTACTS_ERROR_NONE)
+               ct_err = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+
+       if (ct_err != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_err) {
+               contacts_record_h ct_value = NULL;
+               char *display = NULL;
+               char *thumb_path = NULL;
+
+               contacts_list_get_current_record_p(list, &ct_value);
+               if (ct_value) {
+                       if (address_type == MSG_ADDRESS_TYPE_PLMN) {
+                               contacts_record_get_int(ct_value, _contacts_person_number.person_id, &contact_id);
+                               contacts_record_get_str_p(ct_value, _contacts_person_number.image_thumbnail_path, &thumb_path);
+                       } else if (address_type == MSG_ADDRESS_TYPE_EMAIL) {
+                               contacts_record_get_int(ct_value, _contacts_person_email.person_id, &contact_id);
+                               contacts_record_get_str_p(ct_value, _contacts_person_email.image_thumbnail_path, &thumb_path);
+                       }
+
+                       if (contact_id > 0 && thumb_path) {
+                               res = strdup(thumb_path);
+                               break;
+                       }
+               }
+               ct_err = contacts_list_next(list);
+       }
+       contacts_list_destroy(list, true);
+
+       return res;
+}
+
+__EXPORT_API__ char *msg_common_get_thumbnail_by_conv_item(msg_handle_t handle, msg_struct_t conv_item)
+{
+       D_ENTER;
+
+       char *res = NULL;
+
+       int  message_id = 0;
+       msg_get_int_value(conv_item, MSG_CONV_MSG_ID_INT, &message_id);
+
+       msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+       int err = msg_get_message(handle, message_id, msgInfo, sendOpt);
+       if (err != MSG_SUCCESS) {
+               goto exit;
+       }
+
+       msg_list_handle_t addr_list = NULL;
+       int direction = 0;
+
+       msg_get_list_handle(msgInfo, MSG_MESSAGE_ADDR_LIST_HND, (void **)&addr_list);
+       msg_get_int_value(msgInfo, MSG_MESSAGE_DIRECTION_INT, &direction);
+
+       if (direction == MSG_DIRECTION_TYPE_MO) {
+               res = _get_thumbail_by_profile();
+       } else {
+               int addr_len = msg_list_length(addr_list);
+               if (addr_len > 0) {
+                       char addr[DEF_THREAD_ADDR_LEN] = {0, };
+                       int addr_type = 0;
+
+                       msg_struct_t addr_info = (msg_struct_t)msg_list_nth_data(addr_list, 0);
+                       msg_get_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, addr, DEF_THREAD_ADDR_LEN);
+                       msg_get_int_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, &addr_type);
+                       if (addr[0])
+                               res = _get_thumbnail_by_addr(addr, addr_type);
+               }
+       }
+
+       exit:
+       if (msgInfo)
+               msg_release_struct(&msgInfo);
+
+       if (sendOpt)
+               msg_release_struct(&sendOpt);
+
+       return res;
+}
+
+__EXPORT_API__ void msg_common_set_bubble_info_by_conv_data(msg_handle_t handle, PMSG_COMMON_BUBBLE_INFO_S bubble_info, PMSG_COMMON_BUBBLE_TIME_S time_info, msg_struct_t msgInfo)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, !bubble_info || !msgInfo);
+
+       char *msg_date = NULL;
+
+       int value_int = -1;
+       int sim_index = 0;
+
+       msg_get_int_value(msgInfo, MSG_CONV_MSG_ID_INT, (int *)(&bubble_info->msgId));
+       msg_get_int_value(msgInfo, MSG_CONV_MSG_TYPE_INT, &bubble_info->msgType);
+       msg_get_int_value(msgInfo, MSG_CONV_MSG_SIM_INDEX_INT, &sim_index);
+       D_MSG("SIM_INDEX =  [ %d ]", sim_index);
+       bubble_info->sim_index = sim_index;
+
+       msg_get_int_value(msgInfo, MSG_CONV_MSG_STORAGE_ID_INT, (int *)(&value_int));
+       bubble_info->storageId = value_int;
+
+       msg_get_int_value(msgInfo, MSG_CONV_MSG_FOLDER_ID_INT, (int *)(&value_int));
+       bubble_info->folderId = value_int;
+
+       if (bubble_info->folderId == MSG_DRAFT_ID)
+               bubble_info->isDraft = true;
+
+       if (bubble_info->msgTime == NULL)
+               bubble_info->msgTime = (time_t *) calloc(1, sizeof(time_t));
+
+       if (bubble_info->msgTime) {
+               bzero(bubble_info->msgTime, sizeof(time_t));
+               msg_get_int_value(msgInfo, MSG_CONV_MSG_DISPLAY_TIME_INT, (int *)bubble_info->msgTime);
+               msg_date = msg_common_get_display_date(time_info->locale, time_info->date_ptn_year, bubble_info->msgTime);
+               snprintf(bubble_info->displayDate, sizeof(bubble_info->displayDate), "%s", msg_date);
+               if (msg_date)
+                       free(msg_date);
+       }
+
+       msg_get_int_value(msgInfo, MSG_CONV_MSG_NETWORK_STATUS_INT, (int *)(&value_int));
+       bubble_info->networkStatus = value_int;
+
+       msg_get_bool_value(msgInfo, MSG_CONV_MSG_READ_BOOL, &bubble_info->bRead);
+       msg_get_int_value(msgInfo, MSG_CONV_MSG_DIRECTION_INT, &bubble_info->direction);
+
+       switch (bubble_info->networkStatus) {
+       case MSG_NETWORK_SEND_FAIL:
+       case MSG_NETWORK_SEND_PENDING:
+       case MSG_NETWORK_SEND_TIMEOUT:
+       case MSG_NETWORK_SEND_FAIL_MANDATORY_INFO_MISSING:
+       case MSG_NETWORK_SEND_FAIL_TEMPORARY:
+       case MSG_NETWORK_SEND_FAIL_BY_MO_CONTROL_WITH_MOD:
+       case MSG_NETWORK_SEND_FAIL_BY_MO_CONTROL_NOT_ALLOWED:
+               if (bubble_info->direction == MSG_DIRECTION_TYPE_MO)
+                       bubble_info->isFailed = true;
+               break;
+       default:
+               bubble_info->isFailed = false;
+               break;
+       }
+
+       bzero(bubble_info->thumbNailPath, sizeof(bubble_info->thumbNailPath));
+       msg_get_str_value(msgInfo, MSG_CONV_MSG_IMAGE_THUMB_PATH_STR, bubble_info->thumbNailPath, DEF_IMG_PATH_LEN);
+
+       char *thumbnail = msg_common_get_thumbnail_by_conv_item(handle, msgInfo);
+       if (thumbnail && thumbnail[0]) {
+               bubble_info->thumb_type = MSG_THUMB_TYPE_USER;
+               eina_strlcpy(bubble_info->thumbNailPath, thumbnail, sizeof(bubble_info->thumbNailPath));
+       } else {
+               bubble_info->thumb_type = MSG_THUMB_TYPE_ICON;
+               eina_strlcpy(bubble_info->thumbNailPath, MSG_LIST_THUMB_CONTACT, sizeof(bubble_info->thumbNailPath));
+
+               /*TODO: impl for*/
+               /*
+               MSG_LIST_THUMB_GROUP
+               MSG_LIST_THUMB_CB
+               MSG_LIST_THUMB_PUSH
+               MSG_LIST_THUMB_OTA
+               */
+       }
+
+       free(thumbnail);
+
+       bzero(bubble_info->audio_filename, sizeof(bubble_info->audio_filename));
+       msg_get_str_value(msgInfo, MSG_CONV_MSG_AUDIO_NAME_STR, bubble_info->audio_filename, DEF_IMG_PATH_LEN);
+
+       bzero(bubble_info->subject, sizeof(bubble_info->subject));
+       msg_get_str_value(msgInfo, MSG_CONV_MSG_SUBJECT_STR, bubble_info->subject, DEF_BUF_LEN_S);
+
+       if (bubble_info->msgType == MSG_TYPE_MMS) {
+               msg_get_int_value(msgInfo, MSG_CONV_MSG_PAGE_COUNT_INT, (int *)(&bubble_info->page_cnt));
+               msg_get_int_value(msgInfo, MSG_CONV_MSG_TEXT_SIZE_INT, (int *)(&bubble_info->textLen));
+
+               if (NULL != bubble_info->mms_data) {
+                       msg_ui_smil_interface_release_mms_struct(bubble_info->mms_data);
+                       bubble_info->mms_data = NULL;
+               }
+
+               bubble_info->mms_data = (void *)msg_ui_smil_interface_create_mms_struct_by_conversation(msgInfo, bubble_info->msgId, bubble_info);
+
+               if (bubble_info->textLen > 0) {
+                       if (bubble_info->msgText && strlen(bubble_info->msgText) > 0) {
+                               free(bubble_info->msgText);
+                               bubble_info->msgText = NULL;
+                       }
+                       bubble_info->msgText = (char *)calloc(1, bubble_info->textLen+1);
+                       if (bubble_info->msgText)
+                               msg_get_str_value(msgInfo, MSG_CONV_MSG_TEXT_STR, bubble_info->msgText, bubble_info->textLen);          /** get body text */
+                       else
+                               D_EMSG("msgText calloc error");
+               }
+               msg_get_int_value(msgInfo, MSG_CONV_MSG_ATTACH_COUNT_INT, &bubble_info->attachment_cnt);                        /** get attachment count */
+               if (bubble_info->attachment_cnt == 1)
+                       msg_get_str_value(msgInfo, MSG_CONV_MSG_ATTACH_NAME_STR, bubble_info->attachment_filename, DEF_IMG_PATH_LEN);
+       } else if (bubble_info->msgType == MSG_TYPE_MMS_NOTI) {
+               if (bubble_info->msgText) {
+                       free(bubble_info->msgText);
+                       bubble_info->msgText = NULL;
+               }
+       } else {
+               msg_get_int_value(msgInfo, MSG_CONV_MSG_TEXT_SIZE_INT, (int *)(&bubble_info->textLen));
+               if (bubble_info->textLen > 0) {
+                       if (bubble_info->msgText && strlen(bubble_info->msgText) > 0) {
+                               free(bubble_info->msgText);
+                               bubble_info->msgText = NULL;
+                       }
+
+                       if (bubble_info->networkStatus == MSG_NETWORK_DELIVER_SUCCESS || bubble_info->networkStatus == MSG_NETWORK_DELIVER_EXPIRED) {
+                               char tmpText[bubble_info->textLen+1];
+                               memset(tmpText, 0x00, sizeof(tmpText));
+
+                               msg_get_str_value(msgInfo, MSG_CONV_MSG_TEXT_STR, tmpText, bubble_info->textLen);
+                               bubble_info->msgText = strdup(dgettext(MESSAGE_PKGNAME, tmpText));
+                               bubble_info->textLen = strlen(bubble_info->msgText);
+
+                               /* TDB : SMS_STATUS_TEMP_SERVICE_REJECTED type should be handled later */
+                       } else {
+                               bubble_info->msgText = (char *)calloc(1, bubble_info->textLen+1);
+                               if (bubble_info->msgText)
+                                       msg_get_str_value(msgInfo, MSG_CONV_MSG_TEXT_STR, bubble_info->msgText, bubble_info->textLen);
+                               else
+                                       D_EMSG("msgText calloc error");
+                       }
+               }
+       }
+}
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+__EXPORT_API__ void msg_common_set_bubble_info_by_thread_data(PMSG_COMMON_BUBBLE_INFO_S bubble_info,  PMSG_COMMON_BUBBLE_TIME_S time_info, msg_handle_t msgHandle, msg_struct_t msgInfo)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, !bubble_info || !msgInfo);
+
+       char msgText[DEF_BUF_LEN] = {0,};
+
+       msg_get_int_value(msgInfo, MSG_THREAD_ID_INT, (int *)(&bubble_info->threadId));
+       msg_get_int_value(msgInfo, MSG_THREAD_MSG_TYPE_INT, &bubble_info->msgType);
+       msg_get_int_value(msgInfo, MSG_THREAD_DIRECTION_INT, &bubble_info->msgDirection);
+       msg_get_int_value(msgInfo, MSG_THREAD_SMS_COUNT_INT, &bubble_info->smsCnt);
+       msg_get_int_value(msgInfo, MSG_THREAD_MMS_COUNT_INT, &bubble_info->mmsCnt);
+
+       /* create address string */
+       msg_struct_list_s addrList;
+       msg_error_t err = MSG_SUCCESS;
+
+       memset(&addrList, 0x00, sizeof(msg_struct_list_s));
+       err = msg_get_address_list(msgHandle, bubble_info->threadId, &addrList);
+       if (err == MSG_SUCCESS) {
+               int i = 0;
+               int addr_len = 0;
+               char addr_temp[DEF_BUF_LEN] = {0,};
+
+               for (i = 0; i < addrList.nCount; i++) {
+                       char strNumber[DEF_THREAD_ADDR_LEN + 1] = {0,};
+                       char display_name[MAX_ADDRESS_VAL_LEN+1] = {0,};
+                       int pid = 0;
+                       int len = 0;
+
+                       msg_get_str_value(addrList.msg_struct_info[i], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, strNumber, DEF_THREAD_ADDR_LEN);
+
+                       pid = msg_common_get_contact_index_by_recipient(strNumber);
+                       if (pid > 0)
+                               msg_common_get_contact_display_name_by_index(pid, display_name, sizeof(display_name));
+
+                       if (display_name[0] != '\0') {
+                               len = strlen(display_name);
+                               strncat(addr_temp, display_name, len);
+                       } else {
+                               len = strlen(strNumber);
+                               strncat(addr_temp, strNumber, len);
+                       }
+
+                       addr_len = addr_len + len;
+
+                       if (i != addrList.nCount-1)
+                               strncat(addr_temp, ", ", strlen(", "));
+               }
+
+               bubble_info->address = (char *)calloc(1, addr_len+1);
+               strncpy(bubble_info->address, addr_temp, addr_len);
+       }
+       msg_release_list_struct(&addrList);
+
+       if (bubble_info->msgTime == NULL)
+               bubble_info->msgTime = (time_t *)calloc(1, sizeof(time_t));
+
+       if (bubble_info->msgTime) {
+               char *time_str = NULL;
+               bzero(bubble_info->msgTime, sizeof(time_t));
+               msg_get_int_value(msgInfo, MSG_THREAD_MSG_TIME_INT, (int *)bubble_info->msgTime);
+
+               if (time_info->time_fmt == MSG_TIME_FORMAT_24H) {
+                       time_str = msg_common_get_formatted_date(time_info->locale, time_info->time_24h_ptn, bubble_info->msgTime);
+                       snprintf(bubble_info->displayDate, sizeof(bubble_info->displayDate), "%s", time_str);
+               } else { /* MSG_TIME_FORMAT_12H */
+                       time_str = msg_common_get_formatted_date(time_info->locale, time_info->time_12h_ptn, bubble_info->msgTime);
+                       snprintf(bubble_info->displayDate, sizeof(bubble_info->displayDate), "%s", time_str);
+               }
+
+               if (time_str)
+                       free(time_str);
+       }
+
+       msg_get_str_value(msgInfo, MSG_THREAD_MSG_DATA_STR, msgText, DEF_BUF_LEN);
+
+       bubble_info->textLen = strlen(msgText);
+       if (bubble_info->textLen > 0) {
+               char *end;
+               bubble_info->msgText = (char *)calloc(1, bubble_info->textLen+1);
+               if (g_utf8_validate(msgText, bubble_info->textLen, (const char **)&end) == TRUE) {
+                       g_utf8_strncpy(bubble_info->msgText, msgText, g_utf8_strlen(msgText, -1));
+               } else {
+                       g_utf8_strncpy(bubble_info->msgText, msgText, g_utf8_strlen(msgText, end-msgText));
+               }
+       }
+}
+#endif
+
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+static Evas_Coord __msg_common_get_textblock_width(PMSG_COMMON_BUBBLE_INFO_S bubble_info, char *src_text, char *style)
+{
+       D_ENTER;
+       Evas_Object *text = NULL;
+       Evas_Textblock_Style *ts;
+
+       Evas_Coord ww, hh;
+       char temp_str[DEF_BUF_LEN_L] = {0,};
+
+       text = evas_object_textblock_add(evas_object_evas_get(bubble_info->label));
+       ts = evas_textblock_style_new();
+       evas_textblock_style_set(ts, style);
+       evas_object_textblock_style_set(text, ts);
+
+       snprintf(temp_str, sizeof(temp_str), "%s", src_text);
+
+       evas_object_textblock_text_markup_set(text, temp_str);
+       evas_object_textblock_size_native_get(text, &ww, &hh);
+
+       evas_textblock_style_free(ts);
+       evas_object_del(text);
+
+       return ww;
+}
+#endif
+
+static char *__msg_common_apply_bubble_markup_text(PMSG_COMMON_BUBBLE_INFO_S bubble_info, PMSG_COMMON_BUBBLE_TIME_S time_info, char *time_status_str)
+{
+       bool isMsgText = false;
+       Eina_Strbuf *msg_data = eina_strbuf_new();
+
+       if (bubble_info->bubble_mode == BUBBLE_MODE_SEARCH_THREAD)
+               eina_strbuf_append_printf(msg_data, "%s<br/>", bubble_info->address);
+
+       if (bubble_info->msgText != NULL && bubble_info->msgText[0] != '\0')
+               isMsgText = true;
+
+       /* Subject & multipart data */
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       if ((bubble_info->msgType == MSG_TYPE_MMS || bubble_info->msgType == MSG_TYPE_MMS_NOTI)) {
+               if (bubble_info->subject[0] != '\0') {
+                       char *subject = NULL;
+
+                       subject = elm_entry_utf8_to_markup(bubble_info->subject);
+                       if (subject) {
+                               eina_strbuf_append_printf(msg_data, "%s %s <br/>", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_SUBJECT_COLON"), subject);
+                               free(subject);
+                       }
+               }
+
+               MMS_DATA_S *mms_data = (MMS_DATA_S *)bubble_info->mms_data;
+               MMS_MULTIPART_MEDIA_S *multipart_media = NULL;
+
+               /* set page media */
+               int page_index = 0;
+               MMS_PAGE_DATA_S *page_data = NULL;
+
+               for (page_index = 0; mms_data && page_index < mms_data->page_count; page_index++) {
+                       int w = 0;
+                       int h = 0;
+                       Evas_Object *tmp_obj = NULL;
+                       double rate = 0.0;
+
+                       page_data = &mms_data->page_data[page_index];
+
+                       int media_index = 0;
+                       for (media_index = 0; media_index < page_data->media_count; media_index++) {
+                               multipart_media = eina_list_nth(page_data->insert_list, media_index);
+
+                               if (multipart_media == NULL)
+                                       continue;
+
+                               D_MSG("multipart_media->media_type= %d", multipart_media->media_type);
+                               D_SEC_MSG("multipart_media->pfile_path= %s", multipart_media->pfile_path);
+                               if (multipart_media->media_type == MEDIA_TEXT) {
+                                       gchar *content;
+                                       gsize bytes;
+
+                                       g_file_get_contents((const gchar *)multipart_media->pfile_path, &content, &bytes, NULL);
+
+                                       if (content && strlen(content) > 0)  {
+                                               isMsgText = true;
+                                               char *tmp_str = elm_entry_utf8_to_markup(msg_common_convert_cr_to_nl(content));
+                                               eina_strbuf_append(msg_data, tmp_str);
+                                               if (tmp_str)
+                                                       free(tmp_str);
+                                       } else {
+                                               D_EMSG("bubble_text is NULL");
+                                       }
+
+                                       if (!msg_ui_smil_interface_check_last_multipart((MMS_DATA_S *)bubble_info->mms_data, multipart_media))
+                                               eina_strbuf_append(msg_data, "<br/>");
+
+                                       if (content)
+                                               free(content);
+                               } else if (multipart_media->media_type == MEDIA_IMG || multipart_media->media_type == MEDIA_VIDEO) {
+                                       char *ext = __msg_common_get_file_ext(multipart_media->pfile_path);
+                                       if (__msg_common_get_file_type_by_file_ext(ext, multipart_media->pfile_path) == MSG_APP_FILE_TYPE_DRM) {
+                                               char *file_name = elm_entry_utf8_to_markup(multipart_media->pfile_name);
+                                               if (file_name) {
+                                                       eina_strbuf_append_printf(msg_data, "%s", file_name);
+                                                       free(file_name);
+                                                       file_name = NULL;
+                                               }
+                                       } else {
+                                               tmp_obj = evas_object_image_filled_add(evas_object_evas_get(bubble_info->label));
+                                               if (tmp_obj) {
+                                                       evas_object_image_load_orientation_set(tmp_obj, EINA_TRUE);
+                                                       if (multipart_media->media_type == MEDIA_IMG)
+                                                               evas_object_image_file_set(tmp_obj, multipart_media->pfile_path, NULL);
+                                                       else
+                                                               evas_object_image_file_set(tmp_obj, multipart_media->pthumb_file_path, NULL);
+                                                       evas_object_image_size_get(tmp_obj, &w, &h);
+                                                       evas_object_del(tmp_obj);
+                                               }
+
+                                               if (w >= h) {
+                                                       rate = MSG_BUBBLE_IMG_MAX_W / (double)w;
+                                                       w = MSG_BUBBLE_IMG_MAX_W;
+                                                       h = h * rate;
+                                                       if (h > MSG_BUBBLE_IMG_MAX_H_LANDSCAPE) {
+                                                               h = MSG_BUBBLE_IMG_MAX_H_LANDSCAPE;
+                                                       }
+                                               } else {
+                                                       rate = MSG_BUBBLE_IMG_MAX_H / (double)h;
+                                                       w = w * rate;
+                                                       h = MSG_BUBBLE_IMG_MAX_H;
+                                                       if (w > MSG_BUBBLE_IMG_MAX_W) {
+                                                               w = MSG_BUBBLE_IMG_MAX_W;
+                                                       }
+                                               }
+                                               const char *image_path = NULL;
+                                               if (multipart_media->media_type == MEDIA_IMG) {
+                                                       image_path = multipart_media->pfile_path;
+                                               } else {
+                                                       image_path = multipart_media->pthumb_file_path;
+                                               }
+
+                                               if (!msg_ui_smil_interface_check_last_multipart((MMS_DATA_S *)bubble_info->mms_data, multipart_media)) {
+                                                       eina_strbuf_append_printf(msg_data, "<item size=%dx%d vsize=full href=file://%s><br/></item>", w, h, image_path);
+                                                       eina_strbuf_append(msg_data, "<font_size=10><br/></font_size>");
+                                               } else {
+                                                       eina_strbuf_append_printf(msg_data, "<item size=%dx%d vsize=full href=file://%s><br/></item>", w, h, image_path);
+                                               }
+                                       }
+                               } else if (multipart_media->media_type == MEDIA_AUDIO) {
+                                       if (multipart_media->pfile_name[0] != '\0') {
+                                               Evas_Coord ww, hh;
+
+/*                                                     if (isMsgText) */
+/*                                                             eina_strbuf_append(msg_data, "<br/>"); */
+
+                                               char *audio_text = elm_entry_utf8_to_markup(multipart_media->pfile_name);
+                                               if (audio_text) {
+                                                       char *style = "DEFAULT='font=Tizen:style=Regular font_size=24 wrap=mixed text_class=label'";
+                                                       ww = __msg_common_get_textblock_width(bubble_info, multipart_media->pfile_name, style);
+                                                       ww = ww + 5; /* sound_attach layout left/right padding size */
+                                                       hh = 32;
+
+                                                       if (ww > MSG_BUBBLE_SOUND_AND_ATTACH_MAX_W)
+                                                               ww = MSG_BUBBLE_SOUND_AND_ATTACH_MAX_W;
+
+                                                       if (!msg_ui_smil_interface_check_last_multipart((MMS_DATA_S *)bubble_info->mms_data, multipart_media)) {
+                                                               eina_strbuf_append_printf(msg_data, "%s", audio_text);
+                                                               eina_strbuf_append(msg_data, "<font_size=10><br/></font_size>");
+                                                       } else {
+                                                               eina_strbuf_append_printf(msg_data, "%s", audio_text);
+                                                       }
+
+                                                       free(audio_text);
+                                                       audio_text = NULL;
+                                               }
+                                       }
+                               } else {
+                                       D_EMSG("invalid page mediia type!! [%d]", multipart_media->media_type);
+                               }
+                       }
+
+                       /* Adding new line after a page, except the last page. */
+                       if (mms_data->page_count != page_index+1)
+                               eina_strbuf_append(msg_data, "<br/>");
+               }
+       } else {
+               if (bubble_info->textLen > 0 && bubble_info->msgText) {
+                       char *tmp_str = elm_entry_utf8_to_markup(msg_common_convert_cr_to_nl(bubble_info->msgText));
+                       eina_strbuf_append(msg_data, tmp_str);
+                       if (tmp_str)
+                               free(tmp_str);
+               } else {
+                       D_EMSG("bubble_text is NULL");
+               }
+       }
+#else /* _MSG_FEATURE_MMS_DISABLE */
+       if (bubble_info->textLen > 0 && bubble_info->msgText) {
+               char *tmp_str = elm_entry_utf8_to_markup(msg_common_convert_cr_to_nl(bubble_info->msgText));
+               eina_strbuf_append(msg_data, tmp_str);
+               if (tmp_str)
+                       free(tmp_str);
+       } else {
+               D_EMSG("bubble_text is NULL");
+       }
+
+#endif /*_MSG_FEATURE_MMS_DISABLE */
+
+       if (bubble_info->msgType == MSG_TYPE_MMS) {
+#ifndef _MSG_FEATURE_MMS_DISABLE
+               /**attachment files**/
+               MMS_DATA_S *mms_data = (MMS_DATA_S *)bubble_info->mms_data;
+
+               if (mms_data && mms_data->attach_count > 0) {
+                       MMS_MULTIPART_MEDIA_S *multipart_data = NULL;
+                       MMS_ATTACH_DATA_S *attach_data = NULL;
+                       int attach_index = 0;
+
+                       attach_data = mms_data->attach_data;
+
+                       for (attach_index = 0; attach_data && attach_index < mms_data->attach_count; attach_index++) {
+                               multipart_data = eina_list_nth(attach_data->attach_list, attach_index);
+                               if (multipart_data && multipart_data->pfile_name[0] != '\0') {
+                                       Evas_Coord ww, hh;
+
+                                       char *attach_text = elm_entry_utf8_to_markup(multipart_data->pfile_name);
+                                       if (attach_text) {
+                                               char *style = "DEFAULT='font=Tizen:style=Regular font_size=24 text_class=label'";
+                                               ww = __msg_common_get_textblock_width(bubble_info, multipart_data->pfile_name, style);
+                                               ww = ww + 5; /* sound_attach layout left/right padding size */
+                                               hh = 32;
+                                               if (ww > MSG_BUBBLE_SOUND_AND_ATTACH_MAX_W)
+                                                       ww = MSG_BUBBLE_SOUND_AND_ATTACH_MAX_W;
+
+                                               const char *attach_template = "<font_size=%d>%s</font_size>";
+                                               if (!msg_ui_smil_interface_check_last_multipart(mms_data, multipart_data)) {
+                                                       eina_strbuf_append_printf(msg_data, attach_template, MSG_COMMON_BUBBLE_ATTACH_TEMPLATE_SIZE, attach_text);
+                                                       eina_strbuf_append(msg_data, "<font_size=10><br/></font_size>");
+                                               } else {
+                                                       eina_strbuf_append_printf(msg_data, attach_template, MSG_COMMON_BUBBLE_ATTACH_TEMPLATE_SIZE, attach_text);
+                                               }
+                                               free(attach_text);
+                                               attach_text = NULL;
+                                       }
+                               }
+                       }
+                       if (isMsgText || bubble_info->audio_filename[0] != '\0') {
+                               eina_strbuf_append(msg_data, "<font_size=1>");
+                               eina_strbuf_append(msg_data, "<br/>");
+                       }
+               }
+#endif
+       } else if (((bubble_info->msgType == MSG_TYPE_SMS) || (bubble_info->msgType == MSG_TYPE_SMS_REJECT)) && bubble_info->storageId == MSG_STORAGE_SIM) {
+               if (isMsgText) {
+                       eina_strbuf_append(msg_data, "<font_size=24>");
+                       eina_strbuf_append(msg_data, "<br/>");
+               }
+
+               eina_strbuf_append_printf(msg_data, "<item size=34x34 vsize=full href=file://%s></item>", MSG_BUBBLE_SIM_MSG_ICON);
+       }
+
+       const char *content = eina_strbuf_string_get(msg_data);
+       D_MSG_RETVM_IF(!content, NULL, "content is NULL.");
+       char *bubble_text = strdup(content);
+       eina_strbuf_free(msg_data);
+
+       return bubble_text;
+}
+
+static void msg_ui_bubble_label_keydown_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+
+       D_ENTER;
+       Evas_Event_Key_Down *ev = event_info;
+       PMSG_COMMON_BUBBLE_INFO_S bubble_info = (PMSG_COMMON_BUBBLE_INFO_S)data;
+
+       if (!ev) return;
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
+
+       if ((!strcmp(ev->keyname, "Return")) || (!strcmp(ev->keyname, "KP_Enter")) || (!strcmp(ev->keyname, "space"))) {
+               evas_object_data_set(obj, "bubble_info", bubble_info);
+               bubble_info->label_clicked_cb(bubble_info->priv, obj, "clicked");
+       }
+
+       D_LEAVE;
+}
+
+static Evas_Object *__msg_common_add_focus_button(Evas_Object * parent, Evas_Object * button_part, char *part)
+{
+       Evas_Object *btn = elm_button_add(parent);
+       elm_object_style_set(btn, "focus");
+       elm_object_focus_allow_set(btn, EINA_TRUE);
+       elm_object_part_content_set(btn, "elm.swallow.content", button_part);
+       elm_object_part_content_set(parent, part, btn);
+       evas_object_show(btn);
+       elm_object_focus_next_object_set(parent, btn,  ELM_FOCUS_RIGHT);
+       elm_object_focus_next_object_set(btn, parent,  ELM_FOCUS_LEFT);
+       return btn;
+}
+
+static char *__msg_common_get_text_from_file(const char *path)
+{
+       FILE *fp = NULL;
+       char *file_text = NULL;
+       fp = fopen(path, "r");
+       if (fp) {
+               struct stat stat_buf;
+               if (stat(path, &stat_buf) != 0) {
+                       D_EMSG("Getting file information Error");
+                       fclose(fp);
+                       return NULL;
+               }
+
+               D_MSG("FileSize : %d", (int)stat_buf.st_size);
+               if (stat_buf.st_size > 0) {
+                       file_text = (void *)calloc(1, (size_t)stat_buf.st_size + 1);
+
+                       if (file_text == NULL) {
+                               D_EMSG("calloc is failed");
+                               fclose(fp);
+                               return NULL;
+                       } else {
+                               int result = fread(file_text, sizeof(char), stat_buf.st_size, fp);
+                               if (result != stat_buf.st_size) {
+                                       D_EMSG("fread is failed result : %d", result);
+                                       free(file_text);
+                                       file_text = NULL;
+                                       fclose(fp);
+                                       return NULL;
+                               }
+                       }
+               }
+               fclose(fp);
+       }
+
+       return file_text;
+}
+
+static void __msg_bubble_render_show_multipart_mixed_text(PMSG_COMMON_BUBBLE_INFO_S bubble_info, const char *path, int display_type, char *time_status_str)
+{
+       D_ENTER;
+
+       char *markup_text = NULL;
+       char *file_text = NULL;
+       char *body_text = NULL;
+
+       MMS_DATA_S *mms_data = (MMS_DATA_S *)bubble_info->mms_data;
+       if (!mms_data) {
+               D_EMSG("mms_data is NULL");
+               return;
+       }
+
+       Eina_Strbuf *msg_data = eina_strbuf_new();
+
+       MMS_MULTIPART_MEDIA_S *multipart_data = NULL;
+       MMS_ATTACH_DATA_S *attach_data = NULL;
+       int attach_index = 0;
+
+
+       if (bubble_info->subject[0] != '\0') {
+               char *subject = NULL;
+
+               subject = elm_entry_utf8_to_markup(bubble_info->subject);
+               if (subject) {
+                       eina_strbuf_append_printf(msg_data, "&lt;%s: %s&gt;<br/>", dgettext("sys_string", "IDS_COM_BODY_SUBJECT"), subject);
+                       free(subject);
+               }
+       }
+
+       attach_data = mms_data->attach_data;
+       for (attach_index = 0; attach_data && attach_index < mms_data->attach_count; attach_index++) {
+               multipart_data = eina_list_nth(attach_data->attach_list, attach_index);
+
+               if (multipart_data && !strcmp(path, multipart_data->pfile_path)) {
+                       D_SEC_MSG("multipart_data [%x]", multipart_data);
+                       break;
+               }
+       }
+
+       if (multipart_data) {
+               if (display_type == DISPLAY_TEXT) {
+                       file_text = __msg_common_get_text_from_file(path);
+                       if (!file_text) {
+                               D_EMSG("file_text is NULL");
+                               eina_strbuf_free(msg_data);
+                               return;
+                       }
+
+                       body_text = elm_entry_utf8_to_markup(msg_common_convert_cr_to_nl(file_text));
+                       if (body_text == NULL) {
+                               eina_strbuf_append(msg_data, file_text);
+                       } else {
+                               eina_strbuf_append(msg_data, body_text);
+                               free(body_text);
+                               body_text = NULL;
+                       }
+                       free(file_text);
+               } else if (display_type == DISPLAY_IMAGE) {
+                       Evas_Object *tmp_obj = NULL;
+                       Evas_Coord w = 0;
+                       Evas_Coord h = 0;
+                       double rate = 0.0;
+                       char *ext = __msg_common_get_file_ext(path);
+
+                       if (__msg_common_get_file_type_by_file_ext(ext, path) == MSG_APP_FILE_TYPE_DRM) {
+                               if (msg_ui_smil_interface_check_last_multipart(mms_data, multipart_data))
+                                       eina_strbuf_append(msg_data, "<font_size=1>");
+                               char *file_name = elm_entry_utf8_to_markup(multipart_data->pfile_name);
+                               if (file_name) {
+                                       eina_strbuf_append_printf(msg_data, "%s", file_name);
+                                       free(file_name);
+                                       file_name = NULL;
+                               }
+                       } else {
+                               tmp_obj = evas_object_image_filled_add(evas_object_evas_get(bubble_info->label));
+                               if (tmp_obj) {
+                                       evas_object_image_load_orientation_set(tmp_obj, EINA_TRUE);
+                                       evas_object_image_file_set(tmp_obj, path, NULL);
+                                       evas_object_image_size_get(tmp_obj, &w, &h);
+                                       evas_object_del(tmp_obj);
+                               }
+
+                               if (w >= h) {
+                                       rate = MSG_BUBBLE_IMG_MAX_W / (double)w;
+                                       w = MSG_BUBBLE_IMG_MAX_W;
+                                       h = h * rate;
+                                       if (h > MSG_BUBBLE_IMG_MAX_H_LANDSCAPE) {
+                                               h = MSG_BUBBLE_IMG_MAX_H_LANDSCAPE;
+                                       }
+                               } else {
+                                       rate = MSG_BUBBLE_IMG_MAX_H / (double)h;
+                                       w = w * rate;
+                                       h = MSG_BUBBLE_IMG_MAX_H;
+                                       if (w > MSG_BUBBLE_IMG_MAX_W) {
+                                               w = MSG_BUBBLE_IMG_MAX_W;
+                                       }
+                               }
+                               char *file_name = elm_entry_utf8_to_markup(multipart_data->pfile_name);
+                               if (file_name) {
+                                       if (!msg_ui_smil_interface_check_last_multipart(mms_data, multipart_data)) {
+                                               eina_strbuf_append_printf(msg_data, "%s", file_name);
+                                               eina_strbuf_append(msg_data, "<font_size=10><br/></font_size>");
+                                       } else {
+                                               eina_strbuf_append_printf(msg_data, "%s", file_name);
+                                       }
+                                       free(file_name);
+                                       file_name = NULL;
+                               }
+                       }
+               }
+       }
+
+       /**attachment files**/
+       if (mms_data && mms_data->attach_count > 1) {
+               eina_strbuf_append(msg_data, "<br/>");
+               MMS_ATTACH_DATA_S *attach_data = NULL;
+               int attach_index = 0;
+
+               attach_data = mms_data->attach_data;
+
+               for (attach_index = 0; attach_data && attach_index < mms_data->attach_count; attach_index++) {
+                       multipart_data = eina_list_nth(attach_data->attach_list, attach_index);
+                       if (multipart_data && multipart_data->pfile_name[0] != '\0' && strcmp(multipart_data->pfile_path, path)) {
+                               Evas_Coord ww, hh;
+
+                               char *attach_text = elm_entry_utf8_to_markup(multipart_data->pfile_name);
+                               if (attach_text) {
+                                       char *style = "DEFAULT='font=Tizen:style=Roman font_size=30 wrap=mixed text_class=label'";
+                                       ww = __msg_common_get_textblock_width(bubble_info, multipart_data->pfile_name, style);
+                                       ww = ww + 5; /* sound_attach layout left/right padding size */
+                                       hh = 32;
+
+                                       if (ww > MSG_BUBBLE_SOUND_AND_ATTACH_MAX_W)
+                                               ww = MSG_BUBBLE_SOUND_AND_ATTACH_MAX_W;
+
+                                       if (!msg_ui_smil_interface_check_last_multipart(mms_data, multipart_data)) {
+                                               eina_strbuf_append_printf(msg_data, "%s", attach_text);
+                                               eina_strbuf_append(msg_data, "<font_size=10><br/></font_size>");
+                                       } else {
+                                               eina_strbuf_append_printf(msg_data, "%s", attach_text);
+                                       }
+                                       free(attach_text);
+                                       attach_text = NULL;
+                               }
+                       }
+               }
+       }
+
+       const char *content = eina_strbuf_string_get(msg_data);
+       D_MSG_RETM_IF(!content, "content is NULL");
+       markup_text = strdup(content);
+
+       eina_strbuf_free(msg_data);
+
+       if (!markup_text) {
+               D_EMSG("markup_text is NULL");
+               return;
+       }
+
+       char *emoticon_str = NULL;
+       char *dst_str = NULL;
+
+       emoticon_str = msg_common_apply_emoticon_to_string(markup_text);
+       if (!emoticon_str) {
+               D_EMSG("creating emoticon string error - empty bubble");
+               free(markup_text);
+               return;
+       }
+
+       if (bubble_info->search_word && bubble_info->search_word[0] != '\0') {
+               dst_str = __msg_common_apply_search_result_string(emoticon_str, bubble_info->search_word);
+               if (dst_str) {
+                       elm_object_text_set(bubble_info->label, dst_str);
+                       free(dst_str);
+               }
+       } else {
+               elm_object_text_set(bubble_info->label, emoticon_str);
+       }
+
+       free(markup_text);
+       free(emoticon_str);
+}
+
+static char *msg_common_bubble_make_time_status_str(PMSG_COMMON_BUBBLE_INFO_S bubble_info, PMSG_COMMON_BUBBLE_TIME_S time_info)
+{
+       char time_status_str[DEF_BUF_LEN + DEF_BUF_LEN_S + 1] = {0, };
+       char *time_str = NULL;
+       char *ret_str = NULL;
+
+       switch (bubble_info->networkStatus) {
+       case MSG_NETWORK_SENDING:
+       case MSG_NETWORK_RETRIEVING:
+               if (bubble_info->bubble_mode != BUBBLE_MODE_NORMAL) {
+                       /** search bubble only shows DATE **/
+                       strncpy(time_status_str, bubble_info->displayDate, sizeof(time_status_str)-1);
+               }
+               break;
+       case MSG_NETWORK_NOT_SEND:
+       default:
+/** display time */
+               time_str = msg_common_get_display_time(bubble_info->msgTime, time_info);
+               if (time_str) {
+                       strncpy(time_status_str, time_str, sizeof(time_status_str)-1);
+                       free(time_str);
+               } else {
+                       /** This "else" case is for avoiding NULL of the time_status_str */
+                       /** if time_status_str is NULL, it could be shown progress icon although it's not sending or retrieving */
+                       strncpy(time_status_str, bubble_info->displayDate, sizeof(time_status_str)-1);
+               }
+               break;
+       }
+
+       if (time_status_str[0] != '\0') {
+               if (bubble_info->bubble_mode == BUBBLE_MODE_SEARCH || bubble_info->bubble_mode == BUBBLE_MODE_SEARCH_THREAD) {
+                       elm_object_part_text_set(bubble_info->label, "elm.text.time", time_status_str);
+               }
+               ret_str = strdup(time_status_str);
+       }
+
+       return ret_str;
+}
+
+__EXPORT_API__ void msg_common_bubble_fill_bubble_contents(Elm_Theme *theme, PMSG_COMMON_BUBBLE_INFO_S bubble_info, PMSG_COMMON_BUBBLE_TIME_S time_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ASSERT, !bubble_info);
+       char *time_status_str = NULL;
+
+       /** TODO **/
+       char *markup_text = NULL;
+       char *emoticon_str = NULL;
+       char *dst_str = NULL;
+       bool is_oneTxt_MltpartMxd = false;
+
+       if (bubble_info->rotation == 90 || bubble_info->rotation == 270) {
+               evas_object_size_hint_min_set(bubble_info->label, ELM_SCALE_SIZE(MSG_COMMON_BUBBLE_MIN_WIDTH_LADNSCAPE), ELM_SCALE_SIZE(MSG_COMMON_BUBBLE_MIN_HEIGHT));
+               edje_object_signal_emit(_EDJ(bubble_info->label), "elm,action,rotate,landscape", "");
+       } else {
+               evas_object_size_hint_min_set(bubble_info->label, ELM_SCALE_SIZE(MSG_COMMON_BUBBLE_MIN_WIDTH_PORTRAIT), ELM_SCALE_SIZE(MSG_COMMON_BUBBLE_MIN_HEIGHT));
+               edje_object_signal_emit(_EDJ(bubble_info->label), "elm,action,rotate,portrait", "");
+       }
+
+       time_status_str = msg_common_bubble_make_time_status_str(bubble_info, time_info);
+
+       if (bubble_info->bubble_mode == BUBBLE_MODE_NORMAL || bubble_info->bubble_mode == BUBBLE_MODE_SEARCH) {
+#ifndef _MSG_FEATURE_MMS_DISABLE
+               if (bubble_info->msgType == MSG_TYPE_MMS) {
+                       Evas_Object *prev_obj = NULL;
+
+                       prev_obj = elm_object_part_content_unset(bubble_info->label, "elm.swallow.end");
+                       if (prev_obj) {
+                               elm_object_signal_emit(bubble_info->label, "elm,state,middle,pad,disabled", "elm");
+                               evas_object_del(prev_obj);
+                       }
+                       if (bubble_info->page_cnt == 0 && bubble_info->attachment_cnt > 0) {
+                               /* Create mmsInfo & get the Attachment List oto get the attachment mime type */
+                               msg_handle_t bubble_msgHandle;
+                               msg_struct_t msgInfo = NULL;
+                               msg_struct_t sendOpt = NULL;
+                               msg_struct_t mmsInfo = NULL;
+                               msg_list_handle_t attachlist = NULL;
+                               int mediaType;
+                               int attach_index = 0;
+                               int fileSize = 0;
+                               /**** getting msgInfo ***/
+                               int ret = msg_open_msg_handle(&bubble_msgHandle);
+                               if (ret != MSG_SUCCESS) {
+                                       D_EMSG("msg_open_msg_handle() is failed : ret = %d", ret);
+                                       MSG_FREE(time_status_str);
+                                       return;
+                               }
+                               msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+                               sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+                               if (msg_get_message(bubble_msgHandle, bubble_info->msgId, msgInfo, sendOpt) != MSG_SUCCESS) {
+                                       D_EMSG("msg_get_message FAILED !!!");
+                                       msg_release_struct(&msgInfo);
+                                       msg_release_struct(&sendOpt);
+                                       msg_close_msg_handle(&bubble_msgHandle);
+                                       MSG_FREE(time_status_str);
+                                       return;
+                               }
+                               msg_release_struct(&sendOpt);
+                               msg_close_msg_handle(&bubble_msgHandle);
+
+                               /*** getting MMS info ****/
+                               mmsInfo = msg_create_struct(MSG_STRUCT_MMS);
+                               if (msg_get_mms_struct(msgInfo, mmsInfo) != MSG_SUCCESS) {
+                                       D_EMSG("msg_get_mms_struct FAILED !!!");
+                                       msg_release_struct(&mmsInfo);
+                                       msg_release_struct(&msgInfo);
+                                       MSG_FREE(time_status_str);
+                                       return;
+                               }
+
+                               msg_get_list_handle(mmsInfo, MSG_MMS_ATTACH_LIST_HND, (void **)&attachlist);
+
+                               for (attach_index = 0; attach_index < bubble_info->attachment_cnt; attach_index++) {
+                                       msg_struct_t attach_info = (msg_struct_t)msg_list_nth_data(attachlist, attach_index);
+                                       char content_type[DEF_BUF_LEN_S] = {0,};
+                                       char strFilePath[MSG_FILEPATH_LEN_MAX] = {0,};
+
+                                       msg_get_int_value(attach_info, MSG_MMS_ATTACH_MIME_TYPE_INT, &mediaType);
+                                       msg_get_int_value(attach_info, MSG_MMS_ATTACH_FILESIZE_INT, &fileSize);
+                                       msg_get_str_value(attach_info, MSG_MMS_ATTACH_CONTENT_TYPE_STR, content_type, sizeof(content_type));
+                                       msg_get_str_value(attach_info, MSG_MMS_ATTACH_FILEPATH_STR, strFilePath, sizeof(strFilePath));
+
+                                       if (content_type[0] != '\0') {
+                                               CONTENT_DISPLAY_TYPE display_type = msg_ui_content_get_display_type(content_type);
+                                               if (display_type == DISPLAY_TEXT || display_type == DISPLAY_IMAGE) {
+                                                       is_oneTxt_MltpartMxd = true;
+                                                       __msg_bubble_render_show_multipart_mixed_text(bubble_info, strFilePath, display_type, time_status_str);
+                                                       msg_release_struct(&attach_info);
+                                                       break;
+                                               }
+#if 0
+                                               else if (display_type == DISPLAY_DRM) {
+                                                       display_type = msg_ui_content_get_drm_content_type(strFilePath);
+                                                       if (display_type == DISPLAY_TEXT || display_type == DISPLAY_IMAGE) {
+                                                               is_oneTxt_MltpartMxd = true;
+                                                               __msg_bubble_render_show_multipart_mixed_text(bubble_info, strFilePath, display_type, time_status_str);
+                                                               msg_release_struct(&attach_info);
+                                                               break;
+                                                       }
+                                               }
+#endif
+                                               msg_release_struct(&attach_info);
+                                       } else {
+                                               if (((mediaType == MIME_TEXT_TXT || mediaType == MIME_TEXT_PLAIN) && fileSize <= MSG_COMMON_BUBBLE_MIXED_MSG_MAX_SIZE)
+                                                       || (mediaType >= MIME_IMAGE_GIF && mediaType <= MIME_IMAGE_X_BMP)) {
+                                                       /* This is multipart mixed message with one text attachment. So get the Content of the text file
+                                                        * and Set the text on the bubble
+                                                        * */
+                                                       CONTENT_DISPLAY_TYPE display_type = DISPLAY_NONE;
+                                                       if (mediaType == MIME_TEXT_TXT || mediaType == MIME_TEXT_PLAIN)
+                                                               display_type = DISPLAY_TEXT;
+                                                       else if (mediaType >= MIME_IMAGE_GIF && mediaType <= MIME_IMAGE_X_BMP)
+                                                               display_type = DISPLAY_IMAGE;
+
+                                                       is_oneTxt_MltpartMxd = true;
+                                                       __msg_bubble_render_show_multipart_mixed_text(bubble_info, strFilePath, display_type, time_status_str);
+                                                       msg_release_struct(&attach_info);
+                                                       break;
+                                               }
+                                       }
+                                       msg_release_struct(&attach_info);
+                               }
+                               msg_release_struct(&mmsInfo);
+                               msg_release_struct(&msgInfo);
+                       }
+               } else if (bubble_info->msgType == MSG_TYPE_MMS_NOTI && bubble_info->networkStatus != MSG_NETWORK_RETRIEVE_SUCCESS && bubble_info->networkStatus != MSG_NETWORK_RETRIEVING) {
+                       Evas_Object *prev_obj = NULL;
+                       Evas_Object *retrieve_btn = NULL;
+
+                       prev_obj = elm_object_part_content_get(bubble_info->label, "elm.swallow.end");
+                       if (prev_obj) {
+                               elm_object_part_content_unset(bubble_info->label, "elm.swallow.end");
+                               elm_object_signal_emit(bubble_info->label, "elm,state,middle,pad,disabled", "elm");
+                               evas_object_del(prev_obj);
+                       }
+
+                       retrieve_btn = elm_button_add(bubble_info->label);
+                       elm_object_focus_allow_set(retrieve_btn, EINA_TRUE);
+
+                       elm_object_part_content_set(bubble_info->label, "elm.swallow.end", retrieve_btn);
+                       elm_object_focus_next_object_set(bubble_info->label, retrieve_btn,  ELM_FOCUS_RIGHT);
+                       elm_object_signal_emit(bubble_info->label, "elm,state,middle,pad,enabled", "elm");
+                       elm_object_domain_translatable_text_set(retrieve_btn, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_DOWNLOAD_ABB3");
+                       evas_object_data_set(retrieve_btn, "bubble_info", bubble_info);
+                       if (bubble_info->retrieve_btn_cb) {
+                               evas_object_smart_callback_add(retrieve_btn, "clicked", bubble_info->retrieve_btn_cb, bubble_info->priv);
+                       }
+                       bubble_info->retrieve_button = retrieve_btn;
+               } else if (bubble_info->msgType == MSG_TYPE_SMS_SYNCML)
+#else
+               if (bubble_info->msgType == MSG_TYPE_SMS_SYNCML)
+#endif
+               {
+                       Evas_Object *prev_obj = NULL;
+                       Evas_Object *install_btn = NULL;
+                       prev_obj = elm_object_part_content_get(bubble_info->label, "elm.swallow.end");
+                       if (prev_obj) {
+                               elm_object_part_content_unset(bubble_info->label, "elm.swallow.end");
+                               elm_object_signal_emit(bubble_info->label, "elm,state,middle,pad,disabled", "elm");
+                               evas_object_del(prev_obj);
+                       }
+
+                       install_btn = elm_button_add(bubble_info->label);
+                       elm_object_signal_emit(bubble_info->label, "elm,state,middle,pad,enabled", "elm");
+                       elm_object_part_content_set(bubble_info->label, "elm.swallow.end", install_btn);
+                       elm_object_focus_allow_set(install_btn, EINA_TRUE);
+
+                       elm_object_domain_translatable_text_set(install_btn, MESSAGE_PKGNAME, "IDS_MSGF_OPT_INSTALL");
+                       evas_object_data_set(install_btn, "bubble_info", bubble_info);
+
+                       elm_object_focus_next_object_set(bubble_info->label, install_btn,  ELM_FOCUS_RIGHT);
+
+                       if (bubble_info->install_btn_cb) {
+                               evas_object_smart_callback_add(install_btn, "clicked", bubble_info->install_btn_cb, bubble_info->priv);
+                       }
+                       bubble_info->install_button = install_btn;
+               }
+       }
+
+       if (is_oneTxt_MltpartMxd == false) {
+               markup_text = __msg_common_apply_bubble_markup_text(bubble_info, time_info, time_status_str);
+               if (!markup_text) {
+                       D_EMSG("markup_text is NULL - empty bubble");
+                       MSG_FREE(time_status_str);
+                       return;
+               }
+
+               emoticon_str = msg_common_apply_emoticon_to_string(markup_text);
+               if (!emoticon_str) {
+                       D_EMSG("creating emoticon string error - empty bubble");
+                       free(markup_text);
+                       MSG_FREE(time_status_str);
+                       return;
+               }
+
+               if (bubble_info->search_word && bubble_info->search_word[0] != '\0') {
+                       dst_str = __msg_common_apply_search_result_string(emoticon_str, bubble_info->search_word);
+                       if (dst_str) {
+                               elm_object_text_set(bubble_info->label, dst_str);
+                               free(dst_str);
+                       }
+               } else {
+                       elm_object_text_set(bubble_info->label, emoticon_str);
+               }
+
+               free(markup_text);
+               free(emoticon_str);
+       } else {
+               is_oneTxt_MltpartMxd = false;
+       }
+
+       Evas_Object *icon = NULL;
+       icon = elm_object_part_content_unset(bubble_info->label, "elm.swallow.icon");
+       if (icon)
+               evas_object_del(icon);
+
+       if (bubble_info->thumbnail) {
+               evas_object_del(bubble_info->thumbnail);
+               bubble_info->thumbnail = NULL;
+       }
+
+       bubble_info->thumbnail = msg_common_get_thumbnail(bubble_info->label, bubble_info->thumbNailPath, bubble_info->thumb_type, MSG_THUMB_SIZE_LIST);
+       if (bubble_info->thumbnail) {
+               elm_object_part_content_set(bubble_info->label, "elm.thumbnail.swallow", bubble_info->thumbnail);
+       }
+
+       /** Network status (Sending, Retrieving); */
+       switch (bubble_info->networkStatus) {
+       case MSG_NETWORK_SEND_FAIL:
+       case MSG_NETWORK_SEND_PENDING:
+       case MSG_NETWORK_SEND_TIMEOUT:
+       case MSG_NETWORK_SEND_FAIL_MANDATORY_INFO_MISSING:
+       case MSG_NETWORK_SEND_FAIL_TEMPORARY:
+       case MSG_NETWORK_SEND_FAIL_BY_MO_CONTROL_WITH_MOD:
+       case MSG_NETWORK_SEND_FAIL_BY_MO_CONTROL_NOT_ALLOWED:
+               if (bubble_info->direction == MSG_DIRECTION_TYPE_MO && bubble_info->bubble_mode == BUBBLE_MODE_NORMAL) {
+                       bubble_info->isDraft = FALSE;
+
+                       Evas_Object *icon = NULL;
+                       Evas_Object *badge = NULL;
+                       icon = elm_object_part_content_unset(bubble_info->label, "elm.swallow.status");
+                       if (icon) {
+                               evas_object_del(icon);
+                               icon = NULL;
+                       }
+
+                       elm_object_style_set(bubble_info->label, MSG_BUBBLE_STYLE_SENT_FAILED_01);
+
+                       badge = elm_button_add(bubble_info->label);
+                       elm_object_style_set(badge, "failed_button");
+                       evas_object_show(badge);
+                       evas_object_data_set(badge, "conv_data", bubble_info);
+                       if (bubble_info->failed_btn_cb) {
+                               evas_object_smart_callback_add(badge, "clicked", bubble_info->failed_btn_cb, bubble_info->priv);
+                       }
+
+                       elm_object_part_content_set(bubble_info->label, "elm.badge.swallow", badge);
+                       edje_object_signal_emit(_EDJ(bubble_info->label), "elm,action,elm.badge.swallow,show", "");
+                       edje_object_message_signal_process(_EDJ(bubble_info->label));
+
+               }
+               break;
+       case MSG_NETWORK_RETRIEVE_FAIL:
+               break;
+       case MSG_NETWORK_SENDING:
+               if (bubble_info->direction == MSG_DIRECTION_TYPE_MO && bubble_info->bubble_mode == BUBBLE_MODE_NORMAL) {
+                       bubble_info->isDraft = FALSE;
+                       Evas_Object *badge = NULL;
+                       Evas_Object *progressbar = NULL;
+
+                       badge = elm_object_part_content_unset(bubble_info->label, "elm.badge.swallow");
+                       if (badge) {
+                               evas_object_del(badge);
+                               badge = NULL;
+                       }
+
+                       progressbar = elm_object_part_content_unset(bubble_info->label, "elm.swallow.status");
+                       if (progressbar) {
+                               evas_object_del(progressbar);
+                               progressbar = NULL;
+                       }
+                       elm_object_style_set(bubble_info->label, MSG_BUBBLE_STYLE_SENT_01);
+
+                       /** Add progress icon */
+                       progressbar = elm_progressbar_add(bubble_info->label);
+                       elm_object_style_set(progressbar, "process_small");
+                       evas_object_show(progressbar);
+                       elm_progressbar_pulse(progressbar, EINA_TRUE);
+                       elm_object_part_content_set(bubble_info->label, "elm.swallow.status", progressbar);
+                       edje_object_signal_emit(_EDJ(bubble_info->label), "elm,state,content,status,enabled", "");
+                       edje_object_signal_emit(_EDJ(bubble_info->label), "elm,state,contents,disabled", "elm");
+                       edje_object_signal_emit(_EDJ(bubble_info->label), "sim,icon,disabled", "*");
+               }
+               break;
+       case MSG_NETWORK_RETRIEVING:
+               if (bubble_info->bubble_mode == BUBBLE_MODE_NORMAL) {
+                       bubble_info->isDraft = FALSE;
+                       Evas_Object *progressbar = NULL;
+                       Evas_Object *icon = NULL;
+                       icon = elm_object_part_content_unset(bubble_info->label, "elm.swallow.icon1");
+                       if (icon) {
+                               evas_object_del(icon);
+                               icon = NULL;
+                       }
+
+                       icon = elm_object_part_content_unset(bubble_info->label, "elm.swallow.status");
+                       if (icon) {
+                               evas_object_del(icon);
+                               icon = NULL;
+                       }
+
+                       /** Add progress icon */
+                       progressbar = elm_progressbar_add(bubble_info->label);
+                       elm_object_style_set(progressbar, "process_small");
+                       evas_object_show(progressbar);
+                       elm_progressbar_pulse(progressbar, EINA_TRUE);
+                       elm_object_part_content_set(bubble_info->label, "elm.swallow.status", progressbar);
+                       edje_object_signal_emit(_EDJ(bubble_info->label), "elm,state,content,status,enabled", "");
+                       edje_object_signal_emit(_EDJ(bubble_info->label), "elm,state,contents,disabled", "elm");
+                       edje_object_signal_emit(_EDJ(bubble_info->label), "sim,icon,disabled", "*");
+
+                       if (bubble_info->msgType == MSG_TYPE_MMS_NOTI && bubble_info->networkStatus == MSG_NETWORK_RETRIEVING) {
+                               Evas_Object *prev_obj = NULL;
+                               Evas_Object *retrieve_btn = NULL;
+                               prev_obj = elm_object_part_content_get(bubble_info->label, "elm.swallow.end");
+                               if (prev_obj) {
+                                       elm_object_part_content_unset(bubble_info->label, "elm.swallow.end");
+                                       elm_object_signal_emit(bubble_info->label, "elm,state,middle,pad,disabled", "elm");
+                                       evas_object_del(prev_obj);
+                               }
+                               icon = elm_object_part_content_unset(bubble_info->label, "sim.icon");
+                               if (icon) {
+                                       evas_object_del(icon);
+                                       icon = NULL;
+                               }
+
+                               retrieve_btn = elm_button_add(bubble_info->label);
+                               elm_object_focus_allow_set(retrieve_btn, EINA_TRUE);
+
+                               elm_object_part_content_set(bubble_info->label, "elm.swallow.end", retrieve_btn);
+                               elm_object_focus_next_object_set(bubble_info->label, retrieve_btn,  ELM_FOCUS_RIGHT);
+                               elm_object_signal_emit(bubble_info->label, "elm,state,middle,pad,enabled", "elm");
+                               elm_object_domain_translatable_text_set(retrieve_btn, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_DOWNLOAD_ABB3");
+                               evas_object_data_set(retrieve_btn, "bubble_info", bubble_info);
+                               if (bubble_info->retrieve_btn_cb) {
+                                       evas_object_smart_callback_add(retrieve_btn, "clicked", bubble_info->retrieve_btn_cb, bubble_info->priv);
+                               }
+                               bubble_info->retrieve_button = retrieve_btn;
+
+                               if (retrieve_btn)
+                                       elm_object_disabled_set(retrieve_btn, EINA_TRUE);
+                       }
+
+               }
+               break;
+       case MSG_NETWORK_NOT_SEND:
+       default:
+               break;
+       }
+
+       /* translate button */
+       if (bubble_info->direction != MSG_DIRECTION_TYPE_MO && bubble_info->translate_enable == true) {
+
+               Evas_Object *icon = NULL;
+               icon = elm_object_part_content_unset(bubble_info->label, "elm.swallow.icon1");
+               if (icon) {
+                       evas_object_del(icon);
+                       icon = NULL;
+               }
+
+               Evas_Object *translate_button = NULL;
+
+               translate_button = elm_button_add(bubble_info->label);
+
+               elm_object_theme_set(translate_button, theme);
+               elm_object_style_set(translate_button, "translate_button");
+               Evas_Object *focus_button = __msg_common_add_focus_button(bubble_info->label, translate_button, "elm.swallow.icon1");
+
+               edje_object_signal_emit(_EDJ(bubble_info->label), "elm,state,contents,enabled", "");
+
+               evas_object_data_set(translate_button, "conv_data", bubble_info);
+               bubble_info->focus_btn = focus_button;
+               if (bubble_info->translate_btn_cb) {
+                       evas_object_smart_callback_add(translate_button, "clicked", bubble_info->translate_btn_cb, bubble_info->priv);
+               }
+
+               evas_object_show(translate_button);
+       }
+
+       if (bubble_info->isDraft) {
+               Evas_Object *badge = NULL;
+
+               badge = elm_button_add(bubble_info->label);
+               elm_object_style_set(badge, "edit_button");
+               evas_object_show(badge);
+               evas_object_data_set(badge, "conv_data", bubble_info);
+
+               if (bubble_info->draft_btn_cb) {
+                       evas_object_smart_callback_add(badge, "clicked", bubble_info->draft_btn_cb, bubble_info->priv);
+               }
+
+               elm_object_part_content_set(bubble_info->label, "elm.badge.swallow", badge);
+               edje_object_signal_emit(_EDJ(bubble_info->label), "elm,action,elm.badge.swallow,show", "");
+               edje_object_message_signal_process(_EDJ(bubble_info->label));
+       }
+
+       if (time_status_str) {
+               Evas_Object *status_icon = elm_object_part_content_unset(bubble_info->label, "elm.swallow.status");
+               if (status_icon) {
+                       evas_object_del(status_icon);
+                       status_icon = NULL;
+               }
+               elm_object_part_text_set(bubble_info->label, "elm.text.time", time_status_str);
+               edje_object_signal_emit(_EDJ(bubble_info->label), "elm,state,text,status,enabled", "");
+
+               if (!bubble_info->isDraft) {
+                       switch (bubble_info->networkStatus) {
+                               case MSG_NETWORK_SEND_FAIL:
+                               case MSG_NETWORK_SEND_PENDING:
+                               case MSG_NETWORK_SEND_TIMEOUT:
+                               case MSG_NETWORK_SEND_FAIL_MANDATORY_INFO_MISSING:
+                               case MSG_NETWORK_SEND_FAIL_TEMPORARY:
+                               case MSG_NETWORK_SEND_FAIL_BY_MO_CONTROL_WITH_MOD:
+                               case MSG_NETWORK_SEND_FAIL_BY_MO_CONTROL_NOT_ALLOWED:
+                                       /* Do not add SIM icon in sending failed case, as failed icon should be displayed */
+                                       break;
+
+                               default:
+                               {
+                                       Evas_Object *icon = NULL;
+
+                                       if (msg_common_is_sim_active()) {
+                                               if (bubble_info->sim_index == 1) {
+                                                       icon = elm_icon_add(bubble_info->label);
+                                                       evas_object_size_hint_min_set(icon, ELM_SCALE_SIZE(29), ELM_SCALE_SIZE(29));
+                                                       elm_image_file_set(icon, (char *)evas_object_data_get(bubble_info->label, "sim") , NULL);
+                                                       edje_object_signal_emit(_EDJ(bubble_info->label), "sim,icon,enabled", "");
+                                                       evas_object_show(icon);
+                                                       elm_object_part_content_set(bubble_info->label, "sim.icon", icon);
+                                               } else {
+                                                       D_WMSG("invalid sim index [%d]", bubble_info->sim_index);
+                                                       edje_object_signal_emit(_EDJ(bubble_info->label), "sim,icon,disabled", "");
+                                               }
+                                       } else { /* No SIM Card Case*/
+                                               edje_object_signal_emit(_EDJ(bubble_info->label), "sim,icon,disabled", "");
+                                       }
+                                       edje_object_message_signal_process(_EDJ(bubble_info->label));
+                               }
+                                       break;
+                       }
+               }
+
+               free(time_status_str);
+       }
+
+       D_LEAVE;
+}
+
+__EXPORT_API__ Elm_Theme *msg_common_init_custom_winset_theme()
+{
+       Elm_Theme *custom_theme = NULL;
+       custom_theme = elm_theme_new();
+       elm_theme_ref_set(custom_theme, NULL);
+       elm_theme_extension_add(custom_theme, MSG_CUSTOM_WINSET_EDJ);
+
+       return custom_theme;
+}
+
+__EXPORT_API__ void msg_common_destroy_custom_winset_theme(Elm_Theme *custom_theme)
+{
+       if (custom_theme) {
+               elm_theme_extension_del(custom_theme, MSG_CUSTOM_WINSET_EDJ);
+               elm_theme_free(custom_theme);
+       }
+}
+
+__EXPORT_API__ Evas_Object *msg_common_create_bubble_layout_bg(Evas_Object *parent, int background_style)
+{
+       Evas_Object *bg_layout = NULL;
+       int isCustomBg = 0;
+
+       bg_layout = elm_layout_add(parent);
+
+       D_SEC_MSG("is custom background exist [%d]", isCustomBg);
+
+       elm_layout_file_set(bg_layout, MSG_COMMON_EDJ, MSG_BUBBLE_BG_STYLE_DEFAULT);
+
+       evas_object_size_hint_weight_set(bg_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_fill_set(bg_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(bg_layout);
+
+       return bg_layout;
+}
+
+__EXPORT_API__ Evas_Object *msg_common_create_select_all_layout(Evas_Object *parent)
+{
+       Evas_Object *sel_all_layout = NULL;
+
+       sel_all_layout = elm_layout_add(parent);
+       elm_layout_file_set(sel_all_layout, MSG_COMMON_EDJ, MSG_COMMON_SELECT_ALL_LAYOUT);
+       evas_object_size_hint_weight_set(sel_all_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_fill_set(sel_all_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(sel_all_layout);
+
+       return sel_all_layout;
+}
+
+__EXPORT_API__ Evas_Object *msg_common_create_bubble_layout(Evas_Object *parent)
+{
+       Evas_Object *bubble_layout = NULL;
+
+       bubble_layout = elm_layout_add(parent);
+       elm_layout_file_set(bubble_layout, MSG_COMMON_EDJ, MSG_COMMON_GRP_BUBBLE_LAYOUT);
+       evas_object_size_hint_weight_set(bubble_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_fill_set(bubble_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(bubble_layout);
+
+       return bubble_layout;
+}
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+__EXPORT_API__ Evas_Object *msg_common_create_bubble_layout_with_bg(Evas_Object *parent, int background_style)
+{
+       Evas_Object *bubble_bg_layout = NULL;
+       Evas_Object *background = NULL;
+
+       bubble_bg_layout = elm_layout_add(parent);
+       elm_layout_file_set(bubble_bg_layout, MSG_COMMON_EDJ, MSG_COMMON_GRP_BUBBLE_BG_LAYOUT);
+
+       background = msg_common_create_bubble_layout_bg(parent, background_style);
+       elm_object_part_content_set(bubble_bg_layout, "elm.swallow.bg", background);
+
+       evas_object_size_hint_weight_set(bubble_bg_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_fill_set(bubble_bg_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(bubble_bg_layout);
+
+       return bubble_bg_layout;
+}
+#endif
+
+__EXPORT_API__ void msg_common_update_bubble_layout(Evas_Object *bubble_layout, int background_style)
+{
+       if (background_style <= BUBBLE_BACKGROUND_STYLE_NONE || background_style >= BUBBLE_BACKGROUND_STYLE_MAX)
+               elm_layout_file_set(bubble_layout, MSG_COMMON_EDJ, MSG_BUBBLE_BG_STYLE_DEFAULT);
+       else
+               elm_layout_file_set(bubble_layout, MSG_COMMON_EDJ, bubble_bg_style_name[background_style]);
+
+       evas_object_show(bubble_layout);
+}
+
+static bool __msg_common_is_bubble_failed_style(PMSG_COMMON_BUBBLE_INFO_S bubble_info)
+{
+       bool ret = false;
+
+       switch (bubble_info->networkStatus) {
+       case MSG_NETWORK_SEND_FAIL:
+       case MSG_NETWORK_SEND_PENDING:
+       case MSG_NETWORK_SEND_TIMEOUT:
+       case MSG_NETWORK_SEND_FAIL_MANDATORY_INFO_MISSING:
+       case MSG_NETWORK_SEND_FAIL_TEMPORARY:
+       case MSG_NETWORK_SEND_FAIL_BY_MO_CONTROL_WITH_MOD:
+       case MSG_NETWORK_SEND_FAIL_BY_MO_CONTROL_NOT_ALLOWED:
+               ret = true;
+               break;
+       default:
+               ret = false;
+       }
+
+       return ret;
+}
+
+static void __msg_common_apply_bubble_style_to_entry(Evas_Object *label, PMSG_COMMON_BUBBLE_INFO_S bubble_info)
+{
+       if (!label)
+               D_EMSG("label is NULL");
+
+
+       if (bubble_info->is_bubble_update == EINA_TRUE) {
+               return;
+       }
+
+       if (bubble_info->direction == MSG_DIRECTION_TYPE_MO) {
+               if (bubble_info->sent_bubble_style <= BUBBLE_SENT_STYLE_NONE || bubble_info->sent_bubble_style >= BUBBLE_SENT_STYLE_MAX) {
+                       if (bubble_info->need_focus) {
+                               if (bubble_info->isDraft)
+                                       elm_object_style_set(label, MSG_BUBBLE_STYLE_SENT_DRAFT_01); /* default */
+                               else if (__msg_common_is_bubble_failed_style(bubble_info))
+                                       elm_object_style_set(label, MSG_BUBBLE_STYLE_SENT_FAILED_01); /* default */
+                               else
+                                       elm_object_style_set(label, MSG_BUBBLE_STYLE_SENT_01); /* default */
+
+                               edje_object_signal_emit(_EDJ(label), "elm,state,focus,show", "");
+                       } else {
+                               if (bubble_info->isDraft)
+                                       elm_object_style_set(label, MSG_BUBBLE_STYLE_SENT_DRAFT_01); /* default */
+                               else if (__msg_common_is_bubble_failed_style(bubble_info))
+                                       elm_object_style_set(label, MSG_BUBBLE_STYLE_SENT_FAILED_01); /* default */
+                               else
+                                       elm_object_style_set(label, MSG_BUBBLE_STYLE_SENT_01); /* default */
+                       }
+               } else {
+                       if (bubble_info->need_focus) {
+                               if (bubble_info->isDraft)
+                                       elm_object_style_set(label, MSG_BUBBLE_STYLE_SENT_DRAFT_01); /* default */
+                               else if (__msg_common_is_bubble_failed_style(bubble_info))
+                                       elm_object_style_set(label, sent_failed_bubble_style_name[bubble_info->sent_bubble_style]);
+                               else
+                                       elm_object_style_set(label, sent_bubble_style_name[bubble_info->sent_bubble_style]);
+
+                               edje_object_signal_emit(_EDJ(label), "elm,state,focus,show", "");
+                       } else {
+                               if (bubble_info->isDraft)
+                                       elm_object_style_set(label, MSG_BUBBLE_STYLE_SENT_DRAFT_01); /* default */
+                               else if (__msg_common_is_bubble_failed_style(bubble_info))
+                                       elm_object_style_set(label, sent_failed_bubble_style_name[bubble_info->sent_bubble_style]);
+                               else
+                                       elm_object_style_set(label, sent_bubble_style_name[bubble_info->sent_bubble_style]);
+                       }
+               }
+       } else {
+               if (bubble_info->recv_bubble_style <= BUBBLE_RECV_STYLE_NONE || bubble_info->recv_bubble_style >= BUBBLE_RECV_STYLE_MAX) {
+                       if (bubble_info->need_focus)
+                               elm_object_style_set(label, MSG_BUBBLE_STYLE_RECV_FOCUS_01); /* default */
+                       else
+                               elm_object_style_set(label, MSG_BUBBLE_STYLE_RECV_01); /* default */
+
+                       if (bubble_info->need_focus)
+                               edje_object_signal_emit(_EDJ(label), "elm,state,focus,show", "");
+               } else {
+                       elm_object_style_set(label, recv_bubble_style_name[bubble_info->recv_bubble_style]);
+
+                       if (bubble_info->need_focus)
+                               edje_object_signal_emit(_EDJ(label), "elm,state,focus,show", "");
+               }
+       }
+}
+
+__EXPORT_API__ void msg_common_resize_bubble(PMSG_COMMON_BUBBLE_INFO_S bubble_info)
+{
+       D_MSG_RETM_IF(!bubble_info, "NULL parameter passed");
+
+       if (!bubble_info->label) {
+               D_EMSG("bubble_info->label is NULL");
+               return;
+       }
+
+       Evas_Coord minw = 0;
+       Evas_Coord minh = 0;
+
+       Evas_Object *resize_obj = elm_layout_edje_get(bubble_info->label);
+       if (bubble_info->rotation == 90 || bubble_info->rotation == 270) {
+               edje_object_size_min_restricted_calc(resize_obj, &minw, &minh, MSG_COMMON_BUBBLE_MIN_WIDTH_LADNSCAPE, 0);
+
+               if (minw > MSG_COMMON_BUBBLE_MIN_WIDTH_LADNSCAPE)
+                       evas_object_size_hint_min_set(bubble_info->label, MSG_COMMON_BUBBLE_MIN_WIDTH_LADNSCAPE, minh);
+               else
+                       evas_object_size_hint_min_set(bubble_info->label, minw, minh);
+
+               edje_object_signal_emit(_EDJ(bubble_info->label), "elm,action,rotate,landscape", "");
+       } else {
+               edje_object_size_min_restricted_calc(resize_obj, &minw, &minh, MSG_COMMON_BUBBLE_MIN_WIDTH_PORTRAIT, 0);
+
+               if (minw > MSG_COMMON_BUBBLE_MIN_WIDTH_PORTRAIT)
+                       evas_object_size_hint_min_set(bubble_info->label, MSG_COMMON_BUBBLE_MIN_WIDTH_PORTRAIT, minh);
+               else
+                       evas_object_size_hint_min_set(bubble_info->label, minw, minh);
+
+               edje_object_signal_emit(_EDJ(bubble_info->label), "elm,action,rotate,portrait", "");
+       }
+       edje_object_message_signal_process(_EDJ(bubble_info->label));
+}
+
+__EXPORT_API__ void msg_common_update_bubble(Elm_Theme *theme, PMSG_COMMON_BUBBLE_INFO_S bubble_info, PMSG_COMMON_BUBBLE_TIME_S time_info)
+{
+       if (!bubble_info || !time_info) {
+               D_EMSG("bubble_info [%x] time_info [%x]", bubble_info, time_info);
+               return;
+       }
+
+       __msg_common_apply_bubble_style_to_entry(bubble_info->label, bubble_info);
+       msg_common_bubble_fill_bubble_contents(theme, bubble_info, time_info);
+}
+
+__EXPORT_API__ void msg_common_make_bubble(Evas_Object *parent, Elm_Theme *theme, PMSG_COMMON_BUBBLE_INFO_S bubble_info, PMSG_COMMON_BUBBLE_TIME_S time_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!parent || !theme || !bubble_info, "NULL parameter passed");
+
+
+       Evas_Object *label = elm_label_add(parent);
+       elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
+       elm_object_focus_allow_set(label, EINA_TRUE);
+       elm_object_tree_focus_allow_set(label, EINA_TRUE);
+       elm_object_theme_set(label, theme);
+
+       evas_object_event_callback_add(label, EVAS_CALLBACK_KEY_DOWN, msg_ui_bubble_label_keydown_cb, bubble_info);
+
+       if (bubble_info->direction == MSG_DIRECTION_TYPE_MO) {
+               evas_object_size_hint_align_set(label, 1, -1);
+       } else {
+               evas_object_size_hint_align_set(label, 0, -1);
+       }
+
+       evas_object_data_set(label, "sim1", evas_object_data_get(parent, "sim1"));
+
+       bubble_info->label = label;
+
+       evas_object_data_set(label, "bubble_info", bubble_info);
+
+       /* fill bubble */
+       if (bubble_info->is_bubble_update == EINA_FALSE) {
+               __msg_common_apply_bubble_style_to_entry(label, bubble_info);
+               msg_common_bubble_fill_bubble_contents(theme, bubble_info, time_info);
+       }
+
+       evas_object_show(label);
+
+       D_LEAVE;
+}
+
+__EXPORT_API__ void msg_common_sync_local_font_size()
+{
+       D_ENTER;
+
+       int access_font_index = 0;
+
+       /* get accessibility font index */
+       if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &access_font_index) < 0) {
+               D_SEC_EMSG("system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE) is failed !!");
+               access_font_index = MSG_SYS_FONT_SIZE_INDEX_NORMAL;     /* 1 */
+       }
+
+       D_SEC_MSG("SYSTEM_SETTINGS_KEY_FONT_SIZE = %d", access_font_index);
+
+       /* sync current font size as accessibility font index */
+       if (msg_common_set_font_size(access_font_index) == FALSE)
+               D_EMSG("msg_common_set_font_size(index = %d) is failed !!", access_font_index);
+
+       D_LEAVE;
+}
+
+static void __msg_common_get_template_data(MSG_COMMON_TMPL_S *p_tmpl, char **pp_result, int idx)
+{
+       D_MSG_RETM_IF(!p_tmpl, "p_tmpl is NULL");
+       D_MSG_RETM_IF(!pp_result, "pp_result is NULL");
+       D_MSG_RETM_IF(idx <= 0, "idx is NULL");
+
+       char *pVal = NULL;
+
+       /* get MSG_ID */
+       pVal = pp_result[idx++];
+       if (pVal) {
+               p_tmpl->msg_id = (time_t)strtol(pVal, (char **)NULL, 10);       /* %ld */
+       }
+
+       /* get MSG_SIZE */
+       pVal = pp_result[idx++];
+       if (pVal) {
+               int msg_len = (int)strtol(pVal, (char **)NULL, 10);
+
+               if (msg_len <= 0)
+                       return;
+
+               /* get MSG_TEXT */
+               p_tmpl->p_text = (char *)malloc(msg_len+1);
+               if (!p_tmpl->p_text)
+                       return;
+               memset(p_tmpl->p_text, 0, msg_len+1);
+
+               pVal = pp_result[idx++];
+               if (pVal) {
+                       strncpy(p_tmpl->p_text, pVal, msg_len);
+               } else {
+                       free(p_tmpl->p_text);
+                       p_tmpl->p_text = NULL;
+               }
+       }
+}
+
+__EXPORT_API__ Eina_List *msg_common_get_template_list(void)
+{
+       D_ENTER;
+
+       char *query = NULL;
+       char **pp_result = NULL;
+       int row_cnt = 0;
+       int ret = MSG_UI_RET_SUCCESS;
+
+       Eina_List *p_list = NULL;
+       int i = 0;
+
+       query = sqlite3_mprintf("select MSG_ID, MSG_SIZE, MSG_TEXT from MSG_TMPL_TABLE;");
+
+       ret = msg_ui_db_get_table(query, &row_cnt, &pp_result);
+       if (ret != MSG_UI_RET_SUCCESS) {
+               char *query_create_table = NULL;
+
+               D_EMSG("msg_ui_db_get_table() fail.");
+
+               /* try to create table again */
+               query_create_table = sqlite3_mprintf("create table MSG_TMPL_TABLE(MSG_ID DATETIME PRIMARY KEY, MSG_SIZE INTEGER DEFAULT 0, MSG_TEXT TEXT);");
+
+               ret = msg_ui_db_exec_query(query_create_table);
+               if (ret == MSG_UI_RET_SUCCESS) {
+                       D_MSG("table(%s) is created.", MSG_DB_TBL_TMPL);
+               } else {
+                       D_EMSG("table(%s) creation is failed.", MSG_DB_TBL_TMPL);
+               }
+               MSG_SQLITE3_FREE(query_create_table);
+               goto exit;
+       }
+
+       for ( ; i < row_cnt; i++) {
+               int clm_idx = (i+1)*3;
+               MSG_COMMON_TMPL_S *p_tmpl = (MSG_COMMON_TMPL_S *)malloc(sizeof(MSG_COMMON_TMPL_S));
+
+               if (!p_tmpl) {
+                       D_EMSG("malloc() failed.");
+                       goto error_exit;
+               }
+               memset(p_tmpl, 0, sizeof(MSG_COMMON_TMPL_S));
+
+               __msg_common_get_template_data(p_tmpl, pp_result, clm_idx);
+               p_list = eina_list_append(p_list, (void *)p_tmpl);
+       }
+
+       goto exit;
+
+error_exit:
+       if (p_list)
+               msg_common_free_template_list(&p_list);
+
+exit:
+       if (pp_result) {
+               msg_ui_db_free_table(pp_result);
+               pp_result = NULL;
+       }
+
+       MSG_SQLITE3_FREE(query);
+
+       return p_list;
+}
+
+__EXPORT_API__ void msg_common_free_template_list(Eina_List **pp_list)
+{
+       D_MSG_RETM_IF(!pp_list, "pp_list is NULL");
+
+       Eina_List *p_list = *pp_list;
+
+       if (p_list) {
+               MSG_COMMON_TMPL_S *p_tmpl = NULL;
+
+               EINA_LIST_FREE(p_list, p_tmpl)  {
+                       if (p_tmpl) {
+                               if (p_tmpl->p_text)
+                                       free(p_tmpl->p_text);
+                               free(p_tmpl);
+                       }
+               }
+       }
+       *pp_list = NULL;
+}
+
+__EXPORT_API__ char *msg_common_get_template(int msg_id)
+{
+       D_ENTER;
+
+       char *query = NULL;
+       void *p_stmt = NULL;
+       char *p_text = NULL;
+       int ret = MSG_UI_RET_SUCCESS;
+
+       query = sqlite3_mprintf("select MSG_SIZE, MSG_TEXT from MSG_TMPL_TABLE where MSG_ID = %ld;", (time_t)msg_id);
+
+       ret = msg_ui_db_prepare_query(query, &p_stmt);
+       if (ret != MSG_UI_RET_SUCCESS) {
+               D_EMSG("msg_ui_db_prepare_query() fail.");
+               goto exit;
+       }
+
+       ret = msg_ui_db_step_query(p_stmt);
+       if (ret == MSG_UI_DB_STEP_QUERY_STATE_ROW) {
+               int len = msg_ui_db_get_column_int(p_stmt, 0);
+               if (len > 0) {
+                       p_text = (char *)malloc(len+1);
+                       if (p_text) {
+                               memset(p_text, 0, len+1);
+                               strncpy(p_text, (char *)msg_ui_db_get_column_text(p_stmt, 1), len);
+                       }
+               }
+       }
+
+exit:
+       if (p_stmt)
+               msg_ui_db_finalize_query(&p_stmt);
+
+       MSG_SQLITE3_FREE(query);
+
+       return p_text;
+}
+
+__EXPORT_API__ int msg_common_add_template(const char *p_text)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!p_text, MSG_UI_RET_ERR, "p_text is NULL.");
+
+       char *query = NULL;
+       void *p_stmt = NULL;
+       int ret = MSG_UI_RET_SUCCESS;
+
+       query = sqlite3_mprintf("insert into MSG_TMPL_TABLE values (%ld, %d, ?);", (time_t)time(NULL), strlen(p_text));
+
+       ret = msg_ui_db_prepare_query(query, &p_stmt);
+       if (ret != MSG_UI_RET_SUCCESS) {
+               D_EMSG("msg_ui_db_prepare_query() fail.");
+               goto exit;
+       }
+
+       msg_ui_db_bind_text(p_stmt, 1, p_text);
+
+       ret = msg_ui_db_step_query(p_stmt);
+       if (ret != MSG_UI_DB_STEP_QUERY_STATE_DONE) {
+               D_MSG("step_query failed (%d)", ret);
+               ret = MSG_UI_RET_ERR;
+       }
+
+exit:
+       if (p_stmt)
+               msg_ui_db_finalize_query(&p_stmt);
+
+       MSG_SQLITE3_FREE(query);
+
+       return ret;
+}
+
+__EXPORT_API__ int msg_common_del_template(int msg_id)
+{
+       D_ENTER;
+
+       char *query = NULL;
+       int ret = MSG_UI_RET_SUCCESS;
+
+       query = sqlite3_mprintf("delete from MSG_TMPL_TABLE where MSG_ID = %ld;", (time_t)msg_id);
+
+       ret = msg_ui_db_exec_query(query);
+       if (ret != MSG_UI_RET_SUCCESS) {
+               D_EMSG("msg_ui_db_exec_query() fail.");
+       }
+
+       MSG_SQLITE3_FREE(query);
+
+       return ret;
+}
+
+__EXPORT_API__ int msg_common_del_all_templates(void)
+{
+       D_ENTER;
+
+       char *query = NULL;
+       int ret = MSG_UI_RET_SUCCESS;
+
+       query = sqlite3_mprintf("delete from MSG_TMPL_TABLE;");
+
+       ret = msg_ui_db_exec_query(query);
+       if (ret != MSG_UI_RET_SUCCESS) {
+               D_EMSG("msg_ui_db_exec_query() fail.");
+       }
+
+       MSG_SQLITE3_FREE(query);
+
+       return ret;
+}
+
+__EXPORT_API__ int msg_common_update_template(int msg_id, const char *p_text)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!p_text, MSG_UI_RET_ERR, "p_text is NULL.");
+
+       char *query = NULL;
+       void *p_stmt = NULL;
+       char *p_old_text = NULL;
+       int ret = MSG_UI_RET_SUCCESS;
+
+       p_old_text = msg_common_get_template(msg_id);
+       if (p_old_text)
+               free(p_old_text);
+       else {
+               D_EMSG("msg_id(%ld) error", msg_id);
+               return MSG_UI_RET_ERR;
+       }
+
+       query = sqlite3_mprintf("update MSG_TMPL_TABLE set MSG_SIZE = %d, MSG_TEXT = ? where MSG_ID = %ld;", strlen(p_text), (time_t)msg_id);
+
+       ret = msg_ui_db_prepare_query(query, &p_stmt);
+       if (ret != MSG_UI_RET_SUCCESS) {
+               D_EMSG("msg_ui_db_prepare_query() fail.");
+               goto exit;
+       }
+
+       msg_ui_db_bind_text(p_stmt, 1, p_text);
+
+       ret = msg_ui_db_step_query(p_stmt);
+       if (ret != MSG_UI_DB_STEP_QUERY_STATE_DONE) {
+               D_MSG("step_query failed (%d)", ret);
+               ret = MSG_UI_RET_ERR;
+       }
+
+exit:
+       if (p_stmt)
+               msg_ui_db_finalize_query(&p_stmt);
+
+       MSG_SQLITE3_FREE(query);
+
+       return ret;
+}
+
+__EXPORT_API__ int msg_common_connect_db(void)
+{
+       return msg_ui_db_open();
+}
+
+__EXPORT_API__ int msg_common_disconnect_db(void)
+{
+       return msg_ui_db_close();
+}
+
+__EXPORT_API__ Evas_Object *msg_common_more_icon_get(Evas_Object *parent, char *image_path)
+{
+       if (!parent || !image_path)
+               return NULL;
+
+       Evas_Object *icon = elm_icon_add(parent);
+
+       elm_image_file_set(icon, MSG_IMAGES_EDJ, image_path);
+       elm_image_resizable_set(icon, 1, 1);
+       elm_image_smooth_set(icon, 0);
+
+       return icon;
+}
+
+__EXPORT_API__ bool msg_common_is_memory_full(void)
+{
+       D_ENTER;
+       struct statvfs s;
+       double totalSpace = 0.0;
+       double freeSpace = 0.0;
+
+       int r = storage_get_internal_memory_size(&s);
+
+       if (r < 0) {
+               D_EMSG("storage_get_internal_memory_size() is failed, err = %d", r);
+       } else {
+               totalSpace = (double)s.f_frsize*s.f_blocks;
+               freeSpace = (double)s.f_bsize*s.f_bavail;
+
+               D_SEC_MSG("total memory : %lf MB, available memory : %lf MB", totalSpace/MSG_MB, freeSpace/MSG_MB);
+
+               if (freeSpace < MSG_MINIMUM_SPACE) {
+                       D_SEC_EMSG("Memory full error. Free space is [%lf] Bytes, memory is needed over than 1048576 Bytes [1MB] ", freeSpace);
+                       return true;
+               }
+       }
+
+       return false;
+}
+
+__EXPORT_API__ bool msg_common_is_sim_active()
+{
+       D_ENTER;
+
+       bool res = false;
+       telephony_handle_list_s tel_handle_list;
+       if (telephony_init(&tel_handle_list) == TELEPHONY_ERROR_NONE) {
+               if (tel_handle_list.count > 0)  {
+                       telephony_h tel_handle = tel_handle_list.handle[0];
+                       telephony_network_service_state_e serv_state;
+                       if (telephony_network_get_service_state(tel_handle, &serv_state) == TELEPHONY_ERROR_NONE) {
+                               res = (serv_state == TELEPHONY_NETWORK_SERVICE_STATE_IN_SERVICE);
+                               D_MSG("serv_state = %d", serv_state);
+                       }
+               }
+               telephony_deinit(&tel_handle_list);
+       }
+
+       return res;
+}
+
+__EXPORT_API__ void msg_common_create_noti_toast_popup(char *text)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(text == NULL, "text is NULL");
+       notification_status_message_post(TEXT(text));
+}
+
+__EXPORT_API__ Evas_Object *msg_common_get_thumbnail(Evas_Object *parent, const char *img_path, int thumb_type, int size)
+{
+       D_MSG_RETVM_IF(!parent, NULL, "parent is NULL.");
+       D_MSG_RETVM_IF(!img_path, NULL, "img_path is NULL.");
+       Evas_Object *ic = NULL;
+
+       if (thumb_type == MSG_THUMB_TYPE_USER) {
+               ic = elm_layout_add(parent);
+               switch (size) {
+                       case MSG_THUMB_SIZE_CONV:
+                               elm_layout_file_set(ic, MSG_COMMON_EDJ, MSG_THUMB_STYLE_CONV);
+                               break;
+                       case MSG_THUMB_SIZE_LIST:
+                               elm_layout_file_set(ic, MSG_COMMON_EDJ, MSG_THUMB_STYLE_LIST);
+                               break;
+                       default:
+                               elm_layout_file_set(ic, MSG_COMMON_EDJ, MSG_THUMB_STYLE_LIST);
+                               break;
+               }
+
+               Evas_Object *image = elm_image_add(ic);
+               elm_image_file_set(image, img_path, NULL);
+               elm_image_fill_outside_set(image, EINA_TRUE);
+               elm_object_part_content_set(ic, "content", image);
+       } else {
+               ic = elm_image_add(parent);
+               elm_image_file_set(ic, img_path, NULL);
+               evas_object_color_set(ic, COLOR_BLUE);
+       }
+
+       evas_object_show(ic);
+
+       return ic;
+}
+
+static void _preference_test_set_int(const char *key, int val)
+{
+       bool existing = false;
+       preference_is_existing(key, &existing);
+       if (!existing) {
+               preference_set_int(key, val);
+       }
+}
+
+__EXPORT_API__ void msg_common_init_default_preference()
+{
+       static bool init = false;
+
+       D_ENTER;
+
+       if (init)
+               return;
+
+       D_MSG("initialize default preference");
+
+       init = true;
+
+       _preference_test_set_int(KEY_MSG_APP_FONT_SIZE, 1);
+       _preference_test_set_int(KEY_MSG_APP_RESET_SIM_INDEX, 0);
+       _preference_test_set_int(KEY_MSG_APP_SMS_PAGE_LIMIT, 3);
+       _preference_test_set_int(KEY_MSG_APP_SMS_THRESHOLD, 3);
+       _preference_test_set_int(KEY_MSG_APP_SMS_THRESHOLD_TYPE, 0);
+       _preference_test_set_int(KEY_MSG_APP_AUTO_RETRIEVE_WHILE_ROAMING_BACKUP, 1);
+       _preference_test_set_int(KEY_MSG_APP_SMS_RECIPIENT_COUNT_LIMIT, 20);
+       _preference_test_set_int(KEY_MSG_APP_MMS_RECIPIENT_COUNT_LIMIT, 20);
+}
+
+static void _naviframe_back_button_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       Evas_Object *naviframe = (Evas_Object *)data;
+       elm_naviframe_item_pop(naviframe);
+}
+
+__EXPORT_API__ Evas_Object *msg_common_naviframe_back_button_add(Evas_Object *parent, Evas_Object *navi)
+{
+       D_ENTER;
+
+       Evas_Object *btn = elm_button_add(parent);
+       evas_object_show(btn);
+       elm_object_style_set(btn, "naviframe/end_btn/default");
+       evas_object_smart_callback_add(btn, "clicked", _naviframe_back_button_cb, navi);
+       evas_object_pass_events_set(btn, EINA_FALSE);
+       evas_object_repeat_events_set(btn, EINA_FALSE);
+       return btn;
+}
+
+static void _naviframe_back_button_layout_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       D_ENTER;
+
+       Evas_Object *naviframe = (Evas_Object *)data;
+       elm_naviframe_item_pop(naviframe);
+}
+
+__EXPORT_API__ void msg_common_naviframe_title_back_arrow_set(Evas_Object *parent, Evas_Object *navi)
+{
+       D_ENTER;
+       elm_object_signal_callback_add(parent, "back_arrow,clicked", "", _naviframe_back_button_layout_cb, navi);
+}
+
+static void __msg_common_header_lang_changed(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       elm_object_part_text_set(obj, "title_text", dgettext(MESSAGE_PKGNAME, (const char *)data));
+}
+
+__EXPORT_API__ Elm_Object_Item *msg_common_naviframe_item_with_title_and_back_arrow_create(Evas_Object *navi_frame, const char *title, Evas_Object *content, Eina_Bool translatable)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!navi_frame, NULL, "navi_frame is NULL");
+
+       Elm_Object_Item *navi_item = NULL;
+       navi_item = elm_naviframe_item_push(navi_frame, NULL, NULL, NULL, content, NULL);
+
+       Evas_Object *title_layout = elm_layout_add(navi_frame);
+       elm_layout_file_set(title_layout, MSG_COMMON_EDJ, "title");
+       evas_object_size_hint_weight_set(title_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(title_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(title_layout);
+       elm_naviframe_item_style_set(navi_item, "empty");
+       elm_object_item_part_content_set(navi_item, "title", title_layout);
+
+       if (translatable) {
+               elm_object_part_text_set(title_layout, "title_text", dgettext(MESSAGE_PKGNAME, title));
+               evas_object_smart_callback_add(title_layout, "language,changed", __msg_common_header_lang_changed, (void *)title);
+       } else {
+               elm_object_part_text_set(title_layout, "title_text", title);
+       }
+       msg_common_naviframe_title_back_arrow_set(title_layout, navi_frame);
+
+       /** Hide button down arrow in title menu */
+       edje_object_signal_emit(_EDJ(title_layout), "hide,arrow", "");
+
+       return navi_item;
+}
+
+static Evas_Object *_msg_common_get_naviframe_layout(Evas_Object *navi_frame)
+{
+       Evas_Object *title_layout  = NULL;
+       Elm_Object_Item *navi_item = elm_naviframe_top_item_get(navi_frame);
+       if (navi_item) {
+               title_layout = elm_object_item_part_content_get(navi_item, "title");
+       }
+
+       return title_layout;
+}
+
+__EXPORT_API__ void msg_common_naviframe_item_text_update(Evas_Object *navi_frame, const char *title, Eina_Bool translatable)
+{
+       Evas_Object *title_layout = _msg_common_get_naviframe_layout(navi_frame);
+       if (title_layout) {
+               if (translatable) {
+                       elm_object_domain_translatable_part_text_set(title_layout, "title_text", MESSAGE_PKGNAME, title);
+               } else {
+                       elm_object_part_text_set(title_layout, "title_text", dgettext(MESSAGE_PKGNAME, title));
+               }
+       }
+}
+
+__EXPORT_API__ Evas_Object *msg_common_navframe_text_button_create(Evas_Object *parent, const char *btn_text, Eina_Bool translatable, Eina_Bool normal_color)
+{
+       Elm_Theme *theme = msg_common_init_custom_winset_theme();
+
+       Evas_Object *btn = elm_button_add(parent);
+       elm_object_theme_set(btn, theme);
+       if (normal_color) {
+               elm_object_style_set(btn, "title_text_button");
+       } else {
+               elm_object_style_set(btn, "title_text_button_white");
+       }
+
+       if (translatable) {
+               elm_object_domain_translatable_part_text_set(btn, "button_text", MESSAGE_PKGNAME, btn_text);
+       } else {
+               elm_object_part_text_set(btn, "button_text", btn_text);
+       }
+
+       msg_common_destroy_custom_winset_theme(theme);
+       return btn;
+}
+
+__EXPORT_API__ void msg_common_naviframe_item_text_update_add_buttons(Evas_Object *navi_frame, const char *title,
+               const char *cancel_title, Evas_Object** btn_cancel,
+               const char *done_title, Evas_Object** btn_done,
+               Eina_Bool translatable)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!navi_frame, "navi_frame is NULL");
+       D_MSG_RETM_IF(!title, "title is NULL");
+
+       Evas_Object *title_layout = _msg_common_get_naviframe_layout(navi_frame);
+       if (title_layout) {
+               *btn_cancel = msg_common_navframe_text_button_create(title_layout, cancel_title, translatable, EINA_TRUE);
+
+               *btn_done = msg_common_navframe_text_button_create(title_layout, done_title, translatable, EINA_TRUE);
+               if (translatable) {
+                       elm_object_domain_translatable_part_text_set(title_layout, "title_text", MESSAGE_PKGNAME, title);
+                       evas_object_smart_callback_add(title_layout, "language,changed", __msg_common_header_lang_changed, (void *)title);
+               } else {
+                       elm_object_part_text_set(title_layout, "title_text", title);
+               }
+
+               elm_object_part_content_set(title_layout, "cancel_btn", *btn_cancel);
+               elm_object_part_content_set(title_layout, "done_btn", *btn_done);
+               edje_object_signal_emit(_EDJ(title_layout), "show,select,info", "");
+       }
+}
+
+__EXPORT_API__ void msg_common_naviframe_item_text_update_del_buttons(Evas_Object *navi_frame, const char *title, Eina_Bool translatable)
+{
+       D_MSG_RETM_IF(!navi_frame, "navi_frame is NULL");
+       D_MSG_RETM_IF(!title, "title is NULL");
+
+       msg_common_naviframe_item_text_update(navi_frame, title, translatable);
+       Evas_Object *title_layout = _msg_common_get_naviframe_layout(navi_frame);
+       if (title_layout) {
+               edje_object_signal_emit(_EDJ(title_layout), "hide,select,info", "");
+       }
+}
+
+static app_control_h __msg_common_add_to_contacts_by_attr(const char *address, const char *attr,
+               CONTACT_APPSVC_LAUNCH_DATA *launch_struct)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!address, NULL, "invalid address");
+       D_MSG_RETVM_IF(!attr, NULL, "invalid attr");
+
+       app_control_h svc_handle = NULL;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return NULL;
+       }
+
+       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_ADD);
+       app_control_add_extra_data(svc_handle, attr, address);
+
+       app_control_set_mime(svc_handle, APP_CONTROL_MIME_CONTACT);
+       app_control_set_launch_mode(svc_handle, APP_CONTROL_LAUNCH_MODE_GROUP);
+
+       int launch_request_res = app_control_send_launch_request(svc_handle, launch_struct->on_reply, launch_struct->on_reply_data);
+       if (launch_request_res != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed with error-code: %d", launch_request_res);
+               app_control_destroy(svc_handle);
+               return NULL;
+       }
+
+       return svc_handle;
+}
+
+__EXPORT_API__ app_control_h msg_common_appsvc_add_phone_num_to_contacts(const char *phone, CONTACT_APPSVC_LAUNCH_DATA *launch_struct)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!phone, NULL, "invalid phone");
+       return __msg_common_add_to_contacts_by_attr(phone, APP_CONTROL_DATA_PHONE, launch_struct);
+}
+
+__EXPORT_API__ app_control_h msg_common_appsvc_add_email_to_contacts(const char *email, CONTACT_APPSVC_LAUNCH_DATA *launch_struct)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!email, NULL, "invalid email");
+       return __msg_common_add_to_contacts_by_attr(email, APP_CONTROL_DATA_EMAIL, launch_struct);
+}
+
+__EXPORT_API__ app_control_h msg_common_appsvc_view_contact(int index, CONTACT_APPSVC_LAUNCH_DATA *launch_struct)
+{
+       D_ENTER;
+       app_control_h svc_handle = NULL;
+       contacts_record_h record = NULL;
+       int person_id = index;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return NULL;
+       }
+
+       char person_id_str[DEF_BUF_LEN_S] = { 0, };
+       snprintf(person_id_str, sizeof(person_id_str), "%d", index);
+
+       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_VIEW);
+       app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_ID, person_id_str);
+
+       app_control_set_mime(svc_handle, APP_CONTROL_MIME_CONTACT);
+       app_control_set_launch_mode(svc_handle, APP_CONTROL_LAUNCH_MODE_GROUP);
+
+       int launch_request_res = app_control_send_launch_request(svc_handle, launch_struct->on_reply, launch_struct->on_reply_data);
+       if (launch_request_res != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed with error-code: %d", launch_request_res);
+               app_control_destroy(svc_handle);
+               return NULL;
+       }
+
+       return svc_handle;
+}
+
+__EXPORT_API__ app_control_h msg_common_appsvc_edit_contact(const char *num, CONTACT_APPSVC_LAUNCH_DATA *launch_struct)
+{
+       app_control_h svc_handle = NULL;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return NULL;
+       }
+
+       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_EDIT);
+       app_control_set_mime(svc_handle, APP_CONTROL_MIME_CONTACT);
+       app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_PHONE, num);
+       app_control_set_launch_mode(svc_handle, APP_CONTROL_LAUNCH_MODE_GROUP);
+
+       int launch_request_res = app_control_send_launch_request(svc_handle, launch_struct->on_reply, launch_struct->on_reply_data);
+       if (launch_request_res != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed with error-code: %d", launch_request_res);
+               app_control_destroy(svc_handle);
+               return NULL;
+       }
+
+       return svc_handle;
+}
+
+static void __msg_common_append_data_to_app_control(app_control_h service, const char *key, const char *value)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!service, "service is NULL!");
+       D_MSG_RETM_IF(!key, "key is NULL!");
+       D_MSG_RETM_IF(!value, "value is NULL!");
+       char *operation = NULL;
+
+       if ((app_control_get_operation(service, &operation) == APP_CONTROL_ERROR_NONE) && (operation != NULL)) {
+               if (strcmp(key, APP_CONTROL_DATA_TO) == 0) {
+                       if (strcmp(operation, APP_CONTROL_OPERATION_COMPOSE) == 0) {
+                               char **one_value = calloc(1, sizeof(char *));
+                               one_value[0] = strdup(value);
+                               msg_common_app_control_append_array_extra_data(service, key, (const char **)one_value, 1);
+                               free(one_value[0]);
+                               free(one_value);
+                       }
+               } else if ((strcmp(key, APP_CONTROL_DATA_TEXT) == 0) || (strcmp(key, APP_CONTROL_DATA_SUBJECT) == 0)) {
+                       if ((strcmp(operation, APP_CONTROL_OPERATION_COMPOSE) == 0) || (strcmp(operation, APP_CONTROL_OPERATION_SHARE_TEXT) == 0)) {
+                               msg_common_app_control_set_single_extra_data(service, key, value, false);
+                       }
+               } else if (strcmp(key, APP_CONTROL_DATA_PATH) == 0) {
+                       if ((strcmp(operation, APP_CONTROL_OPERATION_MULTI_SHARE) == 0) || (strcmp(operation, APP_CONTROL_OPERATION_SHARE_TEXT) == 0)) {
+                               char **one_value = calloc(1, sizeof(char *));
+                               one_value[0] = strdup(value);
+                               msg_common_app_control_append_array_extra_data(service, key, (const char **)one_value, 1);
+                               free(one_value[0]);
+                               free(one_value);
+                       } else if (strcmp(operation, APP_CONTROL_OPERATION_SHARE) == 0) {
+                               msg_common_app_control_set_single_extra_data(service, key, value, false);
+                       }
+               } else {
+                       D_MSG("Wrong key: %s", key);
+               }
+
+               free(operation);
+       } else {
+               D_MSG("Can't get operation");
+       }
+       D_LEAVE;
+}
+
+__EXPORT_API__ void msg_common_parse_uri_to_app_control(app_control_h service)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!service, "service is NULL!");
+       char *uri = NULL;
+       char *strtok_last = NULL;
+       char *token = NULL;
+
+       /* sms:+1234,6454?body=test */
+       /* mmsto:+17913331234?to=+919887777777&cc=+919008878776&subject=Fran%C3%A7ois&
+               body=this%20is%20a%20test%20message**%28%21%291234567890%20%7E%60&attachfile=/opt/usr/media/Images/image1.jpg */
+       /* file:///opt/usr/media/Images/image1.jpg added for backward compatibility */
+
+
+       if ((app_control_get_uri(service, &uri) == APP_CONTROL_ERROR_NONE) && (uri != NULL)) {
+               D_MSG("URI = [%s]", uri);
+               token = strtok_r(uri, ":", &strtok_last);
+               D_MSG("token = [%s]", token);
+               D_MSG("strtok_last = [%s]", strtok_last);
+               if ((strcmp(token, "sms") != 0) && (strcmp(token, "mmsto") != 0)) {
+                       D_MSG("Not sms or mmsto URI!");
+                       if (strcmp(token, "file") == 0) {
+                               msg_common_app_control_set_single_extra_data(service, APP_CONTROL_DATA_PATH, strtok_last, false);
+                       }
+                       free(uri);
+                       return;
+               }
+
+               if (*strtok_last != '?') {
+                       token = strtok_r(NULL, "?", &strtok_last);
+                       D_MSG("token = [%s]", token);
+                       D_MSG("strtok_last = [%s]", strtok_last);
+                       __msg_common_append_data_to_app_control(service, APP_CONTROL_DATA_TO, token);
+               } else {
+                       D_MSG("Number part not passed!");
+                       strtok_last++;
+               }
+
+
+               while ((token = strtok_r(NULL, "&", &strtok_last)) != NULL) {
+                       D_MSG("token = [%s]", token);
+                       D_MSG("strtok_last = [%s]", strtok_last);
+                       char *value = NULL;
+                       char *field = strtok_r(token, "=", &value);
+                       D_MSG("field = [%s]", field);
+                       D_MSG("value = [%s]", value);
+                       if (strcmp(field, "to") == 0 || strcmp(field, "cc") == 0) {
+                               __msg_common_append_data_to_app_control(service, APP_CONTROL_DATA_TO, value);
+                       } else if (strcmp(field, "body") == 0) {
+                               __msg_common_append_data_to_app_control(service, APP_CONTROL_DATA_TEXT, value);
+                       } else if (strcmp(field, "subject") == 0) {
+                               __msg_common_append_data_to_app_control(service, APP_CONTROL_DATA_SUBJECT, value);
+                       } else if (strcmp(field, "attachfile") == 0) {
+                               __msg_common_append_data_to_app_control(service, APP_CONTROL_DATA_PATH, value);
+                       } else {
+                               D_MSG("Field %s not supported.", field);
+                       }
+               }
+
+               free(uri);
+       } else {
+               D_MSG("Can't get URI to parse");
+       }
+
+       D_LEAVE;
+}
+
+__EXPORT_API__ int msg_common_app_control_get_single_extra_data(app_control_h app_control, const char *key, char **value)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!app_control, APP_CONTROL_ERROR_INVALID_PARAMETER, "invalid app_control");
+       D_MSG_RETVM_IF(!key, APP_CONTROL_ERROR_INVALID_PARAMETER, "invalid key");
+       int result = APP_CONTROL_ERROR_NONE;
+       bool is_array = false;
+       int array_length = 0;
+       char **array_val = NULL;
+
+       result = app_control_is_extra_data_array(app_control, key, &is_array);
+       D_MSG("is_array: %d", is_array);
+       if (result == APP_CONTROL_ERROR_NONE) {
+               if (is_array) {
+                       result = app_control_get_extra_data_array(app_control, key, &array_val, &array_length);
+                       *value = strdup(array_val[0]);
+                       int i = 0;
+                       for ( ; i < array_length; i++) {
+                               free(array_val[i]);
+                       }
+                       free(array_val);
+               } else {
+                       result = app_control_get_extra_data(app_control, key, value);
+               }
+       }
+
+       return result;
+}
+
+__EXPORT_API__ int msg_common_app_control_get_array_extra_data(app_control_h app_control, const char *key, char ***value, int *length)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!app_control, APP_CONTROL_ERROR_INVALID_PARAMETER, "invalid app_control");
+       D_MSG_RETVM_IF(!key, APP_CONTROL_ERROR_INVALID_PARAMETER, "invalid key");
+       int result = APP_CONTROL_ERROR_NONE;
+       bool is_array = false;
+       char *single_value = NULL;
+
+       result = app_control_is_extra_data_array(app_control, key, &is_array);
+       D_MSG("is_array: %d", is_array);
+       if (result == APP_CONTROL_ERROR_NONE) {
+               if (is_array) {
+                       result = app_control_get_extra_data_array(app_control, key, value, length);
+               } else {
+                       result = app_control_get_extra_data(app_control, key, &single_value);
+                       if (result == APP_CONTROL_ERROR_NONE) {
+                               *length = 1;
+                               *value = calloc(*length, sizeof(char *));
+                               *value[0] = single_value;
+                       }
+               }
+       }
+
+       return result;
+}
+
+__EXPORT_API__ int msg_common_app_control_append_single_extra_data(app_control_h app_control, const char *key, const char *value, const char *delimiter)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!app_control, APP_CONTROL_ERROR_INVALID_PARAMETER, "invalid app_control");
+       D_MSG_RETVM_IF(!key, APP_CONTROL_ERROR_INVALID_PARAMETER, "invalid key");
+       D_MSG_RETVM_IF(!value, APP_CONTROL_ERROR_INVALID_PARAMETER, "invalid value");
+       int result = APP_CONTROL_ERROR_NONE;
+       char *extra_data = NULL;
+       char *cat_string = NULL;
+
+       if ((msg_common_app_control_get_single_extra_data(app_control, key, &extra_data) == APP_CONTROL_ERROR_NONE) && (extra_data != NULL)) {
+               D_MSG("Append old data");
+               cat_string = calloc(strlen(extra_data)+strlen(value)+2, sizeof(char));
+               if (cat_string == NULL) {
+                       D_MSG("Failed to allocate memory");
+                       free(extra_data);
+                       return APP_CONTROL_ERROR_OUT_OF_MEMORY;
+               }
+               strcpy(cat_string, extra_data);
+               if (delimiter != NULL) {
+                       strcat(cat_string, delimiter);
+               }
+               strcat(cat_string, value);
+               result = app_control_add_extra_data(app_control, key, cat_string);
+               free(extra_data);
+               free(cat_string);
+       } else {
+               D_MSG("Write new data");
+               result = app_control_add_extra_data(app_control, key, value);
+       }
+       return result;
+}
+
+__EXPORT_API__ int msg_common_app_control_append_array_extra_data(app_control_h app_control, const char *key, const char* value[], int length)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!app_control, APP_CONTROL_ERROR_INVALID_PARAMETER, "invalid app_control");
+       D_MSG_RETVM_IF(!key, APP_CONTROL_ERROR_INVALID_PARAMETER, "invalid key");
+       D_MSG_RETVM_IF(!value, APP_CONTROL_ERROR_INVALID_PARAMETER, "invalid value");
+       int result = APP_CONTROL_ERROR_NONE;
+       char **extra_data = NULL;
+       int extra_data_length = 0;
+       char **cat_data = NULL;
+       int cat_data_length = 0;
+       int i = 0;
+
+       if ((msg_common_app_control_get_array_extra_data(app_control, key, &extra_data, &extra_data_length) == APP_CONTROL_ERROR_NONE) && (extra_data != NULL)) {
+               D_MSG("Append old data");
+               cat_data_length = extra_data_length + length;
+               cat_data = calloc(cat_data_length, sizeof(char *));
+               if (cat_data == NULL) {
+                       D_MSG("Failed to allocate memory");
+                       for (i = 0 ; i < extra_data_length; i++) {
+                               free(extra_data[i]);
+                       }
+                       free(extra_data);
+                       return APP_CONTROL_ERROR_OUT_OF_MEMORY;
+               }
+
+               for (i = 0 ; i < extra_data_length; i++) {
+                       cat_data[i] = extra_data[i];
+               }
+               for (i = extra_data_length ; i < cat_data_length; i++) {
+                       cat_data[i] = strdup(value[i - extra_data_length]);
+               }
+
+               result = app_control_add_extra_data_array(app_control, key, (const char **)cat_data, cat_data_length);
+
+               for (i = 0 ; i < cat_data_length; i++) {
+                       free(cat_data[i]);
+               }
+
+               free(cat_data);
+       } else {
+               D_MSG("Write new data");
+               result = app_control_add_extra_data_array(app_control, key, value, length);
+       }
+
+       free(extra_data);
+       return result;
+}
+
+__EXPORT_API__ int msg_common_app_control_set_single_extra_data(app_control_h app_control, const char *key, const char *value, bool force)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!app_control, APP_CONTROL_ERROR_INVALID_PARAMETER, "invalid app_control");
+       D_MSG_RETVM_IF(!key, APP_CONTROL_ERROR_INVALID_PARAMETER, "invalid key");
+       D_MSG_RETVM_IF(!value, APP_CONTROL_ERROR_INVALID_PARAMETER, "invalid value");
+       int result = APP_CONTROL_ERROR_NONE;
+       char *extra_data = NULL;
+
+       if ((!force) && (msg_common_app_control_get_single_extra_data(app_control, key, &extra_data) == APP_CONTROL_ERROR_NONE) && (extra_data != NULL)) {
+               D_MSG("Data already exist!");
+               free(extra_data);
+               return APP_CONTROL_ERROR_PERMISSION_DENIED;
+       }
+       result = app_control_add_extra_data(app_control, key, value);
+       return result;
+}
diff --git a/common/msg-ui-common-utility.h b/common/msg-ui-common-utility.h
new file mode 100755 (executable)
index 0000000..e50a850
--- /dev/null
@@ -0,0 +1,754 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMMON_UTILITY_H__
+#define __MSG_UI_COMMON_UTILITY_H__
+
+/*==================================================================================================
+ INCLUDE HEADERS
+ * ==================================================================================================*/
+#include <glib.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <app_control.h>
+#include <msg.h>
+#include <efl_extension.h>
+#include <app_preference.h>
+#include <telephony/telephony.h>
+#include "msg-ui-util.h"
+#include "msg-ui-color.h"
+
+/*==================================================================================================
+ DEFINITIONS
+ *==================================================================================================*/
+
+/* for i18n */
+#define MSG_COMMON_MAX_UCHAR_PATTERN_LEN       64
+#define MSG_COMMON_MAX_CHAR_PATTERN_LEN        128
+#define MSG_COMMON_NUMBER_MAX_LEN      40
+#define MSG_SAM_LOG_VIDEO_SEL                  "VDEO"
+#define MSG_SAM_LOG_AUDIO_SEL          "AUDI"
+#define MSG_SAM_LOG_IMAGE_SEL          "IMAG"
+#define MSG_SAM_LOG_TAKE_PIC_SEL               "TKPT"
+#define MSG_SAM_LOG_RCD_VIDEO_SEL      "RCVD"
+#define MSG_SAM_LOG_RCD_AUDIO_SEL      "RCAD"
+#define MSG_SAM_LOG_CALENDAR_SEL               "CALD"
+#define MSG_SAM_LOG_CONTACTS_SEL               "CNTC"
+#define MSG_SAM_LOG_RCD_MEMO_SEL       "MEMO"
+#define MSG_SAM_LOG_ATTACH_SAVE                "SAVE"
+#define MSG_SAM_LOG_FORWARD            "FOWD"
+
+#define KEY_MSG_APP_PREFIX "db/private/org.tizen.message"
+#define KEY_MSG_APP_FONT_SIZE KEY_MSG_APP_PREFIX"/font_size"
+#define KEY_MSG_APP_MMS_ALERT KEY_MSG_APP_PREFIX"/MMS_alert"
+#define KEY_MSG_APP_POPUP_DISPLAY_ENABLE KEY_MSG_APP_PREFIX"/popup_display_enable"
+#define KEY_MSG_APP_SMS_PAGE_LIMIT KEY_MSG_APP_PREFIX"/sms_page_limit"
+#define KEY_MSG_APP_SMS_THRESHOLD KEY_MSG_APP_PREFIX"/sms_mms_threshold"
+#define KEY_MSG_APP_SMS_THRESHOLD_TYPE KEY_MSG_APP_PREFIX"/sms_mms_threshold_type"
+#define KEY_MSG_APP_AUTO_RETRIEVE_WHILE_ROAMING_BACKUP KEY_MSG_APP_PREFIX"/auto_retrieve_while_roaming_backup"
+#define KEY_MSG_APP_RESET_SIM_INDEX KEY_MSG_APP_PREFIX"/reset_sim_index"
+#define KEY_MSG_APP_SMS_RECIPIENT_COUNT_LIMIT KEY_MSG_APP_PREFIX"/sms_recipient_count_limit"
+#define KEY_MSG_APP_MMS_RECIPIENT_COUNT_LIMIT KEY_MSG_APP_PREFIX"/mms_recipient_count_limit"
+
+#define MSG_APP_SMS_RECIPIENT_COUNT_LIMIT_DEFAULT_BY_CONCEPT 20
+#define MSG_APP_MMS_RECIPIENT_COUNT_LIMIT_DEFAULT_BY_CONCEPT 20
+
+#define MSG_COMMON_EDJ         EDJDIR"/msg_common.edj"
+#define MSG_CUSTOM_WINSET_EDJ  EDJDIR"/msg_custom_winset.edj"
+#define MSG_IMAGES_EDJ         EDJDIR"/msg_images.edj"
+
+#define MSG_COMMON_GRP_BUBBLE_MEDIA_LAYOUT     "common/content/bubble/media"
+#define MSG_COMMON_SELECT_ALL_LAYOUT   "elm/layout/select_all_layout"
+#define MSG_COMMON_GRP_BUBBLE_LAYOUT   "elm/layout/bubble/bubble_layout"
+#define MSG_COMMON_GRP_BUBBLE_BG_LAYOUT        "elm/layout/bubble/bubble_bg_layout"
+
+#define MSG_TITLE_THUMB_STYLE_CONTACT  "title/thumb/contact"
+#define MSG_TITLE_THUMB_STYLE_GROUP            "title/thumb/group"
+
+#define MSG_BUBBLE_BG_STYLE_DEFAULT    "elm/composer/bubble_bg_default"
+#define MSG_BUBBLE_STYLE_SENT_01       "sentmessage/custom/sent_style_01"
+#define MSG_BUBBLE_STYLE_SENT_DRAFT_01 "sentmessage/custom/sent_style_draft_01"
+#define MSG_BUBBLE_STYLE_SENT_FOCUS_01 "sentmessage/custom/sent_style_01_focus"
+#define MSG_BUBBLE_STYLE_SENT_FAILED_01        "sentmessage/custom/sent_style_01_failed"
+#define MSG_BUBBLE_STYLE_SENT_FAILED_FOCUS_01  "sentmessage/custom/sent_style_01_failed_focus"
+#define MSG_BUBBLE_STYLE_RECV_01       "readmessage/custom/recv_style_01"
+#define MSG_BUBBLE_STYLE_RECV_FOCUS_01 "readmessage/custom/recv_style_01_focus"
+
+#define MSG_BUBBLE_SIM_MSG_ICON                IMGDIR"/07_message_sim.png"
+
+#define MSGC_DOTTED_LINE_ICON  IMGDIR"/dotted_line_divider.png"
+
+#define MSG_VIEWER_TITLE_THUMB_CONTACT         IMGDIR"/title_thumbnail_image.png"
+#define MSG_VIEWER_TITLE_THUMB_GROUP           IMGDIR"/title_thumbnail_image_group.png"
+
+#define MSG_LIST_THUMB_CONTACT                 IMGDIR"/messages_list_thumb_image_single.png"
+#define MSG_LIST_THUMB_GROUP                   IMGDIR"/messages_list_thumb_image_multi.png"
+#define MSG_LIST_THUMB_CB                              IMGDIR"/messages_list_thumb_image_CB.png"
+#define MSG_LIST_THUMB_PUSH                            IMGDIR"/messages_list_thumb_image_push.png"
+#define MSG_LIST_THUMB_OTA                             IMGDIR"/messages_list_thumb_image_OTA.png"
+#define MSG_LIST_THUMB_USER_MASK_74x74 IMGDIR"/list_ic_user_thumb_masking.png"
+
+#define MSG_UI_THREAD_FLOATING_BTN_ICON                IMGDIR"/message_floating_button_icon.png"
+
+#define MSG_THUMB_SIZE_LIST 98
+#define MSG_THUMB_SIZE_CONV 80
+#define MSG_THUMB_STYLE_LIST "messages_list_thumb_image_bg"
+#define MSG_THUMB_STYLE_CONV "messages_conversation_thumb_masking"
+
+#define MSG_BUBBLE_CONTENT_H (720)
+#define MSG_BUBBLE_IMG_MAX_W (310)
+#define MSG_BUBBLE_IMG_MAX_H (562)
+#define MSG_BUBBLE_IMG_MAX_H_LANDSCAPE (179)
+#define MSG_BUBBLE_SOUND_AND_ATTACH_MAX_W 360
+
+#define MSG_MB (1024*1024)
+#define MSG_MINIMUM_SPACE      (1 * 1024 * 1024) // 1MB
+#define MSG_UTIL_DATA_PATH     "/opt/usr/data/"
+
+#define TEXT(DID)      msg_common_DID_to_string(DID)
+
+#define _SYSSTR(_id)   dgettext("sys_string", _id)
+#define _MSGSTR(_id)   dgettext("message", _id)
+
+
+/*==================================================================================================
+ ENUMERATIONS
+ *==================================================================================================*/
+typedef enum {
+       MSG_APP_FONT_SIZE_SMALL = 24,
+       MSG_APP_FONT_SIZE_NORMAL = 30,
+       MSG_APP_FONT_SIZE_LARGE = 44,
+       MSG_APP_FONT_SIZE_HUGE = 60,
+       MSG_APP_FONT_SIZE_GIANT = 76,
+       MSG_APP_FONT_SIZE_MAX
+
+} MSG_APP_FONT_SIZE_E;
+
+typedef enum {
+       MSG_APP_FONT_SIZE_INDEX_SMALL,
+       MSG_APP_FONT_SIZE_INDEX_NORMAL,
+       MSG_APP_FONT_SIZE_INDEX_LARGE,
+       MSG_APP_FONT_SIZE_INDEX_HUGE,
+       MSG_APP_FONT_SIZE_INDEX_GIANT,
+       MSG_APP_FONT_SIZE_INDEX_MAX
+
+} MSG_APP_FONT_SIZE_INDEX_E;
+
+typedef enum {
+       MSG_SYS_FONT_SIZE_INDEX_SMALL = SYSTEM_SETTINGS_FONT_SIZE_SMALL,
+       MSG_SYS_FONT_SIZE_INDEX_NORMAL =  SYSTEM_SETTINGS_FONT_SIZE_NORMAL,
+       MSG_SYS_FONT_SIZE_INDEX_LARGE = SYSTEM_SETTINGS_FONT_SIZE_LARGE,
+       MSG_SYS_FONT_SIZE_INDEX_HUGE = SYSTEM_SETTINGS_FONT_SIZE_HUGE,
+       MSG_SYS_FONT_SIZE_INDEX_GIANT =  SYSTEM_SETTINGS_FONT_SIZE_GIANT,
+       MSG_SYS_FONT_SIZE_INDEX_MAX
+} MSG_SYS_FONT_SIZE_INDEX_E;
+
+typedef enum {
+       MSG_APP_FILE_TYPE_NONE = 0,
+       MSG_APP_FILE_TYPE_IMAGE,           /**< Image category */
+       MSG_APP_FILE_TYPE_VIDEO,           /**< Video category */
+       MSG_APP_FILE_TYPE_MUSIC,           /**< Music category */
+       MSG_APP_FILE_TYPE_PDF,             /**< Pdf category */
+       MSG_APP_FILE_TYPE_DOC,             /**< Word category */
+       MSG_APP_FILE_TYPE_PPT,             /**< Powerpoint category */
+       MSG_APP_FILE_TYPE_EXCEL,           /**< Excel category */
+       MSG_APP_FILE_TYPE_VOICE,           /**< Voice category */
+       MSG_APP_FILE_TYPE_HTML,            /**< Html category */
+       MSG_APP_FILE_TYPE_FLASH,           /**< Flash category */
+       MSG_APP_FILE_TYPE_TXT,             /**< Txt category */
+       MSG_APP_FILE_TYPE_VCONTACT,        /**< Vcontact category */
+       MSG_APP_FILE_TYPE_VCALENDAR,       /**< Vcalendar category */
+       MSG_APP_FILE_TYPE_VNOTE,           /**< Vnote category */
+       MSG_APP_FILE_TYPE_VBOOKMARK,       /**< Vbookmark category */
+       MSG_APP_FILE_TYPE_SNB,             /**< Snotes category */
+       MSG_APP_FILE_TYPE_SVG,             /**< Svg category */
+       MSG_APP_FILE_TYPE_RSS,             /**< Rss reader file, *.opml */
+       MSG_APP_FILE_TYPE_JAVA,            /**< java file, *.jad, *.jar */
+       MSG_APP_FILE_TYPE_WGT,             /**< wrt , *.wgt, *.wgt */
+       MSG_APP_FILE_TYPE_TPK,                  /**< *.tpk */
+       MSG_APP_FILE_TYPE_HWP,                  /**< *.hwp */
+       MSG_APP_FILE_TYPE_EMAIL,                /**< *.eml */
+       MSG_APP_FILE_TYPE_DRM,                  /**< drm file , *.dcf */
+       MSG_APP_FILE_TYPE_ZIP,                  /**< zip compressed file , *.zip */
+       MSG_APP_FILE_TYPE_ETC,             /**< Other files category */
+       MSG_APP_FILE_TYPE_MAX
+} MSG_APP_FILE_TYPE_E;
+
+typedef enum {
+       MSG_APP_EMOTICON_NONE = 0,
+       MSG_APP_EMOTICON_HAPPY,
+       MSG_APP_EMOTICON_SORRY,
+       MSG_APP_EMOTICON_WINK,
+       MSG_APP_EMOTICON_TONGUE_DANGLING,
+       MSG_APP_EMOTICON_SUPRISED,
+       MSG_APP_EMOTICON_KISS,
+       MSG_APP_EMOTICON_ANGRY_SHOUT,
+       MSG_APP_EMOTICON_SMILE,
+       MSG_APP_EMOTICON_OMG,
+       MSG_APP_EMOTICON_LITTLE_BIT_SORRY,
+
+       MSG_APP_EMOTICON_VERY_SORRY = 11,
+       MSG_APP_EMOTICON_GUILTY,
+       MSG_APP_EMOTICON_HAHA,
+       MSG_APP_EMOTICON_WORRIED,
+       MSG_APP_EMOTICON_LOVE,
+       MSG_APP_EMOTICON_EVIL,
+       MSG_APP_EMOTICON_HALF_SMILE,
+       MSG_APP_EMOTICON_MINIMAL_SMILE,
+       MSG_APP_EMOTICON_MAX
+} MSG_APP_EMOTICON_TYPE_E;
+
+typedef enum {
+       BUBBLE_MODE_NORMAL = 0,
+       BUBBLE_MODE_SEARCH,
+       BUBBLE_MODE_SEARCH_THREAD
+} BubbleModeType;
+
+typedef enum {
+       WORD_TYPE_NONE = 0x00,
+       WORD_TYPE_URL,
+       WORD_TYPE_URL_WITH_PROTC,
+       WORD_TYPE_NUM,
+       WORD_TYPE_EMAIL
+} BubbleTextType;
+
+typedef enum {
+       BUBBLE_THUMBNAIL_NONE = 0,
+       BUBBLE_THUMBNAIL_IMAGE,
+       BUBBLE_THUMBNAIL_VIDEO,
+       BUBBLE_THUMBNAIL_AUDIO,
+       BUBBLE_THUMBNAIL_REF,
+} BubbleThumbnailType;
+
+typedef enum {
+       BUBBLE_BACKGROUND_STYLE_NONE = 0,
+       BUBBLE_BACKGROUND_STYLE_DEFAULT,
+       BUBBLE_BACKGROUND_STYLE_MAX
+} BubbleBackgoundStyleType;
+
+typedef enum {
+       BUBBLE_RECV_STYLE_NONE = 0,
+       BUBBLE_RECV_STYLE_01,
+       BUBBLE_RECV_STYLE_MAX
+} BubbleRecvStyleType;
+
+typedef enum {
+       BUBBLE_SENT_STYLE_NONE = 0,
+       BUBBLE_SENT_STYLE_01,
+       BUBBLE_SENT_STYLE_MAX
+} BubbleSentStyleType;
+
+typedef enum {
+       COMMON_RETURN_SUCCESS = 0,
+       COMMON_RETURN_FAIL = -1,
+} COMMON_RETURN_TYPE_E;
+
+typedef enum {
+       COMMON_CALL_BLOCK_RETURN_FAIL = -1,
+       COMMON_CALL_BLOCK_RETURN_SUCCESS = 0,
+       COMMON_CALL_BLOCK_RETURN_ALREADY_EXISTS,
+} COMMON_CALL_BLOCK_RETURN_TYPE_E;
+
+typedef enum {
+       MSG_THUMB_TYPE_ICON = 0,
+       MSG_THUMB_TYPE_USER
+} MSG_THUMB_TYPE_E;
+
+enum {
+       CONTACT_ID_TYPE,
+       PERSON_ID_TYPE,
+       UPDATE_CONTACT_NUMBER_TYPE,
+       UPDATE_CONTACT_EMAIL_TYPE
+};
+
+/*==================================================================================================
+ STRUCTURES
+ *==================================================================================================*/
+
+typedef struct {
+       int msg_id;
+       char *p_text;
+} MSG_COMMON_TMPL_S;
+
+typedef struct {
+       char emoticon_name[DEF_BUF_LEN_S + 1];
+       char text[DEF_BUF_LEN_D + 1];
+} MSG_COMMON_EMOTICON_S;
+
+typedef struct {
+       msg_thread_id_t threadId; /** for thread data */
+       int msgDirection; /** for thread data */
+       int smsCnt; /** for thread data */
+       int mmsCnt; /** for thread data */
+       char *address; /** for thread data */
+
+       msg_message_id_t msgId;
+       int msgType;
+       msg_storage_id_t storageId;
+       msg_folder_id_t folderId;
+       time_t *msgTime;
+       char displayDate[DEF_BUF_LEN_S];
+       char subject[DEF_BUF_LEN_S];
+       msg_network_status_t networkStatus;
+       bool bRead;
+       bool isDraft;
+       bool isFailed;
+       int direction;
+       int attachment_cnt;
+       int page_cnt;
+       void *mms_data;
+       char attachment_filename[DEF_IMG_PATH_LEN + 1];
+       char audio_filename[DEF_IMG_PATH_LEN + 1];
+       int textLen;
+       char *msgText;
+       int rotation;
+       int recv_bubble_style;
+       int sent_bubble_style;
+       int bubble_mode;
+       char *search_word;
+
+       bool need_focus;
+       bool is_bubble_update;
+
+       char thumbNailPath[DEF_IMG_PATH_LEN + 1];
+       MSG_THUMB_TYPE_E thumb_type;
+       Evas_Object *thumbnail;
+
+       Evas_Object *label;
+       Evas_Object *focus_btn;
+       Evas_Object *retrieve_button;
+       Evas_Object *install_button;
+       Evas_Object *bubble_image_obj;
+       Evas_Object *chk;
+       Eina_Bool isCheck;
+       Eina_Bool is_btn_pressed;
+       Evas_Smart_Cb install_btn_cb;
+       Evas_Smart_Cb failed_btn_cb;
+       Evas_Smart_Cb translate_btn_cb;
+       Evas_Smart_Cb failed_btn_pressed_cb;
+       Evas_Smart_Cb draft_btn_cb;
+       Evas_Smart_Cb label_clicked_cb;
+       Evas_Smart_Cb multipart_clicked_cb;
+       bool translate_enable;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       Evas_Smart_Cb retrieve_btn_cb;
+#endif
+       void *priv;
+       int sim_index;
+} MSG_COMMON_BUBBLE_INFO_S, *PMSG_COMMON_BUBBLE_INFO_S;
+
+typedef struct {
+       char *time_12h_ptn;
+       char *time_24h_ptn;
+       char *date_ptn_default;
+       char *date_ptn_year;
+       msg_time_format time_fmt;
+       char locale[DEF_BUF_LEN];
+} MSG_COMMON_BUBBLE_TIME_S, *PMSG_COMMON_BUBBLE_TIME_S;
+
+typedef struct {
+       const char *domain;
+       const char *id;
+} MSG_COMMON_LANG_CHANGED;
+
+typedef struct {
+       app_control_reply_cb on_reply;
+       void* on_reply_data;
+} CONTACT_APPSVC_LAUNCH_DATA;
+
+/*==================================================================================================
+ FUNCTION DECLARATIONS
+ *==================================================================================================*/
+/*
+ *@fn  msg_common_appsvc_add_phone_num_to_contacts(const char* phone, CONTACT_APPSVC_LAUNCH_DATA* launch_struct);
+ *@brief       This function is aimed to launch phone-contacts app to create contact based on specified phone-number
+ *@param       phone a phone number
+ *@param       launch_struct a struct that contains all required information to launch application via app-countrol
+ *@return      app_control handle, or NULL in case of failure.
+ */
+app_control_h msg_common_appsvc_add_phone_num_to_contacts(const char* phone, CONTACT_APPSVC_LAUNCH_DATA* launch_struct);
+
+/*
+ *@fn  msg_common_appsvc_add_email_to_contacts(const char* email, CONTACT_APPSVC_LAUNCH_DATA* launch_struct);
+ *@brief       This function is aimed to launch phone-contacts app to create contact based on specified email
+ *@param       email
+ *@param       launch_struct a struct that contains all required information to launch application via app-countrol
+ *@return      app_control handle, or NULL in case of failure.
+ */
+app_control_h msg_common_appsvc_add_email_to_contacts(const char* email, CONTACT_APPSVC_LAUNCH_DATA* launch_struct);
+
+/*
+ *@fn  msg_common_appsvc_view_contact(int index, CONTACT_APPSVC_LAUNCH_DATA* launch_struct);
+ *@brief       This function is aimed to launch phone-contacts app to see contact details based on specified contact-id
+ *@param       index an id of contact
+ *@param       launch_struct a struct that contains all required information to launch application via app-countrol
+ *@return      app_control handle, or NULL in case of failure.
+ */
+app_control_h msg_common_appsvc_view_contact(int index, CONTACT_APPSVC_LAUNCH_DATA* launch_struct);
+
+/*
+ *@fn  msg_common_appsvc_edit_contact(const char* num, CONTACT_APPSVC_LAUNCH_DATA* launch_struct);
+ *@brief       This function is aimed to launch phone-contacts app to select one or several contacts
+ *@param       num a phone number to be added to existing contact
+ *@param       launch_struct a struct that contains all required information to launch application via app-countrol
+ *@return      app_control handle, or NULL in case of failure.
+ */
+app_control_h msg_common_appsvc_edit_contact(const char* num, CONTACT_APPSVC_LAUNCH_DATA* launch_struct);
+
+/*
+ *@fn  msg_common_DID_to_string(char *DID);
+ *@brief        This function is used to get the translated string.
+ *@return      translated string on success, else DID string on failure
+ *@param[in]   DID
+ */
+char *msg_common_DID_to_string(char *DID);
+
+/* It makes normalized number. And if returned string is not NULL, it must be freed by caller */
+
+/*
+ *@fn  msg_common_make_normalized_number(const char *src);
+ *@brief        This function makes the normalized number.
+ *@return      normalized number string on success, else NULL on failure
+ *@param[in]   src     number string to be normalized
+ */
+char *msg_common_make_normalized_number(const char *src);
+
+/*
+ *@fn  msg_common_get_default_locale();
+ *@brief       This function is used to get default locale
+ *@return      default locale string on success, else NULL pointer on failure
+ *@param[in]   None
+ */
+const char *msg_common_get_default_locale();
+
+/*
+ *@fn  msg_common_get_timezone();
+ *@brief       This function is used to get system timezone
+ *@return      system timezone string on success, else NULL pointer on failure
+ *@param[in]   None
+ */
+char* msg_common_get_timezone();
+
+/*
+ *@fn  msg_common_get_date_text(const char *locale, char *skeleton, void *time);
+ *@brief       This function is used to get data & time string based on both locale and skeleton.
+ *             Caller must free returned string after using it, else memory will be leaked
+ *@return      data and time formated string on success, else NULL pointer on failure
+ *@param[in]   locale  locale info. of current setting
+ *@param[in]   skeleton        skeleton string caller want to see
+ *@param[in]   time_t  time_t pointer to be diaplayed. If NULL is passed, current time will be displayed
+ */
+char *msg_common_get_date_text(const char *locale, char *skeleton, void *time);
+
+/*
+ *@fn  msg_common_get_display_date(const char *locale, char* bestPattern_year, time_t *msg_t);
+ *@brief       This function is used to get date string based on both locale and bestPattern.
+ *             Caller must free returned string after using it, else memory will be leaked
+ *@return      date  string on success, else NULL pointer on failure
+ *@param[in]   locale  locale info. of current setting
+ *@param[in]   yearPattern     best pattern with year data for date and time based on locale
+ *@param[in]   time_t  time_t pointer to be diaplayed. If NULL is passed, current time will be displayed
+ */
+char *msg_common_get_display_date(const char *locale, char* yearPattern, time_t *msg_t);
+
+/*
+ *@fn  msg_common_is_valid_phone_number(const char *address);
+ *@brief       This function is used to check address is valid number or not
+ *@return      return TRUE if address is valide number type, else FALSE
+ *@param[in]   address string pointer of address
+ */
+MSG_BOOL msg_common_is_valid_phone_number(const char *address);
+
+/*
+ *@fn  msg_common_is_valid_email_addr(const char *address);
+ *@brief       This function is used to check address is valid email address or not
+ *@return      return TRUE if address is valide email address type, else FALSE
+ *@param[in]   address string pointer of address
+ */
+MSG_BOOL msg_common_is_valid_email_addr(const char *address);
+
+/*
+ *@fn  msg_common_is_connected_call(void);
+ *@brief       This function is used to know (voice or video)call is connected or not
+ *@return      return true if call is connected status, otherwise false
+ */
+bool msg_common_is_connected_call(void);
+
+/*
+ *@fn  msg_common_get_date_best_pattern(const char *locale, char *skeleton);
+ *@brief       This function is used to get best pattern string based on both locale and skeleton.
+ *@return      best pattern based on locale for data and time on success, else NULL pointer on failure
+ *@param[in]   locale  locale info. of current setting
+ *@param[in]   skeleton        skeleton string caller want to see
+ */
+char *msg_common_get_date_best_pattern(const char *locale, char *skeleton);
+
+/*
+ *@fn  msg_common_delete_last_date_format(void);
+ *@brief       This function is used to free g_last_date_format, g_last_locale, g_last_pattern.
+ */
+void msg_common_delete_last_date_format(void);
+
+/*
+ *@fn  msg_common_get_formatted_date(const char *locale, char *bestPattern, void *time);
+ *@brief       This function is used to get data & time string from best pattern based on locale.
+ *@return      data and time formated string on success, else NULL pointer on failure
+ *@param[in]   locale  locale info. of current setting
+ *@param[in]   bestPattern     best pattern for date and time based on locale
+ *@param[in]   time_t  time_t pointer to be diaplayed. If NULL is passed, current time will be displayed
+ */
+char *msg_common_get_formatted_date(const char *locale, char *bestPattern, void *time);
+
+/*
+ *@fn  msg_common_check_sim_existence(void);
+ *@brief       This function is used to know whether SIM is inserted or not.
+ *@return      return true if SIM is inserted, otherwise false
+ */
+bool msg_common_is_sim_inserted(void);
+
+/*
+ *@fn  msg_common_get_font_size(int *index);
+ *@brief       This function is used to get the index of font size.
+ *@param[in]   index   index of font size. It is used in message setting.
+ *@return      return TRUE if preference API is success, else FALSE
+ */
+MSG_BOOL msg_common_get_font_size(int *index);
+
+/*
+ *@fn  msg_common_set_font_size(int index);
+ *@brief       This function is used to set the index of font size.
+ *@return      return TRUE if preference API is success, else FALSE
+ */
+MSG_BOOL msg_common_set_font_size(int index);
+
+/*
+ *@fn  msg_common_get_index_from_font_size(int font_size);
+ *@brief       This function is used to get index from font size.
+ *@return      return font size, else -1
+ */
+int msg_common_get_index_from_font_size(int font_size);
+
+/*
+ *@fn  msg_common_get_font_size_from_index(int index);
+ *@brief       This function is used to get font size from index.
+ *@return      return index of font size, else -1
+ */
+int msg_common_get_font_size_from_index(int index);
+
+#ifdef MSG_USE_ELM_WIDGET_HEADER
+/*
+ *@fn  msg_common_apply_font_style();
+ *@brief       This function is used to change the font size & font type.
+ *@param[in]   widget_name     The widget name which font size and type is changed.
+ *@param[in]   obj     The widget which font size and type is changed.
+ *@return      return TRUE if it is success to apply font size and type, else FALSE
+ */
+MSG_BOOL msg_common_apply_font_style(const char *widget_name, Evas_Object *obj);
+#endif
+/*
+ *@fnmsg_common_reset_font_size(const char *widget_name);
+ *@brief       This function is used to reset the font size.
+ *@param[in]   widget_name     The widget name which font size is changed.
+ */
+void msg_common_reset_font_size(const char *widget_name);
+
+/*
+ *@fn  msg_common_get_file_icon(const char *filepath);
+ *@brief       This function is used to get file icon
+ *@param[in]   filepath        filepath
+ *@return      return file icon path, else NULL
+ */
+const char *msg_common_get_file_icon(const char *filepath);
+
+/*
+ *@fn  msg_common_get_timeformat();
+ *@brief       This function is used to get time format (format 12H, format 24H)
+ *@param[in]   filepath        filepath
+ *@return      return enum msg_time_format
+ */
+int msg_common_get_timeformat();
+
+int msg_common_get_contact_index_by_recipient(const char *phone_number);
+int msg_common_get_contact_display_name_by_index(int index, char *dest, int dest_size);
+
+char *msg_common_make_message_detail_text(msg_handle_t msgHandle, int msgId);
+char *msg_common_get_display_time(time_t *msg_t, PMSG_COMMON_BUBBLE_TIME_S time_info);
+void msg_common_bubble_fill_bubble_contents(Elm_Theme *theme, PMSG_COMMON_BUBBLE_INFO_S bubble_info, PMSG_COMMON_BUBBLE_TIME_S time_info);
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+void msg_common_set_bubble_info_by_thread_data(PMSG_COMMON_BUBBLE_INFO_S bubble_info,  PMSG_COMMON_BUBBLE_TIME_S time_info, msg_handle_t msgHandle, msg_struct_t msgInfo);
+#endif
+void msg_common_release_mms_struct_data(void *mms_data);
+void msg_common_set_bubble_info_by_conv_data(msg_handle_t handle, PMSG_COMMON_BUBBLE_INFO_S bubble_info, PMSG_COMMON_BUBBLE_TIME_S time_info, msg_struct_t msgInfo);
+void msg_common_resize_bubble(PMSG_COMMON_BUBBLE_INFO_S bubble_info);
+void msg_common_update_bubble(Elm_Theme *theme, PMSG_COMMON_BUBBLE_INFO_S bubble_info, PMSG_COMMON_BUBBLE_TIME_S time_info);
+void msg_common_make_bubble(Evas_Object *parent, Elm_Theme *theme, PMSG_COMMON_BUBBLE_INFO_S bubble_info, PMSG_COMMON_BUBBLE_TIME_S time_info);
+void msg_common_sync_local_font_size();
+void msg_common_change_bubble_font_style(int index);
+
+Evas_Object *msg_common_create_select_all_layout(Evas_Object *parent);
+Evas_Object *msg_common_create_bubble_layout_bg(Evas_Object *parent, int background_style);
+Evas_Object *msg_common_create_bubble_layout(Evas_Object *parent);
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+Evas_Object *msg_common_create_bubble_layout_with_bg(Evas_Object *parent, int background_style);
+#endif
+void msg_common_update_bubble_layout(Evas_Object *bubble_layout, int background_style);
+
+Elm_Theme *msg_common_init_custom_winset_theme();
+void msg_common_destroy_custom_winset_theme(Elm_Theme *custom_theme);
+
+char* msg_common_convert_cr_to_nl(char *src_text);
+char *msg_common_apply_emoticon_to_string(const char *src_text);
+char *msg_common_convert_emoticon_to_normal_text(const char *src_text);
+void msg_common_apply_emoticon_to_entry(Evas_Object *entry);
+void msg_common_apply_search_result_to_entry(Evas_Object *entry, const char *search_word);
+
+Eina_List *msg_common_get_template_list(void);
+void msg_common_free_template_list(Eina_List **pp_list);
+char *msg_common_get_template(int msg_id);
+int msg_common_add_template(const char *p_text);
+int msg_common_del_template(int msg_id);
+int msg_common_del_all_templates(void);
+int msg_common_update_template(int msg_id, const char *p_text);
+
+int msg_common_connect_db(void);
+int msg_common_disconnect_db(void);
+Evas_Object *msg_common_more_icon_get(Evas_Object *parent, char *image_path);
+bool msg_common_is_memory_full(void);
+
+void msg_common_remove_prefix_from_number(const char *pSrcNum, char *pDestNum);
+void msg_common_create_noti_toast_popup(char *text);
+
+Evas_Object *msg_common_get_thumbnail(Evas_Object *parent, const char *img_path, int thumb_type, int size);
+char *msg_common_get_thumbnail_by_conv_item(msg_handle_t handle, msg_struct_t conv_item);
+
+void msg_common_init_default_preference();
+bool msg_common_is_sim_active();
+
+Evas_Object *msg_common_naviframe_back_button_add(Evas_Object *parent, Evas_Object *navi);
+void msg_common_naviframe_title_back_arrow_set(Evas_Object *parent, Evas_Object *navi);
+Elm_Object_Item *msg_common_naviframe_item_with_title_and_back_arrow_create(Evas_Object *navi_frame, const char *title, Evas_Object *content, Eina_Bool translatable);
+
+Evas_Object* msg_common_navframe_text_button_create(Evas_Object *parent, const char *btn_text, Eina_Bool translatable, Eina_Bool normal_color);
+
+/**
+ * Adds buttons and updates the title.
+ * The buttons should be preserved on a caller-side.
+ * */
+void msg_common_naviframe_item_text_update_add_buttons(Evas_Object *navi_frame,        const char *title,
+               const char *cancel_title, Evas_Object** btn_cancel,
+               const char *done_title, Evas_Object** btn_done,
+               Eina_Bool translatable);
+
+/**
+ * Hides buttons and updates the title.
+ * The buttons are preserved on a caller-side, hence the caller have to free them.
+ * */
+void msg_common_naviframe_item_text_update_del_buttons(Evas_Object *navi_frame,        const char *title, Eina_Bool translatable);
+
+/**
+ * Updates the title on top naviframe-title.
+ * */
+void msg_common_naviframe_item_text_update(Evas_Object *navi_frame, const char *title, Eina_Bool translatable);
+
+/**
+ *@brief       Extracts uri from app control header, parses it and updates extra data bundle. Parses sms/mmsto schemas.
+ *@param[in]   service         app control header with uri inside
+ * */
+void msg_common_parse_uri_to_app_control(app_control_h service_h);
+
+/**
+ * @brief Gets the single extra data from the app_control. Checks if data is array and picks only first value.
+ *
+ * @remarks The @a value must be released using free().
+ * @param[in] app_control The app_control handle
+ * @param[in] key The name of the extra data
+ * @param[out] value The value associated with the given key
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #APP_CONTROL_ERROR_NONE Successful
+ * @retval #APP_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #APP_CONTROL_ERROR_KEY_NOT_FOUND Specified key not found
+ * @retval #APP_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
+ */
+int msg_common_app_control_get_single_extra_data(app_control_h app_control, const char *key, char **value);
+
+/**
+ * @brief Gets the extra data array from the app_control. Force data to be an array data.
+ *
+ * @remarks The @a value must be released using free().
+ * @param[in] app_control The app_control handle
+ * @param[in] key The name of the extra data
+ * @param[out] value The array value associated with the given key
+ * @param[out] length The length of the array
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #APP_CONTROL_ERROR_NONE Successful
+ * @retval #APP_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #APP_CONTROL_ERROR_KEY_NOT_FOUND Specified key not found
+ * @retval #APP_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
+ */
+int msg_common_app_control_get_array_extra_data(app_control_h app_control, const char *key, char ***value, int *length);
+
+/**
+ * @brief Appends extra data to the app_control.
+ *
+ * @param[in] app_control The app_control handle
+ * @param[in] key The name of the extra data
+ * @param[in] value The value associated with the given key
+ * @param[in] delimiter The delimiter to place in the end of old data. Can be NULL.
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #APP_CONTROL_ERROR_NONE Successful
+ * @retval #APP_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #APP_CONTROL_ERROR_KEY_REJECTED Key not available
+ * @retval #APP_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
+ */
+int msg_common_app_control_append_single_extra_data(app_control_h app_control, const char *key, const char *value, const char *delimiter);
+
+/**
+ * @brief Appends the extra data array to the app_control.
+ *
+ * @param[in] app_control The app_control handle
+ * @param[in] key The name of the extra data
+ * @param[in] value The array value associated with the given key
+ * @param[in] length The length of the array
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #APP_CONTROL_ERROR_NONE Successful
+ * @retval #APP_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #APP_CONTROL_ERROR_KEY_REJECTED Key not available
+ * @retval #APP_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
+ */
+int msg_common_app_control_append_array_extra_data(app_control_h app_control, const char *key, const char* value[], int length);
+
+/**
+ * @brief Sets extra data to the app_control.
+ *
+ * @param[in] app_control The app_control handle
+ * @param[in] key The name of the extra data
+ * @param[in] value The value associated with the given key
+ * @param[in] force If FALSE can't override previous data
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #APP_CONTROL_ERROR_NONE Successful
+ * @retval #APP_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #APP_CONTROL_ERROR_KEY_REJECTED Key not available
+ * @retval #APP_CONTROL_ERROR_PERMISSION_DENIED Data already exist
+ */
+int msg_common_app_control_set_single_extra_data(app_control_h app_control, const char *key, const char *value, bool force);
+
+#endif
diff --git a/common/msg-ui-content-utility.c b/common/msg-ui-content-utility.c
new file mode 100755 (executable)
index 0000000..e06484f
--- /dev/null
@@ -0,0 +1,501 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*=================
+ * INCLUDE HEADERS
+ * ================= */
+#include <image_util.h>
+#include "msg-ui-content-utility.h"
+#include "msg-file-util.h"
+
+static const content_table contents[] = {
+       /* 0 */
+       {"application/xhtml+xml",                                               "xhtml",        false,  DISPLAY_NONE},
+       {"application/smil",                                                    "smil",         false,  DISPLAY_NONE},
+       {"application/java-archive",                                    "jar",          false,  DISPLAY_NONE},
+       {"application/java",                                                    "jar",          false,  DISPLAY_NONE},
+       {"application/studiom",                                                 "smp",          false,  DISPLAY_NONE},
+       {"application/funMedia",                                                "smp",          false,  DISPLAY_NONE},
+       {"application/msword",                                                  "doc",          false,  DISPLAY_NONE},
+       {"application/pdf",                                                             "pdf",          false,  DISPLAY_NONE},
+       {"application/sdp",                                                             "sdp",          false,  DISPLAY_NONE},
+       {"application/ram",                                                             "ram",          false,  DISPLAY_NONE},
+       /* 10 */
+       {"application/vnd.oma.dd+xml",                                  "dd",           false,  DISPLAY_NONE},
+       {"application/vnd.oma.drm.rights+xml",                  "ro",           false,  DISPLAY_NONE},
+       {"application/vnd.oma.drm.rights+wbxml",                "ro",           false,  DISPLAY_NONE},
+       {"application/vnd.oma.drm.ro+xml",                              "oro",          false,  DISPLAY_NONE},
+       {"application/vnd.oma.drm.roap-pdu+xml",                "xml",          false,  DISPLAY_NONE},
+       {"application/vnd.oma.drm.roap-trigger+xml",    "xml",          false,  DISPLAY_NONE},
+       {"application/vnd.smaf",                                                "mmf",          true,   DISPLAY_AUDIO},
+       {"application/vnd.rn-realmedia",                                "rm",           true,   DISPLAY_AUDIO},
+       {"application/vnd.sun.j2me.java-archive",               "jar",          false,  DISPLAY_NONE},
+       {"application/vnd.samsung.theme",                               "thm",          false,  DISPLAY_NONE},
+       {"application/vnd.ms-excel",                                    "xls",          false,  DISPLAY_NONE},
+       {"application/vnd.ms-powerpoint",                               "ppt",          false,  DISPLAY_NONE},
+       {"application/vnd.ms-word",                                             "doc",          false,  DISPLAY_NONE},
+       /* 23 */
+       {"application/x-smaf",                                                  "mmf",          true,   DISPLAY_AUDIO},
+       {"application/x-shockwave-flash",                               "swf",          false,  DISPLAY_NONE},
+       {"application/x-msexcel",                                               "xls",          false,  DISPLAY_NONE},
+       {"application/x-mspowerpoint",                                  "ppt",          false,  DISPLAY_NONE},
+       /* 27 */
+       {"audio/basic",                                                                 "snd",          true,   DISPLAY_AUDIO},
+       {"audio/mpeg",                                                                  "mp3",          true,   DISPLAY_AUDIO},
+       {"audio/mp3",                                                                   "mp3",          true,   DISPLAY_AUDIO},
+       {"audio/mpg3",                                                                  "mp3",          true,   DISPLAY_AUDIO},
+       {"audio/mpeg3",                                                                 "mp3",          true,   DISPLAY_AUDIO},
+       {"audio/mpg",                                                                   "mp3",          true,   DISPLAY_AUDIO},
+       {"audio/aac",                                                                   "aac",          true,   DISPLAY_AUDIO},
+       {"audio/g72",                                                                   "aac",          true,   DISPLAY_AUDIO},
+       {"audio/amr",                                                                   "amr",          true,   DISPLAY_AUDIO},
+       {"audio/amr-wb",                                                                "amr",          true,   DISPLAY_AUDIO},
+       {"audio/mmf",                                                                   "mmf",          true,   DISPLAY_AUDIO},
+       {"audio/smaf",                                                                  "mmf",          true,   DISPLAY_AUDIO},
+       {"audio/iMelody",                                                               "imy",          true,   DISPLAY_AUDIO},
+       {"audio/imelody",                                                               "imy",          true,   DISPLAY_AUDIO},
+       {"audio/melody",                                                                "imy",          true,   DISPLAY_AUDIO},
+       {"audio/mid",                                                                   "mid",          true,   DISPLAY_AUDIO},
+       {"audio/midi",                                                                  "mid",          true,   DISPLAY_AUDIO},
+       {"audio/sp-midi",                                                               "spm",          true,   DISPLAY_AUDIO},
+       {"audio/wave",                                                                  "wav",          true,   DISPLAY_AUDIO},
+       {"audio/wav",                                                                   "wav",          true,   DISPLAY_AUDIO},
+       {"audio/3gpp",                                                                  "3gp",          true,   DISPLAY_AUDIO},
+       {"audio/mp4",                                                                   "mp4",          true,   DISPLAY_AUDIO},
+       {"audio/MP4A-LATM",                                                             "mp4",          true,   DISPLAY_AUDIO},
+       {"audio/m4a",                                                                   "m4a",          true,   DISPLAY_AUDIO},
+       {"audio/mpeg4",                                                                 "mp4",          true,   DISPLAY_AUDIO},
+       {"audio/wma",                                                                   "wma",          true,   DISPLAY_AUDIO},
+       {"audio/xmf",                                                                   "xmf",          true,   DISPLAY_AUDIO},
+       {"audio/imy",                                                                   "imy",          true,   DISPLAY_AUDIO},
+       {"audio/mobile-xmf",                                                    "mxmf",         true,   DISPLAY_AUDIO},
+       /* 56 */
+       {"audio/vnd.rn-realaudio",                                              "rm",           true,   DISPLAY_AUDIO},
+       /* 57 */
+       {"audio/x-mpeg",                                                                "mp3",          true,   DISPLAY_AUDIO},
+       {"audio/x-mp3",                                                                 "mp3",          true,   DISPLAY_AUDIO},
+       {"audio/x-mpeg3",                                                               "mp3",          true,   DISPLAY_AUDIO},
+       {"audio/x-mpg",                                                                 "mp3",          true,   DISPLAY_AUDIO},
+       {"audio/x-amr",                                                                 "amr",          true,   DISPLAY_AUDIO},
+       {"audio/x-mmf",                                                                 "mmf",          true,   DISPLAY_AUDIO},
+       {"audio/x-smaf",                                                                "mmf",          true,   DISPLAY_AUDIO},
+       {"audio/x-iMelody",                                                             "imy",          true,   DISPLAY_AUDIO},
+       {"audio/x-midi",                                                                "mid",          true,   DISPLAY_AUDIO},
+       {"audio/x-mpegaudio",                                                   "mp3",          true,   DISPLAY_AUDIO},
+       {"audio/x-pn-realaudio",                                                "ra",           true,   DISPLAY_AUDIO},
+       {"audio/x-pn-multirate-realaudio",                              "rm",           true,   DISPLAY_AUDIO},
+       {"audio/x-pn-multirate-realaudio-live",                 "rm",           true,   DISPLAY_AUDIO},
+       {"audio/x-wave",                                                                "wav",          true,   DISPLAY_AUDIO},
+       {"audio/x-wav",                                                                 "wav",          true,   DISPLAY_AUDIO},
+       {"audio/x-ms-wma",                                                              "wma",          true,   DISPLAY_AUDIO},
+       {"audio/x-mid",                                                                 "mid",          true,   DISPLAY_AUDIO},
+       {"audio/x-ms-asf",                                                              "asf",          true,   DISPLAY_AUDIO},
+       {"audio/x-xmf",                                                                 "xmf",          true,   DISPLAY_AUDIO},
+       /* 76 */
+       {"image/gif",                                                                   "gif",          true,   DISPLAY_IMAGE},
+       {"image/jpeg",                                                                  "jpg",          true,   DISPLAY_IMAGE},
+       {"image/jpg",                                                                   "jpg",          true,   DISPLAY_IMAGE},
+       {"image/tiff",                                                                  "tif",          true,   DISPLAY_IMAGE},
+       {"image/tif",                                                                   "tif",          true,   DISPLAY_IMAGE},
+       {"image/png",                                                                   "png",          true,   DISPLAY_IMAGE},
+       {"image/wbmp",                                                                  "wbmp",         true,   DISPLAY_IMAGE},
+       {"image/pjpeg",                                                                 "jpg",          true,   DISPLAY_IMAGE},
+       {"image/bmp",                                                                   "bmp",          true,   DISPLAY_IMAGE},
+       {"image/svg+xml",                                                               "svg",          false,  DISPLAY_NONE},
+       {"image/svg-xml",                                                               "svg",          false,  DISPLAY_NONE},
+       /* 87 */
+       {"image/vnd.wap.wbmp",                                                  "wbmp",         true,   DISPLAY_IMAGE},
+       {"image/vnd.tmo.my5-gif",                                               "gif",          true,   DISPLAY_IMAGE},
+       {"image/vnd.tmo.my5-jpg",                                               "jpg",          true,   DISPLAY_IMAGE},
+       /* 90 */
+       {"image/x-bmp",                                                                 "bmp",          true,   DISPLAY_IMAGE},
+       /* 91 */
+       {"message/rfc822",                                                              "elm",          false,  DISPLAY_NONE},
+       /* 92 */
+       {"text/txt",                                                                    "txt",          true,   DISPLAY_TEXT},
+       {"text/html",                                                                   "html",         false,  DISPLAY_NONE},
+       {"text/plain",                                                                  "txt",          true,   DISPLAY_TEXT},
+       {"text/iMelody",                                                                "imy",          true,   DISPLAY_NONE},
+       /* 96 */
+       {"text/vnd.wap.wml",                                                    "wml",          false,  DISPLAY_NONE},
+       {"text/vnd.sun.j2me.app-descriptor",                    "jad",          false,  DISPLAY_NONE},
+       /* 98 */
+       {"text/x-vCalendar",                                                    "vcs",          false,  DISPLAY_NONE},
+       {"text/x-vCard",                                                                "vcf",          false,  DISPLAY_NONE},
+       {"text/x-iMelody",                                                              "imy",          true,   DISPLAY_NONE},
+       {"text/x-imelody",                                                              "imy",          true,   DISPLAY_NONE},
+       {"text/x-vnote",                                                                "vnt",          false,  DISPLAY_NONE},
+       /* 103 */
+       {"video/mpeg4",                                                                 "mp4",          true,   DISPLAY_VIDEO},
+       {"video/mp4",                                                                   "mp4",          true,   DISPLAY_VIDEO},
+       {"video/h263",                                                                  "3gp",          true,   DISPLAY_VIDEO},
+       {"video/3gpp",                                                                  "3gp",          true,   DISPLAY_VIDEO},
+       {"video/3gp",                                                                   "3gp",          true,   DISPLAY_VIDEO},
+       {"video/avi",                                                                   "avi",          true,   DISPLAY_VIDEO},
+       {"video/sdp",                                                                   "sdp",          true,   DISPLAY_VIDEO},
+       {"video/mp4v-es",                                                               "3gp",          true,   DISPLAY_VIDEO},
+       {"video/mpeg",                                                                  "3gp",          true,   DISPLAY_VIDEO},
+       /* 112 */
+       {"video/vnd.rn-realvideo",                                              "rm",           true,   DISPLAY_VIDEO},
+       {"video/vnd.rn-realmedia",                                              "rm",           true,   DISPLAY_VIDEO},
+       /* 114 */
+       {"video/x-mp4",                                                                 "mp4",          true,   DISPLAY_VIDEO},
+       {"video/x-pv-mp4",                                                              "mp4",          true,   DISPLAY_VIDEO},
+       {"video/x-pn-realvideo",                                                "rv",           true,   DISPLAY_VIDEO},
+       {"video/x-pn-multirate-realvideo",                              "rm",           true,   DISPLAY_VIDEO},
+       {"video/x-ms-wmv",                                                              "wmv",          true,   DISPLAY_VIDEO},
+       {"video/x-ms-asf",                                                              "asf",          true,   DISPLAY_VIDEO},
+       {"video/x-pv-pvx",                                                              "pvx",          true,   DISPLAY_VIDEO},
+       /* 121 */
+       {"*/*",         NULL,           false,          DISPLAY_NONE},
+       /* 122 */
+       {"CONTENT_TYPE_END", NULL, false,       DISPLAY_NONE}           /* last index, do not remove or change */
+};
+
+static const int content_table_index[] = {
+       0, 10, 23,
+       27, 56, 57,
+       76, 87, 90,
+       91, 91, 91,
+       92, 96, 98,
+       103, 112, 114,
+       121, 121, 121,
+       122,    /* This is count value of content table items, change when table item is updated */
+};
+
+/*==========================
+* FUNCTION IMPLEMENTATIONS
+*========================== */
+CONTENT_MIME_TYPE __get_content_mime_type(const char *szType)
+{
+       if (szType == NULL)
+               return CONTENT_MIME_UNKNOWN;
+
+       if (!strcasecmp(szType, "application"))
+               return CONTENT_MIME_APPLICATION;
+       else if (!strcasecmp(szType, "audio"))
+               return CONTENT_MIME_AUDIO;
+       else if (!strcasecmp(szType, "image"))
+               return CONTENT_MIME_IMAGE;
+       else if (!strcasecmp(szType, "message"))
+               return CONTENT_MIME_MESSAGE;
+       else if (!strcasecmp(szType, "text"))
+               return CONTENT_MIME_TEXT;
+       else if (!strcasecmp(szType, "video"))
+               return CONTENT_MIME_VIDEO;
+       else if (!strcasecmp(szType, "*"))
+               return CONTENT_MIME_ALL;
+
+       return CONTENT_MIME_UNKNOWN;
+}
+
+int __get_table_index_from_mime_string(const char *mime_string)
+{
+       int type;
+       int subtype;
+       char szType[50] = {0,};
+       char szSubType[50] = {0,};
+       char *szTmpStart = NULL;
+       char c;
+       int i = 0;
+       int j = 0;
+       int start;
+       int end;
+       char *content_type = NULL;
+       int len;
+
+       if (mime_string == NULL) {
+               D_EMSG("mime_string is NULL");
+               return CONTENT_TYPE_INVALID;
+       }
+
+       D_MSG("Input mime_string = %s", mime_string);
+
+       content_type = (char *)calloc(1, strlen(mime_string) + 1);
+
+       if (content_type == NULL) {
+               D_EMSG("content_type is NULL");
+               return CONTENT_TYPE_INVALID;
+       }
+
+       strncpy(content_type, mime_string, strlen(mime_string));
+
+       type = 0;
+       subtype = 0;
+
+       szTmpStart = content_type;
+       len = strlen(szTmpStart);
+
+       while (true) {
+               if (i >= len) {
+                       free(content_type);
+                       return CONTENT_TYPE_INVALID;
+               }
+
+               c = szTmpStart[i++];
+
+               if (c == '/') {
+                       szType[j] = '\0';
+                       type = __get_content_mime_type(szType);
+                       szTmpStart = &szTmpStart[i];
+                       break;
+               } else {
+                       szType[j++] = c;
+               }
+       }
+
+       i = 0;
+       j = 0;
+       len = strlen(szTmpStart);
+
+       while (true) {
+               c = szTmpStart[i++];
+               if (i > len) {
+                       szSubType[j] = '\0';
+                       break;
+               }
+
+               if (c == '.') {
+                       szSubType[j] = '\0';
+                       if (!strcasecmp(szSubType, "vnd"))
+                               subtype = CONTENT_SUB_TYPE_VND;
+                       break;
+               } else if (c == '-') {
+                       szSubType[j] = '\0';
+                       if (!strcasecmp(szSubType, "x"))
+                               subtype = CONTENT_SUB_TYPE_X;
+                       break;
+               } else {
+                       szSubType[j++] = c;
+               }
+       }
+
+
+       start = content_table_index[type * 3 + subtype];
+       end = content_table_index[type * 3 + subtype + 1];
+
+       if (start == end && type < CONTENT_MIME_VIDEO)
+               end = content_table_index[(type + 1) * 3 + subtype + 1];
+
+       for (i = start; i < end; i++) {
+               if (!strcasecmp(contents[i].mime_string, mime_string)) {
+                       free(content_type);
+                       return i;
+               }
+       }
+
+       free(content_type);
+
+       return CONTENT_TYPE_INVALID;
+}
+
+bool __get_display_value_from_content_table(int content_index)
+{
+       if (content_index < 0 || content_index > content_table_index[CONTENT_MIME_MAX * 3]) {
+               D_EMSG("invalid content table index!! [%d]", content_index);
+               return false;
+       }
+
+       D_MSG("content index = %d, display_available = %d", content_index, contents[content_index].display_available);
+
+       return contents[content_index].display_available;
+}
+
+const char *__get_mime_type_from_content_table(int content_index)
+{
+       if (content_index < 0 || content_index > content_table_index[CONTENT_MIME_MAX * 3]) {
+               D_EMSG("invalid content table index!! [%d]", content_index);
+               return NULL;
+       }
+
+       D_MSG("content index = %d, mime_string = %s", content_index, contents[content_index].mime_string);
+
+       return contents[content_index].mime_string;
+}
+
+const char *__get_ext_string_from_content_table(int content_index)
+{
+       if (content_index < 0 || content_index > content_table_index[CONTENT_MIME_MAX * 3]) {
+               D_EMSG("invalid content table index!! [%d]", content_index);
+               return NULL;
+       }
+
+       D_MSG("content index = %d, ext_string = %s", content_index, contents[content_index].ext_string);
+
+       return contents[content_index].ext_string;
+}
+
+CONTENT_DISPLAY_TYPE __get_display_type_from_content_table(int content_index)
+{
+       if (content_index < 0 || content_index > content_table_index[CONTENT_MIME_MAX * 3]) {
+               D_EMSG("invalid content table index!! [%d]", content_index);
+               return DISPLAY_NONE;
+       }
+
+       D_MSG("content index = %d, display_type = %d", content_index, contents[content_index].display_type);
+
+       return contents[content_index].display_type;
+}
+
+__EXPORT_API__ bool msg_ui_content_get_display_bool(const char *content_type)
+{
+       int table_type = -1;
+       table_type = __get_table_index_from_mime_string(content_type);
+
+       return __get_display_value_from_content_table(table_type);
+}
+
+__EXPORT_API__ char *msg_ui_content_get_mime_string(const char *content_type)
+{
+       int table_type = -1;
+       table_type = __get_table_index_from_mime_string(content_type);
+
+       return (char *)__get_mime_type_from_content_table(table_type);
+}
+
+__EXPORT_API__ char *msg_ui_content_get_extension_string(const char *content_type)
+{
+       int table_type = -1;
+       table_type = __get_table_index_from_mime_string(content_type);
+
+       return (char *)__get_ext_string_from_content_table(table_type);
+}
+
+__EXPORT_API__ CONTENT_DISPLAY_TYPE msg_ui_content_get_display_type(const char *content_type)
+{
+       int table_type = -1;
+       table_type = __get_table_index_from_mime_string(content_type);
+
+       return __get_display_type_from_content_table(table_type);
+}
+
+static char *__msg_ui_content_get_file_ext(const char *a_pszfile_name)
+{
+       if (a_pszfile_name != NULL) {
+               int nlen = strlen(a_pszfile_name);
+               char *psztemp = (char *)a_pszfile_name + nlen;
+
+               while (nlen--) {
+                       psztemp--;
+                       if (*psztemp == '.') {
+                               psztemp++;
+                               break;
+                       }
+               }
+               return psztemp;
+       }
+
+       return NULL;
+}
+
+static bool __msg_ui_content_is_allowed_restricted_mode(const char *file_path, int media_type)
+{
+       D_MSG_RETVM_IF(file_path == NULL, false, "file_path is NULL");
+
+       bool ret = true;
+       char *ext = __msg_ui_content_get_file_ext(file_path);
+       int dst_w = 0;
+       int dst_h = 0;
+
+       if (media_type == MMS_SMIL_MEDIA_IMG) {
+               if ((strcasecmp(ext, "jpg") != 0) && (strcasecmp(ext, "jpeg") != 0) && (strcasecmp(ext, "gif") != 0) && (strcasecmp(ext, "wbmp") != 0)) {
+                       ret = false;
+               } else {
+                       /* Check resoluton*/
+                       int restrict_w = 0;
+                       int restrict_h = 0;
+
+                       if (msg_file_exists(file_path) == EINA_FALSE) {
+                               D_SEC_EMSG("File is not existed = %s", file_path);
+                               return false;
+                       }
+
+                       /*decode jpeg file*/
+                       unsigned char *image_buffer = NULL;
+                       unsigned int buffer_size = 0;
+
+                       int err = 0;
+                       if ((err = image_util_decode_jpeg(file_path, IMAGE_UTIL_COLORSPACE_RGB888, &image_buffer, &dst_w, &dst_h, &buffer_size)) != IMAGE_UTIL_ERROR_NONE) {
+                               D_EMSG("image_util_decode_jpeg is failed!!", err);
+                               return false;
+                       }
+
+                       if (image_buffer)
+                               free(image_buffer);
+
+                       D_MSG("Image Resolution is (%d x %d)", dst_w, dst_h);
+
+                       if (dst_w > dst_h) {
+                               restrict_w = 640;
+                               restrict_h = 480;
+                       } else {
+                               restrict_w = 480;
+                               restrict_h = 640;
+                       }
+
+                       if (dst_w > restrict_w || dst_h > restrict_h) {
+                               ret = false;
+                       }
+               }
+       } else if (media_type == MMS_SMIL_MEDIA_VIDEO) {
+               if ((strcasecmp(ext, "3gp") != 0) && (strcasecmp(ext, "3gpp") != 0))
+                       ret = false;
+       } else if (media_type == MMS_SMIL_MEDIA_AUDIO) {
+               if ((strcasecmp(ext, "amr") != 0) && (strcasecmp(ext, "mid") != 0) && (strcasecmp(ext, "midi") != 0))
+                       ret = false;
+       } else {
+               D_MSG("It check only Image, Video, Audio type, media_type[%d] is not need to check", media_type);
+       }
+
+       return ret;
+}
+
+__EXPORT_API__ bool msg_ui_content_check_forward_available(msg_handle_t msg_handle, const char *item_path, int media_type)
+{
+       D_ENTER;
+       /*Check Creation Mode*/
+       bool allowed = false;
+       int creationMode = -1;
+       msg_struct_t setting = NULL;
+
+       setting = msg_create_struct(MSG_STRUCT_SETTING_MMS_SEND_OPT);
+
+       if (setting) {
+               if (msg_get_mms_send_opt(msg_handle, setting) != MSG_SUCCESS) {
+                       D_EMSG("msg_get_mms_send_opt() is failed");
+                       msg_release_struct(&setting);
+                       return allowed;
+               }
+
+               if (msg_get_int_value(setting, MSG_MMS_SENDOPT_CREATION_MODE_INT, &creationMode) == MSG_SUCCESS) {
+                       D_IMSG("current creationMode = %d", creationMode);
+
+                       if (creationMode == MSG_CREATION_MODE_RESTRICTED)
+                               allowed = __msg_ui_content_is_allowed_restricted_mode(item_path, media_type);
+                       else
+                               allowed = true;
+               }
+
+               msg_release_struct(&setting);
+       } else {
+               D_EMSG("msg_create_struct is failed");
+       }
+
+       D_LEAVE;
+
+       return allowed;
+}
diff --git a/common/msg-ui-content-utility.h b/common/msg-ui-content-utility.h
new file mode 100755 (executable)
index 0000000..5b6a0c6
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_CONTENT_UTILITY_H__
+#define __MSG_UI_CONTENT_UTILITY_H__
+
+/*==================================================================================================
+ INCLUDE HEADERS
+ * ==================================================================================================*/
+#include <stdio.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <msg-ui-util.h>
+#include <msg.h>
+#include <msg_types.h>
+#include <Ecore_X.h>
+#include <Elementary.h>
+
+/*==================================================================================================
+ DEFINITIONS
+ *==================================================================================================*/
+#define CONTENT_TYPE_INVALID -1
+#define CONTENT_SUB_TYPE_NONE 0
+#define CONTENT_SUB_TYPE_VND 1
+#define CONTENT_SUB_TYPE_X 2
+#define CONTENT_SUB_TYPE_ALL 3
+
+/*==================================================================================================
+ ENUMERATIONS
+ *==================================================================================================*/
+typedef enum _CONTENT_MIME_TYPE_ {
+       CONTENT_MIME_UNKNOWN = -1,
+       CONTENT_MIME_APPLICATION,
+       CONTENT_MIME_AUDIO,
+       CONTENT_MIME_IMAGE,
+       CONTENT_MIME_MESSAGE,
+       CONTENT_MIME_TEXT,
+       CONTENT_MIME_VIDEO,
+       CONTENT_MIME_ALL,       /* for * / * */
+       CONTENT_MIME_MAX,       /* for boundary, do not use this value for reference */
+} CONTENT_MIME_TYPE;
+
+typedef enum _CONTENT_DISPLAY_TYPE_ {
+       DISPLAY_NONE = -1,
+       DISPLAY_TEXT,
+       DISPLAY_IMAGE,
+       DISPLAY_VIDEO,
+       DISPLAY_AUDIO,
+       DISPLAY_ALL,
+} CONTENT_DISPLAY_TYPE;
+
+/*==================================================================================================
+ STRUCTURES
+ *==================================================================================================*/
+typedef struct _Content_Table_ {
+       const char *mime_string;
+       const char *ext_string;
+       bool display_available;
+       CONTENT_DISPLAY_TYPE display_type;
+} content_table;
+
+/*==================================================================================================
+ FUNCTION DECLARATIONS
+ *==================================================================================================*/
+bool msg_ui_content_get_display_bool(const char *content_type);
+char *msg_ui_content_get_mime_string(const char *content_type);
+char *msg_ui_content_get_extension_string(const char *content_type);
+CONTENT_DISPLAY_TYPE msg_ui_content_get_display_type(const char *content_type);
+bool msg_ui_content_check_forward_available(msg_handle_t msg_handle, const char *item_path, int media_type);
+#endif
diff --git a/common/msg-ui-db-util.c b/common/msg-ui-db-util.c
new file mode 100755 (executable)
index 0000000..89aeaee
--- /dev/null
@@ -0,0 +1,339 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*=================
+ * INCLUDE HEADERS
+ * ================= */
+#include <sys/stat.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <unistd.h>
+#include <errno.h>
+#include "msg-ui-db-util.h"
+
+struct db_info {
+       sqlite3 *hdl;
+       int use_cnt;
+};
+static struct db_info msg_db = {NULL, 0};
+
+ /*==========================
+ * FUNCTION IMPLEMENTATIONS
+ *========================== */
+
+static int __msg_ui_sqlite3_busyhandler(void *pData, int count)
+{
+       if (5 - count > 0) {
+               D_EMSG("Busy Handler Called! : PID(%d) / CNT(%d)\n", getpid(), count+1);
+               usleep((count+1)*100000);
+               return 1;
+       } else {
+               D_EMSG("Busy Handler will be returned SQLITE_BUSY error : PID(%d) \n", getpid());
+               return 0;
+       }
+}
+
+
+static int msg_ui_sqlite3_open(const char *pszFilePath, sqlite3 **ppDB, int nOption)
+{
+       if ((pszFilePath == NULL) || (ppDB == NULL)) {
+               D_WMSG("Invalid input param error");
+               return SQLITE_ERROR;
+       }
+
+       if ((geteuid() != 0) && (access(pszFilePath, R_OK))) {
+               if (errno == EACCES) {
+                       D_EMSG("file access permission error");
+                       return SQLITE_PERM;
+               }
+       }
+
+       /* Open DB */
+       int rc = sqlite3_open(pszFilePath, ppDB);
+       if (SQLITE_OK != rc) {
+               D_EMSG("sqlite3_open error(%d)", rc);
+               return rc;
+       }
+
+       rc = sqlite3_busy_handler(*ppDB, __msg_ui_sqlite3_busyhandler, NULL);
+       if (SQLITE_OK != rc) {
+               D_EMSG("Fail to register busy handler\n");
+               sqlite3_close(*ppDB);
+               return rc;
+       }
+
+       return rc;
+}
+
+static int msg_ui_sqlite3_open_with_options(const char *pszFilePath, sqlite3 **ppDB, int flags, const char *zVfs)
+{
+       int mode;
+
+       if ((pszFilePath == NULL) || (ppDB == NULL)) {
+               D_WMSG("sqlite3 handle null error");
+               return SQLITE_ERROR;
+       }
+
+       mode = R_OK;
+
+       if ((geteuid() != 0) && (access(pszFilePath, mode))) {
+               if (errno == EACCES) {
+                       D_EMSG("file access permission error");
+                       return SQLITE_PERM;
+               }
+       }
+
+       /* Open DB */
+       int rc = sqlite3_open_v2(pszFilePath, ppDB, flags, zVfs);
+       if (SQLITE_OK != rc) {
+               D_EMSG("sqlite3_open_v2 error(%d)", rc);
+               return rc;
+       }
+
+       rc = sqlite3_busy_handler(*ppDB, __msg_ui_sqlite3_busyhandler, NULL);
+       if (SQLITE_OK != rc) {
+               D_EMSG("Fail to register busy handler\n");
+               sqlite3_close(*ppDB);
+               return rc;
+       }
+
+       return rc;
+}
+
+int msg_ui_sqlite3_close(sqlite3 *pDB)
+{
+       char *pszErrorMsg = NULL;
+
+       /* Close DB */
+       int rc = sqlite3_close(pDB);
+       if (SQLITE_OK != rc) {
+               D_WMSG("Fail to change journal mode: %s\n", pszErrorMsg);
+               sqlite3_free(pszErrorMsg);
+               return rc;
+       }
+
+       return SQLITE_OK;
+}
+
+
+int msg_ui_db_open(void)
+{
+       int ret = 0;
+
+       if (msg_db.hdl) {
+               D_MSG("msg_db is already opened.");
+       } else {
+               ret = msg_ui_sqlite3_open(MSG_DB_PATH, &msg_db.hdl, 0);
+               if (ret != SQLITE_OK) {
+                       D_EMSG("msg_db open error (%d)", ret);
+
+                       /*create db file if db file has been removed. */
+                       if (ret == SQLITE_CANTOPEN) {
+                               D_MSG("mkdir() returned %d", mkdir(MSG_DB_DIR, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH));
+
+                               ret = msg_ui_sqlite3_open_with_options(MSG_DB_PATH, &msg_db.hdl, SQLITE_OPEN_FULLMUTEX | SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+                               if (ret == SQLITE_OK) {
+                                       D_MSG("db file is created again.");
+                                       goto success_exit;
+                               } else {
+                                       D_EMSG("db file creation is failed.");
+                               }
+                       }
+
+                       msg_db.hdl = NULL;
+                       return MSG_UI_RET_ERR;
+               }
+       }
+
+success_exit:
+       msg_db.use_cnt++;
+       D_MSG("msg_db.use_cnt(%d)", msg_db.use_cnt);
+       return MSG_UI_RET_SUCCESS;
+}
+
+int msg_ui_db_close(void)
+{
+       int ret = 0;
+
+       if (msg_db.hdl != NULL) {
+               ret = msg_ui_sqlite3_close(msg_db.hdl);
+               if (ret != SQLITE_OK) {
+                       D_EMSG("msg_db close error (%d)", ret);
+                       return MSG_UI_RET_ERR;
+               }
+               msg_db.use_cnt--;
+       }
+       D_MSG("msg_db.use_cnt(%d)", msg_db.use_cnt);
+
+       if (msg_db.use_cnt <= 0) {
+               msg_db.use_cnt = 0;
+               msg_db.hdl = NULL;
+       }
+
+       return MSG_UI_RET_SUCCESS;
+}
+
+int msg_ui_db_is_opend(void)
+{
+       if (msg_db.hdl) {
+               D_MSG("DB handle is connected by %d requests.", msg_db.use_cnt);
+       } else {
+               D_MSG("DB handle isn't connected.");
+       }
+
+       return (msg_db.hdl ? MSG_UI_RET_SUCCESS : MSG_UI_RET_ERR);
+}
+
+__EXPORT_API__ int msg_ui_db_get_table(const char *p_query, int *p_row_cnt, char ***ppp_result)
+{
+       D_MSG_RETVM_IF(!p_query, MSG_UI_RET_ERR, "p_query is NULL.");
+       D_MSG_RETVM_IF(!p_row_cnt, MSG_UI_RET_ERR, "p_row_cnt is NULL.");
+       D_MSG_RETVM_IF(!ppp_result, MSG_UI_RET_ERR, "pp_result is NULL.");
+
+       int ret = 0;
+
+       if (msg_ui_db_is_opend() != MSG_UI_RET_SUCCESS) {
+               return MSG_UI_RET_ERR;
+       }
+
+       if (*ppp_result != NULL) {
+               msg_ui_db_free_table(*ppp_result);
+               *ppp_result = NULL;
+       }
+
+       ret = sqlite3_get_table(msg_db.hdl, p_query, ppp_result, p_row_cnt, 0, NULL);
+       if (ret != SQLITE_OK) {
+               D_EMSG("sqlite3_get_table fail(%d)", ret);
+               return MSG_UI_RET_ERR;
+       }
+       return MSG_UI_RET_SUCCESS;
+}
+
+__EXPORT_API__ void msg_ui_db_free_table(char **pp_result)
+{
+       if (pp_result)
+               sqlite3_free_table(pp_result);
+}
+
+__EXPORT_API__ int msg_ui_db_prepare_query(const char *p_query, void **pp_stmt)
+{
+       D_MSG_RETVM_IF(!p_query, MSG_UI_RET_ERR, "p_query is NULL.");
+       D_MSG_RETVM_IF(!pp_stmt, MSG_UI_RET_ERR, "pp_stmt is NULL.");
+       int ret = 0;
+
+       if (msg_ui_db_is_opend() != MSG_UI_RET_SUCCESS) {
+               return MSG_UI_RET_ERR;
+       }
+
+       /* Convert an SQL string into a prepared statement */
+       ret = sqlite3_prepare_v2(msg_db.hdl, p_query, strlen(p_query), (sqlite3_stmt **)pp_stmt, NULL);
+       if (ret != SQLITE_OK) {
+               D_EMSG("sqlite3_prepare_v2 fail(%d)", ret);
+               return MSG_UI_RET_ERR;
+       }
+       return MSG_UI_RET_SUCCESS;
+}
+
+__EXPORT_API__ int msg_ui_db_step_query(void *p_stmt)
+{
+       D_MSG_RETVM_IF(!p_stmt, MSG_UI_DB_STEP_QUERY_STATE_ERR, "p_stmt is NULL.");
+       sqlite3_stmt *sql_stmt = (sqlite3_stmt *)p_stmt;
+       int ret = 0;
+
+       ret = sqlite3_step(sql_stmt); /* Execute a prepared statement */
+       switch (ret) {
+               case SQLITE_ROW:        /* a row of data values are available. The application can extract these values using the sqlite3_column_xxx() functions*/
+                       return MSG_UI_DB_STEP_QUERY_STATE_ROW;
+               case SQLITE_DONE:       /* the statement has finished executing */
+                       return MSG_UI_DB_STEP_QUERY_STATE_DONE;
+               default:
+                       break;
+       }
+
+       D_EMSG("ret:%d", ret);
+       return MSG_UI_DB_STEP_QUERY_STATE_ERR;
+}
+
+__EXPORT_API__ void msg_ui_db_finalize_query(void **pp_stmt)
+{
+       D_MSG_RETM_IF(!pp_stmt, "pp_stmt is NULL.");
+       sqlite3_stmt *sql_stmt = (sqlite3_stmt *)(*pp_stmt);
+
+       if (sql_stmt)
+               sqlite3_finalize(sql_stmt);     /* Finalize and release a prepared statement */
+       *pp_stmt = NULL;
+}
+
+int msg_ui_db_bind_text(void *p_stmt, int idx, const char *p_text)
+{
+       D_MSG_RETVM_IF(!p_stmt, 0, "p_stmt is NULL.");
+       D_MSG_RETVM_IF(!p_text, 0, "p_text is NULL.");
+       D_MSG_RETVM_IF(idx < 0, 0, "idx(%d) error.", idx);
+       int ret = 0;
+
+       ret = sqlite3_bind_text(p_stmt, idx, p_text, strlen(p_text), SQLITE_STATIC);
+       if (ret != SQLITE_OK) {
+               D_EMSG("sqlite3_bind_text fail(%d)", ret);
+               return MSG_UI_RET_ERR;
+       }
+       return MSG_UI_RET_SUCCESS;
+}
+
+__EXPORT_API__ int msg_ui_db_get_column_int(void *p_stmt, int cidx)
+{
+       D_MSG_RETVM_IF(!p_stmt, 0, "p_stmt is NULL.");
+       return sqlite3_column_int((sqlite3_stmt *)p_stmt, cidx);
+}
+
+__EXPORT_API__ const unsigned char *msg_ui_db_get_column_text(void *p_stmt, int cidx)
+{
+       D_MSG_RETVM_IF(!p_stmt, NULL, "p_stmt is NULL.");
+       return sqlite3_column_text((sqlite3_stmt *)p_stmt, cidx);
+}
+
+__EXPORT_API__ int msg_ui_db_exec_query(const char *p_query)
+{
+       D_MSG_RETVM_IF(!p_query, MSG_UI_RET_ERR, "p_query is NULL.");
+       int ret = 0;
+
+       if (msg_ui_db_is_opend() != MSG_UI_RET_SUCCESS) {
+               return MSG_UI_RET_ERR;
+       }
+
+       ret = sqlite3_exec(msg_db.hdl, p_query, 0, 0, NULL);
+       if (ret != SQLITE_OK) {
+               D_EMSG("sqlite3_exec fail(%d)", ret);
+               return MSG_UI_RET_ERR;
+       }
+       return MSG_UI_RET_SUCCESS;
+}
+
+int msg_ui_db_begin_trans(void)
+{
+       return msg_ui_db_exec_query("BEGIN deferred;");
+}
+
+int msg_ui_db_end_trans(int trans_state)
+{
+       if (trans_state == MSG_UI_DB_TRANS_STATE_END)
+               return msg_ui_db_exec_query("END;");
+       else if (trans_state == MSG_UI_DB_TRANS_STATE_ROLLBACK) {
+               msg_ui_db_exec_query("rollback");
+               return msg_ui_db_exec_query("END;");
+       }
+       return MSG_UI_RET_ERR;
+}
diff --git a/common/msg-ui-db-util.h b/common/msg-ui-db-util.h
new file mode 100644 (file)
index 0000000..154cff3
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_DB_UTIL_H__
+#define __MSG_UI_DB_UTIL_H__
+
+/*==================================================================================================
+ INCLUDE HEADERS
+ * ==================================================================================================*/
+#include <msg.h>
+
+#include "msg-ui-util.h"
+#include <sqlite3.h>
+
+/*==================================================================================================
+ DEFINITIONS
+ *==================================================================================================*/
+#define MSG_DB_DIR     DATADIR"/db"
+#define MSG_DB_PATH    MSG_DB_DIR"/.message_app.db"
+#define MSG_DB_TBL_TMPL        "MSG_TMPL_TABLE"
+#define MSG_DB_TBL_ATTACH_MODULE       "MSG_ATTACH_MODULE_TABLE"
+
+/*==================================================================================================
+ ENUMERATIONS
+ *==================================================================================================*/
+typedef enum {
+       MSG_UI_DB_STEP_QUERY_STATE_DONE = 0,
+       MSG_UI_DB_STEP_QUERY_STATE_ROW,
+       MSG_UI_DB_STEP_QUERY_STATE_ERR
+} MSG_UI_DB_STEP_QUERY_STATE_E;
+
+typedef enum {
+       MSG_UI_DB_TRANS_STATE_BEGIN = 0,
+       MSG_UI_DB_TRANS_STATE_END,
+       MSG_UI_DB_TRANS_STATE_COMMIT,
+       MSG_UI_DB_TRANS_STATE_ROLLBACK
+} MSG_UI_DB_TRANS_STATE_E;
+
+/*==================================================================================================
+ STRUCTURES
+ *==================================================================================================*/
+
+/*==================================================================================================
+ FUNCTION DECLARATIONS
+ *==================================================================================================*/
+int msg_ui_db_open(void);
+int msg_ui_db_close(void);
+int msg_ui_db_is_opend(void);
+int msg_ui_db_get_table(const char *p_query, int *p_row_cnt, char ***ppp_result);
+void msg_ui_db_free_table(char **pp_result);
+
+int msg_ui_db_exec_query(const char *p_query);
+int msg_ui_db_prepare_query(const char *p_query, void **pp_stmt);
+int msg_ui_db_step_query(void *p_stmt);
+void msg_ui_db_finalize_query(void **pp_stmt);
+int msg_ui_db_bind_text(void *p_stmt, int idx, const char *p_text);
+int msg_ui_db_get_column_int(void *p_stmt, int cidx);
+const unsigned char* msg_ui_db_get_column_text(void *p_stmt, int cidx);
+
+int msg_ui_db_begin_trans(void);
+int msg_ui_db_end_trans(int trans_state);
+
+#endif
diff --git a/common/msg-ui-image-resource.h b/common/msg-ui-image-resource.h
new file mode 100755 (executable)
index 0000000..0036927
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_IMAGE_RESOURCE__
+#define __MSG_UI_IMAGE_RESOURCE__
+
+/* viewer image resources */
+#define MSG_VIEWER_IMAGE_ATTACH_ICON                           "attach_icon.png"
+#define MSG_VIEWER_IMAGE_UNSUPPORT_ICON                        "M01_icon_Unsupported.png"
+
+/* composer image resources */
+#define MSGC_SMS_SEND_ICON                                     "btn_conversation_message_sending.png"
+#define MSGC_MMS_SEND_ICON                                     "btn_conversation_mms_message_sending.png"
+
+#define MSGC_TRANSLATE_ICON                    "M01_icon_send_translator.png"
+
+#define MSGC_ADD_ICON                                          "messages_add_object.png"
+#define MSGC_EMOTICON                                          "btn_conversation_emotion.png"
+#define MSGC_ADD_PLUS_ICON                                     "core_button_add.png"
+#define MSGC_CONTACT_ICON                                      "messages_add_contact.png"
+#define MSGC_NO_RECIPIENT_ICON                                 "M02_icon_invalid.png"
+#define MSG_BUBBLE_DRAFT_ICON                                  "badge_icon_draft_pencil.png"
+
+#define MSGC_IMG_INSERT_ETC_ICON                       "60_myfiles_file_etc.png"
+#define MSGC_EASY_MODE_CONTACT                                 "M01_button_contact.png"
+#define MSGC_EASY_MODE_RECENT                          "M01_button_recent.png"
+#define MSGC_EMG_MODE_LOCATION_ICON                    "M01_btn_location.png"
+
+#define MSGC_ATTACH_RECORD_VIDEO_ICON  "M01_attach_icon_recorded_video.png"
+#define MSGC_ATTACH_TEXT_TEMPLATE_ICON "M01_attach_icon_text_templates.png"
+
+/*emoticon resources */
+#define MSGC_EMOTICON_HAPPY                    "icon_emotion_happy.png"
+#define MSGC_EMOTICON_SAD                      "icon_emotion_sad.png"
+#define MSGC_EMOTICON_WINK                     "icon_emotion_wink.png"
+#define MSGC_EMOTICON_TONGUE_DANGLING                  "icon_emotion_stick_out_tongue.png"
+#define MSGC_EMOTICON_SURPRISED                        "icon_emotion_surprised.png"
+#define MSGC_EMOTICON_KISS                     "icon_emotion_kiss.png"
+#define MSGC_EMOTICON_ANGRY_SHOUT                      "icon_emotion_yelling.png"
+#define MSGC_EMOTICON_SMILE                    "icon_emotion_sunglasses.png"
+#define MSGC_EMOTICON_OMG                      "icon_emotion_embarrassed.png"
+#define MSGC_EMOTICON_LITTLE_BIT_SORRY                 "icon_emotion_disappointed.png"
+#define MSGC_EMOTICON_VERY_SORRY                       "icon_emotion_crying.png"
+#define MSGC_EMOTICON_GUILTY                   "icon_emotion_no_speak.png"
+#define MSGC_EMOTICON_HAHA                     "icon_emotion_laughing.png"
+#define MSGC_EMOTICON_WORRIED                  "icon_emotion_confused.png"
+#define MSGC_EMOTICON_LOVE                     "icon_emotion_heart.png"
+#define MSGC_EMOTICON_EVIL                     "icon_emotion_angry.png"
+#define MSGC_EMOTICON_HALF_SMILE                       "icon_emotion_raised_eyebrow.png"
+#define MSGC_EMOTICON_MINIMAL_SMILE                    "icon_emotion_pokerface.png"
+
+
+/* bubble image resources */
+#define MSG_UI_BUBBLE_DRM_DEFAULT_ICON         "M01_icon_bubble_drm.png"
+
+/* thread list image resources */
+#define MSG_UI_THREAD_LIST_EASY_MODE_COMPOSE "M01_icon_composer.png"
+#define MSG_UI_THREAD_LIST_UNREAD_MASK_ICON                    "masking_message_list.png"
+
+/* thread list message status icon*/
+#define MSG_UI_THREAD_LIST_STATUS_MMS_READ             "M01_icon_message_status_mms_read_n.png"
+#define MSG_UI_THREAD_LIST_STATUS_MMS_UNREAD   "M01_icon_message_status_mms_unread_n.png"
+#define MSG_UI_THREAD_LIST_STATUS_MMS_SENT             "M01_icon_message_status_mms_sent_n.png"
+#define MSG_UI_THREAD_LIST_STATUS_SMS_READ             "M01_icon_message_status_sms_read_n.png"
+#define MSG_UI_THREAD_LIST_STATUS_SMS_UNREAD   "M01_icon_message_status_sms_unread_n.png"
+#define MSG_UI_THREAD_LIST_STATUS_SMS_SENT             "M01_icon_message_status_sms_sent_n.png"
+
+#define MSG_UI_THREAD_LIST_TITLE_ICON_COMPOSE          "M01_title_icon_compose.png"
+
+#define MSG_UI_THREAD_LIST_SEARCH_ICON_ALL     "M01_btn_all.png"
+#define MSG_UI_THREAD_LIST_SEARCH_ICON_ADDR    "M01_btn_sender.png"
+#define MSG_UI_THREAD_LIST_SEARCH_ICON_BODY    "M01_btn_message.png"
+
+/* common image resources */
+#define MSG_COMMON_FILE_IMAGE_ICON             "U01_list_icon_image.png"
+#define MSG_COMMON_FILE_VIDEO_ICON             "U01_list_icon_mp4.png"
+#define MSG_COMMON_FILE_MUSIC_ICON             "U01_list_icon_mp3.png"
+#define MSG_COMMON_FILE_PDF_ICON                       "U01_icon_pdf.png"
+#define MSG_COMMON_FILE_DOC_ICON                       "U01_icon_word.png"
+#define MSG_COMMON_FILE_PPT_ICON                       "U01_icon_ppt.png"
+#define MSG_COMMON_FILE_EXCEL_ICON             "U01_icon_excel.png"
+#define MSG_COMMON_FILE_VOICE_ICON             "U01_list_icon_amr.png"
+#define MSG_COMMON_FILE_HTML_ICON                      "U01_icon_html.png"
+#define MSG_COMMON_FILE_FLASH_ICON             "U01_icon_swf.png"
+#define MSG_COMMON_FILE_TXT_ICON                       "U01_icon_text.png"
+#define MSG_COMMON_FILE_VCONTACT_ICON  "U01_icon_vcf.png"
+#define MSG_COMMON_FILE_VCALENDAR_ICON "U01_icon_vcs.png"
+#define MSG_COMMON_FILE_SVG_ICON               "U01_icon_svg.png"
+#define MSG_COMMON_FILE_RSS_ICON                       "U01_icon_rss.png"
+#define MSG_COMMON_FILE_HWP_ICON                       "U01_icon_hwp.png"
+#define MSG_COMMON_FILE_EMAIL_ICON                     "U01_icon_eml.png"
+#define MSG_COMMON_FILE_DRM_ICON                       "U01_icon_drm.png"
+#define MSG_COMMON_FILE_TPK_ICON                       "U01_icon_tpk.png"
+#define MSG_COMMON_FILE_ZIP_ICON                       "U01_icon_file_zip.png"
+#define MSG_COMMON_FILE_ETC_ICON                       "U01_icon_etc.png"
+
+
+#define MSG_COMMON_TITLE_ICON_SELECT_ALL               "00_icon_select_all.png"
+
+//This is the image path for SIM ICONS
+#define SETTING_ICON_PATH_CFG "/usr/apps/org.tizen.setting/res/icons/"
+
+#endif /*__MSG_UI_IMAGE_RESOURCE__*/
diff --git a/common/msg-ui-smil-interface.c b/common/msg-ui-smil-interface.c
new file mode 100755 (executable)
index 0000000..e41a176
--- /dev/null
@@ -0,0 +1,691 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*=================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *================================================================================================*/
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+#include <Ecore_X.h>
+#include <glib.h>
+
+#include "msg-ui-common-utility.h"
+#include "msg-ui-smil-parser.h"
+#include "msg-ui-smil-interface.h"
+#include "msg-ui-content-utility.h"
+#include "msg-file-util.h"
+/*=================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *================================================================================================*/
+static MMS_MEDIA_TYPE_E __convert_smil_media_type(MmsSmilMediaType mediatype);
+static char *__get_top_region_szid(smil_parsed_data_s *smil_parsed_data);
+static bool __convert_smil_part_to_mms_struct(msg_struct_t smil_part, MMS_DATA_S *mms_data);
+#if 0
+static bool __find_mms_data_matched_cid(char *cid, MMS_DATA_S *mms_data, int *found_page_idx, int *found_media_idx);
+#endif
+static bool __find_mms_data_matched_content(char *cid, char *cl, MMS_DATA_S *mms_data, int *found_page_idx, int *found_media_idx);
+static bool __fill_multiparts_to_mms_struct(msg_struct_t multipart, MMS_DATA_S *mms_data, void *userdata);
+/*=================================================================================================
+ *                                                                     FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+static MMS_MEDIA_TYPE_E __convert_smil_media_type(MmsSmilMediaType mediatype)
+{
+       D_ENTER;
+       switch (mediatype) {
+               case MMS_SMIL_MEDIA_TEXT:
+                       return MEDIA_TEXT;
+               case MMS_SMIL_MEDIA_IMG:
+                       return MEDIA_IMG;
+               case MMS_SMIL_MEDIA_AUDIO:
+                       return MEDIA_AUDIO;
+               case MMS_SMIL_MEDIA_VIDEO:
+                       return MEDIA_VIDEO;
+               case MMS_SMIL_MEDIA_IMG_OR_VIDEO:
+                       return MEDIA_IMG_OR_VIDEO;
+               case MMS_SMIL_MEDIA_ANIMATE:
+                       return MEDIA_ANIMATE;
+               default:
+                       return MEDIA_INVALID;
+       }
+}
+
+/* returned string must be freed after caller using it */
+static char *__get_top_region_szid(smil_parsed_data_s *parse_data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!parse_data, NULL, "parse_data is NULL");
+       D_MSG_RETVM_IF(!parse_data->regionlist, NULL, "regionlist is NULL");
+
+       mms_smil_region *region_0 = NULL;
+       mms_smil_region *region_1 = NULL;
+
+       region_0 = (mms_smil_region *)eina_list_nth(parse_data->regionlist, 0);
+       D_MSG_RETVM_IF(!region_0, NULL, "region_0 is NULL");
+
+       int region_cnt = parse_data->regionCnt;
+       D_MSG("region count %d", region_cnt);
+
+       if (region_cnt < 2) {
+               D_MSG("need not figure out region order");
+               return strdup(region_0->szID);
+       }
+
+       region_1 = (mms_smil_region *)eina_list_nth(parse_data->regionlist, 1);
+       D_MSG_RETVM_IF(!region_1, NULL, "region_1 is NULL");
+
+       if (region_0->nTop.value == 0 && region_1->nTop.value != 0) {
+               return strdup(region_0->szID);
+       } else if (region_0->nTop.value < region_1->nTop.value) {
+               return strdup(region_0->szID);
+       } else if (region_0->nTop.value == 0 && region_1->nTop.value == 0) {
+               if (region_0->height.value < region_1->height.value)
+                       return strdup(region_0->szID);
+               else
+                       return strdup(region_1->szID);
+       } else {
+               return strdup(region_1->szID);
+       }
+}
+
+static bool __convert_smil_part_to_mms_struct(msg_struct_t smil_part, MMS_DATA_S *mms_data)
+{
+       D_ENTER;
+
+       char path[DEF_BUF_LEN] = {0,};
+       smil_parsed_data_s pdata = {0,};
+
+       if (smil_part == NULL) {
+               D_EMSG("smil_part is null");
+               return false;
+       }
+
+       if (mms_data == NULL) {
+               D_EMSG("mms_data is null");
+               return false;
+       }
+
+       /* get smil part path */
+       msg_get_str_value(smil_part, MSG_MMS_MULTIPART_FILEPATH_STR, path, DEF_BUF_LEN);
+
+       if (path[0] == '\0') {
+               D_EMSG("getting smil part path failed!!");
+               return false;
+       }
+
+       gchar *content = NULL;
+       gsize bytes = 0;
+
+       g_file_get_contents((const gchar *)path, &content, &bytes, NULL);
+
+       /* parse smilDoc to smil parsed data */
+       if (!msg_ui_parse_smil_doc(&pdata, (const char *)content)) {
+               D_EMSG("parsing smilDoc is failed!!");
+               if (content) {
+                       g_free(content);
+                       content = NULL;
+               }
+               return false;
+       }
+
+       if (content) {
+               g_free(content);
+               content = NULL;
+       }
+       char *top_region_szid = __get_top_region_szid(&pdata);
+
+       mms_data->page_count = pdata.pageCnt;
+       mms_data->page_data = (MMS_PAGE_DATA_S *)calloc(pdata.pageCnt, sizeof(MMS_PAGE_DATA_S));
+
+       int page_index = 0;
+       mms_page_s *p_page = NULL;
+       for (page_index = 0; page_index < pdata.pageCnt; page_index++) {
+               p_page = eina_list_nth(pdata.pagelist, page_index);
+               mms_data->page_data[page_index].media_count = p_page->mediaCnt;
+
+               mms_media_s *p_media = NULL;
+               int media_index = 0;
+
+               for (media_index = 0; media_index < p_page->mediaCnt; media_index++) {
+                       p_media = eina_list_nth(p_page->medialist, media_index);
+
+                       MMS_MULTIPART_MEDIA_S *pMultipart = (MMS_MULTIPART_MEDIA_S *)calloc(1, sizeof(MMS_MULTIPART_MEDIA_S));
+
+                       pMultipart->media_type = __convert_smil_media_type(p_media->mediatype);
+                       switch (pMultipart->media_type) {
+                               case MEDIA_TEXT:
+                                       mms_data->page_data[page_index].has_text = true;
+                                       break;
+                               case MEDIA_IMG:
+                               case MEDIA_ANIMATE:
+                                       mms_data->page_data[page_index].has_image = true;
+                                       break;
+                               case MEDIA_AUDIO:
+                                       mms_data->page_data[page_index].has_audio = true;
+                                       break;
+                               case MEDIA_VIDEO:
+                               case MEDIA_IMG_OR_VIDEO:
+                                       mms_data->page_data[page_index].has_video = true;
+                                       break;
+                               default:
+                                       break;
+                       }
+
+                       strncpy(pMultipart->contentID, p_media->szContentID, MSG_MSG_ID_LEN);
+                       strncpy(pMultipart->regionID, p_media->regionId, MAX_SMIL_REGION_ID);
+
+                       /* add dummy datas for viewer data, it can be done by callback function */
+                       pMultipart->page_index = page_index;
+                       pMultipart->media_index = media_index;
+                       pMultipart->total_count = p_page->mediaCnt;
+
+                       if (g_strcmp0(top_region_szid, p_media->regionId) == 0)
+                               mms_data->page_data[page_index].insert_list = eina_list_prepend(mms_data->page_data[page_index].insert_list, pMultipart);
+                       else
+                               mms_data->page_data[page_index].insert_list = eina_list_append(mms_data->page_data[page_index].insert_list, pMultipart);
+               }
+       }
+
+       if (top_region_szid)
+               free(top_region_szid);
+
+       msg_ui_release_smil_data(&pdata);
+
+       D_LEAVE;
+
+       return true;
+}
+
+static bool __find_mms_data_matched_content(char *cid, char *cl, MMS_DATA_S *mms_data, int *found_page_idx, int *found_media_idx)
+{
+       D_ENTER;
+
+       if (mms_data == NULL || found_page_idx == NULL || found_media_idx == NULL) {
+               D_EMSG("Invalid parameters");
+               return false;
+       }
+
+       if (cid == NULL) {
+               D_EMSG("Content ID is NULL");
+               return false;
+       }
+
+       int page_index = 0;
+       MMS_PAGE_DATA_S *page_data = NULL;
+
+       for (page_index = 0; page_index < mms_data->page_count; page_index++) {
+               page_data = &mms_data->page_data[page_index];
+
+               MMS_MULTIPART_MEDIA_S *p_media = NULL;
+               int media_index = 0;
+
+               for (media_index = 0; media_index < page_data->media_count; media_index++) {
+                       p_media = eina_list_nth(page_data->insert_list, media_index);
+                       if (p_media) {
+                               D_SEC_MSG("find matched Content ID in cid[%s], cl[%s] p_media->contentID[%s]", cid, cl, p_media->contentID);
+                               if (strcmp(cid, p_media->contentID) == 0) {
+                                       D_MSG("page[%d] / media[%d] is matched to content location", page_index, media_index);
+
+                                       *found_page_idx = page_index;
+                                       *found_media_idx = media_index;
+
+                                       return true;
+                               } else {
+                                       if (cl != NULL) {
+                                               if (strcmp(cl, p_media->contentID) == 0) {
+                                                       D_MSG("page[%d] / media[%d] is matched to content location", page_index, media_index);
+
+                                                       *found_page_idx = page_index;
+                                                       *found_media_idx = media_index;
+
+                                                       return true;
+                                               }
+                                       } else {
+                                               D_EMSG("Content Location is NULL");
+                                       }
+                               }
+                       }
+               }
+       }
+
+       D_LEAVE;
+
+       return false;
+}
+
+#if 0
+static bool __find_mms_data_matched_cid(char *cid, MMS_DATA_S *mms_data, int *found_page_idx, int *found_media_idx)
+{
+       D_ENTER;
+
+       if (cid == NULL || mms_data == NULL || found_page_idx == NULL || found_media_idx == NULL) {
+               D_EMSG("Invalid parameters");
+               return false;
+       }
+
+       int page_index = 0;
+       MMS_PAGE_DATA_S *page_data = NULL;
+
+       for (page_index = 0; page_index < mms_data->page_count; page_index++) {
+               page_data = &mms_data->page_data[page_index];
+
+               MMS_MULTIPART_MEDIA_S *p_media = NULL;
+               int media_index = 0;
+
+               for (media_index = 0; media_index < page_data->media_count; media_index++) {
+                       p_media = eina_list_nth(page_data->insert_list, media_index);
+                       D_MSG("find matched Content ID in cid[%s] p_media->contentID[%s]", cid, p_media->contentID);
+                       if (strcmp(cid, p_media->contentID) == 0) {
+                               D_MSG("find matched Content ID in page[%d] media[%d]", page_index, media_index);
+
+                               *found_page_idx = page_index;
+                               *found_media_idx = media_index;
+
+                               return true;
+                       }
+               }
+       }
+
+       D_LEAVE;
+
+       return false;
+}
+#endif
+
+static bool __fill_multiparts_to_mms_struct(msg_struct_t multipart, MMS_DATA_S *mms_data, void *userdata)
+{
+       D_ENTER;
+
+       if (multipart == NULL || mms_data == NULL) {
+               D_EMSG("Invalid parameters!!");
+               return false;
+       }
+
+       char name[DEF_BUF_LEN] = {0,};
+       char path[DEF_BUF_LEN] = {0,};
+       char thumb_path[DEF_BUF_LEN] = {0,};
+       char cid[DEF_BUF_LEN] = {0,};
+       char cl[DEF_BUF_LEN] = {0,};
+
+       char strContentType[DEF_BUF_LEN_S] = {0,};
+
+       int found_page_idx = 0;
+       int found_media_idx = 0;
+       bool presentation_part = false;
+
+       msg_get_str_value(multipart, MSG_MMS_MULTIPART_CONTENT_ID_STR, cid, DEF_BUF_LEN);
+       msg_get_str_value(multipart, MSG_MMS_MULTIPART_CONTENT_LOCATION_STR, cl, DEF_BUF_LEN);
+
+       D_SEC_MSG("multipart cid : [%s]", cid);
+       D_SEC_MSG("multipart cl : [%s]", cl);
+
+       if (cid[0] == '\0' && cl[0] == '\0') {
+               D_EMSG("Failed to get both Content ID and Content Location!!, INSERT it into ATTACH media");
+               presentation_part = false;
+       } else {
+               if (!__find_mms_data_matched_content(cid, cl, mms_data, &found_page_idx, &found_media_idx)) {
+                       D_MSG("No matched Content ID in MMS DATA -- INSERT it into ATTACH media");
+                       presentation_part = false;
+               } else {
+                       presentation_part = true;
+               }
+       }
+
+       MMS_MULTIPART_MEDIA_S *mms_multipart_media = NULL;
+
+       /* check the real type of MEDIA_IMG_OR_VIDEO mediatype and decide if it is media_part or insert_part. */
+       if (presentation_part) {
+                int content_type;
+                mms_multipart_media = eina_list_nth(mms_data->page_data[found_page_idx].insert_list, found_media_idx);
+
+               if (mms_multipart_media) {
+                       if (mms_multipart_media->media_type == MEDIA_TEXT) {
+                               msg_get_str_value(multipart, MSG_MMS_MULTIPART_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+                               content_type = msg_ui_content_get_display_type(strContentType);
+                               if (content_type != DISPLAY_TEXT) {
+                                       D_MSG("No displayable text type (eg. text/x-vCard, text/x-vCalendar will be inserted into ATTACH media)");
+                                       presentation_part = false;
+                                       mms_multipart_media->page_index = INVALID_INDEX;
+                               }
+                       } else if (mms_multipart_media->media_type == MEDIA_IMG_OR_VIDEO) {
+                               bzero(strContentType, sizeof(strContentType));
+                               msg_get_str_value(multipart, MSG_MMS_MULTIPART_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+                               content_type = msg_ui_content_get_display_type(strContentType);
+                               if (content_type == -1) {
+                                       presentation_part = false;
+                                       mms_multipart_media->page_index = INVALID_INDEX;
+                               }
+                       }
+               }
+       }
+
+       if (presentation_part) {
+               D_MSG("----- Adding presentation PART -----");
+
+               mms_multipart_media = eina_list_nth(mms_data->page_data[found_page_idx].insert_list, found_media_idx);
+
+               msg_get_str_value(multipart, MSG_MMS_MULTIPART_FILEPATH_STR, path, DEF_BUF_LEN);
+               D_SEC_MSG("copying multipart path [%s]", path);
+               if (mms_multipart_media != NULL) {
+                       strncpy(mms_multipart_media->pfile_path, path, MSG_FILEPATH_LEN_MAX);
+                       D_SEC_MSG("mms_multipart_media->pfile_path [%s]", mms_multipart_media->pfile_path);
+
+                       msg_get_str_value(multipart, MSG_MMS_MULTIPART_NAME_STR, name, DEF_BUF_LEN);
+                       D_SEC_MSG("copying multipart name [%s]", name);
+                       strncpy(mms_multipart_media->pfile_name, name, MSG_FILENAME_LEN_MAX);
+
+                       if (mms_multipart_media->media_type == MEDIA_VIDEO) {
+                               msg_get_str_value(multipart, MSG_MMS_MULTIPART_THUMBNAIL_FILEPATH_STR, thumb_path, DEF_BUF_LEN);
+                               D_SEC_MSG("copying multipart thumb_path [%s]", thumb_path);
+                               strncpy(mms_multipart_media->pthumb_file_path, thumb_path, MSG_FILEPATH_LEN_MAX);
+                       }
+
+                       mms_multipart_media->pfile_size = msg_file_size_get(mms_multipart_media->pfile_path);
+                       mms_multipart_media->userdata = userdata;
+               }
+       } else {
+               D_MSG("----- Adding non-presentation PART -----");
+
+               /* attach datas */
+               mms_multipart_media = (MMS_MULTIPART_MEDIA_S *)calloc(1, sizeof(MMS_MULTIPART_MEDIA_S));
+               if (mms_multipart_media == NULL) {
+                       D_EMSG("mms_multipart_media is null!");
+                       return false;
+               }
+
+               if (mms_data->attach_data == NULL) {
+                       mms_data->attach_data = (MMS_ATTACH_DATA_S *)calloc(1, sizeof(MMS_ATTACH_DATA_S));
+                       if (mms_data->attach_data == NULL) {
+                               D_EMSG("mms_data->attach_data is null!");
+                               free(mms_multipart_media);
+                               return false;
+                       }
+               }
+               msg_get_str_value(multipart, MSG_MMS_MULTIPART_FILEPATH_STR, path, DEF_BUF_LEN);
+               D_SEC_MSG("copying multipart path [%s]", path);
+               strncpy(mms_multipart_media->pfile_path, path, MSG_FILEPATH_LEN_MAX);
+               D_SEC_MSG("mms_multipart_media->pfile_path [%s]", mms_multipart_media->pfile_path);
+
+               msg_get_str_value(multipart, MSG_MMS_MULTIPART_NAME_STR, name, DEF_BUF_LEN);
+               D_SEC_MSG("copying multipart name [%s]", name);
+               strncpy(mms_multipart_media->pfile_name, name, MSG_FILENAME_LEN_MAX);
+
+               mms_multipart_media->pfile_size = msg_file_size_get(mms_multipart_media->pfile_path);
+               mms_multipart_media->media_index = mms_data->attach_count;
+
+               bzero(strContentType, sizeof(strContentType));
+               msg_get_str_value(multipart, MSG_MMS_MULTIPART_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+               int content_type = msg_ui_content_get_display_type(strContentType);
+               if (content_type == DISPLAY_IMAGE)
+                       mms_multipart_media->media_type = MEDIA_IMG;
+               else if (content_type == DISPLAY_AUDIO)
+                       mms_multipart_media->media_type = MEDIA_AUDIO;
+               else if (content_type == DISPLAY_VIDEO)
+                       mms_multipart_media->media_type = MEDIA_VIDEO;
+               else
+                       mms_multipart_media->media_type = MEDIA_ATTACH;
+
+               mms_multipart_media->userdata = userdata;
+
+               mms_data->attach_data->attach_list = eina_list_append(mms_data->attach_data->attach_list, mms_multipart_media);
+               mms_data->attach_count++;
+       }
+
+       D_LEAVE;
+
+       return true;
+}
+
+__EXPORT_API__ MMS_DATA_S *msg_ui_smil_interface_create_mms_struct_by_conversation(msg_struct_t conversation, int msgID, void *userdata)
+{
+       D_ENTER;
+
+       MMS_DATA_S *mms_data = (MMS_DATA_S *)calloc(1, sizeof(MMS_DATA_S));
+       if (mms_data == NULL) {
+               D_EMSG("calloc MMS DATA faile");
+               return NULL;
+       }
+
+       char ct[DEF_BUF_LEN] = {0,};
+       char name[DEF_BUF_LEN] = {0,};
+       char path[DEF_BUF_LEN] = {0,};
+       char thumb_path[DEF_BUF_LEN] = {0,};
+       char cid[DEF_BUF_LEN] = {0,};
+       char cl[DEF_BUF_LEN] = {0,};
+
+       int smil_part = INVALID_INDEX;
+       int multipart_cnt = 0;
+
+       msg_struct_t multipart = NULL;
+       msg_list_handle_t multipart_list = NULL;
+       msg_get_list_handle(conversation, MSG_CONV_MSG_MULTIPART_HND, (void **)&multipart_list);
+
+       /* first, get smil part */
+       if (multipart_list) {
+               mms_data->msg_id = msgID;
+
+               multipart_cnt = msg_list_length(multipart_list);
+               int i = 0;
+               for (i = 0; i < multipart_cnt; i++) {
+                       multipart = msg_list_nth_data(multipart_list, i);
+                       msg_get_str_value(multipart, MSG_MMS_MULTIPART_CONTENT_TYPE_STR, ct, DEF_BUF_LEN);
+                       msg_get_str_value(multipart, MSG_MMS_MULTIPART_NAME_STR, name, DEF_BUF_LEN);
+                       msg_get_str_value(multipart, MSG_MMS_MULTIPART_FILEPATH_STR, path, DEF_BUF_LEN);
+                       msg_get_str_value(multipart, MSG_MMS_MULTIPART_THUMBNAIL_FILEPATH_STR, thumb_path, DEF_BUF_LEN);
+                       msg_get_str_value(multipart, MSG_MMS_MULTIPART_CONTENT_ID_STR, cid, DEF_BUF_LEN);
+                       msg_get_str_value(multipart, MSG_MMS_MULTIPART_CONTENT_LOCATION_STR, cl, DEF_BUF_LEN);
+
+                       D_SEC_MSG("## multipart info [%d] ##\n\tcontent type [%s]\n\tname [%s]\n\tpath [%s]\n\tthumb_path [%s]\n\tcid [%s]\n\tcl [%s]", i, ct, name, path, thumb_path, cid, cl);
+
+                       if (strcmp(ct, "application/smil") == 0 || strcmp(ct, "multipart/related") == 0)
+                               smil_part = i;
+
+                       multipart = NULL;
+               }
+               /* multipart-related message */
+               if (smil_part != INVALID_INDEX) {
+                       multipart = msg_list_nth_data(multipart_list, smil_part);
+
+                       if (!__convert_smil_part_to_mms_struct(multipart, mms_data)) {
+                               D_EMSG("convert smil part to mms struct failed");
+                               goto CLEAN_UP;
+                       }
+
+                       /* fill rest of multipart datas */
+                       for (i = 0; i < multipart_cnt; i++) {
+                               if (i == smil_part)
+                                       continue;
+
+                               multipart = msg_list_nth_data(multipart_list, i);
+                               __fill_multiparts_to_mms_struct(multipart, mms_data, userdata);
+                       }
+               } else {
+                       /* multipart mixed message */
+
+                       /* fill rest of multipart datas */
+                       for (i = 0; i < multipart_cnt; i++) {
+                               multipart = msg_list_nth_data(multipart_list, i);
+                               __fill_multiparts_to_mms_struct(multipart, mms_data, userdata);
+                       }
+               }
+
+               int attach_idx = 0;
+               for (attach_idx = 0; attach_idx < mms_data->attach_count; attach_idx++) {
+                       MMS_MULTIPART_MEDIA_S *attach_multipart = eina_list_nth(mms_data->attach_data->attach_list, attach_idx);
+                       if (NULL == attach_multipart) {
+                               D_EMSG("attach_count is not 0 [%d] but attach_multipart %dth is null", mms_data->attach_count, attach_idx);
+                               goto CLEAN_UP;
+                       }
+
+                       attach_multipart->total_count = mms_data->attach_count;
+               }
+       } else {
+               D_EMSG("multipart_list is NULL!!");
+               goto CLEAN_UP;
+       }
+
+       D_LEAVE;
+
+       return mms_data;
+
+CLEAN_UP:
+       if (mms_data != NULL)
+               msg_ui_smil_interface_release_mms_struct(mms_data);
+
+       return NULL;
+
+}
+
+__EXPORT_API__ bool msg_ui_smil_interface_check_valid_multipart(MMS_MULTIPART_MEDIA_S *multipart_data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(multipart_data == NULL, false, "multipart_data is NULL");
+
+       if (multipart_data->media_type == MEDIA_INVALID) {
+               D_MSG("invalid media type!");
+               return false;
+       }
+
+       if (multipart_data->pfile_path[0] == '\0') {
+               D_MSG("multipart path is null");
+               return false;
+       }
+
+       if (multipart_data->pfile_name[0] == '\0') {
+               D_MSG("multipart name is null");
+               return false;
+       }
+
+       return true;
+}
+
+__EXPORT_API__ bool msg_ui_smil_interface_check_last_multipart(MMS_DATA_S *mms_data, MMS_MULTIPART_MEDIA_S *multipart_data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(mms_data == NULL, false, "mms_data is NULL");
+       D_MSG_RETVM_IF(multipart_data == NULL, false, "multipart_data is NULL");
+
+       MMS_MULTIPART_MEDIA_S *last_multipart = NULL;
+
+       D_MSG("current multipart = %p", multipart_data);
+       D_MSG("attach_count = %d", mms_data->attach_count);
+       D_MSG("page_count = %d", mms_data->page_count);
+
+       if (mms_data->attach_count > 0) {
+               MMS_ATTACH_DATA_S *attach_data = mms_data->attach_data;
+
+               last_multipart = eina_list_nth(attach_data->attach_list, mms_data->attach_count - 1);
+
+               D_MSG("last multipart = %p", last_multipart);
+
+               if (last_multipart == NULL) {
+                       D_EMSG("getting last multipart is failed");
+                       return false;
+               }
+       } else if (mms_data->page_count > 0) {
+               MMS_PAGE_DATA_S *last_page = NULL;
+
+               last_page = &mms_data->page_data[mms_data->page_count - 1];
+
+               D_MSG("media_count = %d", last_page->media_count);
+
+               last_multipart = eina_list_nth(last_page->insert_list, last_page->media_count - 1);
+
+               D_MSG("last multipart = %p", last_multipart);
+
+               if (last_multipart == NULL) {
+                       D_EMSG("getting last multipart is failed");
+                       return false;
+               }
+       } else {
+               D_EMSG("Invalid message!");
+               return false;
+       }
+
+       if (multipart_data == last_multipart)
+               return true;
+
+       D_LEAVE;
+
+       return false;
+}
+
+__EXPORT_API__ void msg_ui_smil_interface_release_mms_struct(MMS_DATA_S *mms_data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(mms_data == NULL, "mms_data is NULL");
+
+       /* clean up buffer */
+       D_MSG("Freeing INSERT DATA");
+
+       if (mms_data->page_data) {
+               int index = 0;
+               int ntotal = 0;
+               int page_index = 0;
+
+               D_MSG("page count = %d", mms_data->page_count);
+
+               for (page_index = 0; page_index < mms_data->page_count; page_index++) {
+                       MMS_PAGE_DATA_S *page_data = &mms_data->page_data[page_index];
+                       ntotal = eina_list_count(page_data->insert_list);
+                       for (index = 0; index < ntotal; index++) {
+                               MMS_MULTIPART_MEDIA_S *pMedia_info = (MMS_MULTIPART_MEDIA_S *)eina_list_nth(page_data->insert_list, index);
+                               if (pMedia_info) {
+                                       if (pMedia_info->obj) {
+                                               evas_object_del(pMedia_info->obj);
+                                               pMedia_info->obj = NULL;
+                                       }
+                                       free(pMedia_info);
+                                       pMedia_info = NULL;
+                               }
+                       }
+                       eina_list_free(page_data->insert_list);
+                       page_data->insert_list = NULL;
+               }
+
+               free(mms_data->page_data);
+               mms_data->page_data = NULL;
+       }
+
+       D_MSG("Freeing ATTACH DATA");
+
+       if (mms_data->attach_data) {
+               int index = 0;
+               int ntotal = 0;
+               MMS_ATTACH_DATA_S *attach_data = mms_data->attach_data;
+               ntotal = eina_list_count(attach_data->attach_list);
+               for (index = 0; index < ntotal; index++) {
+                       MMS_MULTIPART_MEDIA_S *pMedia_info = (MMS_MULTIPART_MEDIA_S *)eina_list_nth(attach_data->attach_list, index);
+                       if (pMedia_info) {
+                               if (pMedia_info->obj) {
+                                       evas_object_del(pMedia_info->obj);
+                                       pMedia_info->obj = NULL;
+                               }
+                               free(pMedia_info);
+                               pMedia_info = NULL;
+                       }
+               }
+               eina_list_free(attach_data->attach_list);
+               attach_data->attach_list = NULL;
+
+               free(mms_data->attach_data);
+               mms_data->attach_data = NULL;
+       }
+
+       free(mms_data);
+       mms_data = NULL;
+}
diff --git a/common/msg-ui-smil-interface.h b/common/msg-ui-smil-interface.h
new file mode 100755 (executable)
index 0000000..3c24f91
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef _MSG_UI_SMIL_INTERFACE_H_
+#define _MSG_UI_SMIL_INTERFACE_H_
+
+#include <Elementary.h>
+#include <msg_types.h>
+#include <glib.h>
+
+#define INVALID_INDEX -1
+
+typedef enum {
+       MEDIA_INVALID = 0,
+       MEDIA_TEXT,
+       MEDIA_IMG,
+       MEDIA_AUDIO,
+       MEDIA_VIDEO,
+       MEDIA_ANIMATE,
+       MEDIA_IMG_OR_VIDEO,
+       MEDIA_ATTACH,
+       MEDIA_DRM,
+} MMS_MEDIA_TYPE_E;
+
+typedef struct _mms_page_data_s {
+       bool has_text;
+       bool has_video;
+       bool has_image;
+       bool has_audio;
+       int media_count;
+       Eina_List *insert_list;
+} MMS_PAGE_DATA_S;
+
+typedef struct _mms_attach_data_s {
+       Eina_List *attach_list;
+} MMS_ATTACH_DATA_S;
+
+typedef struct _mms_data_s {
+       int msg_id;
+       int page_count;
+       MMS_PAGE_DATA_S *page_data;
+       int attach_count;
+       MMS_ATTACH_DATA_S *attach_data;
+} MMS_DATA_S;
+
+typedef struct {
+       MMS_MEDIA_TYPE_E media_type;
+       Evas_Object     *layout;
+
+       char pfile_name[MSG_FILENAME_LEN_MAX + 1];
+       char pfile_path[MSG_FILEPATH_LEN_MAX + 1];
+       char pthumb_file_path[MSG_FILEPATH_LEN_MAX + 1];
+       char regionID[MAX_SMIL_REGION_ID + 1];
+       char contentID[MSG_MSG_ID_LEN + 1];
+       char contentLocation[MSG_MSG_ID_LEN + 1];
+
+       int pfile_size;         /* dummy */
+       int media_index;        /* dummy */
+       int page_index;         /* dummy */
+       int total_count;        /* dummy */
+       Evas_Object *obj;       /* dummy */
+       void *userdata;         /* dummy */
+
+       Ecore_Timer *longpress_timer;
+       bool mouse_down_flag;
+
+
+} MMS_MULTIPART_MEDIA_S;
+
+MMS_DATA_S *msg_ui_smil_interface_create_mms_struct_by_conversation(msg_struct_t conversation, int msgID, void *userdata);
+
+bool msg_ui_smil_interface_check_valid_multipart(MMS_MULTIPART_MEDIA_S *multipart_data);
+bool msg_ui_smil_interface_check_last_multipart(MMS_DATA_S *mms_data, MMS_MULTIPART_MEDIA_S *multipart_data);
+void msg_ui_smil_interface_release_mms_struct(MMS_DATA_S *mms_data);
+#endif
diff --git a/common/msg-ui-smil-parser.c b/common/msg-ui-smil-parser.c
new file mode 100755 (executable)
index 0000000..5825aee
--- /dev/null
@@ -0,0 +1,1714 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <unistd.h>
+#include <errno.h>
+#include <ctype.h>
+#include <sys/stat.h>
+
+#include "msg-ui-smil-parser.h"
+
+/* static variables */
+static char gszEmptyRawDoc[] = "<smil><head><layout></layout></head><body></body></smil>";
+__thread MmsSmilDoc * __gpaMmsSmilDoc[MMS_SMIL_MAX_DOC] = {NULL, };
+
+static int __parse_get_element_id(char *pString);
+static int __parse_get_attribute_id(char *pString);
+static bool __parse_get_font_attribute(char *pString);
+static int __parse_get_font_size_value(char *pString);
+static MmsSmilFontType __parse_get_font_type_value(char *pString);
+
+/* For creating SMIL Doc */
+static HMmsSmil __generate_create_empty_smil_doc(void);
+static HMmsSmil __generate_create_smil_doc(char *pszRawData);
+static bool __generate_destroy_smil_doc(HMmsSmil hSmilDoc);
+static bool __generate_check_valid_smil_doc_no(int nSmilDocNo);
+static char *__generate_get_smil_rawdata(HMmsSmil hSmilDoc);
+static bool __generate_add_root_layout(HMmsSmil hSmilDoc, smil_rootlayout *pstSmilRootLayout);
+static bool __generate_add_region(HMmsSmil hSmilDoc, mms_smil_region *pstSmilRegion);
+static bool __generate_add_page(HMmsSmil hSmilDoc, mms_page_s *pstSmilPage);
+static bool __generate_add_media(HMmsSmil hSmilDoc, int nPageNo, int nMediaIdx, mms_media_s *pstSmilMedia, char *pszContentID);
+static xmlNode *__generate_xml_create_text_node(mms_media_s *pstSmilMedia, char *pszContentID);
+static xmlNode *__generate_xml_create_mm_node(mms_media_s *pstSmilMedia, char *pszContentID);
+static bool __generate_xml_insert_first_child(xmlNode *pParent, xmlNode *pNode);
+static bool __generate_xml_insert_child(xmlNode *pParent, xmlNode *pLeftSibling, xmlNode *pNode);
+static void __generate_xml_set_attribute(xmlNode *pNode, char *szField, char *szValue);
+static xmlNodePtr __generate_xml_string_get_node_list(xmlNodePtr pstNode, char *pszName);
+
+/* release mms-data list */
+static void __release_page_media(mms_page_s *page);
+static msg_error_t __release_page_list(smil_parsed_data_s *pSmilData);
+
+static void __release_region(mms_smil_region *region);
+static msg_error_t __release_region_list(smil_parsed_data_s *pSmilData);
+
+static void __release_region(mms_smil_region *region)
+{
+       if (region != NULL) {
+               free(region);
+       }
+}
+
+static void __release_page_media(mms_page_s *page)
+{
+       if (page != NULL) {
+               if (page->medialist) {
+                       mms_media_s *media = NULL;
+                       int mediaCnt = eina_list_count(page->medialist);
+
+                       int i = 0;
+                       for (i = 0; i < mediaCnt; i++) {
+                               media = (mms_media_s *)eina_list_nth(page->medialist, i);
+                               if (media)
+                                       free(media);
+                       }
+
+                       eina_list_free(page->medialist);
+                       page->medialist = NULL;
+                       page->mediaCnt = 0;
+               }
+
+               free(page);
+       }
+}
+
+static msg_error_t __release_page_list(smil_parsed_data_s *pSmilData)
+{
+       if (pSmilData == NULL) {
+               D_MSG("pSmilData is NULL");
+               return MSG_ERR_INVALID_PARAMETER;
+       }
+
+       if (pSmilData->pagelist) {
+               Eina_List *l = NULL;
+               mms_page_s *p_page = NULL;
+               EINA_LIST_FOREACH(pSmilData->pagelist, l, p_page) {
+                       __release_page_media(p_page);
+               }
+               eina_list_free(pSmilData->pagelist);
+               pSmilData->pagelist = NULL;
+       }
+
+       pSmilData->pageCnt = 0;
+
+       return MSG_SUCCESS;
+}
+
+static msg_error_t __release_region_list(smil_parsed_data_s *pSmilData)
+{
+       if (pSmilData == NULL) {
+               D_MSG("pSmilData is NULL");
+               return MSG_ERR_INVALID_PARAMETER;
+       }
+
+       if (pSmilData->regionlist) {
+               Eina_List *l = NULL;
+               mms_smil_region *p_region = NULL;
+               EINA_LIST_FOREACH(pSmilData->regionlist, l, p_region) {
+                       __release_region(p_region);
+               }
+               eina_list_free(pSmilData->regionlist);
+               pSmilData->regionlist = NULL;
+       }
+
+       pSmilData->regionCnt = 0;
+
+       return MSG_SUCCESS;
+}
+
+int    __parse_get_element_id(char *pString)
+{
+       if (!strcmp(pString, "smil"))
+               return ELEMENT_SMIL;
+       else if (!strcmp(pString, "head"))
+               return ELEMENT_HEAD;
+       else if (!strcmp(pString, "layout"))
+               return ELEMENT_LAYOUT;
+       else if (!strcmp(pString, "root-layout"))
+               return ELEMENT_ROOTLAYOUT;
+       else if (!strcmp(pString, "region"))
+               return ELEMENT_REGION;
+       else if (!strcmp(pString, "body"))
+               return ELEMENT_BODY;
+       else if (!strcmp(pString, "par"))
+               return ELEMENT_PAR;
+       else if (!strcmp(pString, "param"))
+               return ELEMENT_PARAM;
+       else if (!strcmp(pString, "text"))
+               return ELEMENT_TEXT;
+       else if (!strcmp(pString, "img"))
+               return ELEMENT_IMG;
+       else if (!strcmp(pString, "audio"))
+               return ELEMENT_AUDIO;
+       else if (!strcmp(pString, "video"))
+               return ELEMENT_VIDEO;
+       else if (!strcmp(pString, "ref"))
+               return ELEMENT_REF;
+       else if (!strcmp(pString, "animate"))
+               return ELEMENT_ANIMATE;
+       else
+               return -1;
+}
+
+int    __parse_get_attribute_id(char *pString)
+{
+       if (!strcmp(pString, "id"))
+               return ATTRIBUTE_ID;
+       else if (!strcmp(pString, "top"))
+               return ATTRIBUTE_TOP;
+       else if (!strcmp(pString, "left"))
+               return ATTRIBUTE_LEFT;
+       else if (!strcmp(pString, "width"))
+               return ATTRIBUTE_WIDTH;
+       else if (!strcmp(pString, "height"))
+               return ATTRIBUTE_HEIGHT;
+       else if (!strcmp(pString, "src"))
+               return ATTRIBUTE_SRC;
+       else if (!strcmp(pString, "bold"))
+               return ATTRIBUTE_BOLD;
+       else if (!strcmp(pString, "underline"))
+               return ATTRIBUTE_UNDERLINE;
+       else if (!strcmp(pString, "italic"))
+               return ATTRIBUTE_ITALIC;
+       else if (!strcmp(pString, "reverse"))
+               return ATTRIBUTE_REVERSE;
+       else if (!strcmp(pString, "size"))
+               return ATTRIBUTE_SIZE;
+       else if (!strcmp(pString, "font"))
+               return ATTRIBUTE_FONT;
+       else if (!strcmp(pString, "region"))
+               return ATTRIBUTE_REGION;
+       else if (!strcmp(pString, "name"))
+               return ATTRIBUTE_NAME;
+       else if (!strcmp(pString, "value"))
+               return ATTRIBUTE_VALUE;
+       else if (!strcmp(pString, "alt"))
+               return ATTRIBUTE_ALT;
+       else
+               return -1;
+}
+
+bool __parse_get_font_attribute(char *pString)
+{
+       if (!strcmp(pString, "true"))
+               return true;
+       else
+               return false;
+}
+
+int __parse_get_font_size_value(char *pString)
+{
+       D_SEC_MSG(" #### content = %s #### ", pString);
+       if (!strcmp(pString, "small"))
+               return MMS_SMIL_FONT_SIZE_SMALL;
+       else if (!strcmp(pString, "normal"))
+               return MMS_SMIL_FONT_SIZE_NORMAL;
+       else if (!strcmp(pString, "large"))
+               return MMS_SMIL_FONT_SIZE_LARGE;
+       else
+               return atoi(pString);
+}
+
+MmsSmilFontType __parse_get_font_type_value(char *pString)
+{
+       D_SEC_MSG(" #### content = %s #### ", pString);
+
+       if (!strcmp(pString, "normal"))
+               return MMS_SMIL_FONT_TYPE_NORMAL;
+       else if (!strcmp(pString, "italic"))
+               return MMS_SMIL_FONT_TYPE_ITALIC;
+       else if (!strcmp(pString, "bold"))
+               return MMS_SMIL_FONT_TYPE_BOLD;
+       else if (!strcmp(pString, "underline"))
+               return MMS_SMIL_FONT_TYPE_UNDERLINE;
+       else
+               return MMS_SMIL_FONT_TYPE_NORMAL;
+}
+
+void __parse_get_element_only_layout(smil_parsed_data_s *pMmsMsg, xmlNode *a_node)
+{
+       D_ENTER;
+
+       int elementType;
+       int attrType;
+       smil_rootlayout rootlayout = {};
+       static bool cmd[ELEMENT_MAX] = {false, };
+       static mms_smil_region *pRegion = NULL;
+       static mms_page_s *pPage = NULL;
+       static mms_media_s *pMedia = NULL;
+
+       xmlNode *cur_node = NULL;
+
+       for (cur_node = a_node; cur_node; cur_node = cur_node->next) {
+               D_SEC_MSG("******* node, name: %s ***", cur_node->name);
+
+               if (cur_node->type == XML_ELEMENT_NODE) {
+                       /* Get Smil Element ===================================================== */
+                       D_SEC_MSG("*** node type: Element, name: %s ***", cur_node->name);
+
+                       switch (elementType = __parse_get_element_id((char *)cur_node->name)) {
+                       case ELEMENT_ROOTLAYOUT:
+                               memset(cmd, 0, ELEMENT_MAX);
+                               cmd[ELEMENT_ROOTLAYOUT] = true;
+                               break;
+
+                       case ELEMENT_REGION:
+                               pRegion = (mms_smil_region *)calloc(1, sizeof(mms_smil_region));
+                               memset(cmd, 0, ELEMENT_MAX);
+                               cmd[ELEMENT_REGION] = true;
+                               break;
+
+                       case ELEMENT_PAR:
+                               pPage = (mms_page_s *)calloc(1, sizeof(mms_page_s));
+                               memset(cmd, 0, ELEMENT_MAX);
+                               cmd[ELEMENT_PAR] = true;
+                               break;
+
+                       case ELEMENT_PARAM: /* Need to check the original element type */
+                               break;
+
+                       case ELEMENT_TEXT:
+                               pMedia = (mms_media_s *)calloc(1, sizeof(mms_media_s));
+                               pMedia->mediatype = MMS_SMIL_MEDIA_TEXT;
+                               memset(cmd, 0, ELEMENT_MAX);
+                               cmd[ELEMENT_TEXT] = true;
+                               break;
+
+                       case ELEMENT_IMG:
+                               pMedia = (mms_media_s *)calloc(1, sizeof(mms_media_s));
+                               pMedia->mediatype = MMS_SMIL_MEDIA_IMG;
+                               memset(cmd, 0, ELEMENT_MAX);
+                               cmd[ELEMENT_IMG] = true;
+                               break;
+
+                       case ELEMENT_AUDIO:
+                               pMedia = (mms_media_s *)calloc(1, sizeof(mms_media_s));
+                               pMedia->mediatype = MMS_SMIL_MEDIA_AUDIO;
+                               memset(cmd, 0, ELEMENT_MAX);
+                               cmd[ELEMENT_AUDIO] = true;
+                               break;
+
+                       case ELEMENT_VIDEO:
+                               pMedia = (mms_media_s *)calloc(1, sizeof(mms_media_s));
+                               pMedia->mediatype = MMS_SMIL_MEDIA_VIDEO;
+                               memset(cmd, 0, ELEMENT_MAX);
+                               cmd[ELEMENT_VIDEO] = true;
+                               break;
+
+                       case ELEMENT_REF:
+                               pMedia = (mms_media_s *)calloc(1, sizeof(mms_media_s));
+                               pMedia->mediatype = MMS_SMIL_MEDIA_IMG_OR_VIDEO;
+                               memset(cmd, 0, ELEMENT_MAX);
+                               cmd[ELEMENT_REF] = true;
+                               break;
+
+                       case ELEMENT_ANIMATE:
+                               pMedia = (mms_media_s *)calloc(1, sizeof(mms_media_s));
+                               pMedia->mediatype = MMS_SMIL_MEDIA_ANIMATE;
+                               memset(cmd, 0, ELEMENT_MAX);
+                               cmd[ELEMENT_ANIMATE] = true;
+                               break;
+
+                       default:
+                               memset(cmd, 0, ELEMENT_MAX);
+                               break;
+                       }
+
+                       /* Get Smil Attribute ===================================================== */
+                       xmlAttr *pAttr = cur_node->properties;
+                       SMIL_ATTRIBUTE_T paramType = ATTRIBUTE_UNKNOWN;
+
+                       for ( ; pAttr; pAttr = pAttr->next) {
+                               D_SEC_MSG("AttributeType: (%s, %s) ", pAttr->name, pAttr->children->content);
+                               switch (attrType = __parse_get_attribute_id((char *)pAttr->name)) {
+                               case ATTRIBUTE_ID:
+                                       {
+                                               if (cmd[ELEMENT_REGION] && pRegion) {
+                                                       strncpy(pRegion->szID, (char *)pAttr->children->content, MAX_SMIL_REGION_ID - 1);
+                                               }
+                                       }
+                                       break;
+
+                               case ATTRIBUTE_TOP:
+                                       {
+                                               int bUnitPercent;
+                                               int value;
+
+                                               if (strchr((char *)pAttr->children->content, '%'))
+                                                       bUnitPercent = true;
+                                               else
+                                                       bUnitPercent = false;
+
+                                               value = atoi((char *)pAttr->children->content);
+
+                                               if (cmd[ELEMENT_REGION] && pRegion) {
+                                                       pRegion->nTop.bUnitPercent = bUnitPercent;
+                                                       pRegion->nTop.value = value;
+                                               }
+                                       }
+                                       break;
+
+                               case ATTRIBUTE_LEFT:
+                                       {
+                                               int bUnitPercent;
+                                               int value;
+
+                                               if (strchr((char *)pAttr->children->content, '%'))
+                                                       bUnitPercent = true;
+                                               else
+                                                       bUnitPercent = false;
+
+                                               value = atoi((char *)pAttr->children->content);
+
+                                               if (cmd[ELEMENT_REGION] && pRegion) {
+                                                       pRegion->nLeft.bUnitPercent = bUnitPercent;
+                                                       pRegion->nLeft.value = value;
+                                               }
+                                       }
+                                       break;
+
+
+                               case ATTRIBUTE_WIDTH:
+                                       {
+                                               int bUnitPercent;
+                                               int value;
+
+                                               if (strchr((char *)pAttr->children->content, '%'))
+                                                       bUnitPercent = true;
+                                               else
+                                                       bUnitPercent = false;
+
+                                               value = atoi((char *)pAttr->children->content);
+
+                                               if (cmd[ELEMENT_ROOTLAYOUT]) {
+                                                       rootlayout.width.bUnitPercent = bUnitPercent;
+                                                       rootlayout.width.value = value;
+                                               } else if (cmd[ELEMENT_REGION] && pRegion) {
+                                                       pRegion->width.bUnitPercent = bUnitPercent;
+                                                       pRegion->width.value = value;
+                                               }
+                                       }
+                                       break;
+
+                               case ATTRIBUTE_HEIGHT:
+                                       {
+                                               int bUnitPercent;
+                                               int value;
+
+                                               if (strchr((char *)pAttr->children->content, '%'))
+                                                       bUnitPercent = true;
+                                               else
+                                                       bUnitPercent = false;
+
+                                               value = atoi((char *)pAttr->children->content);
+
+                                               if (cmd[ELEMENT_ROOTLAYOUT]) {
+                                                       rootlayout.height.bUnitPercent = bUnitPercent;
+                                                       rootlayout.height.value = value;
+                                               } else if (cmd[ELEMENT_REGION] && pRegion) {
+                                                       pRegion->height.bUnitPercent = bUnitPercent;
+                                                       pRegion->height.value = value;
+                                               }
+                                       }
+                                       break;
+
+                               case ATTRIBUTE_SRC:
+                               {
+                                       if (pMedia) {
+                                               char szContentID[MSG_MSG_ID_LEN + 1] = {0,};
+                                               int cLen;
+
+                                               snprintf(szContentID, sizeof(szContentID), "%s", (char *)pAttr->children->content);
+
+                                               cLen = strlen(szContentID);
+                                               if (!strncasecmp(szContentID, "cid:", 4)) {
+                                                       strncpy(pMedia->szContentID, szContentID + 4, cLen - 4);
+                                                       pMedia->szContentID[cLen - 4] = '\0';
+                                               } else {
+                                                       strncpy(pMedia->szContentID, szContentID, cLen);
+                                                       pMedia->szContentID[cLen] = '\0';
+                                               }
+                                       }
+                                       break;
+                               }
+
+                               case ATTRIBUTE_SIZE:
+                                       if (cmd[ELEMENT_TEXT] && pMedia)
+                                               pMedia->sMedia.sText.nSize = atoi((char *)pAttr->children->content);
+                                       break;
+
+                               case ATTRIBUTE_BOLD:
+                                       if (cmd[ELEMENT_TEXT] && pMedia) {
+                                               pMedia->sMedia.sText.bBold = __parse_get_font_attribute((char *)pAttr->children->content);
+                                       }
+                                       break;
+
+                               case ATTRIBUTE_UNDERLINE:
+                                       if (cmd[ELEMENT_TEXT] && pMedia)
+                                               pMedia->sMedia.sText.bUnderLine = __parse_get_font_attribute((char *)pAttr->children->content);
+                                       break;
+
+                               case ATTRIBUTE_ITALIC:
+                                       if (cmd[ELEMENT_TEXT] && pMedia)
+                                               pMedia->sMedia.sText.bItalic = __parse_get_font_attribute((char *)pAttr->children->content);
+                                       break;
+
+                               case ATTRIBUTE_REVERSE:
+                                       if (cmd[ELEMENT_TEXT] && pMedia)
+                                               pMedia->sMedia.sText.bReverse = __parse_get_font_attribute((char *)pAttr->children->content);
+                                       break;
+
+                               case ATTRIBUTE_REGION:
+                                       if (pMedia) {
+                                               strncpy(pMedia->regionId, (char *)pAttr->children->content, MAX_SMIL_REGION_ID - 1);
+                                       }
+                                       break;
+
+                               case ATTRIBUTE_NAME:
+                                       if (!strcmp((char *)pAttr->children->content, "textsize"))
+                                               paramType = ATTRIBUTE_SIZE;
+                                       else if (!strcmp((char *)pAttr->children->content, "textattribute"))
+                                               paramType = ATTRIBUTE_TEXTFORMAT;
+
+                                       break;
+
+                               case ATTRIBUTE_VALUE:
+                                       if (pMedia) {
+                                               if (paramType == ATTRIBUTE_SIZE && cmd[ELEMENT_TEXT])
+                                                       pMedia->sMedia.sText.nSize = __parse_get_font_size_value((char *)pAttr->children->content);
+                                               else if (paramType == ATTRIBUTE_TEXTFORMAT && cmd[ELEMENT_TEXT]) {
+                                                       MmsSmilFontType fontType;
+
+                                                       fontType = __parse_get_font_type_value((char *)pAttr->children->content);
+
+                                                       if (fontType == MMS_SMIL_FONT_TYPE_BOLD)
+                                                               pMedia->sMedia.sText.bBold = true;
+                                                       else
+                                                               pMedia->sMedia.sText.bBold = false;
+
+                                                       if (fontType == MMS_SMIL_FONT_TYPE_ITALIC)
+                                                               pMedia->sMedia.sText.bItalic = true;
+                                                       else
+                                                               pMedia->sMedia.sText.bItalic = false;
+
+                                                       if (fontType == MMS_SMIL_FONT_TYPE_UNDERLINE)
+                                                               pMedia->sMedia.sText.bUnderLine = true;
+                                                       else
+                                                               pMedia->sMedia.sText.bUnderLine = false;
+                                               }
+                                       }
+                                       break;
+
+                               case ATTRIBUTE_ALT:
+                                       if (pMedia) {
+                                               strncpy(pMedia->szAlt, (char *)pAttr->children->content, MAX_SMIL_ALT_LEN - 1);
+                                       }
+                                       break;
+
+                               default:
+                                       D_MSG("Undefined Attribute was found!!!!!");
+                                       break;
+                               }
+                       }
+
+                       if (elementType == ELEMENT_REGION && cmd[ELEMENT_REGION] && pRegion) {
+                               /* Insert a region to region list */
+                               _msg_ui_parse_add_smil_region(pMmsMsg, pRegion);
+                       } else if (elementType ==  ELEMENT_PAR && cmd[ELEMENT_PAR] && pPage) {
+                               /* Insert a page to page list */
+                               _msg_ui_parse_add_smil_page(pMmsMsg, pPage);
+                       } else if ((elementType == ELEMENT_TEXT || elementType == ELEMENT_IMG || elementType == ELEMENT_AUDIO || elementType == ELEMENT_VIDEO || elementType == ELEMENT_ANIMATE || elementType == ELEMENT_REF)
+                                       && (cmd[ELEMENT_TEXT] || cmd[ELEMENT_IMG] || cmd[ELEMENT_AUDIO] || cmd[ELEMENT_VIDEO] || cmd[ELEMENT_ANIMATE] || cmd[ELEMENT_REF]) && pPage && pMedia) {
+                               /* Insert a media to media list */
+                               _msg_ui_parse_add_smil_media(pPage, pMedia);
+                       } else if (elementType == ELEMENT_ROOTLAYOUT && cmd[ELEMENT_ROOTLAYOUT]) {
+                               _msg_ui_parse_add_smil_root_layout(pMmsMsg, &rootlayout);
+                       }
+
+                       paramType = ATTRIBUTE_UNKNOWN;
+               }
+
+               if (cur_node->children)
+                       __parse_get_element_only_layout(pMmsMsg, cur_node->children);
+       }
+
+       D_LEAVE;
+}
+
+bool _msg_ui_parse_add_smil_root_layout(smil_parsed_data_s *pSmilData, smil_rootlayout *pRootlayout)
+{
+       memcpy(&pSmilData->rootlayout, pRootlayout, sizeof(smil_rootlayout));
+       return true;
+}
+
+msg_error_t _msg_ui_parse_add_smil_region(smil_parsed_data_s *pSmilData, mms_smil_region* pRegion)
+{
+       if (pSmilData == NULL || pRegion == NULL)
+               return MSG_ERR_INVALID_PARAMETER;
+
+       pSmilData->regionlist = eina_list_append(pSmilData->regionlist, pRegion);
+       pSmilData->regionCnt++;
+
+       return MSG_SUCCESS;
+}
+
+msg_error_t _msg_ui_parse_add_smil_page(smil_parsed_data_s *pSmilData, mms_page_s *pPage)
+{
+       if (pSmilData == NULL || pPage == NULL)
+               return MSG_ERR_INVALID_PARAMETER;
+
+       pSmilData->pagelist = eina_list_append(pSmilData->pagelist, pPage);
+       pSmilData->pageCnt++;
+       D_MSG("MmsData's Page Count : %d", pSmilData->pageCnt);
+       return MSG_SUCCESS;
+}
+
+msg_error_t _msg_ui_parse_add_smil_media(mms_page_s *pPage, mms_media_s *pMedia)
+{
+       if (pPage == NULL || pMedia == NULL)
+               return MSG_ERR_INVALID_PARAMETER;
+
+       pPage->medialist = eina_list_append(pPage->medialist, pMedia);
+       pPage->mediaCnt++;
+       D_MSG("Page's media count: %d", pPage->mediaCnt);
+       return MSG_SUCCESS;
+}
+
+bool msg_ui_parse_smil_doc(smil_parsed_data_s *pstMsgMmsBody, const char *pSmilDoc)
+{
+       D_ENTER;
+
+       xmlDocPtr doc;
+       xmlNodePtr cur;
+
+       if (pSmilDoc == NULL || strlen(pSmilDoc) == 0) {
+               D_EMSG("Invalid Parameter : pSmilDoc [%p]", pSmilDoc);
+               return false;
+       }
+
+       D_SEC_MSG("%s", pSmilDoc);
+
+       doc = xmlParseMemory(pSmilDoc, strlen(pSmilDoc));
+       if (doc == NULL) {
+               D_EMSG("Failed xmlParseMemory");
+               return false;
+       }
+
+       cur = xmlDocGetRootElement(doc);
+       if (cur == NULL) {
+               D_EMSG("Failed xmlDocGetRootElement");
+               xmlFreeDoc(doc);
+               return false;
+       }
+
+       if (xmlStrcmp(cur->name, (const xmlChar*)"smil")) {
+               D_EMSG("document of the wrong type, root node != smil");
+               xmlFreeDoc(doc);
+               return false;
+       }
+
+       __parse_get_element_only_layout(pstMsgMmsBody, cur);
+
+       xmlFreeDoc(doc);
+       D_LEAVE;
+       return true;
+}
+
+
+
+/**    @fn             static HMmsSmil __generate_create_empty_smil_doc(void)
+ *     @brief  Creates default Smil Doc based on input gszEmptyRawDoc.
+ *     @retval Returns Smil Document number.
+ */
+HMmsSmil __generate_create_empty_smil_doc(void)
+{
+       HMmsSmil hMmsSmil;
+
+       D_ENTER;
+
+       hMmsSmil = __generate_create_smil_doc(gszEmptyRawDoc);
+
+       D_MSG("Create an empty smilDoc.(Handle = %d)", hMmsSmil);
+
+       D_LEAVE;
+
+       return hMmsSmil;
+}
+
+/**    @fn                     static HMmsSmil __generate_create_smil_doc(char *pszRawData)
+ *     @brief          Creates Smil Doc based on input pszRawData.
+ *     @param[in]      pszRawData is smil buffer.
+ *     @retval         Returns Smil Document number.
+ */
+HMmsSmil __generate_create_smil_doc(char *pszRawData)
+{
+       int nSmilDocNo = 0;
+       xmlNodePtr stRootNode;
+
+       D_ENTER;
+
+       /* Destroy smil doc if present */
+       if (NULL != __gpaMmsSmilDoc[nSmilDocNo]) {
+               D_MSG("Calling __generate_destroy_smil_doc");
+               if (false == __generate_destroy_smil_doc(nSmilDocNo)) {
+                       D_MSG("__generate_destroy_smil_doc: Failed!");
+               }
+       }
+
+       for (nSmilDocNo = 0; nSmilDocNo < MMS_SMIL_MAX_DOC; nSmilDocNo++) {
+               if (NULL == __gpaMmsSmilDoc[nSmilDocNo])
+                       break;
+       }
+
+       if (MMS_SMIL_MAX_DOC == nSmilDocNo) {
+               D_MSG("SmilDoc table is full. Can't create.");
+               return INVALID_HOBJ;
+       }
+       __gpaMmsSmilDoc[nSmilDocNo] = (MmsSmilDoc *)malloc(sizeof(MmsSmilDoc));
+       if (NULL ==  __gpaMmsSmilDoc[nSmilDocNo]) {
+               D_MSG("Memory Allocation Failed.");
+               return INVALID_HOBJ;
+       }
+       memset(__gpaMmsSmilDoc[nSmilDocNo], 0, sizeof(MmsSmilDoc));
+
+       __gpaMmsSmilDoc[nSmilDocNo]->pSmilDoc = xmlParseMemory(pszRawData, strlen(pszRawData));
+       if (NULL == __gpaMmsSmilDoc[nSmilDocNo]->pSmilDoc) {
+               D_MSG("Document not parsed successfully.");
+               if (false == __generate_destroy_smil_doc(nSmilDocNo)) {
+                       D_MSG("__generate_destroy_smil_doc: Failed!");
+               }
+               return INVALID_HOBJ;
+       }
+       stRootNode = xmlDocGetRootElement(__gpaMmsSmilDoc[nSmilDocNo]->pSmilDoc);
+       if (NULL == stRootNode) {
+               D_MSG("Empty document");
+               if (false == __generate_destroy_smil_doc(nSmilDocNo)) {
+                       D_MSG("__generate_destroy_smil_doc: Failed!");
+               }
+               return INVALID_HOBJ;
+       }
+       if (xmlStrcmp(stRootNode->name, (const xmlChar*)"smil")) {
+               D_MSG("Document of the wrong type, root node != smil");
+               if (false == __generate_destroy_smil_doc(nSmilDocNo)) {
+                       D_MSG("__generate_destroy_smil_doc: Failed!");
+               }
+               return INVALID_HOBJ;
+       }
+
+       __gpaMmsSmilDoc[nSmilDocNo]->pstRootNode = stRootNode;
+
+       D_LEAVE;
+       return ((HMmsSmil)nSmilDocNo);
+}
+
+/**    @fn                     static bool __generate_destroy_smil_doc(HMmsSmil hSmilDoc)
+ *     @brief          Destroys Smil Doc.
+ *     @param[in]      hSmilDoc is smil doc number.
+ *     @retval TRUE                            In case of Success.
+ *     @retval FALSE                           In case of failure.
+ */
+bool __generate_destroy_smil_doc(HMmsSmil hSmilDoc)
+{
+       int nSmilDocNo = (int)hSmilDoc;
+       bool bFlag = true;
+       D_ENTER;
+
+       if (0 <= nSmilDocNo &&
+               nSmilDocNo < MMS_SMIL_MAX_DOC &&
+               __gpaMmsSmilDoc[nSmilDocNo]) {
+               if (__gpaMmsSmilDoc[nSmilDocNo]->pSmilDoc) {
+                       xmlFreeDoc(__gpaMmsSmilDoc[nSmilDocNo]->pSmilDoc);
+               }
+
+               if (__gpaMmsSmilDoc[nSmilDocNo]->pstRootNode) {
+                       /* Need to Check */
+               }
+               free(__gpaMmsSmilDoc[nSmilDocNo]);
+               __gpaMmsSmilDoc[nSmilDocNo] = NULL;
+       } else {
+               D_MSG("Invalid SmilDoc(hSmilDoc:%d)", nSmilDocNo);
+               bFlag =  false;
+       }
+
+       D_LEAVE;
+       return bFlag;
+}
+
+/**    @fn                     static bool __generate_check_valid_smil_doc_no(int nSmilDocNo)
+ *     @brief          Form Smil Doc.
+ *     @param[in]      hSmilDoc is smil doc number.
+ *     @retval         Returns Smil Buffer     In case of success.
+ *     @retval         Returns NULL                    In case of failure.
+ */
+bool __generate_check_valid_smil_doc_no(int nSmilDocNo)
+{
+       bool bIsValidSmil = false;
+
+       D_ENTER;
+
+       if (0 <= nSmilDocNo &&
+               nSmilDocNo < MMS_SMIL_MAX_DOC &&
+               __gpaMmsSmilDoc[nSmilDocNo] &&
+               __gpaMmsSmilDoc[nSmilDocNo]->pSmilDoc) {
+               bIsValidSmil = true;
+       }
+
+       D_LEAVE;
+       return bIsValidSmil;
+}
+
+/**    @fn                     static char  __generate_get_smil_rawdata(HMmsSmil hSmilDoc)
+ *     @brief          Form Smil Doc.
+ *     @param[in]      hSmilDoc is smil doc number.
+ *     @retval         Returns Smil Buffer     In case of success.
+ *     @retval         Returns NULL                    In case of failure.
+ */
+char *__generate_get_smil_rawdata(HMmsSmil hSmilDoc)
+{
+       int nSmilDocNo = (int)hSmilDoc;
+       char *pszRawData = NULL;
+
+       D_ENTER;
+
+       if (__generate_check_valid_smil_doc_no(nSmilDocNo)) {
+               xmlSaveFormatFileEnc("-", __gpaMmsSmilDoc[nSmilDocNo]->pSmilDoc, "UTF-8", 1);
+               xmlDocDumpMemory(__gpaMmsSmilDoc[nSmilDocNo]->pSmilDoc, (xmlChar **)(&pszRawData) , NULL);
+               if (NULL == pszRawData) {
+                       D_MSG("Invalid pSmilDoc (now wellformed document)");
+               }
+               D_LEAVE;
+       } else {
+               D_MSG("Invalid SmilDoc(hSmilDoc:%d)", nSmilDocNo);
+       }
+       return pszRawData;
+}
+
+/**    @fn                     static bool __generate_add_page(HMmsSmil hSmilDoc, mms_page_s *pstSmilPage)
+ *     @brief          Add Page to Smil Doc.
+ *     @param[in]      hSmilDoc is smil doc number.
+ *     @param[in]      pstSmilPage specifies page information.
+ *     @retval         TRUE                            In case of Success.
+ *     @retval         FALSE                           In case of failure.
+ */
+bool __generate_add_page(HMmsSmil hSmilDoc, mms_page_s *pstSmilPage)
+{
+       int nSmilDocNo = hSmilDoc;
+
+       D_ENTER;
+
+       bool ret = true;
+
+       if (__generate_check_valid_smil_doc_no(nSmilDocNo)) {
+               xmlNodePtr pstParElement;
+               xmlNodePtr pstBodyElement;
+               xmlNodePtr pstParList;
+
+               pstBodyElement = __generate_xml_string_get_node_list(__gpaMmsSmilDoc[nSmilDocNo]->pstRootNode, (char *)"body");
+
+               if (NULL == pstBodyElement) {
+                       D_MSG("There is no <body> node. Can't create <par> node.");
+                       return false;
+               }
+               D_SEC_MSG("Body Element Name = %s", (char *)pstBodyElement->name);
+               /* Create "par"  node and insert it */
+               pstParElement = xmlNewNode(NULL, (xmlChar *)"par");
+
+               if (NULL == pstParElement) {
+                       D_MSG("Can't create <par> node. (from XmlParser)");
+                       return false;
+               }
+               D_SEC_MSG("Par Element Name = %s", (char *)pstParElement->name);
+
+               /* Find the insertion point : right sibling of the last <par> node or first child of <body> */
+
+               pstParList = xmlGetLastChild(pstBodyElement);
+
+               if (pstParList) {
+                       ret = __generate_xml_insert_child(pstBodyElement, pstParList, pstParElement);
+               } else {
+                       ret = __generate_xml_insert_first_child(pstBodyElement, pstParElement);
+               }
+       } else {
+               D_MSG("Invalid SmilDoc(hSmilDoc:%d)", nSmilDocNo);
+               return false;
+       }
+
+       return ret;
+}
+
+/**    @fn                     static bool __generate_add_root_layout(HMmsSmil hSmilDoc, smil_rootlayout *pstSmilRootLayout)
+ *     @brief          Add Rootlayout to Smil Doc.
+ *     @param[in]      hSmilDoc is smil doc number.
+ *     @param[in]      pstSmilRootLayout specifies RootLayout information.
+ *     @retval         TRUE                            In case of Success.
+ *     @retval         FALSE                           In case of failure.
+ */
+bool __generate_add_root_layout(HMmsSmil hSmilDoc, smil_rootlayout *pstSmilRootLayout)
+{
+       int nSmilDocNo = hSmilDoc;
+       xmlNodePtr pstRootLayout = NULL;
+       xmlNodePtr pstLayoutList = NULL;
+       xmlNodePtr pstRootLayoutList = NULL;
+       char szBuf[MSG_STDSTR_SHORT] = {0, };
+
+       D_ENTER;
+
+       if (__generate_check_valid_smil_doc_no(nSmilDocNo)) {
+               pstLayoutList = __generate_xml_string_get_node_list(__gpaMmsSmilDoc[nSmilDocNo]->pstRootNode, (char *)"layout");
+
+               if (NULL == pstLayoutList) {
+                       D_MSG("There is no <layout> node. Can't create <root-layout> node.");
+                       return false;
+               }
+               D_SEC_MSG("Layout Element Name = %s ", (char *)pstLayoutList->name);
+
+               pstRootLayoutList = __generate_xml_string_get_node_list(__gpaMmsSmilDoc[nSmilDocNo]->pstRootNode, (char *)"root-layout");
+
+               if (NULL != pstRootLayoutList) {
+                       D_MSG("__generate_add_root_layout: There is <root-layout> node already");
+                       D_SEC_MSG("Root Layout Element Name = %s  type=%d", (char *)pstRootLayoutList->name);
+                       return false;
+               }
+               /* Create "root-layout" node and insert it */
+               pstRootLayout = xmlNewNode(NULL, (xmlChar *)"root-layout");
+               if (NULL == pstRootLayout) {
+                       D_MSG("Can't create <root-layout> node. (from XmlParser)");
+                       return false;
+               }
+               D_SEC_MSG("Root Layout Element Name = %s", (char *)pstRootLayout->name);
+
+               D_MSG(" Set Width");
+               if (true == pstSmilRootLayout->width.bUnitPercent) {
+                       snprintf(szBuf, MSG_STDSTR_SHORT, "%d%%", pstSmilRootLayout->width.value);
+                       xmlSetProp(pstRootLayout, (const xmlChar *)"width", (const xmlChar *)szBuf);
+               } else {
+                       if (pstSmilRootLayout->width.value > 0) {
+                               snprintf(szBuf, MSG_STDSTR_SHORT, "%d", pstSmilRootLayout->width.value);
+                               xmlSetProp(pstRootLayout, (const xmlChar *)"width", (const xmlChar *)szBuf);
+                       } else {
+                               xmlSetProp(pstRootLayout, (const xmlChar *)"width", (const xmlChar *)"100%");
+                       }
+               }
+               D_MSG(" Set Height");
+               if (true == pstSmilRootLayout->height.bUnitPercent) {
+                       snprintf(szBuf, MSG_STDSTR_SHORT, "%d%%", pstSmilRootLayout->height.value);
+                       xmlSetProp(pstRootLayout, (const xmlChar *)"height", (const xmlChar *)szBuf);
+               } else {
+                       if (pstSmilRootLayout->height.value > 0) {
+                               snprintf(szBuf, MSG_STDSTR_SHORT, "%d", pstSmilRootLayout->height.value);
+                               xmlSetProp(pstRootLayout, (const xmlChar *)"height", (const xmlChar *)szBuf);
+                       } else {
+                               xmlSetProp(pstRootLayout, (const xmlChar *)"height", (const xmlChar *)"100%");
+                       }
+               }
+               __generate_xml_insert_first_child(pstLayoutList, pstRootLayout);
+
+               return true;
+       } else {
+               D_MSG("Invalid SmilDoc(hSmilDoc:%d)", nSmilDocNo);
+               return false;
+       }
+
+}
+
+
+/**    @fn                     static bool __generate_add_region(HMmsSmil hSmilDoc, mms_smil_region *pstSmilRegion)
+ *     @brief          Add Region to Smil Doc.
+ *     @param[in]      hSmilDoc is smil doc number.
+ *     @param[in]      pstSmilRegion specifies Region information.
+ *     @retval         TRUE                            In case of Success.
+ *     @retval         FALSE                           In case of failure.
+ */
+bool __generate_add_region(HMmsSmil hSmilDoc, mms_smil_region *pstSmilRegion)
+{
+       int nSmilDocNo = hSmilDoc;
+
+       D_ENTER;
+
+       if (__generate_check_valid_smil_doc_no(nSmilDocNo)) {
+               int nRootWidth = 0;
+               int nRootHeight = 0;
+               xmlNodePtr pstRegion;
+               xmlNodePtr pstLayoutList;
+               xmlNodePtr pstRootLayoutList;
+               xmlAttrPtr pAttribute;
+               char szBuf[MSG_STDSTR_SHORT] = {0, };
+
+               pstLayoutList = __generate_xml_string_get_node_list(__gpaMmsSmilDoc[nSmilDocNo]->pstRootNode, (char *)"layout");
+               if (NULL == pstLayoutList) {
+                       D_MSG(" There is no <layout> node. Can't create <region> node");
+                       return false;
+               }
+               D_SEC_MSG("Layout Element Name = %s ", (char *)pstLayoutList->name);
+
+               /* Find the insertion point : right sibling of the last root-layout node or first child of pLayout */
+               pstRootLayoutList = __generate_xml_string_get_node_list(__gpaMmsSmilDoc[nSmilDocNo]->pstRootNode, (char *)"root-layout");
+
+               if (NULL == pstRootLayoutList) {
+                       D_MSG("There is no <root-layout> node. Can't create <root-layout> node.");
+                       return false;
+               } else {
+                       D_SEC_MSG("Root Layout Element Name = %s ", (char *)pstRootLayoutList->name);
+                       pAttribute =  pstRootLayoutList->properties;
+               }
+
+               if (NULL == pAttribute) {
+                       D_MSG("There is no Attribute in <root-layout> node.");
+                       return false;
+               }
+
+               xmlAttrPtr pstAttr = pAttribute;
+               for ( ; pstAttr; pstAttr = pstAttr->next) {
+                       int     attrType;
+                       D_SEC_MSG("AttributeType: (%s, %s) ", pstAttr->name, pstAttr->children->content);
+                       switch (attrType = __parse_get_attribute_id((char *)pstAttr->name)) {
+                       case ATTRIBUTE_WIDTH:
+                               nRootWidth = atoi((char *)pstAttr->children->content);
+                               break;
+
+                       case ATTRIBUTE_HEIGHT:
+                               nRootHeight = atoi((char *)pstAttr->children->content);
+                               break;
+                       }
+               }
+
+               /* Create "region" node and insert it */
+               D_MSG("Create Region Node");
+               pstRegion = xmlNewNode(NULL, (xmlChar *)"region");
+               if (NULL == pstRegion) {
+                       D_MSG("Can't create <region> node. (from XmlParser)");
+                       return false;
+               }
+               /* Add attributes */
+               if (pstSmilRegion) {
+                       D_MSG(" [Set Attribute] : Region Id");
+                       if (strlen(pstSmilRegion->szID) > 0) {
+                               xmlSetProp(pstRegion, (const xmlChar *)"id", (const xmlChar *)pstSmilRegion->szID);
+                       }
+
+                       D_MSG(" [Set Attribute] : Width");
+
+                       if (true == pstSmilRegion->width.bUnitPercent) {
+                               if (pstSmilRegion->width.value > 0) {
+                                       snprintf(szBuf, MSG_STDSTR_SHORT, "%d%%", pstSmilRegion->width.value);
+                                       xmlSetProp(pstRegion, (const xmlChar *)"width", (const xmlChar *)szBuf);
+                                       D_MSG("__generate_add_region: pstSmilRegion->width = %d  ", pstSmilRegion->width.value);
+                               }
+                       } else {
+                               /* Note: nRootWidth should be in terms of value(pixel) not unitpercent(%)
+                                * Validation should be done before this. */
+                               if (pstSmilRegion->width.value >= 0 &&
+                                       pstSmilRegion->width.value <= nRootWidth) {
+                                       int iWidth = (pstSmilRegion->width.value * 100) / nRootWidth;
+
+                                       snprintf(szBuf, MSG_STDSTR_SHORT, "%d%%", iWidth);
+                                       xmlSetProp(pstRegion, (const xmlChar *)"width", (const xmlChar *)szBuf);
+                                       D_MSG("__generate_add_region: pstSmilRegion->width= %d  iWidth = %d", pstSmilRegion->width.value, iWidth);
+                               }
+                       }
+                       D_MSG(" [Set Attribute] : Height");
+                       if (true == pstSmilRegion->height.bUnitPercent) {
+                               if (pstSmilRegion->height.value > 0) {
+                                       snprintf(szBuf, MSG_STDSTR_SHORT, "%d%%", pstSmilRegion->height.value);
+                                       xmlSetProp(pstRegion, (const xmlChar *)"height", (const xmlChar *)szBuf);
+                                       D_MSG("__generate_add_region: pstSmilRegion->height = %d  ", pstSmilRegion->height.value);
+                               }
+                       } else {
+                               /* Note: nRootHeight should be in terms of value(pixel) not unitpercent(%)
+                                * Validation should be done before this. */
+                               if (pstSmilRegion->height.value >= 0 &&
+                                       pstSmilRegion->height.value <= nRootHeight) {
+                                       int iHeight = (pstSmilRegion->height.value * 100) / nRootHeight;
+
+                                       snprintf(szBuf, MSG_STDSTR_SHORT, "%d%%", iHeight);
+                                       xmlSetProp(pstRegion, (const xmlChar *)"height", (const xmlChar *)szBuf);
+                                       D_MSG("__generate_add_region: pstSmilRegion->height = %d  iHeight = %d", pstSmilRegion->height.value, iHeight);
+                               }
+                       }
+                       D_MSG(" [Set Attribute] : Left");
+                       if (true == pstSmilRegion->nLeft.bUnitPercent) {
+                               if (pstSmilRegion->nLeft.value > 0) {
+                                       snprintf(szBuf, MSG_STDSTR_SHORT, "%d%%", pstSmilRegion->nLeft.value);
+                                       xmlSetProp(pstRegion, (const xmlChar *)"left", (const xmlChar *)szBuf);
+                                       D_MSG("__generate_add_region: pstSmilRegion->left = %d  ", pstSmilRegion->nLeft.value);
+                               }
+                       } else {
+                               /* Note: nRootWidth should be in terms of value(pixel) not unitpercent(%)
+                                * Validation should be done before this. */
+                               if (pstSmilRegion->nLeft.value >= 0) {
+                                       int iLeft = (pstSmilRegion->nLeft.value * 100) / nRootWidth;
+
+                                       snprintf(szBuf, MSG_STDSTR_SHORT, "%d%%", iLeft);
+                                       xmlSetProp(pstRegion, (const xmlChar *)"left", (const xmlChar *)szBuf);
+                                       D_MSG("__generate_add_region: SmilRegion->iLeft = %d       iLeft = %d", pstSmilRegion->nLeft.value, iLeft);
+                               }
+                       }
+                       D_MSG(" [Set Attribute] : Top");
+                       if (true == pstSmilRegion->nTop.bUnitPercent) {
+                               if (pstSmilRegion->nTop.value > 0) {
+                                       snprintf(szBuf, MSG_STDSTR_SHORT, "%d%%", pstSmilRegion->nTop.value);
+                                       xmlSetProp(pstRegion, (const xmlChar *)"top", (const xmlChar *)szBuf);
+                                       D_MSG("__generate_add_region: pstSmilRegion->nTop= %d  ", pstSmilRegion->nTop.value);
+                               }
+                       } else {
+                               /* Note: nRootHeight should be in terms of value(pixel) not unitpercent(%)
+                                * Validation should be done before this. */
+                               if (pstSmilRegion->nTop.value >= 0) {
+                                       int iTop = (pstSmilRegion->nTop.value * 100) / nRootHeight;
+
+                                       snprintf(szBuf, MSG_STDSTR_SHORT, "%d%%", iTop);
+                                       xmlSetProp(pstRegion, (const xmlChar *)"top", (const xmlChar *)szBuf);
+                                       D_MSG("__generate_add_region: pstSmilRegion->nTop= %d  iTop = %d", pstSmilRegion->nTop.value, iTop);
+                               }
+                       }
+
+                       __generate_xml_insert_child(pstLayoutList, pstRootLayoutList, pstRegion);
+
+               } else
+                       D_MSG("There is no attribute in <region> node");
+
+               D_LEAVE;
+               return true;
+       } else {
+               D_MSG("Invalid SmilDoc(hSmilDoc:%d)", nSmilDocNo);
+               return false;
+       }
+}
+
+/**    @fn                     static bool __generate_add_media( HMmsSmil hSmilDoc, int nPageNo, mms_media_s *pstSmilMedia, char *pszContentID)
+ *     @brief          Add Media to Smil Doc.
+ *     @param[in]      hSmilDoc is smil doc number.
+ *     @param[in]      nPageNo specifies page number to which media belongs.
+ *     @param[in]      pstSmilMedia specifies Media information.
+ *     @param[in]      pszContentID specifies Content ID of media.
+ *     @retval         TRUE                            In case of Success.
+ *     @retval         FALSE                           In case of failure.
+ */
+bool __generate_add_media(HMmsSmil hSmilDoc, int nPageNo, int nMediaIdx, mms_media_s *pstSmilMedia, char *pszContentID)
+{
+       int nSmilDocNo = hSmilDoc;
+
+       D_ENTER;
+
+       if (NULL == pszContentID) {
+               D_MSG(" Content Id is NULL");
+               return false;
+       }
+       memset(pszContentID, 0, sizeof(pstSmilMedia->szContentID));
+       if (__generate_check_valid_smil_doc_no(nSmilDocNo)) {
+               int nIndex = 0;
+               xmlNode *pstMedia;
+               xmlNode *pstLastChild;
+               xmlNodePtr pstParList;
+               char *pszExt ;
+
+               pstParList = __generate_xml_string_get_node_list(__gpaMmsSmilDoc[nSmilDocNo]->pstRootNode, (char *)"par");
+               if (NULL == pstParList) {
+                       D_MSG("There is no <par> node. Can't create <media> node.");
+                       return false;
+               }
+               D_SEC_MSG("Par Element Name = %s ", (char *)pstParList->name);
+               for (nIndex = 0; (pstParList &&  nIndex < nPageNo); nIndex++) {
+                       pstParList = pstParList->next;
+               }
+               if (NULL == pstParList) {
+                       D_MSG("There is no such page node. Can't insert <media> node.");
+                       return false;
+               }
+               D_SEC_MSG("Par Element Name = %s ", (char *)pstParList->name);
+               /* Find insertion point and make a contentID */
+
+               pstLastChild = xmlGetLastChild(pstParList);
+
+               pszExt = strrchr(pstSmilMedia->szFileName, '.');
+               if (pszExt && !strrchr(pszExt, '/'))
+                       snprintf(pszContentID, MSG_MSG_ID_LEN+1, "%lu_%lu%s", (unsigned long)nPageNo, (unsigned long)nMediaIdx, pszExt);
+               else
+                       snprintf(pszContentID, MSG_MSG_ID_LEN+1, "%lu_%lu", (unsigned long)nPageNo, (unsigned long)nMediaIdx);
+
+               snprintf(pstSmilMedia->szContentLocation, sizeof(pstSmilMedia->szContentLocation), "%s", pstSmilMedia->szFileName);
+
+               /* Create <media> node and insert set attribute */
+               D_MSG(" Create Media Node");
+               switch (pstSmilMedia->mediatype) {
+               case MMS_SMIL_MEDIA_TEXT:
+                       pstMedia = __generate_xml_create_text_node(pstSmilMedia, pszContentID);
+                       break;
+               case MMS_SMIL_MEDIA_AUDIO:
+               case MMS_SMIL_MEDIA_VIDEO:
+               case MMS_SMIL_MEDIA_IMG:
+                       pstMedia = __generate_xml_create_mm_node(pstSmilMedia, pszContentID);
+                       break;
+               default:
+                       D_MSG("Invalid media type. Can't insert such-<media> node.");
+                       return false;
+               }
+
+               if (NULL == pstMedia) {
+                       D_MSG("Can't create <media> node. (from XmlParser) (media-type:%d)", pstSmilMedia->mediatype);
+                       return false;
+               }
+
+               /* Find the insertion point : the last child of <par> node */
+               if (pstLastChild)
+                       __generate_xml_insert_child(pstParList, pstLastChild, pstMedia);
+               else
+                       __generate_xml_insert_first_child(pstParList, pstMedia);
+
+               D_LEAVE;
+               return true;
+       } else {
+               D_MSG("__generate_add_media: Invalid SmilDoc(hSmilDoc:%d)", nSmilDocNo);
+               return false;
+       }
+}
+
+/**    @fn                     static xmlNode *__generate_xml_create_text_node(mms_media_s *pstSmilMedia, char *pszContentID)
+ *     @brief          Create Text Element.
+ *     @param[in]      pstSmilMedia specifies Media information.
+ *     @param[in]      pszContentID specifies Content ID of media.
+ *     @retval         Text Element node               In case of Success.
+ *     @retval         NULL                            In case of failure.
+ */
+xmlNode *__generate_xml_create_text_node(mms_media_s *pstSmilMedia, char *pszContentID)
+{
+       xmlNode *pstMedia = NULL;
+       xmlNode *pstParam = NULL;
+       char szBuf[MSG_STDSTR_SHORT] = {0, };
+       char szSizeBuf[MSG_STDSTR_SHORT] = {0, };
+
+       D_ENTER;
+
+       pstMedia = xmlNewNode(NULL, (xmlChar *)"text");
+       if (NULL == pstMedia) {
+               D_MSG("Can't create <Text> node.");
+               return NULL;
+       }
+       D_SEC_MSG("Text Element Name = %s ", (char *)pstMedia->name);
+
+       /* Add attributes */
+       if (pstSmilMedia) {
+               D_MSG("[Set Attribute] Region Id ");
+               if (strlen(pstSmilMedia->regionId) > 0) {
+                       xmlSetProp(pstMedia, (const xmlChar *)"region", (const xmlChar *)pstSmilMedia->regionId);
+               }
+
+               D_MSG("[Set Attribute] Alternate");
+               if (strlen(pstSmilMedia->szAlt) > 0) {
+                       snprintf(szBuf, sizeof(szBuf), "%s", pstSmilMedia->szAlt);
+                       xmlSetProp(pstMedia, (const xmlChar *)"alt", (const xmlChar *)szBuf);
+               }
+               D_MSG("[Set Attribute] Src");
+
+               char szFilePathWithCid[MSG_MSG_ID_LEN + 5];     /* for "cid:" */
+
+               snprintf(szFilePathWithCid, sizeof(szFilePathWithCid), "cid:%s", pszContentID);
+               __generate_xml_set_attribute(pstMedia, (char *)"src", szFilePathWithCid);
+
+               D_MSG("[Set Attribute] Size");
+
+               if (pstSmilMedia->sMedia.sText.nSize > 0) {
+                       pstParam = xmlNewNode(NULL, (xmlChar *)"param");
+                       if (NULL == pstParam) {
+                               D_MSG(" __generate_xml_create_text_node: cannot create <param> node");
+                               return false;
+                       }
+
+                       if (pstSmilMedia->sMedia.sText.nSize  <= MMS_SMIL_FONT_SIZE_SMALL)
+                               strcpy(szSizeBuf, "small");
+                       else if ((pstSmilMedia->sMedia.sText.nSize  > MMS_SMIL_FONT_SIZE_SMALL) && (pstSmilMedia->sMedia.sText.nSize  < MMS_SMIL_FONT_SIZE_LARGE))
+                               strcpy(szSizeBuf, "normal");
+                       else
+                               strcpy(szSizeBuf, "large");
+
+                       xmlSetProp(pstParam, (const xmlChar *)"name", (const xmlChar *)"textsize");
+                       xmlSetProp(pstParam, (const xmlChar *)"value", (const xmlChar *)szSizeBuf);
+                       __generate_xml_insert_first_child(pstMedia, pstParam);
+               }
+
+               if (pstSmilMedia->sMedia.sText.bBold == true) {
+                       pstParam = xmlNewNode(NULL, (xmlChar *)"param");
+                       if (NULL == pstParam) {
+                               D_MSG(" __generate_xml_create_text_node: cannot create <param> node");
+                               return false;
+                       }
+
+                       strcpy(szSizeBuf, "bold");
+
+                       xmlSetProp(pstParam, (const xmlChar *)"name", (const xmlChar *)"textattribute");
+                       xmlSetProp(pstParam, (const xmlChar *)"value", (const xmlChar *)szSizeBuf);
+                       __generate_xml_insert_first_child(pstMedia, pstParam);
+               }
+
+               if (pstSmilMedia->sMedia.sText.bItalic == true) {
+                       pstParam = xmlNewNode(NULL, (xmlChar *)"param");
+                       if (NULL == pstParam) {
+                               D_MSG(" __generate_xml_create_text_node: cannot create <param> node");
+                               return false;
+                       }
+
+                       strcpy(szSizeBuf, "italic");
+
+                       xmlSetProp(pstParam, (const xmlChar *)"name", (const xmlChar *)"textattribute");
+                       xmlSetProp(pstParam, (const xmlChar *)"value", (const xmlChar *)szSizeBuf);
+                       __generate_xml_insert_first_child(pstMedia, pstParam);
+               }
+
+               if (pstSmilMedia->sMedia.sText.bUnderLine == true) {
+                       pstParam = xmlNewNode(NULL, (xmlChar *)"param");
+                       if (NULL == pstParam) {
+                               D_MSG(" __generate_xml_create_text_node: cannot create <param> node");
+                               return false;
+                       }
+
+                       strcpy(szSizeBuf, "underline");
+
+                       xmlSetProp(pstParam, (const xmlChar *)"name", (const xmlChar *)"textattribute");
+                       xmlSetProp(pstParam, (const xmlChar *)"value", (const xmlChar *)szSizeBuf);
+                       __generate_xml_insert_first_child(pstMedia, pstParam);
+               }
+       }
+
+       D_LEAVE;
+       return pstMedia;
+}
+
+/**    @fn                     static xmlNode *__generate_xml_create_mm_node(mms_media_s *pstSmilMedia, char *pszContentID)
+ *     @brief          Create Image/Audio/Video Element.
+ *     @param[in]      pstSmilMedia specifies Media information.
+ *     @param[in]      pszContentID specifies Content ID of media.
+ *     @retval         Image/Audio/Video Element node  In case of Success.
+ *     @retval         NULL                                                    In case of failure.
+ */
+xmlNode *__generate_xml_create_mm_node(mms_media_s *pstSmilMedia, char *pszContentID)
+{
+       xmlNode *pstMedia = NULL;
+       char szBuf[MSG_STDSTR_SHORT] = {0, };
+
+       D_ENTER;
+
+       if (!pstSmilMedia)
+               return NULL;
+
+       switch (pstSmilMedia->mediatype) {
+       case MMS_SMIL_MEDIA_AUDIO:
+               pstMedia = xmlNewNode(NULL, (xmlChar *)"audio");
+               break;
+
+       case MMS_SMIL_MEDIA_VIDEO:
+               pstMedia = xmlNewNode(NULL, (xmlChar *)"video");
+               break;
+
+       case MMS_SMIL_MEDIA_IMG:
+               pstMedia = xmlNewNode(NULL, (xmlChar *)"img");
+               break;
+       default:
+               D_MSG("Invalid media type. Can't insert such-<media> node.");
+               return NULL;
+       }
+
+       if (pstMedia) {
+               char szFilePathWithCid[MSG_MSG_ID_LEN + 5];     /* for "cid:" */
+
+               D_MSG("[Set Attribute] Region Id ");
+               if (strlen(pstSmilMedia->regionId) > 0) {
+                       xmlSetProp(pstMedia, (const xmlChar *)"region", (const xmlChar *)pstSmilMedia->regionId);
+               }
+               D_MSG("[Set Attribute] Src ");
+               snprintf(szFilePathWithCid, sizeof(szFilePathWithCid), "cid:%s", pszContentID);
+               __generate_xml_set_attribute(pstMedia, (char *)"src", szFilePathWithCid);
+
+               D_MSG("[Set Attribute] Alt ");
+               if (strlen(pstSmilMedia->szAlt) > 0) {
+                       snprintf(szBuf, sizeof(szBuf), "%s", pstSmilMedia->szAlt);
+                       xmlSetProp(pstMedia, (const xmlChar *)"alt", (const xmlChar *)szBuf);
+               }
+       } else {
+               D_MSG("There is no attribute in such-<media> node");
+       }
+
+       D_LEAVE;
+       return pstMedia;
+}
+
+/**    @fn                     static bool __generate_xml_insert_first_child(xmlNode *pstParent, xmlNode *pstCurr)
+ *     @brief          Inserts first child to parent node.
+ *     @param[in]      pstParent specifies Parent node.
+ *     @param[in]      pstCurr specifies Child node.
+ *     @retval         TRUE                            In case of Success.
+ *     @retval         FALSE                           In case of failure.
+ */
+bool __generate_xml_insert_first_child(xmlNode *pstParent, xmlNode *pstCurr)
+{
+       bool bFlag = true;
+
+       D_ENTER;
+
+        if (NULL == xmlAddChild(pstParent, pstCurr)) {
+                D_SEC_MSG("%s Node not added", pstCurr->name);
+               bFlag = false;
+        }
+
+        D_LEAVE;
+        return bFlag;
+}
+
+
+/**    @fn                     static bool __generate_xml_insert_child(xmlNode *pstParent, xmlNode *pstLeftSibling, xmlNode *pstCurr)
+ *     @brief          Inserts node.
+ *     @param[in]      pstParent specifies Parent node.
+ *     @param[in]      pstLeftSibling specifies Left Sibling node.
+ *     @param[in]      pstCurr specifies Child node.
+ *     @retval         TRUE                            In case of Success.
+ *     @retval         FALSE                           In case of failure.
+ */
+bool __generate_xml_insert_child(xmlNode *pstParent, xmlNode *pstLeftSibling, xmlNode *pstCurr)
+{
+       D_ENTER;
+       bool bFlag = true;
+
+       if (pstLeftSibling) {
+               /* Parent Node is Unused */
+
+               while (pstLeftSibling->next != NULL)
+                       pstLeftSibling = pstLeftSibling->next;
+
+                if (NULL == xmlAddNextSibling(pstLeftSibling, pstCurr)) {
+                        D_SEC_MSG("%s Node not added", pstCurr->name);
+                       bFlag = false;
+                }
+       } else {
+                if (NULL == xmlAddChild(pstParent, pstCurr)) {
+                        D_SEC_MSG("%s Node not added", pstCurr->name);
+                       bFlag = false;
+                }
+       }
+       D_LEAVE;
+       return bFlag;
+}
+
+/**    @fn                     static void __generate_xml_set_attribute(xmlNode *pNode, char *szField, char *szValue)
+ *     @brief          Sets Attribute.
+ *     @param[in]      pNode specifies node.
+ *     @param[in]      szField specifies attribute field.
+ *     @param[in]      szValue specifies value of field
+ */
+void __generate_xml_set_attribute(xmlNode *pNode, char *szField, char *szValue)
+{
+       D_ENTER;
+
+       if (pNode && szField && strlen(szField)) {
+               if (szValue && strlen(szValue)) {
+                       xmlSetProp(pNode, (const xmlChar *)szField, (const xmlChar *)szValue);
+               } else {
+                       xmlSetProp(pNode, (const xmlChar *)szField, (const xmlChar *)"");
+               }
+       }
+
+       D_LEAVE;
+}
+
+/**    @fn                     static xmlNodePtr __generate_xml_string_get_node_list(xmlNodePtr pstNode, char *pszValue)
+ *     @brief          Get node based on pszValue.
+ *     @param[in]      pNode specifies node.
+ *     @param[in]      pszName specifies name field.
+ *     @retval         RGB value.
+ */
+xmlNodePtr __generate_xml_string_get_node_list(xmlNodePtr pstNode, char *pszName)
+{
+       D_ENTER;
+
+       if ((NULL != pstNode) && (NULL != pszName)) {
+               xmlNodePtr pstTempNode;
+               xmlNodePtr pstReturnNode;
+
+               pstTempNode = pstNode;
+
+               for ( ; pstTempNode; pstTempNode = pstTempNode->next) {
+                       D_SEC_MSG(" Node Name = %s[%p] children =%p", (char *)pstTempNode->name, pstTempNode, pstTempNode->children);
+                       D_SEC_MSG(" Compare Parent Node = %s[%p]", (char *)pstTempNode->name, pstTempNode);
+                       if (0 == strcasecmp((char *)pstTempNode->name, pszName)) {
+                               return pstTempNode;
+                       }
+
+                       if (pstTempNode->children) {
+                               D_MSG(" Enter Inside");
+                               pstReturnNode = __generate_xml_string_get_node_list(pstTempNode->children, pszName);
+                               if (NULL != pstReturnNode) {
+                                       return pstReturnNode;
+                               }
+                       }
+
+               }
+       }
+       return NULL;
+}
+
+int _msg_ui_generate_get_smil_page_count(smil_parsed_data_s *pSmilData)
+{
+       if (pSmilData == NULL) {
+               D_MSG("pSmilData is NULL");
+               return 0;
+       }
+
+       int count = 0;
+
+       if (pSmilData->pagelist)
+               count = eina_list_count(pSmilData->pagelist);
+
+       D_MSG("Page Count: %d", count);
+       return count;
+}
+
+mms_page_s *_msg_ui_generate_get_smil_page(smil_parsed_data_s *pSmilData, int pageIdx)
+{
+       if (pSmilData == NULL) {
+               D_MSG("pSmilData is NULL");
+               return NULL;
+       }
+
+       mms_page_s *page = NULL;
+
+       if (pSmilData->pagelist)
+               page = (mms_page_s *)eina_list_nth(pSmilData->pagelist, pageIdx);
+
+       return page;
+}
+
+mms_smil_region *_msg_ui_generate_get_smil_region(smil_parsed_data_s *pSmilData, int regionIdx)
+{
+       if (pSmilData == NULL) {
+               D_MSG("pSmilData is NULL");
+               return NULL;
+       }
+
+       mms_smil_region *region = NULL;
+
+       if (pSmilData->regionlist)
+               region = (mms_smil_region *)eina_list_nth(pSmilData->regionlist, regionIdx);
+
+       return region;
+}
+
+mms_media_s *_msg_ui_generate_get_smil_media(mms_page_s *pPage, int mediaIdx)
+{
+       if (!pPage) {
+               D_EMSG("pPage is NULL");
+               return NULL;
+       }
+
+       if (mediaIdx > pPage->mediaCnt || mediaIdx < 0) {
+               D_EMSG("Invalid media index = %d", mediaIdx);
+               return NULL;
+       }
+
+       mms_media_s *media = NULL;
+       if (pPage->medialist)
+               media = (mms_media_s *)eina_list_nth(pPage->medialist, mediaIdx);
+
+       return media;
+
+}
+
+bool msg_ui_generate_smil_doc(smil_parsed_data_s *pstMsgMmsBody, char **ppSmilDoc)
+{
+       D_ENTER;
+
+       HMmsSmil hSmilDoc = INVALID_HOBJ;
+       int nIndex;
+       int nMediaIndex;
+       int nTotalPageNum;
+       int nTotalMediaNum;
+       int nRegionCount;
+       mms_page_s *pstPage;
+       mms_media_s *pstMedia;
+       mms_smil_region *pstRegion;
+       char *pszRawData;
+
+       hSmilDoc = __generate_create_empty_smil_doc();
+       D_MSG("Smil Doc =%d", hSmilDoc);
+       if (INVALID_HOBJ == hSmilDoc) {
+               D_MSG("Invalid SmilDoc[%d]", hSmilDoc);
+               return false;
+       }
+       /* Add Root Layout to Smil Document */
+       if (false == __generate_add_root_layout(hSmilDoc, &(pstMsgMmsBody->rootlayout))) {
+               D_MSG("__generate_add_root_layout Failed");
+               __generate_destroy_smil_doc(hSmilDoc);
+       }
+       /* Add Region list to Smil Document */
+       nRegionCount = pstMsgMmsBody->regionCnt;
+       D_MSG(" Region Count =%d", nRegionCount);
+       for (nIndex = 0; nIndex < nRegionCount; nIndex++) {
+               D_MSG("Calling _msg_ui_generate_get_smil_region");
+               pstRegion = _msg_ui_generate_get_smil_region(pstMsgMmsBody, nIndex);
+               if (NULL == pstRegion) {
+                       D_MSG("pstRegion is NULL");
+                       __generate_destroy_smil_doc(hSmilDoc);
+                       return false;
+               }
+               D_MSG("Calling __generate_add_region");
+               if (false == __generate_add_region(hSmilDoc, pstRegion)) {
+                       D_MSG("Adding Region to smil doc failed");
+                       __generate_destroy_smil_doc(hSmilDoc);
+                       return false;
+               }
+       }
+       /* Add page list to Smil Document */
+       nTotalPageNum = pstMsgMmsBody->pageCnt;
+       D_MSG(" Page Count =%d", nTotalPageNum);
+       for (nIndex = 0; nIndex < nTotalPageNum; nIndex++) {
+               D_MSG("Calling _msg_ui_generate_get_smil_page");
+               pstPage = _msg_ui_generate_get_smil_page(pstMsgMmsBody, nIndex);
+               if (NULL == pstPage) {
+                       D_MSG("pstPage is NULL");
+                       __generate_destroy_smil_doc(hSmilDoc);
+                       return false;
+               }
+               /* Add page to smil doc */
+               D_MSG("Calling __generate_add_page");
+               if (false == __generate_add_page(hSmilDoc, pstPage)) {
+                       D_MSG("Adding page to smil doc failed");
+                       __generate_destroy_smil_doc(hSmilDoc);
+                       return false;
+               }
+               nTotalMediaNum = pstPage->mediaCnt;
+               D_MSG(" Media Count =%d", nTotalMediaNum);
+               for (nMediaIndex = 0; nMediaIndex < nTotalMediaNum; nMediaIndex++) {
+                       D_MSG("Calling _msg_ui_generate_get_smil_media");
+                       pstMedia = _msg_ui_generate_get_smil_media(pstPage, nMediaIndex);
+                       if (NULL == pstMedia) {
+                               D_MSG("pMedia is NULL");
+                               __generate_destroy_smil_doc(hSmilDoc);
+                               return false;
+                       }
+                       D_MSG("Calling __generate_add_media");
+                       if (false == __generate_add_media(hSmilDoc, nIndex, nMediaIndex, pstMedia, pstMedia->szContentID)) {
+                               D_MSG("__generate_add_media failed");
+                               __generate_destroy_smil_doc(hSmilDoc);
+                               return false;
+                       }
+               }
+       }
+       D_MSG("Start update template");
+       pszRawData = __generate_get_smil_rawdata(hSmilDoc);
+       if (NULL == pszRawData) {
+               D_MSG("__generate_get_smil_rawdata failed");
+               __generate_destroy_smil_doc(hSmilDoc);
+               return false;
+       }
+
+       *ppSmilDoc = pszRawData;
+
+       D_MSG("complete update template");
+       /* xmlFree((xmlChar*)pszRawData); */
+       __generate_destroy_smil_doc(hSmilDoc);
+       D_LEAVE;
+       return true;
+}
+
+void msg_ui_print_parsed_smil_media(mms_media_s *media)
+{
+       if (media == NULL) {
+               D_MSG("Invalid Parameter");
+               return;
+       }
+
+       if (media->mediatype == MMS_SMIL_MEDIA_INVALID) {
+               D_MSG("%-25s : %s", "Media type", "MMS_SMIL_MEDIA_INVALID");
+       } else if (media->mediatype == MMS_SMIL_MEDIA_IMG) {
+               D_MSG("%-25s : %s", "Media type", "MMS_SMIL_MEDIA_IMG");
+       } else if (media->mediatype == MMS_SMIL_MEDIA_AUDIO) {
+               D_MSG("%-25s : %s", "Media type", "MMS_SMIL_MEDIA_AUDIO");
+       } else if (media->mediatype == MMS_SMIL_MEDIA_VIDEO) {
+               D_MSG("%-25s : %s", "Media type", "MMS_SMIL_MEDIA_VIDEO");
+       } else if (media->mediatype == MMS_SMIL_MEDIA_TEXT) {
+               D_MSG("%-25s : %s", "Media type", "MMS_SMIL_MEDIA_TEXT");
+       } else if (media->mediatype == MMS_SMIL_MEDIA_ANIMATE) {
+               D_MSG("%-25s : %s", "Media type", "MMS_SMIL_MEDIA_ANIMATE");
+       } else if (media->mediatype == MMS_SMIL_MEDIA_IMG_OR_VIDEO) {
+               D_MSG("%-25s : %s", "Media type", "MMS_SMIL_MEDIA_REF");
+       } else {
+               D_MSG("%-25s : Unknown [%d]", "Media type", media->mediatype);
+       }
+
+       D_MSG("%-25s : %s", "Media src", media->szSrc);
+       D_SEC_MSG("%-25s : %s", "Media filename", media->szFileName);
+       D_SEC_MSG("%-25s : %s", "Media filepath", media->szFilePath);
+       D_SEC_MSG("%-25s : %s", "Media content type", media->szContentType);
+       D_SEC_MSG("%-25s : %s", "Media content id", media->szContentID);
+       D_SEC_MSG("%-25s : %s", "Media content location", media->szContentLocation);
+       D_SEC_MSG("%-25s : %s", "Media region id", media->regionId);
+       D_MSG("%-25s : %s", "Media alt", media->szAlt);
+       D_MSG("%-25s : %d", "Media drm type", media->drmType);
+       D_SEC_MSG("%-25s : %s", "Media drm filepath", media->szDrm2FullPath);
+}
+
+void msg_ui_print_parsed_smil_page(mms_page_s *page)
+{
+       if (page == NULL) {
+               D_MSG("Invalid Parameter");
+               return;
+       }
+
+       if (page->medialist) {
+               int list_count = eina_list_count(page->medialist);
+               D_MSG("Media Count is [%d]", list_count);
+               int i = 0;
+               for (i = 0; i < list_count; i++) {
+                       mms_media_s *media = (mms_media_s *)eina_list_nth(page->medialist, i);
+                       if (media) {
+                               D_MSG("[%d]th Media", i);
+                               msg_ui_print_parsed_smil_media(media);
+                       } else {
+                               D_MSG("Not Exist Media Data in [%d]th", i);
+                       }
+
+               }
+       }
+}
+
+void msg_ui_print_parsed_smil(smil_parsed_data_s *pSmilData)
+{
+       if (pSmilData == NULL) {
+               D_MSG("Invalid Parameter");
+               return;
+       }
+
+       if (pSmilData->pagelist) {
+               int list_count = eina_list_count(pSmilData->pagelist);
+               D_MSG("Page Count is [%d]", list_count);
+               int i = 0;
+               for (i = 0; i < list_count; i++) {
+                       mms_page_s *page = (mms_page_s *)eina_list_nth(pSmilData->pagelist, i);
+                       if (page) {
+                               D_MSG("[%d]th Page", i);
+                               msg_ui_print_parsed_smil_page(page);
+                       } else {
+                               D_MSG("Not Exist Page Data in [%d]th", i);
+                       }
+
+               }
+       }
+}
+
+void msg_ui_release_smil_data(smil_parsed_data_s *pSmilData)
+{
+       __release_page_list(pSmilData);
+       __release_region_list(pSmilData);
+}
+
diff --git a/common/msg-ui-smil-parser.h b/common/msg-ui-smil-parser.h
new file mode 100644 (file)
index 0000000..b7cb165
--- /dev/null
@@ -0,0 +1,198 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef _MSG_UI_SMIL_PARSER_H_
+#define _MSG_UI_SMIL_PARSER_H_
+
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <Elementary.h>
+
+#include <msg.h>
+#include <msg-ui-util.h>
+
+#define MSG_STDSTR_SHORT                       0x7F
+#define MMS_SMIL_MAX_DOC       1
+#define INVALID_HOBJ   -1
+
+typedef enum _SMIL_ELEMENT_T {
+       ELEMENT_SMIL,
+       ELEMENT_HEAD,
+       ELEMENT_LAYOUT,
+       ELEMENT_ROOTLAYOUT,
+       ELEMENT_REGION,
+       ELEMENT_BODY,
+       ELEMENT_PAR,
+       ELEMENT_PARAM,
+       ELEMENT_TEXT,
+       ELEMENT_IMG,
+       ELEMENT_AUDIO,
+       ELEMENT_VIDEO,
+       ELEMENT_REF,
+       ELEMENT_ANIMATE,
+       ELEMENT_MAX,
+} SMIL_ELEMENT_T;
+
+typedef        int     HMmsSmil;                       // SmilDoc Handle
+
+/* Structures */
+/**
+ *     @brief  Represents Smil Doc Information. \n
+ */
+typedef struct _MmsSmilDoc {
+       xmlDocPtr pSmilDoc;
+       xmlNodePtr pstRootNode;
+} MmsSmilDoc;
+
+typedef enum _SMIL_ATTRIBUTE_T {
+       ATTRIBUTE_UNKNOWN = -1,
+       ATTRIBUTE_ID,
+       ATTRIBUTE_TOP,
+       ATTRIBUTE_LEFT,
+       ATTRIBUTE_WIDTH,
+       ATTRIBUTE_HEIGHT,
+       ATTRIBUTE_SRC,
+       ATTRIBUTE_BOLD,
+       ATTRIBUTE_UNDERLINE,
+       ATTRIBUTE_ITALIC,
+       ATTRIBUTE_REVERSE,
+       ATTRIBUTE_SIZE,
+       ATTRIBUTE_FONT,
+       ATTRIBUTE_REGION,
+       ATTRIBUTE_NAME,
+       ATTRIBUTE_VALUE,
+       ATTRIBUTE_ALT,
+       ATTRIBUTE_TEXTFORMAT,
+} SMIL_ATTRIBUTE_T;
+
+typedef struct  {
+       bool                    bBold;  /**< Indicates whether the text is bold */
+       bool                    bUnderLine; /**< Indicates whether the text is underlined */
+       bool                    bItalic;                /**< Indicates whether the text is Italic */
+       bool                    bReverse;       /**< Indicates whether the text is reversed */
+       int                             nSize;  /**< Indicates the font size */
+} mms_smil_text;
+
+/**
+ *     @brief  Represents media information.
+ */
+typedef struct
+{
+       MmsSmilMediaType        mediatype; /**< Indicates the SMIL media type. see enum MmsSmilMediaType */
+
+       char                    szSrc[MSG_FILEPATH_LEN_MAX + 1];/**< Indicates the media source name */
+       char                    szFileName[MSG_FILENAME_LEN_MAX + 1]; /**< Indicates the file name */
+       char                    szFilePath[MSG_FILEPATH_LEN_MAX + 1]; /**< Indicates the file path */
+       char                    szContentID[MSG_MSG_ID_LEN + 1]; /**< Indicates the content id */
+       char                    regionId[MAX_SMIL_REGION_ID + 1]; /**< Indicates the region id */
+       char                    szAlt[MAX_SMIL_ALT_LEN + 1]; /**< Indicates the alternative text to be displayed in failure case */
+       MsgDrmType              drmType; /**< Indicates the drm type. see enum MsgDrmType */
+       char                    szDrm2FullPath[MSG_FILEPATH_LEN_MAX + 1];  /**< Indicates the fullpath of the DRM */
+       union{
+               mms_smil_text   sText;  /**< Indicates the text attributes */
+       } sMedia;
+
+       char szContentType[MSG_MSG_ID_LEN + 1];
+       char szContentLocation[MSG_MSG_ID_LEN + 1];
+} mms_media_s;
+
+/**
+ *     @brief  Represents SMIL page information.
+ */
+typedef struct
+{
+       int             mediaCnt;       /**< The count of the media */
+       Eina_List *medialist;   /**< The pointer to media list */
+} mms_page_s;
+
+/**
+ *     @brief  Represents length information.
+ */
+typedef struct
+{
+       bool    bUnitPercent; /**< Indicates the length is in percentage(%) or not */
+       int value;      /**< Indicates the value for length */
+} mms_length;
+
+/**
+ *     @brief  Represents SMIL region information.
+ */
+typedef struct
+{
+       char                    szID[MAX_SMIL_REGION_ID + 1]; /**< Indicates the ID of region information */
+       mms_length              nLeft; /**< Indicates the left co-ordinate of the region */
+       mms_length              nTop; /**< Indicates the top co-ordinate of the region */
+       mms_length              width; /**< Indicates the width of the region */
+       mms_length              height; /**< Indicates the width of the region */ // '%' rate should be supported
+} mms_smil_region;
+
+/**
+ *     @brief  Represents SMIL root layout information.
+ */
+typedef struct
+{
+       mms_length      width;          /**< Indicates the width of the root layout */
+       mms_length      height;         /**< Indicates the height of the root layout */ // '%' rate should be supported
+} smil_rootlayout;
+
+typedef struct
+{
+       MimeType        type;   /**< Indicates the multipart mime type. see enum MimeType */
+       char            szContentType[MSG_MSG_ID_LEN + 1];              /**< Indicates the content type */
+       char            szFileName[MSG_FILENAME_LEN_MAX + 1];           /**< Indicates the file name */
+       char            szFilePath[MSG_FILEPATH_LEN_MAX + 1];           /**< Indicates the file path */
+       char            szContentID[MSG_MSG_ID_LEN + 1];                /**< Indicates the content id */
+       char            szContentLocation[MSG_MSG_ID_LEN + 1];  /**< Indicates the content Location */
+       MsgDrmType              drmType; /**< Indicates the drm type. see enum MsgDrmType */
+} mms_multipart_data_s;
+
+/**
+ *     @brief  Represents MMS message data. for only parsed data
+ */
+typedef struct _smil_parsed_data_s
+{
+       int                                     pageCnt;        /**< The count of the SMIL pages */
+       Eina_List                       *pagelist;      /**< The pointer to SMIL pages list */
+       int                                     regionCnt;      /**< The count of the SMIL regions */
+       Eina_List                       *regionlist;    /**< The pointer to SMIL regions list */
+       smil_rootlayout         rootlayout;     /**< Indicates the root layout information */
+} smil_parsed_data_s;
+
+
+/* Parse SmilDoc to smil_parsed_data_s */
+bool msg_ui_parse_smil_doc(smil_parsed_data_s *pstMsgMmsBody, const char *pSmilDoc);
+bool _msg_ui_parse_add_smil_root_layout(smil_parsed_data_s *pSmilData, smil_rootlayout *pRootlayout);
+msg_error_t _msg_ui_parse_add_smil_region(smil_parsed_data_s *pSmilData, mms_smil_region * pRegion);
+msg_error_t _msg_ui_parse_add_smil_page(smil_parsed_data_s *pSmilData, mms_page_s *pPage);
+msg_error_t _msg_ui_parse_add_smil_media(mms_page_s *pPage, mms_media_s *pMedia);
+
+/* Generate SmilDoc from smil_parsed_data_s */
+bool msg_ui_generate_smil_doc(smil_parsed_data_s *pstMsgMmsBody, char **ppSmilDoc);
+mms_smil_region *_msg_ui_generate_get_smil_region(smil_parsed_data_s *pSmilData, int regionIdx);
+mms_page_s *_msg_ui_generate_get_smil_page(smil_parsed_data_s *pSmilData, int pageIdx);
+int    _msg_ui_generate_get_smil_page_count(smil_parsed_data_s *pSmilData);
+mms_media_s *_msg_ui_generate_get_smil_media(mms_page_s *pPage, int mediaIdx);
+
+/* freeing mms-data */
+void msg_ui_release_smil_data(smil_parsed_data_s *pSmilData);
+
+/* for debugging mms-data info */
+void msg_ui_print_parsed_smil(smil_parsed_data_s *pSmilData);
+void msg_ui_print_parsed_smil_media(mms_media_s *media);
+void msg_ui_print_parsed_smil_page(mms_page_s *page);
+
+#endif
diff --git a/common/msg-ui-util.h b/common/msg-ui-util.h
new file mode 100755 (executable)
index 0000000..9ca7578
--- /dev/null
@@ -0,0 +1,274 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UTIL_H__
+#define __MSG_UTIL_H__
+
+#include <stdio.h>
+#include <string.h>
+#include "dlog.h"
+#include "msg-ui-bundle.h"
+
+#include <utils_i18n_udate.h>
+#include <utils_i18n_ustring.h>
+#include <utils_i18n_ucalendar.h>
+
+#ifndef MSG_BOOL
+#define MSG_BOOL char
+#endif
+#ifndef TRUE
+#define TRUE   1
+#endif
+#ifndef FALSE
+#define FALSE  0
+#endif
+
+
+#ifndef __EXPORT_API__
+#define __EXPORT_API__ __attribute__((visibility("default")))
+#endif
+
+
+#define MESSAGE_PKGNAME                        "message"
+#define SYSTEM_STRING_PKGNAME          "sys_string"
+
+#define _EDJ(o)                elm_layout_edje_get(o)
+
+#define TAG_MSG_UI                     "MESSAGE_APP"
+
+#define MSG_UI_LEVEL_DEBUG             LOG_DEBUG
+#define MSG_UI_LEVEL_INFO              LOG_INFO
+#define MSG_UI_LEVEL_WARN              LOG_WARN
+#define MSG_UI_LEVEL_ERR               LOG_ERROR
+#define MSG_UI_LEVEL_ASSERT            LOG_ERROR
+
+#define DEF_BUF_LEN_D  (10)
+#define DEF_BUF_LEN_S  (128)
+#define DEF_BUF_LEN_256        (256)
+#define DEF_BUF_LEN    (512)
+#define DEF_BUF_LEN_1024       (1024)
+#define DEF_BUF_LEN_L  (4096)
+#define DEF_BUF_LEN_32         (32)
+
+#define DEF_PATH_MAX   (4096)
+#define DEF_IMG_PATH_LEN       (1024)
+#define DEF_MAX_MSG_TEXT_LEN   (153*15)
+#define DEF_SEARCH_MAX_LEN     (64)
+#define DEF_MAX_EMAIL_LEN      (255)
+#define DEF_MAX_FILTER_LEN     (40)
+#define MSG_UI_URL_MAX_LEN      (1024)
+
+#define DEF_THREAD_ADDR_LEN    (200)
+#define DEF_THREAD_NAME_LEN    (200)
+
+#define DEF_VALID_ADDRESS_LEN  (9)
+#define MAX_TEXT_TEMPLATE_LEN  (200)
+
+#define MSG_UI_TIME_PATTERN_12H                "hma"
+#define MSG_UI_TIME_PATTERN_24H                "Hm"
+#define MSG_UI_DATE_PATTERN_DEFAULT    "EEEMMMdd"
+#define MSG_UI_DATE_PATTERN_YEAR               "EEEMMMddyyyy"
+#define MSG_UI_DATE_PATTERN_LIST_DEFAULT       "MMdd"
+#define MSG_UI_DATE_PATTERN_LIST_YEAR          "MMddyyyy"
+
+enum {
+       MSG_UI_RET_ERR = -1,
+       MSG_UI_RET_SUCCESS = 0,
+};
+
+#define MSG_EVAS_OBJECT_DEL(obj) {\
+       if (obj) {\
+               evas_object_del(obj);\
+               obj = NULL;\
+       }\
+}
+
+#define MSG_TIMER_OBJECT_DEL(obj) {\
+       if (obj) {\
+               ecore_timer_del(obj);\
+               obj = NULL;\
+       }\
+}
+
+#define MSG_ECORE_IDLER_DEL(obj) {\
+       if (obj) {\
+               ecore_idler_del(obj);\
+               obj = NULL;\
+       }\
+}
+
+#define MSG_ECORE_JOB_DEL(obj) {\
+       if (obj) {\
+               ecore_job_del(obj);\
+               obj = NULL;\
+       }\
+}
+
+#define MSG_SQLITE3_FREE(obj) {\
+       if (obj) {\
+               sqlite3_free(obj);\
+               obj = NULL;\
+       }\
+}
+
+#ifndef MSG_FREE
+#define MSG_FREE(ptr) {\
+       if (ptr) {\
+               free(ptr);\
+               ptr = NULL;\
+       }\
+}
+#endif
+
+#define D_PRINT(fmt, args...) \
+       LOG(LOG_DEBUG, TAG_MSG_UI, fmt, ##args);
+
+#define D_MSG(fmt, args...) \
+       LOG(LOG_DEBUG, TAG_MSG_UI, fmt "\n", ##args);
+
+#define D_IMSG(fmt, args...) \
+       LOG(LOG_INFO, TAG_MSG_UI, fmt "\n", ##args);
+
+#define D_WMSG(fmt, args...) \
+       LOG(LOG_WARN, TAG_MSG_UI, fmt "\n", ##args);
+
+#define D_EMSG(fmt, args...)       \
+       LOG(LOG_ERROR, TAG_MSG_UI, "[ERROR]" fmt "\n", ##args);
+
+#define D_SEC_MSG(fmt, args...) \
+       SECURE_LOG(LOG_DEBUG, TAG_MSG_UI, fmt "\n", ##args);
+
+#define D_SEC_IMSG(fmt, args...) \
+       SECURE_LOG(LOG_INFO, TAG_MSG_UI, fmt "\n", ##args);
+
+#define D_SEC_EMSG(fmt, args...) \
+       SECURE_LOG(LOG_ERROR, TAG_MSG_UI, "[ERROR]" fmt "\n", ##args);
+
+#define D_ENTER \
+       LOG(LOG_DEBUG, TAG_MSG_UI, "[ENTER]\n");
+
+#define D_LEAVE \
+       LOG(LOG_DEBUG, TAG_MSG_UI, "[LEAVE]\n");
+
+#define D_MSG_RETM_IF(expr, fmt, args...) do { \
+               if (expr) { \
+                       LOG(LOG_ERROR, TAG_MSG_UI, "[ERROR][(%s)] Return message : " fmt "\n", #expr, ##args); \
+                       return; \
+               } \
+       } while (0)
+
+#define D_MSG_RETVM_IF(expr, val, fmt, args...) do { \
+                       if (expr) { \
+                               LOG(LOG_ERROR, TAG_MSG_UI, "[ERROR][(%s)] Return value : %d, message : " fmt "\n", #expr, val, ##args); \
+                               return (val); \
+                       } \
+               } while (0)
+
+#define MSG_UI_DEBUG(level, fmt, args...) \
+       LOG(level, TAG_MSG_UI, fmt "\n", ##args);
+
+#define MSG_UI_ENTER(level)    \
+       LOG(LOG_DEBUG, TAG_MSG_UI, "[ENTER]\n");
+
+#define MSG_UI_LEAVE(level)    \
+       LOG(LOG_DEBUG, TAG_MSG_UI, "[LEAVE]\n");
+
+#define MSG_UI_RET_IF(level, expr) do { \
+               if (expr) { \
+                       LOG(LOG_ERROR, TAG_MSG_UI, "[ERROR][(%s)] Return\n", #expr); \
+                       return; \
+               } \
+       } while (0)
+#define MSG_UI_RETV_IF(level, expr, val) do { \
+               if (expr) { \
+                       LOG(LOG_ERROR, TAG_MSG_UI, "[ERROR][(%s)] Return value : %d\n", #expr, val); \
+                       return (val); \
+               } \
+       } while (0)
+#define MSG_UI_RETM_IF(level, expr, fmt, args...) do { \
+               if (expr) { \
+                       LOG(LOG_ERROR, TAG_MSG_UI, "[ERROR][(%s)] Return message : " fmt "\n", #expr, ##args); \
+                       return; \
+               } \
+       } while (0)
+#define MSG_UI_RETVM_IF(level, expr, val, fmt, args...) do { \
+               if (expr) { \
+                       LOG(LOG_ERROR, TAG_MSG_UI, "[ERROR][(%s)] Return value : %d, message : " fmt "\n", #expr, val, ##args); \
+                       return (val); \
+               } \
+       } while (0)
+
+
+#define MSG_THREAD_UG_NAME             "msg-thread-efl"
+#define MSG_COMPOSER_UG_NAME           "msg-composer-efl"
+#define MSG_SETTING_UG_NAME            "msg-setting-efl"
+#define MSG_BUBBLE_UG_NAME             "msg-conversation-efl"
+#define MSG_VIEWER_UG_NAME             "msg-viewer-efl"
+
+#define PRIVACY_SETTING_UG_NAME                "setting-passwd-efl"
+#define EMAIL_COMPOSER_UG_NAME         "email-composer-efl"
+#define CALL_SETTING_UG_NAME           "setting-call-efl"
+#define MY_FILE_UG_NAME                                "myfile-efl-lite"
+#define RINGTONE_UG                            "setting-ringtone-efl"
+
+/* Other application's pkg name */
+#define VIDEO_CALL_PKG_NAME            "org.tizen.vtmain"
+#define VOICE_CALL_PKG_NAME            "org.tizen.call"
+#define VIDEO_PLAYER_PKG_NAME          "org.tizen.video-player"
+
+/* UG NAME */
+#define UG_NAME_MYFILE                 "myfile-efl-lite"
+#define UG_NAME_MEMO                   "memo-efl"
+#define UG_NAME_CALENDAR               "calendar-efl"
+#define UG_NAME_CONTACT_PHONEUI                "contacts-tabui-efl"
+#define UG_NAME_RECENT_PHONEUI         "phonelog-efl"
+#define UG_NAME_CONTACTS_DETAILS       "contacts-details-efl"
+#define UG_NAME_CONTACTS_LIST  "contacts-list-efl"
+#define UG_NAME_MSG_VIEWER             "msg-viewer-efl"
+#define UG_NAME_VIDEO_PLAYER   "video-player-view-efl"
+#define UG_NAME_SETTING                "setting-network-efl"
+
+
+/* NOTIFY MESSAGE */
+#define MSG_UI_NOTI_UNDER_CONTRUCT     "Under construction"
+#define MSG_UI_NOTI_BLOCKED            "Blocked"
+#define MSG_UI_NOTI_ALREADY_BLOCKED    "Already blocked for this address"
+
+typedef enum {
+       MSG_TIME_FORMAT_12H = 0,
+       MSG_TIME_FORMAT_24H,
+       MSG_TIME_FORMAT_UNKNOWN
+
+} msg_time_format;
+
+enum {
+       CONTROLBAR_ITEM_1 = 0,
+       CONTROLBAR_ITEM_2,
+       CONTROLBAR_ITEM_3,
+       CONTROLBAR_ITEM_4,
+       CONTROLBAR_ITEM_MAX
+};
+
+enum {
+       MSG_UI_STATE_NONE = 0,
+       MSG_UI_STATE_RUNNING,
+       MSG_UI_STATE_PAUSE,
+       MSG_UI_STATE_DESTROY,
+       MSG_UI_STATE_MAX,
+};
+
+#endif /* __MSG_UTIL_H__ */
diff --git a/common/msg-vcard-utils.c b/common/msg-vcard-utils.c
new file mode 100755 (executable)
index 0000000..752a5a8
--- /dev/null
@@ -0,0 +1,242 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-vcard-utils.h"
+#include "msg-ui-util.h"
+#include "msg-file-util.h"
+
+#include <app.h>
+#include <contacts.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <dirent.h>
+#include <string.h>
+#include <ctype.h>
+
+#define FILE_ACCESS_MODE 0644
+#define STR_VALID(str) ((str) && *(str))
+
+static char *_make_vcard_file_path(const char *working_dir, const char *display_name)
+{
+       char file_path[PATH_MAX] = { 0 };
+       int id = 0;
+
+       if (!working_dir) {
+               return NULL;
+       }
+
+       if (!display_name) {
+               display_name = "Unknown";
+       }
+
+       do {
+               snprintf(file_path, sizeof(file_path), "%s%s-%u.vcf", working_dir, display_name, id);
+               ++id;
+       } while (msg_file_exists(file_path));
+
+       D_MSG("file_path = %s", file_path);
+
+       return strdup(file_path);
+}
+
+static bool _write_vcard_to_file(int fd, contacts_record_h record, bool my_profile)
+{
+       char *vcard_buff = NULL;
+       bool ok = false;
+
+       do {
+               int size_left = 0;
+
+               if (my_profile) {
+                       contacts_vcard_make_from_my_profile(record, &vcard_buff);
+               } else {
+                       contacts_vcard_make_from_person(record, &vcard_buff);
+               }
+
+               if (!vcard_buff) {
+                       D_WMSG("vcard_buff is NULL");
+                       break;
+               }
+
+               size_left = strlen(vcard_buff);
+               while (size_left) {
+                       int written = write(fd, vcard_buff, size_left);
+                       if (written == -1) {
+                               D_WMSG("write() failed: %s", strerror(errno));
+                               break;
+                       }
+                       size_left -= written;
+               }
+
+               ok = (size_left == 0);
+       } while (false);
+
+       free(vcard_buff);
+
+       return ok;
+}
+
+static bool _write_vcard_to_file_from_id(int fd, int person_id)
+{
+       contacts_record_h record = NULL;
+       bool ok = false;
+
+       do {
+               int ret = contacts_db_get_record(_contacts_person._uri, person_id, &record);
+               if (ret != CONTACTS_ERROR_NONE) {
+                       D_WMSG("contacts_db_get_record() failed: %d", ret);
+                       record = NULL;
+                       break;
+               }
+
+               if (!_write_vcard_to_file(fd, record, false)) {
+                       D_WMSG("_write_vcard_to_file() failed");
+                       break;
+               }
+
+               ok = true;
+       } while (false);
+
+       if (record) {
+               contacts_record_destroy(record, true);
+       }
+
+       return ok;
+}
+
+__EXPORT_API__ char *msg_vcard_create_from_id(int id, bool my_profile, const char *working_dir)
+{
+       D_ENTER;
+
+       D_MSG("id = %i my_profile = %d", id, my_profile);
+
+       contacts_record_h record = NULL;
+       char *vcard_path = NULL;
+       int fd = -1;
+       bool ok = false;
+
+       do {
+               char *display_name = NULL;
+
+               int ret = contacts_db_get_record((my_profile ?
+                               _contacts_my_profile._uri :
+                               _contacts_person._uri), id, &record);
+               if (ret != CONTACTS_ERROR_NONE) {
+                       D_WMSG("contacts_db_get_record() failed: %d", ret);
+                       record = NULL;
+                       break;
+               }
+
+               if (my_profile) {
+                       contacts_record_get_str_p(record, _contacts_my_profile.display_name, &display_name);
+               } else {
+                       contacts_record_get_str_p(record, _contacts_person.display_name, &display_name);
+               }
+
+               vcard_path = _make_vcard_file_path(working_dir, "Contact");
+               if (!vcard_path) {
+                       D_WMSG("_make_vcard_file_path() failed");
+                       break;
+               }
+
+               fd = open(vcard_path, O_WRONLY | O_CREAT | O_TRUNC, FILE_ACCESS_MODE);
+               if (fd == -1) {
+                       D_WMSG("open(%s) Failed(%s)", vcard_path, strerror(errno));
+                       break;
+               }
+
+               if (!_write_vcard_to_file(fd, record, my_profile)) {
+                       D_WMSG("_write_vcard_to_file() failed");
+                       break;
+               }
+
+               ok = true;
+       } while (false);
+
+       if (record) {
+               contacts_record_destroy(record, true);
+       }
+
+       if (fd != -1) {
+               close(fd);
+               if (!ok) {
+                       msg_file_remove(vcard_path);
+               }
+       }
+
+       if (!ok) {
+               free(vcard_path);
+               vcard_path = NULL;
+       }
+
+       return vcard_path;
+}
+
+__EXPORT_API__ char *msg_vcard_create_from_id_list(const int *id_list, int count, const char *working_dir, volatile bool *cancel)
+{
+       D_ENTER;
+
+       if (!id_list || count <= 0) {
+               return NULL;
+       }
+
+       char *vcard_path = NULL;
+       int fd = -1;
+       bool ok = false;
+
+       do {
+               int i = 0;
+
+               vcard_path = _make_vcard_file_path(working_dir, "Contacts");
+               if (!vcard_path) {
+                       D_WMSG("_make_vcard_file_path() failed");
+                       break;
+               }
+
+               fd = open(vcard_path, O_WRONLY | O_CREAT | O_TRUNC, FILE_ACCESS_MODE);
+               if (fd == -1) {
+                       D_WMSG("open(%s) Failed(%s)", vcard_path, strerror(errno));
+                       break;
+               }
+
+               for (i = 0; !(*cancel) && (i < count); ++i) {
+                       if (!_write_vcard_to_file_from_id(fd, id_list[i])) {
+                               D_WMSG("_composer_write_vcard_to_file() failed");
+                               break;
+                       }
+               }
+
+               ok = (i == count);
+       } while (false);
+
+       if (fd != -1) {
+               close(fd);
+               if (!ok) {
+                       msg_file_remove(vcard_path);
+               }
+       }
+
+       if (!ok) {
+               free(vcard_path);
+               vcard_path = NULL;
+       }
+
+       return vcard_path;
+}
diff --git a/common/msg-vcard-utils.h b/common/msg-vcard-utils.h
new file mode 100755 (executable)
index 0000000..14fe384
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_VCARD_UTIL_H__
+#define __MSG_VCARD_UTIL_H__
+
+#include <stdbool.h>
+
+/*
+ *@brief       Make vcard file by contact id or my profile
+ *@param       id a contacts id
+ *@param       my_profile true - generate vcard by my profile, false - generate vcard by contact person id
+ *@param       working_dir absolute path for save vcard file
+ *@return      absolute path to vcard file (must be freed)
+ */
+char *msg_vcard_create_from_id(int id, bool my_profile, const char *working_dir);
+
+/*
+ *@brief       Make vcard file by contact id list
+ *@param       id_list contact person id list
+ *@param       count number elements in list
+ *@param       working_dir absolute path for save vcard file
+ *@param       cancel process running in the thread
+ *@return      absolute path to vcard file (must be freed)
+ */
+char *msg_vcard_create_from_id_list(const int *id_list, int count, const char *working_dir, volatile bool *cancel);
+
+#endif /* __MSG_VCARD_UTIL_H__ */
diff --git a/composer/CMakeLists.txt b/composer/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..6717a52
--- /dev/null
@@ -0,0 +1,70 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(msg-composer-efl C)
+
+#SET (COMPOSER composer)
+SET (UGCOMPOSER msg-composer-efl)
+#################################
+#      Message composer        #
+#################################
+SET(COMPOSER_SRCS
+       ./src/gadget/msg-ui-composer-gadget.c
+       ./src/external/msg-ui-composer-external.c
+       ./src/message/msg-ui-composer-message.c
+       ./src/util/msg-ui-composer-util.c
+       ./src/ui-composer/msg-ui-composer-attachment.c
+       ./src/ui-composer/msg-ui-composer-body.c
+       ./src/ui-composer/msg-ui-composer-body-page.c
+       ./src/ui-composer/msg-ui-composer-body-callback.c
+       ./src/ui-composer/msg-ui-composer-recipient.c
+       ./src/ui-composer/msg-ui-composer-recipient-callback.c
+       ./src/ui-composer/msg-ui-composer-popup.c
+       ./src/ui-composer/msg-ui-composer-predictsearch.c
+       ./src/ui-composer/msg-ui-composer-subject.c
+       ./src/ui-composer/msg-ui-composer-common.c
+       ./src/ui-composer/msg-ui-composer-main.c
+       ./src/bubble/msg-ui-composer-bubble-main.c
+       ./src/bubble/msg-ui-composer-bubble-list.c
+       ./src/bubble/msg-ui-composer-bubble-callback.c
+       ./src/bubble/msg-ui-composer-bubble-util.c
+)
+
+INCLUDE_DIRECTORIES(
+               ${CMAKE_CURRENT_SOURCE_DIR}/include
+               ${CMAKE_CURRENT_SOURCE_DIR}/src/ui-composer
+               ${CMAKE_CURRENT_SOURCE_DIR}/src/util
+               ${CMAKE_SOURCE_MAIN_DIR}
+               ${CMAKE_SOURCE_COMMON_DIR}
+)
+
+FOREACH(flag ${pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -Wall")
+SET(CMAKE_LDFLAGS "-Wl,-zdefs" )
+
+ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{PREFIX}\"")
+ADD_DEFINITIONS("-DDATAFS=\"$ENV{DATADIR}\"")
+ADD_DEFINITIONS("-DTARGET")
+ADD_DEFINITIONS("-DSLP_PROF")
+
+ADD_LIBRARY(${UGCOMPOSER} SHARED ${COMPOSER_SRCS})
+
+TARGET_LINK_LIBRARIES(${UGCOMPOSER} ${CMAKE_LDFLAGS} ${pkgs_LDFLAGS} -L${CMAKE_SOURCE_COMMON_DIR} -lmsg-common -ldl)
+
+ADD_CUSTOM_TARGET(composer.edj
+                COMMAND edje_cc -no-save ${EDJE_CC_DEFINITIONS}
+                               -id ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image
+                               -sd ${CMAKE_SOURCE_COMMON_DIR}/data/sound
+                               ${CMAKE_CURRENT_SOURCE_DIR}/data/composer_edc/composer_main.edc
+                               ${CMAKE_CURRENT_SOURCE_DIR}/data/composer_edc/composer.edj
+                               DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/composer_edc/composer_main.edc
+
+)
+
+ADD_DEPENDENCIES(${UGCOMPOSER} composer.edj)
+
+INSTALL(TARGETS ${UGCOMPOSER} DESTINATION ${UGDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/composer/data/composer_edc/composer.edj DESTINATION ${EDJDIR})
+
diff --git a/composer/data/composer_edc/composer_main.edc b/composer/data/composer_edc/composer_main.edc
new file mode 100755 (executable)
index 0000000..d68b125
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.
+ *
+ */
+
+/* Black Theme of Composer */
+
+#include "msg-ui-composer-data.edc"
+
+#define IMG_BODY_INPUT_FIELD "00_search_edit_field_bg.#.png"
+
+#define FONT_STYLE_BOLD   "Tizen:style=Bold"
+#define FONT_STYLE_MEDIUM  "Tizen:style=Medium"
+#define FONT_STYLE_ROMAN   "Tizen:style=Roman"
+#define FONT_STYLE_REGULAR   "Tizen:style=Regular"
+
+#define FONT_TEXT_CLASS_BOLD "label"
+#define FONT_TEXT_CLASS_MEDIUM "label"
+#define FONT_TEXT_CLASS_ROMAN "label"
+#define FONT_TEXT_CLASS_LABEL "label"
+#define FONT_TEXT_CLASS_REGULAR "label"
+
+#define COLOR_BLACK                    0 0 0 255
+#define COLOR_BLACK_TRANSPARENT 0 0 0 204
+#define COLOR_WHITE                            255 255 255 255
+#define COLOR_GRAY                             245 245 242 255
+#define COLOR_DARK_GRAY                        213 213 212 255
+#define COLOR_BLUE                             2 61 132 255
+#define COLOR_DARK_BLUE                        1 37 79 255
+#define COLOR_BLUE_TRANSPARENT 179 197 218 255
+#define COLOR_RED                              224 33 33 255
+
+collections
+{
+       base_scale: 2.6;
+
+plugins {
+       plugin {
+               name: "touch_sound";
+               source: "feedback";
+               param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+       }
+}
+
+#include "msg-ui-composer-main.edc"
+#include "msg-ui-composer-body.edc"
+#include "msg-ui-composer-recipient.edc"
+
+#include "msg-ui-composer-subject.edc"
+#include "msg-ui-composer-attachment.edc"
+#include "msg-ui-composer-custom.edc"
+
+#include "msg-ui-composer-bubble.edc"
+}
diff --git a/composer/data/composer_edc/msg-ui-composer-attachment.edc b/composer/data/composer_edc/msg-ui-composer-attachment.edc
new file mode 100755 (executable)
index 0000000..7171a05
--- /dev/null
@@ -0,0 +1,291 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.
+ *
+ */
+
+/***********************************************************************
+ * Attachment
+ **************************************************************************/
+
+#define MSG_COMPOSER_ATTACHMENT_H 46
+#define ATTACHMENT_DELBUTTON_SIZE 40 40
+#define ATTACHMENT_IMAGE_SIZE 30 30
+
+group {
+       name: "composer/attachment/main";
+
+       parts {
+               part {
+                       name: "rect";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 MSG_COMPOSER_ATTACHMENT_H;
+                               fixed: 0 1;
+                               color: 0 0 0 0;
+                       }
+               }
+               PADDING_TOP("padding_top", 12);
+               PADDING_LEFT("padding_left", 16);
+               PADDING_RIGHT("padding_right", 16);
+               PADDING_BOTTOM("padding_bottom", 12);
+               part {
+                       name: "rect.bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               visible: 1;
+                               color_class: "B0215";
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+               part {
+                       name: "border_line";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               color_class: "B0211";
+                               min : 0 1;
+                               visible: 1;
+                               rel1 { to: "rect.bg"; relative: 0.0 1.0; }
+                               rel2 { to: "rect.bg"; relative: 1.0 1.0; }
+                               align: 0.0 1.0;
+                       }
+               }
+               //If "rect.left_padding" is not existed, then height of image layout is not updated correctly.
+               part {
+                       name: "rect.left_padding";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 1 MSG_COMPOSER_ATTACHMENT_H;
+                               max: 1 MSG_COMPOSER_ATTACHMENT_H;
+                               fixed: 1 0;
+                               rel1{ relative: 0.0 0.0; }
+                               rel2{ relative: 0.0 0.0; }
+                               align: 0.0 0.0;
+                       }
+               }
+               part {
+                       name: "swl.image";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: ATTACHMENT_IMAGE_SIZE;
+                               max: ATTACHMENT_IMAGE_SIZE;
+                               fixed: 1 1;
+                               rel1 { to_x: "padding_left"; to_y: "padding_top"; relative: 1.0 1.0; }
+                               rel2 { to_x: "padding_left"; to_y: "padding_bottom"; relative: 1.0 0.0; }
+                               align: 0.0 0.5;
+                       }
+               }
+               part {
+                       name: "text.filename";
+                       type: TEXT;
+                       scale: 1;
+                       mouse_events: 0;
+
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to_x: "swl.image"; to_y: "padding_top"; relative: 1.0 1.0; offset: 12 0; }
+                               rel2 { to_x: "padding_right"; to_y: "padding_bottom"; relative: 0.0 0.0; offset: 0 0; }
+                               align: 0.0 0.5;
+                               color: COLOR_BLUE_EDC;
+                               text {
+                                       font: FONT_STYLE_REGULAR;
+                                       text_class: FONT_TEXT_CLASS_REGULAR;
+                                       size: 20;
+                                       align: 0.0 0.5;
+                                       text: "";
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "img_body_clicked";
+                               source: "rect.bg";
+                               signal: "mouse,clicked,1";
+                               script {
+                                       new st[31];
+                                       new Float:vl;
+                                       get_state(PART:"rect.bg", st, 30, vl)
+
+                                       if (!strcmp(st, "default"))
+                                               emit ("attach_clicked", "");
+                               }
+                       }
+               }
+       }
+}
+
+group {
+       name: "composer/attachment/item";
+       sounds {
+               sample {
+                name: "touch_sound" AS_IS;
+                source: "Tizen_Touch.wav";
+               }
+       }
+
+       parts {
+               part {
+                       name: "rect";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 MSG_COMPOSER_ATTACHMENT_H;
+                               fixed: 0 1;
+                       }
+               }
+               PADDING_TOP("padding_top", 12);
+               PADDING_LEFT("padding_left", 16);
+               PADDING_RIGHT("padding_right", 28);
+               PADDING_BOTTOM("padding_bottom", 12);
+               part {
+                       name: "rect.bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               visible: 1;
+                               color_class: "B0215";
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+               part {
+                       name: "border_line";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               color_class: "B0211";
+                               min : 0 1;
+                               visible: 1;
+                               rel1 { to: "rect.bg"; relative: 0.0 1.0; }
+                               rel2 { to: "rect.bg"; relative: 1.0 1.0; }
+                               align: 0.0 1.0;
+                       }
+               }
+               //If "rect.left_padding" is not existed, then height of image layout is not updated correctly.
+               part {
+                       name: "rect.left_padding";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 1 MSG_COMPOSER_ATTACHMENT_H;
+                               max: 1 MSG_COMPOSER_ATTACHMENT_H;
+                               fixed: 1 0;
+                               rel1{ relative: 0.0 0.0; }
+                               rel2{ relative: 0.0 0.0; }
+                               align: 0.0 0.0;
+                       }
+               }
+               part {
+                       name: "swl.image";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: ATTACHMENT_IMAGE_SIZE;
+                               max: ATTACHMENT_IMAGE_SIZE;
+                               fixed: 1 1;
+                               rel1 { to_x: "padding_left"; to_y: "padding_top"; relative: 1.0 1.0; }
+                               rel2 { to_x: "padding_left"; to_y: "padding_bottom"; relative: 1.0 0.0; }
+                               align: 0.0 0.5;
+                       }
+               }
+               part {
+                       name: "text.filename";
+                       type: TEXT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to_x: "swl.image"; to_y: "padding_top"; relative: 1.0 1.0; offset: 12 0; }
+                               rel2 { to_x: "swl.delete_btn"; to_y: "padding_bottom"; relative: 0.0 0.0; offset: -16 0; }
+                               align: 0.0 0.5;
+                               color: COLOR_BLUE_EDC;
+                               text {
+                                       font: FONT_STYLE_REGULAR;
+                                       text_class: FONT_TEXT_CLASS_REGULAR;
+                                       size: 20;
+                                       align: 0.0 0.5;
+                                       text: "";
+                               }
+                       }
+               }
+               PADDING_TOP("delete_btn_padding_top", 4);
+               part {
+                       name: "rect.delete_btn";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: ATTACHMENT_DELBUTTON_SIZE;
+                               max: ATTACHMENT_DELBUTTON_SIZE;
+                               fixed: 1 1;
+                               color: 0 0 0 0;
+                               rel1 { to_x: "padding_right"; to_y: "delete_btn_padding_top"; relative: 0.0 1.0; }
+                               rel2 { to_x: "padding_right"; to_y: "delete_btn_padding_top"; relative: 0.0 1.0; }
+                               align: 1.0 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "swl.delete_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "rect.delete_btn"; relative: 0.0 0.0; }
+                               rel2 { to: "rect.delete_btn"; relative: 1.0 1.0; }
+                               align: 0.5 0.5;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "touch_snd";
+                       source: "swl.delete_btn";
+                       signal: "mouse,clicked,1";
+                       action: RUN_PLUGIN "touch_sound";
+                       after: button_unclick3;
+               }
+               program {
+                       name: "button_unclick3";
+                       action: SIGNAL_EMIT "delete,clicked" "";
+               }
+       }
+}
+
diff --git a/composer/data/composer_edc/msg-ui-composer-body.edc b/composer/data/composer_edc/msg-ui-composer-body.edc
new file mode 100755 (executable)
index 0000000..40bf342
--- /dev/null
@@ -0,0 +1,984 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#define BODY_MEDIA_SOUND_H 38
+
+group {
+       name: "composer/body/media_sound";
+       images {
+               image: IMG_BODY_INPUT_FIELD COMP;
+               image: "00_search_edit_field_selected.#.png" COMP;
+       }
+       parts {
+               part {
+                       name: "rect";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 1;
+                       repeat_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1{ relative: 0.0 0.0; }
+                               rel2{ relative: 1.0 1.0; }
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                       }
+               }
+               PADDING_TOP("padding_top", 0);
+               PADDING_LEFT("padding_left", 5); // this is modified to stand in line with bottom line of entry
+               PADDING_RIGHT("padding_right", 0);
+               PADDING_BOTTOM("padding_bottom", 0);
+               part {
+                       name: "rect.bg";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 1;
+                       repeat_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 BODY_MEDIA_SOUND_H;
+                               rel1{ to_x: "padding_left"; to_y: "padding_top"; relative: 1.0 1.0;}
+                               rel2{ to_x: "padding_right"; to_y: "padding_bottom"; relative: 0.0 0.0;}
+                               align: 0.0 0.0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "main.bg";
+                       type: IMAGE;
+                       scale: 1;
+                       mouse_events: 1;
+                       repeat_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               visible: 0;
+                               rel1 { to: "rect.bg"; }
+                               rel2 { to: "rect.bg"; }
+                               image.normal: IMG_BODY_INPUT_FIELD;
+                               color_class: "W031L1";
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               color_class: "W031L1";
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "glow";
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "main.bg"; }
+                               rel2 { to: "main.bg"; }
+                               image.normal: "00_search_edit_field_selected.#.png";
+                               color_class: "W031L2";
+                               visible: 0;
+                       }
+                       description {
+                               state: "focused" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                               color: COLOR_BLUE_EDC;
+                       }
+               }
+               part {
+                       name: "text.filename";
+                       type: TEXT;
+                       scale: 1;
+                       mouse_events: 1;
+                       repeat_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to_x: "padding_left"; to_y: "padding_top"; relative: 1.0 1.0; offset: 2 0; }
+                               rel2 { to_x: "padding_right"; to_y: "padding_bottom"; relative: 0.0 0.0; offset: -10 0; }
+                               align: 0.0 0.5;
+                               color: COLOR_BLUE_EDC;
+                               text {
+                                       font: FONT_STYLE_REGULAR;
+                                       text_class: FONT_TEXT_CLASS_REGULAR;
+                                       size: 30;
+                                       align: 0.0 0.5;
+                                       text: "";
+                               }
+                       }
+               }
+       }
+       programs {
+#if 0 //clicked cb from edc is not supported
+               program {
+                       name: "sound_clicked";
+                       source: "rect.bg";
+                       signal: "mouse,clicked,1";
+                       script {
+                               emit ("sound_clicked", "");
+                       }
+               }
+#endif
+               program {
+                       name: "focused";
+                       signal: "focused";
+                       source: "*";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"rect.bg", st, 30, vl)
+
+                               if (!strcmp(st, "default")) {
+                                       set_state(PART:"glow", "focused", 0.0);
+                                       set_state(PART:"main.bg", "focused", 0.0);
+                                       set_state(PART:"rect.bg", "focused", 0.0);
+                               }
+                       }
+               }
+               program {
+                       name: "unfocused";
+                       signal: "unfocused";
+                       source: "*";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"rect.bg", st, 30, vl)
+
+                               if (!strcmp(st, "focused")) {
+                                       set_state(PART:"glow", "default", 0.0);
+                                       set_state(PART:"main.bg", "default", 0.0);
+                                       set_state(PART:"rect.bg", "default", 0.0);
+
+                               }
+                       }
+               }
+       }
+}
+
+#define MSGC_IMAGE_THUMB_LANDSCAPE_W 132 /* landscape mode */
+#define MSGC_IMAGE_THUMB_LANDSCAPE_H 75 /* landscape mode */
+#define MSGC_IMAGE_THUMB_PORTRAIT_W 80 /* portrait mode */
+#define MSGC_IMAGE_THUMB_PORTRAIT_H 142 /* portrait mode */
+#define MSGC_IMAGE_THUMB_EQUAL_H 110 /* portrait mode */
+
+group {
+       name: "composer/body/media_image";
+       images {
+               image: "00_video_play.png" COMP;
+       }
+       parts {
+               part {
+                       name: "rect";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 1;
+                       repeat_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1{ relative: 0.0 0.0; }
+                               rel2{ relative: 1.0 1.0; }
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                       }
+               }
+               PADDING_TOP("padding_top", 0);
+               PADDING_LEFT("padding_left", 5); // this is modified to stand in line with bottom line of entry
+               PADDING_RIGHT("padding_right", 0);
+               PADDING_BOTTOM("padding_bottom", 0);
+
+               //If "rect.left_padding" is not existed, then height of image layout is not updated correctly.
+               part {
+                       name: "rect.bg";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 1;
+                       repeat_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1{ to_x: "padding_left"; to_y: "padding_top"; relative: 1.0 1.0;}
+                               rel2{ to_x: "padding_right"; to_y: "padding_bottom"; relative: 0.0 0.0;}
+                               align: 0.0 0.0;
+                               visible: 1;
+                               color: 255 255 255 255;
+                       }
+                       description {
+                               state: "focus" 0.0;
+                               inherit: "default" 0.0;
+                               color: COLOR_BLUE_EDC;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "rect.thumbnail";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "rect.bg"; relative: 0.0 0.0; offset: 2 2; }
+                               rel2 { to: "rect.bg"; relative: 1.0 1.0; offset: -3 -3; }
+                               align: 0.0 0.0;
+                       }
+               }
+               part {
+                       name: "swl.thumbnail";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 0;
+                               rel1 { to: "rect.thumbnail"; relative: 0.0 0.0; }
+                               rel2 { to: "rect.thumbnail"; relative: 1.0 1.0; }
+                               align: 0.0 0.0;
+                       }
+               }
+               part {
+                       name: "play_button";
+                       type: IMAGE;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               image.normal: "00_video_play.png";
+                               align: 0.5 0.5;
+                               min: 48 48;
+                               rel1 {to: "swl.thumbnail"; relative: 0.5 0.5; offset: -36 -36;}
+                               rel2 {to: "swl.thumbnail"; relative: 0.5 0.5; offset: 36 36;}
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                       }
+               }
+       }
+       programs {
+#if 0  //clicked cb from edc is not supported
+               program {
+                       name: "image_clicked";
+                       source: "rect";
+                       signal: "mouse,clicked,1";
+                       script {
+                               emit ("image_clicked", "");
+                       }
+               }
+#endif
+               program {
+                       name: "focused";
+                       signal: "focused";
+                       source: "*";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"rect.bg", st, 30, vl)
+
+                               if (!strcmp(st, "default")) {
+                                       set_state(PART:"rect.bg", "focus", 0.0);
+                               }
+                       }
+               }
+               program {
+                       name: "unfocused";
+                       signal: "unfocused";
+                       source: "*";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"rect.bg", st, 30, vl)
+
+                               if (!strcmp(st, "focus")) {
+                                       set_state(PART:"rect.bg", "default", 0.0);
+                               }
+                       }
+               }
+               program {
+                       name: "play_button_show";
+                       signal: "elm,state,icon,show";
+                       source: "";
+                       action: STATE_SET "show" 0.0;
+                       target: "play_button";
+               }
+       }
+}
+
+group {
+       name: "composer/body/media_main";
+       parts {
+               //If "rect.image" is not existed, then width of sound layout is not shown correctly.
+               part {
+                       name: "bg";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               max: -1 110;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                               align: 0.0 0.0;
+                       }
+                       description {
+                               state: "image" 0.0; /* default state of image is landscape */
+                               max: MSGC_IMAGE_THUMB_LANDSCAPE_W MSGC_IMAGE_THUMB_LANDSCAPE_H;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                               align: 0.0 0.0;
+                       }
+                       description {
+                               state: "image.portrait" 0.0;
+                               max: MSGC_IMAGE_THUMB_PORTRAIT_W MSGC_IMAGE_THUMB_PORTRAIT_H;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                               align: 0.0 0.0;
+                       }
+                       description {
+                               state: "image.equal" 0.0; /* in case of equal we set bg 110 110 */
+                               max: MSGC_IMAGE_THUMB_EQUAL_H MSGC_IMAGE_THUMB_EQUAL_H;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part {
+                       name: "swl.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       repeat_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 0;
+                               rel1.to: "bg";
+                               rel2.to: "bg";
+                               align: 0.0 0.0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "media.sound";
+                       signal: "media.sound";
+                       source: "*";
+               }
+               program {
+                       name: "media.image.landscape";
+                       signal: "media.image.landscape";
+                       source: "*";
+                       action: STATE_SET "image" 0.0;
+                       target: "bg";
+               }
+               program {
+                       name: "media.image.portrait";
+                       signal: "media.image.portrait";
+                       source: "*";
+                       action: STATE_SET "image.portrait" 0.0;
+                       target: "bg";
+               }
+               program {
+                       name: "media.image.equal";
+                       signal: "media.image.equal";
+                       source: "*";
+                       action: STATE_SET "image.equal" 0.0;
+                       target: "bg";
+               }
+               program {
+                       name: "item_press";
+                       signal: "play,press,sound";
+                       source: "*";
+                       action: RUN_PLUGIN "touch_sound";
+               }
+       }
+}
+
+#define PAGE_DIVIDER_H 30
+group {
+       name: "composer/body/page_divider";
+       parts {
+               part {
+                       name: "rect";
+                       type: SPACER;
+                       scale: 1;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 PAGE_DIVIDER_H;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                               align: 0.0 0.5;
+                       }
+               }
+               PADDING_LEFT("padding_left", 5); // this is modified to stand in line with bottom line of entry
+               PADDING_RIGHT("padding_right", 0);
+               part {
+                       name: "swl.divider_line";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               min: 0 1;
+                               align: 0.5 0.5;
+                               rel1 { to_x: "padding_left"; relative: 1.0 0.5; }
+                               rel2 { to_x: "padding.divider_line"; relative: 0.0 0.5; }
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "padding.divider_line";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 PAGE_DIVIDER_H;
+                               rel1 { to_x: "text.page_info"; relative: 0.0 0.0; }
+                               rel2 { to_x: "text.page_info"; relative: 0.0 1.0; }
+                       }
+               }
+               part {
+                       name: "text.page_info";
+                       type: TEXT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 1.0 0.5;
+                               text {
+                                       font: FONT_STYLE_BOLD;
+                                       text_class: FONT_TEXT_CLASS_BOLD;
+                                       size: 21;
+                                       align: 1.0 0.5;
+                                       min: 1 1;
+                               }
+                               color: COLOR_BLUE_EDC;
+                               rel1 { to_x : "padding_right"; relative: 0.0 0.0; }
+                               rel2 { to_x : "padding_right"; relative: 0.0 1.0; }
+                       }
+               }
+       }
+}
+
+/************************************************************************************************/
+
+#define MSGC_BODY_PAGE_IMAGE_H 44
+#define MSGC_BODY_EACH_PAGE_MIN_H 44
+#define MSGC_BODY_MAIN_MIN_H 120
+#define MSGC_BODY_ENTRY_MIN_H 54
+#define BODY_PAGE_DELBUTTON_SIZE 20 20
+
+#define BODY_ADDBUTTON_SIZE 72 72
+
+#define SENDBUTTON_WIDTH 85
+#define SENDBUTTON_HEIGHT 43
+#define BODY_SENDBUTTON_SIZE SENDBUTTON_WIDTH SENDBUTTON_HEIGHT
+
+#define TEXTCOUNT_HEIGHT 31
+#define TEXTCOUNT_SIZE SENDBUTTON_WIDTH TEXTCOUNT_HEIGHT
+
+group {
+       name: "composer/body/page"; //text input field
+       parts {
+               part {
+                       name: "rect";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 20;
+                       }
+               }
+               PADDING_LEFT("padding_left", 0);
+               PADDING_RIGHT("padding_right", 0);
+               PADDING_BOTTOM("padding_bottom", 0);
+               part {
+                       name: "swl.page";
+                       type: SWALLOW;
+                       scale:1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 0;
+                               rel1 { to: "padding_left"; relative: 1.0 0.0; }
+                               rel2 { to_x: "padding_right"; to_y: "padding_bottom"; relative: 0.0 0.0; }
+                       }
+               }
+       }
+}
+
+group {
+       name: "composer/body/page_main";
+       parts {
+               part {
+                       name: "rect";
+                       type: RECT; //It should be a RECT in oder to emit clicked signal
+                       scale: 1;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 40;
+                               color: 0 0 0 0;
+                       }
+               }
+               PADDING_TOP("padding_top", 2);
+               PADDING_RIGHT("padding_right", 0);
+               part {
+                       name: "padding_bottom";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               visible: 0;
+                               color: 0 0 0 0;
+                               rel1 { relative: 0.0 1.0; }
+                               rel2 { relative: 1.0 1.0; }
+                               align: 0.0 1.0;
+                       }
+                       description { //Padding increased for text entry not to come under character count.
+                               state: "easy.mode" 0.0;
+                               min: 0 32;
+                               fixed: 0 1;
+                               visible: 0;
+                               color: 0 0 0 0;
+                               rel1 { relative: 0.0 1.0; }
+                               rel2 { relative: 1.0 1.0; }
+                               align: 0.0 1.0;
+                       }
+               }
+               part {
+                       name: "swl.page.main";
+                       type: SWALLOW;
+                       scale:1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 0;
+                               //Don't use "img.body" as rel1,rel2's relative name, even though "swl.page.main" has same position with "img.body".
+                               //Because if "img.body" is used, it happens text cut off issue when lots of texts are inserted
+                               rel1 { to_y: "padding_top"; relative: 0.0 1.0; }
+                               rel2 { to_x: "padding_right"; to_y: "padding_bottom"; relative: 0.0 0.0; }
+                               align: 0.0 1.0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "page_layout_clicked";
+                       source: "rect";
+                       signal: "mouse,clicked,1";
+                       action: SIGNAL_EMIT "page_layout,clicked" "";
+               }
+               program {
+                       name: "show.easy.mode";
+                       signal: "show.easy.mode";
+                       source: "*";
+                       action: STATE_SET "easy.mode" 0.0;
+                       target: "padding_bottom";
+               }
+               program {
+                       name: "show.normal.mode";
+                       signal: "show.normal.mode";
+                       source: "*";
+                       action: STATE_SET "default.mode" 0.0;
+                       target: "padding_bottom";
+               }
+       }
+}
+
+#define MSG_BODY_INPUT_FIELD_SIZE_DEFAULT 80
+
+group {
+       name: "composer/body/main_bg";  //input field
+       images {
+               image: IMG_BODY_INPUT_FIELD COMP;
+               image: "00_search_edit_field_selected.#.png" COMP;
+       }
+       parts {
+               part {
+                       name: "rect";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 MSG_BODY_INPUT_FIELD_SIZE_DEFAULT;
+                       }
+               }
+               PADDING_LEFT("padding_left", 5); // padding between add button and input field line. (this is modified to stand in line with inputted text of entry.)
+               PADDING_TOP("padding_top", 13); //input field of top padding (ignore the composer/body/main of top padding)
+               PADDING_BOTTOM("padding_bottom", 7); //input field of bottom padding (ignore the composer/body/main of bottom padding)
+               part {
+                       name: "padding_page_top"; //padding between padding_top and input field .
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 37;
+                               fixed: 0 1;
+                               rel1 { to_y: "padding_top"; relative: 0.0 1.0; }
+                               rel2 { to_y: "padding_top"; relative: 1.0 1.0; }
+                               align: 0.0 0.0;
+                       }
+               }
+               part {
+                       name: "padding_page_bottom"; //padding between  bottom padding and bottom line
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               min: 0 15;
+                               fixed: 0 1;
+                               rel1 { to_y: "padding_bottom"; relative: 0.0 0.0;}
+                               rel2 { to_y: "padding_bottom"; relative: 1.0 0.0;}
+                               align: 0.0 1.0;
+                       }
+               }
+               part {
+                       name: "padding_page_bottom_line"; //padding between  bottom padding and bottom line
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 0 3;
+                               fixed: 0 1;
+                               rel1 { to_x: "padding_left"; to_y: "padding_bottom"; relative: 1.0 0.0; offset: 0 -5;}
+                               rel2 { to_y: "padding_bottom"; relative: 1.0 0.0; offset: -1 -5;}
+                               align: 0.0 1.0;
+                               color: COLOR_LINE_INPUT_EDC;
+                       }
+               }
+               part {
+                       name: "swl.page.content"; //pages box
+                       type: SWALLOW;
+                       scale:1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 0;
+                               rel1 { to_y: "padding_page_top"; relative: 0.0 1.0; }
+                               rel2 { to_y: "padding_page_bottom"; relative: 1.0 0.0; }
+                               align: 0.0 1.0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       signal: "elm,state,focus,on";
+                       source: "*";
+                       action: STATE_SET "focused" 0.0;
+                       transition: SINUSOIDAL 0.1;
+                       target: "padding_page_bottom_line";
+               }
+               program {
+                       signal: "elm,state,focus,off";
+                       source: "*";
+                       action: STATE_SET "default" 0.0;
+                       transition: SINUSOIDAL 0.1;
+                       target: "padding_page_bottom_line";
+               }
+       }
+}
+
+group {
+       name: "composer/body/main";
+       
+       images {
+               image: "messages_bubble_line_send.#.png" COMP;
+       }
+       parts {
+               PADDING_TOP("padding_top", 1);
+               PADDING_BOTTOM("padding_btn_bottom", 23);
+               PADDING_BOTTOM("padding_entry_bottom", 0);
+               PADDING_BOTTOM("padding_send_btn_bottom", 26);
+               PADDING_LEFT("padding_left", 11);
+               PADDING_RIGHT("padding_right", 0);
+
+
+               part {
+                       name: "rect.add_bt_area";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: BODY_ADDBUTTON_SIZE;
+                               max: BODY_ADDBUTTON_SIZE;
+                               fixed: 1 1;
+                               rel1 { to_x: "padding_left"; to_y: "padding_top"; relative: 0.0 1.0; }
+                               rel2 { to_x: "padding_left"; to_y: "padding_btn_bottom"; relative: 0.0 0.0; }
+                               align: 0.0 1.0;
+                       }
+                       description {
+                               state: "landscape" 0.0;
+                               inherit: "default" 0.0;
+                               rel1 { to_x: "padding_left"; to_y: "padding_top"; relative: 0.0 1.0; }
+                               rel2 { to_x: "padding_left"; to_y: "padding_btn_bottom"; relative: 0.0 0.0; }
+                               align: 0.0 1.0;
+                       }
+               }
+               part {
+                       name: "swl.add_button";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               max: BODY_ADDBUTTON_SIZE;
+                               min: BODY_ADDBUTTON_SIZE;
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               rel1 { to: "rect.add_bt_area"; relative: 0.0 0.0; }
+                               rel2 { to: "rect.add_bt_area"; relative: 1.0 1.0; }
+                               align: 0.5 0.5;
+                       }
+               }
+               part {
+                       name: "padding_rect_left"; //padding between left button and input rect.
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 5 0;
+                               fixed: 1 0;
+                               rel1 { to_x: "rect.add_bt_area"; relative: 1.0 0.0; }
+                               rel2 { to_x: "rect.add_bt_area"; relative: 1.0 1.0; }
+                               align: 0.0 0.0;
+                       }
+               }
+               part {
+                       name: "padding1"; //padding between rect and input field.
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 10 0;
+                               fixed: 1 0;
+                               rel1 { to_x: "padding_rect_left"; relative: 1.0 0.0; }
+                               rel2 { to_x: "padding_rect_left"; relative: 1.0 1.0; }
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part {
+                       name: "swl.main"; //input field
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 48;
+                               max: -1 -1;
+                               fixed: 1 0;
+                               rel1 { to_x: "padding1"; to_y: "padding1"; relative: 1.0 0.0; }
+                               rel2 { to_x: "padding2"; to_y: "padding2"; relative: 0.0 1.0; }
+                               align: 0.0 0.5;
+                       }
+               }
+               part {
+                       name: "text.char_count";
+                       type: TEXT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { to: "text_count_rect"; relative: 0.0 0.0; }
+                               rel2 { to: "text_count_rect"; relative: 1.0 1.0; }
+                               align: 0.5 0.5;
+                               color: SENDBUTTON_CHARCOUNT_TEXT_COLOR;
+                               text {
+                                       size: 23;
+                                       text: "";
+                               }
+                       }
+               }
+               part {
+                       name: "text_count_rect";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events:  1;
+                       description {
+                               state: "default" 0.0;
+                               min: TEXTCOUNT_SIZE;
+                               max: TEXTCOUNT_SIZE;
+                               fixed: 1 1;
+                               align: 1.0 1.0;
+                               rel2 { to_x: "rect.send_button"; to_y: "rect.send_button"; relative: 1.0 0.0; }
+                               color: 0 0 0 0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "padding2"; //padding between input field of right side and send button
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 0;
+                               min: 15 0;
+                               align: 1.0 0.0;
+                               rel1 { to_x: "rect.send_button"; relative: 0.0 0.0; }
+                               rel2 { to_x: "rect.send_button"; relative: 0.0 1.0; }
+                       }
+               }
+               part {
+                       name: "rect.send_button";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BODY_SENDBUTTON_SIZE;
+                               max: BODY_SENDBUTTON_SIZE;
+                               align: 1.0 1.0;
+                               rel1 { to_x: "padding_right"; to_y: "padding_send_btn_bottom"; relative: 0.0 0.0; }
+                               rel2 { to_x: "padding_right"; to_y: "padding_send_btn_bottom"; relative: 0.0 0.0; }
+                       }
+                       description {
+                               state: "landscape" 0.0;
+                               inherit: "default" 0.0;
+                               rel1 { to_x: "padding_right"; to_y: "padding_send_btn_bottom"; relative: 0.0 0.0; }
+                               rel2 { to_x: "padding_right"; to_y: "padding_send_btn_bottom"; relative: 0.0 0.0; }
+                       }
+               }
+               part {
+                       name: "swl.send_button";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: BODY_SENDBUTTON_SIZE;
+                               max: BODY_SENDBUTTON_SIZE;
+                               rel1 { to: "rect.send_button"; relative: 0.0 0.0; }
+                               rel2 { to: "rect.send_button"; relative: 1.0 1.0; }
+                               align: 0.5 0.5;
+                               visible: 1;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "landscape" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "body_layout_clicked";
+                       source: "swl.main";
+                       signal: "mouse,clicked,1";
+                       action: SIGNAL_EMIT "body_layout,clicked" "";
+               }
+               program {
+                       name: "show.default.mode";
+                       signal: "show.default.mode";
+                       source: "*";
+                       action: STATE_SET "hide" 0.0;
+#if _MSG_FEATURE_MMS_DISABLE
+#else
+                       target: "swl.send_button";
+#endif
+               }
+               program {
+                       name: "show.expand.mode";
+                       signal: "show.expand.mode";
+                       source: "*";
+                       action: STATE_SET "default" 0.0;
+#if _MSG_FEATURE_MMS_DISABLE
+#else
+                       target: "swl.send_button";
+#endif
+               }
+               program {
+                       name: "show.portrait.mode";
+                       signal: "show.portrait.mode";
+                       source: "*";
+                       action: STATE_SET "default" 0.0;
+#if _MSG_FEATURE_MMS_DISABLE
+#else
+                       target: "rect.send_button";
+                       target: "swl.send_button";
+                       target: "rect.add_bt_area";
+#endif
+                       target: "swl.main";
+               }
+               program {
+                       name: "show.landscape.mode";
+                       signal: "show.landscape.mode";
+                       source: "*";
+                       action: STATE_SET "landscape" 0.0;
+#if _MSG_FEATURE_MMS_DISABLE
+#else
+                       target: "rect.send_button";
+                       target: "swl.send_button";
+                       target: "rect.add_bt_area";
+#endif
+                       target: "swl.main";
+               }
+       }
+}
+
+//make a group for subject
+group {
+       name: "composer/body/main/total";
+       parts {
+
+               PADDING_BOTTOM("bottom", 21);
+               PADDING_LEFT("left", 32);
+               PADDING_RIGHT("right", 32);
+
+               part {
+                       name: "swl.body.main";
+                       type: SWALLOW;
+                       scale:1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 0;
+                               rel1 { to_x: "left"; relative: 1.0 1.0; }
+                               rel2 { to_x: "right"; to_y: "bottom"; relative: 0.0 0.0; }
+                               align: 0.0 1.0;
+                       }
+               }
+
+               part {
+                       name: "top_line";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               min: 0 4;
+                               fixed: 0 1;
+                               rel1 { to_y: "swl.body.main"; relative: 0.0 0.0;}
+                               rel2 { to_y: "swl.body.main"; relative: 1.0 0.0;}
+                               align: 0.0 0.0;
+                               color: COLOR_LINE_BODY_DIVIDER_EDC;
+                       }
+               }
+       }
+}
+
diff --git a/composer/data/composer_edc/msg-ui-composer-bubble.edc b/composer/data/composer_edc/msg-ui-composer-bubble.edc
new file mode 100755 (executable)
index 0000000..fb5c149
--- /dev/null
@@ -0,0 +1,251 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "../../../common/msg-ui-color.h"
+
+#define DATELINE_TOP_PADDING 16
+#define DATELINE_BOTTOM_PADDING 12
+#define DATELINE_SIDE_PADDING 32
+#define DATELINE_CENTER_PADDING 12
+#define DATELINE_HEIGHT 38
+#define DIVIDER_TOP_PADDING 20
+#define DIVIDER_BOTTOM_PADDING 16
+#define DIVIDER_HEIGHT 2
+group {
+       name: "composer/content/bubble/date_line";
+
+       images {
+               image: "messages_date_divider.#.png" COMP;
+       }
+
+       parts {
+               part {
+                       name: "top_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 0 DATELINE_TOP_PADDING;
+                               color: 0 0 0 0;
+                               rel1 {relative: 0.0 0.0;}
+                               rel2 {relative: 1.0 0.0;}
+                               align: 0.0 0.0;
+                       }
+               }
+               part {
+                       name: "base";
+                       type: RECT;
+                       scale: 1;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 DATELINE_HEIGHT;
+                               color: 0 0 0 0;
+                               rel1 {to_y: "top_padding"; relative: 0.0 1.0;}
+                               rel2 {to_y: "bottom_padding"; relative: 1.0 0.0;}
+                               align: 0.0 0.5;
+                       }
+               }
+               part {
+                       name: "bottom_padding";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 0 DATELINE_BOTTOM_PADDING;
+                               color: 0 0 0 0;
+                               rel1 { relative: 0.0 1.0;}
+                               rel2 { relative: 1.0 1.0;}
+                               align: 0.0 1.0;
+                       }
+               }
+               part {
+                       name: "date_line_left";
+                       type: IMAGE;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               align: 0.0 0.0;
+                               min: 0 DIVIDER_HEIGHT;
+                               max: 6666 DIVIDER_HEIGHT;
+                               rel1 {to: "base"; relative: 0.0 0.0; offset: DATELINE_SIDE_PADDING DIVIDER_TOP_PADDING;}
+                               rel2 {to: "elm.text.date"; relative: 0.0 0.0; offset: -DATELINE_CENTER_PADDING DIVIDER_TOP_PADDING;}
+                               color: BUBBLE_DATELINE_DIVIDER_COLOR_EDC;
+                               image {
+                                       normal: "messages_date_divider.#.png";
+                               }
+                       }
+               }
+               part {
+                       name: "elm.text.date";
+                       type: TEXT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.5;
+                               min: 0 20;
+                               fixed: 0 1;
+                               text {
+                                       size: 28;
+                                       align: 0.5 0.5;
+                                       max: 1 0;
+                               }
+                               color: BUBBLE_DATELINE_TEXT_COLOR_EDC;
+                               rel1 { to: "base"; relative: 0.0 0.0;}
+                               rel2 { to: "base"; relative: 1.0 1.0;}
+                       }
+               }
+
+               part {
+                       name: "date_line_right";
+                       type: IMAGE;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               align: 1.0 0.5;
+                               min: 0 DIVIDER_HEIGHT;
+                               max: 6666 DIVIDER_HEIGHT;
+                               rel1 {to: "elm.text.date"; relative: 1.0 0.0; offset: DATELINE_CENTER_PADDING DIVIDER_TOP_PADDING;}
+                               rel2 {to: "base"; relative: 1.0 0.0; offset: -DATELINE_SIDE_PADDING DIVIDER_TOP_PADDING;}
+                               color: BUBBLE_DATELINE_DIVIDER_COLOR_EDC;
+                               image {
+                                       normal: "messages_date_divider.#.png";
+                               }
+                       }
+               }
+       }
+}
+
+group {
+       name: "msg_2button_popup";
+       #define BUTTON_WIDTH 200
+       #define BUTTON_HEIGHT 30.0
+       #define BUTTON_GAP 8.0
+       parts{
+               part { name: "top_padding";
+                       type: RECT;
+                       scale: 1; //allow scaling
+                       description {
+                               state: "default" 0.0;
+                               min : 0 1; //minimum size for gap filler
+                               color: 0 0 0 0;
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 0.0; }
+                               align: 0 0;
+                       }
+               }
+               part{
+                       name: "left_padding";
+                       type:RECT;
+                       scale:1;
+                       description {
+                               state: "default" 0.0;
+                               min: 1 0;
+                               fixed: 1 0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 0.0 1.0; }
+                               color: 0 0 0 0;
+                               align: 0 0;
+                       }
+               }
+               part{
+                       name: "right_padding";
+                       type:RECT;
+                       scale:1;
+                       description {
+                               state: "default" 0.0;
+                               min: 10 0;
+                               fixed: 1 0;
+                               rel1 { relative: 1.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                               color: 0 0 0 0;
+                               align: 1.0 0;
+                       }
+               }
+               part { name: "btn_top_padding";
+                       type: RECT;
+                       scale: 1; //allow scaling
+                       description {
+                               state: "default" 0.0;
+                               min : 0 9; //minimum size for gap filler
+                               fixed: 0 1;
+                               rel1 { relative: 0.0 1.0;  to: "top_padding";}
+                               rel2 { relative: 1.0 1.0;  to: "top_padding";}
+                               color:  0 0 0 0;
+                               align: 0 0;
+                       }
+               }
+               part { name: "button.1";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               align: 0.5 0;
+                               min: BUTTON_WIDTH BUTTON_HEIGHT;
+                               max: BUTTON_WIDTH BUTTON_HEIGHT;
+                               rel1 { relative: 0 1.0; to_y: "btn_top_padding"; }
+                       }
+               }
+               part { name: "button_1_bottom_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min : BUTTON_WIDTH BUTTON_GAP;
+                               max : BUTTON_WIDTH BUTTON_GAP;
+                               fixed: 1 1;
+                               align: 0.5 0;
+                               rel1 { relative: 0 1.0; to_y: "button.1"; }
+                               rel2 { relative: 1 1.0; to_y: "button.1"; }
+                               color: 0 0 0 0;
+                       }
+               }
+               part { name: "button.2";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               align: 0.5 0;
+                               min: BUTTON_WIDTH BUTTON_HEIGHT;
+                               max: BUTTON_WIDTH BUTTON_HEIGHT;
+                               rel1 { relative: 0 1.0; to_y: "button_1_bottom_padding"; }
+                       }
+               }
+               part { name: "bottom_padding";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min : 0 8;
+                               max : 0 12;
+                               rel1 { relative: 0 1.0; to_y: "button.2"; }
+                               rel2 { relative: 1 1.0;}
+                               color: 0 0 0 0;
+                               align: 0.5 1.0;
+                       }
+               }
+       }//end parts
+       #undef BUTTON_WIDTH
+       #undef BUTTON_HEIGHT
+       #undef BUTTON_GAP
+} //end group
diff --git a/composer/data/composer_edc/msg-ui-composer-custom.edc b/composer/data/composer_edc/msg-ui-composer-custom.edc
new file mode 100755 (executable)
index 0000000..2a01a77
--- /dev/null
@@ -0,0 +1,824 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#define MSGC_DIALOGUE_H 70
+#define MSGC_DIALOGUE_ICON_W 64
+#define MSGC_DIALOGUE_PADDING_W 16
+#define MSGC_DIALOGUE_ENTRY_W 20
+#define MSGC_DIALOGUE_TEXT_W 180
+#define MSGC_DIALOGUE_TEXT_COLOR 249 249 249 255
+#define MSGC_DIALOGUE_TEXT_SIZE 44
+#define MSGC_STRANSLATION_POPUP_HT 570
+
+//Refered elm-demo-tizen for popup height in landscape mode, as the UI/ UX documentation doesn't have height description for popup
+//in landscape mode
+
+#define MSGC_STRANSLATION_POPUP_HT_LANDSCAPE 398
+
+group
+{
+       name: "composer/dialogue/custom";
+       parts {
+               part {
+                       name: "rect";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 MSGC_DIALOGUE_H;
+                               fixed: 1 1;
+                       }
+               }
+               PADDING_RIGHT("padding_right",MSGC_DIALOGUE_PADDING_W);
+               part {
+                       name: "padding.text.left";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: MSGC_DIALOGUE_PADDING_W 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to_x: "elm.text";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to_x: "elm.text";
+                               }
+                               align: 1.0 0.0;
+                       }
+               }
+               part {
+                       name: "padding.entry.left";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: MSGC_DIALOGUE_PADDING_W 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to_x: "dialogue.swl.entry";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to_x: "dialogue.swl.entry";
+                               }
+                               align: 1.0 0.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: MSGC_DIALOGUE_TEXT_W 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       to_x: "padding_right";
+                                       relative: 0.0 0.0;
+                               }
+                               rel2 {
+                                       to_x: "padding_right";
+                                       relative: 0.0 1.0;
+                               }
+                               align: 1.0 0.0;
+                               color: MSGC_DIALOGUE_TEXT_COLOR;
+                               text {
+                                       font: FONT_STYLE_ROMAN;
+                                       text_class: FONT_TEXT_CLASS_ROMAN;
+                                       size: MSGC_DIALOGUE_TEXT_SIZE;
+                                       min: 0 1;
+                                       align: 0.0 0.5;
+                                       text: "";
+                               }
+                       }
+               }
+               part {
+                       name: "dialogue.swl.entry";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: MSGC_DIALOGUE_ENTRY_W 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       to_x: "padding.text.left";
+                                       relative: 0.0 0.0;
+                               }
+                               rel2 {
+                                       to_x: "padding.text.left";
+                                       relative: 0.0 1.0;
+                               }
+                               align: 1.0 0.5;
+                       }
+               }
+       }
+}
+
+#define MSGC_DATEFIELD_TXT_COLOR 173 170 165 255
+#define MSGC_DATEFIELD_TXT_SIZE 24
+#define MSGC_DATEFIELD_TEXT_H 60
+
+group {
+       name: "composer/datefield";
+       parts {
+               PADDING_TOP("padding_top", 16);
+               PADDING_LEFT("padding_left", 16);
+               part {
+                       name: "text";
+                       type: TEXT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 MSGC_DATEFIELD_TEXT_H;
+                               fixed: 0 1;
+                               align: 0.5 0.0;
+                               rel1 {
+                                       to_x: "padding_left";
+                                       to_y: "padding_top";
+                                       relative: 1 1;
+                               }
+                               rel2 {
+                                       relative: 1 0;
+                               }
+                               color: MSGC_DATEFIELD_TXT_COLOR;
+                               text {
+                                       font: FONT_STYLE_ROMAN;
+                                       text_class: FONT_TEXT_CLASS_LABEL;
+                                       size: MSGC_DATEFIELD_TXT_SIZE;
+                                       min:  1 0;
+                                       align: 0.0 0.0;
+                                       text: "";
+                               }
+                       }
+               }
+
+               part {
+                       name: "picker";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.0;
+                               fixed: 1 1;
+                               rel1 { relative: 0 1; to: "text"; }
+                               rel2 { relative: 1 1; to: "text"; }
+                       }
+               }
+       }
+}
+
+#define MSGC_POPUP_INFO_TXT_COLOR_INC "#ffffff"
+#define MSGC_POPUP_INFO_TXT_SIZE 40
+#define MSGC_POPUP_ENTRY_FIELD_H 74
+styles {
+       style {
+               name: "popup_desc_style";
+               base: "font=Tizen:style=Roman font_size="MSGC_POPUP_INFO_TXT_SIZE" align=center color="MSGC_POPUP_INFO_TXT_COLOR_INC" wrap=mixed text_class=label";
+               tag:  "br" "\n";
+               tag:  "ps" "ps";
+               tag:  "whitecolor" "+ color=#ffffff";
+               tag:  "tab" "\t";
+       }
+}
+group {
+       name: "popup/spinner";
+       parts {
+               part {
+                       name: "base";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 272;
+                               fixed: 1 0;
+                       }
+               }
+               PADDING_LEFT("padding_left", 16);
+               PADDING_RIGHT("padding_right", 16);
+               part {
+                       name: "t_pad";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "base";
+                               rel2.to: "base";
+                               align: 0.0 0.0;
+                               min: 0 28;
+                               max: 0 28;
+                               fixed: 1 1;
+                       }
+               }
+               part {
+                       name: "rect.spinner";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 216;
+                               fixed: 0 1;
+                               rel1 {
+                                       to_x: "padding_left";
+                                       to_y: "t_pad";
+                                       relative: 1.0 1.0;
+                               }
+                               rel2 {
+                                       to_x: "padding_right";
+                                       to_y: "t_pad";
+                                       relative: 0.0 1.0;
+                               }
+                               align: 0.0 0.0;
+                       }
+               }
+               part{
+                       name: "swl.spinner";
+                       type: SWALLOW;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 216;
+                               max: -1 216;
+                               fixed: 1 1;
+                               align: 0.5 0.0;
+                               rel1 {
+                                       to: "rect.spinner";
+                                       relative: 0.0 0.0;
+                               }
+                               rel2 {
+                                       to: "rect.spinner";
+                                       relative: 1.0 1.0;
+                               }
+                       }
+               }
+               part {
+                       name: "secs.text.rect";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 200 150;
+                               fixed : 1 1;
+                               rel1 {
+                                       to: "rect.spinner";
+                                       relative: 0.5 0.0;
+                               }
+                               rel2 {
+                                       to: "rect.spinner";
+                                       relative: 1.0 1.0;
+                               }
+                               align: 0.5 0.5;
+                       }
+               }
+               part {
+                       name: "secs.text";
+                       type: TEXT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 200;
+                               fixed: 0 1;
+                               visible: 1;
+                               rel1 {
+                                       to: "secs.text.rect";
+                                       relative: 0.0 0.0;
+                               }
+                               rel2 {
+                                       to: "secs.text.rect";
+                                       relative: 1.0 1.0;
+                               }
+                               align: 0.5 0.5;
+                               color: 255 255 255 255;
+                               text {
+                                       font: "Tizen:style=Bold";
+                                       text_class: FONT_TEXT_CLASS_REGULAR;
+                                       size: 42;
+                                       align: 0.5 0.5;
+                               }
+                       }
+               }
+       }
+}
+
+group {
+       name: "popup/popup_checkview";
+       parts {
+               part {
+                       name: "pad_t";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.0;
+                               min: 0 32;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 1.0 0.0;to_x: "pad_l";
+                               }
+                               rel2 {
+                                       relative: 0.0 0.0;to_x: "pad_r";
+                               }
+                       }
+               }
+               part {
+                       name: "pad_l";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 26 0;
+                               max: 26 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                               }
+                               align: 0.0 0.0;
+                       }
+               }
+               part {
+                       name: "pad_r";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 26 0;
+                               max: 26 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                               }
+                               align: 1.0 0.0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "pad_l";
+                                       to_y: "pad_t";
+                               }
+                               rel2 {
+                                       relative: 0.0 0.0;
+                                       to_x: "pad_r";
+                                       to_y: "pad_b";
+                               }
+                       }
+               }
+               part {
+                       name: "bottom_pad";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 1.0;
+                               min: 0 32;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "pad_l";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to_x: "pad_r";
+                               }
+                       }
+               }
+               part {
+                       name: "pad_b";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 1.0;
+                               min: 0 84;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to: "bottom_pad";
+                               }
+                               rel2 {
+                                       relative: 1.0 0.0;
+                                       to: "bottom_pad";
+                               }
+                       }
+               }
+               part {
+                       name: "end_field";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 1.0;
+                               min: 0 63;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to: "pad_b";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to: "pad_b";
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.end";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               align: 0.0 0.5;
+                               rel1.to: "end_field";
+                               rel2.to: "end_field";
+                       }
+               }
+       }
+}
+
+group
+{
+       name: "processing_view";
+       styles {
+               style
+               {
+                       name: "popup_processing";
+                       base: "font=Tizen:style=Regular align=left font_size=30 color=#FFFFFF color_class=T123 wrap=mixed ellipsis=1.0 text_class=label";
+                       tag:  "br" "\n";
+                       tag:  "tab" "\t";
+               }
+       }
+       parts
+       {
+               part
+               {
+                       name: "bg";
+                       type: SPACER;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 0 96;
+                               fixed: 1 0;
+                       }
+               }
+               part
+               {
+                       name: "pad_l";
+                       type: SPACER;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 27 0;
+                               fixed: 1 0;
+                               rel1.relative: 0.0 0.0;
+                               rel2.relative: 0.0 1.0;
+                               align: 0.0 0.0;
+                       }
+               }
+               part { name: "pad_r";
+                       type: SPACER;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 15 0;
+                               fixed: 1 0;
+                               rel1.relative: 1.0 0.0;
+                               rel2.relative: 1.0 1.0;
+                               align: 1.0 0.0;
+                       }
+               }
+               part { name: "processing";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 36 36;
+                               max: 36 36;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to_x: "pad_l";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to_x: "pad_r";
+                               }
+                               align: 0.0 0.5;
+                       }
+               }
+               part { name: "pad_after_processing";
+                       type: SPACER;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 15 96;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to: "processing";
+                               }
+                               rel2.to: "processing";
+                               align: 0.0 0.5;
+                       }
+               }
+               part { name: "elm.text";
+                       type: TEXTBLOCK;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 0 96;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to: "pad_after_processing";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to_x: "pad_r";
+                               }
+                               align: 0.0 0.5;
+                               text {
+                                       style: "popup_processing";
+                                       min: 0 1;
+                               }
+                       }
+               }
+       }
+}
+
+
+group {
+       name: "composer/popup/popup_processingview";
+       parts {
+               part {
+                       name: "base";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 320 114;
+                               fixed: 1 0;
+                       }
+               }
+               part {
+                       name: "pad_t";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.0;
+                               min: 0 32;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 1.0 0.0; to_x: "pad_l";
+                               }
+                               rel2 {
+                                       relative: 0.0 0.0; to_x: "pad_r";
+                               }
+                       }
+               }
+               part {
+                       name: "pad_l";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 26 0;
+                               max: 26 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to: "base";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to: "base";
+                               }
+                               align: 0.0 0.0;
+                       }
+               }
+               part {
+                       name: "pad_r";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 26 0;
+                               max: 26 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to: "base";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "base";
+                               }
+                               align: 1.0 0.0;
+                       }
+               }
+               part {
+                       name: "pad_b";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 1.0;
+                               min: 0 20;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "pad_l";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to_x: "pad_r";
+                               }
+                       }
+               }
+               part {
+                       name:"elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               fixed: 1 1;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to: "pad_t";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "pad_t";
+                               }
+                       }
+               }
+               part {
+                       name:"pad_after_content";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 9;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to: "elm.swallow.content";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "elm.swallow.content";
+                               }
+                       }
+               }
+               part {
+                       name:"elm.swallow.text";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to: "pad_after_content";
+                               }
+                               rel2 {
+                                       relative: 1.0 0.0;
+                                       to: "pad_b";
+                               }
+                       }
+               }
+       }
+}
+
+#define MSGC_POPUP_GENGRID_PORTRAIT_WIDTH 480
+#define MSGC_POPUP_GENGRID_PORTRAIT_HEIGHT_1LINE 203 // 18 (top padding) + 167 (1 item height) +18(bottom padding)
+#define MSGC_POPUP_GENGRID_PORTRAIT_HEIGHT_2LINE 370 // 18 (top padding) + (167 * 2) (2 items height) +18(bottom padding)
+#define MSGC_POPUP_GENGRID_PORTRAIT_HEIGHT_3LINE 537 // 18 (top padding) + (167 * 3) (3 items height) +18(bottom padding)
+
+#define MSGC_POPUP_GENGRID_LANDSCAPE_WIDTH 480
+#define MSGC_POPUP_GENGRID_LANDSCAPE_HEIGHT_1LINE 203 // 18 (top padding) + 167 (1 item height) +18(bottom padding)
+#define MSGC_POPUP_GENGRID_LANDSCAPE_HEIGHT_2LINE 422 // Core control has modified, this case use the max popup size. (422)
+#define MSGC_POPUP_GENGRID_LANDSCAPE_HEIGHT_3LINE 537 // 18 (top padding) + (167 * 3) (3 items height) +18(bottom padding)
+
+group {
+       name: "popup_gengrid_custom_portrait_1line";
+       parts {
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: MSGC_POPUP_GENGRID_PORTRAIT_WIDTH MSGC_POPUP_GENGRID_PORTRAIT_HEIGHT_1LINE;
+                               align: 0.5 0.5;
+                       }
+               }
+       }
+}
+
+group {
+       name: "popup_gengrid_custom_portrait_2line";
+       parts {
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: MSGC_POPUP_GENGRID_PORTRAIT_WIDTH MSGC_POPUP_GENGRID_PORTRAIT_HEIGHT_2LINE;
+                               align: 0.5 0.5;
+                       }
+               }
+       }
+}
+
+group {
+       name: "popup_gengrid_custom_portrait_3line";
+       parts {
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: MSGC_POPUP_GENGRID_PORTRAIT_WIDTH MSGC_POPUP_GENGRID_PORTRAIT_HEIGHT_3LINE;
+                               align: 0.5 0.5;
+                       }
+               }
+       }
+}
+
+group {
+       name: "popup_gengrid_custom_landscape_1line";
+       parts {
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: MSGC_POPUP_GENGRID_LANDSCAPE_WIDTH MSGC_POPUP_GENGRID_LANDSCAPE_HEIGHT_1LINE;
+                               align: 0.5 0.5;
+                       }
+               }
+       }
+}
+
+group {
+       name: "popup_gengrid_custom_landscape_2line";
+       parts {
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: MSGC_POPUP_GENGRID_LANDSCAPE_WIDTH MSGC_POPUP_GENGRID_LANDSCAPE_HEIGHT_2LINE;
+                               align: 0.5 0.5;
+                       }
+               }
+       }
+}
+
+group {
+       name: "popup_gengrid_custom_landscape_3line";
+       parts {
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: MSGC_POPUP_GENGRID_LANDSCAPE_WIDTH MSGC_POPUP_GENGRID_LANDSCAPE_HEIGHT_3LINE;
+                               align: 0.5 0.5;
+                       }
+               }
+       }
+}
diff --git a/composer/data/composer_edc/msg-ui-composer-data.edc b/composer/data/composer_edc/msg-ui-composer-data.edc
new file mode 100755 (executable)
index 0000000..067f220
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#define PADDING_LEFT(param_padding_name, param_padding_size) \
+       part \
+       { \
+               name: param_padding_name; \
+               type: SPACER; \
+               scale: 1; \
+               mouse_events:  0;\
+               description \
+               { \
+                       state: "default" 0.0; \
+                       min: param_padding_size 0; \
+                       fixed: 1 0; \
+                       rel1{relative: 0.0 0.0;} \
+                       rel2{relative: 0.0 1.0;} \
+                       align: 0.0 0.0; \
+               } \
+       }
+#define PADDING_TOP(param_padding_name, param_padding_size) \
+       part \
+       { \
+               name: param_padding_name; \
+               type: SPACER; \
+               scale: 1; \
+               mouse_events:  0;\
+               description \
+               { \
+                       state: "default" 0.0; \
+                       min: 0 param_padding_size ; \
+                       fixed: 0 1; \
+                       rel1{relative: 0.0 0.0;} \
+                       rel2{relative: 1.0 0.0;} \
+                       align: 0.0 0.0; \
+               } \
+       }
+#define PADDING_BOTTOM(param_padding_name, param_padding_size) \
+       part \
+       { \
+               name: param_padding_name; \
+               type: SPACER; \
+               scale: 1; \
+               mouse_events:  0;\
+               description \
+               { \
+                       state: "default" 0.0; \
+                       min: 0 param_padding_size; \
+                       fixed: 0 1; \
+                       rel1{relative: 0.0 1.0;} \
+                       rel2{relative: 1.0 1.0;} \
+                       align: 0.0 1.0; \
+               } \
+       }
+
+#define PADDING_RIGHT(param_padding_name, param_padding_size) \
+       part \
+       { \
+               name: param_padding_name; \
+               type: SPACER; \
+               scale: 1; \
+               mouse_events:  0;\
+               description \
+               { \
+                       state: "default" 0.0; \
+                       min: param_padding_size 0; \
+                       fixed: 1 0; \
+                       rel1{relative: 1.0 0.0;} \
+                       rel2{relative: 1.0 1.0;} \
+                       align: 1.0 0.0; \
+               } \
+       }
+#define PART_DISCLIP \
+       part \
+       { \
+               name: "disclip"; \
+               type: RECT; \
+               description \
+               { \
+                       state: "default" 0.0; \
+               } \
+               description \
+               { \
+                       state: "disabled" 0.0; \
+                       inherit: "default" 0.0; \
+                       color: 255 255 255 64; \
+               } \
+       }
+
diff --git a/composer/data/composer_edc/msg-ui-composer-main.edc b/composer/data/composer_edc/msg-ui-composer-main.edc
new file mode 100755 (executable)
index 0000000..73336f6
--- /dev/null
@@ -0,0 +1,360 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "../../../common/msg-ui-color.h"
+
+group
+{
+       name: "composer/content/full";
+       images {
+               image: "titlemenu_mask_left.png" COMP;
+               image: "titlemenu_mask_right.png" COMP;
+       }
+       parts {
+               part {
+                       name: "rect";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "swl.background.body";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               align: 0.5 0.0;
+                               rel1 { to: "swl.sel_all"; relative: 0.0 1.0; }
+                               rel2 { to: "rect"; relative: 1.0 1.0; }
+                               min: 0 940;
+                       }
+               }
+               part {
+                       name: "swl.composer.body";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 0;
+                               min: 0 1;
+                               align: 0.0 1.0;
+                               rel1 {to_y: "swl.recipient.rect"; relative: 0.0 1.0;}
+                               rel2 {to: "rect"; relative: 1.0 1.0;}
+                       }
+                       description {
+                               state: "default" 0.1;
+                               fixed: 1 1;
+                               min: 0 1;
+                               align: 0.0 1.0;
+                               rel1 {to: "rect"; relative: 0.0 1.0;}
+                               rel2 {to: "rect"; relative: 1.0 1.0;}
+                       }
+               }
+               part {
+                       name: "swl.recipient.rect";
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               min: 0 43;
+                               visible: 1;
+                               align: 0.0 0.0;
+                               rel1 {relative:0.0 0.0;}
+                               rel2 {relative:1.0 0.0;}
+                       }
+               }
+               part {
+                       name: "swl.bubble.content";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "bubble_clip";
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 1.0;
+                               rel1 {to: "rect.sel_all"; relative: 0.0 1.0;}
+                               rel2 {
+                                       to: "swl.composer.body";
+                                       relative: 1.0 0.0;
+                               }
+                       }
+               }
+               part {
+                       name: "swl.recipient";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 0 0;
+                               align: 0.0 0.0;
+                               rel1 {to: "rect"; relative:0.0 0.0;}
+                               rel2 {to: "rect"; relative:1.0 0.0;}
+                       }
+               }
+               part {
+                       name: "rect.sel_all";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 0 0;
+                               align: 0.0 0.0;
+                               rel1 {to: "rect"; relative:0.0 0.0;}
+                               rel2 {to: "rect"; relative:1.0 0.0;}
+                               color: 0 0 0 0;
+                       }
+                       description {
+                               state: "show_select_all" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 120;
+                       }
+               }
+               part {
+                       name: "swl.sel_all";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               align: 0.0 0.0;
+                               rel1 {to: "rect.sel_all"; relative:0.0 0.0;}
+                               rel2 {to: "rect.sel_all"; relative:1.0 1.0;}
+                       }
+               }
+               part {
+                       name: "easymode_predictsearch_positioning_above_buttons"; //used to position predict search above contact and recent buttons in easy mode
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 90;
+                               fixed: 0 1;
+                               rel1 {to: "swl.recipient.rect"; relative: 0.0 1.0;}
+                               rel2 {to: "swl.recipient.rect"; relative: 1.0 1.0;}
+                               align: 1.0 1.0;
+                       }
+               }
+               part {
+                       name: "swl.predictsearch";
+                       type: SWALLOW;
+                       scale: 1;
+                       //repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               rel1 {to: "swl.recipient.rect"; relative: 0.0 1.0;}
+                               rel2 {to: "swl.composer.body"; relative: 1.0 1.0;}
+                               align: 0.5 0.0;
+                               visible: 1;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "bubble_clip";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "swl.bubble.content";
+                               rel2.to: "swl.bubble.content";
+                               color: 0 0 0 0;
+                       }
+                       description {
+                               state: "clip_hide";
+                               inherit: "default" 0.0;
+                               color: 255 255 255 255;
+                       }
+               }
+               programs {
+                       program {
+                               name: "hide.predictsearch";
+                               signal: "hide.predictsearch";
+                               source: "*";
+                               action: STATE_SET "hide" 0.0;
+                               target: "swl.predictsearch";
+                       }
+                       program {
+                               name: "show.predictsearch";
+                               signal: "show.predictsearch";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "swl.predictsearch";
+                               target: "swl.recipient.rect";
+                       }
+                       program {
+                               name: "swl.recipient.rect.normal.mode";
+                               signal: "swl.recipient.rect.normal.mode";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "swl.recipient.rect";
+                       }
+                       program {
+                               name: "change.bubble";
+                               signal: "change.bubble";
+                               source: "*";
+                               action: STATE_SET "default" 0.1;
+                               target: "swl.composer.body";
+                       }
+                       program {
+                               name: "change.composer";
+                               signal: "change.composer";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "swl.composer.body";
+                       }
+                       program {
+                               name: "bubble_layout_clicked";
+                               source: "swl.bubble.content";
+                               signal: "mouse,clicked,1";
+                               action: SIGNAL_EMIT "bubble_layout,clicked" "";
+                       }
+                       program {
+                               name: "bubble_show";
+                               signal: "composer,bubble,show";
+                               source: "";
+                               action: STATE_SET "clip_hide" 0.0;
+                               target: "bubble_clip";
+                       }
+                       program {
+                               name: "show_select_all";
+                               signal: "show,select,all";
+                               source: "";
+                               action: STATE_SET "show_select_all" 0.0;
+                               target: "rect.sel_all";
+                       }
+                       program {
+                               name: "hide_select_all";
+                               signal: "hide,select,all";
+                               source: "";
+                               action: STATE_SET "default" 0.0;
+                               target: "rect.sel_all";
+                       }
+               }
+       }
+}
+
+group {
+       name: "composer/predictsearch/main";
+       images {
+               image: "titlemenu_mask_left.png" COMP;
+               image: "titlemenu_mask_right.png" COMP;
+       }
+
+       parts {
+               part {
+                       name: "rect";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                       }
+               }
+               PADDING_TOP("padding_top", 0);
+               PADDING_LEFT("padding_left", 0);
+               PADDING_RIGHT("padding_right", 0);
+               PADDING_BOTTOM("padding_bottom", 0);
+               part {
+                       name: "predict.titlemenu_bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 0;
+                               align: 0.0 0.0;
+                               rel1 { to_x: "padding_left"; to_y: "padding_top"; relative: 1.0 1.0; }
+                               rel2 { to_x: "padding_right"; to_y: "swl.predictsearch"; relative: 0.0 1.0;}
+                               color: 0 0 0 255;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "rect.predictsearch";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               min: 0 0;
+                               rel1 { to_x: "padding_left"; to_y: "padding_top"; relative: 1.0 1.0;}
+                               rel2 { to_x: "padding_right"; to_y: "padding_bottom"; relative: 0.0 0.0;}
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part {
+                       name: "swl.predictsearch";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               min: 0 0;
+                               rel1 { to_x: "padding_left"; to_y: "padding_top"; relative: 1.0 1.0; }
+                               rel2 { to_x: "padding_right"; to_y: "padding_top"; relative: 0.0 1.0; }
+                               align: 0.0 0.0;
+                       }
+               }
+#if 0
+               part {
+                       name: "predict.titlemenu_mask_left";
+                       type: IMAGE;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               fixed: 1 1;
+                               min: 8 11;
+                               max: 8 11;
+                               rel1 { to: "swl.predictsearch"; relative: 0.0 1.0; offset: 3 -3; }
+                               rel2 { to: "swl.predictsearch"; relative: 0.0 1.0; offset: 3 -3; }
+                               align: 0.0 1.0;
+                               image.normal: "titlemenu_mask_left.png";
+                       }
+               }
+               part {
+                       name: "predict.titlemenu_mask_right";
+                       type: IMAGE;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               fixed: 1 1;
+                               min: 8 11;
+                               max: 8 11;
+                               rel1 { to: "swl.predictsearch"; relative: 1.0 1.0; offset: -4 -3; }
+                               rel2 { to: "swl.predictsearch"; relative: 1.0 1.0; offset: -4 -3; }
+                               align: 1.0 1.0;
+                               image.normal: "titlemenu_mask_right.png";
+                       }
+               }
+#endif
+       }
+}
diff --git a/composer/data/composer_edc/msg-ui-composer-recipient.edc b/composer/data/composer_edc/msg-ui-composer-recipient.edc
new file mode 100755 (executable)
index 0000000..886764d
--- /dev/null
@@ -0,0 +1,324 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-composer-data.edc"
+
+/**************
+ * RECIPIENT
+ *************/
+#define CONTACT_BUTTON_SIZE 80 80
+
+/*
+ *     composer/recipient/to_field
+ */
+group {
+       name: "composer/recipient/to_field";
+       parts {
+               part {
+                       name: "rect";   //TODO : name should be changed
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               rel1.to: "swl.mbe_scroll";
+                               rel2.to: "img.recipient.main.bg";
+                       }
+                       description {
+                               state: "mbe_only" 0.0;
+                               inherit: "default";
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "clipper";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                       }
+               }
+
+               PADDING_TOP("padding_top", 0);
+               PADDING_LEFT("padding_left", 0);
+               PADDING_RIGHT("padding_right", 0);
+               PADDING_BOTTOM("padding_bottom", 0);
+               part {
+                       name: "swl.mbe_scroll.bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               rel1 { to: "swl.mbe_scroll";}
+                               rel2 { to: "swl.mbe_scroll";}
+                               color_class: "B0211";
+                       }
+               }
+               part {
+                       name: "swl.mbe_scroll";
+                       type: SWALLOW;
+                       scale: 1;
+                       clip_to: "clipper";
+                       description {
+                               state: "default" 0.0;   //when TO mbe is hidden
+                               fixed: 1 0;
+                               rel1 { to_x: "padding_left"; relative: 1.0 0.0; }
+                               rel2 { to_x: "padding_right"; relative: 0.0 0.0; }
+                               align: 0.0 1.0;
+                       }
+                       description {
+                               state: "default" 0.1;   //When TO mbe is shown
+                               fixed: 1 0;
+                               rel1 { to_x: "padding_left"; to_y: "padding_top"; relative: 1.0 1.0; }
+                               rel2 { to_x: "padding_right"; to_y: "padding_top"; relative: 0.0 1.0; }
+                               align: 0.0 0.0;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "img.recipient.main.bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               visible: 1;
+                               color_class: "B011";
+                               align: 0.0 0.0;
+                               rel1 { to_y: "swl.mbe_scroll"; relative: 0.0 1.0; }
+                               rel2 { to_y: "swl.mbe_scroll"; relative: 1.0 1.0; }
+                       }
+                       description {
+                               state: "mbe_only" 0.0;
+                               inherit: "default";
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "img.recipient.main.bg_color";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               rel1 { to: "img.recipient.main.bg";}
+                               rel2 { to: "img.recipient.main.bg";}
+                       }
+               }
+               part {
+                       name: "entry_padding_left";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 0;
+                               rel1{relative: 0.0 0.0; to: "img.recipient.main.bg";}
+                               rel2{relative: 0.0 1.0; to: "img.recipient.main.bg";}
+                               align: 0.0 0.0;
+                       }
+               }
+               part {
+                       name: "entry_padding_right";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               min: 17 0;
+                               fixed: 1 0;
+                               rel1{relative: 1.0 0.0; to: "img.recipient.main.bg";}
+                               rel2{relative: 1.0 1.0; to: "img.recipient.main.bg";}
+                               align: 1.0 0.0;
+                       }
+               }
+               part {
+                       name: "entry_padding_top";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               rel1{relative: 0.0 0.0; to: "img.recipient.main.bg";}
+                               rel2{relative: 1.0 0.0; to: "img.recipient.main.bg";}
+                               align: 0.0 0.0;
+                       }
+               }
+               part {
+                       name: "entry_padding_bottom";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 0 1;
+                               rel1{relative: 0.0 1.0; to: "img.recipient.main.bg";}
+                               rel2{relative: 1.0 1.0; to: "img.recipient.main.bg";}
+                               align: 0.0 1.0;
+                       }
+               }
+               part {
+                       name: "swl.entry";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 1;
+                               visible: 1;
+                               align: 0 0;
+                               rel1 { to_x: "entry_padding_left"; to_y: "entry_padding_top"; relative: 1.0 1.0; }
+                               rel2 { to_x: "contact_padding_left"; to_y: "entry_padding_bottom"; relative: 0.0 0.0; offset: 15 0; }
+                       }
+                       description {
+                               state: "with_invalid_icon" 0.0;
+                               inherit: "default" 0.0;
+                               rel1 { to_x: "entry_padding_left"; to_y: "entry_padding_top"; relative: 1.0 1.0;}
+                               rel2 { to_x: "swl.invalid_icon"; to_y: "entry_padding_bottom"; relative: 0.0 0.0; offset: 15 0; }
+                       }
+                       description {
+                               state: "mbe_only" 0.0;
+                               inherit: "default";
+                               min: 0 0;
+                       }
+               }
+               part {
+                       name: "swl.invalid_icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 30 30;
+                               max: 30 30;
+                               fixed: 1 1;
+                               rel1 { to: "contact_padding_left"; relative: 0.0 0.0;}
+                               rel2 { to: "contact_padding_left"; relative: 0.0 1.0;}
+                               align: 1.0 0.5;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "contact_padding_left";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events:  0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 0;
+                               fixed: 1 0;
+                               rel1{relative: 0.0 0.0; to: "rect.btn";}
+                               rel2{relative: 0.0 1.0; to: "rect.btn";}
+                               align: 1.0 0.0;
+                       }
+               }
+               part {
+                       name: "swl.contact_btn";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;   //show contact button
+                               min: 1 1;
+                               fixed: 1 1;
+                               visible: 1;
+                               rel1 { to: "rect.btn"; relative: 0.0 0.0; }
+                               rel2 { to: "rect.btn"; relative: 1.0 1.0; }
+                               align: 0.5 0.5;
+                       }
+                       description {
+                               state: "default" 0.1;   //hide contact button
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "rect.btn";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;   //hide prev button
+                               min: CONTACT_BUTTON_SIZE;
+                               max: CONTACT_BUTTON_SIZE;
+                               fixed: 1 1;
+                               rel1 { to_x: "entry_padding_right"; to_y: "swl.entry"; relative: 0.0 0.0; }
+                               rel2 { to_x: "entry_padding_right"; to_y: "swl.entry"; relative: 0.0 1.0; }
+                               align: 1.0 0.5;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "hide.ct_button";
+                       signal: "hide.ct_button";
+                       source: "*";
+                       action: STATE_SET "default" 0.1;
+                       target: "swl.mbe_scroll";
+                       target: "swl.contact_btn";
+               }
+               program {
+                       name: "show.ct_button";
+                       signal: "show.ct_button";
+                       source: "*";
+                       action: STATE_SET "default" 0.0;
+                       target: "swl.mbe_scroll";
+                       target: "swl.contact_btn";
+                       target: "rect";
+               }
+               program {
+                       name: "entry_with_invalid_icon";
+                       signal: "entry_with_invalid_icon";
+                       source: "*";
+                       action: STATE_SET "with_invalid_icon" 0.0;
+                       target: "swl.entry";
+               }
+               program {
+                       name: "entry_with_no_invalid_icon";
+                       signal: "entry_with_no_invalid_icon";
+                       source: "*";
+                       action: STATE_SET "default" 0.0;
+                       target: "swl.entry";
+               }
+               program {
+                       name: "show_to_mbe";
+                       signal: "show_to_mbe";
+                       source: "*";
+                       action: STATE_SET "default" 0.1;
+                       target: "swl.mbe_scroll";
+                       transition: LINEAR  0.3;
+               }
+               program {
+                       name: "hide_to_mbe";
+                       signal: "hide_to_mbe";
+                       source: "*";
+                       action: STATE_SET "default" 0.0;
+                       target: "swl.mbe_scroll";
+                       transition: LINEAR  0.3;
+               }
+               program {
+                       name: "mbe_only";
+                       signal: "mbe_only";
+                       source: "*";
+                       action: STATE_SET "mbe_only" 0.0;
+                       target: "rect";
+                       target: "img.recipient.main.bg";
+                       target: "swl.entry";
+               }
+       }
+}
+
diff --git a/composer/data/composer_edc/msg-ui-composer-subject.edc b/composer/data/composer_edc/msg-ui-composer-subject.edc
new file mode 100755 (executable)
index 0000000..41eb0b8
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.
+ *
+ */
+
+/************************
+ * subject
+ **********************/
+
+#include "../../../common/msg-ui-color.h"
+
+#define MSG_COMPOSER_SUBJECT_H 64
+#define MSG_COMPOSER_SUBJECT_FIELD_H 44
+
+group {
+       name: "composer/subject/main";
+       parts {
+               part {
+                       name: "rect";
+                       type: SPACER;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 MSG_COMPOSER_SUBJECT_H;
+                               fixed: 1 1;
+                       }
+               }
+               PADDING_TOP("padding_top", 11);
+               PADDING_LEFT("padding_left", 20);
+               PADDING_RIGHT("padding_right", 20);
+               PADDING_BOTTOM("padding_bottom", 11);
+               PADDING_TOP("padding_entry_top", 14); //11+3
+               PADDING_LEFT("padding_entry_left", 16); //8+8
+               PADDING_RIGHT("padding_entry_right", 22); //14+8
+               PADDING_BOTTOM("padding_entry_bottom", 14); //11+3
+               part {
+                       name: "main.bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               visible: 1;
+                               color: BUBBLE_NAVI_TITLE_COLOR;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+               part {
+                       name: "border_line";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               color_class: "B0211";
+                               visible: 1;
+                               min : 0 1;
+                               rel1 { to: "main.bg"; relative: 0.0 1.0; }
+                               rel2 { to: "main.bg"; relative: 1.0 1.0; }
+                               align: 0.0 1.0;
+                       }
+               }
+               part {
+                       name: "swl.entry";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 MSG_COMPOSER_SUBJECT_FIELD_H;
+                               fixed: 1 0;
+                               rel1 { to_x: "padding_left"; to_y: "padding_top"; relative: 1.0 1.0; }
+                               rel2 { to_x: "padding_right"; to_y: "padding_bottom"; relative: 0.0 0.0; }
+                       }
+               }
+       }
+}
+
diff --git a/composer/include/msg-ui-composer-attachment.h b/composer/include/msg-ui-composer-attachment.h
new file mode 100755 (executable)
index 0000000..35e961b
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_ATTACHMENT_H_
+#define __MSG_UI_COMPOSER_ATTACHMENT_H_
+
+#include "msg-ui-composer-data.h"
+
+int64 msg_ui_composer_get_attached_item_size(void *data);
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_add_attach_media(MSG_COMPOSER_VIEW_DATA_S *cd,
+                                                                                                                                       const char *filepath,
+                                                                                                                                       COMPOSER_MEDIA_TYPE_E media_type);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_read_attachments(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_attachment_set_loaded_data(void *data, const char *filepath, int filetype);
+
+void msg_ui_composer_attachment_clear(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msgc_attachment_main_layout_access_object_clicked_cb(void *data, Evas_Object *part_obj, Elm_Object_Item *item);
+void msg_ui_composer_expand_attach_list(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_hide_attach_focus(MSG_COMPOSER_VIEW_DATA_S *cd);
+int msg_ui_composer_get_attach_count(MSG_COMPOSER_VIEW_DATA_S *cd);
+char *msg_ui_composer_get_attach_filename_by_index(MSG_COMPOSER_VIEW_DATA_S *cd, int index);
+
+#endif /*__MSG_UI_COMPOSER_ATTACHMENT_H_*/
diff --git a/composer/include/msg-ui-composer-body-callback.h b/composer/include/msg-ui-composer-body-callback.h
new file mode 100755 (executable)
index 0000000..46a7345
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef MSG_UI_COMPOSER_BODY_CALLBACK_H_
+#define MSG_UI_COMPOSER_BODY_CALLBACK_H_
+
+#include <Elementary.h>
+
+void msg_ui_composer_body_send_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_add_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_add_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_add_btn_unpressed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_entry_cursor_changed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_entry_focused_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_entry_press_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_entry_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_entry_maxlength_reached_cb(void *data, Evas_Object *obj, void *event_info);
+
+void msg_ui_composer_body_ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *event_info);
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+void msg_ui_composer_input_field_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_composer_key_down_cb (void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_composer_key_up_cb (void *data, Evas *e, Evas_Object *obj, void *event_info);
+#endif
+Evas_Event_Flags msg_ui_composer_body_media_longpress_s_cb(void *data, void *event_info);
+Evas_Event_Flags msg_ui_composer_body_media_longpress_m_cb(void *data, void *event_info);
+void msg_ui_composer_body_media_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_media_btn_focused_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_media_btn_unfocused_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_media_btn_unpressed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_media_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_body_create_replace_grid_popup(void *data, COMPOSER_MEDIA_TYPE_E type);
+
+void msg_ui_composer_body_body_layout_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_composer_page_main_layout_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+
+void msg_ui_attach_panel_result_cb(attach_panel_h attach_panel,
+               attach_panel_content_category_e content_category,
+               app_control_h result,
+               app_control_result_e result_code,
+               void *user_data);
+
+#endif /* MSG_UI_COMPOSER_BODY_CALLBACK_H_ */
diff --git a/composer/include/msg-ui-composer-body-page.h b/composer/include/msg-ui-composer-body-page.h
new file mode 100644 (file)
index 0000000..560bbfd
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_BODY_PAGE_H_
+#define __MSG_UI_COMPOSER_BODY_PAGE_H_
+
+/* includes*/
+#include "msg-ui-composer-data.h"
+#include <Elementary.h>
+
+/* defines*/
+
+/* enum types*/
+
+/* structures*/
+
+/* function prototypes*/
+Evas_Object *msg_ui_composer_body_page_create(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent);
+Evas_Object *msg_ui_composer_body_sms_page_create(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent);
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_read_sms_body(MSG_COMPOSER_VIEW_DATA_S *cd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_read_mms_body(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_add_page(MSG_COMPOSER_VIEW_DATA_S *cd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_insert_media(MSG_COMPOSER_VIEW_DATA_S *cd, const char *file_path, COMPOSER_MEDIA_TYPE_E media_type);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_mms_insert_item_remove(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *remove_item);
+
+int msg_ui_composer_get_inserted_item_size(MSG_COMPOSER_VIEW_DATA_S *cd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_sms_body_clear(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_mms_body_clear(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_mms_body_remove_page(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *remove_page, bool clear_body);
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_update_char_count(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object* entry);
+int msg_ui_composer_body_entry_char_count(void *data, const char *text, int encode, int *char_count, int *page_size);
+void msg_ui_composer_body_info_area_update(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+void msg_ui_composer_body_apply_font_size(MSG_COMPOSER_VIEW_DATA_S *cd, const char *font_sytle);
+
+void msg_ui_composer_body_focus_set(MSG_COMPOSER_VIEW_DATA_S *cd, int nPage);
+Evas_Object *msg_ui_composer_body_get_page_entry(MSG_COMPOSER_VIEW_DATA_S *cd, int nPage);
+MSG_COMPOSER_BODY_PAGE_S *msg_ui_composer_body_get_page_by_content(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *obj);
+bool msg_ui_composer_body_get_focused_page_index(MSG_COMPOSER_VIEW_DATA_S *cd, int *page_index);
+bool msg_ui_composer_body_get_page_index(MSG_COMPOSER_VIEW_DATA_S *cd, MSG_COMPOSER_BODY_PAGE_S *page, int *page_index);
+MSG_COMPOSER_BODY_PAGE_S *msg_ui_composer_body_get_page_by_index(MSG_COMPOSER_VIEW_DATA_S *cd, int page_index);
+bool msg_ui_composer_body_is_page_data(MSG_COMPOSER_BODY_PAGE_S *page);
+
+void msg_ui_composer_body_page_image_layout_focus_hide(MSG_COMPOSER_BODY_PAGE_S *page_data);
+void msg_ui_composer_body_page_image_layout_focus_show(MSG_COMPOSER_BODY_PAGE_S *page_data);
+void msg_ui_composer_body_page_sound_layout_focus_hide(MSG_COMPOSER_BODY_PAGE_S *page_data);
+void msg_ui_composer_body_page_sound_layout_focus_show(MSG_COMPOSER_BODY_PAGE_S *page_data);
+void msg_ui_composer_body_media_layout_focus_hide(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_MEDIA_HIDE_TYPE_E type, int page_index);
+void msg_ui_composer_body_update_page_divider(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_body_backspace_image_layout_focus_show(MSG_COMPOSER_VIEW_DATA_S *cd, MSG_COMPOSER_BODY_PAGE_S *page_data);
+void msg_ui_composer_body_backspace_sound_layout_focus_show(MSG_COMPOSER_VIEW_DATA_S *cd, MSG_COMPOSER_BODY_PAGE_S *page_data);
+void msg_ui_composer_body_remove_cur_page(void *data, MSG_COMPOSER_BODY_PAGE_S *page_data, int page_index);
+void msg_ui_composer_back_space_remove_page(void *data, MSG_COMPOSER_BODY_PAGE_S *page_data);
+
+#endif                         /* __MSG_UI_COMPOSER_BODY_PAGE_H_ */
diff --git a/composer/include/msg-ui-composer-body.h b/composer/include/msg-ui-composer-body.h
new file mode 100755 (executable)
index 0000000..c36841f
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_BODY_H_
+#define __MSG_UI_COMPOSER_BODY_H_
+
+/* includes*/
+#include "msg-ui-composer-data.h"
+#include "msg-ui-composer-body-page.h"
+#include <Elementary.h>
+#include <attach_panel.h>
+
+/* defines*/
+#define COMPOSER_FRAME_BODY_LANDSCAPE_HEIGHT_MIN (88)
+
+#define COMPOSER_BODY_DEFAULT_H        (236)
+
+#define COMPOSER_RESIZE_LOOP_MAX (3)
+
+#define SEND_CHECK_EXCEPTION_TYPE_NONE 0x00
+#define SEND_CHECK_EXCEPTION_TYPE_ENCODING_MODE        0x10
+
+/* enum types*/
+typedef enum {
+       COMPOSER_THREAD_STATUS_UNKNOWN = 0,
+       COMPOSER_THREAD_STATUS_RESIZE,
+       COMPOSER_THREAD_STATUS_RESIZE_SUCCESS,
+       COMPOSER_THREAD_STATUS_RESIZE_FAIL,
+       COMPOSER_THREAD_STATUS_SUCCESS,
+       COMPOSER_THREAD_STATUS_FAIL
+} COMPOSER_THREAD_STATUS_E;
+
+/* structures*/
+typedef struct _msg_ui_thread_data_s {
+       MSG_COMPOSER_VIEW_DATA_S *cd;
+       int fail_count;
+       COMPOSER_THREAD_STATUS_E status;
+       int64 wishsize;
+       int creation_mode;
+       char filepath[DEF_BUF_LEN_L];
+       int rotation;
+       int win_height;
+       int win_width;
+} COMPOSER_THREAD_DATA_S;
+
+/* function prototypes*/
+Evas_Object *msg_ui_composer_create_body(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent);
+
+Evas_Object *msg_ui_composer_body_create_body_main_layout(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent);
+Evas_Object *msg_ui_composer_body_create_input_field_layout(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent);
+
+void msg_ui_composer_body_delete(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_body_clear(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_items_add(MSG_COMPOSER_VIEW_DATA_S *cd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_item_add(MSG_COMPOSER_VIEW_DATA_S *cd, const char *item_path);
+Evas_Object* msg_ui_create_popup(Evas_Object *parent, MSG_COMPOSER_VIEW_DATA_S *cd, const char* message_id, Evas_Smart_Cb on_ok);
+
+void msg_ui_composer_change_body_layout_mode(MSG_COMPOSER_VIEW_DATA_S *cd, int rotate);
+bool msg_ui_composer_body_has_body_data(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_read_preview_message(MSG_COMPOSER_VIEW_DATA_S *cd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_set_loaded_media(MSG_COMPOSER_VIEW_DATA_S *pcomp_data, char *filepath, int filetype, int nPage);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_set_loaded_text(MSG_COMPOSER_VIEW_DATA_S *pcomp_data, const char *body_text, int nPage);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_set_loaded_page_duration(MSG_COMPOSER_VIEW_DATA_S *pcomp_data, int duration, int nPage);
+
+COMPOSER_TEXT_IS_SMS_CHAR_E msg_ui_composer_is_sms_text(MSG_COMPOSER_VIEW_DATA_S *cd, char *body_text, int *over_char_cnt);
+Eina_Bool msg_ui_composer_body_is_mms(MSG_COMPOSER_VIEW_DATA_S *cd);
+bool msg_ui_composer_body_has_media(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_get_message_size(MSG_COMPOSER_VIEW_DATA_S *cd, int64 *size);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_read_data(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_send_btn_disabled_set(MSG_COMPOSER_VIEW_DATA_S *cd, Eina_Bool disable);
+void msg_ui_composer_body_update_send_btn_icon(MSG_COMPOSER_VIEW_DATA_S *cd, bool disable);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_check_is_text_top(msg_struct_t region_0, msg_struct_t region_1, bool *is_text_top);
+void msg_ui_composer_body_change_region_order(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_MMS_REGION_ORDER_E order);
+
+void msg_ui_composer_body_show_ctx_popup(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+void msg_ui_composer_body_make_and_send_message(void *data, int check_exception_type);
+void msgi_ui_composer_body_send_message(MSG_COMPOSER_VIEW_DATA_S *cData);
+
+void msg_ui_composer_create_text_templates_popup(void *data);
+void msg_ui_composer_create_select_layout_popup(void *data);
+
+/**
+ * Shows more-menu popup related to actions allowed to attachment in message-body area. Only "remove" action is currently available.
+ * @param cd a Composer-view data structure
+ * @param on_remove a callback that will be called when user tap on "Remove" menu-item
+ * @param layout a layout-object popup will be based on, passed as user-data into on_remove
+ * */
+void msg_ui_composer_create_media_option_popup(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Smart_Cb on_remove, Evas_Object *content);
+
+void msg_ui_composer_body_input_field_focus_set(void *data, bool value);
+bool msg_ui_composer_body_input_field_focus_get(void *data);
+
+void msg_ui_destroy_attach_panel(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_hide_attach_panel(MSG_COMPOSER_VIEW_DATA_S *cd);
+attach_panel_h msg_ui_show_attach_panel(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+#endif/*__MSG_UI_COMPOSER_BODY_H_*/
diff --git a/composer/include/msg-ui-composer-bubble.h b/composer/include/msg-ui-composer-bubble.h
new file mode 100755 (executable)
index 0000000..e66831d
--- /dev/null
@@ -0,0 +1,459 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_BUBBLE_H__
+#define __MSG_UI_COMPOSER_BUBBLE_H__
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <glib.h>
+
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+
+#include <libintl.h>
+#include <bundle.h>
+#include <Ecore.h>
+#include <Elementary.h>
+#include <ui-gadget-module.h>
+#include <time.h>
+
+#include "msg-ui-util.h"
+#include "msg-ui-common-utility.h"
+
+#include <contacts.h>
+
+#define MSG_BUBBLE_SDCARD_DIR  "/opt/storage/sdcard"
+#define MSG_BUBBLE_SDCARD_PARENT_DIR   MSG_BUBBLE_SDCARD_DIR"/.."
+#define MSG_BUBBLE_EXPORT_SD_DIR       MSG_BUBBLE_SDCARD_DIR"/message"
+#define MSG_BUBBLE_EXPORT_DEVICE_DIR   "/opt/usr/media/message"
+#define MSG_BUBBLE_DOWNLOAD_DIR        "/opt/usr/media/Downloads"
+
+/* STYLE for genlist and entry */
+
+#define MSG_BUBBLE_CONTROLBAR_ITEM_NUM (4)
+#define MSG_BUBBLE_DELETE_NOTI_TIME (1.5)
+
+#define MSG_BUBBLE_POPUP_LIST_MAX_MENU (6)
+#define MSG_BUBBLE_POPUP_LIST_LANDSCAPE_MAX (2.5)
+#define MSG_BUBBLE_POPUP_LIST_1LINE_HEIGHT 96
+
+#define MSG_BUBBLE_BLOCK_COUNT         (20)
+#define MSG_BUBBLE_SCREEN_HEIGHT (800)
+#define MSG_BUBBLE_LOADING_HEIGHT      (MSG_BUBBLE_SCREEN_HEIGHT)
+#define MSG_BUBBLE_LONGPRESS_TIME (0.5)
+
+/* Temporarily it is added becase of build error. If dynamic addr_info count is supported, it should be removed */
+#ifndef COMPOSER_TO_ADDRESS_CNT_MAX
+#define COMPOSER_TO_ADDRESS_CNT_MAX (20)
+#endif
+
+#define MSG_BUBBLE_COMPOSER_ZOOM_COUNT_FILTER 20
+
+#define MULTIPART_FILEPATH_MAX_LEN     1024
+
+#define TITLE_CT_THUMBNAIL_WIDTH_HEIGHT 66
+
+typedef enum {
+       BUBBLE_NORMAL_VIEW = 0,
+       BUBBLE_EDIT_VIEW,
+       BUBBLE_RECIPIENT_VIEW,
+       BUBBLE_UNLOAD_VIEW,
+} BubbleViewMode;
+
+typedef enum {
+       BUBBLE_UG_START = 0,
+       BUBBLE_UG_PAUSE,
+       BUBBLE_UG_RESUME,
+       BUBBLE_UG_DESTROY,
+} BubbleUGState;
+
+typedef enum {
+       SCROLL_DEFAULT = 0,
+       SCROLL_FOCUS_IN,
+       SCROLL_FOCUS_OUT,
+       SCROLL_FOCUS_OTHER,
+} BubbleScrollFocus;
+
+typedef enum {
+       MSG_BOX_PACK_START = 0,
+       MSG_BOX_PACK_END,
+       MSG_BOX_PACK_BEFORE,
+       MSG_BOX_PACK_AFTER,
+} MsgBoxPackType;
+
+typedef enum {
+       BUBBLE_BACKUP_TYPE_NONE = 0,
+       BUBBLE_BACKUP_TYPE_SD,
+       BUBBLE_BACKUP_TYPE_DEVICE_MEMORY,
+       BUBBLE_BACKUP_TYPE_EMAIL,
+} BubbleBackupType;
+
+typedef enum {
+       BUBBLE_PACKED_LAYOUT_NONE = 0,
+       BUBBLE_PACKED_LAYOUT_DATELINE,
+       BUBBLE_PACKED_LAYOUT_BUBBLE,
+} BubblePackedLayoutType;
+
+typedef enum {
+       BUBBLE_TITLE_BUTTON_NONE = 0,
+       BUBBLE_TITLE_BUTTON_1,
+       BUBBLE_TITLE_BUTTON_2,
+} BubbleTieleButtonType;
+
+typedef enum {
+       BUBBLE_POPUP_NONE = 0,
+       BUBBLE_POPUP_BACKUP_PROGRESS,
+       BUBBLE_POPUP_ADD_TO_CONTACT_SINGLE,
+       BUBBLE_POPUP_EDIT,
+       BUBBLE_POPUP_RESEND,
+       BUBBLE_POPUP_DELETE,
+       BUBBLE_POPUP_DELETE_CONFIRM,
+       BUBBLE_POPUP_SEND_NOW,
+       BUBBLE_POPUP_CANCEL_MESSAGE,
+       BUBBLE_POPUP_VIEW_MESSAGE_DETAIL,
+       BUBBLE_POPUP_NOTIFY,
+       BUBBLE_POPUP_NOTIFY_WITH_BUTTON,
+       BUBBLE_POPUP_NOTIFY_WITH_PROGRESS,
+       BUBBLE_POPUP_BLOCK,
+       BUBBLE_POPUP_FORWARD_RESTRICTED,
+
+       BUBBLE_POPUP_LONGPRESS_MENU_LIST,
+       BUBBLE_POPUP_CUTLINK_MENU_LIST,
+       BUBBLE_POPUP_BACKUP_MENU_LIST,
+       BUBBLE_POPUP_ADD_TO_CONTACT_MULTI_LIST,
+       BUBBLE_POPUP_SAVE_ATTACHMENT_LIST,
+       BUBBLE_POPUP_RESEND_CONFIRM,
+       BUBBLE_POPUP_SIM_SELECTION,
+       BUBBLE_POPUP_ADD_TAG,
+       BUBBLE_POPUP_NETWORK_SWITCH,
+       BUBBLE_POPUP_ADD_TO_BLOCK_LIST,
+
+       BUBBLE_POPUP_MAX,
+} BubblePopupType;
+
+typedef enum {
+       MEDIA_INVALID = 0,
+       MEDIA_TEXT,
+       MEDIA_IMG,
+       MEDIA_AUDIO,
+       MEDIA_VIDEO,
+       MEDIA_ANIMATE,
+       MEDIA_IMG_OR_VIDEO,
+       MEDIA_ATTACH,
+       MEDIA_DRM,
+} MMS_MEDIA_TYPE_E;
+
+typedef struct {
+       BubblePackedLayoutType layout_type;
+       Evas_Object *layout;
+       void *data;     /** for bubble info data */
+       Evas_Object *access_object;
+} BUBBLE_PACKED_INFO, *PBUBBLE_PACKED_INFO;
+
+typedef struct {
+       char address[DEF_THREAD_ADDR_LEN+1];
+}BUBBLE_ADDRESS_INFO;
+
+typedef struct {
+       int media_type;
+       int file_size;
+       char filepath[DEF_IMG_PATH_LEN+1];
+       char filename[DEF_IMG_PATH_LEN+1];
+
+       Evas_Object *check;
+}BUBBLE_MEDIA_INFO, *PBUBBLE_MEDIA_INFO;
+
+typedef struct {
+       int addr_cnt;
+       BUBBLE_ADDRESS_INFO addr_info[COMPOSER_TO_ADDRESS_CNT_MAX];
+}BUBBLE_ADDRESS_LIST;
+
+typedef struct _MSG_BUBBLE_DATA {
+       Evas_Object *layout_main;
+       Evas_Object *scrl;
+       Evas_Object *box;
+
+       BubbleViewMode viewmode;
+       BubbleUGState ug_state;
+       bool reply_mode;
+       bool isRotate;
+       bool isFirstLoading;
+       bool contact_changed;
+       bool bubble_from_contact;
+       bool mouse_down_flag;
+       bool back_to_normal;
+       bool multipart_clicked;
+
+       Evas_Object *parent_layout;
+       Evas_Object *bubble_layout;
+       Evas_Object *last_tts_object;
+       Evas_Object *first_tts_object;
+       Eina_Bool title_button_exist;
+       Evas_Object *title_genlist;
+       Evas_Object *recipient_genlist;
+       Evas_Object *noc_ly;
+       Evas_Object *done_button;
+
+       Evas_Object *popup;
+       Evas_Object *progress_popup;
+       Evas_Object *progressbar;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       Evas_Object *popup_genlist;
+       Evas_Object *save_button;
+#endif
+       Evas_Object *select_info;
+       Evas_Object *selectioninfo_layout;
+
+       Eina_List *bubble_list;
+       Eina_List *chk_list;
+       Eina_List *added_list;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       Eina_List *media_list;
+#endif
+       Eina_List *packed_list;
+
+       Elm_Genlist_Item_Class itc_title;
+       Elm_Genlist_Item_Class itc_title_single;
+       Elm_Genlist_Item_Class itc_cutlink_popup;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       Elm_Genlist_Item_Class itc_popup_selall;
+#endif
+       Elm_Genlist_Item_Class failed_icon_list_itc;
+
+       Elm_Theme *bubble_theme;
+       PMSG_COMMON_BUBBLE_TIME_S time_info;
+
+       Ecore_Idler *resend_idler;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       Ecore_Idler *retrieve_idler;
+#endif
+       Ecore_Thread *del_thread;
+       Ecore_Timer *del_result_timer;
+       Ecore_Idler *del_result_idler;
+       Ecore_Idler *loading_idler;
+
+       pthread_t update_read_status_thread;
+       Ecore_Thread *backup_thread;
+       Ecore_Timer *scroll_timer;
+       Ecore_Timer *backup_result_timer;
+       Ecore_Timer *longpress_timer;
+
+       Ecore_Event_Handler *press_down_handler;
+       Ecore_Event_Handler *press_up_handler;
+       Ecore_Event_Handler *toudh_down_handler;
+       Ecore_Event_Handler *toudh_up_handler;
+
+       msg_struct_list_s *conv_list;
+       msg_handle_t msgHandle;
+       msg_thread_id_t threadId;
+       BUBBLE_ADDRESS_LIST addr_list;
+       char backupPath[DEF_BUF_LEN+1];
+       char search_word[DEF_BUF_LEN_S];
+       char *bundle_body_data;         // for BODY data from app service caller
+
+       int bubble_count;
+       int region_show_id;
+       int added_count;
+       int popup_type;
+       int list_popup_item_count;
+       bool isDraft;
+       bool del_cancel;
+       bool backup_cancel;
+       int motion_active;
+       int enable_directcall;
+       bool call_option_enabled;
+
+       int copy_id;
+       int resend_id;
+       int resend_msg_type;            /*This is added to check the message type of resend message . Since right now we have common function for sending message , we need to know the
+       message type while sending , sending can be done from bubble composer , full composer and viewer .*/
+       int search_id;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       int retrieve_id;
+       int media_chk_cnt;
+       int media_count;
+#endif
+       int send_now_id;
+       int draft_msg_id;
+       int add_recp_id;
+       int check_cnt;
+       int del_index;
+       int backup_type;
+       void *callback_data;
+
+       int recv_bubble_style;
+       int sent_bubble_style;
+       int background_style;
+       bool bubble_style_changed;
+       bool is_bubble_update;
+
+       Elm_Genlist_Item_Class sim_list_itc; /* Genlist item class for Sim List */
+
+       int msg_type;
+} MSG_BUBBLE_DATA, *PMSG_BUBBLE_DATA;
+
+typedef enum {
+        SIM_LIST_SEND_VIA_SIM1,
+        SIM_LIST_SEND_VIA_SIM2,
+} sim_list_e1;
+
+typedef struct _MSG_DATA_SWITCH_DATA {
+       PMSG_BUBBLE_DATA bubble_data;
+       PMSG_COMMON_BUBBLE_INFO_S item_data;
+} MSG_DATA_SWITCH_DATA;
+typedef struct {
+       MMS_MEDIA_TYPE_E media_type;
+       Evas_Object     *layout;
+
+       char pfile_name[MSG_FILENAME_LEN_MAX + 1];
+       char pfile_path[MSG_FILEPATH_LEN_MAX + 1];
+       char pthumb_file_path[MSG_FILEPATH_LEN_MAX + 1];
+       char regionID[MAX_SMIL_REGION_ID + 1];
+       char contentID[MSG_MSG_ID_LEN + 1];
+       char contentLocation[MSG_MSG_ID_LEN + 1];
+
+       int pfile_size;         /* dummy */
+       int media_index;        /* dummy */
+       int page_index;         /* dummy */
+       int total_count;        /* dummy */
+       Evas_Object *obj;       /* dummy */
+       void *userdata;         /* dummy */
+
+       bool mouse_down_flag;
+} BUBBLE_MMS_MULTIPART_MEDIA_S;
+
+/* FUNCTIONS */
+void msg_ui_bubble_add_to_contact_list_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_bubble_update_contact_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+PMSG_BUBBLE_DATA msg_ui_bubble_init_bubble_data(msg_handle_t msgHandle, void *callback_data);
+void msg_ui_bubble_deinit_bubble_data(void *data);
+
+void msg_ui_bubble_parse_bubble_data(PMSG_BUBBLE_DATA bubble_data, app_control_h svc_handle);
+void msg_ui_bubble_start_bubble_list(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_init_bubble_list(PMSG_BUBBLE_DATA bubble_data);
+
+Evas_Object *msg_ui_bubble_create_view(Evas_Object *parent, void *user_data);
+void msg_ui_bubble_start_view(PMSG_BUBBLE_DATA bubble_data);
+
+void msg_ui_bubble_reg_bubble_cb_func(PMSG_BUBBLE_DATA pData);
+void msg_ui_bubble_resend_msg(PMSG_BUBBLE_DATA bubble_data, int msg_id);
+void msg_ui_bubble_cancel_msg(void *data, msg_message_id_t msg_id);
+void msg_ui_bubble_rotate_bubbles(PMSG_BUBBLE_DATA bubble_data, int rotation);
+void msg_ui_bubble_list_load(PMSG_BUBBLE_DATA bubble_data, bool bload_draft);
+void msg_ui_bubble_list_data_update(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_item_data_update(msg_handle_t msg_handle, PMSG_BUBBLE_DATA bubble_data, msg_struct_t msg);
+void msg_ui_bubble_list_date_update(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_list_append(PMSG_BUBBLE_DATA bubble_data, msg_struct_t msg);
+void msg_ui_bubble_list_add(msg_handle_t msg_handle, PMSG_BUBBLE_DATA bubble_data, msg_struct_t msg);
+void msg_ui_bubble_list_item_move(msg_handle_t msg_handle, PMSG_BUBBLE_DATA bubble_data, msg_struct_t msg);
+void msg_ui_bubble_list_item_remove(PMSG_BUBBLE_DATA bubble_data, int msg_id);
+void msg_ui_bubble_clear_packed_list(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_update_bubble(PMSG_BUBBLE_DATA bubble_data, PMSG_COMMON_BUBBLE_INFO_S conv_data);
+
+void msg_ui_bubble_change_normal_navi_control(PMSG_BUBBLE_DATA pData);
+void msg_ui_bubble_title_button_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+void msg_ui_bubble_down_button_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+Evas_Object *msg_ui_bubble_create_toolbar(void *user_data);
+
+void msg_ui_bubble_contact_changed_cb(const char *view_uri, void *user_data);
+void msg_ui_bubble_contact_display_order_changed_cb(contacts_name_display_order_e name_display_order, void* user_data);
+void msg_ui_bubble_msg_storage_change_cb(msg_handle_t handle, msg_storage_change_type_t type, msg_id_list_s *pMsgIdList, void *user_param);
+void msg_ui_bubble_more_delete_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_bubble_add_recipient_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_bubble_view_contact_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_bubble_add_to_contact_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_bubble_backup_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
+Eina_Bool msg_ui_bubble_key_press_up_cb(void *data, int type, void *event);
+Eina_Bool msg_ui_bubble_key_press_down_cb(void *data, int type, void *event);
+
+void msg_ui_bubble_ctlbar_call_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_bubble_ctlbar_delete_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_bubble_ctlbar_forward_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_bubble_ctlbar_move_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_bubble_ctlbar_cancel(void *data);
+void msg_ui_bubble_sel_all_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_bubble_item_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_bubble_item_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_bubble_list_checked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_bubble_timezone_change_cb(system_settings_key_e key, void *user_data);
+void msg_ui_bubble_motion_setting_changed_cb(system_settings_key_e key, void *user_data);
+void msg_ui_bubble_main_layout_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+
+void msg_ui_bubble_change_composer_view(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_launch_voice_call(void *data, const char *call_num, bool isDirect_call);
+
+char *msg_ui_bubble_get_trimmed_number(const char *org_num);
+void msg_ui_bubble_launch_add_to_contact_ug(PMSG_BUBBLE_DATA pData);
+void msg_ui_bubble_launch_contact_list_ug(PMSG_BUBBLE_DATA pData, int type, const char *str);
+void msg_ui_bubble_launch_contact_detail_ug(PMSG_BUBBLE_DATA pData, int ct_id);
+void msg_ui_bubble_show_notify_with_button(PMSG_BUBBLE_DATA bubbleData, char *package_str, char *msg);
+void msg_ui_bubble_show_notify(PMSG_BUBBLE_DATA bubbleData, char *package_str, char *msg);
+void msg_ui_popup_close_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+Evas_Object* msg_ui_bubble_show_notify_with_progressbar(PMSG_BUBBLE_DATA pData, int count);
+
+void msg_ui_bubble_show_select_info(PMSG_BUBBLE_DATA pData);
+void msg_ui_bubble_show_deleted_info(PMSG_BUBBLE_DATA pData);
+void msg_ui_bubble_status_message_post(PMSG_BUBBLE_DATA pData, char *msg);
+void msg_ui_bubble_contact_info_update(PMSG_BUBBLE_DATA pData);
+void msg_ui_bubble_get_time_format(PMSG_BUBBLE_DATA pData);
+void msg_ui_bubble_get_locale(PMSG_BUBBLE_DATA pData);
+
+bool msg_ui_bubble_check_mmc_status(void);
+char *msg_ui_bubble_create_export_folder_name(void);
+char *msg_ui_bubble_create_export_file_name(void);
+char *msg_ui_bubble_create_export_folder(PMSG_BUBBLE_DATA pData, const char* folder_name);
+char *msg_ui_bubble_create_export_string(PMSG_BUBBLE_DATA pData, msg_struct_t msg);
+
+void msg_ui_bubble_draw_load_bubbles(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_scroller_show_latest(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_list_size_change(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_scroller_show_search_msg(PMSG_BUBBLE_DATA bubble_data, Evas_Object *layout);
+
+bool msg_is_sms(int msg_type);
+bool msg_is_mms(int msg_type);
+
+void msg_ui_bubble_list_popup_size_min_set(void *data);
+Evas_Object *msg_ui_bubble_create_popup(PMSG_BUBBLE_DATA bubble_data, bool need_dismiss_cb);
+Evas_Object *msg_ui_bubble_create_add_to_contact_popup(PMSG_BUBBLE_DATA bubble_data, const char *address);
+void msg_ui_bubble_destroy_popup(PMSG_BUBBLE_DATA bubble_data);
+
+void msg_ui_bubble_create_forward_not_available_popup(PMSG_BUBBLE_DATA pData);
+
+void msg_ui_bubble_launch_recipient_list_view(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_recipient_list_update(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_create_title_name_button(Evas_Object *parent, PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_remove_title_name_button(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_update_title_name_button(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_update_title_contact_image(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_remove_title_contact_image(PMSG_BUBBLE_DATA bubble_data);
+Evas_Object *msg_ui_bubble_add_title_button(PMSG_BUBBLE_DATA bubble_data, BubbleTieleButtonType type);
+void msg_ui_bubble_remove_title_button(PMSG_BUBBLE_DATA bubble_data, BubbleTieleButtonType type);
+void msg_ui_bubble_list_update_translation(PMSG_BUBBLE_DATA cd, bool state);
+int msg_ui_bubble_get_draft_msg_id(PMSG_BUBBLE_DATA bubble_data);
+char *__msg_ui_composer_bubble_send_via_gl_text_get(void *data, Evas_Object *obj, const char *part);
+Evas_Object *__msg_ui_composer_bubble_send_via_gl_content_get(void *data, Evas_Object *obj, const char *part);
+Evas_Object *msg_ui_composer_bubble_create_list_popup(PMSG_BUBBLE_DATA bubble_data, const char *package_str, const char *title, Evas_Object *list, const char *style);
+
+void msg_ui_bubble_list_popup_rotate(void *data);
+void msg_ui_bubble_list_update_read_status_thread_call(PMSG_BUBBLE_DATA bubble_data);
+void msg_ui_bubble_retrieve_message(MSG_DATA_SWITCH_DATA *switch_data);
+
+
+#endif
diff --git a/composer/include/msg-ui-composer-common.h b/composer/include/msg-ui-composer-common.h
new file mode 100755 (executable)
index 0000000..6c079c4
--- /dev/null
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_COMPOSER_COMMON_H__
+#define __MSG_COMPOSER_COMMON_H__
+
+#include "msg-ui-composer-data.h"
+
+typedef enum {
+       COMPOSER_TICKERNOTI_UNKNOWN             = 0,
+       COMPOSER_TICKERNOTI_COUNT_MAX,
+       COMPOSER_TICKERNOTI_DUP_RECP,
+       COMPOSER_TICKERNOTI_INVALID_RECP,
+       COMPOSER_TICKERNOTI_CHANGED_SMS,
+       COMPOSER_TICKERNOTI_CHANGED_MMS,
+       COMPOSER_TICKERNOTI_AUTO_SAVED,
+       COMPOSER_TICKERNOTI_NO_RECIPIENT,
+       COMPOSER_TICKERNOTI_MAXLENGHT_CHAR,
+       COMPOSER_TICKERNOTI_NO_TEMPLATE_LIST,
+       COMPOSER_TICKERNOTI_MESSAGE_SIZE_LIMIT_REACHED,
+       COMPOSER_TICKERNOTI_ATTACHMENT_LIMIT_REACHED,
+       COMPOSER_TICKERNOTI_DURATION_MIN_LIMIT_REACHED,
+       COMPOSER_TICKERNOTI_DURATION_MAX_LIMIT_REACHED,
+       COMPOSER_TICKERNOTI_SCHEDULED_TIME_LIMIT_REACHED,
+       COMPOSER_TICKERNOTI_UNABLE_TO_FIND_LOCATION,
+} COMPOSER_TICKERNOTI_TYPE_E;
+
+void msg_ui_common_reset_data_service_back_to_main_setting_value(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_common_message_send(MSG_COMPOSER_VIEW_DATA_S *cd);
+char *msg_ui_composer_edj_get(MSG_COMPOSER_VIEW_DATA_S *cd);
+Evas_Object *msg_ui_composer_load_edj(Evas_Object *parent, const char *edj_file, const char *group);
+Evas_Object *msg_ui_composer_layout_create(Evas_Object *parent, bool indicator);
+Evas_Object *msg_ui_composer_bg_create(Evas_Object *parent);
+Evas_Object *msg_ui_composer_make_image(Evas_Object *parent, const char *image_path);
+int msg_ui_composer_update_attach_module(int module_id);
+Evas_Object *msg_ui_composer_get_app_icon(Evas_Object *parent, char *app_name);
+Eina_List *msg_ui_composer_get_attach_module_list(void);
+void msg_ui_composer_free_attach_module_list(Eina_List **pp_list);
+/*file*/
+int64 msg_composer_get_file_size(const char *path);
+char *msg_composer_get_file_ext(const char *a_pszfile_name);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_copy_file(MSG_COMPOSER_VIEW_DATA_S *cd, const char *src_file_path, char *dst_file_path, int size_dst_file_path);
+
+COMPOSER_RETURN_TYPE_E msg_composer_common_get_media_duration(const char *file_path, int *duration);
+COMPOSER_MEDIA_TYPE_E msg_composer_get_media_type(const char *a_pszfile_path);
+COMPOSER_MEDIA_TRACK_TYPE_E msg_composer_get_media_track_type(const char *a_pszfile_name);
+void msg_ui_composer_clear(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+void msg_ui_composer_show_bubble_view(void *data, msg_thread_id_t tid);
+
+MSG_SIM_PREFERENCE msg_common_get_sim_preference(MSG_COMPOSER_VIEW_DATA_S *cd, int *active_sims, int *active_sim, int *data_subscription);
+
+void msg_ui_composer_sim_icon_refresh(void *data, MSG_SIM_PREFERENCE caller);
+void msg_ui_composer_sim_controller_deinit(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_sim_controller_init(void *data);
+
+Evas_Object *msg_ui_composer_popup_create(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent);
+
+/*focus*/
+void msg_ui_composer_set_entry_focusable(void *data, Eina_Bool value);
+void msg_ui_composer_load_last_focused_entry(void *data);
+Eina_Bool msg_ui_composer_last_focus_load(void *data);
+Eina_Bool msg_ui_composer_last_body_page_focus_load(void *data);
+void msg_ui_composer_last_focused_entry_set(void *data, Evas_Object *entry);
+Evas_Object *msg_ui_composer_last_focused_entry_get(void *data);
+Evas_Object *msg_ui_composer_last_body_entry_get(void *data);
+void msg_ui_composer_set_body_keypad_layout(void *data, int mode);
+bool msg_ui_composer_last_focus_is_recipient(void *data);
+bool msg_ui_composer_last_focus_is_subject(void *data);
+bool msg_ui_composer_last_focus_is_body(void *data);
+Evas_Object *msg_ui_composer_get_focusible_widget(void *data);
+
+/*KEYPAD AND FOCUS STATE APIS*/
+/**
+ * This Api should be used before calling popup create or ug create or app_service call
+ * It will remove focus from cd->last_focus_entry and hide keypad for cd->last_focus_entry and save their old states
+ * */
+void msg_ui_composer_unset_view(MSG_COMPOSER_VIEW_DATA_S *cd);
+/**
+ * This Api should be used on composer_resume / popupdelete_cb / ctx_popup_del_cb
+ * It will reset old states of focus and keypad . If focus is allowed on cd->last_focus_entry only then old keypad state will be set
+ * NOTE: Care should be taken to call ctx_popuo_del or popup_del after setting cd->is_appsvc_ug_call || (cd->popup_list != NULL) || cd->loaded_view || cd->loaded_aul == TRUE || cd->loaded_ug != NULL else reset will be called from ctx_popup_del_cb
+ * */
+void msg_ui_composer_reset_view(MSG_COMPOSER_VIEW_DATA_S *cd);
+/**
+ * API used for hiding input panel for entry
+ * */
+void msg_ui_composer_entry_input_panel_hide(Evas_Object *entry);
+/**
+ * API used for hiding input panel for entry
+ * */
+void msg_ui_composer_entry_input_panel_show(Evas_Object *entry);
+/**
+ * API used for checking focus condition
+ * */
+bool check_condition_to_focus_entry(MSG_COMPOSER_VIEW_DATA_S *cd);
+/**
+ * API used for checking keypad show condition
+ * */
+bool check_condition_to_show_keypad(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+
+void bundle_send_to_result(void *data, char *key, char *val);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_change_message_type(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_MSG_TYPE_E msg_type);
+bool msg_ui_composer_common_is_signature_enabled(MSG_COMPOSER_VIEW_DATA_S *cd, bool check_for_back_key);
+bool msgc_ui_composer_signature_is_not_edited(void *data, Evas_Object *entry);
+bool msg_ui_composer_common_is_send_possible(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+COMPOSER_MSG_TYPE_E msg_ui_composer_check_message_type(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_message_type_check_and_change(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_get_max_recipient_count(MSG_COMPOSER_VIEW_DATA_S *cd);
+bool msg_composer_common_check_msg_id(MSG_COMPOSER_VIEW_DATA_S *cd, int msg_id);
+
+COMPOSER_RETURN_TYPE_E msg_composer_common_get_thumbnail(MSG_COMPOSER_VIEW_DATA_S *cd, const char *src_file_path, char *thumb_file_path, int size_thumb_file_path);
+COMPOSER_RETURN_TYPE_E msg_composer_common_get_image_in_video(const char *video_file_path, char *image_file_path);
+
+void msg_composer_entry_filter_remove_markup(void *data, Evas_Object *entry, char **text);
+void msg_ui_composer_common_tickernoti(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_TICKERNOTI_TYPE_E tickertype);
+void msg_composer_entry_filter_check_boundary(void *data, Evas_Object *entry, char **text);
+void msg_composer_entry_filter_addimage(void *data, Evas_Object *entry, char **text);
+void msg_ui_composer_entry_imf_state_cb(void * data, Ecore_IMF_Context *ctx, int value);
+void msg_ui_composer_entry_imf_resize_cb(void * data, Ecore_IMF_Context *ctx, int value);
+void msg_ui_composer_entry_set_guide_text(Evas_Object *entry, const char *str);
+
+int msg_ui_composer_get_keypad_height(Evas_Object *entry);
+void msg_ui_composer_change_body_scroll_size(MSG_COMPOSER_VIEW_DATA_S *cd, int keypad_height);
+void msg_ui_composer_make_default_body_size(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+int msg_ui_composer_get_font_size(int type);
+void msg_ui_composer_naviframe_size_hints_changed(void *data, Evas *e, Evas_Object *obj, void *event_info);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_flight_mode_check_and_change(MSG_COMPOSER_VIEW_DATA_S *cd, MSG_DATA_SWITCH_DATA *switch_data);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_mobile_data_roaming_check_and_send(MSG_COMPOSER_VIEW_DATA_S *cd, MSG_DATA_SWITCH_DATA *switch_data);
+void msg_ui_composer_common_data_off_popup_cancel_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_common_data_off_popup_ok_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_common_ignore_back_key_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_common_initialize_telephony(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_common_deinitialize_telephony(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_common_sim_network_not_changed(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_launch_reset_sim_process(int reset_index, int msg_id, int thread_id);
+Evas_Object *msg_ui_composer_create_gengrid_popup(Evas_Object *parent);
+int msg_ui_composer_common_recipient_count_get(void *data);
+#endif/*__MSG_COMPOSER_COMMON_H__*/
diff --git a/composer/include/msg-ui-composer-data.h b/composer/include/msg-ui-composer-data.h
new file mode 100755 (executable)
index 0000000..b2dc9a1
--- /dev/null
@@ -0,0 +1,855 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_DATA_H_
+#define __MSG_UI_COMPOSER_DATA_H_
+
+/***********************
+ *  includes
+ ************************/
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+
+#include <Elementary.h>
+#include <X11/Xlib.h>
+#include <glib-object.h>
+#include <glib.h>
+
+#include <ui-gadget-module.h>
+
+#include <contacts.h>
+#include <assert.h>
+#include <time.h>
+#include <Ecore_X.h>
+#include <tapi_common.h>
+#include <attach_panel.h>
+
+
+#include "msg-ui-util.h"
+#include "msg-ui-composer-res.h"
+#include "msg-ui-common-utility.h"
+#include "msg-ui-composer-bubble.h"
+
+/*********************
+ * defines
+ ************************/
+
+#if !defined(__TYPEDEF_INT64__)
+#define __TYPEDEF_INT64__
+typedef long long int64;
+#endif
+
+#define TO_FIELD_LABEL_SIZE_MAX        512
+#define COMPARE_STRING_NUM 8
+
+#ifndef COMPOSER_TO_ADDRESS_CNT_MAX
+#define COMPOSER_TO_ADDRESS_CNT_MAX (20)
+#endif
+
+#ifndef MAX_PHONE_NUMBER_LEN
+#define MAX_PHONE_NUMBER_LEN (20)
+#endif
+
+#define COMPOSER_RECIPIENT_PHONE_NUMBER_LEN_MAX MAX_PHONE_NUMBER_LEN
+#define COMPOSER_RECIPIENT_PHONE_NUMBER_LEN_MIN (3)
+
+#ifndef MAX_ADDRESS_VAL_LEN
+#define MAX_ADDRESS_VAL_LEN (254)
+#endif
+
+#define COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX MAX_ADDRESS_VAL_LEN
+#define COMPOSER_SUBJECT_MAX_CHAR      (40)
+#define COMPOSER_SUBJECT_MAX_BYTE      (COMPOSER_SUBJECT_MAX_CHAR * 3)
+
+#define COMPOSER_MMS_TEXT_MAX_CHAR     (3000)
+#define COMPOSER_MMS_TEXT_MAX_BYTE     (COMPOSER_MMS_TEXT_MAX_CHAR * 3)
+
+#define COMPOSER_MMS_MAX_PAGE                  (10)
+#define COMPOSER_MMS_MAX_ATTACH_COUNT  (10)
+#define COMPOSER_FILEPATH_LEN_MAX      (1024)
+#define COMPOSER_FILENAME_LEN_MAX      (255)
+#define COMPOSER_PAGE_DEFAULT_DURATION (5) //sec
+
+#define COMPOSER_ATTACHMENT_FILE_COPY_COUNTER_SIZE             (10)
+#define COMPOSER_TO_ENTRY_COUNTER_SIZE         (10)
+
+#define COMPOSER_MMS_MAX_MEDIA_COUNT   (COMPOSER_MMS_MAX_PAGE)
+
+#define COMPOSER_COMMON_EXT_MAX_LENGTH         (7)
+#define COMPOSER_COMMON_MIME_MAX_LEN           (64)
+
+#define COMPOSER_SMS_UNICODE_MAX_LEN   (70)
+#define COMPOSER_SMS_GSM7_MAX_LEN              (160)
+
+#define COMPOSER_CMS_UNICODE_MAX_LEN   (67)
+#define COMPOSER_CMS_GSM7_MAX_LEN              (153)
+
+#define COMPOSER_TEXT_TEMPLATE_MAX_LEN (MAX_TEXT_TEMPLATE_LEN * 3)
+
+/* default 3 pages, it can be changed by operator spec. */
+#define COMPOSER_CMS_MAX_PAGE                  (3)
+
+#define COMPOSER_TMP_PATH "/tmp"
+#define COMPOSER_PATH_IMAGE "image/*"
+#define COMPOSER_PATH_VIDEO "video/*"
+#define MSGC_1KB       1024
+#define MMS_HEADER_SIZE        (5 * MSGC_1KB)
+#define MMS_RECIPIENT_HEADER_SIZE      (2.5 * MSGC_1KB)
+
+#define MSGC_RESTRICT_MAX_IMG_W 480
+#define MSGC_RESTRICT_MAX_IMG_H 800
+
+#define MSGC_RECIPIENT_DEFAULT_HEIGHT 64
+#define MSGC_RECIPIENT_DEFAULT_HEIGHT_EASY_MODE 120
+#define MSGC_RECIPIENT_PORTRAIT_HEIGHT_MAX     163
+#define MSGC_RECIPIENT_LANDSCAPE_HEIGHT_MAX    125
+#define MSGC_RECIPIENT_1_LIST_H 64
+
+#define MSGC_INDICATOR_PORTRAIT_H 40
+#define MSGC_INDICATOR_LANDSCAPE_H 0
+#define MSGC_NAVIFRAME_TITLE_H 64
+
+#define MSGC_BODY_TOP_PADDING 0
+#define MSGC_BODY_BOTTOM_PADDING 0
+#define MSGC_BODY_PADDING (MSGC_BODY_TOP_PADDING + MSGC_BODY_BOTTOM_PADDING)
+#define MSGC_BODY_INPUT_FILED_H 50
+#define DEFAULT_BODY_SIZE ELM_SCALE_SIZE(60)
+
+#define MSGC_IMAGE_THUMB_LANDSCAPE_W   128
+#define MSGC_IMAGE_THUMB_LANDSCAPE_H   102
+#define MSGC_IMAGE_THUMB_LANDSCAPE_ORIGIN_H    75
+#define MSGC_IMAGE_THUMB_PORTRAIT_W    102
+#define MSGC_IMAGE_THUMB_PORTRAIT_H    128
+#define MSGC_IMAGE_THUMB_PORTRAIT_ORIGIN_H 142
+#define MSGC_IMAGE_THUMB_EQUAL_W_H 106
+
+#define MSGC_PAGE_DURATION_MAX 99
+#define MSGC_PAGE_DURATION_MIN 5
+
+#define MSGC_SOUND_THUMB_WIDTH 45
+#define MSGC_SOUND_THUMB_HEIGHT        45
+
+#define MSGC_POPUP_GENLIST_H 140
+#define MSGC_POPUP_LIST_H 96
+#define MSGC_PORTRAIT_GENLIST_POPUP_COUNT 6
+#define MSGC_LANDSCAPE_GENLIST_POPUP_COUNT 3
+#define MSGC_PORTRAIT_LIST_POPUP_COUNT 7
+#define MSGC_LANDSCAPE_LIST_POPUP_COUNT 4
+
+#define MSGC_RECIPIENT_FONT_SIZE 20
+#define MSGC_BODY_FONT_SIZE 20
+#define MSGC_SUBJECT_FONT_SIZE 20
+
+
+#define MSGC_MAXIMAGE_RESOLUTION_KIRAN 4093
+
+#define MSGC_INVALID_TYPE -1
+
+#define TAPI_HANDLE_MAX  2
+
+/*********************
+ * enum types
+ ************************/
+
+typedef enum {
+       EDIT_RECIP_MODE = 1,
+       VIEW_RECIP_MODE
+} RECIPIENT_MODE_E;
+
+typedef enum {
+       MSG_UG_MODE_FULL_COMPOSER,
+       MSG_UG_MODE_BUBBLE_COMPOSER,
+       MSG_UG_MODE_ONLY_COMPOSER,      /*In this mode Composer should destroy after send message*/
+       MSG_UG_MODE_MAX,
+} MSG_UG_MODE_E;
+
+typedef enum {
+       MSG_SIM_PREFERENCE_SIM_COUNT_LESS_THAN_TWO = 0,
+       MSG_SIM_PREFERENCE_ALWAYS_ASK,
+       MSG_SIM_PREFERENCE_SIM1,
+       MSG_SIM_PREFERENCE_SIM2,
+       MSG_SIM_PREFERENCE_NONE
+} MSG_SIM_PREFERENCE;
+
+typedef enum {
+       MSG_SIM_NONE_ACTIVE,
+       MSG_SIM_SIM1_ACTIVE,
+       MSG_SIM_SIM2_ACTIVE,
+       MSG_SIM_BOTH_ACTIVE,
+} MSG_ACTIVE_SIM;
+
+typedef enum {
+       MSG_ACTIVE_DATA_SUBSCRIPTION_NONE,
+       MSG_ACTIVE_DATA_SUBSCRIPTION_SIM1,
+       MSG_ACTIVE_DATA_SUBSCRIPTION_SIM2,
+} MSG_ACTIVE_DATA_SUBSCRIPTION;
+
+typedef enum {
+       MSG_COMPOSER_MODE_NORMAL,
+       MSG_COMPOSER_MODE_EDIT,
+       MSG_COMPOSER_MODE_FORWARD,
+} MSG_COMPOSER_MODE_E;
+
+typedef enum {
+       COMPOSER_RETURN_SUCCESS = 0,
+       COMPOSER_RETURN_FAIL                                            = -1,
+       COMPOSER_RETURN_NULL_POINTER                            = -2,
+       COMPOSER_RETURN_NO_SIM                                          = -3,
+       COMPOSER_RETURN_HANDLE_NOT_EXIST                        = -4,
+       COMPOSER_RETURN_MAX_PAGE                                        = -5,
+       COMPOSER_RETURN_INVALID_MSG_TYPE                        = -6,
+       COMPOSER_RETURN_INVALID_PAGE                            = -7,
+       COMPOSER_RETURN_INVALID_MEDIA_TYPE                      = -8,
+       COMPOSER_RETURN_ATTACHMENT_ALREADY_EXIST        = -9,
+       COMPOSER_RETURN_LOW_RESOLUTION                          = -10,
+       COMPOSER_RETURN_HIGH_RESOLUTION                         = -11,
+       COMPOSER_RETURN_NONSTANDARD_FILE                        = -12,
+       COMPOSER_RETURN_RECIPIENT_INVALID                       = -13,
+       COMPOSER_RETURN_RECIPIENT_COUNTMAX                      = -14,
+       COMPOSER_RETURN_RECIPIENT_DUPLICATE                     = -15,
+       COMPOSER_RETURN_MSG_SIZE_OVER                           = -16,
+       COMPOSER_RETURN_RESIZE_IMAGE                            = -17,
+       COMPOSER_RETURN_DRM_FORWARDLOCK                         = -18,
+       COMPOSER_RETURN_OVERSIZE_FILE                           = -19,
+       COMPOSER_RETURN_CREATION_RESTRICTED_MODE_FAIL   = -20,
+       COMPOSER_RETURN_CREATION_RESTRICTED_MODE_PASS   = -21,
+       COMPOSER_RETURN_CREATION_WARINING_MODE_FAIL     = -22,
+       COMPOSER_RETURN_CREATION_WARINING_MODE_PASS     = -23,
+       COMPOSER_RETURN_MEMORY_FULL     = -24,
+       COMPOSER_RETURN_REGISTRATION_FAIL       = -25,
+       COMPOSER_RETURN_SOUND_AND_SHOT_FAIL     = -26,
+       COMPOSER_RETURN_ATTACHMENT_MAX_COUNT    = -27,
+} COMPOSER_RETURN_TYPE_E;
+
+typedef enum {
+       COMPOSER_MSG_TYPE_INVALID,
+       COMPOSER_MSG_TYPE_SMS,
+       COMPOSER_MSG_TYPE_MMS,
+} COMPOSER_MSG_TYPE_E;
+
+typedef enum {
+       COMPOSER_MEDIA_TYPE_UNKNOWN,
+       COMPOSER_MEDIA_TYPE_IMAGE,
+       COMPOSER_MEDIA_TYPE_VIDEO,
+       COMPOSER_MEDIA_TYPE_AUDIO,
+       COMPOSER_MEDIA_TYPE_TEXT,
+       COMPOSER_MEDIA_TYPE_ANIMATE,
+       COMPOSER_MEDIA_TYPE_MAX = 0xff
+} COMPOSER_MEDIA_TYPE_E;
+
+typedef enum {
+       COMPOSER_MEDIA_NONE,
+       COMPOSER_MEDIA_LANDSCAPE_MODE,
+       COMPOSER_MEDIA_PORTRAIT_MODE,
+       COMPOSER_MEDIA_EQUAL_MODE,
+} COMPOSER_MEDIA_ORIENT_E;
+
+typedef enum {
+       COMPOSER_MEDIA_TRACK_TYPE_NONE,
+       COMPOSER_MEDIA_TRACK_TYPE_VIDEO,
+       COMPOSER_MEDIA_TRACK_TYPE_AUDIO,
+} COMPOSER_MEDIA_TRACK_TYPE_E;
+
+typedef enum {
+       COMPOSER_REGION_ORDER_UNDETERMINDED = 0x00,
+       COMPOSER_REGION_ORDER_IMAGE_TOP,
+       COMPOSER_REGION_ORDER_TEXT_TOP,
+} COMPOSER_MMS_REGION_ORDER_E;
+
+typedef enum {
+       COMPOSER_MEDIA_HIDE_ALL = 0,
+       COMPOSER_MEDIA_HIDE_EXCEPT_IMAGE,       /* show image highlight */
+       COMPOSER_MEDIA_HIDE_EXCEPT_SOUND        /* show sound highlight */
+} COMPOSER_MEDIA_HIDE_TYPE_E;
+
+typedef enum {
+       COMPOSER_STATE_TYPE_INVALID = 0,
+       COMPOSER_STATE_TYPE_CREATE,
+       COMPOSER_STATE_TYPE_RUNNING,
+       COMPOSER_STATE_TYPE_PAUSE,
+       COMPOSER_STATE_TYPE_DESTROY,
+       COMPOSER_STATE_TYPE_MAX,
+} COMPOSER_STATE_TYPE_E;
+
+typedef enum {
+       COMPOSER_RECP_ADDR_NONE,
+       COMPOSER_RECP_ADDR_INVALID,
+       COMPOSER_RECP_ADDR_VALID_NUMBER,
+       COMPOSER_RECP_ADDR_VALID_EMAIL,
+       COMPOSER_RECP_ADDR_MAX_REACHED,
+} COMPOSER_RECP_ADDR_E;
+
+typedef enum {
+       COMPOSER_CHAR_ENCODE_GSM7 = 0,
+       COMPOSER_CHAR_ENCODE_GSM7_ABNORMAL,
+       COMPOSER_CHAR_ENCODE_UNICODE,
+       COMPOSER_CHAR_ENCODE_MAX,
+} COMPOSER_CHAR_ENCODE_E;
+
+typedef enum {
+       COMPOSER_PREDICTSEARCH_NONE = 0,
+       COMPOSER_PREDICTSEARCH_NAME_OR_NUMBER,
+       COMPOSER_PREDICTSEARCH_NAME_OR_EMAIL,
+       COMPOSER_PREDICTSEARCH_LOG,
+       COMPOSER_PREDICTSEARCH_END,
+} COMPOSER_PREDICTSEARCH_STATE_E;
+
+typedef enum {
+       COMPOSER_ROTATE_UNKNOWN = 0,
+       COMPOSER_ROTATE_PORTRAIT = APP_DEVICE_ORIENTATION_0,
+       COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN = APP_DEVICE_ORIENTATION_180,
+       COMPOSER_ROTATE_LANDSCAPE = APP_DEVICE_ORIENTATION_270,
+       COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN = APP_DEVICE_ORIENTATION_90,
+} COMPOSER_ROTATE_TYPE_E;
+
+typedef enum {
+       COMPOSER_EDIT_NONE,
+       COMPOSER_EDIT_RECIPIENT,
+       COMPOSER_EDIT_BODY,
+       COMPOSER_EDIT_RECIPIENT_AND_BODY,
+} COMPOSER_EDIT_STATE_E;
+
+typedef enum {
+       GLIST_TYPE,
+       EINA_LIST_TYPE,
+} COMPOSER_LIST_TYPE_E;
+
+enum {
+       COMPOSER_ADDR_TYPE_NUMBER,
+       COMPOSER_ADDR_TYPE_EMAIL
+};
+
+enum {
+       COMPOSER_TYPE_SUBJECT = 0,
+       COMPOSER_TYPE_BODY,
+       COMPOSER_TYPE_RECIPIENT
+};
+
+enum MSG_COMPOSER_CHANGE_TTS_CALLER {
+       COMPOSER_TTS_CALLER_RECIPIENT = 0,
+       COMPOSER_TTS_CALLER_BODY,
+       COMPOSER_TTS_CALLER_BUBBLE
+};
+
+enum {
+       RECIPIENT_PARSING_TYPE_ADD_CHAR,
+       RECIPIENT_PARSING_TYPE_DELETE_CHAR,
+       RECIPIENT_PARSING_TYPE_ENTER_KEY,
+       RECIPIENT_PARSING_TYPE_MOVED_FOCUS, /* parse string which is pasted like "123,345" when focus is moved from mbe to other widget */
+       RECIPIENT_PARSING_TYPE_MAX,
+};
+
+typedef enum {
+       COMPOSER_CONTENT_CREATION_NONE,
+       COMPOSER_CONTENT_CREATION_ALLOWED,
+       COMPOSER_CONTENT_CREATION_ALLOWED_WITH_RESIZE,
+       COMPOSER_CONTENT_CREATION_NOT_ALLOWED,
+} COMPOSER_CONTENT_CREATION_MODE_E;
+
+typedef enum {
+       COMPOSER_TEXT_HAS_NO_EXCEPTION_CHAR = 0,
+       COMPOSER_TEXT_HAS_EMOTICON,
+       COMPOSER_TEXT_HAS_KOREAN,
+} COMPOSER_TEXT_EXCEPTION_CHAR_E;
+
+typedef enum {
+       COMPOSER_TEXT_IS_SMS = 0,
+       COMPOSER_TEXT_IS_EMOTICON,
+       COMPOSER_TEXT_CROSSED_SMSLIMIT,
+} COMPOSER_TEXT_IS_SMS_CHAR_E;
+
+typedef enum {
+       SCHEDULE_POPUP_NONE = 0,
+       SCHEDULE_POPUP_UNABLE_TO_SEND,
+       SCHEDULE_POPUP_WITHIN_A_YEAR,
+       SCHEDULE_POPUP_OVER_MINIMUM_INTAVAL,
+} COMPOSER_SCHEDULE_POPUP_TYPE;
+
+enum {
+       RECIPIENT_LAYOUT_DEFAULT, /* default mode */
+       RECIPIENT_LAYOUT_CONTACT_N_PREV, /* contact & prev btn mode */
+       RECIPIENT_LAYOUT_MORE_N_PREV, /* more & prev btn mode */
+};
+
+enum {
+       BODY_LAYOUT_DEFAULT_H, /* default mode : 98 */
+       BODY_LAYOUT_DEFAULT_N_SAME_PAD_H, /* default & same top,bottom padding : 98 => 104 */
+       BODY_LAYOUT_EXPAND_LANDSCAPE_H, /* landscape expand mode */
+       BODY_LAYOUT_EXPAND_H, /* expand mode */
+};
+
+enum {
+       BODY_LAYOUT_PORTRAIT, /* portrait mode */
+       BODY_LAYOUT_LANDSCAPE, /* landscape mode, divided attach button */
+};
+
+typedef enum {
+       MSG_COMPOSER_TPOPUP_NONE,
+       MSG_COMPOSER_TPOPUP_INVALID_RECIPIENT,
+       MSG_COMPOSER_TPOPUP_MAXIMUM_RECIPIENT_COUNT,
+} MSG_COMPOSER_TIMING_POPUP_TYPE_E;
+
+
+typedef enum {
+       COMPOSER_EXT_TYPE_NONE,
+       COMPOSER_EXT_TYPE_MYFILE_AUDIO,
+       COMPOSER_EXT_TYPE_NAMECARD,
+       COMPOSER_EXT_TYPE_CALENDAR, //Calendar attachment
+       COMPOSER_EXT_TYPE_MEMO,
+       COMPOSER_EXT_TYPE_CAMERA,
+       COMPOSER_EXT_TYPE_CAMCORDER,
+       COMPOSER_EXT_TYPE_MSGVIEWER,
+       COMPOSER_EXT_TYPE_CONTACT_PHONEUI,
+       COMPOSER_EXT_TYPE_RECENT_PHONEUI,
+       COMPOSER_EXT_TYPE_SOUND,
+       COMPOSER_EXT_TYPE_IMAGE,
+       COMPOSER_EXT_TYPE_VIDEO,
+       COMPOSER_EXT_TYPE_PICK,
+       COMPOSER_EXT_TYPE_ADD_TEXT_CONTACT,
+       COMPOSER_EXT_TYPE_ADD_TEXT_CALENDAR, //Calendar text
+       COMPOSER_EXT_TYPE_ADD_TEXT_MEMO,
+       COMPOSER_EXT_TYPE_SETTING,
+       COMPOSER_EXT_TYPE_COMMON,
+       COMPOSER_EXT_TYPE_VIEW_CALENDAR,
+       COMPOSER_EXT_TYPE_VIEW_CONTACT,
+       COMPOSER_EXT_TYPE_MAX = 0xff,
+} COMPOSER_EXT_TYPE_E;
+
+
+/******************************
+ * structures
+ *******************************/
+typedef struct {
+       char m_szextend[COMPOSER_COMMON_EXT_MAX_LENGTH + 1];
+       char m_szmime_type[COMPOSER_COMMON_MIME_MAX_LEN + 1];
+       COMPOSER_MEDIA_TYPE_E m_ncontent_type;
+} composer_mime_type_t;
+
+typedef struct _MSG_ITEM_S {
+       int msg_id;
+       char text[COMPOSER_TEXT_TEMPLATE_MAX_LEN + 1];
+} MSG_ITEM_S;
+
+typedef struct _COMPOSER_SIM_STATUS_INFO
+{
+       TapiHandle *handle[TAPI_HANDLE_MAX+1];
+       Eina_Bool sim_card_ready[TAPI_HANDLE_MAX+1];
+       char **cp_list;
+} COMPOSER_SIM_STATUS_INFO;
+
+/*
+Used change number for contact info
+*/
+typedef struct _CONTACT_ITEM_S {
+       int index;
+       int type;       /*COMPOSER_ADDR_TYPE_NUMBER:number, COMPOSER_ADDR_TYPE_EMAIL:email*/
+       int contact_type;       /*number or email type of contact like Mobile, Home*/
+       char recipient[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX+1];
+} CONTACT_ITEM_S;
+
+/*
+Used MBE's data && PredictSearch
+*/
+typedef struct _RECIPIENT_ITEM_S {
+       COMPOSER_RECP_ADDR_E type;
+       int index;
+       char recipient[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX+1];
+       char display_name[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX+1];
+       char image_path[COMPOSER_FILEPATH_LEN_MAX+1];
+       bool ignore_delimiter;
+} RECIPIENT_ITEM_S;
+
+typedef struct _RECIPIENT_S {
+       const char *name;
+       void *cd;
+       RECIPIENT_MODE_E mode;
+       int recipient_h;
+       int layout_mode;
+       bool is_required_address_popup;
+       bool was_entry_empty;
+       bool backspace_pressed;
+       bool return_pressed;
+       bool is_mbe_item_selected;
+       bool is_entry_activated;
+       bool is_keep_recipient_layout;
+
+       Evas_Object *going_to;
+       Evas_Object *last_tts_object;
+       Evas_Object *first_tts_object;
+       Evas_Object *coming_from;
+       Evas_Object *parent;
+       Evas_Object *bx_main;
+       Evas_Object *ly_to;
+       Evas_Object *mbe;
+       Evas_Object *entry;
+       Evas_Object *search_field;
+
+       Eina_Bool plus_btn_allowed;
+       Evas_Object *contact_btn;
+       Evas_Object *plus_btn;
+       Evas_Object *recent_btn;
+       Evas_Object *selected_popup;
+#ifdef MSGC_SUPPORT_USE_OTHER_NUMBER
+       Evas_Object *change_number_popup;
+#endif
+       Evas_Object *add_contact_popup;
+
+       Elm_Object_Item *previous_item;
+       Elm_Object_Item *sel_mbe_item;
+       RECIPIENT_ITEM_S *sel_r_item;
+
+       Elm_Genlist_Item_Class change_number_itc;
+
+       COMPOSER_RECP_ADDR_E type;
+       Ecore_Event_Handler *mbe_key_press_handler;
+       Ecore_Idler *notify_popup_idler;
+       Ecore_Idler *resize_idler;
+       Ecore_Idler *entry_set_idler;
+} RECIPIENT_S;
+
+typedef struct _PREDICTSEARCH_S {
+       const char *name;
+       void *cd;
+       Evas_Object *parent;
+       Evas_Object *glist_ps;
+       Evas_Object *track;
+       Elm_Object_Item *track_item;
+       Evas_Object *box;
+       Evas_Object *layout;
+       Elm_Genlist_Item_Class itc_1line;
+       Elm_Genlist_Item_Class itc_2line;
+       Elm_Genlist_Item_Class itc_2line_noicon;
+
+       COMPOSER_PREDICTSEARCH_STATE_E state;
+
+       char txt_ps_keyword[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX+1];
+       char txt_ps_reqkeyword[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX+1];
+       Eina_Bool IsShow;
+       contacts_list_h ct_list;
+       bool is_resume;
+       int count;
+
+       Ecore_Idler *idler_ps;
+       Ecore_Timer *timer_ps;
+
+       Ecore_Event_Handler *mouse_down_handler;
+} PREDICTSEARCH_S;
+
+typedef struct _COMPOSER_VCARD_THREAD_DATA_S {
+       void *cd; /* MSG_COMPOSER_VIEW_DATA_S */
+       char **item_id_list;
+       int id_count;
+       int share_item;
+} COMPOSER_VCARD_THREAD_DATA_S;
+
+typedef struct _SUBJECT_S {
+       Evas_Object *layout;
+       Evas_Object *entry;
+} SUBJECT_S;
+
+typedef struct _MSG_COMPOSER_ATTACHITEM_S {
+       Evas_Object *layout;
+       Evas_Object *del_icon;
+       char file_path[COMPOSER_FILEPATH_LEN_MAX + 1];
+       char file_name[COMPOSER_FILEPATH_LEN_MAX + 1];
+       int type;
+} MSG_COMPOSER_ATTACH_ITEM_S;
+
+typedef struct _MSG_COMPOSER_ATTACH_S {
+       int attachment_Cnt;
+       long long attachfileSize;
+       Eina_List *attachitem_list;
+       Evas_Object *focused_item;
+} MSG_COMPOSER_ATTACH_S;
+
+typedef struct {
+       int default_order;
+       int used_cnt;
+       int latest_used;
+       char *module_name;
+} MSG_COMPOSER_ATTACH_MODULE_S;
+
+typedef struct _text_info {
+       COMPOSER_CHAR_ENCODE_E encode;
+       int char_count;
+       int page_size;
+} text_info_s;
+
+typedef struct _MSG_COMPOSER_LOC_DATA_S {
+       void *h_loc_man;
+       void *h_geo;
+} MSG_COMPOSER_LOC_DATA_S;
+
+typedef struct _MSG_COMPOSER_BODY_PAGE_S {
+       Evas_Object *layout;
+       Evas_Object *page_main_box;
+
+       Evas_Object *page_divider;      /*page divider layout*/
+       Evas_Object *upper_layout;
+       Evas_Object *page_box;
+
+       bool is_image_item;
+       bool isVideo;
+       bool is_image_focus;
+       Evas_Object *image_item;
+       char image_file_path[COMPOSER_FILEPATH_LEN_MAX + 1];
+
+       Evas_Object *entry;
+       text_info_s text_info;
+
+       bool is_sound_item;
+       bool is_sound_focus;
+       Evas_Object *sound_item;
+       char sound_file_path[COMPOSER_FILEPATH_LEN_MAX + 1];
+
+       int page_duration;
+       int loop_count; /* long press count */
+} MSG_COMPOSER_BODY_PAGE_S;
+
+typedef struct _MSG_COMPOSER_BODY_S {
+       int page_count;
+       Eina_List *page_list;
+       bool is_body_focus;     /* to avoid unrequired focus checking from page lists */
+       Evas_Object *last_tts_object;
+       Evas_Object *first_tts_object;
+       int region_order;
+       COMPOSER_CONTENT_CREATION_MODE_E creation_allowed;
+} MSG_COMPOSER_BODY_S;
+
+typedef struct _MSG_COMPOSER_DATA_S {
+       /*ug data & callback*/
+       ui_gadget_h ug;
+       ui_gadget_h loaded_ug;
+       struct ug_cbs cbs;
+
+       app_control_h caller_svc_handle;
+       app_control_h callee_svc_handle;
+       app_control_h lockscreen_svc_handle;
+
+       /*composer mode & state*/
+       MSG_UG_MODE_E msg_ug_mode;
+       MSG_COMPOSER_MODE_E composer_mode;
+       COMPOSER_STATE_TYPE_E state;
+       COMPOSER_ROTATE_TYPE_E rotate;
+       COMPOSER_MSG_TYPE_E msg_type;
+
+       bool is_replace;
+       bool is_forward_msg_ug;
+       bool is_forward; /*Added to distinguish forwad secenario*/
+       bool isLoad;
+       bool isMsgInternal;
+       bool isAppControl;
+       bool isEmulator;
+       bool add_menu_clicked;
+
+       bool loaded_aul;
+       bool isSubject;
+       bool isclosed;  /* composer is closed */
+       bool loading_draft;     /* draft msg loading status */
+       bool resetting_msg; /* composer clear */
+       bool make_default_body_size;
+       bool is_default_body_size;
+       bool is_keypad_show;
+       bool is_timing_popup;
+       bool called_from_unset;
+       bool saved_keypad_state;
+       bool try_to_show_keypad; /* this is set when trying to show keypad manually */
+
+       bool disable_auto_save_mode;
+       bool is_service_launching;      /* prevent duplicated service launching */
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       bool entry_changed_called;      /* it is used when image content should be removed in case of pressing backspace */
+#endif
+       bool delete_edit_msg; /* This flag indicates whether to delete the edit msg or not*/
+       bool forward_not_possible_popup; /* This variable is needed when msg is forwarded in restricted/warning creation mode */
+       bool skip_back_key_action;
+       bool doing_back_key_operation; /* This flag set while back key operation is done */
+       bool is_maximum_char; /* This is set in entry filter_cb in order to avoid duplicated character checking */
+       bool wait_giving_focus; /* It is used when temporarily you don't want to set focus to entry ex> 2 popups are created continously */
+       bool enable_voice_recorder;     /* This is used in UPS mode */
+       bool hide_voicerecoder; /* Temporarily, it is added to hide voice recoder menu when composer is launched from voice recoder. It will be removed when voice recorder is ready ug implementation*/
+       bool show_popup;        /* Temporarily added. If keypad is shown when more popup should be shwon, it used to show more popup after hiding keypad  */
+       bool call_add_to_contact;       /* to set flag not showing ug effect of entering contact ug by Add to contact menu */
+       bool send_from_bubble; /* Since Bubble view and Composer use different sending API, this is used to differentiate between them*/
+       bool is_retrieve; /* Make is true when User clicks Download Button on the received MMS Noti.*/
+       bool not_show_saving_draft_popup; /*This variable is needed to distingush when to show and when not to show saved draft noti */
+
+       bool has_emoticon;
+       bool is_media_clicked;
+       bool is_spinner_entry_focus;
+       bool is_sound_and_shot; /* this is set if sound and shot image is appened in attachlist  */
+       bool return_from_power_home;
+       bool is_appsvc_ug_call;
+       bool is_attachment_added;
+
+       bool is_recipient_email; /* This is to be checked in msg_ui_composer_body_clear. If true, msg type should not be changed to SMS */
+       bool on_press_power_key;
+       bool not_hiding_keypad_flag;
+       bool is_net_switch_popup_exist;
+
+       int *rot;
+       int rot_available_cnt;
+       int preferred_rot;
+
+       int active_sims;
+       int active_sim;
+       int current_edit_entry;
+       int window_w;
+       int window_h;
+       int mms_remained_size;/*byte*/
+       int send_check_exception_type;
+       int msg_id;
+       int old_tid; /* This variable is used to store the old thread ID before starting the editing of draft message*/
+       int body_font_size; /* converted body font size */
+       int setting_font_size;
+       int display_font_size;
+       int attach_index;       /*current added attach index*/
+
+       /* setting & csc data */
+       bool bMax_recipient_popup_show;
+       int sms_recipient_max_count;
+       int mms_recipient_max_count;
+       int recipient_max_count;
+       int mms_max_size;
+       int page_duration;
+       int cms_max_page;
+       int encode_mode;
+       int number_min_match_digit; /* min match digit for comparing duplicated number */
+       int changed_encode_mode; /* it is used when korean is added in gsm7 */
+       int set_loaded_data_ret;
+#if _MSG_FEATURE_DSDS_ENABLED
+       int sim_number;
+#endif
+       bool is_signature_enabled; /* This flag indicate whether signature is enabled in the msg settings or not */
+       bool disable_conversion_to_mms; /* it is used to avoid conversion from sms to mms via text input */
+       bool send_mms_data; /* mms can be sent even though mobile data is off */
+       bool check_push_cb_msg;
+       bool show_keypad_on_launch;
+       bool is_edit_clicked;
+       bool is_needed_drm_popup;
+       bool header_not_allowed;
+
+       char *working_path;
+       char *signature_string; /* This variable contains the user defined signature */
+       char *str_send_button;
+       char* attachment_string;
+
+       /*message handler*/
+       msg_handle_t msg_handle;
+       void *tapi_handle;
+       COMPOSER_SIM_STATUS_INFO sim_info;
+
+       MSG_COMPOSER_TIMING_POPUP_TYPE_E tpopup_type; /* timimg popup type */
+       COMPOSER_EXT_TYPE_E launched_callee_type;
+
+       /*module data*/
+       SUBJECT_S sub_data;
+       MSG_COMPOSER_BODY_S body_data;
+       MSG_COMPOSER_ATTACH_S attach_data;
+       Eina_List *recipient_list_from_contacts; /* recipient list from contacts */
+       Eina_List *recipient_list; /* recipient list for bubble composer */
+       Eina_List *invalid_recipient_list;
+       RECIPIENT_S *recipient;
+       PREDICTSEARCH_S *predictsearch;
+       Eina_List *attachlist;
+       Eina_List *iter_list; /* this is reference list handle of attachlist */
+       Eina_Strbuf *result_string; /* it is used to load location result string with image */
+       Elm_Genlist_Item_Class sim_list_itc; /* Genlist item class for Sim List */
+       Elm_Genlist_Item_Class add_objects_list_itc;
+
+       /*Evas Object*/
+       Evas_Object *caller_layout;
+       Evas_Object *main_window;
+       Evas_Object *base;
+       Evas_Object *navi_bar;
+       Evas_Object *body_ctx_popup;
+       Evas_Object *navi_title_layout;
+       Evas_Object *title_menu_layout;
+       Elm_Object_Item *navi_it;
+
+       Evas_Object *main_scroller;
+       Evas_Object *content_layout;
+       Evas_Object *recipient_ht_rect; /* This variable is needed to maintain the height of recipient layout */
+
+       Evas_Object *body_main_layout;
+       Evas_Object *body_main_box;
+       Evas_Object *body_scroll;
+       Evas_Object *input_field_layout;
+       Evas_Object *input_field_bg;
+       Evas_Object *add_button;
+       Evas_Object *send_button;
+       Evas_Object *pages_box;
+
+       Evas_Object *add_popup;
+       Evas_Object *add_text_popup;
+       Evas_Object *center_popup;
+       Evas_Object *add_template_popup;
+       Evas_Object *progress_popup;
+       Evas_Object *popup_end; /* it is used when loading focus is not required after deleting popup */
+       Evas_Object *ctx_popup;
+       Evas_Object *custom_popup;
+       Evas_Object *add_grid_popup;
+       Evas_Object *scroller_popup;
+       Evas_Object *replace_grid_popup;
+       Evas_Object *add_objects_popup;
+       bool is_recipient_focused;
+
+       attach_panel_h attach_panel;
+
+       Eina_List *popup_list;
+       Evas_Object *send_via_popup;
+
+       Evas_Object *page_duration_spinner;
+       Evas_Object *last_focus_entry;
+
+       Ecore_Thread *vcard_thread;
+       Ecore_Thread *attach_thread;
+       Ecore_Job *job_thread_end;
+       Ecore_Job *job_naviframe_size_hints_changed;
+       Ecore_Timer *ignore_hw_back_events_timer;
+       Ecore_Timer *show_popup_timer;
+       Ecore_Timer *emg_mode_timer;
+       Ecore_Timer *flight_mode_timer;
+
+       Ecore_Idler *keypad_show_idler;
+       Ecore_Idler *popup_size_idler;
+       Ecore_Idler *media_event_idler;
+       Ecore_Idler *entry_size_idler;
+       Ecore_Idler *loc_destroy_idler;
+       Ecore_Idler *add_attach_media_idler;
+
+       Elm_Theme *th;
+
+       /* for use volume key setting */
+       Ecore_Event_Handler *volkey_release_handler;
+       Ecore_Event_Handler *volkey_press_handler;
+       Ecore_Timer *vol_up_key_longpress;
+       Ecore_Timer *vol_down_key_longpress;
+
+       MSG_BUBBLE_DATA *bubble_data; /* For bubble data structure */
+       char *sim1_icon;
+       char *sim1_sendbtn_style;
+
+       Ecore_Event_Handler *main_win_focus_in_cb;
+       Ecore_Event_Handler *main_win_focus_out_cb;
+       MSG_SIM_PREFERENCE voice_preferred_sim;
+       MSG_ACTIVE_DATA_SUBSCRIPTION data_preferred_sim;
+
+} MSG_COMPOSER_VIEW_DATA_S;
+
+#endif                         /* __MSG_UI_COMPOSER_DATA_H_ */
diff --git a/composer/include/msg-ui-composer-external.h b/composer/include/msg-ui-composer-external.h
new file mode 100755 (executable)
index 0000000..865715d
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_COMPOSER_EXTERNAL_H__
+#define __MSG_COMPOSER_EXTERNAL_H__
+
+#include "msg-ui-composer-data.h"
+#include "msg-ui-common-utility.h"
+
+#define TOKEN_SEMICOLON ";"
+#define TOKEN_QUESTION "?"
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_external_call(MSG_COMPOSER_VIEW_DATA_S *cd,
+                                                                                                               COMPOSER_EXT_TYPE_E ext_type,
+                                                                                                               void *reserved);
+
+ui_gadget_h msg_ui_composer_launch_contact_detail_ug(MSG_COMPOSER_VIEW_DATA_S *cd, int index, const char *address, int type);
+ui_gadget_h msg_ui_composer_launch_composer_create(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle);
+ui_gadget_h msg_ui_composer_launch_add_to_bookmark_ug(MSG_COMPOSER_VIEW_DATA_S *cd, const char* url);
+void msg_ui_composer_launch_viewer_create(void *data, app_control_h svc_handle);
+int appsvc_launch_contacts(MSG_COMPOSER_VIEW_DATA_S *cd, int index, const char* address, int type);
+void __msg_ui_composer_contact_detail_reply_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data);
+
+#endif/*__MSG_COMPOSER_EXTERNAL_H__*/
diff --git a/composer/include/msg-ui-composer-main.h b/composer/include/msg-ui-composer-main.h
new file mode 100755 (executable)
index 0000000..fd2b843
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_MAIN_H_
+#define __MSG_UI_COMPOSER_MAIN_H_
+
+#include "msg-ui-composer-data.h"
+#include "msg-ui-composer-util.h"
+
+
+struct _msg_ui_translation_list_item {
+       char *name;
+       void (*func)(void *data, Evas_Object *obj, void *event_info);
+};
+extern struct _msg_ui_translation_list_item translation_menu_its[6];
+
+struct _SimIconNode {
+       char *name;
+       char *icon;
+       char *dim_colour;
+       char *normal_colour;
+       char *press_colour;
+};
+extern struct _SimIconNode simPopupIconNode[10];
+
+enum {
+       SIM_ICON_STATE_DISABLE = 0,
+       SIM_ICON_STATE_NORMAL,
+       SIM_ICON_STATE_PRESSED,
+}SIM_ICON_STATE_E;
+
+int msg_ui_composer_get_ref_count(void);
+void msg_ui_composer_increase_ref_count(void);
+void msg_ui_composer_decrease_ref_count(void);
+
+Evas_Object *msg_ui_composer_forward_not_possible_popup(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_RETURN_TYPE_E popup_type, app_control_h data);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_check_creation_mode_for_forward(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle);
+
+void msg_ui_composer_process_on_start(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h data);
+bool msg_ui_composer_process_on_create(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h data);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_init(MSG_COMPOSER_VIEW_DATA_S *cd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_create(MSG_COMPOSER_VIEW_DATA_S *cd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_start(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_rotate(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_ROTATE_TYPE_E rotate);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_reset(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_destroy(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_process_message(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle);
+void msg_ui_composer_get_create_mode_from_bundle(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle);
+
+void msg_ui_composer_change_language(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_change_region(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+void msg_ui_composer_reset_request(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_change_bubble_view(MSG_COMPOSER_VIEW_DATA_S *cd, msg_thread_id_t tid);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_change_composer_view(MSG_COMPOSER_VIEW_DATA_S *cd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_bubble_data_set(MSG_COMPOSER_VIEW_DATA_S *cd, int thread_id);
+void msg_ui_composer_editable_set(MSG_COMPOSER_VIEW_DATA_S *cd, Eina_Bool editable);
+void msg_ui_composer_bubble_send_del_result(void *data, app_control_h svc_handle);
+Evas_Object *msg_ui_composer_create_navi_title_bar(void *data);
+void msg_ui_composer_hide_navi_title(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_show_navi_title(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_navi_title_set(void *data);
+
+void msg_ui_composer_set_loading_focus(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+void msg_ui_composer_connect_handler(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_disconnect_handler(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+void msg_ui_composer_temporary_draft_message(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_save_temporary_draft_message(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+/* cb */
+void msgc_naviframe_more_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
+
+#endif/*__MSG_UI_COMPOSER_MAIN_H_*/
diff --git a/composer/include/msg-ui-composer-message-data.h b/composer/include/msg-ui-composer-message-data.h
new file mode 100755 (executable)
index 0000000..d7f2835
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef _MSG_UI_COMPOSER_MESSAGE_DATA_H_
+#define _MSG_UI_COMPOSER_MESSAGE_DATA_H_
+
+#include "msg-ui-composer-data.h"
+#include <time.h>
+#include <glib.h>
+
+
+/*********************
+ *
+ *     structures
+ *
+ *************** *******/
+
+typedef struct _MSG_COMPOSER_MMS_PAGE_S {
+       bool isText;
+       char body_text[COMPOSER_MMS_TEXT_MAX_BYTE + 1];
+
+       bool isImage;
+       bool isVideo;
+       char image_file_path[COMPOSER_FILEPATH_LEN_MAX + 1];
+
+       bool isSound;
+       char sound_file_path[COMPOSER_FILEPATH_LEN_MAX + 1];
+
+       int page_duration;
+
+} MSG_COMP_MMS_PAGE_S;
+
+typedef struct _MSG_COMPOSER_ATTACHMENT_DATA_S {
+       char filepath[COMPOSER_FILEPATH_LEN_MAX + 1];
+       char filename[COMPOSER_FILENAME_LEN_MAX + 1];
+       int filetype;
+} MSG_COMP_ATTACH_DATA_S;
+
+typedef struct _MSG_COMPOSER_MMS_DATA_S {
+       bool isTextTop;
+       bool isSubject;
+       char subject[COMPOSER_SUBJECT_MAX_BYTE + 1];
+       int page_count;
+       MSG_COMP_MMS_PAGE_S pagelist[COMPOSER_MMS_MAX_PAGE];
+       int attach_count;
+       MSG_COMP_ATTACH_DATA_S attachlist[COMPOSER_MMS_MAX_ATTACH_COUNT];
+} MSG_COMP_MMS_DATA_S;
+
+typedef struct _MSG_COMPOSER_SMS_DATA_S {
+       char *body_text;
+       int body_length;
+
+} MSG_COMP_SMS_DATA_S;
+
+typedef struct _MSG_COMPOSER_MESSAGE_DATA_S {
+       msg_struct_t msgInfo;
+
+       GSList *recp_list;
+       COMPOSER_MSG_TYPE_E msg_type;
+       MSG_COMP_SMS_DATA_S sms_data;
+       MSG_COMP_MMS_DATA_S mms_data;
+} MSG_COMP_MSG_DATA_S;
+
+#endif                         /* _MSG_UI_COMPOSER_MESSAGE_DATA_H_ */
diff --git a/composer/include/msg-ui-composer-message.h b/composer/include/msg-ui-composer-message.h
new file mode 100755 (executable)
index 0000000..2cf422b
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_MSG_H_
+#define        __MSG_UI_COMPOSER_MSG_H_
+
+#include "msg-ui-composer-data.h"
+/******************************
+ * structures
+ *******************************/
+
+typedef struct _COMPOSER_SMIL_REGION_S_ {
+       char szID[MAX_SMIL_REGION_ID + 1];
+       int left;
+       int top;
+       int width;
+       int height;
+       int bgcolor;
+} MSG_COMP_REGION_S;
+
+enum __COMPOSER_CONFIG_TYPE_E {
+       COMPOSER_CONFIG_TYPE_GENERAL = MSG_GENERAL_OPT,
+       COMPOSER_CONFIG_TYPE_SMS_SEND = MSG_SMS_SENDOPT,
+       COMPOSER_CONFIG_TYPE_SMSC_LIST = MSG_SMSC_LIST,
+       COMPOSER_CONFIG_TYPE_MMS_SEND = MSG_MMS_SENDOPT,
+       COMPOSER_CONFIG_TYPE_MMS_RECIEVE = MSG_MMS_RECVOPT,
+       COMPOSER_CONFIG_TYPE_MMS_CLASS = MSG_MMS_CLASSOPT,
+       COMPOSER_CONFIG_TYPE_MMS_STYLE = MSG_MMS_STYLEOPT,
+       COMPOSER_CONFIG_TYPE_PUSHMSG = MSG_PUSHMSG_OPT,
+       COMPOSER_CONFIG_TYPE_CBMSG = MSG_CBMSG_OPT,
+       COMPOSER_CONFIG_TYPE_VOICEMAIL = MSG_VOICEMAIL_OPT,
+       COMPOSER_CONFIG_TYPE_MMS_SIZE = MSG_MSGSIZE_OPT,
+};
+
+enum __COMPOSER_CREATION_MODE_E {
+       COMPOSER_CREATIONMODE_RESTRICTED = MSG_CREATION_MODE_RESTRICTED,
+       COMPOSER_CREATIONMODE_WARNING = MSG_CREATION_MODE_WARNING,
+       COMPOSER_CREATIONMODE_FREE = MSG_CREATION_MODE_FREE,
+};
+
+
+/*****************************
+ *     structures
+ ***************************/
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_init();
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_destroy();
+COMPOSER_RETURN_TYPE_E msg_ui_composer_create_new_message();
+COMPOSER_RETURN_TYPE_E msg_ui_composer_release_message();
+
+/* Msg type*/
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_msg_type(COMPOSER_MSG_TYPE_E msg_type);
+
+/* Recipient*/
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_add_address(char *number);
+GSList *msg_ui_composer_message_get_address();
+
+/* SMS*/
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_sms_body(char *body_text);
+
+/* MMS - attachment*/
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_add_attachments(const char *filepath, int filetype);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_attach_count(int attach_count);
+
+/* MMS - subject*/
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_subject(char *subject, int length);
+
+/* MMS - body*/
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_page_count(int page_count);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_is_text_top(bool isTextTop);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_mms_set_text(const char *text, int nPage);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_mms_set_media(const char *file_path, COMPOSER_MEDIA_TYPE_E media_type, int nPage);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_mms_set_page_duration(int nPage, int duration);
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_get_thread_id_by_address(msg_handle_t msg_handle, COMPOSER_LIST_TYPE_E type, void *addr_list, msg_thread_id_t *tid);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_delete_draft_message(msg_handle_t msg_handle, msg_thread_id_t tid, int protected_msgid);
+int msg_ui_composer_save_message(msg_handle_t msg_handle, int msg_id, msg_thread_id_t *tid);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_get_message_data(MSG_COMPOSER_VIEW_DATA_S *cd);
+#if _MSG_FEATURE_DSDS_ENABLED
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_make_and_send(msg_handle_t msg_handle, int msg_id, int encode_type, msg_thread_id_t *tid, int sim_number);
+#else
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_make_and_send(msg_handle_t msg_handle, int msg_id, int encode_type, msg_thread_id_t *tid);
+#endif
+msg_struct_t msg_ui_composer_message_make_preview(msg_handle_t msg_handle);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_loaded_data(void *composer_data, bool set_recipient);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_page_data(void *composer_data, int page, bool load_focus);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_load_message(msg_handle_t msg_handle, int msgID, bool is_forward_msg);
+
+#endif /*__MSG_UI_COMPOSER_MSG_H_*/
diff --git a/composer/include/msg-ui-composer-pageduration.h b/composer/include/msg-ui-composer-pageduration.h
new file mode 100755 (executable)
index 0000000..65c2173
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_PAGEDURATION_H_
+#define __MSG_UI_COMPOSER_PAGEDURATION_H_
+
+#include "msg-ui-composer-data.h"
+
+typedef enum {
+       MSGC_PAGE_DURATION_CUSTOM = 0,
+       MSGC_PAGE_DURATION_2 = 2,
+       MSGC_PAGE_DURATION_5 = 5,
+       MSGC_PAGE_DURATION_10 = 10,
+} MSGC_PAGE_DURATION_E;
+
+void msg_ui_composer_pageduration_popup_create(MSG_COMPOSER_VIEW_DATA_S *cd);
+/* get pageduration value from setting */
+int msg_ui_composer_pageduration_value_get(MSG_COMPOSER_VIEW_DATA_S *cd);
+#endif/*__MSG_UI_COMPOSER_PAGEDURATION_H_*/
diff --git a/composer/include/msg-ui-composer-popup.h b/composer/include/msg-ui-composer-popup.h
new file mode 100755 (executable)
index 0000000..4bf0916
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_POPUP_H_
+#define __MSG_UI_COMPOSER_POPUP_H_
+
+/* includes*/
+#include "msg-ui-composer-data.h"
+#include <Elementary.h>
+
+/* defines*/
+#define COMPOSER_STATUS_POPUP_DEFAULT_TIME     2
+
+enum {
+       COMPOSER_LIST_POPUP_LIST,
+       COMPOSER_LIST_POPUP_GENLIST,
+};
+
+enum {
+       MSGC_PROGRESS_TEXT,
+       MSGC_PROGRESS_MMS_MAX_SIZE_TEXT,
+};
+
+/* function prototypes*/
+void msg_ui_composer_destroy_popup(void *data, Evas_Object *popup);
+void msg_ui_composer_popup_delete_all(void *data);
+
+void msg_ui_composer_popup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_composer_text_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_composer_popup_back_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_composer_popup_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+Evas_Object *msg_ui_composer_create_popup_button(Evas_Object *parent, const char *package_str, const char *str_id);
+
+void msg_ui_composer_show_status_message(const char *msg);
+Evas_Object *msg_ui_composer_create_text_popup_with_hardkey_cb(Evas_Object *parent, MSG_COMPOSER_VIEW_DATA_S *cd, const char *msg,
+               Evas_Object_Event_Cb mouseup_cb, Eext_Event_Cb back_cb);
+
+Evas_Object *msg_ui_composer_create_text_popup(Evas_Object *parent, MSG_COMPOSER_VIEW_DATA_S *cd, const char *msg, int time);
+Evas_Object *msg_ui_composer_create_memory_full_popup(MSG_COMPOSER_VIEW_DATA_S *cd);
+Evas_Object *msg_ui_composer_create_text_btn_popup(MSG_COMPOSER_VIEW_DATA_S *cd, const char *msg, int time, const char *package_str, const char *str_id);
+Evas_Object *msg_ui_composer_create_list_popup(MSG_COMPOSER_VIEW_DATA_S *cd, const char *package_str, const char *title, Evas_Object *list, const char *style);
+Evas_Object *msg_ui_composer_create_checkbox_popup(MSG_COMPOSER_VIEW_DATA_S *cd, const char *title, const char *msg_package, const char *msg, const char *chk_msg_package, const char *check_msg);
+Evas_Object *msg_ui_composer_create_custom_popup(MSG_COMPOSER_VIEW_DATA_S *cd, const char *title, Evas_Object *parent, Evas_Object *layout);
+Evas_Object *msg_ui_composer_create_progress_popup(MSG_COMPOSER_VIEW_DATA_S *cd, const char *package_str, const char *str_id, int type);
+Evas_Object *msg_ui_composer_create_activity_indicator_popup(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+Eina_Bool msg_ui_composer_popup_exist(void *data);
+void msg_ui_composer_popup_focus(void *data);
+
+void msg_ui_composer_change_list_popup_layout(void *data, Evas_Object *popup, int list_popup_type, int rotate);
+void msg_ui_composer_change_grid_popup_layout(void *data, Evas_Object *popup, int rotate);
+
+
+#endif /* __MSG_UI_COMPOSER_POPUP_H_ */
diff --git a/composer/include/msg-ui-composer-predictsearch.h b/composer/include/msg-ui-composer-predictsearch.h
new file mode 100755 (executable)
index 0000000..cf24607
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_PREDICTSEARCH_H_
+#define __MSG_UI_COMPOSER_PREDICTSEARCH_H_
+
+/* includes*/
+#include "msg-ui-composer-data.h"
+#include <Elementary.h>
+
+/* defines*/
+#define COMPOSER_PS_TIMER 0.4
+#define COMPOSER_PSLIST_COUNT_AT_TIME 20
+
+/* enum types*/
+/* Genlist item height is defined based on font size.
+   Referred MSG_APP_FONT_SIZE_E enum*/
+typedef enum {
+       MSGC_PREDICTLIST_GENLIST_H_SMALL = 64,
+       MSGC_PREDICTLIST_GENLIST_H_NORMAL = 68,
+       MSGC_PREDICTLIST_GENLIST_H_LARGE = 82,
+       MSGC_PREDICTLIST_GENLIST_H_HUGE = 94,
+       MSGC_PREDICTLIST_GENLIST_H_GIANT = 110,
+       MSGC_PREDICTLIST_GENLIST_H_MAX
+}  MSGC_PREDICTLIST_GENLIST_H;
+
+/* structures*/
+
+/* function prototypes*/
+Evas_Object *msg_ui_composer_predictsearch_list_create(Evas_Object *parent, MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_predictsearch_list_delete(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_predictsearch_request(MSG_COMPOSER_VIEW_DATA_S *cd, const char *str);
+void msg_ui_composer_predictsearch_clear(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+#endif                         /* __MSG_UI_COMPOSER_PREDICTSEARCH_H_ */
diff --git a/composer/include/msg-ui-composer-recipient-callback.h b/composer/include/msg-ui-composer-recipient-callback.h
new file mode 100755 (executable)
index 0000000..0d6c107
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_RECIPIENT_CALLBACK_H_
+#define __MSG_UI_COMPOSER_RECIPIENT_CALLBACK_H_
+
+/* includes*/
+#include "msg-ui-composer-data.h"
+#include <Elementary.h>
+
+/*function prototypes*/
+/*change number popup cb*/
+#ifdef MSGC_SUPPORT_USE_OTHER_NUMBER
+void msg_ui_recipient_change_number_popup_list_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+char *msg_ui_recipient_change_number_gl_text_get(void *data, Evas_Object *obj, const char *part);
+void msg_ui_recipient_change_number_gl_del(void *data, Evas_Object *obj);
+#endif
+void msg_ui_recipient_select_popup_list_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
+void msg_ui_recipient_contact_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_contact_btn_unpressed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_contact_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_recent_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_recent_btn_unpressed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_recent_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_plus_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_plus_btn_unpressed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_plus_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
+/*multibutton cb*/
+void msg_ui_recipient_mbe_focused_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_mbe_unfocused_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_mbe_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_mbe_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_entry_maxlength_reached_cb(void *data, Evas_Object *obj, void *event_info);
+
+void msg_ui_recipient_mbe_item_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+Eina_Bool msg_ui_recipient_mbe_item_filter_cb(Evas_Object *obj, const char *item_label, void *item_data, void *data);
+void msg_ui_recipient_mbe_item_added_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_mbe_item_deleted_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_mbe_item_selected_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_mbe_expanded_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_mbe_contracted_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_mbe_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+/*entry in mbe cb*/
+void msg_ui_recipient_entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_entry_activated_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_entry_filter_cb(void *data, Evas_Object *entry, char **text);
+
+Eina_Bool msg_ui_composer_recipient_ht_resize_idler(void *data);
+
+void msg_ui_recipient_entry_focused_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_entry_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
+void msg_ui_recipient_entry_key_down_cb (void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_entry_key_up_cb (void *data, Evas *e, Evas_Object *obj, void *event_info);
+
+void msg_ui_recipient_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_recipient_mbe_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+
+#endif/*__MSG_UI_COMPOSER_RECIPIENT_CALLBACK_H_*/
diff --git a/composer/include/msg-ui-composer-recipient.h b/composer/include/msg-ui-composer-recipient.h
new file mode 100755 (executable)
index 0000000..88567c9
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_RECIPIENT_H_
+#define __MSG_UI_COMPOSER_RECIPIENT_H_
+
+/* includes*/
+#include <Elementary.h>
+#include "msg-ui-composer-data.h"
+
+RECIPIENT_S *msg_ui_composer_recipient_create(Evas_Object *p, RECIPIENT_MODE_E mode, void *data);
+void msg_ui_composer_recipient_delete(RECIPIENT_S *rd);
+void msg_ui_composer_recipient_update(RECIPIENT_S *rd);
+void msg_ui_composer_recipient_clear(RECIPIENT_S *rd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_append(RECIPIENT_S *rd, const char *recipient, int index);
+
+void msg_ui_composer_recipient_apply_font_size(MSG_COMPOSER_VIEW_DATA_S *cd, const char *font_sytle);
+
+void msg_ui_composer_recipient_update_recipient_height(RECIPIENT_S *rd);
+void msg_ui_composer_recipient_hide_mbe_and_update_entry(RECIPIENT_S *rd);
+void msg_ui_composer_recipient_add_recipient_entry_to_mbe(void *data);
+const char *msg_ui_composer_recipient_entry_text_get(RECIPIENT_S *rd);
+void msg_ui_composer_recipient_entry_text_set(RECIPIENT_S *rd, const char *str);
+
+void msg_ui_composer_recipient_focus_set(RECIPIENT_S *rd);
+Evas_Object *msg_ui_composer_recipient_entry_get(RECIPIENT_S *rd);
+void msg_ui_composer_recipient_expanded_set(RECIPIENT_S *rd, Eina_Bool expanded);
+
+
+bool msg_ui_composer_recipient_is_mms(MSG_COMPOSER_VIEW_DATA_S *cd);
+Eina_Bool msg_ui_composer_recipient_vaild_check(const char *recipient);
+
+void msg_ui_composer_show_hide_mbe(RECIPIENT_S *rd, bool show);
+
+void msg_ui_composer_recipient_create_no_recipient_icon(RECIPIENT_S *rd);
+void msg_ui_composer_recipient_destroy_no_recipient_icon(RECIPIENT_S *rd);
+void msg_ui_composer_recipient_select_popup_create(void *data);
+void msg_ui_composer_recipient_selected_delete(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_recipient_selected_edit(MSG_COMPOSER_VIEW_DATA_S *cd);
+RECIPIENT_ITEM_S *msg_ui_composer_recipient_selected_item_data_get(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+Eina_Bool msg_ui_composer_recipient_invalid_address_popup_cb(void *data);
+Eina_Bool msg_ui_composer_recipient_maximum_count_popup_cb(void *data);
+bool msg_ui_composer_recipient_check_showing_popup_condition(void *data);
+
+#ifdef MSGC_SUPPORT_USE_OTHER_NUMBER
+void msg_ui_composer_recipient_create_change_number_popup(void *data);
+#endif
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_read_data(MSG_COMPOSER_VIEW_DATA_S *cd);
+char *msg_ui_composer_get_recipient_str(MSG_COMPOSER_VIEW_DATA_S *cd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_duplicate_check(RECIPIENT_S *rd, const char *recipient);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_set_recipient_list(MSG_COMPOSER_VIEW_DATA_S *cd, msg_thread_id_t thread_id);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_add_recipient_list(MSG_COMPOSER_VIEW_DATA_S *cd, const char *recipient, const char *display, int index);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_clear_recipient_list(MSG_COMPOSER_VIEW_DATA_S *cd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_add_invalid_recipient_list(MSG_COMPOSER_VIEW_DATA_S *cd, const char *recipient);
+void msg_ui_composer_recipient_clear_invalid_recipient_list(MSG_COMPOSER_VIEW_DATA_S *cd);
+char *msg_ui_composer_recipient_get_invalid_recipient_popup_str(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+RECIPIENT_ITEM_S *msg_ui_composer_recipient_item_make_by_string(const char *str);
+COMPOSER_RECP_ADDR_E msg_ui_composer_recipient_type_get(const char *recipient);
+COMPOSER_RECP_ADDR_E msg_ui_composer_recipient_addr_type_get(RECIPIENT_S *rd);
+void msg_ui_composer_recipient_addr_type_set(RECIPIENT_S *rd, COMPOSER_RECP_ADDR_E type);
+int msg_ui_composer_recipient_count_get(RECIPIENT_S *rd);
+Eina_List *msg_ui_composer_recipient_invalid_recipient_list_get(RECIPIENT_S *rd);
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_set_loaded_data(void *data, const char *recipient, int index);
+
+#endif/* __MSG_UI_COMPOSER_RECIPIENT_H_ */
diff --git a/composer/include/msg-ui-composer-res.h b/composer/include/msg-ui-composer-res.h
new file mode 100755 (executable)
index 0000000..3fd5162
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_RES_H_
+#define __MSG_UI_COMPOSER_RES_H_
+
+/***********************
+ *  includes
+ ************************/
+#include <msg-ui-image-resource.h>
+
+/************************
+ * defines
+ ************************/
+#ifndef PKGNAME
+#define PKGNAME "org.tizen.message"
+#endif
+
+#ifndef PREFIX
+#define PREFIX "/usr/apps/" PKGNAME
+#endif
+
+#ifndef RESDIR
+#define RESDIR PREFIX "/res"
+#endif
+
+#ifndef EDJDIR
+#define EDJDIR  RESDIR "/edje"
+#endif
+
+#ifndef IMGDIR
+#define IMGDIR  RESDIR "/images"
+#endif
+
+#ifndef DATADIR
+#define DATADIR PREFIX "/data"
+#endif
+
+#define MSGC_UI_EDJ_PATH                                       EDJDIR
+#define MSGC_UI_DATA_PATH                                      "/opt/usr/apps/"PKGNAME"/shared/trusted/msg-composer-efl"
+
+/*edj*/
+#define MSGC_UI_DEFAULT_EDJ                            MSGC_UI_EDJ_PATH "/composer.edj"
+
+/*edj group*/
+#define MSGC_EDJ_GRP_SUBJECT_FIELD                     "composer/subject/main"
+#define MSGC_EDJ_GRP_RECIPIENT_TO_FIELD        "composer/recipient/to_field"
+#define MSGC_EDJ_GRP_RECIPIENT_BT_FIELD        "composer/recipient/bt_field"
+#define MSGC_EDJ_GRP_PREDICTSEARCH_FIELD       "composer/predictsearch/main"
+#define MSGC_EDJ_GRP_BODY_FIELD                        "composer/body/main"
+#define MSGC_EDJ_GRP_BODY_PAGE_MAIN            "composer/body/page_main"
+#define MSGC_EDJ_GRP_BODY_PAGE                                 "composer/body/page"
+#define MSGC_EDJ_GRP_BODY_MEDIA_MAIN                   "composer/body/media_main"
+#define MSGC_EDJ_GRP_BODY_MEDIA_SOUND                  "composer/body/media_sound"
+#define MSGC_EDJ_GRP_BODY_MEDIA_IMAGE                  "composer/body/media_image"
+#define MSGC_EDJ_GRP_ATTACHMENT_MAIN                   "composer/attachment/main"
+#define MSGC_EDJ_GRP_ATTACHMENT_ITEM                   "composer/attachment/item"
+#define MSGC_EDJ_GRP_CONTENT_LAYOUT            "composer/content/full"
+#define MSGC_EDJ_GRP_DATEFIELD                         "composer/datefield"
+
+
+#endif/* __MSG_UI_COMPOSER_RES_H_ */
diff --git a/composer/include/msg-ui-composer-subject.h b/composer/include/msg-ui-composer-subject.h
new file mode 100755 (executable)
index 0000000..24c262d
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_COMPOSER_SUBJECT_H_
+#define __MSG_UI_COMPOSER_SUBJECT_H_
+
+/* includes*/
+#include "msg-ui-composer-data.h"
+
+/* function prototypes*/
+COMPOSER_RETURN_TYPE_E msg_ui_composer_add_subject(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_subject_focus_set(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_subject_apply_font_size(MSG_COMPOSER_VIEW_DATA_S *cd, const char *font_sytle);
+Evas_Object *msg_ui_composer_create_subject_layout(Evas_Object *parent, MSG_COMPOSER_VIEW_DATA_S *cd);
+bool msg_ui_composer_has_subject(MSG_COMPOSER_VIEW_DATA_S *cd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_subject_clear(MSG_COMPOSER_VIEW_DATA_S *cd);
+void msg_ui_composer_remove_subject(void *data);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_remove_subject_layout(MSG_COMPOSER_VIEW_DATA_S *cd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_read_subject(MSG_COMPOSER_VIEW_DATA_S *cd);
+COMPOSER_RETURN_TYPE_E msg_ui_composer_subject_set_loaded_data(void *data, const char *subject);
+
+#endif /*__MSG_UI_COMPOSER_SUBJECT_H_*/
diff --git a/composer/src/bubble/msg-ui-composer-bubble-callback.c b/composer/src/bubble/msg-ui-composer-bubble-callback.c
new file mode 100755 (executable)
index 0000000..b05ca61
--- /dev/null
@@ -0,0 +1,1836 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-composer-bubble.h"
+#include "msg-ui-composer-data.h"
+#include "msg-ui-composer-main.h"
+#include "msg-ui-composer-body.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-recipient.h"
+#include "msg-ui-composer-external.h"
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-message.h"
+#include <fcntl.h>
+#include <feedback.h>
+#include <app.h>
+#include <media_content.h>
+#include <app_control_internal.h>
+
+#define BUBBLE_TITLE_MENU_GENLIST_MAX_LINE 4
+#define BUBBLE_TITLE_MENU_GENLIST_1LINE_HEIGHT 104
+
+#define BUBBLE_RETURN_DELETE_CANCEL 1000
+#define BUBBLE_LABEL_HEIGHT_MIN 64
+#define BUBBLE_LABEL_WIDTH_MIN 480
+
+Elm_Genlist_Item_Class itc_popup = {0,};       /** itc for list style popup */
+
+Evas_Coord g_mouse_down_x = 0, g_mouse_down_y = 0;
+
+static Evas_Object *__msg_ui_bubble_delete_confirm_popup(PMSG_BUBBLE_DATA pData);
+static void __msg_ui_bubble_popup_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_bubble_timezone_change_cb(void *data);
+static void _show_mbe_with_contacts(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+static void msg_ui_bubble_sel_all_layout_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       D_ENTER;
+       msg_ui_bubble_sel_all_clicked_cb(data, NULL, NULL);
+}
+
+static void _bubble_show_select_all_layout(void *data)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *sel_all_layout = NULL;
+       Evas_Object *sel_check = NULL;
+
+       edje_object_signal_emit(_EDJ(cd->content_layout), "show,select,all", "");
+       sel_all_layout = msg_common_create_select_all_layout(cd->navi_bar);
+       elm_object_part_content_set(cd->content_layout, "swl.sel_all", sel_all_layout);
+       elm_object_signal_callback_add(sel_all_layout, "sel_all_layout,clicked", "", msg_ui_bubble_sel_all_layout_clicked_cb, cd);
+
+       sel_check = elm_check_add(sel_all_layout);
+       evas_object_smart_callback_add(sel_check, "changed", msg_ui_bubble_sel_all_clicked_cb, cd);
+       evas_object_propagate_events_set(sel_check, EINA_FALSE);
+       elm_object_part_content_set(sel_all_layout, "elm.swallow.select_icon", sel_check);
+       evas_object_show(sel_check);
+
+       elm_object_domain_translatable_part_text_set(sel_all_layout, "elm.select_all_text", MESSAGE_PKGNAME, "IDS_MSG_MBODY_SELECT_ALL");
+}
+
+static void _bubble_remove_select_all_layout(void *data)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *sel_all_layout = elm_object_part_content_get(cd->content_layout, "swl.sel_all");
+
+       if (sel_all_layout) {
+               Evas_Object *sel_check = elm_object_part_content_get(sel_all_layout, "elm.swallow.select_icon");
+               if (sel_check) {
+                       elm_object_part_content_unset(sel_all_layout, "elm.swallow.select_icon");
+                       evas_object_del(sel_check);
+               }
+               elm_object_part_text_set(sel_all_layout, "elm.select_all_text", "");
+               elm_object_part_content_unset(cd->content_layout, "swl.sel_all");
+               evas_object_del(sel_all_layout);
+       }
+       edje_object_signal_emit(_EDJ(cd->content_layout), "hide,select,all", "");
+}
+
+static void _bubble_show_normal_mode(void *data)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(!data, "data is NULL!!");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = data;
+       PMSG_BUBBLE_DATA pData = cd->bubble_data;
+       D_MSG_RETM_IF(!pData, "pData is NULL!!");
+
+       Eina_List *l = NULL;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+
+       edje_object_signal_emit(_EDJ(cd->navi_title_layout), "hide,subtitle", "");
+       elm_object_part_text_set(cd->navi_title_layout, "subtitle_text", "");
+       l = NULL;
+       PBUBBLE_PACKED_INFO packed_data = NULL;
+       EINA_LIST_FOREACH(pData->packed_list, l, packed_data) {
+                       if (packed_data && packed_data->data && packed_data->layout_type == BUBBLE_PACKED_LAYOUT_BUBBLE) {
+                               item_data = (PMSG_COMMON_BUBBLE_INFO_S) packed_data->data;
+
+                               if (item_data) {
+                                       if (item_data->chk) {
+                                               item_data->chk = elm_object_part_content_unset(item_data->label, "elm.bubble.swallow.select_icon");
+                                               evas_object_hide(item_data->chk);
+                                       }
+                                       if (item_data->isCheck)
+                                               elm_check_state_set(item_data->chk, EINA_FALSE);
+                                       if (item_data->label) {
+                                               elm_object_signal_emit(item_data->label, "elm,state,select,disable", "elm");
+                                               Evas_Object *edje_obj = (Evas_Object *)edje_object_part_object_get(_EDJ(item_data->label), "base");
+                                               evas_object_event_callback_del(edje_obj, EVAS_CALLBACK_MOUSE_DOWN, msg_ui_bubble_item_mouse_down_cb);
+
+                                               evas_object_size_hint_min_set(item_data->label, ELM_SCALE_SIZE(BUBBLE_LABEL_WIDTH_MIN), ELM_SCALE_SIZE(BUBBLE_LABEL_HEIGHT_MIN));
+                                               msg_ui_bubble_update_bubble(pData, item_data);
+                                       }
+                               }
+                       }
+               }
+       l = NULL;
+       item_data = NULL;
+       EINA_LIST_FOREACH(pData->bubble_list, l, item_data) {
+               if (item_data) {
+                       item_data->isCheck = false;
+               }
+       }
+
+       pData->chk_list = eina_list_free(pData->chk_list);
+
+       pData->viewmode = BUBBLE_NORMAL_VIEW;
+
+       msg_ui_bubble_change_normal_navi_control(pData);
+
+       D_LEAVE;
+}
+
+static void _bubble_change_edit_mode_title(PMSG_BUBBLE_DATA pData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pData, "pData is NULL!!");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)pData->callback_data;
+       Evas_Object *content = NULL;
+       char count_str[DEF_BUF_LEN_S] =  {'0',};
+       char *text_temp = NULL;
+
+       /* Clear all items on the title */
+       content = elm_object_part_content_unset(cd->navi_title_layout, "title_btn");
+       if (content)
+               evas_object_hide(content);
+
+       msg_ui_bubble_remove_title_contact_image(pData);
+
+       elm_object_part_text_set(cd->navi_title_layout, "title_text", "");
+       edje_object_signal_emit(_EDJ(cd->navi_title_layout), "show,select,info", "");
+
+       /** Hide button down arrow in title menu */
+       edje_object_signal_emit(_EDJ(cd->navi_title_layout), "hide,arrow", "");
+
+       text_temp = dgettext(MESSAGE_PKGNAME, "IDS_MSG_HEADER_PD_SELECTED_ABB3");
+       snprintf(count_str, sizeof(count_str), text_temp, 0);
+       elm_object_part_text_set(cd->navi_title_layout, "delete_title_text", count_str);
+
+       D_LEAVE;
+}
+
+static void _progress_popup_delete(PMSG_BUBBLE_DATA pData)
+{
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)pData->callback_data;
+
+       msg_ui_bubble_destroy_popup(pData);
+
+       edje_object_signal_emit(_EDJ(cd->navi_title_layout), "hide,subtitle", "");
+       elm_object_part_text_set(cd->navi_title_layout, "subtitle_text", "");
+}
+
+static void _delete_finish(PMSG_BUBBLE_DATA pData)
+{
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)pData->callback_data;
+
+       if (pData->popup)
+               _progress_popup_delete(pData);
+
+       if (pData->del_index == pData->bubble_count)
+               pData->bubble_count = 0;
+
+       bool isDraft = msg_ui_composer_common_is_send_possible(cd);
+       _bubble_show_normal_mode(pData->callback_data);
+       if (pData->bubble_count == 0 && isDraft) {
+               msg_ui_bubble_change_composer_view(pData);
+       } else {
+               msg_ui_bubble_list_load(pData, false);
+       }
+       msg_ui_composer_load_last_focused_entry(cd);
+
+       pData->del_thread = NULL;
+}
+
+static Eina_Bool _delete_finish_idler_cb(void *data)
+{
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
+       PMSG_BUBBLE_DATA pData = (PMSG_BUBBLE_DATA)data;
+
+       msg_ui_bubble_show_deleted_info(pData);
+       _delete_finish(pData);
+
+       pData->del_result_idler = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static Eina_Bool _delete_finish_timer_cb(void *data)
+{
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
+       PMSG_BUBBLE_DATA pData = (PMSG_BUBBLE_DATA)data;
+
+       MSG_ECORE_IDLER_DEL(pData->del_result_idler);
+       pData->del_result_idler = ecore_idler_add(_delete_finish_idler_cb, pData);
+       pData->del_result_timer = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void _del_thread_end_cancel_cb(void *data, Ecore_Thread *thread)
+{
+       D_MSG_RETM_IF(!thread || !data, "thread or data is NULL.");
+
+       PMSG_BUBBLE_DATA pData = (PMSG_BUBBLE_DATA)data;
+
+       pData->del_thread = NULL;
+
+       if ((pData->del_index == pData->check_cnt) || (pData->bubble_count == 1)) {
+               MSG_TIMER_OBJECT_DEL(pData->del_result_timer);
+               pData->del_result_timer = ecore_timer_add(0.1, _delete_finish_timer_cb, pData);
+       } else {
+               if (!pData->del_cancel)
+                       msg_ui_bubble_show_notify(pData, MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_DELETE");
+
+               _delete_finish(pData);
+               pData->del_cancel = false;
+       }
+}
+
+static void _del_thread_feedback_fn(void *data, Ecore_Thread *thread, void *msg_data)
+{
+       D_MSG_RETM_IF(!thread || !data || !msg_data, "thread or data or msg_data is NULL.");
+
+       PMSG_BUBBLE_DATA pData = (PMSG_BUBBLE_DATA)data;
+       int *ret = msg_data;
+
+       D_MSG("Delete message return value =[%d]", *ret);
+       if (*ret == MSG_SUCCESS) {
+               if (pData->progressbar) {
+                       if (pData->bubble_count == 1)
+                               elm_progressbar_value_set(pData->progressbar, (double) (pData->del_index + 1) / pData->bubble_count);
+                       else
+                               elm_progressbar_value_set(pData->progressbar, (double) (pData->del_index + 1) / pData->check_cnt);
+               }
+
+               pData->del_index++;
+       } else {
+               ecore_thread_cancel(pData->del_thread);
+       }
+
+       if (ret)
+               free(ret);
+}
+
+static void _del_thread_fn(void *data, Ecore_Thread *thread)
+{
+       D_MSG_RETM_IF(!data, "data is NULL!!");
+
+       PMSG_BUBBLE_DATA pData = (PMSG_BUBBLE_DATA)data;
+
+       Eina_List *l;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       int *ret = NULL;
+       msg_handle_t temp_msgHandle = NULL;
+       msg_error_t err = MSG_SUCCESS;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)pData->callback_data;
+       bool isDraft = msg_ui_composer_common_is_send_possible(cd);
+
+
+       err = msg_open_msg_handle(&temp_msgHandle);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_open_msg_handle failed, Error=[%d]\n", err);
+               return;
+       }
+
+       if ((pData->bubble_count == 1) && (isDraft == 1)) {
+               ret = calloc(1, sizeof(int));
+               item_data = (PMSG_COMMON_BUBBLE_INFO_S)eina_list_nth(pData->bubble_list, 0);
+               if (item_data) {
+                       D_MSG("del_msg_id = [%d]", item_data->msgId);
+                       *ret = msg_delete_message(temp_msgHandle, item_data->msgId);
+                       ecore_thread_feedback(thread, (void *)ret);
+
+                       if (*ret != MSG_SUCCESS)
+                               goto FREE_MEM;
+               } else {
+                       *ret = MSG_ERR_NULL_POINTER;
+                       ecore_thread_feedback(thread, (void *)ret);
+                       goto FREE_MEM;
+               }
+       } else {
+               EINA_LIST_FOREACH(pData->chk_list, l, item_data) {
+                       ret = calloc(1, sizeof(int));
+                       if (pData->del_cancel == true) {
+                               *ret = BUBBLE_RETURN_DELETE_CANCEL;
+                               ecore_thread_feedback(thread, (void *)ret);
+                               break;
+                       }
+
+                       if (item_data) {
+                               D_MSG("del_msg_id = [%d]", item_data->msgId);
+                               *ret = msg_delete_message(temp_msgHandle, item_data->msgId);
+
+                               ecore_thread_feedback(thread, (void *)ret);
+
+                               if (*ret != MSG_SUCCESS)
+                                       break;
+                       } else {
+                               *ret = MSG_ERR_NULL_POINTER;
+                               ecore_thread_feedback(thread, (void *)ret);
+                               break;
+                       }
+               }
+       }
+FREE_MEM:
+       if (temp_msgHandle != NULL) {
+               err = msg_close_msg_handle(&temp_msgHandle);
+               if (err != MSG_SUCCESS)
+                       D_EMSG("msg_close_msg_handle error, ret = [%d]", err);
+       }
+}
+
+static void _del_all_item(PMSG_BUBBLE_DATA pData)
+{
+       D_ENTER;
+
+       msg_error_t err = MSG_SUCCESS;
+
+       err = msg_delete_thread_message_list(pData->msgHandle, pData->threadId, true);
+
+       if (err == MSG_SUCCESS) {
+               pData->bubble_count = 0;
+               msg_ui_bubble_show_deleted_info(pData);
+       } else {
+               msg_ui_bubble_show_notify(pData, MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_DELETE");
+
+               _bubble_show_normal_mode(pData->callback_data);
+               msg_ui_bubble_list_load(pData, false);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_change_normal_navi_control(PMSG_BUBBLE_DATA pData)
+{
+       D_ENTER;
+
+       if (!pData)
+                       return;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = pData->callback_data;
+
+       elm_object_part_text_set(cd->navi_title_layout, "delete_title_text", "");
+       msg_ui_bubble_remove_title_button(pData, BUBBLE_TITLE_BUTTON_1);
+       msg_ui_bubble_remove_title_button(pData, BUBBLE_TITLE_BUTTON_2);
+       edje_object_signal_emit(_EDJ(cd->navi_title_layout), "hide,select,info", "");
+       edje_object_signal_emit(_EDJ(cd->navi_title_layout), "show,arrow", "");
+       /* change title */
+       msg_ui_composer_navi_title_set(cd);
+
+       /* remove select all layout */
+       _bubble_remove_select_all_layout(cd);
+
+       msg_ui_composer_editable_set(cd, EINA_TRUE);
+}
+
+void msg_ui_popup_close_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_BUBBLE_DATA pData = (PMSG_BUBBLE_DATA)data;
+       msg_ui_bubble_destroy_popup(pData);
+}
+
+static void _show_mbe_with_contacts(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       D_MSG_RETM_IF(!bubble_data, "bubble_data is NULL!!");
+
+       msg_ui_composer_unset_view(cd);
+
+       if (bubble_data->addr_list.addr_cnt == 1) {
+               int pid = get_contact_index_by_recipient(bubble_data->addr_list.addr_info[0].address);
+               if (pid > 0) {
+                       if (bubble_data->bubble_from_contact) {
+                               cd->not_show_saving_draft_popup = true;
+                               ug_destroy_me(cd->ug);
+                       } else {
+                               msg_ui_composer_save_temporary_draft_message(cd);
+                               appsvc_launch_contacts(cd, pid, NULL, PERSON_ID_TYPE);
+                       }
+               } else {
+                       msg_ui_bubble_destroy_popup(bubble_data);
+                       bubble_data->call_option_enabled = TRUE;
+                       bubble_data->popup = msg_ui_bubble_create_add_to_contact_popup(bubble_data, bubble_data->addr_list.addr_info[0].address);
+                       bubble_data->popup_type = BUBBLE_POPUP_ADD_TO_CONTACT_SINGLE;
+               }
+       } else if (bubble_data->addr_list.addr_cnt > 1) {
+               msg_ui_bubble_launch_recipient_list_view(bubble_data);
+       } else {
+               D_EMSG("invalied address count [%d]", bubble_data->addr_list.addr_cnt);
+               }
+       D_LEAVE;
+}
+
+void msg_ui_bubble_title_button_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       _show_mbe_with_contacts(cd);
+       D_LEAVE;
+}
+
+void msg_ui_bubble_down_button_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       _show_mbe_with_contacts(cd);
+       D_LEAVE;
+}
+
+static void __msg_ui_bubble_handle_contact_update(PMSG_BUBBLE_DATA bubble_data)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data);
+       if (bubble_data->ug_state == BUBBLE_UG_PAUSE) {
+               bubble_data->contact_changed = true;
+       } else if (bubble_data->ug_state == BUBBLE_UG_START) {
+               if (bubble_data->viewmode == BUBBLE_NORMAL_VIEW) {
+                       msg_ui_bubble_update_title_name_button(bubble_data);
+               } else if (bubble_data->viewmode == BUBBLE_RECIPIENT_VIEW) {
+                       /* update recipient list */
+               }
+       } else {
+               D_MSG("bubble_data->ug_state = [%d], bubble_data->viewmode = [%d]", bubble_data->ug_state, bubble_data->viewmode);
+       }
+}
+
+void msg_ui_bubble_contact_changed_cb(const char *view_uri, void *user_data)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !user_data);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)user_data;
+       __msg_ui_bubble_handle_contact_update(bubble_data);
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_contact_display_order_changed_cb(contacts_name_display_order_e name_display_order, void *user_data)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !user_data);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)user_data;
+       __msg_ui_bubble_handle_contact_update(bubble_data);
+
+       D_LEAVE;
+}
+
+static int __msg_ui_bubble_list_get_unread_count(PMSG_BUBBLE_DATA bubble_data, msg_handle_t msgHandle)
+{
+       D_MSG_RETVM_IF(!bubble_data, 0, "bubble_data is NULL!!");
+       D_MSG_RETVM_IF(!msgHandle, 0, "msgHandle is NULL!!");
+
+       int err = MSG_SUCCESS;
+       int unread_cnt = 0;
+       msg_struct_t thread_info = msg_create_struct(MSG_STRUCT_THREAD_INFO);
+       err = msg_get_thread(msgHandle, bubble_data->threadId, thread_info);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("fail to msg_count_message : err = %d", err);
+               msg_release_struct(&thread_info);
+               return FALSE;
+       }
+
+       msg_get_int_value(thread_info, MSG_THREAD_UNREAD_COUNT_INT, &unread_cnt);
+       msg_release_struct(&thread_info);
+
+       D_MSG("Unread count = %d", unread_cnt);
+
+       return unread_cnt;
+}
+
+static void msg_ui_bubble_list_update_read_status(PMSG_BUBBLE_DATA bubble_data, msg_handle_t msgHandle)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data);
+
+
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+
+       msg_error_t err = MSG_SUCCESS;
+       msg_handle_t temp_msgHandle = NULL;
+       int unread_cnt = 0;
+
+       if (msgHandle == NULL) {
+               err = msg_open_msg_handle(&temp_msgHandle);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_open_msg_handle failed, Error=[%d]\n", err);
+                       return;
+               }
+               unread_cnt = __msg_ui_bubble_list_get_unread_count(bubble_data, temp_msgHandle);
+               if (unread_cnt > 0)
+                       msg_set_conversation_to_read(temp_msgHandle, bubble_data->threadId);
+       } else {
+               unread_cnt = __msg_ui_bubble_list_get_unread_count(bubble_data, msgHandle);
+               if (unread_cnt > 0)
+                       msg_set_conversation_to_read(msgHandle, bubble_data->threadId);
+       }
+
+       Eina_List *l = NULL;
+       EINA_LIST_FOREACH(bubble_data->bubble_list, l, item_data) {
+               if (item_data) {
+                       if (!item_data->bRead)
+                               item_data->bRead = true;
+               }
+       }
+
+       if (temp_msgHandle != NULL) {
+               err = msg_close_msg_handle(&temp_msgHandle);
+               if (err != MSG_SUCCESS)
+                       D_EMSG("msg_close_msg_handle error, ret = [%d]", err);
+       }
+
+       D_LEAVE;
+}
+
+static void *msg_ui_bubble_list_update_read_status_thread_fn(void *data)
+{
+       D_ENTER;
+       if (!data) {
+               D_EMSG("bubble_data is NULL");
+               return NULL;
+       }
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       msg_ui_bubble_list_update_read_status(bubble_data, NULL);
+
+       bubble_data->update_read_status_thread = 0;
+
+       return NULL;
+}
+
+void msg_ui_bubble_list_update_read_status_thread_call(PMSG_BUBBLE_DATA bubble_data)
+{
+       D_MSG_RETM_IF(bubble_data == NULL, "bubble_data is NULL");
+
+       if (bubble_data->update_read_status_thread) {
+               D_EMSG("update_read_status_thread is already created.");
+               return;
+       }
+
+       if (pthread_create(&bubble_data->update_read_status_thread, NULL, msg_ui_bubble_list_update_read_status_thread_fn, bubble_data)) {
+               D_EMSG("Fail to create a thread.");
+               return;
+       }
+}
+
+Eina_Bool msg_ui_bubble_key_press_up_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_FALSE, "data is NULL");
+       D_MSG_RETVM_IF(event == NULL, EINA_FALSE, "event is NULL");
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+
+       if (bubble_data->press_up_handler) {
+               ecore_event_handler_del(bubble_data->press_up_handler);
+               bubble_data->press_up_handler = NULL;
+       }
+       if (bubble_data->toudh_up_handler) {
+               ecore_event_handler_del(bubble_data->toudh_up_handler);
+               bubble_data->toudh_up_handler = NULL;
+       }
+
+       msg_ui_bubble_list_update_read_status_thread_call(bubble_data);
+
+       return EINA_TRUE;
+}
+
+Eina_Bool msg_ui_bubble_key_press_down_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       if (!data) {
+               D_EMSG("bubble_data is NULL");
+               return ECORE_CALLBACK_DONE;
+       }
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+
+       if (bubble_data->toudh_down_handler) {
+               ecore_event_handler_del(bubble_data->toudh_down_handler);
+               bubble_data->toudh_down_handler = NULL;
+       }
+
+       if (bubble_data->press_down_handler) {
+               ecore_event_handler_del(bubble_data->press_down_handler);
+               bubble_data->press_down_handler = NULL;
+       }
+
+       if (bubble_data->press_up_handler) {
+               ecore_event_handler_del(bubble_data->press_up_handler);
+               bubble_data->press_up_handler = NULL;
+       }
+       bubble_data->press_up_handler = ecore_event_handler_add(ECORE_EVENT_KEY_UP, msg_ui_bubble_key_press_up_cb, (void *)bubble_data);
+
+       if (bubble_data->toudh_up_handler) {
+               ecore_event_handler_del(bubble_data->toudh_up_handler);
+               bubble_data->toudh_up_handler = NULL;
+       }
+       bubble_data->toudh_up_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP, msg_ui_bubble_key_press_up_cb, (void *)bubble_data);
+
+       D_LEAVE;
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+void msg_ui_bubble_msg_storage_change_cb(msg_handle_t handle, msg_storage_change_type_t type, msg_id_list_s *pMsgIdList, void *user_param)
+{
+       D_ENTER;
+
+       if (!user_param || !pMsgIdList)
+               return;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)user_param;
+       PMSG_BUBBLE_DATA BubbleData = cd->bubble_data;
+       Elm_Object_Item *gen_item = NULL;
+       int i;
+       bool check_contact = false;
+       if (BubbleData == NULL)
+               return;
+
+       if (BubbleData->ug_state == BUBBLE_UG_DESTROY)
+               return;
+
+       D_MSG("type is %d", type);
+
+       if (type == MSG_STORAGE_CHANGE_CONTACT) {
+               if (BubbleData->viewmode == BUBBLE_RECIPIENT_VIEW) {
+                       if (BubbleData->recipient_genlist) {
+                               gen_item = elm_genlist_first_item_get(BubbleData->recipient_genlist);
+                               while (gen_item) {
+                                       elm_genlist_item_update(gen_item);
+                                       gen_item = elm_genlist_item_next_get(gen_item);
+                               }
+                       }
+               }
+               return;
+       } else if (type == MSG_STORAGE_CHANGE_DELETE) {
+               /* if delete thread is already working, it doesn't need to handle deleting case */
+               if (BubbleData->del_thread == NULL) {
+                       if (BubbleData->viewmode == BUBBLE_EDIT_VIEW) {
+                               bool update_selection_info = false;
+
+                               Eina_List *l = NULL;
+                               PBUBBLE_PACKED_INFO packed_data = NULL;
+                               PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+                               EINA_LIST_FOREACH(BubbleData->packed_list, l, packed_data) {
+                                       if (packed_data && packed_data->data) {
+                                               item_data = (PMSG_COMMON_BUBBLE_INFO_S)packed_data->data;
+                                               if (item_data == NULL) {
+                                                       continue;
+                                               }
+
+                                               /* If it is a date line layout type then no need to create the check btn because
+                                                * while creating date line layout same data of bubble is used for date line layout also
+                                                * which means if we create the check here same check button will be used both by
+                                                * date line layout and first bubble */
+                                               if (packed_data->layout_type == BUBBLE_PACKED_LAYOUT_DATELINE)
+                                                       continue;
+
+                                               if (item_data->isCheck) {
+                                                       for (i = 0; i < pMsgIdList->nCount; i++) {
+                                                               if (item_data->msgId == pMsgIdList->msgIdList[i]) {
+                                                                       BubbleData->check_cnt--;
+                                                                       BubbleData->chk_list = eina_list_remove(BubbleData->chk_list, item_data);
+                                                                       update_selection_info = true;
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+
+                               if (update_selection_info) {
+                                       msg_ui_bubble_show_select_info(BubbleData);
+                                       if ((NULL != BubbleData->popup) && (BUBBLE_POPUP_DELETE_CONFIRM == BubbleData->popup_type)) {
+                                               msg_ui_bubble_destroy_popup(BubbleData);
+
+                                               if (BubbleData->check_cnt != 0) {
+                                                       BubbleData->popup = __msg_ui_bubble_delete_confirm_popup(BubbleData);
+                                                       BubbleData->popup_type = BUBBLE_POPUP_DELETE_CONFIRM;
+                                               }
+                                       }
+                               }
+                       }
+
+                       for (i = 0; i < pMsgIdList->nCount; i++) {
+                               if (pMsgIdList->msgIdList[i] == BubbleData->draft_msg_id) {
+                                       BubbleData->draft_msg_id = 0;
+                                       cd->msg_id = 0;
+                               }
+                               msg_ui_bubble_list_item_remove(BubbleData, pMsgIdList->msgIdList[i]);
+                       }
+               }
+               return;
+       } else {
+               PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+               for (i = 0; i < pMsgIdList->nCount; i++) {
+                       msg_struct_t conv = msg_create_struct(MSG_STRUCT_CONV_INFO);
+                       msg_error_t err = MSG_SUCCESS;
+
+                       err = msg_get_conversation(BubbleData->msgHandle, pMsgIdList->msgIdList[i], conv);
+                       if (err != MSG_SUCCESS) {
+                               msg_release_struct(&conv);
+                               return;
+                       }
+
+                       int folder_id = 0;
+                       int thread_id = 0;
+                       int msg_id = 0;
+                       int storage_id = 0;
+                       int direction;
+                       msg_get_int_value(conv, MSG_CONV_MSG_DIRECTION_INT, &direction);
+                       msg_get_int_value(conv, MSG_CONV_MSG_FOLDER_ID_INT, &folder_id);
+                       msg_get_int_value(conv, MSG_CONV_MSG_THREAD_ID_INT, &thread_id);
+                       msg_get_int_value(conv, MSG_CONV_MSG_ID_INT, &msg_id);
+                       msg_get_int_value(conv, MSG_CONV_MSG_STORAGE_ID_INT, &storage_id);
+
+                       D_SEC_MSG("msgid [%d], thread_id [%d], folder id [%d]", msg_id, thread_id, folder_id);
+
+                       if (BubbleData->threadId == thread_id && folder_id != MSG_SPAMBOX_ID && storage_id != MSG_STORAGE_SIM) {
+                               switch (type) {
+                                       case MSG_STORAGE_CHANGE_INSERT:
+                                               if (msg_id != BubbleData->copy_id) {
+                                                       bool msg_found = false;
+
+                                                       /* After clicking on the send button we will send the msg to msg service for sending and add it to the
+                                                        * bubble view. But msg service after sending the msg it will call storage changes CB with insert and then
+                                                        * update again. If we do not check whether the bubble is already or not then we will create one more.
+                                                        * so create the bubble only if it is not already added. */
+                                                       for (i = 0; i < BubbleData->bubble_count; i++) {
+                                                               item_data = (PMSG_COMMON_BUBBLE_INFO_S)eina_list_nth(BubbleData->bubble_list, i);
+                                                               if (item_data && item_data->msgId == msg_id) {
+                                                                       msg_found = true;
+                                                                       break;
+                                                               }
+                                                       }
+
+                                                       D_MSG("msg_found = %d", msg_found);
+                                                       if (false == msg_found)
+                                                               msg_ui_bubble_list_add(handle, BubbleData, conv);
+                                               } else {
+                                                       BubbleData->copy_id = 0;
+                                               }
+
+                                               if (BubbleData->viewmode == BUBBLE_EDIT_VIEW) {
+                                                       if (BubbleData->bubble_count != BubbleData->check_cnt) {
+                                                               D_MSG("BubbleData->bubble_count [%d] and BubbleData->check_cnt [%d] ", BubbleData->bubble_count, BubbleData->check_cnt);
+                                                               Evas_Object *sel_all_layout = elm_object_part_content_get(cd->content_layout, "swl.sel_all");
+                                                               if (sel_all_layout) {
+                                                                       Evas_Object *sel_check = elm_object_part_content_get(sel_all_layout, "elm.swallow.select_icon");
+                                                                       if (sel_check)
+                                                                               elm_check_state_set(sel_check, EINA_FALSE);
+                                                               }
+                                                       }
+                                               }
+
+
+                                               if (BubbleData->press_down_handler) {
+                                                       ecore_event_handler_del(BubbleData->press_down_handler);
+                                                       BubbleData->press_down_handler = NULL;
+                                               }
+                                               BubbleData->press_down_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, msg_ui_bubble_key_press_down_cb, (void *)BubbleData);
+
+                                               if (BubbleData->toudh_down_handler) {
+                                                       ecore_event_handler_del(BubbleData->toudh_down_handler);
+                                                       BubbleData->toudh_down_handler = NULL;
+                                               }
+                                               BubbleData->toudh_down_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, msg_ui_bubble_key_press_down_cb, (void *)BubbleData);
+
+                                               if (direction != MSG_DIRECTION_TYPE_MO) {
+                                                       check_contact = true;
+                                               }
+
+                                               break;
+
+                                       case MSG_STORAGE_CHANGE_UPDATE:
+                                               /* When a class0 message is received and user saves it. Then Class0 module calls msg_move_msg_to_folder api
+                                                * to move the received class0 message to INBOX. This call goes to message service and it updates the folder
+                                                * Id of the received class0 message and calls the msg_ui_bubble_msg_storage_change_cb with type parameter as
+                                                * MSG_STORAGE_CHANGE_UPDATE. But the received class0 message is not added in the bubble list at all. SO below
+                                                * we search in the existing bubble list, if the message Id to be updated is not present , then first add it in
+                                                * the bubble list.
+                                                * */
+                                               for (i = 0; i < BubbleData->bubble_count; i++) {
+                                                       item_data = (PMSG_COMMON_BUBBLE_INFO_S)eina_list_nth(BubbleData->bubble_list, i);
+                                                       if (item_data != NULL && item_data->msgId == msg_id)
+                                                               break;
+                                               }
+                                               if (i == BubbleData->bubble_count) {
+                                                       if (msg_id == BubbleData->draft_msg_id) {
+                                                               BubbleData->draft_msg_id = 0;
+                                                       }
+                                                       /*If message is not found in the list and it is not a draft message then it must be a class 0 message.
+                                                        * So Add it in the List.*/
+                                                       BubbleData->is_bubble_update = EINA_TRUE;
+                                                       msg_ui_bubble_list_add(handle, BubbleData, conv);
+                                               } else {
+                                                       if (msg_id != BubbleData->send_now_id) {
+                                                               if (item_data != NULL && item_data->msgType == MSG_TYPE_MMS_NOTI) {
+                                                                       BubbleData->is_bubble_update = EINA_FALSE;
+                                                               } else {
+                                                                       BubbleData->is_bubble_update = EINA_TRUE;
+                                                               }
+                                                               msg_ui_bubble_item_data_update(handle, BubbleData, conv);
+                                                       } else
+                                                               BubbleData->send_now_id = 0;
+                                               }
+
+                                               /** In case of MMS retrieve, even if the storage change type is MSG_STORAGE_CHANGE_UPDATE, it needs to change read status */
+                                               if (BubbleData->press_down_handler) {
+                                                       ecore_event_handler_del(BubbleData->press_down_handler);
+                                                       BubbleData->press_down_handler = NULL;
+                                               }
+                                               BubbleData->press_down_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, msg_ui_bubble_key_press_down_cb, (void *)BubbleData);
+
+                                               if (BubbleData->toudh_down_handler) {
+                                                       ecore_event_handler_del(BubbleData->toudh_down_handler);
+                                                       BubbleData->toudh_down_handler = NULL;
+                                               }
+                                               BubbleData->toudh_down_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, msg_ui_bubble_key_press_down_cb, (void *)BubbleData);
+
+                                               if (direction != MSG_DIRECTION_TYPE_MO) {
+                                                       check_contact = true;
+                                               }
+                                               break;
+                                       default:
+                                               break;
+                               }
+                       }
+
+                       msg_release_struct(&conv);
+               }
+
+               /** when it receives a new message or updates a message, the thread number can be changed */
+               /** for example, suppose thread "A" has a number +8212345678, and a new message is comming with a number "12345678" */
+               /** In this case, thread number is changed from +8212345678, to 12345678. So, It is needed update title name */
+               if (BubbleData->viewmode == BUBBLE_NORMAL_VIEW && check_contact == true)
+                       msg_ui_bubble_contact_info_update(BubbleData);
+       }
+
+       D_LEAVE;
+}
+
+static void __backup_thread_fn(void *data, Ecore_Thread *thread)
+{
+       D_ENTER;
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+
+       int fd;
+       char *folderpath = NULL;
+       char *foldername = NULL;
+       char *filename = NULL;
+       msg_struct_list_s msg_list;
+       msg_error_t err = MSG_SUCCESS;
+       int bubble_count = 0;
+       int i = 0;
+       msg_handle_t temp_msgHandle = NULL;
+
+       /* initialize backup file path */
+       memset(bubble_data->backupPath, 0x00, sizeof(bubble_data->backupPath));
+
+       err = msg_open_msg_handle(&temp_msgHandle);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_open_msg_handle failed, Error=[%d]\n", err);
+               return;
+       }
+
+       err = msg_get_conversation_view_list(temp_msgHandle, bubble_data->threadId, &msg_list);
+       if (err != MSG_SUCCESS)
+               goto FREE_MEM;
+
+       bubble_count = msg_list.nCount;
+       if (bubble_count <= 0) {
+               msg_release_list_struct(&msg_list);
+               goto FREE_MEM;
+       }
+
+       foldername = msg_ui_bubble_create_export_folder_name();
+       if (!foldername) {
+               D_EMSG("create folder error!!!");
+               goto FREE_MEM;
+       }
+
+       folderpath = msg_ui_bubble_create_export_folder(bubble_data, foldername);
+       if (!folderpath) {
+               D_EMSG("file path is NULL!!!");
+               goto FREE_MEM;
+       }
+
+       filename = msg_ui_bubble_create_export_file_name();
+       if (!filename) {
+               D_EMSG("filename create error!!!");
+               goto FREE_MEM;
+       }
+
+       snprintf(bubble_data->backupPath, sizeof(bubble_data->backupPath), "%s/%s", folderpath, filename);
+
+       /* open file */
+       fd = open(bubble_data->backupPath, O_RDWR | O_CREAT | O_DSYNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
+       if (fd < 0) {
+               D_EMSG("open error");
+               goto FREE_MEM;
+       }
+
+       /* write file */
+       for (i = 0; i < bubble_count; i++) {
+
+               if (bubble_data->backup_cancel)
+                       break;
+
+               char *msg_str = msg_ui_bubble_create_export_string(bubble_data, msg_list.msg_struct_info[i]);
+               if (msg_str) {
+                       if (write(fd, msg_str, strlen(msg_str)) > 0)
+                               fdatasync(fd);
+
+                       free(msg_str);
+                       msg_str = NULL;
+               } else {
+                       continue;
+               }
+       }
+       close(fd);
+
+FREE_MEM:
+       msg_release_list_struct(&msg_list);
+
+       if (foldername)
+               free(foldername);
+
+       if (folderpath)
+               free(folderpath);
+
+       if (filename)
+               free(filename);
+
+       if (temp_msgHandle != NULL) {
+               err = msg_close_msg_handle(&temp_msgHandle);
+               if (err != MSG_SUCCESS)
+                       D_EMSG("msg_close_msg_handle error, ret = [%d]", err);
+       }
+}
+
+static Eina_Bool _backup_finish_timer_cb(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+
+       if (bubble_data->progress_popup) {
+               evas_object_del(bubble_data->progress_popup);
+               bubble_data->progress_popup = NULL;
+       }
+       bubble_data->backup_result_timer = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __backup_thread_end_fn(void *data, Ecore_Thread *thread)
+{
+       D_ENTER;
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+
+       bubble_data->backup_thread = NULL;
+
+       if (bubble_data->progress_popup) {
+
+               if (bubble_data->backup_result_timer) {
+                       ecore_timer_del(bubble_data->backup_result_timer);
+                       bubble_data->backup_result_timer = NULL;
+               }
+               bubble_data->backup_result_timer = ecore_timer_add(0.5, _backup_finish_timer_cb, bubble_data);
+       }
+
+       if (bubble_data->backupPath[0] == '\0') {
+               /** if backup file path is NULL, it can be considered as a fail to backup */
+               msg_ui_bubble_status_message_post(bubble_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"));
+               goto INIT_VARS;
+       }
+
+       if (bubble_data->backup_type == BUBBLE_BACKUP_TYPE_SD) {
+               if (media_content_connect() != 0) {
+                       msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVING_FAILED");
+                       return;
+               }
+               if (bubble_data->backup_cancel) {
+                       msg_ui_bubble_status_message_post(bubble_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_POP_CANCELLED"));
+               } else {
+                       if (media_content_scan_file(bubble_data->backupPath) != MEDIA_CONTENT_ERROR_NONE)
+                               msg_ui_bubble_status_message_post(bubble_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"));
+                       else
+                               msg_ui_bubble_status_message_post(bubble_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVED_IN_MY_FILES"));
+               }
+
+               media_content_disconnect();
+       } else if (bubble_data->backup_type == BUBBLE_BACKUP_TYPE_DEVICE_MEMORY) {
+               if (media_content_connect() != 0) {
+                       msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVING_FAILED");
+                       return;
+               }
+               if (bubble_data->backup_cancel) {
+                       msg_ui_bubble_status_message_post(bubble_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_POP_CANCELLED"));
+               } else {
+                       if (media_content_scan_file(bubble_data->backupPath) != MEDIA_CONTENT_ERROR_NONE)
+                               msg_ui_bubble_status_message_post(bubble_data, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"));
+                       else
+                               msg_ui_bubble_status_message_post(bubble_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVED_IN_MY_FILES"));
+               }
+               media_content_disconnect();
+       } else if (bubble_data->backup_type == BUBBLE_BACKUP_TYPE_EMAIL) {
+               MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+               /* send via email */
+               app_control_h svc_handle;
+               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                       D_EMSG("app_control_create() is failed !!");
+               } else {
+                       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_SHARE);
+                       app_control_set_app_id(svc_handle, "email-composer-efl");
+                       app_control_set_uri(svc_handle, bubble_data->backupPath);
+                       app_control_add_extra_data(svc_handle, "RUN_TYPE", "5");
+
+                       Ecore_X_Window win_id = elm_win_xwindow_get(cd->main_window);
+                       app_control_set_window(svc_handle, win_id);
+
+                       app_control_send_launch_request(svc_handle, NULL, NULL);
+                       app_control_destroy(svc_handle);
+               }
+       }
+
+INIT_VARS:
+       memset(bubble_data->backupPath, 0x00, sizeof(bubble_data->backupPath));
+       bubble_data->backup_type = BUBBLE_BACKUP_TYPE_NONE;
+       bubble_data->backup_cancel = false;
+}
+
+static void __msg_ui_bubble_backup_menu_selected_cb(void *data, 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;
+
+       D_MSG_RETM_IF(cd->bubble_data == NULL, "bubble data is NULL");
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+
+       const char *label = elm_object_item_text_get((Elm_Object_Item *) event_info);
+
+
+       /* create popup */
+       Evas_Object *popup = msg_ui_bubble_create_popup(bubble_data, false);
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       if (bubble_data->progress_popup) {
+               evas_object_del(bubble_data->progress_popup);
+               bubble_data->progress_popup = NULL;
+       }
+
+       elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSGF_POP_IN_PROGRESS_ING");
+       bubble_data->progress_popup = popup;
+       evas_object_show(popup);
+
+       if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_EXPORT_TO_SD_CARD")) == 0) {
+               bubble_data->backup_type = BUBBLE_BACKUP_TYPE_SD;
+       } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY")) == 0) {
+               bubble_data->backup_type = BUBBLE_BACKUP_TYPE_DEVICE_MEMORY;
+       } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_SENDER_VIA_EMAIL")) == 0) {
+               bubble_data->backup_type = BUBBLE_BACKUP_TYPE_EMAIL;
+       } else {
+               D_EMSG("invalid label text");
+               return;
+       }
+
+       if ((bubble_data->backup_thread) && (EINA_FALSE == ecore_thread_check(bubble_data->backup_thread))) {
+               ecore_thread_cancel(bubble_data->backup_thread);
+               bubble_data->backup_thread = NULL;
+       }
+
+       bubble_data->backup_thread = ecore_thread_feedback_run(__backup_thread_fn, NULL, __backup_thread_end_fn, NULL, (void *)bubble_data, EINA_TRUE);
+
+       D_LEAVE;
+}
+
+
+void msg_ui_bubble_backup_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data);
+
+       elm_object_tree_focus_allow_set(cd->base, EINA_FALSE);
+
+       Elm_Object_Item *list_item = NULL;
+       Evas_Object *popup = msg_ui_bubble_create_popup(bubble_data, true);
+
+       if (cd->ctx_popup) {
+               evas_object_del(cd->ctx_popup);
+               cd->ctx_popup = NULL;
+       }
+
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_OPT_BACK_UP");
+       if (msg_ui_bubble_check_mmc_status()) {
+               list_item = elm_popup_item_append(popup, "IDS_MSG_OPT_EXPORT_TO_SD_CARD", NULL, __msg_ui_bubble_backup_menu_selected_cb, (void *)cd);
+               elm_object_item_domain_text_translatable_set(list_item, MESSAGE_PKGNAME, EINA_TRUE);
+       }
+
+       list_item = elm_popup_item_append(popup, "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY", NULL, __msg_ui_bubble_backup_menu_selected_cb, (void *)cd);
+       elm_object_item_domain_text_translatable_set(list_item, MESSAGE_PKGNAME, EINA_TRUE);
+
+       list_item = elm_popup_item_append(popup, "IDS_MSGF_OPT_SENDER_VIA_EMAIL", NULL, __msg_ui_bubble_backup_menu_selected_cb, (void *)cd);
+       elm_object_item_domain_text_translatable_set(list_item, MESSAGE_PKGNAME, EINA_TRUE);
+
+
+       elm_object_item_signal_emit(list_item, "elm,state,bottomline,hide", "");
+       evas_object_show(popup);
+
+       bubble_data->popup = popup;
+       bubble_data->popup_type = BUBBLE_POPUP_BACKUP_MENU_LIST;
+}
+
+void msg_ui_bubble_ctlbar_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       msg_ui_bubble_ctlbar_cancel(data);
+}
+
+void msg_ui_bubble_ctlbar_delete_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+       MSG_COMPOSER_VIEW_DATA_S *cd = data;
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data);
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, bubble_data->del_thread);
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+       __msg_ui_bubble_popup_button_clicked_cb(bubble_data, obj, (void *)event_info);
+}
+
+void msg_ui_bubble_more_delete_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       Evas_Object *done_btn = NULL;
+       Evas_Object *cancel_btn = NULL;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data);
+
+       if (bubble_data->bubble_count > 0) {
+               bubble_data->viewmode = BUBBLE_EDIT_VIEW;
+               bubble_data->check_cnt = 0;
+               bubble_data->del_index = 0;
+
+               /* hide body area */
+               msg_ui_composer_editable_set(cd, EINA_FALSE);
+
+               if (cd->ctx_popup) {
+                       evas_object_del(cd->ctx_popup);
+                       cd->ctx_popup = NULL;
+               }
+
+               cancel_btn = msg_ui_bubble_add_title_button(bubble_data, BUBBLE_TITLE_BUTTON_1);
+               done_btn = msg_ui_bubble_add_title_button(bubble_data, BUBBLE_TITLE_BUTTON_2);
+               elm_object_disabled_set(done_btn, EINA_TRUE);
+               bubble_data->done_button = done_btn;
+
+               evas_object_smart_callback_add(cancel_btn, "clicked", msg_ui_bubble_ctlbar_cancel_cb, bubble_data->callback_data);
+               evas_object_smart_callback_add(done_btn, "clicked", msg_ui_bubble_ctlbar_delete_cb, bubble_data->callback_data);
+
+               Eina_List *l = NULL;
+               PBUBBLE_PACKED_INFO packed_data = NULL;
+               PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+               EINA_LIST_FOREACH(bubble_data->packed_list, l, packed_data) {
+                       if (packed_data && packed_data->data) {
+                               item_data = (PMSG_COMMON_BUBBLE_INFO_S)packed_data->data;
+                               if (item_data == NULL) {
+                                       continue;
+                               }
+
+                               /* If it is a date line layout type then no need to create the check btn because
+                                * while creating date line layout same data of bubble is used for date line layout also
+                                * which means if we create the check here same check button will be used both by
+                                * date line layout and first bubble */
+                               if (packed_data->layout_type == BUBBLE_PACKED_LAYOUT_DATELINE)
+                                       continue;
+
+                               Evas_Object *check = NULL;
+                               if (!item_data->chk) {
+                                       check = elm_check_add(item_data->label);
+                                       elm_check_state_pointer_set(check, &item_data->isCheck);
+                                       evas_object_data_set(check, "item_data", (const void *)item_data);
+                                       evas_object_smart_callback_add(check, "changed", msg_ui_bubble_list_checked_cb, (const void *)bubble_data);
+                                       evas_object_propagate_events_set(check, EINA_FALSE);
+                                       item_data->chk = check;
+                               }
+
+                               evas_object_data_set(item_data->label, "bubble_data", (const void *)bubble_data);
+                               Evas_Object *edje_obj = (Evas_Object *)edje_object_part_object_get(_EDJ(item_data->label), "base");
+                               evas_object_event_callback_add(edje_obj, EVAS_CALLBACK_MOUSE_DOWN, msg_ui_bubble_item_mouse_down_cb, (const void *)item_data);
+                               elm_object_part_content_set(item_data->label, "elm.bubble.swallow.select_icon", item_data->chk);
+                               elm_object_signal_emit(item_data->label, "elm,state,select,enable", "elm");
+
+                               evas_object_size_hint_min_set(item_data->label, ELM_SCALE_SIZE(BUBBLE_LABEL_WIDTH_MIN), ELM_SCALE_SIZE(BUBBLE_LABEL_HEIGHT_MIN));
+                               msg_common_update_bubble(cd->th, item_data, bubble_data->time_info);
+
+                               Evas_Object *badge = NULL;
+                               badge = elm_object_part_content_get(item_data->label, "sim.icon");
+                               if (badge) {
+                                       evas_object_pass_events_set(badge, EINA_TRUE);
+                               }
+                       }
+               }
+
+               _bubble_show_select_all_layout(cd);
+               _bubble_change_edit_mode_title(bubble_data);
+       }
+}
+
+void msg_ui_bubble_add_recipient_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+
+       if (cd->ctx_popup) {
+               evas_object_del(cd->ctx_popup);
+               cd->ctx_popup = NULL;
+       }
+       cd->header_not_allowed = true;
+       msg_ui_bubble_change_composer_view(bubble_data);
+
+       msg_ui_composer_recipient_focus_set(cd->recipient);
+       Evas_Object *entry = msg_ui_composer_recipient_entry_get(cd->recipient);
+       if (entry) {
+               msg_ui_composer_entry_input_panel_show(entry);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_ctlbar_call_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+       MSG_COMPOSER_VIEW_DATA_S *cd = data;
+       PMSG_BUBBLE_DATA pData = (PMSG_BUBBLE_DATA)cd->bubble_data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !pData);
+
+       Elm_Object_Item *item = (Elm_Object_Item *) event_info;
+       if (item != NULL)
+               elm_list_item_selected_set(item, 0);
+
+       msg_ui_composer_unset_view(cd);
+       const char *title = elm_object_part_text_get(cd->bubble_data->popup, "title,text");
+       if (title  != NULL)
+               msg_ui_bubble_launch_voice_call(cd, title, false);
+
+       msg_ui_bubble_destroy_popup(cd->bubble_data);
+}
+
+void msg_ui_bubble_view_contact_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+
+       /* stroing & reseting keypad status is needed because while deleting the context popup composer focused callback is triggering
+        * this short period of time keypad is shown due to the cd->prev_keypad_show_status */
+       msg_ui_composer_unset_view(cd);
+
+       int pid = get_contact_index_by_recipient(bubble_data->addr_list.addr_info[0].address);
+       if (pid > 0) {
+               msg_ui_composer_save_temporary_draft_message(cd);
+               appsvc_launch_contacts(cd, pid, NULL, PERSON_ID_TYPE);
+       }
+
+       if (cd->ctx_popup) {
+               evas_object_del(cd->ctx_popup);
+               cd->ctx_popup = NULL;
+       }
+}
+
+static void __msg_ui_bubble_add_to_contact_list_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA) data;
+       const char *label = elm_object_item_text_get((Elm_Object_Item *) event_info);
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       bubble_data->popup = msg_ui_bubble_create_add_to_contact_popup(bubble_data, label);
+       bubble_data->popup_type = BUBBLE_POPUP_ADD_TO_CONTACT_SINGLE;
+}
+
+void msg_ui_bubble_add_to_contact_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data);
+
+       elm_object_tree_focus_allow_set(cd->base, EINA_FALSE);
+
+       msg_ui_composer_unset_view(cd);
+
+       if (bubble_data->addr_list.addr_cnt == 1) {
+               msg_ui_bubble_destroy_popup(bubble_data);
+               bubble_data->popup = msg_ui_bubble_create_add_to_contact_popup(bubble_data, bubble_data->addr_list.addr_info[0].address);
+               bubble_data->popup_type = BUBBLE_POPUP_ADD_TO_CONTACT_SINGLE;
+       } else if (bubble_data->addr_list.addr_cnt > 1) {
+               Evas_Object *popup = NULL;
+               Evas_Object *layout = NULL;
+               Evas_Object *list = NULL;
+               int item_count = 0;
+               int unsaved_recipient_cnt = 0;
+
+               msg_ui_bubble_destroy_popup(bubble_data);
+
+               /** create popup */
+               popup =  msg_ui_bubble_create_popup(bubble_data, true);
+               if (!popup) {
+                       D_EMSG("msg_ui_bubble_create_popup() returns NULL");
+                       return;
+               }
+               evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+               /** create layout */
+               layout = elm_layout_add(popup);
+               elm_layout_file_set(layout, MSG_COMMON_EDJ, "elm/layout/content/menustyle");
+               evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+               /** create menu list */
+               list = elm_list_add(popup);
+               elm_object_style_set(list, "popup");
+
+               for (item_count = 0; item_count < bubble_data->addr_list.addr_cnt; item_count++) {
+                       if (get_contact_index_by_recipient(bubble_data->addr_list.addr_info[item_count].address) <= 0) {
+                               elm_list_item_append(list, bubble_data->addr_list.addr_info[item_count].address, NULL, NULL, __msg_ui_bubble_add_to_contact_list_sel_cb, bubble_data);
+                               unsaved_recipient_cnt++;
+                       }
+               }
+
+               elm_list_go(list);
+
+               elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB");
+               elm_object_part_content_set(layout, "elm.swallow.content", list);
+               elm_object_content_set(popup, layout);
+
+               bubble_data->popup = popup;
+               bubble_data->popup_type = BUBBLE_POPUP_ADD_TO_CONTACT_MULTI_LIST;
+               bubble_data->list_popup_item_count = unsaved_recipient_cnt;
+
+               evas_object_show(popup);
+       } else {
+               elm_object_tree_focus_allow_set(cd->base, EINA_TRUE);
+       }
+
+       if (cd->ctx_popup) {
+               evas_object_del(cd->ctx_popup);
+               cd->ctx_popup = NULL;
+       }
+
+}
+
+static void __msg_ui_bubble_popup_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       PMSG_BUBBLE_DATA pData = (PMSG_BUBBLE_DATA)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)pData->callback_data;
+       /* PMSG_COMMON_BUBBLE_INFO_S item_data = NULL; */
+
+       bool isDraft = msg_ui_composer_common_is_send_possible(cd);
+
+       if (pData->bubble_count == 1 && !isDraft) {
+               _del_all_item(pData);
+       } else if (pData->bubble_count == 1 && isDraft) {
+               msg_ui_bubble_destroy_popup(pData);
+
+               pData->popup = msg_ui_bubble_show_notify_with_progressbar(pData, pData->check_cnt);
+               pData->popup_type = BUBBLE_POPUP_NOTIFY_WITH_PROGRESS;
+
+               if ((pData->del_thread) && (EINA_FALSE == ecore_thread_check(pData->del_thread))) {
+                       ecore_thread_cancel(pData->del_thread);
+                       pData->del_thread = NULL;
+               }
+
+               pData->del_thread = ecore_thread_feedback_run(_del_thread_fn, _del_thread_feedback_fn, _del_thread_end_cancel_cb, _del_thread_end_cancel_cb, (void *)pData, EINA_TRUE);
+       } else {
+               /* delete */
+               if ((pData->check_cnt == pData->bubble_count) && isDraft == false) {
+                       pData->bubble_count = 0;
+                       _del_all_item(pData);
+               } else {
+                       msg_ui_bubble_destroy_popup(pData);
+
+                       pData->popup = msg_ui_bubble_show_notify_with_progressbar(pData, pData->check_cnt);
+                       pData->popup_type = BUBBLE_POPUP_NOTIFY_WITH_PROGRESS;
+
+                       if ((pData->del_thread) && (EINA_FALSE == ecore_thread_check(pData->del_thread))) {
+                               ecore_thread_cancel(pData->del_thread);
+                               pData->del_thread = NULL;
+                       }
+
+                       pData->del_thread = ecore_thread_feedback_run(_del_thread_fn, _del_thread_feedback_fn, _del_thread_end_cancel_cb, _del_thread_end_cancel_cb, (void *)pData, EINA_TRUE);
+               }
+       }
+}
+
+static Evas_Object *__msg_ui_bubble_delete_confirm_popup(PMSG_BUBBLE_DATA pData)
+{
+       D_ENTER;
+       Evas_Object *popup = NULL;
+       Evas_Object *delete_btn = NULL;
+       Evas_Object *cancel_btn = NULL;
+
+       popup = msg_ui_bubble_create_popup(pData, false);
+
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE");
+
+       char buf[DEF_BUF_LEN] = { 0, };
+
+       if (pData->check_cnt == 1 || pData->bubble_count == 1) {
+               elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED");
+       } else if (pData->check_cnt > 1 && pData->check_cnt < pData->bubble_count) {
+               char *text = NULL;
+               text = dgettext(MESSAGE_PKGNAME, "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED");
+               snprintf(buf, sizeof(buf), text, pData->check_cnt);
+               elm_object_text_set(popup, buf);
+       } else if (pData->check_cnt == pData->bubble_count) {
+               elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_POP_ALL_MESSAGES_WILL_BE_DELETED");
+       }
+
+       cancel_btn = elm_button_add(popup);
+       elm_object_style_set(cancel_btn, "popup");
+       elm_object_domain_translatable_text_set(cancel_btn, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", cancel_btn);
+       evas_object_smart_callback_add(cancel_btn, "clicked", __msg_ui_bubble_popup_button_clicked_cb, pData);
+
+       delete_btn = elm_button_add(popup);
+       elm_object_style_set(delete_btn, "popup");
+       elm_object_domain_translatable_text_set(delete_btn, MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE");
+       elm_object_part_content_set(popup, "button2", delete_btn);
+       evas_object_smart_callback_add(delete_btn, "clicked", __msg_ui_bubble_popup_button_clicked_cb, pData);
+
+       evas_object_show(popup);
+
+       return popup;
+}
+
+void msg_ui_bubble_ctlbar_cancel(void *data)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       PMSG_BUBBLE_DATA pData = cd->bubble_data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !pData);
+
+       _bubble_show_normal_mode(data);
+       pData->back_to_normal = true;
+       msg_ui_composer_last_focus_load(cd);
+}
+
+void msg_ui_bubble_sel_all_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       PMSG_BUBBLE_DATA pData = cd->bubble_data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !pData);
+
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       Eina_List *l;
+       Evas_Object *sel_check = NULL;
+       Evas_Object *sel_all_layout = elm_object_part_content_get(cd->content_layout, "swl.sel_all");
+
+       if (pData->viewmode != BUBBLE_EDIT_VIEW) {
+               D_EMSG("View is not in bubble edit view");
+               return;
+       }
+
+       if (sel_all_layout) {
+               D_MSG("sel_all_layout is valid");
+               sel_check = elm_object_part_content_get(sel_all_layout, "elm.swallow.select_icon");
+       }
+
+       if (pData->check_cnt == pData->bubble_count) {
+               pData->check_cnt = 0;
+               pData->chk_list = eina_list_free(pData->chk_list);
+
+               EINA_LIST_FOREACH(pData->bubble_list, l, item_data) {
+                       if (item_data) {
+                               item_data->isCheck = false;
+                       }
+               }
+               if (sel_check) {
+                       D_MSG("sel_check is valid. set state as EINA_FALSE");
+                       elm_check_state_set(sel_check, EINA_FALSE);
+               }
+       } else {
+               pData->check_cnt = pData->bubble_count;
+               pData->chk_list = eina_list_clone(pData->bubble_list);
+
+               EINA_LIST_FOREACH(pData->bubble_list, l, item_data) {
+                       if (item_data) {
+                               item_data->isCheck = true;
+                       }
+               }
+               if (sel_check) {
+                       D_MSG("sel_check is valid. set state as EINA_TRUE");
+                       elm_check_state_set(sel_check, EINA_TRUE);
+               }
+       }
+
+       PBUBBLE_PACKED_INFO packed_data = NULL;
+       EINA_LIST_FOREACH(pData->packed_list, l, packed_data) {
+               if (packed_data && packed_data->data) {
+                       /* If it is a date line layout type then no need to create the check btn because
+                        * while creating date line layout same data of bubble is used for date line layout also
+                        * which means if we create the check here same check button will be used both by
+                        * date line layout and first bubble */
+                       if (packed_data->layout_type == BUBBLE_PACKED_LAYOUT_DATELINE)
+                               continue;
+
+                       item_data = (PMSG_COMMON_BUBBLE_INFO_S)packed_data->data;
+                       elm_check_state_set(item_data->chk, item_data->isCheck);
+               }
+       }
+
+       msg_ui_bubble_show_select_info(pData);
+}
+
+void msg_ui_bubble_item_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !event_info);
+
+       Evas_Coord x, y;
+       Evas_Event_Mouse_Down *ev = event_info;
+
+       PMSG_COMMON_BUBBLE_INFO_S item_data = (PMSG_COMMON_BUBBLE_INFO_S)data;
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)evas_object_data_get(item_data->label, "bubble_data");
+
+       if (bubble_data) {
+               x = ev->canvas.x;
+               y = ev->canvas.y;
+
+               if (item_data->chk)
+                       elm_object_signal_emit(item_data->chk, "mouse,out", "events2");
+
+               if (abs(x - g_mouse_down_x) > 20 || abs(y - g_mouse_down_y) > 20) {
+                       goto RESET_EVAS_COORD;
+               }
+
+               if (elm_check_state_get(item_data->chk) == EINA_TRUE)
+                       elm_check_state_set(item_data->chk, EINA_FALSE);
+               else
+                       elm_check_state_set(item_data->chk, EINA_TRUE);
+
+               if (bubble_data->viewmode == BUBBLE_EDIT_VIEW && !item_data->is_btn_pressed)
+                       elm_object_signal_emit(item_data->label, "elm,state,play,sound", "elm");
+
+               item_data->is_btn_pressed = EINA_FALSE;
+               msg_ui_bubble_list_checked_cb((void *)bubble_data, item_data->chk, NULL);
+       } else {
+               D_EMSG("bubble_data is NULL");
+       }
+
+RESET_EVAS_COORD:
+       evas_object_event_callback_del(item_data->label, EVAS_CALLBACK_MOUSE_UP, msg_ui_bubble_item_mouse_up_cb);
+       g_mouse_down_x = 0;
+       g_mouse_down_y = 0;
+}
+
+void msg_ui_bubble_item_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !event_info);
+
+       PMSG_COMMON_BUBBLE_INFO_S item_data = (PMSG_COMMON_BUBBLE_INFO_S)data;
+
+       Evas_Event_Mouse_Down *ev = event_info;
+
+       if (item_data->chk)
+               elm_object_signal_emit(item_data->chk, "mouse,down,1", "events2");
+
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+               return;
+
+       g_mouse_down_x = ev->canvas.x;
+       g_mouse_down_y = ev->canvas.y;
+
+       evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_UP, msg_ui_bubble_item_mouse_up_cb, (const void *)item_data);
+
+}
+
+void msg_ui_bubble_list_checked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+
+       PMSG_BUBBLE_DATA pData = (PMSG_BUBBLE_DATA) data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)pData->callback_data;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       Evas_Object *sel_all_layout, *sel_check;
+
+       if (pData->viewmode != BUBBLE_EDIT_VIEW) {
+               D_EMSG("View is not in bubble edit view");
+               return;
+       }
+
+       /* When popup is present,none of the background view events should happen */
+       if (pData->popup) {
+               Eina_Bool check_state = elm_check_state_get(obj);
+               elm_check_state_set(obj, !check_state);
+               return;
+       }
+
+       item_data = evas_object_data_get(obj, "item_data");
+
+       if (item_data) {
+               if (item_data->isCheck) {
+                       pData->check_cnt++;
+                       if (!eina_list_data_find(pData->chk_list, item_data))
+                               pData->chk_list = eina_list_append(pData->chk_list, item_data);
+               } else {
+                       pData->check_cnt--;
+                       pData->chk_list = eina_list_remove(pData->chk_list, item_data);
+               }
+       } else {
+               D_EMSG("item_data is NULL");
+       }
+
+       sel_all_layout = elm_object_part_content_get(cd->content_layout, "swl.sel_all");
+       if (sel_all_layout) {
+               D_MSG("sel_all_layout is valid");
+               sel_check = elm_object_part_content_get(sel_all_layout, "elm.swallow.select_icon");
+               if (sel_check) {
+                       D_MSG("sel_check is valid");
+                       if (pData->check_cnt != pData->bubble_count)
+                               elm_check_state_set(sel_check, EINA_FALSE);
+                       else
+                               elm_check_state_set(sel_check, EINA_TRUE);
+               }
+       }
+
+       msg_ui_bubble_show_select_info(pData);
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_timezone_change_cb(system_settings_key_e key, void *user_data)
+{
+       __msg_ui_bubble_timezone_change_cb(user_data);
+}
+
+static void __msg_ui_bubble_timezone_change_cb(void *data)
+{
+       D_ENTER;
+
+       PMSG_BUBBLE_DATA BubbleData = (PMSG_BUBBLE_DATA)data;
+
+       char *timezone_id = NULL;
+       i18n_uchar utimezone_id[DEF_BUF_LEN] = {0,};
+       int status = I18N_ERROR_NONE;
+
+       timezone_id = msg_common_get_timezone();
+
+       if (!timezone_id)
+               return;
+
+       i18n_ustring_copy_ua(utimezone_id, timezone_id);
+       status = i18n_ucalendar_set_default_timezone(utimezone_id);
+
+       if (timezone_id)
+               free(timezone_id);
+
+       if (status != I18N_ERROR_NONE) {
+               D_EMSG("i18n_ucalendar_set_default_timezone failed");
+               return;
+       }
+
+       if (BubbleData->time_info) {
+               if (BubbleData->time_info->date_ptn_default) {
+                       free(BubbleData->time_info->date_ptn_default);
+                       BubbleData->time_info->date_ptn_default = NULL;
+               }
+
+               if (BubbleData->time_info->date_ptn_year) {
+                       free(BubbleData->time_info->date_ptn_year);
+                       BubbleData->time_info->date_ptn_year = NULL;
+               }
+
+               if (BubbleData->time_info->time_12h_ptn) {
+                       free(BubbleData->time_info->time_12h_ptn);
+                       BubbleData->time_info->time_12h_ptn = NULL;
+               }
+
+               if (BubbleData->time_info->time_24h_ptn) {
+                       free(BubbleData->time_info->time_24h_ptn);
+                       BubbleData->time_info->time_24h_ptn = NULL;
+               }
+
+               free(BubbleData->time_info);
+               BubbleData->time_info = NULL;
+       }
+
+       BubbleData->time_info = (PMSG_COMMON_BUBBLE_TIME_S)calloc(1, sizeof(MSG_COMMON_BUBBLE_TIME_S));
+       if (!BubbleData->time_info) {
+               D_EMSG("BubbleData->time_info calloc error!");
+       } else {
+               msg_ui_bubble_get_locale(BubbleData);
+               msg_ui_bubble_get_time_format(BubbleData);
+
+               BubbleData->time_info->time_12h_ptn = msg_common_get_date_best_pattern(BubbleData->time_info->locale, MSG_UI_TIME_PATTERN_12H);
+               BubbleData->time_info->time_24h_ptn = msg_common_get_date_best_pattern(BubbleData->time_info->locale, MSG_UI_TIME_PATTERN_24H);
+               BubbleData->time_info->date_ptn_default = msg_common_get_date_best_pattern(BubbleData->time_info->locale, MSG_UI_DATE_PATTERN_DEFAULT);
+               BubbleData->time_info->date_ptn_year = msg_common_get_date_best_pattern(BubbleData->time_info->locale, MSG_UI_DATE_PATTERN_YEAR);
+       }
+
+       msg_ui_bubble_list_data_update(BubbleData);
+
+       D_LEAVE;
+}
+
+static void __msg_url_clicked_cb(char *content)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, content == NULL);
+
+       D_SEC_MSG("url=%s", content);
+       char *uri = NULL;
+
+       app_control_h svc_handle = NULL;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_VIEW);
+
+               uri = elm_entry_markup_to_utf8(content);
+               if (uri) {
+                       if (strncasecmp(uri, "geo:", 4) != 0)
+                               app_control_set_app_id(svc_handle, "org.tizen.browser");
+
+                       app_control_set_uri(svc_handle, uri);
+
+                       free(uri);
+                       uri = NULL;
+               }
+
+               if (app_control_send_launch_request(svc_handle, NULL, NULL) != APP_CONTROL_ERROR_NONE)
+                       D_EMSG("service_send_launch_request is failed");
+
+               app_control_destroy(svc_handle);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_main_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;
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       if (bubble_data->viewmode != BUBBLE_EDIT_VIEW) {
+               /* elm_entry_cursor_end_set(cd->last_focus_entry); */
+               if (bubble_data->popup)
+                       return;
+
+               elm_object_focus_set(cd->last_focus_entry, EINA_TRUE);
+       }
+
+#ifdef MSG_SUPPORT_DEFAULT_HEIGHT_FEATURE      /* it feature is not supported */
+       if (!cd->is_keypad_show)
+               msg_ui_composer_make_default_body_size(cd);
+       else
+               cd->make_default_body_size = true;
+#endif
+       D_LEAVE;
+}
+
diff --git a/composer/src/bubble/msg-ui-composer-bubble-list.c b/composer/src/bubble/msg-ui-composer-bubble-list.c
new file mode 100755 (executable)
index 0000000..11ceb53
--- /dev/null
@@ -0,0 +1,3408 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-composer-bubble.h"
+#include <media_content.h>
+#include "msg-ui-composer-bubble.h"
+#include "msg-ui-composer-external.h"
+#include "msg-ui-composer-main.h"
+#include "msg-ui-composer-message.h"
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-composer-body.h"
+#include "msg-ui-content-utility.h"
+#include "msg-ui-composer-body-callback.h"
+#include "msg-file-util.h"
+#include "msg-system-util.h"
+
+#include <ITapiModem.h>
+#include <ITapiSim.h>
+#include <ITapiNetwork.h>
+#include <tapi_event.h>
+#include <TapiUtility.h>
+
+void __bubble_label_sound_attach_clicked(void *data, Evas_Object *obj, const char *emission, const char *source);
+
+static void __longpressed_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_resend_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+void __msg_retrieve_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+#endif
+void __msg_bubble_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_send_failed_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_draft_edit_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info);
+void __msg_install_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
+static bool __msg_ui_bubble_is_date_line_needed(PMSG_BUBBLE_DATA bubble_data, PBUBBLE_PACKED_INFO packed_data);
+static void __msg_ui_bubble_add_date_line(PMSG_BUBBLE_DATA bubble_data, PBUBBLE_PACKED_INFO packed_data);
+
+static void __msg_ui_bubble_thumbnail_selected_cb(void *data, Evas_Object *obj, void *event_info);
+
+static bool __msg_ui_should_copy_to_sim(PMSG_COMMON_BUBBLE_INFO_S conv_data);
+
+Evas_Coord down_x, down_y;
+Elm_Gengrid_Item_Class message_options_list_itc;
+
+#if 0  /* not use */
+static int __find_contact_id_by_number(char *num)
+{
+       int ct_ret = CONTACTS_ERROR_NONE;
+       int index = 0;
+       contacts_list_h list = NULL;
+       contacts_query_h query = NULL;
+       contacts_filter_h filter = NULL;
+
+       /* get number list first */
+       contacts_query_create(_contacts_contact_number._uri, &query);
+       contacts_filter_create(_contacts_contact_number._uri, &filter);
+       contacts_filter_add_str(filter, _contacts_contact_number.number, CONTACTS_MATCH_EXACTLY, num);
+       contacts_query_set_filter(query, filter);
+
+       ct_ret = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+
+       if (ct_ret != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_ret);
+               contacts_list_destroy(list, true);
+               return MSG_UI_RET_ERR;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_ret) {
+               contacts_record_h ct_value = NULL;
+               contacts_list_get_current_record_p(list, &ct_value);
+               if (ct_value) {
+                       contacts_record_get_int(ct_value, _contacts_contact_number.contact_id, &index);
+                       if (index > 0) {
+                               contacts_list_destroy(list, true);
+                               return index;
+                       }
+               }
+
+               ct_ret = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+
+       return index;
+}
+
+static int __find_contact_id_by_email(char *email)
+{
+       int ct_ret = CONTACTS_ERROR_NONE;
+       int index = 0;
+       contacts_list_h list = NULL;
+       contacts_query_h query = NULL;
+       contacts_filter_h filter = NULL;
+
+       /* get number list first */
+       contacts_query_create(_contacts_contact_email._uri, &query);
+       contacts_filter_create(_contacts_contact_email._uri, &filter);
+       contacts_filter_add_str(filter, _contacts_contact_email.email, CONTACTS_MATCH_EXACTLY, email);
+       contacts_query_set_filter(query, filter);
+
+       ct_ret = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+
+       if (ct_ret != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_ret);
+               contacts_list_destroy(list, true);
+               return MSG_UI_RET_ERR;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_ret) {
+               contacts_record_h ct_value = NULL;
+               contacts_list_get_current_record_p(list, &ct_value);
+               if (ct_value) {
+                       contacts_record_get_int(ct_value, _contacts_contact_email.contact_id, &index);
+                       if (index > 0) {
+                               contacts_list_destroy(list, true);
+                               return index;
+                       }
+               }
+
+               ct_ret = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+
+       return index;
+}
+#endif
+
+static void __msg_ui_bubble_add_bubble_to_box(PMSG_BUBBLE_DATA bubble_data, PBUBBLE_PACKED_INFO packed_data, MsgBoxPackType type, Evas_Object *obj)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data || !packed_data);
+
+       switch (type) {
+               case MSG_BOX_PACK_START:
+                       elm_box_pack_start(bubble_data->box, packed_data->layout);
+                       bubble_data->packed_list = eina_list_prepend(bubble_data->packed_list, packed_data);
+                       break;
+               case MSG_BOX_PACK_END:
+                       elm_box_pack_end(bubble_data->box, packed_data->layout);
+                       bubble_data->packed_list = eina_list_append(bubble_data->packed_list, packed_data);
+                       break;
+               case MSG_BOX_PACK_BEFORE: /* not support */
+                       if (obj) {
+                               Eina_List *l = NULL;
+                               PBUBBLE_PACKED_INFO temp_data = NULL;
+
+                               EINA_LIST_FOREACH(bubble_data->packed_list, l, temp_data) {
+                                       if (temp_data->layout == obj) {
+                                               break;
+                                       }
+                               }
+
+                               elm_box_pack_before(bubble_data->box, packed_data->layout, obj);
+                               bubble_data->packed_list = eina_list_prepend_relative(bubble_data->packed_list, packed_data, temp_data);
+                       } else {
+                               elm_box_pack_end(bubble_data->box, packed_data->layout);
+                               bubble_data->packed_list = eina_list_append(bubble_data->packed_list, packed_data);
+                       }
+                       break;
+               case MSG_BOX_PACK_AFTER: /* not support */
+                       elm_box_pack_after(bubble_data->box, packed_data->layout, obj);
+                       break;
+               default:
+                       break;
+       }
+
+       evas_object_size_hint_weight_set(packed_data->layout, EVAS_HINT_EXPAND, 0);
+       evas_object_size_hint_align_set(packed_data->layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+}
+
+static void __msg_ui_bubble_remove_bubble_from_box(PMSG_BUBBLE_DATA bubble_data, PBUBBLE_PACKED_INFO packed_data, bool remove_item)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data || !packed_data);
+
+       elm_box_unpack(bubble_data->box, packed_data->layout);
+       if (remove_item)
+               evas_object_del(packed_data->layout);
+       else
+               evas_object_hide(packed_data->layout);
+
+       elm_box_recalculate(bubble_data->box);
+       bubble_data->packed_list = eina_list_remove(bubble_data->packed_list, packed_data);
+}
+
+static Eina_Bool _long_press_cb(void *data)
+{
+       D_ENTER;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)data;
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)evas_object_data_get(conv_data->label, "bubble_data");
+       if (bubble_data) {
+               bubble_data->longpress_timer = NULL;
+               if (bubble_data->mouse_down_flag)
+                       evas_object_smart_callback_call(conv_data->label, "custom_longpressed", NULL);
+       }
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __bubble_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)data;
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)evas_object_data_get(conv_data->label, "bubble_data");
+
+       Evas_Event_Mouse_Down *ev = event_info;
+
+       if (bubble_data) {
+               bubble_data->mouse_down_flag = true;
+       }
+       down_x = ev->canvas.x;
+       down_y = ev->canvas.y;
+       if (ev->button == 1) {
+               if (bubble_data != NULL && bubble_data->longpress_timer) {
+                       ecore_timer_del(bubble_data->longpress_timer);
+                       bubble_data->longpress_timer = NULL;
+               }
+
+               if (bubble_data != NULL) {
+                       bubble_data->longpress_timer = ecore_timer_add(MSG_BUBBLE_LONGPRESS_TIME, _long_press_cb, conv_data);
+               }
+       }
+}
+
+
+static void __bubble_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)data;
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)evas_object_data_get(conv_data->label, "bubble_data");
+       D_MSG_RETM_IF(!bubble_data, "bubble_data is NULL");
+
+       Evas_Event_Mouse_Down *ev = event_info;
+
+       if (ev->button == 1 && bubble_data->longpress_timer) {
+               ecore_timer_del(bubble_data->longpress_timer);
+               bubble_data->longpress_timer = NULL;
+       }
+
+       if (bubble_data->mouse_down_flag)
+               evas_object_smart_callback_call(conv_data->label, "custom_clicked", NULL);
+
+       bubble_data->mouse_down_flag = false;
+       down_x = 0;
+       down_y = 0;
+}
+
+static void __bubble_mouse_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)data;
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)evas_object_data_get(conv_data->label, "bubble_data");
+
+       Evas_Event_Mouse_Move *ev = event_info;
+       Evas_Coord mx, my;
+       Evas_Coord x, y, w, h;
+       if (bubble_data) {
+               if (!bubble_data->mouse_down_flag)
+                       return;
+
+               evas_object_geometry_get(conv_data->label, &x, &y, &w, &h);
+
+               if (ev->cur.canvas.x > down_x)
+                       mx = ev->cur.canvas.x - down_x;
+               else
+                       mx = down_x - ev->cur.canvas.x;
+
+               if (ev->cur.canvas.y > down_y)
+                       my = ev->cur.canvas.y - down_y;
+               else
+                       my = down_y - ev->cur.canvas.y;
+
+               if ((mx > 40) || (my > 40)) {
+                       bubble_data->mouse_down_flag = false;
+                       return;
+               }
+
+               if ((ev->cur.canvas.x < x) || (ev->cur.canvas.x > x + w) || (ev->cur.canvas.y < y) || (ev->cur.canvas.y > y + h))
+                       bubble_data->mouse_down_flag = true;
+       }
+       D_LEAVE;
+}
+
+void msg_ui_bubble_update_bubble(PMSG_BUBBLE_DATA bubble_data, PMSG_COMMON_BUBBLE_INFO_S conv_data)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data || !conv_data);
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       Evas_Object *edje_obj = NULL;
+
+       conv_data->is_bubble_update = bubble_data->is_bubble_update;
+       msg_common_update_bubble(cd->th, conv_data, bubble_data->time_info);
+
+       edje_obj = (Evas_Object *)edje_object_part_object_get(_EDJ(conv_data->label), "elm.image.bg");
+
+       if (edje_obj && conv_data->bubble_image_obj != edje_obj) {
+               evas_object_event_callback_add(edje_obj, EVAS_CALLBACK_MOUSE_DOWN, __bubble_mouse_down_cb, conv_data);
+               evas_object_event_callback_add(edje_obj, EVAS_CALLBACK_MOUSE_UP, __bubble_mouse_up_cb, conv_data);
+               evas_object_event_callback_add(edje_obj, EVAS_CALLBACK_MOUSE_MOVE, __bubble_mouse_move_cb, conv_data);
+
+               conv_data->bubble_image_obj = edje_obj;
+       }
+}
+
+static void __add_bubble_item(PMSG_BUBBLE_DATA bubble_data, PMSG_COMMON_BUBBLE_INFO_S conv_data, MsgBoxPackType type, PMSG_COMMON_BUBBLE_INFO_S relative_data)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data || !conv_data);
+       if (type == MSG_BOX_PACK_BEFORE || type == MSG_BOX_PACK_AFTER) {
+               MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !relative_data);
+       }
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       if (!conv_data->label) {
+               if (bubble_data->search_id == conv_data->msgId)
+                       conv_data->need_focus = true;
+
+               conv_data->search_word = NULL;
+               if (bubble_data->search_word[0] != '\0')
+                       conv_data->search_word = strdup(bubble_data->search_word);
+
+               conv_data->recv_bubble_style = bubble_data->recv_bubble_style;
+               conv_data->sent_bubble_style = bubble_data->sent_bubble_style;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+               conv_data->retrieve_btn_cb = __msg_retrieve_btn_clicked_cb;
+#endif
+               conv_data->install_btn_cb = __msg_install_btn_clicked_cb;
+               conv_data->failed_btn_cb = __msg_send_failed_btn_clicked_cb;
+               conv_data->failed_btn_pressed_cb = __msg_btn_pressed_cb;
+               conv_data->draft_btn_cb = __msg_draft_edit_btn_clicked_cb;
+               conv_data->rotation = elm_win_rotation_get(cd->main_window);
+               conv_data->priv = (void *)bubble_data;
+
+               conv_data->multipart_clicked_cb = __msg_ui_bubble_thumbnail_selected_cb;
+               evas_object_data_set(bubble_data->box, "sim1", (void *)cd->sim1_icon);
+               msg_common_make_bubble(bubble_data->box, cd->th, conv_data, bubble_data->time_info);
+
+               /* Add callbacks */
+               Evas_Object *edje_obj = (Evas_Object *)edje_object_part_object_get(_EDJ(conv_data->label), "elm.image.bg");
+
+               if (conv_data->bubble_image_obj != edje_obj) {
+                       evas_object_event_callback_add(edje_obj, EVAS_CALLBACK_MOUSE_DOWN, __bubble_mouse_down_cb, conv_data);
+                       evas_object_event_callback_add(edje_obj, EVAS_CALLBACK_MOUSE_UP, __bubble_mouse_up_cb, conv_data);
+                       evas_object_event_callback_add(edje_obj, EVAS_CALLBACK_MOUSE_MOVE, __bubble_mouse_move_cb, conv_data);
+
+                       conv_data->bubble_image_obj = edje_obj;
+               }
+
+               evas_object_smart_callback_add(conv_data->label, "custom_longpressed", __longpressed_cb, (const void *)bubble_data);
+               conv_data->label_clicked_cb = __msg_bubble_clicked_cb;
+               evas_object_data_set(conv_data->label, "bubble_data", bubble_data);
+       } else {
+               msg_ui_bubble_update_bubble(bubble_data, conv_data);
+       }
+
+       PBUBBLE_PACKED_INFO packed_data = (PBUBBLE_PACKED_INFO)calloc(1, sizeof(BUBBLE_PACKED_INFO));
+       if (packed_data) {
+               packed_data->layout_type = BUBBLE_PACKED_LAYOUT_BUBBLE;
+               packed_data->layout = conv_data->label;
+               packed_data->data = (void *)conv_data;
+
+               switch (type) {
+                       case MSG_BOX_PACK_START:
+                               __msg_ui_bubble_add_bubble_to_box(bubble_data, packed_data, MSG_BOX_PACK_START, NULL);
+
+                               if (__msg_ui_bubble_is_date_line_needed(bubble_data, packed_data))
+                                       __msg_ui_bubble_add_date_line(bubble_data, packed_data);
+                               break;
+                       case MSG_BOX_PACK_END:
+                               __msg_ui_bubble_add_bubble_to_box(bubble_data, packed_data, MSG_BOX_PACK_END, NULL);
+
+                               if (__msg_ui_bubble_is_date_line_needed(bubble_data, packed_data))
+                                       __msg_ui_bubble_add_date_line(bubble_data, packed_data);
+                               break;
+                       case MSG_BOX_PACK_BEFORE:
+                               if (relative_data) {
+                                       Evas_Object *relative_obj = NULL;
+
+                                       if (g_strcmp0(conv_data->displayDate, relative_data->displayDate) == 0) {
+                                               relative_obj = relative_data->label;
+                                       } else {
+                                               PBUBBLE_PACKED_INFO temp_data = NULL;
+                                               PBUBBLE_PACKED_INFO prev_data = NULL;
+
+                                               Eina_List *l = NULL;
+                                               EINA_LIST_FOREACH(bubble_data->packed_list, l, temp_data) {
+                                                       if (temp_data && temp_data->layout == relative_data->label) {
+                                                               Eina_List *prev = NULL;
+
+                                                               prev = eina_list_prev(l);
+
+                                                               if (prev) {
+                                                                       prev_data = eina_list_nth(prev, 0);
+
+                                                                       if (prev_data->layout_type == BUBBLE_PACKED_LAYOUT_DATELINE)
+                                                                               relative_obj = prev_data->layout;
+                                                                       else
+                                                                               relative_obj = relative_data->label;
+                                                               } else {
+                                                                       relative_obj = relative_data->label;
+                                                               }
+
+                                                               break;
+                                                       }
+                                               }
+
+                                               if (relative_obj == NULL)
+                                                       relative_obj = relative_data->label;
+                                       }
+                                       __msg_ui_bubble_add_bubble_to_box(bubble_data, packed_data, MSG_BOX_PACK_BEFORE, relative_obj);
+
+                                       if (__msg_ui_bubble_is_date_line_needed(bubble_data, packed_data))
+                                               __msg_ui_bubble_add_date_line(bubble_data, packed_data);
+                               }
+                               break;
+                       case MSG_BOX_PACK_AFTER:
+                               __msg_ui_bubble_add_bubble_to_box(bubble_data, packed_data, MSG_BOX_PACK_AFTER, relative_data->label);
+                               break;
+                       default:
+                               break;
+               }
+       } else {
+               D_EMSG("calloc is failed (%s)", strerror(errno));
+       }
+       if (bubble_data->viewmode == BUBBLE_EDIT_VIEW) {
+               Evas_Object *check = NULL;
+               if (!conv_data->chk) {
+                       check = elm_check_add(conv_data->label);
+                       elm_check_state_pointer_set(check, &conv_data->isCheck);
+                       evas_object_data_set(check, "item_data", (const void *)conv_data);
+                       evas_object_smart_callback_add(check, "changed", msg_ui_bubble_list_checked_cb, (const void *)bubble_data);
+                       evas_object_propagate_events_set(check, EINA_FALSE);
+                       conv_data->chk = check;
+               }
+               Evas_Object *edje_obj = (Evas_Object *)edje_object_part_object_get(_EDJ(conv_data->label), "base");
+               evas_object_event_callback_add(edje_obj, EVAS_CALLBACK_MOUSE_DOWN, msg_ui_bubble_item_mouse_down_cb, (const void *)conv_data);
+               elm_object_part_content_set(conv_data->label, "elm.bubble.swallow.select_icon", conv_data->chk);
+               elm_object_signal_emit(conv_data->label, "elm,state,select,enable", "elm");
+
+
+               if (conv_data->isCheck) {
+                       elm_check_state_set(conv_data->chk, conv_data->isCheck);
+               }
+       }
+}
+
+static PBUBBLE_PACKED_INFO __msg_ui_bubble_find_item_from_packed_list(PMSG_BUBBLE_DATA bubble_data, PMSG_COMMON_BUBBLE_INFO_S item_data)
+{
+       PBUBBLE_PACKED_INFO packed_data = NULL;
+       Eina_List *l = NULL;
+
+       EINA_LIST_FOREACH(bubble_data->packed_list, l, packed_data) {
+               if (packed_data && (PMSG_COMMON_BUBBLE_INFO_S)packed_data->data == item_data && packed_data->layout_type == BUBBLE_PACKED_LAYOUT_BUBBLE)
+                       break;
+       }
+
+       return packed_data;
+}
+
+
+#if 0 /* temporary not used */
+static void __msg_media_clicked_cb(PMSG_BUBBLE_DATA bubble_data, char *msgID, int file_type)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !msgID);
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data);
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, bubble_data->viewmode != BUBBLE_NORMAL_VIEW, "Not Normal Mode!");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_t msg_t = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+       msg_struct_t mms_data = NULL;
+       msg_list_handle_t page_list = NULL;
+       msg_struct_t mms_page = NULL;
+       msg_struct_t mms_media = NULL;
+       char filepath[DEF_BUF_LEN_L+1] = {0,};
+
+       int msg_id = atoi(msgID);
+       int i = 0;
+       int j = 0;
+       int pageCnt = 0;
+
+       err = msg_get_message(bubble_data->msgHandle, msg_id, msg_t, sendOpt);
+       if (err != MSG_SUCCESS) {
+               D_MSG("err = [%d]", err);
+               msg_release_struct(&msg_t);
+               msg_release_struct(&sendOpt);
+               return;
+       }
+
+       mms_data = msg_create_struct(MSG_STRUCT_MMS);
+       err = msg_get_mms_struct(msg_t, mms_data);
+       if (err != MSG_SUCCESS) {
+               D_MSG("err = [%d]", err);
+               goto OUTSIDE_OF_LOOP;
+       }
+
+       msg_get_list_handle(mms_data, MSG_MMS_PAGE_LIST_HND, (void **)&page_list);
+       pageCnt = msg_list_length(page_list);
+       for (i = 0 ; i < pageCnt; i++) {
+               mms_page = (msg_struct_t)msg_list_nth_data(page_list, i);
+               msg_list_handle_t medialist = NULL;
+               int mediaCnt = 0;
+
+               msg_get_list_handle(mms_page, MSG_MMS_PAGE_MEDIA_LIST_HND, (void **)&medialist);
+               mediaCnt = msg_list_length(medialist);
+
+               for (j = 0; j < mediaCnt; j++) {
+                       int media_type;
+                       mms_media = (msg_struct_t)msg_list_nth_data(medialist, j);
+
+                       msg_get_int_value(mms_media, MSG_MMS_MEDIA_TYPE_INT, &media_type);
+
+                       if (media_type == file_type) {
+                               goto OUTSIDE_OF_LOOP;
+                       }
+               }
+       }
+
+OUTSIDE_OF_LOOP:
+       if (mms_media)
+               msg_get_str_value(mms_media, MSG_MMS_MEDIA_FILEPATH_STR, filepath, sizeof(filepath)-1);
+
+       if (mms_media && filepath[0] != '\0') {
+               app_control_h svc_handle;
+               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                       D_EMSG("app_control_create() is failed !!");
+               } else {
+                       app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+                       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_VIEW);
+                       app_control_set_uri(svc_handle, filepath);
+                       if (file_type == MMS_SMIL_MEDIA_IMG)
+                               app_control_add_extra_data(svc_handle, "View Mode", "DISPLAY");
+                       else if (file_type == MMS_SMIL_MEDIA_AUDIO)
+                               app_control_add_extra_data(svc_handle, "ExitOnBack", "true");
+
+                       if (app_control_send_launch_request(svc_handle, NULL, NULL) < 0)
+                               D_MSG("app_control_send_launch_request is failed");
+
+                       app_control_destroy(svc_handle);
+               }
+       }
+
+       msg_release_struct(&mms_data);
+       msg_release_struct(&msg_t);
+       msg_release_struct(&sendOpt);
+
+       D_LEAVE;
+}
+#endif
+
+static void __msg_install_clicked_cb(PMSG_BUBBLE_DATA bubble_data, int msg_id)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(bubble_data == NULL, "bubble_data is NULL!!");
+
+       D_MSG("syncml message operation, msg id = [%d]", msg_id);
+
+       msg_error_t err = MSG_SUCCESS;
+
+       err = msg_syncml_message_operation(bubble_data->msgHandle, (msg_message_id_t) msg_id);
+       if (err != MSG_SUCCESS)
+               D_MSG("msg_syncml_message_operation failed.");
+
+       D_LEAVE;
+}
+
+Eina_Bool __resend_idler_cb(void *data)
+{
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = NULL;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       msg_struct_t failed_msg = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+       msg_error_t err = MSG_SUCCESS;
+       int msg_type = MSG_TYPE_INVALID;
+
+       D_MSG("Re-send message, msg id = [%d]", bubble_data->resend_id);
+
+       err = msg_get_message(bubble_data->msgHandle, bubble_data->resend_id, failed_msg, sendOpt);
+
+       if (err != MSG_SUCCESS) {
+               D_MSG("msg_get_message is failed.");
+               msg_release_struct(&sendOpt);
+               msg_release_struct(&failed_msg);
+               bubble_data->resend_id = 0;
+               bubble_data->resend_idler = NULL;
+               return EINA_FALSE;
+       }
+
+#if _MSG_FEATURE_DSDS_ENABLED
+       /* set sim number */
+       D_MSG("MESSAGE_SIM_INDEX: %d",  cd->sim_number);
+       if (msg_set_int_value(failed_msg, MSG_MESSAGE_SIM_INDEX_INT, cd->sim_number) != MSG_SUCCESS) {
+               D_EMSG("MSG_MESSAGE_SIM_INDEX_INT set error!!");
+               msg_release_struct(&sendOpt);
+               msg_release_struct(&failed_msg);
+               bubble_data->resend_id = 0;
+               bubble_data->resend_idler = NULL;
+               return EINA_FALSE;
+       }
+#endif
+
+       msg_struct_t req = msg_create_struct(MSG_STRUCT_REQUEST_INFO);
+       msg_set_struct_handle(req, MSG_REQUEST_MESSAGE_HND, failed_msg);
+       msg_set_struct_handle(req, MSG_REQUEST_SENDOPT_HND, sendOpt);
+
+       msg_get_int_value(failed_msg, MSG_MESSAGE_TYPE_INT, &msg_type);
+
+
+       if (msg_is_sms(msg_type))
+               err = msg_sms_send_message(bubble_data->msgHandle, req);
+       else
+               err = msg_mms_send_message(bubble_data->msgHandle, req);
+
+       if (err != MSG_SUCCESS) {
+               D_MSG("Send_message is failed.");
+
+               Eina_List *l;
+               EINA_LIST_FOREACH(bubble_data->bubble_list, l, conv_data) {
+                       if (conv_data) {
+                               if (bubble_data->resend_id == conv_data->msgId) {
+                                       conv_data->networkStatus = MSG_NETWORK_SEND_FAIL;
+
+                                       bubble_data->is_bubble_update = EINA_TRUE;
+                                       msg_ui_bubble_update_bubble(bubble_data, conv_data);
+                                       break;
+                               }
+                       }
+               }
+
+               msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_BODY_DETAILSSENDINGFAILED");
+       }
+
+       msg_release_struct(&failed_msg);
+       msg_release_struct(&sendOpt);
+       msg_release_struct(&req);
+
+       bubble_data->resend_idler = NULL;
+       bubble_data->resend_id = 0;
+       cd->msg_type = COMPOSER_MSG_TYPE_SMS;
+
+       return EINA_FALSE;
+}
+
+void msg_ui_bubble_resend_msg(PMSG_BUBBLE_DATA bubble_data, int msg_id)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, bubble_data == NULL);
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, bubble_data->callback_data == NULL);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       cd->send_from_bubble = FALSE;
+
+       if (!bubble_data->resend_idler) {
+               bubble_data->resend_id = msg_id;
+               int curr_sim_idx = 0;
+               preference_get_int(KEY_MSG_APP_RESET_SIM_INDEX, &curr_sim_idx);
+               if (curr_sim_idx != 0) {
+                       D_MSG("Launch the reset SIM process");
+                       D_MSG("Reset Sim Index = [ %d ]", curr_sim_idx);
+                       msg_ui_composer_launch_reset_sim_process(curr_sim_idx, bubble_data->resend_id, bubble_data->threadId);
+               } else {
+                       D_MSG("Else :- Reset Sim Index = [ %d ]", curr_sim_idx);
+               }
+               bubble_data->resend_idler = ecore_idler_add(__resend_idler_cb, (void *)bubble_data);
+       }
+
+       D_LEAVE;
+}
+
+static void __popup_close_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+}
+
+static void __msg_copy_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "conv_data");
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       if (!conv_data) {
+               D_EMSG("conv_data is NULL");
+               return;
+       }
+
+       char copy_str[DEF_BUF_LEN_L + DEF_BUF_LEN_S + 1] = {0,};
+       if (conv_data->subject[0] != '\0') {
+               strncat(copy_str, conv_data->subject, strlen(conv_data->subject));
+               strncat(copy_str, "\n", strlen("\n"));
+       }
+
+       if (conv_data->msgText != NULL && conv_data->msgText[0] != '\0') {
+               strncat(copy_str, conv_data->msgText, sizeof(copy_str) - strlen(conv_data->subject) - 1);
+
+               /* When a message is received from Windows Mobile phone, only CR('\r') is inserted.
+                * It is ignored in elm_entry_utf8_to_markup(). Therefore, "Enter" doesn't work.
+                * If only '\r' exist, it should be converted to LF('\n').
+                */
+               int i = 0;
+               int copy_str_len = strlen(copy_str);
+               for (i = 0; i < copy_str_len; i++) {
+                       if (copy_str[i] == '\r' && copy_str[i+1] != '\n')
+                               copy_str[i] = '\n';
+               }
+       }
+
+       if (copy_str[0] != '\0')
+               elm_cnp_selection_set(conv_data->label, ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_TEXT, copy_str, strlen(copy_str));
+
+       D_LEAVE;
+}
+
+static void __msg_edit_message_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "conv_data");
+
+       D_MSG_RETM_IF(!conv_data, "invalid conv_data!");
+       D_MSG_RETM_IF(cd->msg_id == conv_data->msgId, "Already editing this message!");
+
+       Evas_Object *entry = msg_ui_composer_body_get_page_entry(cd, 0);
+       if (entry) {
+               msg_ui_composer_entry_input_panel_show(entry);
+       }
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+#if 0
+       /* remove draft message if it is exist */
+       if (bubble_data->draft_msg_id > 0) {
+               msg_delete_message(bubble_data->msgHandle, bubble_data->draft_msg_id);
+
+               bubble_data->draft_msg_id = 0;
+               cd->msg_id = 0;
+       }
+#endif
+       /** save if message exist before */
+       if (msg_ui_composer_common_is_send_possible(cd)) {
+               msg_thread_id_t tid = 0;
+               msg_ui_composer_message_init();
+               if (msg_ui_composer_get_message_data(cd) == COMPOSER_RETURN_SUCCESS) {
+                       if (msg_ui_composer_save_message(cd->msg_handle, cd->msg_id, &tid) >= 0)
+                               D_MSG("tid = %d, cd->msg_id = %d", tid, cd->msg_id);
+               }
+
+               msg_ui_composer_message_destroy();
+               msg_ui_composer_clear(cd);
+       }
+       /* cd->msg_id = conv_data->msgId; */ /* TODO: check and remove if not needed */
+       /** load message */
+       cd->loading_draft = true;
+       evas_object_data_set(cd->input_field_bg, "conv_data", (void *)conv_data);
+       msg_ui_composer_message_init();
+       msg_ui_composer_message_load_message(cd->msg_handle, conv_data->msgId, false);
+       /* msg_ui_composer_message_destroy() will be called inside
+          an idler ecore_add_attach_media_idler() added in
+          msg_ui_composer_body_body_layout_resize_cb after entry gets
+          resized */
+       cd->set_loaded_data_ret = msg_ui_composer_message_set_loaded_data(cd, true);
+       /* In case of edit or forward MMS, when only single line text is
+          there along with one media item, body is not getting resized. Because
+          of this ecore_add_attach_media_idler inside
+          msg_ui_composer_body_body_layout_resize_cb is not being called and
+          media items are not getting set to the entry. Therefore we are calling
+          resize callback explicitly */
+       if (entry) {
+               cd->is_edit_clicked = true;
+               msg_ui_composer_body_body_layout_resize_cb(cd, NULL, cd->input_field_bg, NULL);
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_delete_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(bubble_data->popup, "conv_data");
+       msg_message_id_t msg_id;
+       int err;
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       if (!conv_data) {
+               msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_DELETE");
+               return;
+       }
+
+       bool isDraft = msg_ui_composer_common_is_send_possible((MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data);
+
+       if (bubble_data->bubble_count == 1 && isDraft == false) {
+               bubble_data->bubble_count = 0;
+               err = msg_delete_thread_message_list(bubble_data->msgHandle, bubble_data->threadId, true);
+       } else if (bubble_data->bubble_count == 1 && isDraft == true) {
+               /* auto save composer data */
+               msg_id = conv_data->msgId;
+               err = msg_delete_message(bubble_data->msgHandle, msg_id);
+               msg_ui_bubble_change_composer_view(bubble_data);
+       } else {
+               msg_id = conv_data->msgId;
+               err = msg_delete_message(bubble_data->msgHandle, msg_id);
+               msg_ui_bubble_list_load(bubble_data, false);
+       }
+
+       if (err != MSG_SUCCESS) {
+               msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_DELETE");
+       } else {
+               msg_ui_bubble_show_deleted_info(bubble_data);
+       }
+
+       return;
+}
+
+static void __msg_delete_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "conv_data");
+
+       if (!conv_data) {
+               D_EMSG("conv_data is NULL");
+               return;
+       }
+
+       Evas_Object *popup = msg_ui_bubble_create_popup(bubble_data, false);
+
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE");
+       elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED");
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       Evas_Object *btn_cancel = elm_button_add(popup);
+       elm_object_style_set(btn_cancel, "popup");
+       elm_object_domain_translatable_text_set(btn_cancel, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", btn_cancel);
+       evas_object_smart_callback_add(btn_cancel, "clicked", __popup_close_clicked_cb, bubble_data);
+
+       Evas_Object *btn_delete = elm_button_add(popup);
+       elm_object_style_set(btn_delete, "popup");
+       elm_object_domain_translatable_text_set(btn_delete, MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE");
+       elm_object_part_content_set(popup, "button2", btn_delete);
+       evas_object_smart_callback_add(btn_delete, "clicked", __msg_delete_ok_clicked_cb, bubble_data);
+
+       evas_object_data_set(popup, "conv_data", conv_data);
+       evas_object_show(popup);
+
+       bubble_data->popup = popup;
+       bubble_data->popup_type = BUBBLE_POPUP_DELETE;
+
+       D_LEAVE;
+}
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+static int __msg_bubble_get_media_count(PMSG_BUBBLE_DATA bubble_data, PMSG_COMMON_BUBBLE_INFO_S item_data)
+{
+       D_ENTER;
+       msg_struct_t msgInfo = NULL;
+       msg_struct_t sendOpt = NULL;
+       msg_struct_t mmsInfo = NULL;
+       msg_list_handle_t pagelist = NULL;
+       msg_list_handle_t medialist = NULL;
+       msg_list_handle_t attachlist = NULL;
+
+       int total_count = 0;
+       int media_count = 0;
+       int attach_count = 0;
+       int page_count = 0;
+       int i = 0;
+       int j = 0;
+
+       /**** getting msgInfo ***/
+       msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+       if (msg_get_message(bubble_data->msgHandle, item_data->msgId, msgInfo, sendOpt) != MSG_SUCCESS) {
+               D_EMSG("msg_get_message FAILED !!!");
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               return -1;
+       }
+
+       /*** getting MMS info ****/
+       mmsInfo = msg_create_struct(MSG_STRUCT_MMS);
+       if (msg_get_mms_struct(msgInfo, mmsInfo) != MSG_SUCCESS) {
+               D_EMSG("msg_get_mms_struct FAILED !!!");
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               msg_release_struct(&mmsInfo);
+               return -1;
+       }
+
+       /**** getting page media count ***/
+       msg_get_list_handle(mmsInfo, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist);
+       page_count = msg_list_length(pagelist);
+
+       for (i = 0; i < page_count; i++) {
+               msg_struct_t page_info = (msg_struct_t)msg_list_nth_data(pagelist, i);
+               int page_media_count = 0;
+
+               msg_get_list_handle(page_info, MSG_MMS_PAGE_MEDIA_LIST_HND, (void **)&medialist);
+               page_media_count = msg_list_length(medialist);
+
+               for (j = 0; j < page_media_count; j++) {
+                       int mediaType;
+                       msg_struct_t media_info = NULL;
+                       media_info = (msg_struct_t)msg_list_nth_data(medialist, j);
+
+                       msg_get_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
+
+                       if (mediaType == MMS_SMIL_MEDIA_TEXT)
+                               continue;
+
+                       media_count++;
+               }
+       }
+
+       /**** getting attachment count ***/
+       msg_get_list_handle(mmsInfo, MSG_MMS_ATTACH_LIST_HND, (void **)&attachlist);
+       if (msg_list_length(attachlist) > 0)
+               attach_count = msg_list_length(attachlist);
+
+       msg_release_struct(&msgInfo);
+       msg_release_struct(&sendOpt);
+       msg_release_struct(&mmsInfo);
+
+       total_count = media_count + attach_count;
+
+       D_LEAVE;
+       return total_count;
+}
+
+
+static int __msg_bubble_get_media_list(PMSG_BUBBLE_DATA bubble_data, PMSG_COMMON_BUBBLE_INFO_S item_data)
+{
+       D_ENTER;
+
+       PBUBBLE_MEDIA_INFO media_item = NULL;
+       msg_struct_t msgInfo = NULL;
+       msg_struct_t sendOpt = NULL;
+       msg_struct_t mmsInfo = NULL;
+       msg_list_handle_t pagelist = NULL;
+       msg_list_handle_t medialist = NULL;
+       msg_list_handle_t attachlist = NULL;
+
+       int attach_count = 0;
+       int page_count = 0;
+       int i = 0;
+       int j = 0;
+       int media_count = 0;
+       char ct[DEF_BUF_LEN] = {0,};
+
+       /* clear existing media list */
+       if (bubble_data->media_list) {
+               void *media_data = NULL;
+               EINA_LIST_FREE(bubble_data->media_list, media_data) {
+                       if (media_data)
+                               free(media_data);
+               }
+
+               bubble_data->media_list = eina_list_free(bubble_data->media_list);
+       }
+
+       /**** getting msgInfo ***/
+       msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+       if (msg_get_message(bubble_data->msgHandle, item_data->msgId, msgInfo, sendOpt) != MSG_SUCCESS) {
+               D_EMSG("msg_get_message FAILED !!!");
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               return 0;
+       }
+
+       /*** getting MMS info ****/
+       mmsInfo = msg_create_struct(MSG_STRUCT_MMS);
+       if (msg_get_mms_struct(msgInfo, mmsInfo) != MSG_SUCCESS) {
+               D_EMSG("msg_get_mms_struct FAILED !!!");
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               msg_release_struct(&mmsInfo);
+               return 0;
+       }
+
+       msg_get_list_handle(mmsInfo, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist);
+       page_count = msg_list_length(pagelist);
+
+       for (i = 0; i < page_count; i++) {
+               msg_struct_t page_info = (msg_struct_t)msg_list_nth_data(pagelist, i);
+               int page_media_count = 0;
+
+               msg_get_list_handle(page_info, MSG_MMS_PAGE_MEDIA_LIST_HND, (void **)&medialist);
+               page_media_count = msg_list_length(medialist);
+
+               for (j = 0; j < page_media_count; j++) {
+                       int mediaType;
+                       msg_struct_t media_info = NULL;
+                       media_info = (msg_struct_t)msg_list_nth_data(medialist, j);
+
+                       msg_get_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
+                       msg_get_str_value(media_info, MSG_MMS_MULTIPART_CONTENT_TYPE_STR, ct, DEF_BUF_LEN);
+
+                       if ((mediaType == MMS_SMIL_MEDIA_IMG_OR_VIDEO) || (mediaType == MMS_SMIL_MEDIA_TEXT)) {
+                               if (((ct[0] == '\0') || (strlen(ct) == 0))) {
+                                       D_EMSG("content type invalid");
+                                       continue;
+                               }
+                       }
+
+                       media_item = (PBUBBLE_MEDIA_INFO)calloc(1, sizeof(BUBBLE_MEDIA_INFO));
+
+                       media_item->media_type = mediaType;
+                       msg_get_str_value(media_info, MSG_MMS_MEDIA_FILEPATH_STR, media_item->filepath, sizeof(media_item->filepath));
+                       msg_get_str_value(media_info, MSG_MMS_MEDIA_FILENAME_STR, media_item->filename, sizeof(media_item->filename));
+                       media_item->file_size = (int)msg_file_size_get(media_item->filepath) / 1024; /* KB */
+
+                       bubble_data->media_list = eina_list_append(bubble_data->media_list, media_item);
+                       media_count++;
+                       media_item = NULL;
+               }
+       }
+
+       /*** getting attachment info ***/
+       msg_get_list_handle(mmsInfo, MSG_MMS_ATTACH_LIST_HND, (void **)&attachlist);
+       attach_count = msg_list_length(attachlist);
+
+       for (i = 0; i < attach_count; i++) {
+               msg_struct_t attach_info = (msg_struct_t)msg_list_nth_data(attachlist, i);
+
+               media_item = (PBUBBLE_MEDIA_INFO)calloc(1, sizeof(BUBBLE_MEDIA_INFO));
+
+               msg_get_str_value(attach_info, MSG_MMS_ATTACH_FILEPATH_STR, media_item->filepath, sizeof(media_item->filepath));
+               msg_get_str_value(attach_info, MSG_MMS_ATTACH_FILENAME_STR, media_item->filename, sizeof(media_item->filename));
+               media_item->file_size = (int)msg_file_size_get(media_item->filepath) / 1024; /* KB */
+
+               bubble_data->media_list = eina_list_append(bubble_data->media_list, media_item);
+               media_count++;
+               media_item = NULL;
+       }
+
+       msg_release_struct(&msgInfo);
+       msg_release_struct(&sendOpt);
+       msg_release_struct(&mmsInfo);
+
+       D_LEAVE;
+       return media_count;
+}
+
+void __msg_ui_bubble_save_attachments_checked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       PBUBBLE_MEDIA_INFO mediaData = (PBUBBLE_MEDIA_INFO)evas_object_data_get(obj, "item_data");
+       Elm_Object_Item *it = NULL;
+
+       int genlist_count = elm_genlist_items_count(bubble_data->popup_genlist);
+       int media_count = 0;
+
+       if (genlist_count == 1)
+               media_count = 1;
+       else
+               media_count = genlist_count - 1;
+
+       if (mediaData) {
+               if (media_count == 1) {
+                       if (elm_check_state_get(mediaData->check))
+                               bubble_data->media_chk_cnt = 1;
+                       else
+                               bubble_data->media_chk_cnt = 0;
+               } else if (media_count > 1) {
+                       it = elm_genlist_first_item_get(bubble_data->popup_genlist);
+
+                       if (!strcmp(mediaData->filename, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_SAVE_ALL"))) {
+                               while (it) {
+                                       PBUBBLE_MEDIA_INFO item_data = (PBUBBLE_MEDIA_INFO)elm_object_item_data_get(it);
+                                       if (item_data) {
+                                                       elm_check_state_set(item_data->check, elm_check_state_get(mediaData->check));
+                                               }
+
+                                       it = elm_genlist_item_next_get(it);
+                               }
+
+                               if (elm_check_state_get(mediaData->check))
+                                       bubble_data->media_chk_cnt = media_count;
+                               else
+                                       bubble_data->media_chk_cnt = 0;
+                       } else {
+                               if (elm_check_state_get(mediaData->check)) {
+                                       bubble_data->media_chk_cnt++;
+                                       /* handle select  all */
+                                       if (bubble_data->media_chk_cnt == media_count) {
+                                               it = elm_genlist_first_item_get(bubble_data->popup_genlist);
+                                               PBUBBLE_MEDIA_INFO item_data = (PBUBBLE_MEDIA_INFO)elm_object_item_data_get(it);
+                                               if (item_data) {
+                                                       elm_check_state_set(item_data->check, true);
+                                               }
+                                       }
+                               } else {
+                                       /* handle select all */
+                                       if (bubble_data->media_chk_cnt == media_count) {
+                                               it = elm_genlist_first_item_get(bubble_data->popup_genlist);
+                                               PBUBBLE_MEDIA_INFO item_data = (PBUBBLE_MEDIA_INFO)elm_object_item_data_get(it);
+                                               if (item_data) {
+                                                       elm_check_state_set(item_data->check, false);
+                                               }
+                                       }
+                                       bubble_data->media_chk_cnt--;
+                               }
+                       }
+               }
+       }
+
+       if (bubble_data->save_button) {
+               if (bubble_data->media_chk_cnt > 0)
+                       elm_object_disabled_set(bubble_data->save_button, EINA_FALSE);
+               else
+                       elm_object_disabled_set(bubble_data->save_button, EINA_TRUE);
+       }
+
+       D_LEAVE;
+}
+
+
+static char *__msg_ui_bubble_save_attachments_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL || obj == NULL, NULL);
+
+       PBUBBLE_MEDIA_INFO media_info = (PBUBBLE_MEDIA_INFO)data;
+
+       if (!strcmp(part, "elm.text")) {
+               return strdup(media_info->filename);
+       }
+       D_LEAVE;
+       return NULL;
+}
+
+static Evas_Object *__msg_ui_bubble_save_attachments_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL || obj == NULL, NULL);
+
+       PBUBBLE_MEDIA_INFO media_info = (PBUBBLE_MEDIA_INFO)data;
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)evas_object_data_get(obj, "bubble_data");
+
+       if (!strcmp(part, "elm.swallow.end")) {
+               Evas_Object *check_ly = elm_layout_add(obj);
+               elm_layout_theme_set(check_ly, "layout", "list/C/type.2", "default");
+               Evas_Object *check = elm_check_add(obj);
+               /* set the State pointer to keep the current UI state of Checkbox. */
+               evas_object_propagate_events_set(check, EINA_FALSE);
+               evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+               media_info->check = check;
+               evas_object_data_set(check, "item_data", media_info);
+
+               evas_object_smart_callback_add(check, "changed", __msg_ui_bubble_save_attachments_checked_cb, bubble_data);
+
+               elm_layout_content_set(check_ly, "elm.swallow.content", check);
+               return check_ly;
+       } else {
+               D_EMSG("Invalid part : %s", part);
+       }
+
+       D_LEAVE;
+       return NULL;
+}
+
+static void __msg_ui_bubble_save_attachments_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+       PBUBBLE_MEDIA_INFO item_data = (PBUBBLE_MEDIA_INFO)elm_object_item_data_get(item);
+
+       elm_genlist_item_selected_set(item, false);
+
+       elm_check_state_set(item_data->check, !elm_check_state_get(item_data->check));
+
+       elm_genlist_item_fields_update(item, "elm.icon.right", ELM_GENLIST_ITEM_FIELD_CONTENT);
+
+       evas_object_smart_callback_call(item_data->check, "changed", event_info);
+
+       D_LEAVE;
+}
+
+
+static void __popup_save_attachment_save_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+
+
+       Eina_List *l = NULL;
+       Eina_Bool ret = EINA_FALSE;
+       bool is_succeed = true;
+       PBUBBLE_MEDIA_INFO item_data = NULL;
+       char dst[MSG_FILEPATH_LEN_MAX+1] = {0,};
+
+       if (media_content_connect() != 0) {
+               msg_ui_bubble_destroy_popup(bubble_data);
+               msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVING_FAILED");
+               return;
+       }
+
+       l = NULL;
+       item_data = NULL;
+       EINA_LIST_FOREACH(bubble_data->media_list, l, item_data) {
+               if (item_data) {
+                       bool is_checked = elm_check_state_get(item_data->check);
+                       if (is_checked && (item_data->filename[0] != '\0') && (item_data->filepath[0] != '\0')) {
+                               snprintf(dst, MSG_FILEPATH_LEN_MAX, "%s/%s", MSG_BUBBLE_DOWNLOAD_DIR, item_data->filename);
+                               if (msg_file_exists(dst) == EINA_FALSE) {
+                                       ret = msg_file_cp(item_data->filepath, dst);
+                               } else {
+                                       /* make new file path */
+                                       char *file_ext = NULL;
+                                       char file_name_no_ext[MSG_FILENAME_LEN_MAX+1] = {0,};
+
+                                       file_ext = strrchr(item_data->filename, '.');
+                                       if (file_ext) {
+                                               file_ext++;
+                                               strncpy(file_name_no_ext, item_data->filename, strlen(item_data->filename) - strlen(file_ext) - 1);
+                                       } else {
+                                               strncpy(file_name_no_ext, item_data->filename, strlen(item_data->filename));
+                                       }
+
+                                       int count = 1;
+
+                                       while (count < 100) {
+                                               memset(dst, 0x00, sizeof(dst));
+                                               snprintf(dst, MSG_FILENAME_LEN_MAX, "%s/%s_%02d.%s", MSG_BUBBLE_DOWNLOAD_DIR, file_name_no_ext, count, file_ext);
+                                               if (msg_file_exists(dst) == EINA_TRUE) {
+                                                       count++;
+                                               } else {
+                                                       ret = msg_file_cp(item_data->filepath, dst);
+                                                       break;
+                                               }
+                                       }
+                               }
+                               if (media_content_scan_file(dst) != MEDIA_CONTENT_ERROR_NONE) {
+                                       D_WMSG("media_content_scan_file error !!");
+                                       is_succeed = false;
+                               }
+                       }
+               }
+       }
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       if (ret == EINA_TRUE) {
+               if (!is_succeed)
+                       msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVING_FAILED");
+               else
+                       msg_ui_bubble_status_message_post(bubble_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVED_IN_MY_FILES"));
+       } else {
+               msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVING_FAILED");
+       }
+
+       if (bubble_data->media_list) {
+               EINA_LIST_FREE(bubble_data->media_list, item_data) {
+                       if (item_data)
+                               free(item_data);
+               }
+
+               bubble_data->media_list = eina_list_free(bubble_data->media_list);
+       }
+
+       media_content_disconnect();
+
+       bubble_data->popup_genlist = NULL;
+       bubble_data->media_chk_cnt = 0;
+       bubble_data->save_button = NULL;
+
+       D_LEAVE;
+}
+
+static void __popup_save_attachment_close_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       void *item_data = NULL;
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       if (bubble_data->media_list) {
+               EINA_LIST_FREE(bubble_data->media_list, item_data) {
+                       if (item_data)
+                               free(item_data);
+               }
+
+               bubble_data->media_list = eina_list_free(bubble_data->media_list);
+       }
+
+       bubble_data->popup_genlist = NULL;
+       bubble_data->media_chk_cnt = 0;
+       bubble_data->save_button = NULL;
+
+       D_LEAVE;
+}
+
+static void __msg_slide_show_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "conv_data");
+
+       if (!conv_data) {
+               D_EMSG("conv_data is NULL");
+               return;
+       }
+
+       app_control_h svc_handle = NULL;
+       char msgId[DEF_BUF_LEN_S] = {0,};
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               snprintf(msgId, DEF_BUF_LEN_S, "%d", conv_data->msgId);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, msgId);
+
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_VIEWER_INTERNAL_CALLER, MSG_BUNDLE_VALUE_NORMAL_SUMMARY_MMS);
+
+               msg_ui_composer_launch_viewer_create(cd, svc_handle);
+       }
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+       D_LEAVE;
+}
+
+static void __msg_save_attachment_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "conv_data");
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       int total_count = 0;
+       if (conv_data) {
+               total_count = __msg_bubble_get_media_list(bubble_data, conv_data);
+       }
+
+       if (total_count > 0) {
+               /** create popup **/
+               Evas_Object *popup = NULL;
+               Evas_Object *genlist = NULL;
+               Evas_Object *btn_save = NULL;
+               Evas_Object *btn_close = NULL;
+               PBUBBLE_MEDIA_INFO media_info = NULL;
+               int i = 0;
+
+               popup = msg_ui_bubble_create_popup(bubble_data, false);
+
+               elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB");
+
+               /** create genlist **/
+               genlist = elm_genlist_add(popup);
+               elm_object_style_set(genlist, "popup");
+               elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+               evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+               evas_object_data_set(genlist, "bubble_data", bubble_data);
+               bubble_data->popup_genlist = genlist;
+
+               bubble_data->itc_popup_selall.item_style = "default";
+               bubble_data->itc_popup_selall.func.text_get = __msg_ui_bubble_save_attachments_gl_text_get;
+               bubble_data->itc_popup_selall.func.content_get = __msg_ui_bubble_save_attachments_gl_content_get;
+               bubble_data->itc_popup_selall.func.state_get = NULL;
+               bubble_data->itc_popup_selall.func.del = NULL;
+
+               /* Add first Item, (select      all) */
+               if (total_count > 1) {
+                       PBUBBLE_MEDIA_INFO select_all_info = NULL;
+                       const char *str_sel_all = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_SAVE_ALL");
+                       select_all_info = (PBUBBLE_MEDIA_INFO)calloc(1, sizeof(BUBBLE_MEDIA_INFO));
+                       eina_strlcpy(select_all_info->filename, str_sel_all, sizeof(select_all_info->filename));
+                       elm_genlist_item_append(genlist, &bubble_data->itc_popup_selall, select_all_info, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_bubble_save_attachments_gl_sel, bubble_data);
+               }
+
+               for (i = 0; i < total_count; i++) {
+                       media_info = eina_list_nth(bubble_data->media_list, i);
+                       if (media_info)
+                               elm_genlist_item_append(genlist, &bubble_data->itc_popup_selall, media_info, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_bubble_save_attachments_gl_sel, bubble_data);
+               }
+
+               bubble_data->list_popup_item_count = total_count;
+
+               /*** creating Buttons ***/
+               /* Cancel button */
+               btn_close = elm_button_add(popup);
+               elm_object_style_set(btn_close, "popup");
+               elm_object_domain_translatable_text_set(btn_close, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+               elm_object_part_content_set(popup, "button1", btn_close);
+               evas_object_smart_callback_add(btn_close, "clicked", __popup_save_attachment_close_clicked_cb, bubble_data);
+
+               /* Save button */
+               btn_save = elm_button_add(popup);
+               elm_object_style_set(btn_save, "popup");
+               elm_object_domain_translatable_text_set(btn_save, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_SAVE_ABB2");
+               elm_object_part_content_set(popup, "button2", btn_save);
+               evas_object_smart_callback_add(btn_save, "clicked", __popup_save_attachment_save_clicked_cb, bubble_data);
+               elm_object_disabled_set(btn_save, EINA_TRUE);
+               bubble_data->save_button = btn_save;
+
+               elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+               evas_object_show(genlist);
+               elm_object_content_set(popup, genlist);
+               evas_object_show(popup);
+               bubble_data->popup = popup;
+               bubble_data->popup_type = BUBBLE_POPUP_SAVE_ATTACHMENT_LIST;
+       } else {
+               /** No attachment */
+               D_MSG("No attachments");
+               msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_NO_ATTACHMENTS");
+       }
+
+       D_LEAVE;
+}
+
+#endif
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+static bool __msg_ui_bubble_check_forward_is_allowed(PMSG_BUBBLE_DATA bubble_data, PMSG_COMMON_BUBBLE_INFO_S conv_data)
+{
+       D_ENTER;
+       MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, false, !bubble_data || !conv_data);
+
+       int i = 0;
+       bool ret = true;
+       void *item_data = NULL;
+       PBUBBLE_MEDIA_INFO media_info = NULL;
+       int total_count = __msg_bubble_get_media_list(bubble_data, conv_data);
+
+       if (total_count <= 0) {
+               D_MSG("media count [%d]", total_count);
+               return true;
+       }
+
+       for (i = 0; i < total_count; i++) {
+               media_info = eina_list_nth(bubble_data->media_list, i);
+               if (media_info && media_info->media_type != MMS_SMIL_MEDIA_INVALID) {
+                       if (!msg_ui_content_check_forward_available(bubble_data->msgHandle, media_info->filepath, media_info->media_type)) {
+                               ret = false;
+                               break;
+                       }
+               }
+       }
+
+       if (bubble_data->media_list) {
+               EINA_LIST_FREE(bubble_data->media_list, item_data) {
+                       if (item_data)
+                               free(item_data);
+               }
+
+               bubble_data->media_list = eina_list_free(bubble_data->media_list);
+       }
+
+       D_LEAVE;
+
+       return ret;
+}
+#endif
+
+static void __msg_forward_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "conv_data");
+
+       if (!conv_data) {
+               D_EMSG("conv_data is NULL");
+               return;
+       }
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       /* check forward allowance in restricted mode in ahead of creat composer */
+       if (conv_data->msgType == MSG_TYPE_MMS) {
+               if (!__msg_ui_bubble_check_forward_is_allowed(bubble_data, conv_data)) {
+                       msg_ui_bubble_create_forward_not_available_popup(bubble_data);
+                       return;
+               }
+       }
+#endif
+       char buf[DEF_BUF_LEN_S] = { 0, };
+       app_control_h svc_handle;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               cd->is_forward_msg_ug = true;
+               snprintf(buf, sizeof(buf), "%d", conv_data->msgId);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, buf);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_FORWARD);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, MSG_BUNDLE_VALUE_INTERNAL);
+               msg_ui_composer_launch_composer_create(cd, svc_handle);
+               app_control_destroy(svc_handle);
+       }
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       D_LEAVE;
+       return;
+}
+
+static void __msg_bubble_copy_to_sim_get_result_popup_text(char *out_buf, int out_buf_len)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !out_buf || (out_buf_len <= 0));
+       snprintf(out_buf, out_buf_len, _MSGSTR("IDS_MSGC_POP_COPIED_TO_SIM_CARD"));
+}
+
+static void __msg_bubble_copy_to_sim_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "conv_data");
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       if (!conv_data) {
+               D_EMSG("conv_data is NULL");
+               msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_COPY");
+               return;
+       }
+
+       msg_error_t err = MSG_SUCCESS;
+       int msg_id = 0;
+       msg_struct_t msg = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+       if (msg_get_message(bubble_data->msgHandle, conv_data->msgId, msg, sendOpt) != MSG_SUCCESS)
+               goto COPY_FAIL;
+       if ((conv_data->msgType == MSG_TYPE_SMS) || (conv_data->msgType == MSG_TYPE_SMS_REJECT)) {
+               if (conv_data->storageId == MSG_STORAGE_PHONE) {
+                       msg_set_int_value(msg, MSG_MESSAGE_STORAGE_ID_INT, MSG_STORAGE_SIM);
+                       msg_set_int_value(msg, MSG_MESSAGE_SIM_INDEX_INT, 1);
+                       if ((msg_id = msg_add_message(bubble_data->msgHandle, msg, sendOpt)) < 0)
+                               goto COPY_FAIL;
+                       bubble_data->copy_id = msg_id;
+                       err = msg_move_msg_to_storage(bubble_data->msgHandle, msg_id, MSG_STORAGE_SIM);
+               }  else if (conv_data->storageId == MSG_STORAGE_SIM) {
+                       msg_set_int_value(msg, MSG_MESSAGE_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+                       if ((msg_id = msg_add_message(bubble_data->msgHandle, msg, sendOpt)) < 0)
+                               goto COPY_FAIL;
+               } else {
+                       D_EMSG("invalid storage id [%d]", conv_data->storageId);
+                       goto COPY_FAIL;
+               }
+               /** remove if it failed to move */
+               if (err != MSG_SUCCESS)
+                       msg_delete_message(bubble_data->msgHandle, msg_id);
+       }
+
+       if (err == MSG_SUCCESS) {
+               char result[DEF_BUF_LEN] = {0, };
+               __msg_bubble_copy_to_sim_get_result_popup_text(result, sizeof(result));
+               msg_ui_bubble_status_message_post(bubble_data, result);
+
+               if (conv_data->storageId != MSG_STORAGE_PHONE)
+                       msg_ui_bubble_list_load(bubble_data, false);
+       } else {
+               goto COPY_FAIL;
+       }
+
+       if (msg)
+               msg_release_struct(&msg);
+
+       if (sendOpt)
+               msg_release_struct(&sendOpt);
+
+       D_LEAVE;
+       return;
+
+
+COPY_FAIL:
+       if (msg)
+               msg_release_struct(&msg);
+
+       if (sendOpt)
+               msg_release_struct(&sendOpt);
+
+       if (err == MSG_ERR_SIM_STORAGE_FULL) {
+               msg_ui_bubble_destroy_popup(bubble_data);
+       } else {
+               msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_COPY");
+       }
+
+}
+
+static void __msg_bubble_copy_to_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "conv_data");
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+       if (!conv_data) {
+               D_EMSG("conv_data is NULL");
+               msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_COPY");
+               return;
+       }
+
+       msg_error_t err = MSG_SUCCESS;
+       int msg_id = 0;
+       msg_struct_t msg = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+       if (msg_get_message(bubble_data->msgHandle, conv_data->msgId, msg, sendOpt) != MSG_SUCCESS)
+               goto COPY_FAIL;
+
+       if (__msg_ui_should_copy_to_sim(conv_data)) {
+               if (conv_data->storageId == MSG_STORAGE_PHONE) {
+
+                       msg_set_int_value(msg, MSG_MESSAGE_STORAGE_ID_INT, MSG_STORAGE_SIM);
+
+                       if ((msg_id = msg_add_message(bubble_data->msgHandle, msg, sendOpt)) < 0)
+                               goto COPY_FAIL;
+                       bubble_data->copy_id = msg_id;
+                       if (msg_common_is_sim_active())
+                               err = msg_move_msg_to_storage(bubble_data->msgHandle, msg_id, MSG_STORAGE_SIM);
+
+               }  else if (conv_data->storageId == MSG_STORAGE_SIM) {
+                       msg_set_int_value(msg, MSG_MESSAGE_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+                       if ((msg_id = msg_add_message(bubble_data->msgHandle, msg, sendOpt)) < 0)
+                               goto COPY_FAIL;
+               } else {
+                       D_EMSG("invalid storage id [%d]", conv_data->storageId);
+                       goto COPY_FAIL;
+               }
+               /** remove if it failed to move */
+               if (err != MSG_SUCCESS)
+                       msg_delete_message(bubble_data->msgHandle, msg_id);
+       }
+
+       if (err == MSG_SUCCESS) {
+               char result[DEF_BUF_LEN] = {0, };
+
+               __msg_bubble_copy_to_sim_get_result_popup_text(result, sizeof(result));
+               msg_ui_bubble_status_message_post(bubble_data, result);
+
+               if (conv_data->storageId != MSG_STORAGE_PHONE)
+                       msg_ui_bubble_list_load(bubble_data, false);
+       } else {
+               goto COPY_FAIL;
+       }
+
+       if (msg)
+               msg_release_struct(&msg);
+
+       if (sendOpt)
+               msg_release_struct(&sendOpt);
+
+       D_LEAVE;
+       return;
+
+
+COPY_FAIL:
+       if (msg)
+               msg_release_struct(&msg);
+
+       if (sendOpt)
+               msg_release_struct(&sendOpt);
+
+       if (err == MSG_ERR_SIM_STORAGE_FULL) {
+               D_MSG("Sim memoy is full");
+       } else {
+               msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_COPY");
+       }
+}
+
+static void __msg_bubble_view_detail_msg_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "conv_data");
+
+       /* create popup */
+       Evas_Object *popup = msg_ui_bubble_create_popup(bubble_data, true);
+       if (!popup) {
+               D_EMSG("create popup error !!! ");
+               return;
+       }
+
+       /* popup title */
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSGF_HEADER_MESSAGE_DETAILS");
+
+       /* popup text */
+       char *str = msg_common_make_message_detail_text(bubble_data->msgHandle, conv_data->msgId);
+
+       if (str) {
+               elm_object_text_set(popup, str);
+               free(str);
+       }
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       Evas_Object *btn = elm_button_add(popup);
+       elm_object_style_set(btn, "popup");
+       elm_object_domain_translatable_text_set(btn, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       elm_object_part_content_set(popup, "button1", btn);
+       evas_object_smart_callback_add(btn, "clicked", msg_ui_popup_close_clicked_cb, bubble_data);
+
+       evas_object_show(popup);
+       bubble_data->popup = popup;
+       bubble_data->popup_type = BUBBLE_POPUP_VIEW_MESSAGE_DETAIL;
+
+       evas_object_data_set(popup, "details_popup_language_change", popup);
+       evas_object_data_set(popup, "details_msg_id", (void *)conv_data->msgId);
+}
+
+static char *__msg_ui_composer_message_options_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       const char *label  = (char *) data;
+       if (!strcmp(part, "elm.text")) {
+               if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE")) == 0) {
+                                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_RESEND")) == 0) {
+                                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_RESEND"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_SK_SEND_NOW")) == 0) {
+                                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_SK_SEND_NOW"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_CANCEL_MESSAGE")) == 0) {
+                                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_CANCEL_MESSAGE"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB")) == 0) {
+                                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TEXT")) == 0) {
+                                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TEXT"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_EDIT_MESSAGE")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_EDIT_MESSAGE"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_FORWARD")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_FORWARD"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB")) == 0) {
+                                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_DEVICE_ABB")) == 0) {
+                                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_DETAILS_ABB")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_DETAILS_ABB"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_HEADER_TRANSLATE")) == 0) {
+                                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_HEADER_TRANSLATE"));
+               }
+       }
+               return NULL;
+}
+
+static bool __msg_ui_should_copy_to_sim(PMSG_COMMON_BUBBLE_INFO_S conv_data)
+{
+       D_ENTER;
+       bool res = false;
+       if (conv_data) {
+               res = ((conv_data->msgType == MSG_TYPE_SMS) || (conv_data->msgType == MSG_TYPE_SMS_REJECT))
+                               && conv_data->networkStatus != MSG_NETWORK_SENDING;
+       }
+
+       return res;
+}
+
+static void __longpressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !cd);
+
+       Evas_Object *popup = NULL;
+       Evas_Object *genlist = NULL;
+       int item_count = 0;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "bubble_info");
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !conv_data);
+
+       if (bubble_data->viewmode != BUBBLE_NORMAL_VIEW)
+               return;
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       /** create popup */
+       popup =  msg_ui_bubble_create_popup(bubble_data, true);
+       if (!popup) {
+               D_EMSG("msg_ui_bubble_create_popup() returns NULL");
+               return;
+       }
+       genlist = elm_genlist_add(popup);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+       evas_object_data_set(genlist, "conv_data", conv_data);
+
+       message_options_list_itc.item_style = "default";
+       message_options_list_itc.func.text_get = __msg_ui_composer_message_options_gl_text_get;
+       message_options_list_itc.func.content_get = NULL;
+       message_options_list_itc.func.state_get = NULL;
+       message_options_list_itc.func.del = NULL;
+
+       if (MSG_DRAFT_ID == conv_data->folderId) {
+               elm_genlist_item_append(genlist, &message_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_EDIT_MESSAGE"), NULL, ELM_GENLIST_ITEM_NONE, __msg_edit_message_clicked_cb, bubble_data);
+               item_count++;
+
+               elm_genlist_item_append(genlist, &message_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE"), NULL, ELM_GENLIST_ITEM_NONE, __msg_delete_clicked_cb, bubble_data);
+               item_count++;
+       } else {
+
+               if (conv_data->networkStatus == MSG_NETWORK_SEND_FAIL) {
+                       elm_genlist_item_append(genlist, &message_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_RESEND"), NULL, ELM_GENLIST_ITEM_NONE, __msg_resend_btn_clicked_cb, bubble_data);
+                       item_count++;
+               }
+
+               elm_genlist_item_append(genlist, &message_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE"), NULL, ELM_GENLIST_ITEM_NONE, __msg_delete_clicked_cb, bubble_data);
+               item_count++;
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+               if (conv_data->msgType == MSG_TYPE_MMS) {
+                       elm_genlist_item_append(genlist, &message_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"), NULL, ELM_GENLIST_ITEM_NONE, __msg_slide_show_clicked_cb, bubble_data);
+                       item_count++;
+               }
+#endif
+
+               if (conv_data->msgType != MSG_TYPE_SMS_SYNCML && (conv_data->subject[0] != '\0' || (conv_data->msgText != NULL && conv_data->msgText[0] != '\0'))) {
+                       elm_genlist_item_append(genlist, &message_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TEXT"), NULL, ELM_GENLIST_ITEM_NONE, __msg_copy_clicked_cb, bubble_data);
+                       item_count++;
+               }
+
+               if (conv_data->folderId == MSG_OUTBOX_ID && conv_data->networkStatus != MSG_NETWORK_SENDING) {
+                       elm_genlist_item_append(genlist, &message_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_EDIT_MESSAGE"), NULL, ELM_GENLIST_ITEM_NONE, __msg_edit_message_clicked_cb, bubble_data);
+                       item_count++;
+               }
+
+               if ((conv_data->msgType != MSG_TYPE_SMS_WAPPUSH) && (conv_data->msgType != MSG_TYPE_SMS_SYNCML) && (conv_data->msgType != MSG_TYPE_MMS_NOTI)) {
+                       elm_genlist_item_append(genlist, &message_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_FORWARD"), NULL, ELM_GENLIST_ITEM_NONE, __msg_forward_clicked_cb, bubble_data);
+                       item_count++;
+               }
+
+               if (__msg_ui_should_copy_to_sim(conv_data)) {
+                       if (conv_data->storageId == MSG_STORAGE_PHONE) {
+                               if (msg_common_is_sim_active()) {
+                                       bool flight_mode = 0;
+                                       msg_sys_flight_mode_get(&flight_mode);
+                                       if (!flight_mode) {
+                                               elm_genlist_item_append(genlist, &message_options_list_itc,
+                                                               (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"),
+                                                               NULL, ELM_GENLIST_ITEM_NONE, __msg_bubble_copy_to_clicked_cb, bubble_data);
+
+                                               item_count++;
+                                       }
+                               }
+                       } else if (conv_data->storageId == MSG_STORAGE_SIM) {
+                               elm_genlist_item_append(genlist, &message_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"), NULL, ELM_GENLIST_ITEM_NONE, __msg_bubble_copy_to_clicked_cb, bubble_data);
+                               item_count++;
+                       }
+               } else if (conv_data->msgType == MSG_TYPE_MMS) {
+#ifndef _MSG_FEATURE_MMS_DISABLE
+                       bubble_data->media_count = __msg_bubble_get_media_count(bubble_data, conv_data);
+                       if (bubble_data->media_count > 0) {
+                               elm_genlist_item_append(genlist, &message_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"), NULL, ELM_GENLIST_ITEM_NONE, __msg_save_attachment_clicked_cb, bubble_data);
+                               item_count++;
+                       }
+#endif
+               }
+               if (conv_data->msgType != MSG_TYPE_SMS_WAPPUSH && (conv_data->msgType != MSG_TYPE_SMS_SYNCML)) {
+                       elm_genlist_item_append(genlist, &message_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_DETAILS_ABB"), NULL, ELM_GENLIST_ITEM_NONE, __msg_bubble_view_detail_msg_clicked_cb, bubble_data);
+                       item_count++;
+               }
+       }
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSGF_BODY_MESSAGE_OPTIONS");
+
+       evas_object_show(genlist);
+       elm_object_content_set(popup, genlist);
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       bubble_data->popup = popup;
+       bubble_data->popup_type = BUBBLE_POPUP_LONGPRESS_MENU_LIST;
+
+       elm_object_focus_set(popup, EINA_TRUE);
+       evas_object_show(popup);
+
+       bubble_data->list_popup_item_count = item_count;
+
+       msg_ui_bubble_list_popup_rotate(bubble_data);
+
+       D_LEAVE;
+}
+
+#if 0
+/* for long text bubble handling, it should be handled later. */
+static void __text_set_finished_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       bubble_data->delay_animator = false;
+}
+#endif
+
+void __msg_ui_bubble_resend_message(void *data, Evas_Object *obj)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "conv_data");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       if (conv_data && cd->active_sims > 0) {
+               cd->send_from_bubble = TRUE;
+               bubble_data->resend_id = conv_data->msgId;
+
+               if ((conv_data->msgType >= MSG_TYPE_SMS) && (conv_data->msgType <= MSG_TYPE_SMS_REJECT)) {
+                       bubble_data->resend_msg_type = COMPOSER_MSG_TYPE_SMS;
+               } else if (conv_data->msgType == MSG_TYPE_MMS) {
+                       bubble_data->resend_msg_type = COMPOSER_MSG_TYPE_MMS;
+               }
+
+               if (msg_ui_composer_message_flight_mode_check_and_change(bubble_data->callback_data, NULL) != COMPOSER_RETURN_SUCCESS) {
+                       D_MSG("FLIGHT MODE WAS ENABLED");
+               } else {
+                       msg_ui_composer_common_message_send(cd);
+               }
+               return;
+       } else {
+               D_WMSG("NO SIM mode");
+               msg_ui_composer_unset_view(cd);
+               msg_ui_composer_create_text_btn_popup(cd, _MSGSTR("IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"), 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_bubble_resend_confirm_popup_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!data, "bubble_data is NULL!!");
+       D_MSG_RETM_IF(!obj, "obj is NULL!!");
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       msg_ui_bubble_destroy_popup(bubble_data);
+}
+
+static void __msg_ui_bubble_resend_confirm_popup_resend_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!data, "bubble_data is NULL!!");
+       D_MSG_RETM_IF(!obj, "obj is NULL!!");
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       msg_ui_bubble_destroy_popup(bubble_data);
+       __msg_ui_bubble_resend_message(data, obj);
+}
+
+Evas_Object *__msg_ui_bubble_create_resend_confirmation_popup(PMSG_BUBBLE_DATA bubble_data, PMSG_COMMON_BUBBLE_INFO_S item_data)
+{
+       D_ENTER;
+
+       D_MSG_RETVM_IF(!bubble_data, NULL, "bubble_data is NULL!!");
+       D_MSG_RETVM_IF(!item_data, NULL, "item_data is NULL!!");
+       Evas_Object *popup;
+       Evas_Object *btn;
+
+       /* popup */
+       popup = msg_ui_bubble_create_popup(bubble_data, false);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT");
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB");
+
+       /* cancel button */
+       btn = elm_button_add(popup);
+       elm_object_style_set(btn, "popup");
+       elm_object_domain_translatable_text_set(btn, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", btn);
+       evas_object_smart_callback_add(btn, "clicked", __msg_ui_bubble_resend_confirm_popup_cancel_clicked_cb, bubble_data);
+
+       /* resend button */
+       btn = elm_button_add(popup);
+       evas_object_data_set(btn, "conv_data", item_data);
+       elm_object_style_set(btn, "popup");
+       elm_object_domain_translatable_text_set(btn, MESSAGE_PKGNAME, "IDS_MSG_OPT_RESEND");
+       elm_object_part_content_set(popup, "button2", btn);
+       evas_object_smart_callback_add(btn, "clicked", __msg_ui_bubble_resend_confirm_popup_resend_clicked_cb, bubble_data);
+
+       evas_object_show(popup);
+       return popup;
+}
+
+static void __msg_resend_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "conv_data");
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+       bubble_data->popup = __msg_ui_bubble_create_resend_confirmation_popup(bubble_data, item_data);
+       bubble_data->popup_type = BUBBLE_POPUP_RESEND_CONFIRM;
+
+       D_LEAVE;
+}
+
+void __msg_install_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "bubble_info");
+       if (item_data) {
+               __msg_install_clicked_cb(bubble_data, item_data->msgId);
+       }
+       D_LEAVE;
+}
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+static Eina_Bool __retrieve_idler_cb(void *data)
+{
+       D_MSG_RETVM_IF(NULL == data, EINA_FALSE, "data is NULL");
+       MSG_DATA_SWITCH_DATA *switch_data = (MSG_DATA_SWITCH_DATA *)data;
+       PMSG_BUBBLE_DATA bubble_data = switch_data->bubble_data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       msg_error_t err = MSG_SUCCESS;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = NULL;
+       msg_struct_t retrieve_msg = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+       D_MSG("Retrieve mms message, msg id = [%d]", bubble_data->retrieve_id);
+
+       err = msg_get_message(bubble_data->msgHandle, bubble_data->retrieve_id, retrieve_msg, sendOpt);
+       if (err != MSG_SUCCESS) {
+               D_MSG("msg_get_message is failed.");
+               bubble_data->retrieve_idler = NULL;
+               bubble_data->retrieve_id = 0;
+               msg_release_struct(&retrieve_msg);
+               msg_release_struct(&sendOpt);
+               return EINA_FALSE;
+       }
+
+       msg_struct_t req = msg_create_struct(MSG_STRUCT_REQUEST_INFO);
+       msg_set_struct_handle(req, MSG_REQUEST_MESSAGE_HND, retrieve_msg);
+       msg_set_struct_handle(req, MSG_REQUEST_SENDOPT_HND, sendOpt);
+
+       err = msg_mms_retrieve_message(bubble_data->msgHandle, req);
+
+       if (err != MSG_SUCCESS) {
+               D_MSG("msg_mms_retrieve_message is failed.");
+               msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED");
+
+               Eina_List *l;
+               EINA_LIST_FOREACH(bubble_data->bubble_list, l, conv_data) {
+                       if (conv_data && bubble_data->retrieve_id == conv_data->msgId) {
+                               Evas_Object *retrieve_btn = elm_object_part_content_get(conv_data->label, "elm.swallow.end");
+
+                               if (retrieve_btn)
+                                       elm_object_disabled_set(retrieve_btn, EINA_FALSE);
+
+                               conv_data->networkStatus = MSG_NETWORK_RETRIEVE_FAIL;
+                               msg_ui_bubble_update_bubble(bubble_data, conv_data);
+                               break;
+                       }
+               }
+       }
+
+       msg_release_struct(&retrieve_msg);
+       msg_release_struct(&sendOpt);
+       msg_release_struct(&req);
+
+       bubble_data->retrieve_idler = NULL;
+       bubble_data->retrieve_id = 0;
+       cd->is_retrieve = false;
+
+       if (switch_data)
+               free(switch_data);
+
+       return EINA_FALSE;
+}
+
+static void __msg_retrieve_clicked_cb(MSG_DATA_SWITCH_DATA *switch_data, int msg_id)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(NULL == switch_data, "switch_data is NULL");
+       PMSG_BUBBLE_DATA bubble_data = switch_data->bubble_data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, bubble_data == NULL);
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = NULL;
+
+       Eina_List *l;
+       EINA_LIST_FOREACH(bubble_data->bubble_list, l, conv_data) {
+               if (conv_data && msg_id == conv_data->msgId) {
+                       Evas_Object *retrieve_btn = elm_object_part_content_get(conv_data->label, "elm.swallow.end");
+
+                       if (retrieve_btn)
+                               elm_object_disabled_set(retrieve_btn, EINA_TRUE);
+
+                       conv_data->networkStatus = MSG_NETWORK_RETRIEVING;
+                       msg_ui_bubble_update_bubble(bubble_data, conv_data);
+                       break;
+               }
+       }
+
+       if (!bubble_data->retrieve_idler) {
+               bubble_data->retrieve_id = msg_id;
+               int curr_sim_idx = 0;
+               preference_get_int(KEY_MSG_APP_RESET_SIM_INDEX, &curr_sim_idx);
+               if (curr_sim_idx != 0) {
+                       D_MSG("Launch the reset SIM process");
+                       D_MSG("Reset Index = [ %d ] Msg_Id = [ %d ] Thread_Id = [ %d ]", curr_sim_idx, bubble_data->retrieve_id, bubble_data->threadId);
+                       msg_ui_composer_launch_reset_sim_process(curr_sim_idx, bubble_data->retrieve_id, bubble_data->threadId);
+               }
+               bubble_data->retrieve_idler = ecore_idler_add(__retrieve_idler_cb, (void *)switch_data);
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_bubble_reset_data_service_after_send_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+       D_ENTER;
+}
+
+static void __msg_ui_bubble_reset_data_service_back_to_main_setting_value(MSG_DATA_SWITCH_DATA *switch_data)
+{
+       D_ENTER;
+
+       int active_sims;
+       int active_sim;
+       int data_subscription;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)switch_data->bubble_data->callback_data;
+       int curr_sim_idx = 0;
+       preference_get_int(KEY_MSG_APP_RESET_SIM_INDEX, &curr_sim_idx);
+
+       msg_common_get_sim_preference(cd, &active_sims, &active_sim, &data_subscription);
+
+       /* App has manually changed the data preferred sim while sending an MMS . Need to reset it back on message Send Success/Failure */
+       if (data_subscription != curr_sim_idx) {
+
+               if ((data_subscription == MSG_ACTIVE_DATA_SUBSCRIPTION_SIM2 || data_subscription == MSG_ACTIVE_DATA_SUBSCRIPTION_NONE) && curr_sim_idx == 1) {
+                       if (TAPI_API_SUCCESS != tel_set_network_default_data_subscription(cd->sim_info.handle[0], __msg_ui_bubble_reset_data_service_after_send_cb, (void *)cd))
+                               D_EMSG("tel_set_network_default_data_subscription failed");
+               } else if ((data_subscription == MSG_ACTIVE_DATA_SUBSCRIPTION_SIM1 || data_subscription == MSG_ACTIVE_DATA_SUBSCRIPTION_NONE) && curr_sim_idx == 2) {
+                       if (TAPI_API_SUCCESS != tel_set_network_default_data_subscription(cd->sim_info.handle[1], __msg_ui_bubble_reset_data_service_after_send_cb, (void *)cd))
+                               D_EMSG("tel_set_network_default_data_subscription failed");
+               }
+               preference_set_int(KEY_MSG_APP_RESET_SIM_INDEX, 0);
+       }
+}
+
+static void __msg_ui_bubble_switch_network_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_DATA_SWITCH_DATA *switch_data = (MSG_DATA_SWITCH_DATA *)data;
+       Evas_Object *popup = (Evas_Object *)obj;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)switch_data->bubble_data->callback_data;
+       msg_ui_composer_destroy_popup(cd, popup);
+
+       int curr_sim_idx = 0;
+       preference_get_int(KEY_MSG_APP_RESET_SIM_INDEX, &curr_sim_idx);
+       if (curr_sim_idx != 0) {
+               __msg_ui_bubble_reset_data_service_back_to_main_setting_value(switch_data);
+       }
+       cd->is_net_switch_popup_exist = false;
+
+       if (switch_data)
+               free(switch_data);
+}
+
+static void _msg_resp_data_service_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+       D_ENTER;
+
+       D_WMSG("Enter tel_set_network_default_data_subscription callback : %s", "_msg_resp_data_service_cb");
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, user_data == NULL);
+       MSG_DATA_SWITCH_DATA *switch_data = (MSG_DATA_SWITCH_DATA *)user_data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)switch_data->bubble_data->callback_data;
+
+
+       if (result == TAPI_API_SUCCESS) {
+               Evas_Object *popup = msg_ui_composer_create_activity_indicator_popup(cd);
+               cd->is_net_switch_popup_exist = true;
+               eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_composer_common_ignore_back_key_cb, cd);
+               elm_popup_timeout_set(popup, 60);
+               evas_object_smart_callback_add(popup, "timeout", __msg_ui_bubble_switch_network_popup_timeout_cb, switch_data);
+               cd->send_via_popup = popup;
+       } else {
+               msg_ui_common_deinitialize_telephony(switch_data->bubble_data->callback_data);
+       }
+       D_LEAVE;
+}
+
+static void __msg_net_switch_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+       MSG_DATA_SWITCH_DATA *switch_data = (MSG_DATA_SWITCH_DATA *)data;
+       PMSG_BUBBLE_DATA bubble_data = switch_data->bubble_data;
+       msg_ui_bubble_destroy_popup(bubble_data);
+       msg_ui_bubble_show_notify(bubble_data, MESSAGE_PKGNAME, "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED");
+       if (switch_data)
+               free(switch_data);
+       D_LEAVE;
+}
+
+void msg_ui_bubble_retrieve_message(MSG_DATA_SWITCH_DATA *switch_data)
+{
+       D_ENTER;
+
+       PMSG_BUBBLE_DATA bubble_data = switch_data->bubble_data;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = switch_data->item_data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       if (msg_ui_composer_message_mobile_data_roaming_check_and_send(cd, switch_data) != COMPOSER_RETURN_SUCCESS) {
+               return;
+       }
+
+       __msg_retrieve_clicked_cb(switch_data, item_data->msgId);
+}
+
+void __msg_retrieve_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "bubble_info");
+       MSG_DATA_SWITCH_DATA *switch_data = (MSG_DATA_SWITCH_DATA *)calloc(1, sizeof(MSG_DATA_SWITCH_DATA));
+       if (!switch_data) {
+               D_EMSG("calloc switch_data failed");
+               return;
+       }
+       switch_data->bubble_data = bubble_data;
+       switch_data->item_data = item_data;
+       cd->is_retrieve = true;
+
+       if (msg_ui_composer_message_flight_mode_check_and_change(cd, switch_data) != COMPOSER_RETURN_SUCCESS) {
+               D_MSG("FLIGHT MODE WAS ENABLED");
+               return;
+       } else {
+               msg_ui_bubble_retrieve_message(switch_data);
+       }
+
+       D_LEAVE;
+}
+#endif
+
+void __msg_bubble_click(PMSG_BUBBLE_DATA bubble_data, PMSG_COMMON_BUBBLE_INFO_S item_data)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data);
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !item_data);
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, bubble_data->viewmode != BUBBLE_NORMAL_VIEW);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, cd->loaded_ug != NULL);
+
+       /* Check message type */
+       if (item_data->msgType < MSG_TYPE_SMS || item_data->msgType > MSG_TYPE_MMS_NOTI)
+               return;
+
+       /* Avoiding conflict long_press_menu popup */
+       if (bubble_data->popup)
+               return;
+
+       if (item_data->msgType >= MSG_TYPE_SMS && item_data->msgType <= MSG_TYPE_MMS_NOTI)
+               elm_object_signal_emit(item_data->label, "elm,state,play,sound", "elm");
+
+#ifdef MESSAGE_VIEWER
+       /* avoiding duplicated launch ug */
+       if (!cd->loaded_ug)
+               msg_ui_bubble_launch_msg_viewer(bubble_data, item_data->msgId);
+#endif
+       __longpressed_cb(bubble_data, item_data->label, NULL);
+}
+
+static void __msg_ui_bubble_thumbnail_selected_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(NULL == data, "data is NULL");
+       D_MSG_RETM_IF(NULL == obj, "obj is NULL");
+
+       BUBBLE_MMS_MULTIPART_MEDIA_S *multipart_data = (BUBBLE_MMS_MULTIPART_MEDIA_S *)data;
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "bubble_info_multipart");
+
+       D_MSG_RETM_IF(!conv_data, "conv_data is NULL");
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)evas_object_data_get(conv_data->label, "bubble_data");
+
+       if (!bubble_data) {
+               D_EMSG("bubble_data is NULL");
+               return;
+       }
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       bubble_data->multipart_clicked = true;
+
+       elm_object_signal_emit(conv_data->label, "elm,state,play,sound", "elm");
+
+       if (bubble_data->viewmode != BUBBLE_NORMAL_VIEW)
+               return;
+
+       if (cd->is_service_launching) {
+               D_MSG("Already other or same service is trying to launch");
+               return;
+       }
+
+       char dst_path[MULTIPART_FILEPATH_MAX_LEN + 1] = {0,};
+       const char *filename = (const char *)msg_file_file_get(multipart_data->pfile_path);
+
+       int len = 0;
+       if (filename && filename[0] != '\0') {
+               len = strlen(filename);
+               snprintf(dst_path, sizeof(dst_path), "%s%s", cd->working_path, filename);
+               D_SEC_MSG("dst_path = %s", dst_path);
+       } else {
+               D_EMSG("filename is NULL");
+               return;
+       }
+
+       if (msg_file_cp(multipart_data->pfile_path, dst_path) == EINA_FALSE) {
+               D_EMSG("msg_file_cp is failed");
+               return;
+       }
+
+       if (dst_path[0] != '\0') {
+               COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+               COMPOSER_EXT_TYPE_E type = COMPOSER_EXT_TYPE_COMMON;
+
+               if (multipart_data->media_type == MEDIA_IMG) {
+                       type = COMPOSER_EXT_TYPE_IMAGE;
+               } else if (multipart_data->media_type == MEDIA_VIDEO) {
+                       type = COMPOSER_EXT_TYPE_VIDEO;
+               } else if (multipart_data->media_type == MEDIA_AUDIO) {
+                       type = COMPOSER_EXT_TYPE_SOUND;
+               } else if (multipart_data->media_type == MEDIA_ATTACH) {
+                       if (!strncmp(&filename[len - 3], "vcs", 3) || !strncmp(&filename[len - 3], "ics", 3)) {
+                               type = COMPOSER_EXT_TYPE_VIEW_CALENDAR;
+                       } else if (!strncmp(&filename[len - 3], "vcf", 3)) {
+                               type = COMPOSER_EXT_TYPE_VIEW_CONTACT;
+                       } else {
+                               type = COMPOSER_EXT_TYPE_COMMON;
+                       }
+               }
+
+               msg_ui_composer_unset_view(cd);
+
+               ret = msg_ui_composer_external_call(cd, type, dst_path);
+               if (ret == COMPOSER_RETURN_SUCCESS) {
+                       cd->is_service_launching = true;
+               } else {
+                       cd->is_service_launching = false;
+               }
+       }
+       return;
+}
+
+void __msg_bubble_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, bubble_data->viewmode != BUBBLE_NORMAL_VIEW);
+
+       PMSG_COMMON_BUBBLE_INFO_S item_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "bubble_info");
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !item_data);
+
+       if (bubble_data->multipart_clicked) {
+               D_IMSG("multipart_clicked");
+               bubble_data->multipart_clicked = false;
+               return;
+       }
+       __msg_bubble_click(bubble_data, item_data);
+}
+
+void __bubble_label_sound_attach_clicked(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, bubble_data->viewmode != BUBBLE_NORMAL_VIEW);
+
+       PMSG_COMMON_BUBBLE_INFO_S item_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "bubble_info");
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !item_data);
+
+       __msg_bubble_click(bubble_data, item_data);
+}
+
+void msg_ui_bubble_list_popup_rotate(void *data)
+{
+       D_ENTER;
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       elm_object_focus_set(bubble_data->popup, EINA_TRUE);
+
+       Evas_Object *layout = NULL;
+       layout = elm_object_content_get(bubble_data->popup);
+
+       int rotation = elm_win_rotation_get(cd->main_window);
+
+       if (rotation == COMPOSER_ROTATE_LANDSCAPE || rotation == COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN) {
+               if ((bubble_data->list_popup_item_count * MSG_BUBBLE_POPUP_LIST_1LINE_HEIGHT) > 360) {
+                       switch (bubble_data->popup_type) {
+                               case BUBBLE_POPUP_ADD_TAG:
+                               case BUBBLE_POPUP_SAVE_ATTACHMENT_LIST:
+                                       evas_object_size_hint_min_set(layout, 0, ELM_SCALE_SIZE(252));
+                                       break;
+                               default:
+                                       evas_object_size_hint_min_set(layout, 0, ELM_SCALE_SIZE(360));
+                                       break;
+                       }
+               } else {
+                       evas_object_size_hint_min_set(layout, 0, ELM_SCALE_SIZE(MSG_BUBBLE_POPUP_LIST_1LINE_HEIGHT * bubble_data->list_popup_item_count));
+               }
+       } else {
+               if ((bubble_data->list_popup_item_count * MSG_BUBBLE_POPUP_LIST_1LINE_HEIGHT) > 480) {
+                       evas_object_size_hint_min_set(layout, 0, ELM_SCALE_SIZE(480));
+               } else {
+                       switch (bubble_data->popup_type) {
+                               case BUBBLE_POPUP_ADD_TAG:
+                                       evas_object_size_hint_min_set(layout, 0, (ELM_SCALE_SIZE(MSG_BUBBLE_POPUP_LIST_1LINE_HEIGHT * bubble_data->list_popup_item_count)) + 10);
+                                       break;
+                               default:
+                                       evas_object_size_hint_min_set(layout, 0, ELM_SCALE_SIZE(MSG_BUBBLE_POPUP_LIST_1LINE_HEIGHT * bubble_data->list_popup_item_count));
+                                       break;
+                       }
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "conv_data");
+       if (conv_data) {
+               conv_data->is_btn_pressed = EINA_TRUE;
+       }
+}
+
+static char *__msg_ui_composer_failed_icon_list_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       const char *label  = (char *) data;
+
+       if (!g_strcmp0(part, "elm.text")) {
+               if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_RESEND")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_RESEND"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE"));
+               }
+       }
+       return NULL;
+}
+
+static void __msg_draft_edit_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, bubble_data->viewmode != BUBBLE_NORMAL_VIEW);
+       __msg_edit_message_clicked_cb(data, obj, event_info);
+}
+
+static void __msg_send_failed_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       Evas_Object *genlist = NULL;
+       int count = 0;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, bubble_data->viewmode != BUBBLE_NORMAL_VIEW);
+
+       PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(obj, "conv_data");
+
+       /* Avoiding conflict long_press_menu popup */
+       if (bubble_data->popup)
+               return;
+
+       Evas_Object *popup = msg_ui_bubble_create_popup(bubble_data, true);
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB");
+
+       genlist = elm_genlist_add(popup);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+
+       bubble_data->failed_icon_list_itc.item_style = "default";
+       bubble_data->failed_icon_list_itc.func.text_get = __msg_ui_composer_failed_icon_list_gl_text_get;
+       bubble_data->failed_icon_list_itc.func.content_get = NULL;
+       bubble_data->failed_icon_list_itc.func.state_get = NULL;
+       bubble_data->failed_icon_list_itc.func.del = NULL;
+
+       elm_genlist_item_append(genlist, &bubble_data->failed_icon_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_RESEND"), NULL, ELM_GENLIST_ITEM_NONE, __msg_resend_btn_clicked_cb, bubble_data);
+       count++;
+       elm_genlist_item_append(genlist, &bubble_data->failed_icon_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE"), NULL, ELM_GENLIST_ITEM_NONE, __msg_delete_clicked_cb, bubble_data);
+       count++;
+
+       Evas_Object *box = elm_box_add(popup);
+       evas_object_size_hint_min_set(box, 0, ELM_SCALE_SIZE(MSGC_POPUP_LIST_H * count));
+       evas_object_data_set(genlist, "conv_data", conv_data);
+       evas_object_show(genlist);
+       elm_box_pack_end(box, genlist);
+       elm_object_content_set(popup, box);
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       bubble_data->popup = popup;
+       bubble_data->popup_type = BUBBLE_POPUP_RESEND;
+}
+
+static Evas_Object *__msg_ui_bubble_create_date_line_layout(PMSG_BUBBLE_DATA bubble_data, char *displayDate)
+{
+       Evas_Object *layout = NULL;
+       layout = elm_layout_add(bubble_data->box);
+       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "composer/content/bubble/date_line");
+       elm_object_part_text_set(layout, "elm.text.date", displayDate);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       evas_object_show(layout);
+
+       return layout;
+}
+
+static void __msg_ui_bubble_add_date_line(PMSG_BUBBLE_DATA bubble_data, PBUBBLE_PACKED_INFO packed_data)
+{
+       Evas_Object *layout = NULL;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       PBUBBLE_PACKED_INFO date_line_data = NULL;
+
+       item_data = (PMSG_COMMON_BUBBLE_INFO_S)packed_data->data;
+       layout = __msg_ui_bubble_create_date_line_layout(bubble_data, item_data->displayDate);
+
+       date_line_data = (PBUBBLE_PACKED_INFO)calloc(1, sizeof(BUBBLE_PACKED_INFO));
+
+       if (date_line_data) {
+               date_line_data->layout_type = BUBBLE_PACKED_LAYOUT_DATELINE;
+               date_line_data->layout = layout;
+
+               /* This data which is being assigned for the date line layout is the same
+                * data of the bubble which is being inserted under this date line
+                * Only difference is layout_type for both will be different */
+               date_line_data->data = (void *)item_data;
+
+               __msg_ui_bubble_add_bubble_to_box(bubble_data, date_line_data, MSG_BOX_PACK_BEFORE, packed_data->layout);
+       } else {
+               D_EMSG("calloc is failed (%s)", strerror(errno));
+       }
+}
+
+static bool __msg_ui_bubble_is_today_buble(PMSG_BUBBLE_DATA bubble_data, PMSG_COMMON_BUBBLE_INFO_S item_data)
+{
+       PMSG_COMMON_BUBBLE_TIME_S time_info = (PMSG_COMMON_BUBBLE_TIME_S)bubble_data->time_info;
+       time_t cur_t;
+       cur_t = (time_t) time(NULL);
+
+       char *cur_date_str = msg_common_get_display_date(time_info->locale, time_info->date_ptn_year, &cur_t);
+       if (cur_date_str) {
+               if (strcmp(cur_date_str, item_data->displayDate) == 0) {
+                       free(cur_date_str);
+                       return false;
+               }
+               free(cur_date_str);
+       }
+       return true;
+}
+
+static bool __msg_ui_bubble_is_date_line_needed(PMSG_BUBBLE_DATA bubble_data, PBUBBLE_PACKED_INFO packed_data)
+{
+       D_ENTER;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       PMSG_COMMON_BUBBLE_INFO_S prev_data = NULL;
+       PBUBBLE_PACKED_INFO prev_packed_data = NULL;
+
+       Eina_List *temp_list = NULL;
+       Eina_List *prev_list = NULL;
+
+       temp_list = eina_list_data_find_list(bubble_data->packed_list, packed_data);
+       prev_list = eina_list_prev(temp_list);
+       item_data = (PMSG_COMMON_BUBBLE_INFO_S)packed_data->data;
+
+       if (prev_list) {
+               prev_packed_data = eina_list_nth(prev_list, 0);
+               if (prev_packed_data) {
+                       prev_data = (PMSG_COMMON_BUBBLE_INFO_S)prev_packed_data->data;
+
+                       if (prev_packed_data->layout_type == BUBBLE_PACKED_LAYOUT_DATELINE) {
+                               return false;
+                       } else {
+                               if (prev_data && g_strcmp0(prev_data->displayDate, item_data->displayDate) == 0)
+                                       return false;
+                               else
+                                       return true;
+                       }
+               } else {
+                       return __msg_ui_bubble_is_today_buble(bubble_data, item_data);
+               }
+       } else {
+               Eina_List *bubble_list = NULL;
+               Eina_List *prev_bubble_list = NULL;
+               bubble_list = eina_list_data_find_list(bubble_data->bubble_list, packed_data->data);
+               prev_bubble_list = eina_list_prev(bubble_list);
+               if (prev_bubble_list) {
+
+                       prev_data = eina_list_nth(prev_bubble_list, 0);
+
+                       if (prev_data && g_strcmp0(prev_data->displayDate, item_data->displayDate) == 0)
+                               return false;
+                       else
+                               return true;
+               } else {
+                       return __msg_ui_bubble_is_today_buble(bubble_data, item_data);
+               }
+       }
+}
+
+Eina_Bool scroller_region_show(void *data)
+{
+       D_ENTER;
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA) data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       elm_scroller_region_show(bubble_data->scrl, 0, 0, 0, 0);
+
+       if (bubble_data->region_show_id > 0) {
+               bool isfound = false;
+               PBUBBLE_PACKED_INFO packed_info = NULL;
+               PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+               Eina_List *l = NULL;
+               EINA_LIST_FOREACH(bubble_data->packed_list, l, packed_info) {
+                       if (packed_info && packed_info->layout_type == BUBBLE_PACKED_LAYOUT_BUBBLE) {
+                               item_data = (PMSG_COMMON_BUBBLE_INFO_S)packed_info->data;
+                               if (item_data && item_data->msgId == bubble_data->region_show_id) {
+                                       msg_ui_bubble_scroller_show_search_msg(bubble_data, packed_info->layout);
+                                       isfound = true;
+                                       break;
+                               }
+                       }
+               }
+
+               if (!isfound)
+                       msg_ui_bubble_scroller_show_latest(bubble_data);
+       } else {
+               msg_ui_bubble_scroller_show_latest(bubble_data);
+       }
+
+       edje_object_signal_emit(_EDJ(cd->content_layout), "composer,bubble,show", "");
+
+       bubble_data->region_show_id = 0;
+       bubble_data->scroll_timer = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void msg_ui_bubble_add_bubble(PMSG_BUBBLE_DATA bubble_data, PMSG_COMMON_BUBBLE_INFO_S item_data, PMSG_COMMON_BUBBLE_INFO_S next_data)
+{
+       D_ENTER;
+
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_DEBUG, !bubble_data || !item_data, "NULL param");
+
+       if (next_data)
+               __add_bubble_item(bubble_data, item_data, MSG_BOX_PACK_BEFORE, next_data);
+       else
+               __add_bubble_item(bubble_data, item_data, MSG_BOX_PACK_END, NULL);
+
+
+       if (bubble_data->scroll_timer) {
+               ecore_timer_del(bubble_data->scroll_timer);
+               bubble_data->scroll_timer = NULL;
+       }
+
+       if (next_data)
+               bubble_data->region_show_id = item_data->msgId;
+       else
+               bubble_data->region_show_id = 0;
+
+       bubble_data->scroll_timer = ecore_timer_add(0.3, scroller_region_show, bubble_data);
+
+       D_LEAVE;
+}
+
+static int __msg_ui_bubble_get_bubble_height(PMSG_COMMON_BUBBLE_INFO_S item_data)
+{
+       D_MSG_RETVM_IF(!item_data, 0, "item_data is NULL!!");
+       Evas_Coord w, h;
+
+       Evas_Object *resize_obj = elm_layout_edje_get(item_data->label);
+       edje_object_size_min_restricted_calc(resize_obj, &w, &h, 480, 0);
+
+       return h;
+}
+
+void msg_ui_bubble_draw_load_bubbles(PMSG_BUBBLE_DATA bubble_data)
+{
+       D_ENTER;
+
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       Eina_List *l = NULL;
+
+       EINA_LIST_FOREACH(bubble_data->bubble_list, l, item_data)
+       {
+               if (item_data)
+                       __add_bubble_item(bubble_data, item_data, MSG_BOX_PACK_END, NULL);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_load_bubbles(PMSG_BUBBLE_DATA bubble_data, int msg_id)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!bubble_data, "bubble_data is NULL!!");
+
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+
+       if (!bubble_data->bubble_list || bubble_data->bubble_count < 0) {
+               D_EMSG("bubble_list is NULL");
+               return;
+       }
+
+       msg_ui_bubble_draw_load_bubbles(bubble_data);
+
+       if (bubble_data->isFirstLoading) {
+               bubble_data->region_show_id = msg_id;
+               double interval = 0.1;
+               if (msg_id > 0) {
+                       interval = 0.3;
+
+                       if (bubble_data->scroll_timer) {
+                               ecore_timer_del(bubble_data->scroll_timer);
+                               bubble_data->scroll_timer = NULL;
+                       }
+
+                       bubble_data->scroll_timer = ecore_timer_add(interval, scroller_region_show, bubble_data);
+               } else {
+                       ecore_idler_add(scroller_region_show, bubble_data);
+               }
+
+               bubble_data->isFirstLoading = false;
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_rotate_bubbles(PMSG_BUBBLE_DATA bubble_data, int rotation)
+{
+       D_ENTER;
+       PBUBBLE_PACKED_INFO packed_info = NULL;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       Eina_List *l = NULL;
+       EINA_LIST_FOREACH(bubble_data->packed_list, l, packed_info) {
+               if (packed_info && packed_info->layout_type == BUBBLE_PACKED_LAYOUT_BUBBLE) {
+                       item_data = (PMSG_COMMON_BUBBLE_INFO_S)packed_info->data;
+                       if (item_data && item_data->rotation != rotation) {
+                               item_data->rotation = rotation;
+                               msg_common_resize_bubble(item_data);
+                       }
+               }
+       }
+
+       if (bubble_data->popup) {
+               msg_ui_bubble_list_popup_rotate(bubble_data);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_reload_bubbles(PMSG_BUBBLE_DATA bubble_data, int msg_id)
+{
+       D_ENTER;
+       elm_box_unpack_all(bubble_data->box);
+       msg_ui_bubble_clear_packed_list(bubble_data);
+
+       msg_ui_bubble_load_bubbles(bubble_data, msg_id);
+}
+
+int msg_ui_bubble_get_draft_msg_id(PMSG_BUBBLE_DATA bubble_data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!bubble_data, 0, "bubble_data is NULL!!");
+
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_list_s conv_list;
+       int i = 0;
+
+       err = msg_get_conversation_view_list(bubble_data->msgHandle, bubble_data->threadId, &conv_list);
+       if (err != MSG_SUCCESS)
+               return 0;
+
+       D_MSG("Bubble count = %d", conv_list.nCount);
+
+       if (conv_list.nCount <= 0) {
+               msg_release_list_struct(&conv_list);
+               return 0;
+       }
+
+       int folder_id = MSG_MAX_FOLDER_ID;
+       int msg_id = 0;
+
+       for (i = conv_list.nCount - 1; i >= 0; i--) {
+               msg_get_int_value(conv_list.msg_struct_info[i], MSG_CONV_MSG_FOLDER_ID_INT, &folder_id);
+
+               if (folder_id == MSG_DRAFT_ID) {
+                       msg_get_int_value(conv_list.msg_struct_info[i], MSG_CONV_MSG_ID_INT, &msg_id);
+                       D_MSG("msg_id = %d is a draft message", msg_id);
+                       break;
+               }
+       }
+       msg_release_list_struct(&conv_list);
+       return msg_id;
+}
+
+void msg_ui_bubble_list_load(PMSG_BUBBLE_DATA bubble_data, bool bload_draft)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!bubble_data, "bubble_data is NULL!!");
+
+       msg_error_t err = MSG_SUCCESS;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       msg_struct_list_s *conv_list = NULL;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       int i;
+
+       if (!bubble_data->conv_list) {
+               conv_list = (msg_struct_list_s *)calloc(1, sizeof(msg_struct_list_s));
+               if (conv_list) {
+                       err = msg_get_conversation_view_list(bubble_data->msgHandle, bubble_data->threadId, conv_list);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_get_conversation_view_list is Failed");
+                               free(conv_list);
+                               conv_list = NULL;
+                               return;
+                       }
+               } else {
+                       D_EMSG("calloc conv_list failed .");
+                       return;
+               }
+       } else {
+               conv_list = bubble_data->conv_list;
+       }
+
+       msg_ui_bubble_start_bubble_list(bubble_data);
+       bubble_data->isFirstLoading = true;
+
+       D_MSG("Bubble count = %d", conv_list->nCount);
+
+       bubble_data->bubble_count = conv_list->nCount;
+
+       if (bubble_data->bubble_count <= 0) {
+               msg_release_list_struct(conv_list);
+               free(conv_list);
+               return;
+       }
+
+       int folder_id = MSG_MAX_FOLDER_ID;
+       int msg_id = 0;
+
+       for (i = 0; i < conv_list->nCount; i++) {
+               msg_get_int_value(conv_list->msg_struct_info[i], MSG_CONV_MSG_FOLDER_ID_INT, &folder_id);
+
+               D_MSG_RETM_IF(!bubble_data->time_info, "time_info is NULL!!");
+
+               item_data = (PMSG_COMMON_BUBBLE_INFO_S)calloc(1, sizeof(MSG_COMMON_BUBBLE_INFO_S));
+
+               msg_common_get_thumbnail_by_conv_item(cd->msg_handle, conv_list->msg_struct_info[i]);
+               msg_common_set_bubble_info_by_conv_data(cd->msg_handle, item_data, bubble_data->time_info, conv_list->msg_struct_info[i]);
+
+               if (folder_id == MSG_DRAFT_ID) {
+                       msg_get_int_value(conv_list->msg_struct_info[i], MSG_CONV_MSG_ID_INT, &msg_id);
+                       item_data->isDraft = true;
+               }
+
+               bubble_data->bubble_list = eina_list_append(bubble_data->bubble_list, (const void *)item_data);
+       }
+
+       /* load last draft message,
+               Do not set draft message if bundle_body_data is not null, because in case msg body data is included from app-service,
+               bundle body data should be displayed instead of draft message */
+       if (bload_draft && bubble_data->isDraft && !bubble_data->bundle_body_data) {
+               D_MSG("last draft msgid is %d", msg_id);
+
+               cd->loading_draft = true;
+               /* change composer mode */
+               cd->composer_mode = MSG_COMPOSER_MODE_EDIT;
+               cd->msg_id = msg_id;
+               bubble_data->draft_msg_id = msg_id;
+
+               msg_ui_composer_message_init();
+               msg_ui_composer_message_load_message(cd->msg_handle, msg_id, false);
+               if (msg_ui_composer_message_set_loaded_data(cd, false) != COMPOSER_RETURN_CREATION_WARINING_MODE_FAIL)
+                       msg_ui_composer_message_destroy();
+
+               /* rotation info(cd->rotate) is updated after loading draft message, so getting rotation info from window and using it */
+               int changed_rotation = elm_win_rotation_get(cd->main_window);
+               msg_ui_composer_change_body_layout_mode(cd, changed_rotation);
+
+               cd->loading_draft = false;
+       } else {
+               /* set bundle text data from app service with "BODY" key */
+               if (bubble_data->bundle_body_data)
+                       msg_ui_composer_body_set_loaded_text(cd, bubble_data->bundle_body_data, 0);
+
+               /* In case of bubble view we add the signature here because at the start up
+                * we do not know whether it is draft msg or not. */
+               if (true == msg_ui_composer_common_is_signature_enabled(cd, false)) {
+                       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+                       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(cd->body_data.page_list, 0);
+
+                       D_MSG("cd->signature_string = %s", cd->signature_string);
+                       char *utf8_string = NULL;
+                       utf8_string = elm_entry_utf8_to_markup(cd->signature_string);
+                       if (NULL != utf8_string) {
+                               if (bubble_data->bundle_body_data)
+                                       elm_entry_entry_append(page_data->entry, utf8_string);
+                               else
+                                       elm_entry_entry_set(page_data->entry, utf8_string);
+
+                               free(utf8_string);
+                       }
+               }
+
+               if (bubble_data->bundle_body_data) {
+                       free(bubble_data->bundle_body_data);
+                       bubble_data->bundle_body_data = NULL;
+               }
+       }
+
+       msg_ui_composer_editable_set(cd, EINA_TRUE);
+
+       if (conv_list) {
+               msg_release_list_struct(conv_list);
+               free(conv_list);
+               conv_list = NULL;
+               bubble_data->conv_list = NULL;
+       }
+
+       if (bubble_data->search_id > 0)
+               msg_ui_bubble_load_bubbles(bubble_data, bubble_data->search_id);
+       else
+               msg_ui_bubble_load_bubbles(bubble_data, 0);
+
+       msg_ui_bubble_list_update_read_status_thread_call(bubble_data);
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_list_data_update(PMSG_BUBBLE_DATA bubble_data)
+{
+       D_ENTER;
+
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+
+       Eina_List *l = NULL;
+       EINA_LIST_FOREACH(bubble_data->bubble_list, l, item_data) {
+               if (item_data) {
+                       item_data->recv_bubble_style = bubble_data->recv_bubble_style;
+                       item_data->sent_bubble_style = bubble_data->sent_bubble_style;
+                       if (item_data->label)
+                               msg_ui_bubble_update_bubble(bubble_data, item_data);
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_item_data_update(msg_handle_t msg_handle, PMSG_BUBBLE_DATA bubble_data, msg_struct_t msg)
+{
+       D_ENTER;
+
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+
+       int msg_id = 0 ;
+       time_t msgTime = 0;
+       msg_get_int_value(msg, MSG_CONV_MSG_ID_INT, &msg_id);
+       msg_get_int_value(msg, MSG_CONV_MSG_DISPLAY_TIME_INT, (int *)(&msgTime));
+
+       Eina_List *l = NULL;
+       EINA_LIST_FOREACH(bubble_data->bubble_list, l, item_data) {
+               if (item_data) {
+                       if (item_data->msgId == msg_id) {
+                               if (*item_data->msgTime != msgTime) {
+                                       D_MSG("item_data->msgTime = %d and msgTime = %d", *item_data->msgTime, msgTime);
+                                       msg_ui_bubble_list_item_move(msg_handle, bubble_data, msg);
+                               } else {
+                                       msg_common_set_bubble_info_by_conv_data(msg_handle, item_data, bubble_data->time_info, msg);
+
+                                       if (item_data && item_data->label) {
+                                               msg_ui_bubble_update_bubble(bubble_data, item_data);
+                                               if (bubble_data->viewmode == BUBBLE_EDIT_VIEW) {
+                                                       Evas_Object *check = NULL;
+                                                       if (!item_data->chk) {
+                                                               check = elm_check_add(item_data->label);
+                                                               elm_check_state_pointer_set(check, &item_data->isCheck);
+                                                               evas_object_data_set(check, "item_data", (const void *)item_data);
+                                                               evas_object_smart_callback_add(check, "changed", msg_ui_bubble_list_checked_cb, (const void *)bubble_data);
+                                                               evas_object_propagate_events_set(check, EINA_FALSE);
+                                                               item_data->chk = check;
+                                                       }
+                                                       Evas_Object *edje_obj = (Evas_Object *)edje_object_part_object_get(_EDJ(item_data->label), "base");
+                                                       evas_object_event_callback_add(edje_obj, EVAS_CALLBACK_MOUSE_DOWN, msg_ui_bubble_item_mouse_down_cb, (const void *)item_data);
+                                                       elm_object_part_content_set(item_data->label, "elm.bubble.swallow.select_icon", item_data->chk);
+                                                       elm_object_signal_emit(item_data->label, "elm,state,select,enable", "elm");
+                                               }
+                                       }
+                               }
+                               break;
+                       }
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_list_date_update(PMSG_BUBBLE_DATA bubble_data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(bubble_data == NULL, "bubble_data is NULL!");
+
+       if (bubble_data->packed_list) {
+               PBUBBLE_PACKED_INFO packed_info = NULL;
+               PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+               PMSG_COMMON_BUBBLE_TIME_S time_info = (PMSG_COMMON_BUBBLE_TIME_S)bubble_data->time_info;
+               Eina_List *l = NULL;
+
+               if (time_info->date_ptn_default) {
+                       free(time_info->date_ptn_default);
+                       time_info->date_ptn_default = msg_common_get_date_best_pattern(time_info->locale, MSG_UI_DATE_PATTERN_DEFAULT);
+               }
+
+               if (time_info->date_ptn_year) {
+                       free(time_info->date_ptn_year);
+                       time_info->date_ptn_year = msg_common_get_date_best_pattern(time_info->locale, MSG_UI_DATE_PATTERN_YEAR);
+               }
+
+               EINA_LIST_FOREACH(bubble_data->packed_list, l, packed_info) {
+                       if (packed_info && packed_info->layout_type == BUBBLE_PACKED_LAYOUT_DATELINE && packed_info->layout) {
+                               item_data = (PMSG_COMMON_BUBBLE_INFO_S)packed_info->data;
+                               if (item_data && item_data->displayDate[0] != '\0') {
+                                       if (item_data->msgTime) {
+                                               char *msg_date = msg_common_get_display_date(time_info->locale, time_info->date_ptn_year, item_data->msgTime);
+
+                                               if (msg_date) {
+                                                       bzero(item_data->displayDate, sizeof(item_data->displayDate));
+                                                       snprintf(item_data->displayDate, sizeof(item_data->displayDate), "%s", msg_date);
+                                                       elm_object_part_text_set(packed_info->layout, "elm.text.date", item_data->displayDate);
+                                                       free(msg_date);
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
+static int __msg_ui_bubble_find_adding_position(PMSG_BUBBLE_DATA bubble_data, PMSG_COMMON_BUBBLE_INFO_S add_data)
+{
+       int i = 0;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+
+       for (i = 0; i < bubble_data->bubble_count; i++) {
+               item_data = (PMSG_COMMON_BUBBLE_INFO_S)eina_list_nth(bubble_data->bubble_list, i);
+               if (item_data) {
+                       if (*item_data->msgTime > *add_data->msgTime) {
+                               D_SEC_MSG("[BUBBLE_LIST]item_data->msgTime = [%d], add_data->msgTime= [%d]", *item_data->msgTime, *add_data->msgTime);
+                               break;
+                       }
+               }
+               item_data = NULL;
+       }
+
+       return i;
+}
+
+void msg_ui_bubble_list_add(msg_handle_t msg_handle, PMSG_BUBBLE_DATA bubble_data, msg_struct_t msg)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, !bubble_data);
+
+       int msg_id = 0;
+       int folder_id = 0;
+       Eina_List *l = NULL;
+       int pos = 0;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       PMSG_COMMON_BUBBLE_INFO_S relative_position_data = NULL;
+
+       msg_get_int_value(msg, MSG_CONV_MSG_ID_INT, &msg_id);
+       msg_get_int_value(msg, MSG_CONV_MSG_FOLDER_ID_INT, &folder_id);
+#if 0
+       if (folder_id == MSG_DRAFT_ID)
+               return;
+#endif
+       EINA_LIST_FOREACH(bubble_data->bubble_list, l, item_data) {
+               if (item_data && item_data->msgId == msg_id)
+                       return;
+       }
+
+       PMSG_COMMON_BUBBLE_INFO_S add_data = NULL;
+       add_data = (PMSG_COMMON_BUBBLE_INFO_S) calloc(1, sizeof(MSG_COMMON_BUBBLE_INFO_S));
+       msg_common_set_bubble_info_by_conv_data(msg_handle, add_data, bubble_data->time_info, msg);
+
+       pos = __msg_ui_bubble_find_adding_position(bubble_data, add_data);
+       relative_position_data = eina_list_nth(bubble_data->bubble_list, pos);
+
+       if (relative_position_data) {
+               bubble_data->bubble_list = eina_list_prepend_relative(bubble_data->bubble_list, add_data, relative_position_data);
+       } else {
+               bubble_data->bubble_list = eina_list_append(bubble_data->bubble_list, (const void *)add_data);
+       }
+
+       bubble_data->bubble_count++;
+
+       msg_ui_bubble_add_bubble(bubble_data, add_data, NULL);
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_list_item_move(msg_handle_t msg_handle, PMSG_BUBBLE_DATA bubble_data, msg_struct_t msg)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, !bubble_data);
+
+       int msg_id = 0;
+       int pos = 0;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       PMSG_COMMON_BUBBLE_INFO_S relative_position_data = NULL;
+
+       msg_get_int_value(msg, MSG_CONV_MSG_ID_INT, &msg_id);
+
+       PBUBBLE_PACKED_INFO packed_data = NULL;
+       Eina_List *l;
+       EINA_LIST_FOREACH(bubble_data->bubble_list, l, item_data) {
+               if (item_data && item_data->msgId == msg_id) {
+
+                       packed_data = __msg_ui_bubble_find_item_from_packed_list(bubble_data, item_data);
+
+                       if (packed_data && packed_data->layout_type != BUBBLE_PACKED_LAYOUT_DATELINE) {
+                               Eina_List *temp_list = NULL;
+                               Eina_List *prev_list = NULL;
+                               PBUBBLE_PACKED_INFO prev_packed_data = NULL;
+
+                               temp_list = eina_list_data_find_list(bubble_data->packed_list, packed_data);
+
+                               prev_list = eina_list_prev(temp_list);
+                               if (prev_list)
+                                       prev_packed_data = (PBUBBLE_PACKED_INFO)eina_list_nth(prev_list, 0);
+
+                               if (prev_packed_data && prev_packed_data->layout_type == BUBBLE_PACKED_LAYOUT_DATELINE) {
+                                       PBUBBLE_PACKED_INFO next_packed_data = NULL;
+
+                                       temp_list = eina_list_next(temp_list);
+                                       if (temp_list)
+                                               next_packed_data = (PBUBBLE_PACKED_INFO)eina_list_nth(temp_list, 0);
+
+                                       if (!next_packed_data || next_packed_data->layout_type == BUBBLE_PACKED_LAYOUT_DATELINE) {
+                                               __msg_ui_bubble_remove_bubble_from_box(bubble_data, prev_packed_data, true);
+                                               free(prev_packed_data);
+                                       }
+                               }
+
+                               __msg_ui_bubble_remove_bubble_from_box(bubble_data, packed_data, false);
+                               free(packed_data);
+                       }
+                       bubble_data->bubble_list = eina_list_remove(bubble_data->bubble_list, (const void *)item_data);
+                       bubble_data->bubble_count--;
+
+                       break;
+               }
+       }
+
+       msg_common_set_bubble_info_by_conv_data(msg_handle, item_data, bubble_data->time_info, msg);
+       if (item_data) {
+               pos = __msg_ui_bubble_find_adding_position(bubble_data, item_data);
+               relative_position_data = eina_list_nth(bubble_data->bubble_list, pos);
+
+               if (relative_position_data) {
+                       bubble_data->bubble_list = eina_list_prepend_relative(bubble_data->bubble_list, item_data, relative_position_data);
+               } else {
+                       bubble_data->bubble_list = eina_list_append(bubble_data->bubble_list, (const void *)item_data);
+               }
+
+               msg_ui_bubble_add_bubble(bubble_data, item_data, NULL);
+
+               evas_object_show(item_data->label);
+               elm_box_recalculate(bubble_data->box);
+
+               bubble_data->bubble_count++;
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_list_item_remove(PMSG_BUBBLE_DATA bubble_data, int msg_id)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, !bubble_data);
+
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       PBUBBLE_PACKED_INFO packed_data = NULL;
+
+       Eina_List *l;
+       EINA_LIST_FOREACH(bubble_data->bubble_list, l, item_data) {
+               if (item_data && item_data->msgId == msg_id) {
+
+                       packed_data = __msg_ui_bubble_find_item_from_packed_list(bubble_data, item_data);
+
+                       if (packed_data) {
+                               Eina_List *temp_list = NULL;
+                               Eina_List *prev_list = NULL;
+                               PBUBBLE_PACKED_INFO prev_packed_data = NULL;
+
+                               temp_list = eina_list_data_find_list(bubble_data->packed_list, packed_data);
+
+                               prev_list = eina_list_prev(temp_list);
+                               if (prev_list)
+                                       prev_packed_data = (PBUBBLE_PACKED_INFO)eina_list_nth(prev_list, 0);
+
+                               if (prev_packed_data && prev_packed_data->layout_type == BUBBLE_PACKED_LAYOUT_DATELINE) {
+                                       PBUBBLE_PACKED_INFO next_packed_data = NULL;
+
+                                       temp_list = eina_list_next(temp_list);
+                                       if (temp_list)
+                                               next_packed_data = (PBUBBLE_PACKED_INFO)eina_list_nth(temp_list, 0);
+
+                                       if (!next_packed_data || next_packed_data->layout_type == BUBBLE_PACKED_LAYOUT_DATELINE) {
+                                               __msg_ui_bubble_remove_bubble_from_box(bubble_data, prev_packed_data, true);
+                                               free(prev_packed_data);
+                                       }
+                               }
+
+                               __msg_ui_bubble_remove_bubble_from_box(bubble_data, packed_data, true);
+                               free(packed_data);
+                       }
+                       bubble_data->bubble_list = eina_list_remove(bubble_data->bubble_list, (const void *)item_data);
+                       bubble_data->bubble_count--;
+
+                       msg_common_release_mms_struct_data(item_data->mms_data);
+
+                       free(item_data);
+
+                       break;
+               }
+       }
+
+       if (bubble_data->bubble_count == 0) {
+               bool isDraft = msg_ui_composer_common_is_send_possible((MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data);
+               if (isDraft) {
+                       /* change to normal composer */
+                       msg_ui_bubble_change_composer_view(bubble_data);
+               } else {
+                       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+                       /* it is set so that keypad does not show manually even though entry has a focus because composer is getting destroyed*/
+                       cd->isclosed = true;
+                       ug_destroy_me(cd->ug);
+               }
+       }
+}
+
+void msg_ui_bubble_clear_packed_list(PMSG_BUBBLE_DATA bubble_data)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data);
+
+       if (bubble_data->packed_list) {
+               PBUBBLE_PACKED_INFO packed_data = NULL;
+               PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+
+               EINA_LIST_FREE(bubble_data->packed_list, packed_data) {
+                       if (packed_data) {
+                               item_data = (PMSG_COMMON_BUBBLE_INFO_S)packed_data->data;
+                               if (item_data) {
+#ifndef _MSG_FEATURE_MMS_DISABLE
+                                       if (item_data->retrieve_button) {
+                                               evas_object_del(item_data->retrieve_button);
+                                               item_data->retrieve_button = NULL;
+                                       }
+#endif
+                                       if (item_data->label) {
+                                               evas_object_del(item_data->label);
+                                               item_data->label = NULL;
+                                       }
+
+                                       item_data->install_button = NULL;
+                                       item_data->chk = NULL;
+
+                                       item_data->install_btn_cb = NULL;
+                                       item_data->failed_btn_cb = NULL;
+                                       item_data->failed_btn_pressed_cb = NULL;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+                                       item_data->retrieve_btn_cb = NULL;
+#endif
+                                       item_data->translate_btn_cb = NULL;
+                                       item_data->multipart_clicked_cb = NULL;
+                               }
+                               free(packed_data);
+                       }
+               }
+       }
+}
+
+void msg_ui_bubble_list_update_translation(PMSG_BUBBLE_DATA bubble_data, bool state)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!bubble_data, "bubble_data is NULL!!");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !cd || !cd);
+
+       D_MSG("state = %d", state);
+
+       Eina_List *l = NULL;
+       PBUBBLE_PACKED_INFO packed_data = NULL;
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       EINA_LIST_FOREACH(bubble_data->packed_list, l, packed_data) {
+               if (packed_data && packed_data->data) {
+                       item_data = (PMSG_COMMON_BUBBLE_INFO_S)packed_data->data;
+                       if (item_data == NULL) {
+                               continue;
+                       }
+                       if (item_data->direction == MSG_DIRECTION_TYPE_MT) {
+                               Evas_Object *translate_button = NULL;
+                               if (state == true) {
+                                       translate_button = elm_button_add(item_data->label);
+                                       elm_object_theme_set(translate_button, cd->th);
+                                       elm_object_style_set(translate_button, "translate_button");
+
+                                       elm_object_part_content_set(item_data->label, "elm.swallow.icon1", translate_button);
+                                       edje_object_signal_emit(_EDJ(item_data->label), "elm,state,contents,enabled", "");
+
+                                       evas_object_data_set(translate_button, "conv_data", item_data);
+
+                                       if (item_data->translate_btn_cb)
+                                               evas_object_smart_callback_add(translate_button, "clicked", item_data->translate_btn_cb, item_data->priv);
+                               } else {
+                                       Evas_Object *button = NULL;
+                                       button = elm_object_part_content_unset(item_data->label, "elm.swallow.icon1");
+                                       if (button)
+                                               evas_object_del(button);
+                               }
+                       }
+               }
+       }
+}
+
diff --git a/composer/src/bubble/msg-ui-composer-bubble-main.c b/composer/src/bubble/msg-ui-composer-bubble-main.c
new file mode 100755 (executable)
index 0000000..bf65cc4
--- /dev/null
@@ -0,0 +1,615 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <dlfcn.h>
+
+#include "msg-ui-composer-bubble.h"
+#include "msg-ui-composer-data.h"
+#include "msg-ui-composer-body.h"
+#include "msg-ui-composer-subject.h"
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-util.h"
+
+static int _parse_bundle_data(PMSG_BUBBLE_DATA bubble_data, app_control_h svc_handle)
+{
+       D_ENTER;
+
+       if (!svc_handle)
+               return -1;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       char *thread_id = NULL;
+       char *search_id = NULL;
+       char *search_str = NULL;
+       char *body_str = NULL;
+       char *msg_type_str = NULL;
+       msg_struct_t threadInfo = NULL;
+       int err;
+
+       if (!cd) {
+               D_EMSG("cd is NULL");
+               return -1;
+       }
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, &thread_id);
+       bubble_data->threadId = thread_id ? (msg_thread_id_t)atoi(thread_id) : 0;
+       D_MSG("Thread ID from bundle data=%d", bubble_data->threadId);
+
+       if (thread_id)
+               free(thread_id);
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_SEARCH_ID, &search_id);
+       if (search_id) {
+               bubble_data->search_id = atoi(search_id);
+               free(search_id);
+       }
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_SEARCH_WORD, &search_str);
+       if (search_str) {
+               strncpy(bubble_data->search_word, search_str, strlen(search_str));
+               free(search_str);
+       }
+
+       msg_struct_list_s addrList;
+       int i = 0;
+       memset(&addrList, 0x00, sizeof(msg_struct_list_s));
+
+       err = msg_get_address_list(bubble_data->msgHandle, bubble_data->threadId, &addrList);
+       if (err == MSG_SUCCESS) {
+               bubble_data->addr_list.addr_cnt = addrList.nCount;
+
+               for (i = 0; i < addrList.nCount; i++)
+                       msg_get_str_value(addrList.msg_struct_info[i], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, bubble_data->addr_list.addr_info[i].address, DEF_THREAD_ADDR_LEN);
+
+               msg_release_list_struct(&addrList);
+
+       } else {
+               D_MSG("[ERROR] msg_get_address_list return error [%d]", err);
+       }
+
+       /* get msg_type */
+       int msg_type = 0;
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_TYPE, &msg_type_str);
+
+       if (msg_type_str) {
+               msg_type = atoi(msg_type_str);
+       } else {
+               threadInfo = msg_create_struct(MSG_STRUCT_THREAD_INFO);
+               err = msg_get_thread(bubble_data->msgHandle, bubble_data->threadId, threadInfo);
+               msg_get_int_value(threadInfo, MSG_THREAD_MSG_TYPE_INT, &msg_type);
+               bubble_data->msg_type = msg_type;
+
+               msg_release_struct(&threadInfo);
+       }
+
+       bubble_data->msg_type = msg_type;
+
+       D_MSG("msg_type [%d]", msg_type);
+
+       if (msg_type_str) {
+               free(msg_type_str);
+               msg_type_str = NULL;
+       }
+
+       /* This is used when body text is set from nfc */
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_BODY, &body_str);
+
+       if (body_str) {
+               if (bubble_data->bundle_body_data)
+                       free(bubble_data->bundle_body_data);
+
+               bubble_data->bundle_body_data = (char *)calloc(1, sizeof(char) *(strlen(body_str) + 1));
+               if (!bubble_data->bundle_body_data) {
+                       D_EMSG("calloc bubble_data->bundle_body_data has failed");
+                       free(body_str);
+                       return -1;
+               }
+
+               strncpy(bubble_data->bundle_body_data, body_str, strlen(body_str));
+               free(body_str);
+               body_str = NULL;
+       }
+
+       D_LEAVE;
+       return 0;
+}
+
+static int _parse_bundle_with_msg_id(PMSG_BUBBLE_DATA bubble_data, int msgId)
+{
+       D_ENTER;
+
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+       msg_struct_list_s addrList;
+       int i = 0;
+
+       D_MSG("Message ID from bundle = %d", msgId);
+
+       err = msg_get_message(bubble_data->msgHandle, msgId, msgInfo, sendOpt);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_message is failed err = %d", err);
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               return -1;
+       }
+
+       msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, (int *)(&bubble_data->threadId));
+       D_MSG("Thread ID from bundle data=%d", bubble_data->threadId);
+
+       memset(&addrList, 0x00, sizeof(msg_struct_list_s));
+       msg_get_address_list(bubble_data->msgHandle, bubble_data->threadId, &addrList);
+
+       bubble_data->addr_list.addr_cnt = addrList.nCount;
+
+       for (i = 0; i < addrList.nCount; i++)
+               msg_get_str_value(addrList.msg_struct_info[i], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, bubble_data->addr_list.addr_info[i].address, DEF_THREAD_ADDR_LEN);
+
+
+       msg_release_list_struct(&addrList);
+
+       msg_release_struct(&msgInfo);
+       msg_release_struct(&sendOpt);
+
+       D_LEAVE;
+
+       return 0;
+}
+
+PMSG_BUBBLE_DATA msg_ui_bubble_init_bubble_data(msg_handle_t msgHandle, void *callback_data)
+{
+       D_ENTER;
+
+       PMSG_BUBBLE_DATA bubble_data = NULL;
+
+       bubble_data = (PMSG_BUBBLE_DATA)calloc(1, sizeof(MSG_BUBBLE_DATA));
+
+       if (bubble_data) {
+               bubble_data->msgHandle = msgHandle;
+
+               bubble_data->viewmode = BUBBLE_NORMAL_VIEW;
+               bubble_data->ug_state = BUBBLE_UG_START;
+
+               if (callback_data)
+                       bubble_data->callback_data = callback_data;
+       } else {
+               D_EMSG("calloc is failed (%s)", strerror(errno));
+       }
+
+       D_LEAVE;
+       return bubble_data;
+}
+
+void msg_ui_bubble_deinit_bubble_data(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+
+       PMSG_BUBBLE_DATA bubble_data = data;
+
+       contacts_db_remove_changed_cb(_contacts_contact._uri, msg_ui_bubble_contact_changed_cb, (void *)bubble_data);
+       contacts_setting_remove_name_display_order_changed_cb(msg_ui_bubble_contact_display_order_changed_cb, (void *)bubble_data);
+
+       if (bubble_data->conv_list) {
+               msg_release_list_struct(bubble_data->conv_list);
+               bubble_data->conv_list = NULL;
+       }
+
+       msg_ui_bubble_init_bubble_list(bubble_data);
+
+       if (bubble_data->press_down_handler) {
+               ecore_event_handler_del(bubble_data->press_down_handler);
+               bubble_data->press_down_handler = NULL;
+       }
+       if (bubble_data->toudh_down_handler) {
+               ecore_event_handler_del(bubble_data->toudh_down_handler);
+               bubble_data->toudh_down_handler = NULL;
+       }
+       if (bubble_data->press_up_handler) {
+               ecore_event_handler_del(bubble_data->press_up_handler);
+               bubble_data->press_up_handler = NULL;
+       }
+       if (bubble_data->toudh_up_handler) {
+               ecore_event_handler_del(bubble_data->toudh_up_handler);
+               bubble_data->toudh_up_handler = NULL;
+       }
+
+       if (bubble_data->time_info) {
+               if (bubble_data->time_info->date_ptn_default) {
+                       free(bubble_data->time_info->date_ptn_default);
+                       bubble_data->time_info->date_ptn_default = NULL;
+               }
+
+               if (bubble_data->time_info->date_ptn_year) {
+                       free(bubble_data->time_info->date_ptn_year);
+                       bubble_data->time_info->date_ptn_year = NULL;
+               }
+
+               if (bubble_data->time_info->time_12h_ptn) {
+                       free(bubble_data->time_info->time_12h_ptn);
+                       bubble_data->time_info->time_12h_ptn = NULL;
+               }
+
+               if (bubble_data->time_info->time_24h_ptn) {
+                       free(bubble_data->time_info->time_24h_ptn);
+                       bubble_data->time_info->time_24h_ptn = NULL;
+               }
+
+               free(bubble_data->time_info);
+               bubble_data->time_info = NULL;
+       }
+
+       if ((bubble_data->del_thread) && (EINA_FALSE == ecore_thread_check(bubble_data->del_thread))) {
+               if (ecore_thread_cancel(bubble_data->del_thread)) {
+                       D_MSG("ecore_thread_cancel is done.");
+                       bubble_data->del_thread = NULL;
+               } else {
+                       D_MSG("ecore_thread_cancel is failed, it is pending state");
+               }
+       }
+
+       if (bubble_data->update_read_status_thread) {
+               int ret = 0;
+
+               D_MSG("wait to join thread ... ");
+               ret = pthread_join(bubble_data->update_read_status_thread, NULL);
+               if (ret != 0) {
+                       D_EMSG("pthread_join fail.(%d)", ret);
+               }
+               D_IMSG("update_read_status_thread is cancelled.");
+       }
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       if (bubble_data->resend_idler) {
+               ecore_idler_del(bubble_data->resend_idler);
+               bubble_data->resend_idler = NULL;
+       }
+
+       if (bubble_data->loading_idler) {
+               ecore_idler_del(bubble_data->loading_idler);
+               bubble_data->loading_idler = NULL;
+       }
+
+       if (bubble_data->progress_popup) {
+               evas_object_del(bubble_data->progress_popup);
+               bubble_data->progress_popup = NULL;
+       }
+
+       if (bubble_data->backup_result_timer) {
+               ecore_timer_del(bubble_data->backup_result_timer);
+               bubble_data->backup_result_timer = NULL;
+       }
+
+       if (bubble_data->longpress_timer) {
+               ecore_timer_del(bubble_data->longpress_timer);
+               bubble_data->longpress_timer = NULL;
+       }
+
+       if (bubble_data->del_result_idler) {
+               ecore_idler_del(bubble_data->del_result_idler);
+               bubble_data->del_result_idler = NULL;
+       }
+
+       if (bubble_data->del_result_timer) {
+               ecore_timer_del(bubble_data->del_result_timer);
+               bubble_data->del_result_timer = NULL;
+       }
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       if (bubble_data->retrieve_idler) {
+               ecore_idler_del(bubble_data->retrieve_idler);
+               bubble_data->retrieve_idler = NULL;
+       }
+#endif
+       if (bubble_data->bubble_layout) {
+               evas_object_del(bubble_data->bubble_layout);
+               bubble_data->bubble_layout = NULL;
+       }
+       msg_ui_bubble_remove_title_name_button(bubble_data);
+
+       if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED) < 0) {
+               D_EMSG("Fail to remove SYSTEM_SETTINGS_KEY_TIME_CHANGED key");
+       }
+
+       if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR) < 0) {
+               D_EMSG("Fail to remove system_settings time forma");
+       }
+
+       msg_common_delete_last_date_format();
+
+       free(bubble_data);
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_parse_bubble_data(PMSG_BUBBLE_DATA bubble_data, app_control_h svc_handle)
+{
+       char *operation = NULL;
+       char *key_type = NULL;
+       char *from_contact = NULL;
+
+       app_control_get_operation(svc_handle, &operation);
+       if (operation) {
+               D_MSG("operation = (%s)", operation);
+
+               /* managing COMPOSE operation in bubble */
+               if (g_strcmp0(operation, APP_CONTROL_OPERATION_COMPOSE) == 0) {
+                       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+                       char *body_str = NULL;
+
+                       /* set DATA_TEXT */
+                       app_control_get_extra_data(svc_handle, APP_CONTROL_DATA_TEXT, &body_str);
+                       if (body_str) {
+                               msg_ui_composer_body_set_loaded_text(cd, body_str, 0);
+                               free(body_str);
+                               body_str = NULL;
+                       }
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+                       char *subject = NULL;
+
+                       app_control_get_extra_data(svc_handle, APP_CONTROL_DATA_SUBJECT, &subject);
+                       if (subject) {
+                               msg_ui_composer_subject_set_loaded_data(cd, (const char *)subject);
+                               free(subject);
+                       }
+#endif
+
+               }
+
+               free(operation);
+       }
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_CALLER, &from_contact);
+       if (from_contact) {
+               if (g_strcmp0(from_contact, UG_NAME_CONTACTS_DETAILS) == 0)
+                       bubble_data->bubble_from_contact = true;
+               else
+                       bubble_data->bubble_from_contact = false;
+
+               free(from_contact);
+       } else {
+               bubble_data->bubble_from_contact = false;
+       }
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_TYPE, &key_type);
+
+       if (key_type) { /* From logs */
+               if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_MSG_ID) == 0) {
+                       int msg_id = 0;
+                       char *msg_id_str = NULL;
+                       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, &msg_id_str);
+
+                       if (!msg_id_str) {
+                               free(key_type);
+                               return;
+                       }
+
+                       msg_id = atoi(msg_id_str);
+                       _parse_bundle_with_msg_id(bubble_data, msg_id);
+
+                       if (msg_id_str)
+                               free(msg_id_str);
+               } else if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_REPLY) == 0) {
+                       int msg_id = 0;
+                       char *msg_id_str = NULL;
+                       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, &msg_id_str);
+
+                       bubble_data->reply_mode = true;
+
+                       if (!msg_id_str) { /* for app-service launch */
+                               _parse_bundle_data(bubble_data, svc_handle);
+                       } else { /* for ug launch */
+                               msg_id = atoi(msg_id_str);
+                               _parse_bundle_with_msg_id(bubble_data, msg_id);
+
+                               if (msg_id_str)
+                                       free(msg_id_str);
+                       }
+               } else {
+                       _parse_bundle_data(bubble_data, svc_handle);
+               }
+
+       } else {
+               _parse_bundle_data(bubble_data, svc_handle);
+       }
+
+       if (key_type)
+               free(key_type);
+}
+
+void msg_ui_bubble_start_bubble_list(PMSG_BUBBLE_DATA bubble_data)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(bubble_data == NULL, "PMSG_BUBBLE_DATA is NULL");
+
+       msg_ui_bubble_init_bubble_list(bubble_data);
+
+       bubble_data->box = elm_box_add(bubble_data->scrl);
+       evas_object_size_hint_weight_set(bubble_data->box, EVAS_HINT_EXPAND, 0.0);
+       elm_object_content_set(bubble_data->scrl, bubble_data->box);
+
+       if (bubble_data->viewmode == BUBBLE_EDIT_VIEW) {
+               msg_ui_bubble_change_normal_navi_control(bubble_data);
+       }
+
+       bubble_data->viewmode = BUBBLE_NORMAL_VIEW;
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_init_bubble_list(PMSG_BUBBLE_DATA bubble_data)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(bubble_data == NULL, "PMSG_BUBBLE_DATA is NULL");
+
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       PBUBBLE_PACKED_INFO packed_data = NULL;
+
+       bubble_data->bubble_count = 0;
+       bubble_data->added_count = 0;
+       bubble_data->check_cnt = 0;
+       bubble_data->copy_id = 0;
+       bubble_data->resend_id = 0;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       bubble_data->retrieve_id = 0;
+#endif
+       bubble_data->draft_msg_id = 0;
+
+       if (bubble_data->box && bubble_data->scrl) {
+               elm_object_content_unset(bubble_data->scrl);
+               evas_object_del(bubble_data->box);
+               bubble_data->box = NULL;
+       }
+
+       if (bubble_data->scroll_timer) {
+               ecore_timer_del(bubble_data->scroll_timer);
+               bubble_data->scroll_timer = NULL;
+       }
+
+       EINA_LIST_FREE(bubble_data->bubble_list, item_data) {
+               if (item_data) {
+                       if (item_data->msgText)
+                               free(item_data->msgText);
+
+                       if (item_data->msgTime)
+                               free(item_data->msgTime);
+
+                       if (item_data->search_word)
+                               free(item_data->search_word);
+
+                       msg_common_release_mms_struct_data(item_data->mms_data);
+
+                       free(item_data);
+               }
+       }
+
+       EINA_LIST_FREE(bubble_data->packed_list, packed_data) {
+               if (packed_data)
+                       free(packed_data);
+       }
+       bubble_data->chk_list = eina_list_free(bubble_data->chk_list);
+
+       D_LEAVE;
+}
+
+Evas_Object *msg_ui_bubble_create_toolbar(void *user_data)
+{
+       if (!user_data) {
+               D_EMSG("[ERROR] user_data is NULL");
+               return NULL;
+       }
+
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)user_data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       Evas_Object *toolbar = elm_toolbar_add(cd->navi_bar);
+
+       if (!toolbar) {
+               D_EMSG("toolbar is NULL");
+               return NULL;
+       }
+
+       elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
+       elm_object_style_set(toolbar, "naviframe");
+
+       return toolbar;
+}
+
+Evas_Object *msg_ui_bubble_create_view(Evas_Object *parent, void *user_data)
+{
+       if (!parent || !user_data)
+               return NULL;
+
+       PMSG_BUBBLE_DATA bubble_data = user_data;
+
+       Evas_Object *bubble_layout = NULL;
+       Evas_Object *scroller = NULL;
+
+       bubble_layout = msg_common_create_bubble_layout(parent);
+       scroller = elm_scroller_add(bubble_layout);
+       elm_object_style_set(scroller, "effect");
+       evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
+       elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+
+       elm_object_part_content_set(bubble_layout, "elm.swallow.content", scroller);
+       elm_object_signal_callback_add(parent, "bubble_layout,clicked", "", msg_ui_bubble_main_layout_clicked_cb, bubble_data->callback_data);
+
+       bubble_data->parent_layout = parent;
+       bubble_data->bubble_layout = bubble_layout;
+       bubble_data->scrl = scroller;
+
+       return bubble_layout;
+}
+
+void msg_ui_bubble_start_view(PMSG_BUBBLE_DATA bubble_data)
+{
+       if (!bubble_data)
+               return;
+
+       msg_ui_bubble_reg_bubble_cb_func(bubble_data);
+
+       if (bubble_data->time_info) {
+               free(bubble_data->time_info);
+               bubble_data->time_info = NULL;
+       }
+
+       bubble_data->time_info = (PMSG_COMMON_BUBBLE_TIME_S)calloc(1, sizeof(MSG_COMMON_BUBBLE_TIME_S));
+
+       if (!bubble_data->time_info) {
+               D_EMSG("bubble_data->time_info calloc error");
+       } else {
+               msg_ui_bubble_get_locale(bubble_data);
+               msg_ui_bubble_get_time_format(bubble_data);
+               bubble_data->time_info->time_12h_ptn = msg_common_get_date_best_pattern(bubble_data->time_info->locale, MSG_UI_TIME_PATTERN_12H);
+               bubble_data->time_info->time_24h_ptn = msg_common_get_date_best_pattern(bubble_data->time_info->locale, MSG_UI_TIME_PATTERN_24H);
+               bubble_data->time_info->date_ptn_default = msg_common_get_date_best_pattern(bubble_data->time_info->locale, MSG_UI_DATE_PATTERN_DEFAULT);
+               bubble_data->time_info->date_ptn_year = msg_common_get_date_best_pattern(bubble_data->time_info->locale, MSG_UI_DATE_PATTERN_YEAR);
+       }
+
+       if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED, msg_ui_bubble_timezone_change_cb, (void *)bubble_data) < 0) {
+               D_SEC_EMSG("Fail to register SYSTEM_SETTINGS_KEY_TIME_CHANGED key");
+       }
+       if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, msg_ui_bubble_timezone_change_cb, (void *)bubble_data) < 0) {
+               D_SEC_EMSG("Fail to register 24H time format");
+       }
+
+       msg_ui_bubble_list_load(bubble_data, true);
+}
+
+void msg_ui_bubble_reg_bubble_cb_func(PMSG_BUBBLE_DATA pData)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(pData == NULL, "PMSG_BUBBLE_DATA is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)pData->callback_data;
+
+       msg_reg_storage_change_callback(pData->msgHandle, &msg_ui_bubble_msg_storage_change_cb, (void *)cd);
+
+       contacts_db_add_changed_cb(_contacts_contact._uri, msg_ui_bubble_contact_changed_cb, (void *)pData);
+       contacts_setting_add_name_display_order_changed_cb(msg_ui_bubble_contact_display_order_changed_cb, (void *)pData);
+
+       D_LEAVE;
+}
+
diff --git a/composer/src/bubble/msg-ui-composer-bubble-util.c b/composer/src/bubble/msg-ui-composer-bubble-util.c
new file mode 100755 (executable)
index 0000000..34e6b9a
--- /dev/null
@@ -0,0 +1,1456 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <dlfcn.h>
+
+#include "msg-ui-composer-bubble.h"
+#include "msg-ui-composer-main.h"
+#include "msg-ui-composer-common.h"
+#include <regex.h>
+#include <notification.h>
+#include <time.h>
+#include <utilX.h>
+#include "msg-ui-composer-recipient.h"
+#include "msg-ui-composer-external.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-file-util.h"
+
+void __msg_ui_bubble_clear_title(PMSG_BUBBLE_DATA bubble_data)
+{
+       D_ENTER;
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !bubble_data, "bubble_data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       /* clear Caller ID */
+       edje_object_signal_emit(_EDJ(cd->navi_title_layout), "hide,title,icon", "");
+       Evas_Object *caller_id_layout = NULL;
+       Evas_Object *icon = NULL;
+       caller_id_layout = elm_object_part_content_unset(cd->navi_title_layout, "title_icon");
+       if (caller_id_layout) {
+               icon = elm_object_part_content_unset(caller_id_layout, "elm.icon");
+               if (icon) {
+                       evas_object_del(icon);
+                       icon = NULL;
+               }
+
+               evas_object_del(caller_id_layout);
+               caller_id_layout = NULL;
+       }
+
+       /* remove title button */
+       msg_ui_bubble_remove_title_name_button(bubble_data);
+}
+
+void msg_ui_bubble_change_composer_view(PMSG_BUBBLE_DATA bubble_data)
+{
+       D_ENTER;
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !bubble_data, "bubble_data is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       Evas_Object *bubble_layout = NULL;
+
+       if (bubble_data->draft_msg_id > 0)
+               cd->msg_id = bubble_data->draft_msg_id;
+
+       /* clear bubble title */
+       __msg_ui_bubble_clear_title(bubble_data);
+
+       /* destroy bubble data */
+       bubble_layout = elm_object_part_content_unset(cd->content_layout, "swl.bubble.content");
+       if (bubble_layout) {
+               evas_object_del(bubble_layout);
+               bubble_layout = NULL;
+               bubble_data->bubble_layout = NULL;
+       }
+
+       msg_ui_composer_change_composer_view(cd);
+
+       /* clear & set recipient */
+       msg_ui_composer_recipient_clear_recipient_list(cd);
+
+       int i = 0;
+       for (i = 0; i < bubble_data->addr_list.addr_cnt; i++) {
+               if (bubble_data->addr_list.addr_info[i].address[0] != '\0') {
+                       msg_ui_composer_recipient_set_loaded_data(cd, bubble_data->addr_list.addr_info[i].address, 0);
+               }
+       }
+       msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+       elm_object_focus_set(msg_ui_composer_last_focused_entry_get(cd), EINA_TRUE);
+       msg_ui_bubble_deinit_bubble_data(bubble_data);
+       cd->bubble_data = NULL;
+}
+
+Eina_Bool msg_ui_composer_focused_out_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETVM_IF(cd == NULL, ECORE_CALLBACK_DONE, "cd is NULL!");
+
+       Ecore_X_Event_Window_Focus_Out *ev = (Ecore_X_Event_Window_Focus_Out *)event;
+
+       if (cd->main_window != NULL && ev->win == elm_win_xwindow_get(cd->main_window)) {
+               msg_ui_composer_unset_view(cd);
+       }
+       if (cd->main_win_focus_out_cb) {
+               D_MSG("Deleting focus out callback");
+               ecore_event_handler_del(cd->main_win_focus_out_cb);
+               cd->main_win_focus_out_cb = NULL;
+       }
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+Eina_Bool msg_ui_composer_focused_in_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETVM_IF(cd == NULL, ECORE_CALLBACK_DONE, "cd is NULL!");
+
+       Ecore_X_Event_Window_Focus_In *ev = (Ecore_X_Event_Window_Focus_In *)event;
+
+       if (cd->main_window != NULL && ev->win == elm_win_xwindow_get(cd->main_window)) {
+               msg_ui_composer_reset_view(cd);
+       }
+       if (cd->main_win_focus_in_cb) {
+               D_MSG("Deleting focus in callback");
+               ecore_event_handler_del(cd->main_win_focus_in_cb);
+               cd->main_win_focus_in_cb = NULL;
+       }
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+void msg_ui_bubble_launch_voice_call(void *data, const char *call_num, bool isDirect_call)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !call_num || !data);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = data;
+       char *num_str = msg_ui_bubble_get_trimmed_number(call_num);
+       app_control_h svc_handle;
+       char telnum[255] = {0,};
+
+       if (cd->main_win_focus_in_cb) {
+               ecore_event_handler_del(cd->main_win_focus_in_cb);
+               cd->main_win_focus_in_cb = NULL;
+       }
+       if (cd->main_win_focus_out_cb) {
+               ecore_event_handler_del(cd->main_win_focus_out_cb);
+               cd->main_win_focus_out_cb = NULL;
+       }
+
+       cd->main_win_focus_in_cb = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, msg_ui_composer_focused_in_cb, cd);
+       cd->main_win_focus_out_cb = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, msg_ui_composer_focused_out_cb, cd);
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_CALL);
+
+               if (num_str) {
+                       snprintf(telnum, sizeof(telnum), "tel:%s", num_str);     /* Number to make a call */
+                       app_control_set_uri(svc_handle, telnum);
+               }
+
+               if (isDirect_call)
+                       app_control_add_extra_data(svc_handle, "directcall", "1");
+
+               app_control_send_launch_request(svc_handle, NULL, NULL);
+               app_control_destroy(svc_handle);
+       }
+       if (num_str)
+               free(num_str);
+       D_LEAVE;
+}
+
+char *msg_ui_bubble_get_trimmed_number(const char *org_num)
+{
+       char num_str[DEF_BUF_LEN_L] = { 0, };
+       int i = 0, idx = 0;
+
+       if (org_num[0] == '+' || org_num[0] == '*') {
+               num_str[0] = org_num[0];
+               i++;
+               idx++;
+       }
+
+       while (org_num[i] && i < strlen(org_num)) {
+               if (g_ascii_isdigit(org_num[i])) {
+                       num_str[idx] = org_num[i];
+                       idx++;
+               }
+               i++;
+       }
+
+       return strdup(num_str);
+}
+
+static void __popup_response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_BUBBLE_DATA bubbleData = (PMSG_BUBBLE_DATA) data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubbleData->callback_data;
+
+       msg_ui_bubble_destroy_popup(bubbleData);
+
+       edje_object_signal_emit(_EDJ(cd->navi_title_layout), "hide,subtitle", "");
+       elm_object_part_text_set(cd->navi_title_layout, "subtitle_text", "");
+       D_LEAVE;
+}
+
+void msg_ui_bubble_show_notify(PMSG_BUBBLE_DATA bubble_data, char *package_str, char *msg)
+{
+       D_ENTER;
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !bubble_data, "PMSG_BUBBLE_DATA is NULL");
+
+       Evas_Object *popup = NULL;
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       popup = msg_ui_bubble_create_popup(bubble_data, true);
+       bubble_data->popup = popup;
+       bubble_data->popup_type = BUBBLE_POPUP_NOTIFY;
+
+       elm_object_domain_translatable_text_set(bubble_data->popup, package_str, msg);
+
+       evas_object_smart_callback_add(bubble_data->popup, "timeout", __popup_response_cb, bubble_data);
+       evas_object_smart_callback_add(bubble_data->popup, "block,clicked", __popup_response_cb, bubble_data);
+
+       elm_popup_timeout_set(bubble_data->popup, 1.0);
+       evas_object_show(bubble_data->popup);
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_show_notify_with_button(PMSG_BUBBLE_DATA bubble_data, char *package_str, char *msg)
+{
+       D_ENTER;
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !bubble_data, "PMSG_BUBBLE_DATA is NULL");
+
+       Evas_Object *popup = NULL;
+       Evas_Object *ok_btn = NULL;
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       popup = msg_ui_bubble_create_popup(bubble_data, false);
+       bubble_data->popup = popup;
+       bubble_data->popup_type = BUBBLE_POPUP_NOTIFY_WITH_BUTTON;
+
+       elm_object_domain_translatable_text_set(bubble_data->popup, package_str, msg);
+
+       ok_btn = elm_button_add(popup);
+       elm_object_style_set(ok_btn, "popup");
+       elm_object_domain_translatable_text_set(ok_btn, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       elm_object_part_content_set(popup, "button1", ok_btn);
+       evas_object_smart_callback_add(ok_btn, "clicked", __popup_response_cb, bubble_data);
+
+       evas_object_show(bubble_data->popup);
+
+       D_LEAVE;
+}
+
+static void __msg_delete_progress_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+
+       bubble_data->del_cancel = true;
+}
+
+Evas_Object *msg_ui_bubble_show_notify_with_progressbar(PMSG_BUBBLE_DATA pData, int count)
+{
+       D_ENTER;
+
+       MSG_UI_RETV_IF(MSG_UI_LEVEL_DEBUG, !pData, NULL);
+
+       Evas_Object *popup;
+       Evas_Object *progressbar;
+       Evas_Object *layout;
+       Evas_Object *cancel_btn;
+
+       popup = msg_ui_bubble_create_popup(pData, false);
+
+       layout = elm_layout_add(popup);
+       elm_layout_file_set(layout, MSG_COMMON_EDJ, "delete_popup_center_progressbar");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       progressbar = elm_progressbar_add(popup);
+       elm_object_style_set(progressbar, "list_progress");
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_progressbar_value_set(progressbar, 0.0);
+       elm_progressbar_unit_format_set(progressbar, NULL);
+       evas_object_show(progressbar);
+
+       elm_object_domain_translatable_part_text_set(layout, "popup.text", MESSAGE_PKGNAME, "IDS_MSGF_POP_DELETING");
+       elm_object_part_content_set(layout, "elm.swallow.content", progressbar);
+
+       cancel_btn = elm_button_add(popup);
+       elm_object_style_set(cancel_btn, "popup");
+       elm_object_domain_translatable_text_set(cancel_btn, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", cancel_btn);
+       evas_object_smart_callback_add(cancel_btn, "clicked", __msg_delete_progress_cancel_clicked_cb, pData);
+
+       elm_object_content_set(popup, layout);
+       evas_object_show(popup);
+
+       pData->progressbar = progressbar;
+
+       D_LEAVE;
+       return popup;
+}
+
+void msg_ui_bubble_show_select_info(PMSG_BUBBLE_DATA pData)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, !pData);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)pData->callback_data;
+       char count_str[DEF_BUF_LEN_S] =  {'0',};
+
+       char *text_temp = NULL;
+
+       text_temp = dgettext(MESSAGE_PKGNAME, "IDS_MSG_HEADER_PD_SELECTED_ABB3");
+       snprintf(count_str, sizeof(count_str), text_temp, pData->check_cnt);
+
+       if (pData->check_cnt <= 0) {
+               D_MSG("msg_ui_bubble_show_select_info: pData->check_cnt <= 0");
+               elm_object_part_text_set(cd->navi_title_layout, "title_text", "");
+       } else {
+               D_MSG("msg_ui_bubble_show_select_info: pData->check_cnt > 0");
+       }
+
+       elm_object_part_text_set(cd->navi_title_layout, "delete_title_text", count_str);
+       D_MSG("msg_ui_bubble_show_select_info: count_str [%s]", count_str);
+       elm_object_disabled_set(pData->done_button, pData->check_cnt <= 0);
+}
+
+void msg_ui_bubble_show_deleted_info(PMSG_BUBBLE_DATA pData)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, !pData);
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)pData->callback_data;
+
+       edje_object_signal_emit(_EDJ(cd->navi_title_layout), "hide,subtitle", "");
+       elm_object_part_text_set(cd->navi_title_layout, "subtitle_text", "");
+
+       /* msg_ui_bubble_status_message_post(pData, dgettext(MESSAGE_PKGNAME, "IDS_MSG_POP_DELETED")); */
+
+       app_control_h svc_handle;
+
+       bool isDraft = msg_ui_composer_common_is_send_possible((MSG_COMPOSER_VIEW_DATA_S *)pData->callback_data);
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               char buf[DEF_BUF_LEN_S] = {0,};
+               if (pData->bubble_count == 0 && isDraft == false)
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RESULT, MSG_BUNDLE_VALUE_DEL_ALL);
+               else
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RESULT, MSG_BUNDLE_VALUE_DEL_BUBBLE);
+
+               snprintf(buf, sizeof(buf), "%d", pData->threadId);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+               msg_ui_composer_bubble_send_del_result(pData->callback_data, svc_handle);
+
+               app_control_destroy(svc_handle);
+
+               if (pData->bubble_count == 0 && isDraft == false)
+                       ug_destroy_me(cd->ug);
+       }
+}
+
+void msg_ui_bubble_status_message_post(PMSG_BUBBLE_DATA pData, char *msg)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, !pData);
+
+       msg_ui_bubble_destroy_popup(pData);
+
+       if (notification_status_message_post(msg) != NOTIFICATION_ERROR_NONE)
+               D_EMSG("notification_status_message_post error");
+}
+
+
+void msg_ui_bubble_contact_info_update(PMSG_BUBBLE_DATA pData)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, !pData);
+       msg_error_t err = MSG_SUCCESS;;
+       int thread_id = pData->threadId;;
+       msg_struct_list_s addrList;
+       msg_struct_list_s peerList = {0, };
+       bool is_change_tittle_button = false;
+       int i = 0;
+
+       /* update address list */
+       memset(&addrList, 0x00, sizeof(msg_struct_list_s));
+
+       err = msg_get_address_list(pData->msgHandle, thread_id, &addrList);
+       if (err == MSG_SUCCESS) {
+               pData->addr_list.addr_cnt = addrList.nCount;
+
+               for (i = 0; i < addrList.nCount; i++) {
+                       char address[DEF_THREAD_ADDR_LEN+1] = {0,};
+
+                       if (pData->addr_list.addr_info[i].address[0] != '\0') {
+                               strncpy(address, pData->addr_list.addr_info[i].address, DEF_THREAD_ADDR_LEN);
+                       }
+
+                       msg_get_str_value(addrList.msg_struct_info[i], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, pData->addr_list.addr_info[i].address, DEF_THREAD_ADDR_LEN);
+                       if (strcmp(pData->addr_list.addr_info[i].address, address))
+                               is_change_tittle_button = true;
+               }
+
+               msg_release_list_struct(&addrList);
+       } else {
+               D_MSG("[ERROR] msg_get_address_list return error [%d]", err);
+               goto CONTACT_UPDATE_LEAVE;
+       }
+
+       /*change title button */
+       if (is_change_tittle_button) {
+               msg_ui_bubble_update_title_name_button(pData);
+       }
+
+
+CONTACT_UPDATE_LEAVE:
+       msg_release_list_struct(&peerList);
+       D_LEAVE;
+       return;
+}
+
+
+void msg_ui_bubble_get_locale(PMSG_BUBBLE_DATA pData)
+{
+       const char *locale = NULL;
+
+       locale = msg_common_get_default_locale();
+       if (pData->time_info && locale)
+               strncpy(pData->time_info->locale, locale, sizeof(pData->time_info->locale) - 1);
+
+       D_MSG("Locale = %s", pData->time_info->locale);
+}
+
+void msg_ui_bubble_get_time_format(PMSG_BUBBLE_DATA pData)
+{
+
+       if (pData->time_info) {
+               int timeformat = msg_common_get_timeformat();
+
+               if (timeformat == MSG_TIME_FORMAT_UNKNOWN)
+                       pData->time_info->time_fmt = MSG_TIME_FORMAT_12H;
+               else
+                       pData->time_info->time_fmt = timeformat;
+
+               D_MSG("%s", pData->time_info->time_fmt == MSG_TIME_FORMAT_24H ? "TIME FORMAT = 24h" : "TIME FORMAT = 12h");
+       }
+}
+
+bool msg_ui_bubble_check_mmc_status(void)
+{
+       struct stat parent_stat, mount_stat;
+
+       if (stat(MSG_BUBBLE_SDCARD_DIR, &mount_stat) != 0)
+               return false;
+
+       if (stat(MSG_BUBBLE_SDCARD_PARENT_DIR, &parent_stat) != 0)
+               return false;
+
+       if (mount_stat.st_dev == parent_stat.st_dev)
+               return false;
+       else
+               return true;
+}
+
+
+char *msg_ui_bubble_create_export_folder_name(void)
+{
+       struct tm t;
+       time_t cur_time;
+       cur_time = (time_t)time(NULL);
+
+       char folder_name[DEF_BUF_LEN+1] = {0,};
+
+       localtime_r(&cur_time, &t);
+
+       /* folder name format (yyyymmddHHMMSS) */
+       snprintf(folder_name, sizeof(folder_name), "Message_%04d%02d%02d%02d%02d%02d",\
+                               t.tm_year+1900, t.tm_mon+1, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec);
+       D_SEC_MSG("export folder name [%s]", folder_name);
+
+       return strdup(folder_name);
+}
+
+char *msg_ui_bubble_create_export_file_name(void)
+{
+       struct tm t;
+       time_t cur_time;
+       cur_time = (time_t) time(NULL);
+       char file_name[DEF_BUF_LEN+1] = {0,};
+
+       localtime_r(&cur_time, &t);
+
+       /* folder name format (yyyymmddHHMM.txt) */
+       snprintf(file_name, sizeof(file_name), "Message_%04d%02d%02d%02d%02d.txt",\
+                               t.tm_year+1900, t.tm_mon+1, t.tm_mday, t.tm_hour, t.tm_min);
+       D_SEC_MSG("export folder name [%s]", file_name);
+
+       return strdup(file_name);
+}
+
+char *msg_ui_bubble_create_export_folder(PMSG_BUBBLE_DATA pData, const char* folder_name)
+{
+       char folder_path[DEF_BUF_LEN+1] = {0,};
+
+       if (folder_name) {
+               if (pData->backup_type == BUBBLE_BACKUP_TYPE_SD) {
+                       if (msg_file_exists(MSG_BUBBLE_EXPORT_SD_DIR) == EINA_FALSE) {
+                               if (msg_file_mkdir(MSG_BUBBLE_EXPORT_SD_DIR) == EINA_FALSE) {
+                                       D_SEC_MSG("%s create failed", MSG_BUBBLE_EXPORT_SD_DIR);
+                                       return NULL;
+                               }
+                       }
+                       snprintf(folder_path, sizeof(folder_path), MSG_BUBBLE_EXPORT_SD_DIR"/%s", folder_name);
+               } else if (pData->backup_type == BUBBLE_BACKUP_TYPE_DEVICE_MEMORY || pData->backup_type == BUBBLE_BACKUP_TYPE_EMAIL) {
+                       if (msg_file_exists(MSG_BUBBLE_EXPORT_DEVICE_DIR) == EINA_FALSE) {
+                               if (msg_file_mkdir(MSG_BUBBLE_EXPORT_DEVICE_DIR) == EINA_FALSE) {
+                                       D_SEC_MSG("%s create failed", MSG_BUBBLE_EXPORT_DEVICE_DIR);
+                                       return NULL;
+                               }
+                       }
+                       snprintf(folder_path, sizeof(folder_path), MSG_BUBBLE_EXPORT_DEVICE_DIR"/%s", folder_name);
+               } else {
+                       D_SEC_MSG("invalid backup type [%d]", pData->backup_type);
+                       return NULL;
+               }
+
+               if (msg_file_exists(folder_path) == EINA_FALSE) {
+                       if (msg_file_mkdir(folder_path) == EINA_FALSE) {
+                               D_SEC_MSG("%s create failed", folder_path);
+                               return NULL;
+                       }
+               }
+       } else {
+               D_SEC_EMSG("No folder name");
+               return NULL;
+       }
+
+       return strdup(folder_path);
+}
+
+char *msg_ui_bubble_create_export_string(PMSG_BUBBLE_DATA pData, msg_struct_t msg)
+{
+       D_ENTER;
+       MSG_UI_RETVM_IF(MSG_UI_LEVEL_ERR, !pData || !msg, NULL, "Message text is NULL!");
+
+       int folder_id;
+       time_t msgtime = 0;
+       int msg_type;
+       char *date_str = NULL;
+       char *time_str = NULL;
+       char sender[DEF_BUF_LEN+1] = {0,};
+       char subject[DEF_BUF_LEN_S+1] = {0,};
+       char thumbnail_path[DEF_BUF_LEN+1] = {0,};
+       char msg_text[DEF_BUF_LEN_L+1] = {0,};
+
+       char export_str[2*DEF_BUF_LEN_L+1] = {0,};
+
+       /* determine sender name & skip draft box message */
+       msg_get_int_value(msg, MSG_CONV_MSG_FOLDER_ID_INT, &folder_id);
+       if (folder_id == MSG_INBOX_ID) {
+               if (pData->addr_list.addr_cnt == 1) {
+                       int pid = -1;
+                       pid = get_contact_index_by_recipient(pData->addr_list.addr_info[0].address);
+
+                       if (pid > 0) {
+                               char display_name[MAX_ADDRESS_VAL_LEN+1] = {0,};
+                               get_contact_display_name_by_index(pid, display_name, sizeof(display_name));
+                               snprintf(sender, sizeof(sender), "%s", display_name);
+                       } else {
+                               if (pData->addr_list.addr_info[0].address[0] != '\0')
+                                       snprintf(sender, sizeof(sender), "%s", pData->addr_list.addr_info[0].address);
+                               else
+                                       snprintf(sender, sizeof(sender), dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+                       }
+               }
+       } else if (folder_id == MSG_OUTBOX_ID || folder_id == MSG_SENTBOX_ID) {
+               snprintf(sender, sizeof(sender), "%s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_ME"));
+       } else {
+               D_EMSG("invalid_folder_id [%d]", folder_id);
+               snprintf(sender, sizeof(sender), "%s", dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+       }
+
+       /* Message sent / recieved time */
+       msg_get_int_value(msg, MSG_CONV_MSG_DISPLAY_TIME_INT, (int *)&msgtime);
+       date_str = msg_common_get_formatted_date(pData->time_info->locale, pData->time_info->date_ptn_year, &msgtime);
+       time_str = msg_common_get_formatted_date(pData->time_info->locale, pData->time_info->time_12h_ptn, &msgtime);
+
+       /* subject */
+       msg_get_int_value(msg, MSG_CONV_MSG_TYPE_INT, &msg_type);
+       if (msg_type == MSG_TYPE_MMS || msg_type == MSG_TYPE_MMS_NOTI) {
+               msg_get_str_value(msg, MSG_CONV_MSG_SUBJECT_STR, subject, DEF_BUF_LEN_S);
+               msg_get_str_value(msg, MSG_CONV_MSG_IMAGE_THUMB_PATH_STR, thumbnail_path, DEF_BUF_LEN);
+               /* Todo : sound path */
+       }
+
+       /* msg text */
+       msg_get_str_value(msg, MSG_CONV_MSG_TEXT_STR, msg_text, DEF_BUF_LEN_L);
+
+       /* (DateTime,sender: [Subject] body text) */
+       if (msg_type > MSG_TYPE_INVALID && msg_type < MSG_TYPE_MMS) {
+               snprintf(export_str, sizeof(export_str), "%s %s, %s: %s\n", date_str, time_str, sender, msg_text);
+       } else if (msg_type >= MSG_TYPE_MMS) {
+               if (subject[0] != '\0' && thumbnail_path[0] != '\0') {
+                       snprintf(export_str, sizeof(export_str), "%s %s, %s: [%s] %s, %s\n", date_str, time_str, sender, subject, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_IMAGE"), msg_text);
+               } else if (subject[0] != '\0') {
+                       snprintf(export_str, sizeof(export_str), "%s %s, %s: [%s] %s\n", date_str, time_str, sender, subject, msg_text);
+               } else if (thumbnail_path[0] != '\0') {
+                       snprintf(export_str, sizeof(export_str), "%s %s, %s: %s, %s\n", date_str, time_str, sender, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_IMAGE"), msg_text);
+               } else {
+                       snprintf(export_str, sizeof(export_str), "%s %s, %s: %s\n", date_str, time_str, sender, msg_text);
+               }
+       }
+
+       if (date_str)
+               free(date_str);
+
+       if (time_str)
+               free(time_str);
+
+       return strdup(export_str);
+}
+
+static int __calc_bubble_scroller_geometry(PMSG_BUBBLE_DATA pData)
+{
+       Evas_Coord sw, sh;
+
+       elm_scroller_child_size_get(pData->scrl, &sw, &sh);
+
+       return sh;
+}
+
+void msg_ui_bubble_scroller_show_search_msg(PMSG_BUBBLE_DATA bubble_data, Evas_Object *layout)
+{
+       D_ENTER
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !bubble_data,  "bubble_data is NULL!");
+
+       Evas_Coord x, y, w, h;
+       Evas_Coord sx, sy, sw, sh;
+       Evas_Coord height = __calc_bubble_scroller_geometry(bubble_data);
+
+       evas_object_geometry_get(bubble_data->scrl, &sx, &sy, &sw, &sh);
+       evas_object_geometry_get(layout, &x, &y, &w, &h);
+
+       if (bubble_data->isFirstLoading && height <= sh) {
+               elm_scroller_region_show(bubble_data->scrl, 0, 0, 0, 0);
+       } else {
+               elm_scroller_region_show(bubble_data->scrl, 0, y-sy-15, 0, sh);
+       }
+}
+
+void msg_ui_bubble_scroller_show_latest(PMSG_BUBBLE_DATA bubble_data)
+{
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !bubble_data,  "bubble_data is NULL!");
+
+       Evas_Coord height = __calc_bubble_scroller_geometry(bubble_data);
+
+       if (bubble_data->isFirstLoading && height <= MSG_BUBBLE_CONTENT_H)
+               elm_scroller_region_show(bubble_data->scrl, 0, 0, 0, 0);
+       else
+               elm_scroller_region_show(bubble_data->scrl, 0, height, 0, 0);
+}
+
+void msg_ui_bubble_list_size_change(PMSG_BUBBLE_DATA bubble_data)
+{
+       D_ENTER;
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !bubble_data,  "bubble_data is NULL!");
+
+       elm_box_recalculate(bubble_data->box);
+}
+
+bool msg_is_sms(int msg_type)
+{
+       int result = false;
+       switch (msg_type) {
+       case MSG_TYPE_SMS_CB:
+       case MSG_TYPE_SMS_JAVACB:
+       case MSG_TYPE_SMS_WAPPUSH:
+       case MSG_TYPE_SMS_MWI:
+       case MSG_TYPE_SMS_SYNCML:
+       case MSG_TYPE_SMS_REJECT:
+       case MSG_TYPE_SMS:
+               result = true;
+               break;
+       default:
+               break;
+       }
+       return result;
+}
+
+
+bool msg_is_mms(int msg_type)
+{
+       int result = false;
+       switch (msg_type) {
+       case MSG_TYPE_MMS_NOTI:
+       case MSG_TYPE_MMS_JAVA:
+       case MSG_TYPE_MMS:
+               result = true;
+               break;
+       default:
+               break;
+       }
+       return result;
+}
+
+static void __msg_ui_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       Evas_Event_Mouse_Up *ev = event_info;
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA) data;
+
+       if (ev->button == 3) {
+               if (bubble_data->popup && bubble_data->popup == obj) {
+                       evas_object_del(bubble_data->popup);
+                       bubble_data->popup = NULL;
+               }
+       }
+}
+
+static void __msg_ui_composer_bubble_popup_delete_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;
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       Evas_Object *popup = (Evas_Object *)obj;
+       D_PRINT("deleted popup = [%p]", obj);
+
+       elm_object_tree_focus_allow_set(cd->base, EINA_TRUE);
+
+       if (cd->popup_list) {
+               D_MSG("popup list count = %d", eina_list_count(cd->popup_list));
+               cd->popup_list = eina_list_remove(cd->popup_list, popup);
+
+       } else {
+               D_EMSG("popup_list is not exist");
+       }
+       msg_ui_composer_reset_view(cd);
+
+
+
+       if (bubble_data->popup_type == BUBBLE_POPUP_SAVE_ATTACHMENT_LIST) {
+               if (bubble_data->media_list) {
+                       void *item_data = NULL;
+                       EINA_LIST_FREE(bubble_data->media_list, item_data) {
+                               if (item_data)
+                                       free(item_data);
+                       }
+
+                       bubble_data->media_list = eina_list_free(bubble_data->media_list);
+               }
+
+               bubble_data->popup_genlist = NULL;
+               bubble_data->media_chk_cnt = 0;
+               bubble_data->save_button = NULL;
+       }
+
+       D_LEAVE;
+}
+
+
+static void __msg_ui_popup_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA) data;
+
+       if (bubble_data->popup_type == BUBBLE_POPUP_SAVE_ATTACHMENT_LIST) {
+               if (bubble_data->media_list) {
+                       void *item_data = NULL;
+                       EINA_LIST_FREE(bubble_data->media_list, item_data) {
+                               if (item_data)
+                                       free(item_data);
+                       }
+
+                       bubble_data->media_list = eina_list_free(bubble_data->media_list);
+               }
+
+               bubble_data->popup_genlist = NULL;
+               bubble_data->media_chk_cnt = 0;
+               bubble_data->save_button = NULL;
+       }
+       msg_ui_bubble_destroy_popup(bubble_data);
+}
+
+void msg_ui_bubble_add_to_contact_list_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+       MSG_COMPOSER_VIEW_DATA_S *cd = data;
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data);
+
+       Elm_Object_Item *item = (Elm_Object_Item *) event_info;
+       elm_list_item_selected_set(item, 0);
+
+       const char *label = elm_object_item_data_get(item);
+       const char *title = elm_object_part_text_get(bubble_data->popup, "title,text");
+       char *normalized_number = msg_common_make_normalized_number(title);
+       if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB")) == 0) { /* Add to contact with phone number string... */
+               if (msg_common_is_valid_phone_number(title))
+                       appsvc_launch_contacts(cd, 0, title, UPDATE_CONTACT_NUMBER_TYPE);
+               else if (msg_common_is_valid_email_addr(title))
+                       appsvc_launch_contacts(cd, 0, title, UPDATE_CONTACT_EMAIL_TYPE);
+               else if (normalized_number && msg_common_is_valid_phone_number(normalized_number)) {
+                       appsvc_launch_contacts(cd, 0, normalized_number, UPDATE_CONTACT_NUMBER_TYPE);
+               }
+
+               /* Save the draft temporarily.
+                * It is called after contact ug is created because of performance issue.
+                */
+               msg_ui_composer_temporary_draft_message(cd);
+
+       } else {
+               D_EMSG("invalid label");
+       }
+       if (normalized_number) {
+               free(normalized_number);
+               normalized_number = NULL;
+       }
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       D_LEAVE;
+}
+
+static char *__msg_ui_composer_addr_list_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       const char *label  = (char *)data;
+
+       if (!strcmp(part, "elm.text")) {
+               if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB"));
+               } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_MAKE_VOICE_CALL")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_MAKE_VOICE_CALL"));
+               } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_UPDATE_CONTACT")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_UPDATE_CONTACT"));
+               }
+       }
+       return NULL;
+}
+
+void msg_ui_bubble_update_contact_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+       MSG_COMPOSER_VIEW_DATA_S *cd = data;
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data);
+
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       elm_list_item_selected_set(item, 0);
+
+       const char *title = elm_object_part_text_get(bubble_data->popup, "title,text");
+
+       CONTACT_APPSVC_LAUNCH_DATA app_launch_data;
+       app_launch_data.on_reply = __msg_ui_composer_contact_detail_reply_cb;
+       app_launch_data.on_reply_data = (void *)cd;
+
+       app_control_h svc_handle = NULL;
+       svc_handle = msg_common_appsvc_edit_contact(title, &app_launch_data);
+
+       if (svc_handle) {
+               cd->callee_svc_handle = svc_handle;
+       }
+
+       msg_ui_bubble_destroy_popup(bubble_data);
+
+       D_LEAVE;
+}
+
+Evas_Object *msg_ui_bubble_create_add_to_contact_popup(PMSG_BUBBLE_DATA bubble_data, const char *address)
+{
+       Evas_Object *popup = NULL;
+       Evas_Object *genlist = NULL;
+       int count = 0;
+
+       popup = msg_ui_bubble_create_popup(bubble_data, true);
+
+       /* popup title */
+       elm_object_part_text_set(popup, "title,text", address);
+
+       genlist = elm_genlist_add(popup);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_object_style_set(genlist, "popup");
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+       elm_genlist_homogeneous_set(genlist, EINA_TRUE);
+
+       bubble_data->itc_title_single.item_style = "default";
+       bubble_data->itc_title_single.func.text_get = __msg_ui_composer_addr_list_gl_text_get;
+       bubble_data->itc_title_single.func.content_get = NULL;
+       bubble_data->itc_title_single.func.state_get = NULL;
+       bubble_data->itc_title_single.func.del = NULL;
+       if (bubble_data->call_option_enabled == TRUE) {
+               elm_genlist_item_append(genlist, &bubble_data->itc_title_single, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_MAKE_VOICE_CALL"), NULL, ELM_GENLIST_ITEM_NONE,
+                               msg_ui_bubble_ctlbar_call_cb, bubble_data->callback_data);
+               count++;
+               bubble_data->call_option_enabled = FALSE;
+       }
+       elm_genlist_item_append(genlist, &bubble_data->itc_title_single, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB"), NULL, ELM_GENLIST_ITEM_NONE,
+                       msg_ui_bubble_add_to_contact_list_clicked_cb, bubble_data->callback_data);
+       count++;
+
+       elm_genlist_item_append(genlist, &bubble_data->itc_title_single, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_UPDATE_CONTACT"), NULL, ELM_GENLIST_ITEM_NONE,
+                       msg_ui_bubble_update_contact_clicked_cb, bubble_data->callback_data);
+       count++;
+
+       evas_object_show(genlist);
+       elm_object_content_set(popup, genlist);
+       bubble_data->list_popup_item_count = count;
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       return popup;
+}
+
+void msg_ui_bubble_list_popup_size_min_set(void *data)
+{
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       Evas_Object *layout = NULL;
+       layout = elm_object_content_get(bubble_data->popup);
+
+       int rotation = elm_win_rotation_get(cd->main_window);
+
+       if (rotation == COMPOSER_ROTATE_LANDSCAPE || rotation == COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN) {
+               if (bubble_data->list_popup_item_count > MSG_BUBBLE_POPUP_LIST_LANDSCAPE_MAX)
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(MSG_BUBBLE_POPUP_LIST_1LINE_HEIGHT * MSG_BUBBLE_POPUP_LIST_LANDSCAPE_MAX));
+               else
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(MSG_BUBBLE_POPUP_LIST_1LINE_HEIGHT * bubble_data->list_popup_item_count));
+       } else {
+               if (bubble_data->list_popup_item_count > MSG_BUBBLE_POPUP_LIST_MAX_MENU)
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(MSG_BUBBLE_POPUP_LIST_1LINE_HEIGHT * MSG_BUBBLE_POPUP_LIST_MAX_MENU));
+               else
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(MSG_BUBBLE_POPUP_LIST_1LINE_HEIGHT * bubble_data->list_popup_item_count));
+       }
+}
+
+
+Evas_Object *msg_ui_composer_bubble_create_list_popup(PMSG_BUBBLE_DATA bubble_data, const char *package_str, const char *title, Evas_Object *list, const char *style)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer data is NULL");
+       D_MSG_RETVM_IF(cd->main_window == NULL, NULL, "main window is NULL");
+       Evas_Object *popup = NULL;
+
+       popup = msg_ui_composer_popup_create(cd, cd->main_window);
+       D_MSG_RETVM_IF(popup == NULL, NULL, "popup is NULL");
+
+       if (style)
+               elm_object_style_set(popup, style);
+
+       if (title)
+               elm_object_domain_translatable_part_text_set(popup, "title,text", package_str, title);
+
+       if (list)
+               elm_object_content_set(popup, list);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __msg_ui_composer_bubble_popup_delete_cb, cd);
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, __msg_ui_popup_mouseup_cb, bubble_data);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, __msg_ui_popup_back_cb, bubble_data);
+       evas_object_smart_callback_add(popup, "block,clicked", __msg_ui_popup_back_cb, bubble_data);
+
+       cd->popup_list = eina_list_append(cd->popup_list, popup);
+
+       D_LEAVE;
+       return popup;
+}
+
+Evas_Object *msg_ui_bubble_create_popup(PMSG_BUBBLE_DATA bubble_data, bool need_dismiss_cb)
+{
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       msg_ui_composer_unset_view(cd);
+
+       Evas_Object *popup = NULL;
+
+       popup = msg_ui_composer_popup_create(cd, cd->main_window);
+       if (!popup) {
+               D_EMSG("elm_popup_add failed");
+               return NULL;
+       }
+
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, __msg_ui_popup_mouseup_cb, bubble_data);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, __msg_ui_popup_back_cb, bubble_data);
+       if (need_dismiss_cb)
+               evas_object_smart_callback_add(popup, "block,clicked", __msg_ui_popup_back_cb, bubble_data);
+
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       cd->popup_list = eina_list_append(cd->popup_list, popup);
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __msg_ui_composer_bubble_popup_delete_cb, cd);
+
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       return popup;
+}
+
+void msg_ui_bubble_destroy_popup(PMSG_BUBBLE_DATA bubble_data)
+{
+       if (bubble_data->popup) {
+               evas_object_del(bubble_data->popup);
+               bubble_data->popup = NULL;
+       }
+
+       bubble_data->popup_type = BUBBLE_POPUP_NONE;
+
+}
+
+static char *__msg_ui_bubble_recp_list_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       /* PMSG_BUBBLE_DATA bubble_data = evas_object_data_get(obj, "bubble_data"); */
+       BUBBLE_ADDRESS_INFO *addr_info = (BUBBLE_ADDRESS_INFO *)data;
+       D_MSG_RETVM_IF(!addr_info, NULL, "bubble data or addr_info is NULL!!");
+
+       if (g_strcmp0(part, "elm.text.main.left.top") == 0) {
+               int pid = -1;
+               pid = get_contact_index_by_recipient(addr_info->address);
+               if (pid > 0) {
+                       char display_name[MAX_ADDRESS_VAL_LEN+1] = {0,};
+                       get_contact_display_name_by_index(pid, display_name, sizeof(display_name));
+                       return strdup(display_name);
+               } else if (addr_info->address[0] != '\0') {
+                       return strdup(addr_info->address);
+               } else {
+                       return strdup(dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+               }
+       } else if (g_strcmp0(part, "elm.text.sub.left.bottom") == 0) {
+               if (addr_info->address[0] != '\0')
+                       return strdup(addr_info->address);
+               else
+                       return strdup(dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+       }
+
+       return NULL;
+}
+
+static Evas_Object *__msg_ui_bubble_recp_list_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       /* Currently, this function do nothing, caller_id concept is not determined */
+       /* PMSG_BUBBLE_DATA bubble_data = evas_object_data_get(obj, "bubble_data"); */
+       Evas_Object *image = NULL;
+       char *thumb_path = NULL;
+
+       if (g_strcmp0(part, "elm.icon.1") == 0) {
+               BUBBLE_ADDRESS_INFO *addr_info = (BUBBLE_ADDRESS_INFO *)data;
+               contacts_record_h record = NULL;
+               int ct_ret = CONTACTS_ERROR_NONE;
+
+               Evas_Object *ic_ly = elm_layout_add(obj);
+               elm_layout_theme_set(ic_ly, "layout", "list/B/type.2", "default");
+
+               int pid = -1;
+               pid = get_contact_index_by_recipient(addr_info->address);
+
+               if (pid > 0) {
+                       ct_ret = contacts_db_get_record(_contacts_person._uri, pid, &record);
+                       if (ct_ret != CONTACTS_ERROR_NONE) {
+                               D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+                               return NULL;
+                       }
+
+                       contacts_record_get_str_p(record, _contacts_person.image_thumbnail_path, &thumb_path);
+               }
+
+               if (thumb_path && thumb_path[0] != '\0') {
+                       image = msg_common_get_thumbnail(obj, thumb_path, MSG_THUMB_TYPE_USER, MSG_THUMB_SIZE_CONV);
+               } else {
+                       image = msg_common_get_thumbnail(obj, MSG_LIST_THUMB_CONTACT, MSG_THUMB_TYPE_ICON, MSG_THUMB_SIZE_CONV);
+               }
+               elm_object_part_content_set(ic_ly, "elm.swallow.content", image);
+
+               contacts_record_destroy(record, true);
+
+               return ic_ly;;
+       }
+       return NULL;
+}
+
+static void __msg_ui_bubble_recp_list_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       Elm_Object_Item *item = NULL;
+       BUBBLE_ADDRESS_INFO *addr_info = NULL;
+
+       /** It is needed to avoid selecting genlist item after hardware back key pressed */
+       if (bubble_data->viewmode != BUBBLE_RECIPIENT_VIEW) {
+               D_IMSG("bubble_data->viewmode is not BUBBLE_RECIPIENT_VIEW");
+               return;
+       }
+
+       item = (Elm_Object_Item *) event_info;
+       D_MSG_RETM_IF(!item, "Item is  NULL or Item is not Message item\n");
+
+       addr_info = (BUBBLE_ADDRESS_INFO *) elm_object_item_data_get(item);
+       D_MSG_RETM_IF(addr_info == NULL, "addr_info is NULL");
+
+       elm_genlist_item_selected_set(item, 0);
+
+       int pid = get_contact_index_by_recipient(addr_info->address);
+
+       if (pid > 0) {
+               if (bubble_data->bubble_from_contact)
+                       ug_destroy_me(cd->ug);
+               else
+                       appsvc_launch_contacts(cd, pid, NULL, PERSON_ID_TYPE);
+       } else {
+               msg_ui_bubble_destroy_popup(bubble_data);
+               bubble_data->call_option_enabled = TRUE;
+               bubble_data->popup = msg_ui_bubble_create_add_to_contact_popup(bubble_data, addr_info->address);
+               bubble_data->popup_type = BUBBLE_POPUP_ADD_TO_CONTACT_SINGLE;
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_bubble_create_forward_not_available_popup(PMSG_BUBBLE_DATA pData)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !pData);
+
+       msg_ui_bubble_destroy_popup(pData);
+
+       Evas_Object *popup = msg_ui_bubble_create_popup(pData, false);
+
+       elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING");
+
+       Evas_Object *btn_ok = elm_button_add(popup);
+       elm_object_style_set(btn_ok, "popup");
+       elm_object_domain_translatable_text_set(btn_ok, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       elm_object_part_content_set(popup, "button1", btn_ok);
+       evas_object_smart_callback_add(btn_ok, "clicked", msg_ui_popup_close_clicked_cb, pData);
+
+       evas_object_show(popup);
+       pData->popup = popup;
+       pData->popup_type = BUBBLE_POPUP_FORWARD_RESTRICTED;
+}
+
+
+static Eina_Bool __msg_ui_bubble_recp_view_pop_cb(void *data, Elm_Object_Item *it)
+{
+       D_ENTER;
+       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)data;
+       D_MSG_RETVM_IF(bubble_data == NULL, EINA_TRUE, "Bubble Data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+
+       bubble_data->viewmode = BUBBLE_NORMAL_VIEW;
+       /* Update the title button. */
+       msg_ui_bubble_update_title_name_button(bubble_data);
+       msg_ui_composer_reset_view(cd);
+
+       D_LEAVE;
+       return EINA_TRUE;
+}
+
+void msg_ui_bubble_recipient_list_update(PMSG_BUBBLE_DATA bubble_data)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !bubble_data);
+       Elm_Object_Item *gen_item = NULL;
+
+       if (bubble_data->recipient_genlist) {
+               gen_item = elm_genlist_first_item_get(bubble_data->recipient_genlist);
+               while (gen_item) {
+                       elm_genlist_item_update(gen_item);
+                       gen_item = elm_genlist_item_next_get(gen_item);
+               }
+       }
+}
+
+void msg_ui_bubble_launch_recipient_list_view(PMSG_BUBBLE_DATA bubble_data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(bubble_data == NULL, "bubble_data is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       if (!cd->recipient) {
+               cd->recipient = msg_ui_composer_recipient_create(cd->content_layout, VIEW_RECIP_MODE, cd);
+               if (cd->recipient) {
+                       elm_object_part_content_set(cd->content_layout, "swl.recipient", cd->recipient->bx_main);
+               }
+       }
+
+       if (cd->recipient) {
+               /* clear & set recipient */
+               msg_ui_composer_recipient_clear_recipient_list(cd);
+               if (cd->recipient->mbe) {
+                       elm_multibuttonentry_clear(cd->recipient->mbe);
+               }
+
+               int i = 0;
+               for (i = 0; i < bubble_data->addr_list.addr_cnt; i++) {
+                       if (bubble_data->addr_list.addr_info[i].address[0] != '\0') {
+                               msg_ui_composer_recipient_set_loaded_data(cd, bubble_data->addr_list.addr_info[i].address, 0);
+                       }
+               }
+
+               msg_ui_composer_show_hide_mbe(cd->recipient, true);
+       }
+}
+
+void msg_ui_bubble_remove_title_name_button(PMSG_BUBBLE_DATA bubble_data)
+{
+       D_ENTER;
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !bubble_data, "NULL param, parent[%x], bubble_data[%x]", bubble_data);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       if (!cd) {
+               D_EMSG("composer data is NULL");
+               return ;
+       }
+
+       if (bubble_data->title_button_exist) {
+               elm_object_signal_callback_del(cd->navi_title_layout, "title_text,clicked", "", msg_ui_bubble_title_button_clicked_cb);
+               elm_object_signal_callback_add(cd->navi_title_layout, "down_arrow,clicked", "", msg_ui_bubble_down_button_clicked_cb, cd);
+               elm_object_part_text_set(cd->navi_title_layout, "title_text", "");
+               bubble_data->title_button_exist = EINA_FALSE;
+       }
+}
+
+void msg_ui_bubble_create_title_name_button(Evas_Object *parent, PMSG_BUBBLE_DATA bubble_data)
+{
+       D_ENTER;
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !parent || !bubble_data, "NULL param, parent[%x], bubble_data[%x]", parent, bubble_data);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       if (!cd) {
+               D_EMSG("composer data is NULL");
+               return ;
+       }
+
+       Evas_Object *title_button = NULL;
+       bool isUnknown = false;
+       bool isInvalid = false;
+       char title_text[DEF_BUF_LEN+1] = {0,};
+
+       if (bubble_data->msg_type == MSG_TYPE_SMS_CB || bubble_data->msg_type == MSG_TYPE_SMS_WAPPUSH ||  bubble_data->msg_type == MSG_TYPE_SMS_SYNCML) {
+               msg_ui_bubble_remove_title_name_button(bubble_data);
+
+               if (bubble_data->msg_type == MSG_TYPE_SMS_CB) {
+                       elm_object_domain_translatable_part_text_set(cd->navi_title_layout, "title_text", MESSAGE_PKGNAME, "IDS_MSGF_BODY_CB_MESSAGES");
+               } else if (bubble_data->msg_type == MSG_TYPE_SMS_WAPPUSH) {
+                       elm_object_domain_translatable_part_text_set(cd->navi_title_layout, "title_text", MESSAGE_PKGNAME, "IDS_MSGF_BODY_PUSH_MESSAGES");
+               } else if (bubble_data->msg_type == MSG_TYPE_SMS_SYNCML) {
+                       elm_object_domain_translatable_part_text_set(cd->navi_title_layout, "title_text", MESSAGE_PKGNAME, "IDS_MSGF_BODY_CP_MESSAGES");
+               }
+               return ;
+       }
+       if (bubble_data->addr_list.addr_info[0].address[0] == '\0') {
+               isUnknown = true;
+       } else {
+               char *normalized_number = NULL;
+               bool valid_phonenum = false;
+               bool valid_email = false;
+
+               normalized_number = msg_common_make_normalized_number(bubble_data->addr_list.addr_info[0].address);
+               if (normalized_number) {
+                       valid_phonenum = msg_common_is_valid_phone_number(normalized_number);
+                       free(normalized_number);
+                       normalized_number = NULL;
+               } else {
+                       valid_phonenum = msg_common_is_valid_phone_number(bubble_data->addr_list.addr_info[0].address);
+               }
+
+               if (!valid_phonenum)
+                       valid_email = msg_common_is_valid_email_addr(bubble_data->addr_list.addr_info[0].address);
+
+               if (!valid_phonenum && !valid_email)
+                       isInvalid = true;
+       }
+
+       if (isUnknown) {
+               if (bubble_data->addr_list.addr_cnt == 1) {
+                       msg_ui_bubble_remove_title_name_button(bubble_data);
+                       elm_object_domain_translatable_part_text_set(cd->navi_title_layout, "title_text", SYSTEM_STRING_PKGNAME, "IDS_COM_BODY_UNKNOWN");
+                       return ;
+               } else if (bubble_data->addr_list.addr_cnt > 1) {
+                       snprintf(title_text, sizeof(title_text), "%s +%d", dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"), bubble_data->addr_list.addr_cnt-1);
+               }
+       } else if (isInvalid) {
+               if (bubble_data->addr_list.addr_cnt == 1) {
+                       msg_ui_bubble_remove_title_name_button(bubble_data);
+
+                       elm_object_part_text_set(cd->navi_title_layout, "title_text", bubble_data->addr_list.addr_info[0].address);
+                       return ;
+               } else {
+                       snprintf(title_text, sizeof(title_text), "%s +%d", bubble_data->addr_list.addr_info[0].address, bubble_data->addr_list.addr_cnt-1);
+               }
+       } else {
+               /* getting person id by address */
+               char display_name[MAX_ADDRESS_VAL_LEN+1] = {0,};
+               int pid = get_contact_index_by_recipient(bubble_data->addr_list.addr_info[0].address);
+
+               if (pid > 0)
+                       get_contact_display_name_by_index(pid, display_name, sizeof(display_name));
+
+               if (bubble_data->addr_list.addr_cnt == 1) {
+                       if (display_name[0] != '\0') {
+                               snprintf(title_text, sizeof(title_text), "%s", display_name);
+                       } else {
+                               snprintf(title_text, sizeof(title_text), "%s", bubble_data->addr_list.addr_info[0].address);
+                       }
+               } else if (bubble_data->addr_list.addr_cnt > 1) {
+                       if (display_name[0] != '\0')
+                               snprintf(title_text, sizeof(title_text), "%s +%d", display_name, bubble_data->addr_list.addr_cnt-1);
+                       else
+                               snprintf(title_text, sizeof(title_text), "%s +%d", bubble_data->addr_list.addr_info[0].address, bubble_data->addr_list.addr_cnt-1);
+               }
+       }
+
+       if (cd->bubble_data->addr_list.addr_cnt > 1) {
+               edje_object_signal_emit(_EDJ(cd->navi_title_layout), "show,arrow", "");
+       }
+
+       elm_object_part_text_set(cd->navi_title_layout, "title_text", title_text);
+       elm_object_signal_callback_add(cd->navi_title_layout, "title_text,clicked", "", msg_ui_bubble_title_button_clicked_cb, cd);
+       elm_object_signal_callback_add(cd->navi_title_layout, "down_arrow,clicked", "", msg_ui_bubble_down_button_clicked_cb, cd);
+       bubble_data->title_button_exist = EINA_TRUE;
+}
+
+void msg_ui_bubble_update_title_name_button(PMSG_BUBBLE_DATA bubble_data)
+{
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !bubble_data, "NULL param, bubble_data[%x]", bubble_data);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       if (!cd) {
+               D_EMSG("composer data is NULL");
+               return;
+       }
+
+       msg_ui_bubble_remove_title_name_button(bubble_data);
+       msg_ui_bubble_create_title_name_button(cd->navi_title_layout, bubble_data);
+
+}
+
+void msg_ui_bubble_update_title_contact_image(PMSG_BUBBLE_DATA bubble_data)
+{
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !bubble_data, "NULL param, bubble_data[%x]", bubble_data);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       if (!cd) {
+               D_EMSG("composer data is NULL");
+               return;
+       }
+
+       Evas_Object *title_button = NULL;
+       title_button = elm_object_part_content_get(cd->navi_title_layout, "title_btn");
+
+       if (title_button) {
+               msg_ui_bubble_remove_title_contact_image(bubble_data);
+       }
+}
+
+
+void msg_ui_bubble_remove_title_contact_image(PMSG_BUBBLE_DATA bubble_data)
+{
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !bubble_data, "NULL param bubble_data[%x]", bubble_data);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       if (!cd) {
+               D_EMSG("composer data is NULL");
+               return;
+       }
+
+       Evas_Object *title_button = NULL;
+       title_button = elm_object_part_content_get(cd->navi_title_layout, "title_btn");
+
+       if (title_button) {
+               Evas_Object *old_icon = NULL;
+               old_icon = elm_object_part_content_unset(title_button, "title_icon");
+
+               if (old_icon)
+                       evas_object_del(old_icon);
+       }
+
+}
+
+Evas_Object *msg_ui_bubble_add_title_button(PMSG_BUBBLE_DATA bubble_data, BubbleTieleButtonType type)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       if (!cd) {
+               D_EMSG("composer data is NULL");
+               return NULL;
+       }
+
+       Evas_Object *title_btn = NULL;
+
+       if (type == BUBBLE_TITLE_BUTTON_1) {
+               title_btn = msg_common_navframe_text_button_create(cd->navi_title_layout, "IDS_MSG_ACBUTTON_CANCEL_ABB", EINA_TRUE, EINA_TRUE);
+               elm_object_part_content_set(cd->navi_title_layout, "cancel_btn", title_btn);
+               edje_object_signal_emit(_EDJ(cd->navi_title_layout), "show,cancel,button", "");
+       } else if (type == BUBBLE_TITLE_BUTTON_2) {
+               title_btn = msg_common_navframe_text_button_create(cd->navi_title_layout, "IDS_MSG_ACBUTTON_DELETE_ABB", EINA_TRUE, EINA_TRUE);
+               elm_object_part_content_set(cd->navi_title_layout, "done_btn", title_btn);
+               edje_object_signal_emit(_EDJ(cd->navi_title_layout), "show,done,button", "");
+       } else {
+               D_EMSG("invlaid_title_button_type : [%d]", type);
+       }
+
+       return title_btn;
+}
+
+void msg_ui_bubble_remove_title_button(PMSG_BUBBLE_DATA bubble_data, BubbleTieleButtonType type)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)bubble_data->callback_data;
+       if (!cd) {
+               D_EMSG("composer data is NULL");
+               return;
+       }
+
+       Evas_Object *button = NULL;
+
+       if (type == BUBBLE_TITLE_BUTTON_1) {
+               button = elm_object_part_content_unset(cd->navi_title_layout, "cancel_btn");
+               edje_object_signal_emit(_EDJ(cd->navi_title_layout), "hide,cancel,button", "");
+       } else if (type == BUBBLE_TITLE_BUTTON_2) {
+               button = elm_object_part_content_unset(cd->navi_title_layout, "done_btn");
+               edje_object_signal_emit(_EDJ(cd->navi_title_layout), "hide,done,button", "");
+       } else {
+               D_EMSG("invlaid_title_button_type : [%d]", type);
+       }
+
+       if (button)
+               evas_object_del(button);
+
+}
+
+
diff --git a/composer/src/external/msg-ui-composer-external.c b/composer/src/external/msg-ui-composer-external.c
new file mode 100755 (executable)
index 0000000..6fdfd6a
--- /dev/null
@@ -0,0 +1,2773 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/* include*/
+#include <dlfcn.h>
+
+#include "msg-ui-composer-data.h"
+#include "msg-ui-composer-external.h"
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-composer-body.h"
+#include "msg-ui-composer-recipient.h"
+#include "msg-ui-composer-bubble.h"
+#include "msg-ui-composer-main.h"
+#include "msg-ui-composer-message.h"
+#include "msg-ui-composer-attachment.h"
+#include "msg-ui-util.h"
+#include "msg-ui-common-utility.h"
+#include "msg-ui-composer-body-callback.h"
+#include "msg-file-util.h"
+
+#include "msg-ui-common-app-control.h"
+#include <app_control.h>
+#include <app_control_internal.h>
+
+#include <ui-gadget.h>
+#include <Ecore_X.h>
+#include <contacts.h>
+
+#define MSGC_NAMECARD_MAX_COUNT 50
+#define MSGC_CONTENT_PATH "/opt/usr/media"
+#define MSGC_CONTENT_SOUND_PATH MSGC_CONTENT_PATH"/Sounds"
+#define MSGC_SETTING_NETWORK_OPERATION "http://tizen.org/appcontrol/operation/setting/mobile_network"
+static void __msg_ui_composer_external_closed(MSG_COMPOSER_VIEW_DATA_S *cd);
+
+static void __ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd;
+       Evas_Object *base;
+
+       if (!ug || !priv) {
+               D_MSG("");
+               return;
+       }
+
+       cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+       base = ug_get_layout(ug);
+
+       if (!base) {
+               ug_destroy(ug);
+               D_MSG("");
+               return;
+       }
+
+       switch (mode) {
+       case UG_MODE_FULLVIEW:
+               if (true == cd->is_forward_msg_ug || true == cd->call_add_to_contact)
+                       ug_disable_effect(ug);
+
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_show(base);
+               break;
+       case UG_MODE_FRAMEVIEW:
+               break;
+       default:
+               break;
+       }
+
+       msg_ui_composer_disconnect_handler(cd);
+
+       D_LEAVE;
+}
+
+static void __ug_contact_phonui_result_cb(ui_gadget_h ug, app_control_h result, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!ug, "ug data is NULL");
+       D_MSG_RETM_IF(!result, "bundle result data is NULL");
+       D_MSG_RETM_IF(!priv, "priv data is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+       D_MSG_RETM_IF(cd->recipient == NULL, "Recipient data is NULL");
+
+       int contact_index = 0;
+       int person_index = 0;
+       int *num_id_list = NULL;
+       int *email_id_list = NULL;
+       int num_len = 0;
+       int email_len = 0;
+       int i = 0;
+       int ct_ret = CONTACTS_ERROR_NONE;
+       const char *current_number = NULL;
+       char *address_str = NULL;
+       char *num_value = NULL;
+       char *email_value = NULL;
+       char *entry_text = NULL;
+       MSG_BOOL bMaxCount = FALSE;
+       MSG_BOOL bInvalidNum = FALSE;
+       MSG_BOOL bDup = FALSE;
+       MSG_BOOL isContactId = FALSE;
+       int contact_count = 0;
+       int email_count = 0;
+
+       if (cd->invalid_recipient_list)
+               msg_ui_composer_recipient_clear_invalid_recipient_list(cd);
+
+       /* get numver list */
+       app_control_get_extra_data(result, MSG_CT_UG_BUNDLE_RESULT_NUMBER_ID_LIST, &num_value);
+       if (num_value) {
+               /* contact id list */
+               num_id_list = (int *)g_base64_decode(num_value, (gsize *)&num_len);
+               isContactId = TRUE;
+               D_MSG("num_len = %d", num_len/sizeof(int));
+               contact_count = num_len/sizeof(int);
+
+               if (!num_id_list) {
+                       D_EMSG("num_id_list list is NULL");
+                       goto end;
+               }
+       }
+
+       /*get email list */
+       app_control_get_extra_data(result, MSG_CT_UG_BUNDLE_RESULT_EMAIL_ID_LIST, &email_value);
+       if (email_value) {
+               /* contact id list */
+               email_id_list = (int *)g_base64_decode(email_value, (gsize *)&email_len);
+               D_MSG("email_len = %d", email_len/sizeof(int));
+
+               if (!email_id_list) {
+                       D_EMSG("email_id list is NULL");
+                       goto end;
+               }
+       }
+
+       /* get phonelog list */
+       if (!num_value && !email_value) {
+               /* phonelog id list*/
+               app_control_get_extra_data(result, MSG_BUNDLE_KEY_GET_SEL_LIST, &num_value);
+               D_MSG_RETM_IF(!num_value, "num_value is NULL");
+
+               num_id_list = (int *)g_base64_decode(num_value, (gsize *)&num_len);
+               D_MSG("num_len = %d", num_len/sizeof(int));
+
+               if (!num_id_list) {
+                       D_EMSG("number_id list is NULL");
+                       goto end;
+               }
+       }
+
+       /* get entry text */
+       if (num_len > 0 || email_len > 0) {
+               current_number = msg_ui_composer_recipient_entry_text_get(cd->recipient);
+               if (current_number)
+                       entry_text = strdup(current_number);
+       }
+
+       /* add number list to recipient */
+       for (i = 0; i < num_len / sizeof(int); i++) {
+               if (msg_ui_composer_recipient_count_get(cd->recipient) >= cd->recipient_max_count) {
+                       bMaxCount = TRUE;
+                       break;
+               }
+
+               address_str = NULL;
+
+               if (isContactId) {
+                       /* contact id list */
+                       contacts_record_h value = NULL;
+                       contacts_record_h record = NULL;
+
+                       /* get records - contacts number */
+                       ct_ret = contacts_db_get_record(_contacts_number._uri, num_id_list[i], &value);
+                       if (ct_ret != CONTACTS_ERROR_NONE) {
+                               D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+                               continue;
+                       }
+                       /* get contact index */
+                       contacts_record_get_int(value, _contacts_number.contact_id, &contact_index);
+                       /* get number str */
+                       contacts_record_get_str_p(value, _contacts_number.number, &address_str);
+
+                       /* get records - contacts number */
+                       ct_ret = contacts_db_get_record(_contacts_simple_contact._uri, contact_index, &record);
+                       if (ct_ret != CONTACTS_ERROR_NONE) {
+                               D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+                               contacts_record_destroy(value, true);
+                               continue;
+                       }
+
+                       /* get records - person */
+                       contacts_record_get_int(record, _contacts_simple_contact.person_id, &person_index);
+
+                       D_SEC_MSG("selected number_id = %d, contact_id = %d, person_id = %d, number = %s", num_id_list[i], contact_index, person_index, address_str);
+
+                       /* make normalized number */
+                       char *normalized_number = msg_common_make_normalized_number(address_str);
+                       if (normalized_number) {
+                               D_SEC_MSG("normalized_number = [%s]", normalized_number);
+                               address_str = normalized_number;
+                       }
+
+                       if (address_str && *address_str) {
+                               if (msg_ui_composer_recipient_duplicate_check(cd->recipient, address_str) == COMPOSER_RETURN_RECIPIENT_DUPLICATE) {
+                                       bDup = TRUE;
+                                       contacts_record_destroy(record, true);
+                                       contacts_record_destroy(value, true);
+
+                                       if (normalized_number) {
+                                               free(normalized_number);
+                                               normalized_number = NULL;
+                                       }
+
+                                       continue;
+                               }
+
+                               if (msg_ui_composer_recipient_vaild_check(address_str) == EINA_FALSE) {
+                                       msg_ui_composer_recipient_add_invalid_recipient_list(cd, address_str);
+                                       bInvalidNum = TRUE;
+                               } else {
+                                       msg_ui_composer_recipient_append(cd->recipient, address_str, person_index);
+                               }
+                       } else {
+                               D_EMSG("contact id %d, person id %d is unuseable !!", contact_index, person_index);
+                       }
+
+                       /* destroy records */
+                       contacts_record_destroy(record, true);
+                       contacts_record_destroy(value, true);
+
+                       if (normalized_number) {
+                               free(normalized_number);
+                               normalized_number = NULL;
+                       }
+               } else {
+                       /* phonelog id list */
+                       contacts_query_h query = NULL;
+                       contacts_filter_h filter = NULL;
+                       contacts_list_h list = NULL;
+                       int ct_err = CONTACTS_ERROR_NONE;
+                       char *normalized_number = NULL;
+
+                       contacts_query_create(_contacts_person_phone_log._uri, &query);
+                       contacts_filter_create(_contacts_person_phone_log._uri, &filter);
+                       contacts_filter_add_int(filter, _contacts_person_phone_log.log_id, CONTACTS_MATCH_EQUAL, num_id_list[i]);
+                       contacts_query_set_filter(query, filter);
+                       ct_err = contacts_db_get_records_with_query(query, 0, 0, &list);
+                       contacts_filter_destroy(filter);
+                       contacts_query_destroy(query);
+
+                       if (ct_err != CONTACTS_ERROR_NONE) {
+                               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+                               contacts_list_destroy(list, true);
+                               continue;
+                       }
+
+                       while (CONTACTS_ERROR_NONE == ct_err) {
+                               contacts_record_h plog = NULL;
+                               contacts_list_get_current_record_p(list, &plog);
+
+                               if (plog) {
+                                       /* get address string */
+                                       contacts_record_get_str_p(plog, _contacts_person_phone_log.address, &address_str);
+                                       /* get contact index */
+                                       contacts_record_get_int(plog, _contacts_person_phone_log.person_id, &person_index);
+                                       D_SEC_MSG("selected number_id = %d, person_id = %d, number = %s", num_id_list[i], person_index, address_str);
+
+                                       /* make normalized number */
+                                       normalized_number = msg_common_make_normalized_number(address_str);
+                                       if (normalized_number) {
+                                               D_SEC_MSG("normalized_number = [%s]", normalized_number);
+                                               address_str = normalized_number;
+                                       }
+
+                                       break;
+                               }
+
+                               ct_err = contacts_list_next(list);
+                       }
+
+                       if (address_str && *address_str) {
+                               if (msg_ui_composer_recipient_duplicate_check(cd->recipient, address_str) == COMPOSER_RETURN_RECIPIENT_DUPLICATE) {
+                                       bDup = TRUE;
+
+                                       if (normalized_number) {
+                                               free(normalized_number);
+                                               normalized_number = NULL;
+                                       }
+
+                                       contacts_list_destroy(list, true);
+                                       continue;
+                               }
+
+                               if (msg_ui_composer_recipient_vaild_check(address_str) == EINA_FALSE) {
+                                       msg_ui_composer_recipient_add_invalid_recipient_list(cd, address_str);
+                                       bInvalidNum = TRUE;
+                               } else {
+                                       msg_ui_composer_recipient_append(cd->recipient, address_str, person_index);
+                               }
+                       }
+
+                       if (normalized_number) {
+                               free(normalized_number);
+                               normalized_number = NULL;
+                       }
+
+                       contacts_list_destroy(list, true);
+               }
+       }
+
+       /* add email list to recipient */
+       email_count = email_len / sizeof(int);
+
+       for (i = 0; i < email_len / sizeof(int); i++) {
+               if (msg_ui_composer_recipient_count_get(cd->recipient) >= cd->recipient_max_count) {
+                       bMaxCount = TRUE;
+                       break;
+               }
+
+               address_str = NULL;
+
+               /* contact id list */
+               contacts_record_h value = NULL;
+               contacts_record_h record = NULL;
+
+               /* get records - email */
+               ct_ret = contacts_db_get_record(_contacts_email._uri, email_id_list[i], &value);
+               if (ct_ret != CONTACTS_ERROR_NONE) {
+                       D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+                       continue;
+               }
+
+               /* get email address str */
+               contacts_record_get_str(value, _contacts_email.email, &address_str);
+               /* get contact index */
+               contacts_record_get_int(value, _contacts_email.contact_id, &contact_index);
+
+               /* get records - contacts number */
+               ct_ret = contacts_db_get_record(_contacts_simple_contact._uri, contact_index, &record);
+               if (ct_ret != CONTACTS_ERROR_NONE) {
+                       D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+                       contacts_record_destroy(value, true);
+                       continue;
+               }
+
+               /* get person index */
+               contacts_record_get_int(record, _contacts_contact_email.person_id, &person_index);
+
+               D_SEC_MSG("selected email_id = %d, contact_id = %d, person_id = %d, address = %s", email_id_list[i], contact_index, person_index, address_str);
+
+               if (address_str) {
+                       if (msg_ui_composer_recipient_duplicate_check(cd->recipient, address_str) == COMPOSER_RETURN_RECIPIENT_DUPLICATE) {
+                               bDup = TRUE;
+                               contacts_record_destroy(record, true);
+                               contacts_record_destroy(value, true);
+                               continue;
+                       }
+
+                       if (msg_ui_composer_recipient_vaild_check(address_str) == EINA_FALSE) {
+                               msg_ui_composer_recipient_add_invalid_recipient_list(cd, address_str);
+                               bInvalidNum = TRUE;
+                       } else {
+                               msg_ui_composer_recipient_append(cd->recipient, address_str, person_index);
+                       }
+               } else {
+                       D_EMSG("contact id %d, person id %d is unuseable !!", contact_index, person_index);
+               }
+
+               contacts_record_destroy(record, true);
+               contacts_record_destroy(value, true);
+       }
+
+       /* set entry text */
+       if (entry_text) {
+               msg_ui_composer_recipient_entry_text_set(cd->recipient, entry_text);
+               g_free(entry_text);
+       }
+
+       D_MSG("bMaxCount = %d, bInvalidNum = %d, bDup = %d", bMaxCount, bInvalidNum, bDup);
+       if (bMaxCount) {
+               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+       } else if (bInvalidNum) {
+               char *popup_str = NULL;
+               int invalid_count = -1;
+
+               if (cd->invalid_recipient_list)
+                       invalid_count = eina_list_count(cd->invalid_recipient_list);
+
+               msg_ui_composer_unset_view(cd);
+               if (contact_count + email_count == 1) {
+                       popup_str = "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID";
+               } else if ((contact_count + email_count) == invalid_count) {
+                       popup_str = "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID";
+               } else {
+                       popup_str = msg_ui_composer_recipient_get_invalid_recipient_popup_str(cd);
+                       if (popup_str == NULL) {
+                               popup_str = "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID";
+                       } else {
+                               msg_ui_composer_last_focused_entry_set(cd, cd->recipient->entry);
+                       }
+               }
+               msg_common_create_noti_toast_popup(popup_str);
+
+       } else if (bDup) {
+               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_DUP_RECP);
+       }
+
+end:
+       if (num_value)
+               free(num_value);
+
+       if (email_value)
+               free(email_value);
+
+       if (num_id_list)
+               free(num_id_list);
+
+       if (email_id_list)
+               free(email_id_list);
+
+       if (cd->invalid_recipient_list)
+               msg_ui_composer_recipient_clear_invalid_recipient_list(cd);
+
+       D_LEAVE;
+}
+
+static void __appsvc_complete(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       if (cd && cd->callee_svc_handle) {
+               app_control_send_terminate_request(cd->callee_svc_handle);
+               app_control_destroy(cd->callee_svc_handle);
+               cd->callee_svc_handle = NULL;
+       }
+}
+
+static void __appsvc_contact_phoneui_result_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!reply, "reply data is NULL");
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       __appsvc_complete(cd);
+
+       D_MSG_RETM_IF(cd->recipient == NULL, "Recipient data is NULL");
+
+       int phones_length = 0;
+       if (cd->invalid_recipient_list)
+               msg_ui_composer_recipient_clear_invalid_recipient_list(cd);
+
+       if (result == APP_CONTROL_RESULT_SUCCEEDED) {
+
+               int contact_index = 0;
+               int person_index = 0;
+               int ct_ret = 0;
+               int i = 0;
+               char **phones = NULL;
+               char *number_str = NULL;
+
+               app_control_get_extra_data_array(reply, APP_CONTROL_DATA_SELECTED, &phones, &phones_length);
+               D_MSG_RETM_IF(!phones, "phone is NULL");
+
+
+
+               int number_id = 0;
+               for (i = 0; i < phones_length; i++) {
+                       if (msg_ui_composer_recipient_count_get(cd->recipient) >= cd->recipient_max_count) {
+                               break;
+                       }
+
+                       D_MSG("Received from contacts: %s", phones[i]);
+                       number_id = atoi(phones[i]);
+
+                       /* contact id list */
+                       contacts_record_h value = NULL;
+                       contacts_record_h record = NULL;
+
+                       /* get records - contacts number */
+                       ct_ret = contacts_db_get_record(_contacts_number._uri, number_id, &value);
+                       if (ct_ret != CONTACTS_ERROR_NONE) {
+                               D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+                               continue;
+                       }
+
+                       /* get contact index */
+                       contacts_record_get_int(value, _contacts_number.contact_id, &contact_index);
+                       /* get number str */
+                       contacts_record_get_str_p(value, _contacts_number.number, &number_str);
+
+                       /* get records - contacts number */
+                       ct_ret = contacts_db_get_record(_contacts_simple_contact._uri, contact_index, &record);
+                       if (ct_ret != CONTACTS_ERROR_NONE) {
+                               D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+                               contacts_record_destroy(value, true);
+                               continue;
+                       }
+
+                       /* get records - person */
+                       contacts_record_get_int(record, _contacts_simple_contact.person_id, &person_index);
+
+                       D_SEC_MSG("selected number_id = %d, contact_id = %d, person_id = %d, number = %s", number_id, contact_index, person_index, number_str);
+
+                       /* make normalized number */
+                       char *normalized_number = msg_common_make_normalized_number(number_str);
+                       if (normalized_number) {
+                               D_SEC_MSG("normalized_number = [%s]", normalized_number);
+                               number_str = normalized_number;
+                       }
+
+                       if (number_str && *number_str) {
+                               if (msg_ui_composer_recipient_duplicate_check(cd->recipient, number_str) == COMPOSER_RETURN_RECIPIENT_DUPLICATE) {
+                                       contacts_record_destroy(record, true);
+                                       contacts_record_destroy(value, true);
+
+                                       if (normalized_number) {
+                                               free(normalized_number);
+                                               normalized_number = NULL;
+                                       }
+
+                                       continue;
+                               }
+
+                               if (msg_ui_composer_recipient_vaild_check(number_str) == EINA_FALSE) {
+                                       msg_ui_composer_recipient_add_invalid_recipient_list(cd, number_str);
+                               } else {
+                                       msg_ui_composer_recipient_append(cd->recipient, number_str, person_index);
+                               }
+                       } else {
+                               D_EMSG("contact id %d, person id %d is unusable !!", contact_index, person_index);
+                       }
+
+                       /* destroy records */
+                       contacts_record_destroy(record, true);
+                       contacts_record_destroy(value, true);
+
+                       if (normalized_number) {
+                               free(normalized_number);
+                               normalized_number = NULL;
+                       }
+
+               }
+
+               for (i = 0; i < phones_length; i++) {
+                       free(phones[i]);
+               }
+               free(phones);
+
+
+       } else {
+               D_MSG("App Control Result is not Success [%d]", result);
+       }
+
+       __msg_ui_composer_external_closed(cd);
+
+       if (cd->invalid_recipient_list) {
+               int invalid_list_length = 0;
+               invalid_list_length = eina_list_count(cd->invalid_recipient_list);
+               if (phones_length == 1 && invalid_list_length == 1) {
+                       msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID");
+               } else if (phones_length > 0 && phones_length == invalid_list_length) {
+                       msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID");
+               } else if (invalid_list_length > 0) {
+                       msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID");
+               }
+               msg_ui_composer_recipient_clear_invalid_recipient_list(cd);
+       }
+       msg_ui_composer_last_focused_entry_set(cd, cd->recipient->entry);
+       elm_entry_entry_set(cd->recipient->entry, "");
+       D_LEAVE;
+}
+
+static void __appcontrol_viewer_result_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = NULL;
+       char *mode = NULL;
+       char *msgid_str = NULL;
+       int msg_id = 0;
+       int ret = APP_CONTROL_ERROR_NONE;
+
+       cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(!cd, "cd is NULL");
+
+       if (!cd->bubble_data) {
+               D_EMSG("Bubble_data is NULL");
+               return;
+       }
+
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+
+       if (result == APP_CONTROL_RESULT_SUCCEEDED) {
+               ret = app_control_get_extra_data(reply, MSG_BUNDLE_KEY_MSG_ID, &msgid_str);
+               if (ret == APP_CONTROL_ERROR_NONE) {
+                       if (msgid_str)
+                               msg_id = atoi(msgid_str);
+               } else {
+                       D_EMSG("Failed to get msg id from viewer");
+                       if (msgid_str)
+                               free(msgid_str);
+                       __msg_ui_composer_external_closed(cd);
+                       return;
+               }
+
+               if (app_control_get_extra_data(reply, MSG_BUNDLE_KEY_MODE, &mode) == APP_CONTROL_ERROR_NONE) {
+                       if (g_strcmp0(mode, MSG_BUNDLE_VALUE_RESEND) == 0) {
+                               if (msg_common_is_sim_active()) {
+                                       if (ret == APP_CONTROL_ERROR_NONE) {
+
+                                               D_MSG("Resend request msg id(%d) from viewer", msg_id);
+                                               cd->send_from_bubble = TRUE;
+                                               bubble_data->resend_id = msg_id;
+                                               bubble_data->resend_msg_type = COMPOSER_MSG_TYPE_MMS;
+                                               if (msg_ui_composer_message_flight_mode_check_and_change(cd, NULL) != COMPOSER_RETURN_SUCCESS) {
+
+                                                       D_MSG("FLIGHT MODE WAS ENABLED");
+                                                       return;
+                                               } else {
+                                                       msg_ui_composer_common_message_send(cd);
+                                               }
+                                       }
+                               } else {
+                                       D_WMSG("NO SIM mode");
+                                       msg_ui_composer_unset_view(cd);
+                                       msg_ui_composer_create_text_btn_popup(cd, _MSGSTR("IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"), 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+                               }
+                       } else if (g_strcmp0(mode, MSG_BUNDLE_VALUE_REMOVE_CONV) == 0) {
+                               if (ret == APP_CONTROL_ERROR_NONE) {
+
+                                       D_MSG("Remove conv msg id(%d) from viewer", msg_id);
+                                       msg_ui_bubble_list_item_remove(bubble_data, msg_id);
+                               }
+                       } else if (g_strcmp0(mode, MSG_BUNDLE_VALUE_DEL_BUBBLE) == 0) {
+                               if (ret == APP_CONTROL_ERROR_NONE) {
+                                       msg_delete_message(bubble_data->msgHandle, msg_id);
+                               }
+                       } else if (g_strcmp0(mode, MSG_BUNDLE_VALUE_COPY_TO_SIM) == 0) {
+                               if (ret == APP_CONTROL_ERROR_NONE) {
+
+                                       D_MSG("Copy msg to SIM from viewer and copied msg id is %d", msg_id);
+
+                                       bubble_data->copy_id = msg_id;
+                               }
+                       } else if (g_strcmp0(mode, MSG_BUNDLE_VALUE_DESTROY) == 0) {
+                               D_MSG("Launch contact details");
+                               ug_destroy_me(cd->ug);
+                       } else {
+                               D_EMSG("MODE(%s) is not applicable type", mode);
+                       }
+               } else {
+                       D_EMSG("Failed to get MODE data from viewer");
+               }
+
+               if (mode)
+                       free(mode);
+
+               if (msgid_str)
+                       free(msgid_str);
+       } else {
+               D_MSG("App COntrol Result is not Success [%d]", result);
+
+       }
+
+       __msg_ui_composer_external_closed(cd);
+
+       D_LEAVE;
+}
+
+static void __appsvc_myfile_result_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       __appsvc_complete(cd);
+
+       if (result == APP_CONTROL_RESULT_SUCCEEDED) {
+               char *file_path = NULL;
+               int ret = APP_CONTROL_ERROR_NONE;
+
+               ret = app_control_get_extra_data(reply, MSG_BUNDLE_KEY_RESULT, (char **)&file_path);
+               if (ret == APP_CONTROL_ERROR_NONE) {
+                       if (file_path) {
+                               D_SEC_MSG("file = (%s)", file_path);
+                               bool is_sound_and_shot = false;
+                               cd->attachlist = make_tokenize_list(file_path, TOKEN_QUESTION, COMPOSER_UTIL_LIST_TYPE_FILE, &is_sound_and_shot);
+                               /* Check whether this file is sound & shot or not */
+                               if ((cd->is_sound_and_shot == false) && (is_sound_and_shot == true)) {
+                                       D_MSG("At least there is a sound & shot image");
+                                       cd->is_sound_and_shot = true;
+                               }
+                               free(file_path);
+                       }
+
+               } else {
+                       D_MSG("App_control_get_extra_data failed! ret:[%d]", ret);
+               }
+
+       } else {
+               D_MSG("App COntrol Result is not Success [%d]", result);
+       }
+
+       __msg_ui_composer_external_closed(cd);
+       D_LEAVE;
+}
+
+static void __appsvc_namecard_list_return_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       D_MSG_RETM_IF(!reply, "reply is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       __appsvc_complete(cd);
+
+       if (result == APP_CONTROL_RESULT_SUCCEEDED) {
+
+               char *vcard_path = NULL; /* for single mode */
+
+/*             char **vcard_paths =NULL; */
+/*             int paths_count = 0; */
+
+               app_control_get_extra_data(reply, APP_CONTROL_DATA_PATH, &vcard_path);  /* for single mode */
+               D_MSG_RETM_IF(!vcard_path, "vcard_path is NULL");                                               /* for single mode */
+               D_MSG("Receive vcard path: %s", vcard_path);                                                    /* for single mode */
+               cd->attachlist = eina_list_append(cd->attachlist, vcard_path);                  /* for single mode */
+
+/*             if (app_control_get_extra_data_array(reply, APP_CONTROL_DATA_PATH, &vcard_paths, &paths_count) == APP_CONTROL_ERROR_NONE) {
+                       if (vcard_paths) {
+                               if (paths_count) {
+                                       int i = 0;
+                                       for (i = 0; i < paths_count; i++) {
+                                               if (vcard_paths[i]) {
+                                                       D_SEC_MSG("vcard_paths[%d] = (%s)", i, vcard_paths[i]);
+
+                                                       cd->attachlist = eina_list_append(cd->attachlist, strdup(vcard_paths[i]));
+                                                       free(vcard_paths[i]);
+                                               }
+                                       }
+                               }
+
+                               free(vcard_paths);
+                       }
+               } */
+
+               if (cd->attachlist) {
+                       msg_ui_composer_body_items_add(cd);
+               }
+
+
+       } else {
+               D_MSG("App COntrol Result is not Success [%d]", result);
+       }
+
+       __msg_ui_composer_external_closed(cd);
+       D_LEAVE;
+}
+
+static void __ug_text_contact_list_result_cb(ui_gadget_h ug, app_control_h result, void *priv)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+       char *str = NULL;
+       Evas_Object *entry = NULL;
+
+       if (!ug || !priv || !result) {
+               D_EMSG("parameter error ug = %p, priv = %p, result = %p", ug, priv, result);
+               return;
+       }
+
+       if (app_control_get_extra_data(result, MSG_CT_UG_BUNDLE_PERSON_INFO, &str) == APP_CONTROL_ERROR_NONE) {
+               if (str) {
+                       if (strlen(str)) {
+                               D_SEC_MSG("### contact info text = (%s)", str);
+                               entry = msg_ui_composer_last_body_entry_get(cd);
+
+                               if (entry) {
+                                       char *markup_str = NULL;
+                                       markup_str = elm_entry_utf8_to_markup(str);
+                                       if (markup_str) {
+                                               D_SEC_MSG("### contact info text markup = (%s)", markup_str);
+                                               cd->attachment_string = markup_str;
+                                       }
+
+                                       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+                                               if (false == cd->recipient->was_entry_empty)
+                                                       msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+
+                                               COMPOSER_RECP_ADDR_E recp_type = msg_ui_composer_recipient_addr_type_get(cd->recipient);
+                                               if ((recp_type != COMPOSER_RECP_ADDR_INVALID) && (recp_type != COMPOSER_RECP_ADDR_MAX_REACHED)) {
+                                                       msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+                                                       cd->is_attachment_added = true;
+                                               } else {
+                                                       /* Focus should be set to body entry first, so that attachment_string can be inserted in body_entry_focused_cb. */
+                                                       /* Hence is_recipient_focused should be FALSE at this point. */
+                                                       /* Since recipient type is COMPOSER_RECP_ADDR_INVALID or COMPOSER_RECP_ADDR_MAX_REACHED, */
+                                                       /* focus will be set back to recipient entry after inserting attachment_string in body_entry_focused_cb. */
+                                                       cd->is_recipient_focused = false;
+                                                       cd->is_attachment_added = false;
+                                               }
+                                       }
+                               }
+
+                       }
+                       free(str);
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void __ug_calendar_result_cb(ui_gadget_h ug, app_control_h result, void *priv)
+{
+       D_ENTER;
+       if (!ug || !priv || !result) {
+               D_EMSG("parameter error ug = %p, priv = %p, result = %p", ug, priv, result);
+               return;
+       }
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+       int count = 0;
+       int i = 0;
+       char *path = NULL;
+       char *count_str = NULL;
+       char tmp[DEF_BUF_LEN_S + 1] = {0,};
+
+       app_control_get_extra_data(result, MSG_BUNDLE_KEY_COUNT, &count_str);
+       if (count_str) {
+               count = atoi(count_str);
+               free(count_str);
+       }
+
+       if (count > 0) {
+               for (i = 0; i < count; i++) {
+                       snprintf(tmp, sizeof(tmp), "vfile%d", i + 1);
+                       D_SEC_MSG("tmp:%s", tmp);
+                       app_control_get_extra_data(result, tmp, &path);
+
+                       if (path) {
+                               D_SEC_MSG("path:%s", path);
+
+                               if (msg_file_exists(path))
+                                       cd->attachlist = eina_list_append(cd->attachlist, g_strdup(path));
+
+                               free(path);
+                               path = NULL;
+                       }
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void __ug_text_calendar_result_cb(ui_gadget_h ug, app_control_h result, void *priv)
+{
+       D_ENTER;
+       if (!ug || !priv || !result) {
+               D_EMSG("parameter error ug = %p, priv = %p, result = %p", ug, priv, result);
+               return;
+       }
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+       int count = 0;
+       int i = 0;
+       char *str = NULL;
+       char *count_str = NULL;
+       char tmp[DEF_BUF_LEN_S + 1] = {0,};
+       Evas_Object *entry = NULL;
+
+       app_control_get_extra_data(result, MSG_BUNDLE_KEY_COUNT, &count_str);
+       if (count_str)
+               count = atoi(count_str);
+
+       if (count > 0) {
+               for (i = 0; i < count; i++) {
+                       snprintf(tmp, sizeof(tmp), "text%d", i + 1);
+                       D_MSG("key : (%s)", tmp);
+                       app_control_get_extra_data(result, tmp, &str);
+
+                       if (str) {
+                               if (strlen(str)) {
+                                       D_SEC_MSG("str : (%s)", str);
+                                       entry = msg_ui_composer_last_body_entry_get(cd);
+                                       if (entry) {
+                                               char *markup_text = elm_entry_utf8_to_markup(str);
+                                               if (markup_text) {
+                                                       elm_entry_entry_insert(entry, markup_text);
+                                                       free(markup_text);
+                                                       markup_text = NULL;
+                                               }
+                                       }
+                               }
+                               free(str);
+                               str = NULL;
+                       }
+               }
+       }
+
+       if (count_str)
+               free(count_str);
+
+       D_LEAVE;
+}
+
+static void __ug_memo_result_cb(ui_gadget_h ug, app_control_h result, void *priv)
+{
+       D_ENTER;
+       if (!ug || !priv || !result) {
+               D_EMSG("parameter error ug = %p, priv = %p, result = %p", ug, priv, result);
+               return;
+       }
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+       char *str = NULL;
+       char *memo_image = NULL;
+       char buf[DEF_BUF_LEN_S + 1] = {0, };
+       int img_count = 0;
+       int i = 0;
+
+       if (app_control_get_extra_data(result, MSG_BUNDLE_KEY_IMAGE, &str) == APP_CONTROL_ERROR_NONE) {
+               if (str) {
+                       img_count = atoi(str);
+                       free(str);
+                       str = NULL;
+               }
+       }
+
+       D_MSG("[MEMO] attach image count : %d", img_count);
+
+       /* if image memo then attach image */
+       if (img_count > 0) {
+               for (i = 1; i <= img_count; i++) {
+                       snprintf(buf, sizeof(buf), "image%d", i);
+                       if (app_control_get_extra_data(result, buf, &memo_image) == APP_CONTROL_ERROR_NONE) {
+                               if (memo_image) {
+                                       cd->attachlist = eina_list_append(cd->attachlist, g_strdup(memo_image));
+                                       free(memo_image);
+                                       memo_image = NULL;
+                               }
+                       }
+               }
+       }
+}
+
+static void __ug_txt_memo_result_cb(ui_gadget_h ug, app_control_h result, void *priv)
+{
+       D_ENTER;
+       if (!ug || !priv || !result) {
+               D_EMSG("parameter error ug = %p, priv = %p, result = %p", ug, priv, result);
+               return;
+       }
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+       Evas_Object *entry = NULL;
+       char *str = NULL;
+       char *tmp_memo = NULL;
+       char buf[DEF_BUF_LEN_S + 1] = {0, };
+       int txt_count = 0;
+
+       if (app_control_get_extra_data(result, MSG_BUNDLE_KEY_TEXT, &str) == APP_CONTROL_ERROR_NONE) {
+               if (str) {
+                       txt_count = atoi(str);
+                       free(str);
+                       str = NULL;
+               }
+       }
+
+       D_MSG("[MEMO]attach text count : %d", txt_count);
+
+       /*if only text memo then add to body area */
+       if (txt_count > 0) {
+               COMPOSER_RECP_ADDR_E recp_type = msg_ui_composer_recipient_addr_type_get(cd->recipient);
+               int i = 0;
+
+               for (i = 1; i <= txt_count; i++) {
+                       char *memo_str = NULL;
+                       snprintf(buf, sizeof(buf), "text%d", i);
+
+                       app_control_get_extra_data(result, buf, &tmp_memo);
+                       if (tmp_memo) {
+                               entry = msg_ui_composer_last_body_entry_get(cd);
+                               if (entry) {
+                                       D_SEC_MSG("### memo text = %s", tmp_memo);
+                                       memo_str = elm_entry_utf8_to_markup(tmp_memo);
+
+                                       if (memo_str) {
+                                               D_SEC_MSG("### memo text markup= %s", memo_str);
+                                               elm_entry_entry_insert(entry, memo_str);
+                                               g_free(memo_str);
+                                       }
+
+                                       if ((recp_type != COMPOSER_RECP_ADDR_INVALID) && (recp_type != COMPOSER_RECP_ADDR_MAX_REACHED)) {
+                                               /* change focus to entry*/
+                                               msg_ui_composer_last_focused_entry_set(cd, entry);
+                                       }
+                               }
+
+                               free(tmp_memo);
+                               tmp_memo = NULL;
+                       }
+               }
+
+               if (recp_type == COMPOSER_RECP_ADDR_INVALID) {
+                       msg_ui_composer_create_text_btn_popup(cd, _MSGSTR("IDS_MSGF_BODY_INVALID_RECIPIENT"), 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+               }
+       }
+}
+
+static void __ug_composer_result_cb(ui_gadget_h ug, app_control_h result, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!ug || !priv || !result, "parameter error ug = %p, priv = %p, result = %p", ug, priv, result);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+       char *msgid_str = NULL;
+       char *result_str = NULL;
+       int thread_id = 0;
+       int msg_id = 0;
+
+       if (!cd->bubble_data) {
+               D_EMSG("Bubble_data is NULL");
+               return;
+       }
+
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+
+       app_control_get_extra_data(result, MSG_BUNDLE_KEY_RESULT, &result_str);
+       if (result_str) {
+               if (!g_strcmp0(result_str, MSG_BUNDLE_VALUE_SENT)) {
+                       app_control_get_extra_data(result, MSG_BUNDLE_KEY_THREAD_ID, &msgid_str);
+                       cd->msg_id = 0;
+                       bubble_data->draft_msg_id = 0;
+
+                       if (msgid_str) {
+                               thread_id = atoi(msgid_str);
+                               free(msgid_str);
+                               msgid_str = NULL;
+                       }
+               }
+       } else {
+               app_control_get_extra_data(result, MSG_BUNDLE_KEY_MSG_ID, &msgid_str);
+               if (msgid_str) {
+                       msg_id = atoi(msgid_str);
+                       free(msgid_str);
+                       msgid_str = NULL;
+               }
+
+               cd->msg_id = msg_id;
+               bubble_data->draft_msg_id = msg_id;
+
+               if (msg_id != 0) {
+                       msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+                       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+                       msg_error_t err = MSG_SUCCESS;
+
+                       err = msg_get_message(cd->msg_handle, msg_id, msgInfo, sendOpt);
+
+                       if (err == MSG_SUCCESS) {
+                               msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, &thread_id);
+                       }
+
+                       msg_release_struct(&msgInfo);
+                       msg_release_struct(&sendOpt);
+               }
+       }
+
+       if (thread_id != 0 && thread_id == bubble_data->threadId) {
+               if (bubble_data->add_recp_id > 0) {
+                       msg_delete_message(cd->msg_handle, bubble_data->add_recp_id);
+                       bubble_data->add_recp_id = 0;
+               }
+
+               if (!result_str || (g_strcmp0(result_str, MSG_BUNDLE_VALUE_SENT) != 0)) {
+                       msg_ui_composer_message_init();
+                       msg_ui_composer_message_load_message(cd->msg_handle, msg_id, false);
+                       /* msg_ui_composer_message_destroy() will be called inside
+                          an idler ecore_add_attach_media_idler() added in
+                          msg_ui_composer_body_body_layout_resize_cb after entry gets
+                          resized */
+                       cd->set_loaded_data_ret = msg_ui_composer_message_set_loaded_data(cd, true);
+                       Evas_Object *entry = msg_ui_composer_body_get_page_entry(cd, 0);
+                       if (entry) {
+                               cd->is_edit_clicked = true;
+                               msg_ui_composer_body_body_layout_resize_cb(cd, NULL, cd->input_field_bg, NULL);
+                       }
+               }
+       } else {
+               app_control_h svc_handle;
+               char buf[DEF_BUF_LEN_S] = {0,};
+
+               if (bubble_data->bubble_count == 0) {
+                       int err = MSG_SUCCESS;
+
+                       err = msg_delete_thread_message_list(bubble_data->msgHandle, bubble_data->threadId, true);
+
+                       if (err == MSG_SUCCESS) {
+                               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                       D_EMSG("app_control_create() is failed !!");
+                               } else {
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RESULT, MSG_BUNDLE_VALUE_DEL_ALL);
+                                       snprintf(buf, sizeof(buf), "%d", bubble_data->threadId);
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+                                       ug_send_result(cd->ug, svc_handle);
+
+                                       app_control_destroy(svc_handle);
+                               }
+                               ug_destroy_me(cd->ug);
+                       }
+               } else {
+                       if (bubble_data->add_recp_id > 0) {
+                               msg_delete_message(cd->msg_handle, bubble_data->add_recp_id);
+                               bubble_data->add_recp_id = 0;
+
+                               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                       D_EMSG("app_control_create() is failed !!");
+                               } else {
+                                       snprintf(buf, sizeof(buf), "%d", bubble_data->threadId);
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+                                       ug_send_result(cd->ug, svc_handle);
+
+                                       app_control_destroy(svc_handle);
+                               }
+                       }
+               }
+       }
+
+       if (result_str)
+               free(result_str);
+}
+
+static void __ug_end_cb(ui_gadget_h ug, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!priv, "priv is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+
+       if (cd->is_appsvc_ug_call) {
+               cd->is_appsvc_ug_call = false;
+       }
+       cd->launched_callee_type = COMPOSER_EXT_TYPE_NONE;
+
+       msg_ui_composer_reset_view(cd);
+
+       D_LEAVE;
+}
+
+static void __ug_closed_cb(ui_gadget_h ug, void *priv)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+
+       if (ug == cd->loaded_ug) {
+               ug_destroy(cd->loaded_ug);
+               cd->loaded_ug = NULL;
+
+               if (true == cd->is_forward_msg_ug)
+                       cd->is_forward_msg_ug = false;
+
+               if (true == cd->call_add_to_contact)
+                       cd->call_add_to_contact = false;
+       } else {
+               D_WMSG("[parameter ug : 0x%x, composer loaded_ug : 0x%x] *** It may be a problem!! ***", ug, cd->loaded_ug);
+
+               if (cd->loaded_ug != NULL) {
+                       ug_destroy(cd->loaded_ug);
+                       cd->loaded_ug = NULL;
+               } else {
+                       D_WMSG("*** ug_destroy() may be called earlier, check ug-manager!! ***");
+                       ug_destroy(ug);
+               }
+
+               if (true == cd->is_forward_msg_ug)
+                       cd->is_forward_msg_ug = false;
+       }
+
+       /* recover focus moving of caller ug except destroying case from app-service launching.
+       it is added for screen reader */
+       if (cd->isclosed == false)
+               elm_object_tree_focus_allow_set(cd->base, EINA_TRUE);
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+               app_control_h svc_handle;
+               char buf[DEF_BUF_LEN_S] = {0,};
+
+               if (bubble_data) {
+                       if (bubble_data->bubble_count == 0) {
+                               if (msg_delete_thread_message_list(bubble_data->msgHandle, bubble_data->threadId, true) == MSG_SUCCESS) {
+                                       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                               D_EMSG("app_control_create() is failed !!");
+                                       } else {
+                                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RESULT, MSG_BUNDLE_VALUE_DEL_ALL);
+                                               snprintf(buf, sizeof(buf), "%d", bubble_data->threadId);
+                                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+                                               ug_send_result(cd->ug, svc_handle);
+
+                                               app_control_destroy(svc_handle);
+                                       }
+                                       ug_destroy_me(cd->ug);
+                               }
+                       } else if (bubble_data->add_recp_id > 0) {
+                               msg_delete_message(cd->msg_handle, bubble_data->add_recp_id);
+                               bubble_data->add_recp_id = 0;
+
+                               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                       D_EMSG("app_control_create() is failed !!");
+                               } else {
+                                       snprintf(buf, sizeof(buf), "%d", bubble_data->threadId);
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+                                       ug_send_result(cd->ug, svc_handle);
+
+                                       app_control_destroy(svc_handle);
+                               }
+                       }
+               }
+       }
+
+       msg_common_sync_local_font_size();
+
+       int index = MSG_APP_FONT_SIZE_INDEX_NORMAL;
+       if (msg_common_get_font_size(&index)) {
+               if (cd->setting_font_size != index) {
+                       cd->setting_font_size = index;
+                       cd->display_font_size = cd->setting_font_size;
+               }
+       }
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               msg_ui_bubble_list_size_change(cd->bubble_data);
+       }
+
+       msg_ui_composer_connect_handler(cd);
+
+       if (cd->attachlist)
+               msg_ui_composer_body_items_add(cd);
+
+       if (cd->is_attachment_added == false) {
+               if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+                       if (cd->is_recipient_focused) {
+                               D_MSG("recipient focused");
+                               if (cd->recipient != NULL) {
+                                       msg_ui_composer_last_focused_entry_set(cd, cd->recipient->entry);
+                               }
+                       }
+               }
+       } else {
+               cd->is_attachment_added = false;
+       }
+
+       D_LEAVE;
+}
+
+static void __ug_contact_closed_cb(ui_gadget_h ug, void *priv)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+               if (cd->recipient) {
+                       RECIPIENT_S *rd = cd->recipient;
+                       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+                       msg_ui_composer_recipient_update(cd->recipient);
+                       if (cd->scroller_popup == NULL && msg_ui_composer_recipient_addr_type_get(cd->recipient) != COMPOSER_RECP_ADDR_INVALID && msg_ui_composer_last_focused_entry_get(cd) != cd->recipient->entry) {
+                               msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+                       }
+               }
+       }
+
+/*Temporarily rolling back the changes for saving the draft, since it is creating
+ * other issues in app pause and resume case */
+#if 0
+       if (NULL != cd->bubble_data) {
+               msg_ui_composer_clear(cd);
+               msg_ui_bubble_list_load(cd->bubble_data, true);
+               msg_ui_composer_body_focus_set(cd, 0);
+       }
+#endif
+
+
+       if (cd->bubble_data != NULL) {
+
+               if (cd->bubble_data->viewmode == BUBBLE_RECIPIENT_VIEW && cd->bubble_data->recipient_genlist) {
+                       msg_ui_bubble_recipient_list_update(cd->bubble_data);
+               }
+       }
+
+       __ug_closed_cb(ug, priv);
+
+       D_LEAVE;
+}
+
+/*
+* Create External UG
+*/
+ui_gadget_h msg_ui_composer_launch_contact_detail_ug(MSG_COMPOSER_VIEW_DATA_S *cd, int index, const char* address, int type)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer data is NULL");
+
+       ui_gadget_h ug;
+       struct ug_cbs cbs = {0, };
+       app_control_h svc_handle = NULL;
+       int person_id = 0;
+       char personId[DEF_BUF_LEN_S] = { 0, };
+       char buf[DEF_BUF_LEN_D] = { 0, };
+       contacts_record_h record = NULL;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return NULL;
+       }
+
+       if (type == CONTACT_ID_TYPE || type == PERSON_ID_TYPE) {
+               if (type == CONTACT_ID_TYPE) {
+                       int ct_ret = CONTACTS_ERROR_NONE;
+                       int contact_id = index;
+
+                       ct_ret = contacts_db_get_record(_contacts_simple_contact._uri, contact_id, &record);
+                       if (ct_ret != CONTACTS_ERROR_NONE) {
+                               D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+                               app_control_destroy(svc_handle);
+                               return NULL;
+                       }
+
+                       /* get records - person */
+                       contacts_record_get_int(record, _contacts_simple_contact.person_id, &person_id);
+               } else {
+                       person_id = index;
+               }
+
+               D_SEC_MSG("index = %d, person_id = %d", index, person_id);
+
+               snprintf(personId, sizeof(personId), "%d", person_id);
+               snprintf(buf, sizeof(buf), "%d", MSG_CT_UG_REQUEST_DETAIL);
+               app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_TYPE, buf);
+               app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_ID, personId);
+       }
+
+       cbs.layout_cb = __ug_layout_cb;
+       cbs.result_cb = NULL;
+       cbs.destroy_cb = __ug_contact_closed_cb;
+       cbs.end_cb = __ug_end_cb;
+       cbs.priv = cd;
+
+       ug = ug_create(cd->ug, UG_NAME_CONTACTS_DETAILS, UG_MODE_FULLVIEW, svc_handle, &cbs);
+
+       if (ug) {
+               cd->loaded_ug = ug;
+               /* prevent focus moving to caller ug. it is added for screen reader */
+               elm_object_tree_focus_allow_set(cd->base, EINA_FALSE);
+       } else {
+               D_EMSG("ug is NULL");
+       }
+
+       if (record)
+               contacts_record_destroy(record, true);
+
+       app_control_destroy(svc_handle);
+
+       D_LEAVE;
+       return ug;
+}
+
+ui_gadget_h msg_ui_composer_launch_add_to_bookmark_ug(MSG_COMPOSER_VIEW_DATA_S *cd, const char* url)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!cd || !url, NULL, "Composer data is NULL");
+
+       ui_gadget_h ug = NULL;
+       app_control_h svc_handle = NULL;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return NULL;
+       } else {
+               struct ug_cbs cbs = {0,};
+
+               cbs.layout_cb = __ug_layout_cb;
+               cbs.result_cb = NULL;
+               cbs.destroy_cb = __ug_closed_cb;
+               cbs.end_cb = __ug_end_cb;
+               cbs.priv = cd;
+
+               app_control_add_extra_data(svc_handle, "url", url);
+
+               ug = ug_create(NULL, "bookmark-add-efl", UG_MODE_FULLVIEW, svc_handle, &cbs);
+               if (ug) {
+                       cd->loaded_ug = ug;
+                       /* prevent focus moving to caller ug. it is added for screen reader */
+                       elm_object_tree_focus_allow_set(cd->base, EINA_FALSE);
+               } else {
+                       D_EMSG("ug is NULL");
+               }
+
+               app_control_destroy(svc_handle);
+       }
+
+       return ug;
+}
+
+ui_gadget_h msg_ui_composer_launch_composer_create(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer data is NULL");
+
+       ui_gadget_h ug;
+       struct ug_cbs cbs = {0,};
+
+       cbs.layout_cb = __ug_layout_cb;
+       cbs.result_cb = __ug_composer_result_cb;
+       cbs.destroy_cb = __ug_closed_cb;
+       cbs.end_cb = __ug_end_cb;
+       cbs.priv = cd;
+
+       ug = ug_create(cd->ug, MSG_COMPOSER_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &cbs);
+       cd->loaded_ug = ug;
+
+       D_LEAVE;
+       return ug;
+}
+
+void msg_ui_composer_launch_viewer_create(void *data, app_control_h svc_handle)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(!cd, "cd is NULL");
+
+       int ret = APP_CONTROL_ERROR_NONE;
+
+       __appsvc_complete(cd);
+
+       app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+
+       app_control_set_app_id(svc_handle, "msg-viewer-efl");
+       ret = app_control_send_launch_request(svc_handle, __appcontrol_viewer_result_cb, cd);
+
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return;
+       } else {
+               cd->loaded_aul = TRUE;
+               cd->callee_svc_handle = svc_handle;
+       }
+
+       D_LEAVE;
+       return;
+}
+
+ui_gadget_h ug_recent_phoneui_create(void *data, int count)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer data is NULL");
+
+       ui_gadget_h ug;
+       struct ug_cbs cbs = {0, };
+       app_control_h svc_handle = NULL;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return NULL;
+       }
+
+       char request_number[DEF_BUF_LEN_D + 1] = {0, };
+       char max_count[DEF_BUF_LEN_D + 1] = {0, };
+
+       snprintf(request_number, sizeof(request_number), "%d", MSG_CT_UG_REQUEST_SELECT_CONTACT);
+       app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_TYPE, request_number);
+
+       int request_count = cd->recipient_max_count;
+       if (cd->recipient_max_count >= count)
+               request_count = cd->recipient_max_count - count;
+       else
+               D_EMSG("invalid case count %d", count);
+
+       D_MSG("request_count %d", request_count);
+
+       snprintf(max_count, sizeof(max_count), "%d", request_count);
+       app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_MAX, max_count);
+
+       cbs.layout_cb = __ug_layout_cb;
+       cbs.result_cb = __ug_contact_phonui_result_cb; /* using same api as for contacts since it provides the functionality of taking numbers from phone logs */
+       cbs.destroy_cb = __ug_contact_closed_cb;
+       cbs.end_cb = __ug_end_cb;
+       cbs.priv = data;
+
+       ug = ug_create(cd->ug, UG_NAME_RECENT_PHONEUI, UG_MODE_FULLVIEW, svc_handle, &cbs);
+
+       app_control_destroy(svc_handle);
+
+       D_LEAVE;
+
+       return ug;
+}
+
+int appsvc_phoneui_create(void *data, int count)
+{
+       D_ENTER;
+       app_control_h svc_handle = NULL;
+       int ret = APP_CONTROL_ERROR_NONE;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       char max_count[DEF_BUF_LEN_D + 1] = {0, };
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       __appsvc_complete(cd);
+
+       app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+
+       int request_count = cd->recipient_max_count;
+       if (cd->recipient_max_count >= count)
+               request_count = cd->recipient_max_count - count;
+       else
+               D_EMSG("invalid case count %d", count);
+
+       D_MSG("request_count %d", request_count);
+
+       snprintf(max_count, sizeof(max_count), "%d", request_count);
+
+       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_PICK);
+       app_control_set_mime(svc_handle, APP_CONTROL_MIME_CONTACT);
+       app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_SELECTION_MODE, APP_CONTROL_DATA_SELECTION_MODE_MULTIPLE);
+       app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_LIMIT, max_count);
+       app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_RESULT_TYPE, APP_CONTROL_DATA_RESULT_TYPE_PHONE);
+
+       ret = app_control_send_launch_request(svc_handle, __appsvc_contact_phoneui_result_cb, cd);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+       cd->callee_svc_handle = svc_handle;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+int appsvc_myfile_audio_create(void *data)
+{
+       D_ENTER;
+       app_control_h svc_handle = NULL;
+       int ret = APP_CONTROL_ERROR_NONE;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       __appsvc_complete(cd);
+
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FILE_TYPE, MSG_BUNDLE_VALUE_SOUND);
+
+       if (cd->is_replace) {
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_SELECT_TYPE, MSG_BUNDLE_VALUE_SINGLE_FILE);
+       } else {
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_PATH, MSGC_CONTENT_SOUND_PATH);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_SELECT_TYPE, MSG_BUNDLE_VALUE_MULTI_FILE);
+       }
+
+       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_PICK);
+       app_control_set_mime(svc_handle, "sound/*");
+       app_control_set_app_id(svc_handle, "ug-myfile-efl");
+       ret = app_control_send_launch_request(svc_handle, __appsvc_myfile_result_cb, cd);
+
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+       cd->callee_svc_handle = svc_handle;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+int appsvc_namecard_create(void *data)
+{
+       D_ENTER;
+       app_control_h svc_handle = NULL;
+       int ret = APP_CONTROL_ERROR_NONE;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       char max_count[DEF_BUF_LEN_D + 1] = {0, };
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       __appsvc_complete(cd);
+
+       app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+
+       snprintf(max_count, sizeof(max_count), "%d", MSGC_NAMECARD_MAX_COUNT);
+
+       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_PICK);
+       app_control_set_mime(svc_handle, APP_CONTROL_MIME_CONTACT);
+       app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_SELECTION_MODE, APP_CONTROL_DATA_SELECTION_MODE_SINGLE); /* for single mode */
+/*     app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_SELECTION_MODE, APP_CONTROL_DATA_SELECTION_MODE_MULTIPLE); */
+       app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_LIMIT, max_count);
+       app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_RESULT_TYPE, APP_CONTROL_DATA_RESULT_TYPE_VCARD);
+
+       ret = app_control_send_launch_request(svc_handle, __appsvc_namecard_list_return_cb, cd);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+       cd->callee_svc_handle = svc_handle;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+ui_gadget_h ug_text_contact_list_create(void *data)
+{
+       D_ENTER;
+
+       ui_gadget_h ug;
+       struct ug_cbs cbs = {0, };
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       app_control_h svc_handle = NULL;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return NULL;
+       }
+
+       char contact_ug[DEF_BUF_LEN + 1] = {0, };
+       snprintf(contact_ug, sizeof(contact_ug), "%d", MSG_CT_UG_REQUEST_SHARE_CONTACT_INFO);
+
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TYPE, contact_ug);
+
+       cbs.layout_cb = __ug_layout_cb;
+       cbs.result_cb = __ug_text_contact_list_result_cb;
+       cbs.destroy_cb = __ug_closed_cb;
+       cbs.end_cb = __ug_end_cb;
+       cbs.priv = data;
+
+       ug = ug_create(cd->ug, UG_NAME_CONTACTS_LIST, UG_MODE_FULLVIEW, svc_handle, &cbs);
+
+       app_control_destroy(svc_handle);
+
+       D_LEAVE;
+       return ug;
+}
+
+ui_gadget_h ug_msgviewer_create(void *data, msg_struct_t msg_data)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       ui_gadget_h ug;
+       struct ug_cbs cbs = {0,};
+       app_control_h svc_handle = NULL;
+
+       cbs.layout_cb = __ug_layout_cb;
+       cbs.result_cb = NULL;
+       cbs.destroy_cb = __ug_closed_cb;
+       cbs.end_cb = __ug_end_cb;
+       cbs.priv = (void *)cd;
+
+       char preview_data[DEF_BUF_LEN_S + 1] = {0, };
+       D_MSG("[DEBUG] hex address [%x]", (unsigned int)msg_data);
+       snprintf(preview_data, sizeof(preview_data), "%x", (unsigned int)msg_data);
+       D_SEC_MSG("[DEBUG] hex address [%s]", preview_data);
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return NULL;
+       }
+
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_PREVIEW_MODE);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_PREVIEW_DATA, preview_data);
+
+       ug = ug_create(cd->ug, UG_NAME_MSG_VIEWER, UG_MODE_FULLVIEW, svc_handle, &cbs);
+
+       app_control_destroy(svc_handle);
+
+       D_LEAVE;
+       return ug;
+}
+
+static void __app_calendar_result_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       int count = 0;
+       int i = 0;
+       char **path = NULL;
+       int ret = APP_CONTROL_ERROR_NONE;
+
+       if (cd->callee_svc_handle) {
+               app_control_destroy(cd->callee_svc_handle);
+               cd->callee_svc_handle = NULL;
+       }
+
+       if (result == APP_CONTROL_RESULT_SUCCEEDED) {
+               ret = app_control_get_extra_data_array(reply, APP_CONTROL_DATA_PATH, &path, &count);
+
+               if (ret == APP_CONTROL_ERROR_NONE) {
+                       if (count > 0) {
+                               for (i = 0; i < count; i++) {
+                                       if (path[i]) {
+                                               D_SEC_MSG("path:%s", path[i]);
+                                               if (msg_file_exists(path[i]))
+                                                       cd->attachlist = eina_list_append(cd->attachlist, g_strdup(path[i]));
+
+                                               free(path[i]);
+                                               path[i] = NULL;
+                                       }
+                               }
+                       }
+
+                       MSG_FREE(path);
+               } else {
+                       D_MSG("App_control_get_extra_data failed! ret:[%d]", ret);
+               }
+       } else {
+               D_MSG("App COntrol Result is not Success [%d]", result);
+               char *error_type = NULL;
+               app_control_get_extra_data(reply, "error", (char **)&error_type);
+               if (error_type) {
+                       if (!strcmp(error_type, "min_size_error")) {
+                               D_MSG("min_size_error is limited");
+                               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_ATTACHMENT_LIMIT_REACHED);
+                       }
+                       free(error_type);
+               }
+       }
+
+       __msg_ui_composer_external_closed(cd);
+       D_LEAVE;
+}
+
+int  app_calendar_create(void *data)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       app_control_h svc_handle = NULL;
+       int ret = APP_CONTROL_ERROR_NONE;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       __appsvc_complete(cd);
+
+       app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_PICK);
+       app_control_set_app_id(svc_handle, "org.tizen.calendar");
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, "1");
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MAX, MSG_BUNDLE_VALUE_CALENDAR_MAX);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RESULT_TYPE, MSG_BUNDLE_VALUE_FILE);
+
+       ret = app_control_send_launch_request(svc_handle, __app_calendar_result_cb, cd);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+       cd->callee_svc_handle = svc_handle;
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+ui_gadget_h ug_calendar_create(void *data)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       ui_gadget_h ug;
+       struct ug_cbs cbs = {0,};
+       app_control_h svc_handle = NULL;
+
+       cbs.layout_cb = __ug_layout_cb;
+       cbs.result_cb = __ug_calendar_result_cb;
+       cbs.destroy_cb = __ug_closed_cb;
+       cbs.end_cb = __ug_end_cb;
+       cbs.priv = (void *)cd;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return NULL;
+       }
+
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_FILE);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MAX, MSG_BUNDLE_VALUE_CALENDAR_MAX);
+
+       ug = ug_create(cd->ug, UG_NAME_CALENDAR, UG_MODE_FULLVIEW, svc_handle, &cbs);
+
+       app_control_destroy(svc_handle);
+
+       D_LEAVE;
+       return ug;
+}
+
+static void __app_text_calendar_result_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       int count = 0;
+       int i = 0;
+       char **str = NULL;
+       Evas_Object *entry = NULL;
+       int ret = APP_CONTROL_ERROR_NONE;
+
+       if (cd->callee_svc_handle) {
+               app_control_destroy(cd->callee_svc_handle);
+               cd->callee_svc_handle = NULL;
+       }
+
+       if (result == APP_CONTROL_RESULT_SUCCEEDED) {
+               ret = app_control_get_extra_data_array(reply, APP_CONTROL_DATA_PATH, &str, &count);
+               if (ret == APP_CONTROL_ERROR_NONE) {
+                       if (count > 0) {
+                               int temp_strl = 0;
+                               char *temp_str = NULL;
+                               for (i = 0; i < count; i++) {
+                                       temp_strl = temp_strl + strlen(str[i])+1;
+                               }
+                               temp_str = (char *)calloc((temp_strl+1), sizeof(char));
+
+                               for (i = 0; i < count; i++) {
+                                       if (str[i]) {
+                                               if (strlen(str[i])) {
+                                                       D_SEC_MSG("str : (%s)", str[i]);
+                                                       strcat(temp_str, str[i]);
+                                                       strcat(temp_str, "\n");
+                                               }
+
+                                               free(str[i]);
+                                               str[i] = NULL;
+                                       }
+                               }
+
+                               entry = msg_ui_composer_last_body_entry_get(cd);
+                               if (entry) {
+                                       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+                                               if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true) {
+                                                       if (msg_ui_composer_recipient_addr_type_get(cd->recipient) == COMPOSER_RECP_ADDR_INVALID) {
+                                                               msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID");
+                                                       } else {
+                                                               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+                                                       }
+                                                       /* Focus should be set to body entry first, so that attachment_string can be inserted in body_entry_focused_cb. */
+                                                       /* Hence is_recipient_focused should be FALSE at this point. */
+                                                       /* Since recipient type is COMPOSER_RECP_ADDR_INVALID or COMPOSER_RECP_ADDR_MAX_REACHED, */
+                                                       /* focus will be set back to recipient entry after inserting attachment_string in body_entry_focused_cb. */
+                                                       cd->is_recipient_focused = false;
+                                                       cd->is_attachment_added = false;
+                                               } else {
+                                                       if (cd->recipient) {
+                                                               RECIPIENT_S *rd = cd->recipient;
+                                                               D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+                                                               if (false == rd->was_entry_empty)
+                                                                       msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+                                                               msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+                                                               cd->is_attachment_added = true;
+                                                       }
+                                               }
+                                       }
+
+                                       char *markup_text = elm_entry_utf8_to_markup(temp_str);
+                                       if (markup_text) {
+                                               cd->attachment_string = markup_text;
+                                       }
+                                       msg_ui_composer_last_focused_entry_set(cd, entry);
+                               }
+
+                               MSG_FREE(temp_str);
+                       }
+
+                       MSG_FREE(str);
+               } else {
+                       D_MSG("App_control_get_extra_data failed! ret:[%d]", ret);
+               }
+       } else {
+               D_MSG("App COntrol Result is not Success [%d]", result);
+               char *error_type = NULL;
+               app_control_get_extra_data(reply, "error", (char **)&error_type);
+               if (error_type) {
+                       if (!strcmp(error_type, "min_size_error")) {
+                               D_MSG("min_size_error is limited");
+                               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_ATTACHMENT_LIMIT_REACHED);
+                       }
+                       free(error_type);
+               }
+       }
+       __msg_ui_composer_external_closed(cd);
+       D_LEAVE;
+}
+
+int  app_text_calendar_create(void *data)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       app_control_h svc_handle = NULL;
+       int ret = APP_CONTROL_ERROR_NONE;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       __appsvc_complete(cd);
+       app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_PICK);
+       app_control_set_app_id(svc_handle, "org.tizen.calendar");
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, "1");
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MAX, MSG_BUNDLE_VALUE_CALENDAR_MAX);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RESULT_TYPE, MSG_BUNDLE_VALUE_TEXT);
+
+       ret = app_control_send_launch_request(svc_handle, __app_text_calendar_result_cb, cd);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       cd->callee_svc_handle = svc_handle;
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+int appsvc_calendar_view(void *data, const char *file_path)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, COMPOSER_RETURN_FAIL, "data is NULL");
+       int ret;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_SEC_MSG("file_path = %s", file_path);
+
+       app_control_h svc_handle = NULL;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       __appsvc_complete(cd);
+
+       if (file_path[0] != '\0') {
+               app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+               app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_VIEW);
+               app_control_set_uri(svc_handle, file_path);
+       }
+       ret = app_control_send_launch_request(svc_handle, NULL, NULL);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       cd->callee_svc_handle = svc_handle;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+int appsvc_contact_view(void *data, const char *file_path)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, COMPOSER_RETURN_FAIL, "data is NULL");
+       int ret;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG("file_path = %s", file_path);
+
+       app_control_h svc_handle = NULL;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       __appsvc_complete(cd);
+
+       if (file_path[0] != '\0') {
+               app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+               app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_VIEW);
+               app_control_set_uri(svc_handle, file_path);
+               app_control_add_extra_data(svc_handle, "View Mode", "DISPLAY");
+               app_control_add_extra_data(svc_handle, "ExitOnBack", "true");
+       }
+       ret = app_control_send_launch_request(svc_handle, NULL, NULL);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       cd->callee_svc_handle = svc_handle;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+int appsvc_setting_view(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, COMPOSER_RETURN_FAIL, "data is NULL");
+       int ret;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       app_control_h svc_handle = NULL;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       __appsvc_complete(cd);
+
+       app_control_set_operation(svc_handle, MSGC_SETTING_NETWORK_OPERATION);
+       app_control_set_app_id(svc_handle, "setting-network-efl");
+
+       ret = app_control_send_launch_request(svc_handle, NULL, NULL);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       cd->callee_svc_handle = svc_handle;
+
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+void __msg_ui_composer_contact_detail_reply_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)user_data;
+
+       __appsvc_complete(cd);
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+               if (cd->recipient) {
+                       RECIPIENT_S *rd = cd->recipient;
+                       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+                       msg_ui_composer_recipient_update(cd->recipient);
+                       if (cd->scroller_popup == NULL && msg_ui_composer_recipient_addr_type_get(cd->recipient) != COMPOSER_RECP_ADDR_INVALID && msg_ui_composer_last_focused_entry_get(cd) != cd->recipient->entry) {
+                               msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+                       }
+               }
+       }
+
+       if (cd->bubble_data != NULL) {
+               if (cd->bubble_data->viewmode == BUBBLE_RECIPIENT_VIEW && cd->bubble_data->recipient_genlist) {
+                       msg_ui_bubble_recipient_list_update(cd->bubble_data);
+               }
+       }
+
+       D_LEAVE;
+}
+
+int appsvc_launch_contacts(MSG_COMPOSER_VIEW_DATA_S *cd, int index, const char* address, int type)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "Composer data is NULL");
+
+       CONTACT_APPSVC_LAUNCH_DATA launch_data;
+       launch_data.on_reply = __msg_ui_composer_contact_detail_reply_cb;
+       launch_data.on_reply_data = (void *)cd;
+
+       app_control_h svc_handle = NULL;
+       if (UPDATE_CONTACT_NUMBER_TYPE == type) {
+               svc_handle = msg_common_appsvc_add_phone_num_to_contacts(address, &launch_data);
+       } else if (UPDATE_CONTACT_EMAIL_TYPE == type) {
+               svc_handle = msg_common_appsvc_add_email_to_contacts(address, &launch_data);
+       } else if (PERSON_ID_TYPE == type) {
+               svc_handle = msg_common_appsvc_view_contact(index, &launch_data);
+       } else {
+               D_EMSG("Unsupported type: %d", type);
+       }
+
+       int res = COMPOSER_RETURN_FAIL;
+       if (svc_handle) {
+               cd->callee_svc_handle = svc_handle;
+               res = COMPOSER_RETURN_SUCCESS;
+       }
+
+       D_LEAVE;
+       return res;
+}
+
+ui_gadget_h ug_text_calendar_create(void *data)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       ui_gadget_h ug;
+       struct ug_cbs cbs = {0,};
+       app_control_h svc_handle = NULL;
+
+       cbs.layout_cb = __ug_layout_cb;
+       cbs.result_cb = __ug_text_calendar_result_cb;
+       cbs.destroy_cb = __ug_closed_cb;
+       cbs.end_cb = __ug_end_cb;
+       cbs.priv = (void *)cd;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return NULL;
+       }
+
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_TEXT);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MAX, MSG_BUNDLE_VALUE_CALENDAR_MAX);
+
+       ug = ug_create(cd->ug, UG_NAME_CALENDAR, UG_MODE_FULLVIEW, svc_handle, &cbs);
+
+       app_control_destroy(svc_handle);
+
+       D_LEAVE;
+       return ug;
+}
+
+ui_gadget_h ug_memo_create(void *data)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       ui_gadget_h ug;
+       struct ug_cbs cbs = {0, };
+       app_control_h svc_handle = NULL;
+
+       cbs.layout_cb = __ug_layout_cb;
+       cbs.result_cb = __ug_memo_result_cb;
+       cbs.destroy_cb = __ug_closed_cb;
+       cbs.end_cb = __ug_end_cb;
+       cbs.priv = (void *)cd;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return NULL;
+       }
+
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TYPE, MSG_BUNDLE_VALUE_SELECT);
+
+       ug = ug_create(cd->ug, UG_NAME_MEMO, UG_MODE_FULLVIEW, svc_handle, &cbs);
+
+       app_control_destroy(svc_handle);
+
+       return ug;
+}
+
+ui_gadget_h ug_text_memo_create(void *data)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       ui_gadget_h ug;
+       struct ug_cbs cbs = {0, };
+       app_control_h svc_handle = NULL;
+
+       cbs.layout_cb = __ug_layout_cb;
+       cbs.result_cb = __ug_txt_memo_result_cb;
+       cbs.destroy_cb = __ug_closed_cb;
+       cbs.end_cb = __ug_end_cb;
+       cbs.priv = (void *)cd;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return NULL;
+       }
+
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TYPE, MSG_BUNDLE_VALUE_TEXTONLY);
+
+       ug = ug_create(cd->ug, UG_NAME_MEMO, UG_MODE_FULLVIEW, svc_handle, &cbs);
+
+       app_control_destroy(svc_handle);
+
+       return ug;
+}
+
+static void __appsvc_camera_result_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       if (result == APP_CONTROL_RESULT_SUCCEEDED) {
+               char **result_filename = NULL;
+               int file_len = 0;
+
+               if (app_control_get_extra_data_array(reply, APP_CONTROL_DATA_PATH, &result_filename, &file_len) == APP_CONTROL_ERROR_NONE) {
+                       if (result_filename) {
+                               int i = 0;
+                               for (i = 0; i < file_len; i++) {
+                                       if (result_filename[i]) {
+                                               char *filepath = (char *)result_filename[i];
+                                               D_SEC_MSG("ATTACHFILE[%d] = (%s)", i, result_filename[i]);
+
+                                               if (g_str_has_prefix(result_filename[i], MSG_BUNDLE_VALUE_FILE_URI_FULL))
+                                                       filepath = (char *)result_filename[i] + 7;
+
+                                               cd->attachlist = eina_list_append(cd->attachlist, strdup(filepath));
+
+                                               free(result_filename[i]);
+                                               result_filename[i] = NULL;
+                                       }
+                               }
+
+                               free(result_filename);
+                               result_filename = NULL;
+                       } else {
+                               D_MSG("result_filename is NULL");
+                       }
+               }
+       } else if (result == APP_CONTROL_RESULT_FAILED) {
+               char *error_type = NULL;
+               app_control_get_extra_data(reply, "error", &error_type);
+               if (error_type) {
+                       if (!strcmp(error_type, "min_size_error")) {
+                               D_MSG("min_size_error is limited");
+                               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_MESSAGE_SIZE_LIMIT_REACHED);
+                       }
+                       free(error_type);
+               }
+       }
+
+       __msg_ui_composer_external_closed(cd);
+
+       D_LEAVE;
+}
+
+int appsvc_take_picture(void *data)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       int ret = 0;
+       app_control_h app_ctrl_h = NULL;
+
+       if (app_control_create(&app_ctrl_h) < 0 || app_ctrl_h == NULL) {
+               D_EMSG("service_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+       app_control_set_window(app_ctrl_h, elm_win_xwindow_get(cd->main_window));
+       app_control_set_operation(app_ctrl_h, APP_CONTROL_OPERATION_CREATE_CONTENT);
+       app_control_set_mime(app_ctrl_h, "image/jpg");
+       app_control_add_extra_data(app_ctrl_h, MSG_BUNDLE_KEY_CALLER, MESSAGE_PKGNAME);
+       app_control_add_extra_data(app_ctrl_h, MSG_BUNDLE_KEY_RESOLUTION, MSG_BUNDLE_VALUE_VGA);
+
+       ret = app_control_send_launch_request(app_ctrl_h, __appsvc_camera_result_cb, cd);
+
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(app_ctrl_h);
+               return COMPOSER_RETURN_FAIL;
+       } else {
+               cd->callee_svc_handle = app_ctrl_h;
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+int appsvc_take_camcorder(void *data, void *size)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       int ret = 0;
+       app_control_h app_ctrl_h = NULL;
+       int remain_byte_size = (int)size;
+       int request_KB_size = 0;
+
+       if (remain_byte_size >= MSGC_1KB) {
+               request_KB_size = remain_byte_size / MSGC_1KB;
+       } else {
+               /* TODO: Need to check minimum size for recording */
+               request_KB_size = 1;
+       }
+
+       char recording_size[DEF_BUF_LEN_S + 1] = {0, };
+       snprintf(recording_size, sizeof(recording_size), "%d", request_KB_size);
+       D_MSG("recording_size %s KB", recording_size);
+
+       if (app_control_create(&app_ctrl_h) < 0 || app_ctrl_h == NULL) {
+               D_EMSG("service_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+       app_control_set_window(app_ctrl_h, elm_win_xwindow_get(cd->main_window));
+       app_control_set_operation(app_ctrl_h, APP_CONTROL_OPERATION_CREATE_CONTENT);
+       app_control_set_mime(app_ctrl_h, "video/3gp");
+       app_control_add_extra_data(app_ctrl_h, MSG_BUNDLE_KEY_CALLER, MESSAGE_PKGNAME);
+       app_control_add_extra_data(app_ctrl_h, MSG_BUNDLE_KEY_RESOLUTION, MSG_BUNDLE_VALUE_QCIF);
+       app_control_add_extra_data(app_ctrl_h, MSG_BUNDLE_KEY_LIMIT, recording_size);
+
+       ret = app_control_send_launch_request(app_ctrl_h, __appsvc_camera_result_cb, cd);
+
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(app_ctrl_h);
+               return COMPOSER_RETURN_FAIL;
+       } else {
+               cd->callee_svc_handle = app_ctrl_h;
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+int appsvc_play_music_player(void *data, const char *file_path)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       int ret;
+       app_control_h svc_handle = NULL;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       __appsvc_complete(cd);
+
+       app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_VIEW);
+       app_control_set_uri(svc_handle, file_path);
+       app_control_add_extra_data(svc_handle, "ExitOnBack", "true");
+
+       ret = app_control_send_launch_request(svc_handle, NULL, NULL);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       cd->callee_svc_handle = svc_handle;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+int appsvc_image_viewer(void *data, const char *file_path)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       int ret;
+       app_control_h svc_handle = NULL;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       __appsvc_complete(cd);
+
+       app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_VIEW);
+       app_control_set_uri(svc_handle, file_path);
+       app_control_add_extra_data(svc_handle, "View Mode", "DISPLAY");
+/*     app_control_add_extra_data(svc_handle, "SaveFile", "TRUE"); */
+
+       ret = app_control_send_launch_request(svc_handle, NULL, NULL);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       cd->callee_svc_handle = svc_handle;
+
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+int appsvc_video_player(void *data, const char *file_path)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       int ret;
+       app_control_h svc_handle = NULL;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       __appsvc_complete(cd);
+
+       app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_VIEW);
+       app_control_set_uri(svc_handle, file_path);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_LAUNCH_APPLICATION, MESSAGE_PKGNAME);
+
+       ret = app_control_send_launch_request(svc_handle, NULL, NULL);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       cd->callee_svc_handle = svc_handle;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+static void __appsvc_pick_result_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       char **selected_list = NULL;
+       int list_cnt = 0;
+
+       if (cd->callee_svc_handle) {
+               app_control_destroy(cd->callee_svc_handle);
+               cd->callee_svc_handle = NULL;
+       }
+
+       if (app_control_get_extra_data_array(reply, APP_CONTROL_DATA_PATH, &selected_list, &list_cnt) == APP_CONTROL_ERROR_NONE) {
+               if (selected_list) {
+                       if (list_cnt) {
+                               int i = 0;
+                               for (i = 0; i < list_cnt; i++) {
+                                       if (selected_list[i]) {
+                                               D_SEC_MSG("selected_list[%d] = (%s)", i, selected_list[i]);
+
+                                               cd->attachlist = eina_list_append(cd->attachlist, strdup(selected_list[i]));
+                                               free(selected_list[i]);
+                                       }
+                               }
+                       }
+
+                       free(selected_list);
+               }
+       }
+
+       if (cd->attachlist) {
+               msg_ui_composer_body_items_add(cd);
+       }
+
+       if (cd->is_appsvc_ug_call) {
+               cd->is_appsvc_ug_call = false;
+       }
+       if (cd->loaded_aul) {
+               cd->loaded_aul = FALSE;
+       }
+       msg_ui_composer_reset_view(cd);
+
+       D_LEAVE;
+}
+
+int appsvc_pick_operation(void *data, const char *uri)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, COMPOSER_RETURN_NULL_POINTER, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       int ret = APP_CONTROL_ERROR_NONE;
+       app_control_h svc_handle = NULL;
+
+       __appsvc_complete(cd);
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_PICK);
+       app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+       app_control_add_extra_data(svc_handle, "max-count", "10"); /* When gallery is launched, max count need to set as 0/10. */
+       app_control_set_app_id(svc_handle, "ug-gallery-efl");
+
+       if (strcmp(uri, COMPOSER_PATH_IMAGE) == 0) {
+               app_control_set_mime(svc_handle, COMPOSER_PATH_IMAGE);
+               app_control_add_extra_data(svc_handle, "file-type", "image");
+       } else if (strcmp(uri, COMPOSER_PATH_VIDEO) == 0) {
+               app_control_set_mime(svc_handle, COMPOSER_PATH_VIDEO);
+               app_control_add_extra_data(svc_handle, "file-type", "video");
+       } else {
+               D_EMSG("appsvc_pick_operation() is failed !! check 'uri'");
+        app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (cd->is_replace) {
+               app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_SELECTION_MODE, "single");
+       } else {
+               app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_SELECTION_MODE, "multiple");
+       }
+
+       ret = app_control_send_launch_request(svc_handle, __appsvc_pick_result_cb, data);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       /* svc_handle for pick operation is destroyed in result cb.
+       Because it should be used to kill callee process when callee process is alive but composer is destroyed by app-service */
+       cd->callee_svc_handle = svc_handle;
+
+       /* service_destroy(svc_handle); */
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+int appsvc_launch_app(void *data, const char *uri)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(uri == NULL, COMPOSER_RETURN_FAIL, "uri is NULL");
+       D_MSG_RETVM_IF(data == NULL, COMPOSER_RETURN_FAIL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       int ret;
+
+       app_control_h svc_handle = NULL;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       __appsvc_complete(cd);
+
+       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_VIEW);
+       app_control_set_uri(svc_handle, uri);
+       app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+       ret = app_control_send_launch_request(svc_handle, NULL, NULL);
+
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       cd->callee_svc_handle = svc_handle;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+/* __msg_ui_composer_external_closed() is used like end_cb of ug for appsvc launching case */
+static void __msg_ui_composer_external_closed(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+
+       cd->loaded_aul = FALSE;
+       cd->is_appsvc_ug_call = FALSE;
+       cd->launched_callee_type = COMPOSER_EXT_TYPE_NONE;
+
+       if (cd->attachlist) {
+               cd->is_attachment_added = true;
+               msg_ui_composer_body_items_add(cd);
+       }
+
+       if (cd->is_attachment_added == false) {
+               if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+                       if (cd->is_recipient_focused) {
+                               D_MSG("recipient focused");
+                               if (cd->recipient != NULL) {
+                                       msg_ui_composer_last_focused_entry_set(cd, cd->recipient->entry);
+                               }
+                       }
+               }
+       } else {
+               cd->is_attachment_added = false;
+       }
+
+       D_LEAVE;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_external_ug_call(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_EXT_TYPE_E ext_type, void *reserved)
+{
+       D_ENTER;
+
+       COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+       ui_gadget_h external_ug = NULL;
+
+       switch (ext_type) {
+       case COMPOSER_EXT_TYPE_CALENDAR:
+               external_ug = ug_calendar_create(cd);
+               break;
+
+       case COMPOSER_EXT_TYPE_MEMO:
+               external_ug = ug_memo_create(cd);
+               break;
+
+       case COMPOSER_EXT_TYPE_MSGVIEWER:
+               external_ug = ug_msgviewer_create(cd, reserved);
+               break;
+
+       case COMPOSER_EXT_TYPE_RECENT_PHONEUI:
+               external_ug = ug_recent_phoneui_create(cd, (int)reserved);
+               break;
+
+       case COMPOSER_EXT_TYPE_ADD_TEXT_CONTACT:
+               external_ug = ug_text_contact_list_create(cd);
+               break;
+
+       case COMPOSER_EXT_TYPE_ADD_TEXT_MEMO:
+               external_ug = ug_text_memo_create(cd);
+               break;
+
+       case COMPOSER_EXT_TYPE_ADD_TEXT_CALENDAR:
+               external_ug = ug_text_calendar_create(cd);
+               break;
+
+       default:
+               D_MSG("ERROR ext type = %d!!!!!!!!!!!!", ext_type);
+               ret = COMPOSER_RETURN_FAIL;
+               break;
+       }
+
+       if (external_ug) {
+               cd->loaded_ug = external_ug;
+               /* prevent focus moving to caller ug. it is added for screen reader */
+               elm_object_tree_focus_allow_set(cd->base, EINA_FALSE);
+               elm_object_focus_set(msg_ui_composer_last_focused_entry_get(cd), EINA_FALSE);
+       } else {
+               D_EMSG("unable to launch ug");
+       }
+
+       D_LEAVE;
+       return ret;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_external_appsvc_call(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_EXT_TYPE_E ext_type, void *reserved)
+{
+       D_ENTER;
+
+       COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+
+       switch (ext_type) {
+       case COMPOSER_EXT_TYPE_NAMECARD:
+               ret = appsvc_namecard_create(cd);
+               break;
+
+       case COMPOSER_EXT_TYPE_CONTACT_PHONEUI:
+               ret = appsvc_phoneui_create(cd, (int)reserved);
+               break;
+
+       case COMPOSER_EXT_TYPE_MYFILE_AUDIO:
+               ret = appsvc_myfile_audio_create(cd);
+               break;
+
+       case COMPOSER_EXT_TYPE_CAMERA:
+               ret = appsvc_take_picture(cd);
+               break;
+       case COMPOSER_EXT_TYPE_CAMCORDER:
+               ret = appsvc_take_camcorder(cd, reserved);
+               break;
+       case COMPOSER_EXT_TYPE_SOUND:
+               ret = appsvc_play_music_player(cd, reserved);
+               break;
+
+       case COMPOSER_EXT_TYPE_IMAGE:
+               ret = appsvc_image_viewer(cd, reserved);
+               break;
+
+       case COMPOSER_EXT_TYPE_VIDEO:
+               ret = appsvc_video_player(cd, reserved);
+               break;
+       case COMPOSER_EXT_TYPE_COMMON:
+               ret = appsvc_launch_app(cd, reserved);
+               break;
+
+       case COMPOSER_EXT_TYPE_PICK:
+               ret = appsvc_pick_operation(cd, reserved);
+               break;
+       case COMPOSER_EXT_TYPE_CALENDAR:
+               ret = app_calendar_create(cd);
+               break;
+       case COMPOSER_EXT_TYPE_ADD_TEXT_CALENDAR:
+               ret = app_text_calendar_create(cd);
+               break;
+       case COMPOSER_EXT_TYPE_VIEW_CALENDAR:
+               ret = appsvc_calendar_view(cd, reserved);
+               break;
+       case COMPOSER_EXT_TYPE_VIEW_CONTACT:
+               ret = appsvc_contact_view(cd, reserved);
+               break;
+       case COMPOSER_EXT_TYPE_SETTING:
+               ret = appsvc_setting_view(cd);
+               break;
+       default:
+               D_MSG("ERROR ext type = %d!!!!!!!!!!!!", ext_type);
+               ret = COMPOSER_RETURN_FAIL;
+               break;
+       }
+
+       if (ret != COMPOSER_RETURN_FAIL) {
+               cd->loaded_aul = TRUE;
+       }
+
+       D_LEAVE;
+       return ret;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_external_call(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_EXT_TYPE_E ext_type, void *reserved)
+{
+       D_ENTER;
+
+       COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+       D_MSG("Launch external call type[%d]", ext_type);
+       cd->is_appsvc_ug_call = true;
+
+       msg_ui_composer_unset_view(cd);
+
+       switch (ext_type) {
+       case COMPOSER_EXT_TYPE_MEMO:
+       case COMPOSER_EXT_TYPE_MSGVIEWER:
+       case COMPOSER_EXT_TYPE_RECENT_PHONEUI:
+       case COMPOSER_EXT_TYPE_ADD_TEXT_CONTACT:
+       case COMPOSER_EXT_TYPE_ADD_TEXT_MEMO:
+               ret = msg_ui_composer_external_ug_call(cd, ext_type, reserved);
+               break;
+       case COMPOSER_EXT_TYPE_NAMECARD:
+       case COMPOSER_EXT_TYPE_CONTACT_PHONEUI:
+       case COMPOSER_EXT_TYPE_MYFILE_AUDIO:
+       case COMPOSER_EXT_TYPE_CAMERA:
+       case COMPOSER_EXT_TYPE_CAMCORDER:
+       case COMPOSER_EXT_TYPE_SOUND:
+       case COMPOSER_EXT_TYPE_IMAGE:
+       case COMPOSER_EXT_TYPE_VIDEO:
+       case COMPOSER_EXT_TYPE_ADD_TEXT_CALENDAR:
+       case COMPOSER_EXT_TYPE_CALENDAR:
+       case COMPOSER_EXT_TYPE_VIEW_CALENDAR:
+       case COMPOSER_EXT_TYPE_VIEW_CONTACT:
+       case COMPOSER_EXT_TYPE_COMMON:
+       case COMPOSER_EXT_TYPE_PICK:
+       case COMPOSER_EXT_TYPE_SETTING:
+               ret = msg_ui_composer_external_appsvc_call(cd, ext_type, reserved);
+               if (ret != COMPOSER_RETURN_SUCCESS)
+                       msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE");
+               break;
+
+       default:
+               D_MSG("ERROR ext type = %d!!!!!!!!!!!!", ext_type);
+               ret = COMPOSER_RETURN_FAIL;
+               break;
+       }
+
+       if (ret == COMPOSER_RETURN_FAIL) {
+               cd->is_appsvc_ug_call = false;
+       } else {
+               cd->launched_callee_type = ext_type;
+       }
+
+       D_LEAVE;
+       return ret;
+}
+
diff --git a/composer/src/gadget/msg-ui-composer-gadget.c b/composer/src/gadget/msg-ui-composer-gadget.c
new file mode 100755 (executable)
index 0000000..8753140
--- /dev/null
@@ -0,0 +1,427 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-composer-data.h"
+#include "msg-ui-composer-main.h"
+
+/*Temporarily rolling back the changes for saving the draft, since it is creating
+ *other issues in app pause and resume case */
+#if 0
+#include "msg-ui-composer-body-page.h"
+#endif
+
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-recipient.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-composer-bubble.h"
+
+#include <Ecore_X.h>
+#include <system_info.h>
+
+#ifndef UG_MODULE_API
+#define UG_MODULE_API  __attribute__ ((visibility("default")))
+#endif
+
+int ref_count;
+
+int msg_ui_composer_get_ref_count(void)
+{
+       D_IMSG("ref_count = %d", ref_count);
+       return ref_count;
+}
+
+void msg_ui_composer_increase_ref_count(void)
+{
+       ++ref_count;
+       D_IMSG("ref_count = %d", ref_count);
+}
+
+void msg_ui_composer_decrease_ref_count(void)
+{
+       --ref_count;
+       D_IMSG("ref_count = %d", ref_count);
+
+       if (ref_count < 0)
+               ref_count = 0;
+}
+
+static void *__msg_ui_composer_on_create(ui_gadget_h ug, enum ug_mode mode, app_control_h data, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(ug == NULL, NULL, "ug is NULL");
+       D_MSG_RETVM_IF(priv == NULL, NULL, "priv is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+       int win_w = 0;
+       int win_h = 0;
+
+       bindtextdomain("message", LOCALEDIR);
+
+       cd->ug = ug;
+       cd->main_window = ug_get_window();
+
+       if (cd->main_window == NULL) {
+               D_EMSG("main window is NULL");
+               return NULL;
+       }
+
+       elm_win_screen_size_get(cd->main_window, NULL, NULL, &win_w, &win_h);
+       cd->window_w = win_w;
+       cd->window_h = win_h;
+       D_SEC_MSG("screen width = %d, screen_height = %d", win_w, win_h);
+
+       /* Initializing the variable */
+       cd->forward_not_possible_popup = false;
+
+       bool show_indicator = true;
+       char *indicator = NULL;
+
+       app_control_get_extra_data(data, MSG_BUNDLE_KEY_INDICATOR_MODE, &indicator);
+       if (indicator) {
+               if (g_strcmp0(indicator, MSG_BUNDLE_VALUE_NO_INDICATOR) == 0)
+                       show_indicator = false;
+
+               free(indicator);
+       }
+
+       cd->base = msg_ui_composer_layout_create(cd->main_window, show_indicator);
+       if (cd->base == NULL) {
+               D_EMSG("cd->base is NULL");
+               return NULL;
+       }
+
+       /* Check for the creation mode restrictions if the msg is forward msg
+        * This check is needed because forward msgs can contain restricted attachments */
+       COMPOSER_RETURN_TYPE_E ret = msg_ui_composer_check_creation_mode_for_forward(cd, data);
+       if ((COMPOSER_RETURN_CREATION_RESTRICTED_MODE_FAIL == ret) ||
+               (COMPOSER_RETURN_CREATION_WARINING_MODE_FAIL == ret)) {
+               Evas_Object *popup = msg_ui_composer_forward_not_possible_popup(cd, ret, data);
+
+               if (NULL != popup)
+                       cd->forward_not_possible_popup = true;
+
+               return cd->base;
+       }
+
+       if (msg_ui_composer_process_on_create(cd, data) == false) {
+               if (cd->base) {
+                       evas_object_del(cd->base);
+                       cd->base = NULL;
+               }
+               return NULL;
+       }
+
+       D_LEAVE;
+       return cd->base;
+}
+
+static void __msg_ui_composer_on_start(ui_gadget_h ug, app_control_h data, void *priv)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+
+       if (cd->forward_not_possible_popup == true)
+               return;
+
+       msg_ui_composer_process_on_start(cd, data);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_composer_on_pause(ui_gadget_h ug, app_control_h data, void *priv)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+       D_MSG_RETM_IF(cd == NULL, "Composer data is NULL");
+       D_MSG_RETM_IF(cd->state == COMPOSER_STATE_TYPE_DESTROY, "Composer state is already Destroy");
+
+       cd->state = COMPOSER_STATE_TYPE_PAUSE;
+       /* disconnect volume key handler */
+       msg_ui_composer_disconnect_handler(cd);
+
+       if (cd->bubble_data) {
+               cd->bubble_data->ug_state = BUBBLE_UG_PAUSE;
+
+               if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+                       if (cd->recipient) {
+                               cd->recipient->coming_from = NULL;
+                               cd->recipient->going_to = NULL;
+                       }
+               }
+
+               if (cd->bubble_data->popup) {
+                       if ((cd->bubble_data->popup_type == BUBBLE_POPUP_ADD_TO_CONTACT_SINGLE ||
+                               cd->bubble_data->popup_type == BUBBLE_POPUP_RESEND ||
+                               cd->bubble_data->popup_type == BUBBLE_POPUP_VIEW_MESSAGE_DETAIL ||
+                               cd->bubble_data->popup_type == BUBBLE_POPUP_NOTIFY) ||
+                               (cd->bubble_data->popup_type >= BUBBLE_POPUP_LONGPRESS_MENU_LIST &&
+                               cd->bubble_data->popup_type <= BUBBLE_POPUP_SAVE_ATTACHMENT_LIST)) {
+                               evas_object_del(cd->bubble_data->popup);
+                               cd->bubble_data->popup = NULL;
+                       }
+               }
+/*Temporarily rolling back the changes for saving the draft, since it is creating
+ *other issues in app pause and resume case */
+#if 0
+               else if ((cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) && (cd->loaded_ug == NULL) && (cd->callee_pid == 0)) {
+                       msg_ui_composer_save_temporary_draft_message(cd);
+               }
+#endif
+
+       }
+
+       if (cd->ctx_popup) {
+               evas_object_del(cd->ctx_popup);
+               cd->ctx_popup = NULL;
+       }
+
+       cd->is_service_launching = false;
+
+       D_LEAVE;
+}
+
+static void __msg_ui_composer_on_resume(ui_gadget_h ug, app_control_h data, void *priv)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+       D_MSG_RETM_IF(cd == NULL, "Composer data is NULL");
+       D_MSG_RETM_IF(cd->state == COMPOSER_STATE_TYPE_DESTROY, "Composer state is already Destroy");
+
+       msg_common_sync_local_font_size();
+
+       int index = MSG_APP_FONT_SIZE_INDEX_NORMAL;
+       if (msg_common_get_font_size(&index)) {
+               if (cd->setting_font_size != index) {
+                       cd->setting_font_size = index;
+                       cd->display_font_size = cd->setting_font_size;
+               }
+       }
+
+       if (!cd->loaded_ug && cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               msg_ui_bubble_list_size_change(cd->bubble_data);
+       }
+
+       /* coonect volume key handler */
+       msg_ui_composer_connect_handler(cd);
+
+       cd->state = COMPOSER_STATE_TYPE_RUNNING;
+
+       if (cd->bubble_data) {
+               cd->bubble_data->ug_state = BUBBLE_UG_START;
+
+/*Temporarily rolling back the changes for saving the draft, since it is creating
+ *other issues in app pause and resume case */
+#if 0
+               /* Updating the bubble view */
+               if (cd->loaded_ug == NULL && cd->callee_pid == 0) {
+                       msg_ui_composer_clear(cd);
+                       msg_ui_bubble_list_load(cd->bubble_data, true);
+                       if (cd->bubble_data->popup == NULL) {
+                               msg_ui_composer_body_focus_set(cd, 0);
+                       }
+               }
+#endif
+
+               msg_ui_bubble_list_update_read_status_thread_call(cd->bubble_data);
+
+               if (cd->bubble_data->bubble_style_changed) {
+                       int recv_style = 0;
+                       int sent_style = 0;
+
+                       if (sent_style != cd->bubble_data->sent_bubble_style || recv_style != cd->bubble_data->recv_bubble_style) {
+                               cd->bubble_data->sent_bubble_style = sent_style;
+                               cd->bubble_data->recv_bubble_style = recv_style;
+                               msg_ui_bubble_list_data_update(cd->bubble_data);
+                       }
+
+                       cd->bubble_data->bubble_style_changed = false;
+               }
+
+               if (cd->bubble_data->contact_changed) {
+                       if (cd->bubble_data->ug_state == BUBBLE_UG_START) {
+                               if (cd->bubble_data->viewmode == BUBBLE_NORMAL_VIEW)
+                                       msg_ui_bubble_update_title_name_button(cd->bubble_data);
+                               else if (cd->bubble_data->viewmode == BUBBLE_RECIPIENT_VIEW && cd->bubble_data->recipient_genlist)
+                                       msg_ui_bubble_recipient_list_update(cd->bubble_data);
+                       }
+                       cd->bubble_data->contact_changed = false;
+               }
+       }
+
+       if (cd->recipient)
+               msg_ui_composer_recipient_update(cd->recipient);
+
+       if (cd->loaded_aul || cd->is_appsvc_ug_call) {
+               cd->loaded_aul = FALSE;
+               cd->is_appsvc_ug_call = FALSE;
+       }
+
+
+       D_LEAVE;
+}
+
+static void __msg_ui_composer_on_destroy(ui_gadget_h ug, app_control_h data, void *priv)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+       D_MSG_RETM_IF(cd == NULL, "Composer data is NULL");
+       D_MSG_RETM_IF(cd->state == COMPOSER_STATE_TYPE_DESTROY, "Composer state is already Destroy");
+
+       cd->state = COMPOSER_STATE_TYPE_DESTROY;
+       cd->isclosed = true;
+
+       D_IMSG("[UG MODE = %d] [0:FULL_COMPOSER, 1:BUBBLE_COMPOSER, 2:ONLY_COMPOSER]", cd->msg_ug_mode);
+       D_IMSG("[Composer Mode = %d] [0:MODE_NORMAL, 1:MODE_EDIT, 2:MODE_FORWARD, 3:MODE_ADD_RECIPIENT]", cd->composer_mode);
+
+       if (false == cd->forward_not_possible_popup) {
+               msg_ui_composer_destroy(cd);
+       } else {
+               /* Incase of creation mode failure popup we will create only base layout
+                * and popup which will be added to the list of popup widget
+                * So destroying only those two widgets. */
+               D_PRINT("===== Delete Popup  =====");
+               msg_ui_composer_popup_delete_all(cd);
+
+               if (NULL != cd->caller_svc_handle) {
+                       app_control_destroy(cd->caller_svc_handle);
+                       cd->caller_svc_handle = NULL;
+               }
+
+               if (cd->base) {
+                       D_PRINT("===== Delete base layout =====");
+                       evas_object_del(cd->base);
+                       cd->base = NULL;
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_composer_on_message(ui_gadget_h ug, app_control_h msg, app_control_h data, void *priv)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+
+       if (msg)
+               msg_ui_composer_process_message(cd, msg);
+
+       D_LEAVE;
+}
+
+
+static void __msg_ui_composer_on_event(ui_gadget_h ug, enum ug_event event, app_control_h data, void *priv)
+{
+       D_ENTER;
+
+       switch (event) {
+       case UG_EVENT_REGION_CHANGE:
+               msg_ui_composer_change_region(priv);
+               break;
+       case UG_EVENT_LOW_MEMORY:
+               break;
+       case UG_EVENT_LOW_BATTERY:
+               break;
+       case UG_EVENT_LANG_CHANGE:
+               msg_ui_composer_change_language(priv);
+               break;
+       case UG_EVENT_ROTATE_PORTRAIT:
+               msg_ui_composer_rotate(priv, COMPOSER_ROTATE_PORTRAIT);
+               break;
+       case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
+               msg_ui_composer_rotate(priv, COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN);
+               break;
+       case UG_EVENT_ROTATE_LANDSCAPE:
+               msg_ui_composer_rotate(priv, COMPOSER_ROTATE_LANDSCAPE);
+               break;
+       case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+               msg_ui_composer_rotate(priv, COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN);
+               break;
+       default:
+               break;
+       }
+
+       D_LEAVE;
+}
+
+UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       D_IMSG("[ENTER]");
+
+       if (ops == NULL) {
+               D_EMSG("[ERROR] OPS is null");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       msg_common_init_default_preference();
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = NULL;
+       cd = (MSG_COMPOSER_VIEW_DATA_S *)calloc(1, sizeof(MSG_COMPOSER_VIEW_DATA_S));
+
+       if (!cd) {
+               D_EMSG("[ERROR] cd calloc failed");
+               return COMPOSER_RETURN_FAIL;
+       }
+       ops->create = __msg_ui_composer_on_create;
+       ops->start = __msg_ui_composer_on_start;
+       ops->pause = __msg_ui_composer_on_pause;
+       ops->resume = __msg_ui_composer_on_resume;
+       ops->destroy = __msg_ui_composer_on_destroy;
+       ops->message = __msg_ui_composer_on_message;
+       ops->event = __msg_ui_composer_on_event;
+       ops->key_event = NULL;
+       ops->priv = (void *)cd;
+       ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+       D_IMSG("[LEAVE]");
+
+       return MSG_UI_RET_SUCCESS;
+}
+
+UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       if (ops == NULL) {
+               D_EMSG("[ERROR] OPS is null");
+               return;
+       }
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)ops->priv;
+
+       if (cd) {
+               if (cd->caller_svc_handle) {
+                       app_control_h result_handle = NULL;
+                       if (app_control_create(&result_handle) < 0 || result_handle == NULL) {
+                               D_EMSG("app_control_create() is failed !!");
+                       } else {
+                               D_MSG("send result to caller");
+                               app_control_reply_to_launch_request(result_handle, cd->caller_svc_handle, APP_CONTROL_RESULT_SUCCEEDED);
+                               app_control_destroy(result_handle);
+                       }
+
+                       app_control_destroy(cd->caller_svc_handle);
+               } else {
+                               D_EMSG("caller_svc_handle is NULL");
+               }
+
+               free(cd);
+               ops->priv = NULL;
+       }
+
+       D_IMSG("[LEAVE]");
+}
diff --git a/composer/src/message/msg-ui-composer-message.c b/composer/src/message/msg-ui-composer-message.c
new file mode 100755 (executable)
index 0000000..57162e5
--- /dev/null
@@ -0,0 +1,1719 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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-subject.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-body.h"
+#include "msg-ui-composer-message.h"
+#include "msg-ui-composer-message-data.h"
+#include "msg-ui-composer-attachment.h"
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-recipient.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-content-utility.h"
+#include "msg-ui-composer-body-callback.h"
+#include "msg-file-util.h"
+
+#include <glib-object.h>
+#include <glib.h>
+
+/* defines */
+#define MSG_COMPOSER_SMIL_SCREEN_WIDTH 480
+#define MSG_COMPOSER_SMIL_SCREEN_HEIGHT        800
+
+#define MSG_COMPOSER_SMIL_POS_TOP              1
+#define MSG_COMPOSER_SMIL_POS_BOTTOM   50
+#define MSG_COMPOSER_SMIL_POS_LEFT             0
+
+#define MSG_COMPOSER_SMIL_REGION_WIDTH         100
+#define MSG_COMPOSER_SMIL_REGION_HEIGHT 50
+
+#define MSG_COMPOSER_SMIL_DEFAULT_BGCOLOR 0xFF000000
+#define MSG_COMPOSER_SMIL_DEFAULT_FONT_COLOR 0xFFFFFFFF
+#define MSG_COMPOSER_SMIL_DEFAULT_FONT_SIZE 30
+#define MSG_COMPOSER_SMIL_DEFAULT_BOLD false
+#define MSG_COMPOSER_SMIL_DEFAULT_UNDERLINE false
+
+
+/* globals */
+static MSG_COMP_MSG_DATA_S *msg_data = NULL;
+
+/* function defines*/
+/****************************************************
+ *
+ *     UI HANDLING
+ *
+ *****************************************************/
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_init()
+{
+       D_ENTER;
+
+       if (msg_data != NULL) {
+               free(msg_data);
+               msg_data = NULL;
+       }
+
+       msg_data = (MSG_COMP_MSG_DATA_S *)calloc(1, sizeof(MSG_COMP_MSG_DATA_S));
+
+       if (msg_data == NULL) {
+               D_EMSG("msg_data calloc error");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       memset(msg_data, 0x00, sizeof(MSG_COMP_MSG_DATA_S));
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_destroy()
+{
+       D_ENTER;
+
+       if (msg_data == NULL) {
+               D_IMSG("msg_data is already NULL");
+               return COMPOSER_RETURN_FAIL;
+       }
+       /* free recipient data */
+       if (msg_data->recp_list != NULL) {
+               g_slist_foreach(msg_data->recp_list, (GFunc) free, NULL);
+               g_slist_free(msg_data->recp_list);
+               msg_data->recp_list = NULL;
+       }
+       /* free sms data. */
+       if (msg_data->sms_data.body_text != NULL) {
+               free(msg_data->sms_data.body_text);
+               msg_data->sms_data.body_text = NULL;
+       }
+
+       free(msg_data);
+       msg_data = NULL;
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_add_address(char *number)
+{
+       D_ENTER;
+
+       if (number == NULL) {
+               D_EMSG("number is NULL !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       char *address = strdup(number);
+       msg_data->recp_list = g_slist_append(msg_data->recp_list, (void *)address);
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+GSList *msg_ui_composer_message_get_address(void)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(msg_data == NULL, NULL, "msg_data is NULL. need to init");
+
+       return msg_data->recp_list;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_msg_type(COMPOSER_MSG_TYPE_E msg_type)
+{
+       if (!msg_data) {
+               D_EMSG("msg_data is NULL. need to init");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       msg_data->msg_type = msg_type;
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_sms_body(char *body_text)
+{
+       if (body_text == NULL) {
+               D_EMSG("body_text is NULL !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       msg_data->sms_data.body_text = strdup(body_text);
+       msg_data->sms_data.body_length = strlen(body_text);
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_subject(char *subject, int length)
+{
+       D_ENTER;
+       if (msg_data == NULL || subject == NULL) {
+               D_EMSG("message data is NULL or no subject");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (subject && length > 0)
+               msg_data->mms_data.isSubject = true;
+
+       if (length <= sizeof(msg_data->mms_data.subject))
+               strncpy(msg_data->mms_data.subject, subject, length);
+       else
+               strncpy(msg_data->mms_data.subject, subject, sizeof(msg_data->mms_data.subject)-1);
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_attach_count(int attach_count)
+{
+       D_ENTER;
+
+       if (!msg_data) {
+               D_EMSG("msg_data is NULL");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       MSG_COMP_MMS_DATA_S *mms_data = &msg_data->mms_data;
+
+       mms_data->attach_count = attach_count;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_add_attachments(const char *filepath, int filetype)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(msg_file_exists(filepath) == EINA_FALSE, COMPOSER_RETURN_FAIL, "File is NOT exist");
+
+       if (!msg_data) {
+               D_EMSG("msg_data is NULL");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       MSG_COMP_MMS_DATA_S *mms_data = &msg_data->mms_data;
+       int attach_count = mms_data->attach_count;
+
+       int i = 0;
+       for (i = 0; i < attach_count; i++) {
+               if (strlen(mms_data->attachlist[i].filepath) <= 0) {
+                       mms_data->attachlist[i].filetype = filetype;
+                       eina_strlcpy(mms_data->attachlist[i].filepath, filepath, sizeof(mms_data->attachlist[i].filepath));
+                       D_SEC_MSG("attachment file path : [%s]", mms_data->attachlist[i].filepath);
+                       break;
+               }
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_page_count(int page_count)
+{
+       D_ENTER;
+
+       if (!msg_data) {
+               D_EMSG("message data is not exist");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       msg_data->mms_data.page_count = page_count;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_is_text_top(bool isTextTop)
+{
+       D_ENTER;
+
+       if (!msg_data) {
+               D_EMSG("message data is not exist");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       msg_data->mms_data.isTextTop = isTextTop;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_mms_set_text(const char *text, int nPage)
+{
+       D_ENTER;
+
+       if (!msg_data) {
+               D_EMSG("message data is not exist !!");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       MSG_COMP_MMS_DATA_S *mms_data = &msg_data->mms_data;
+       int text_len = 0;
+
+       if (text)
+               text_len = strlen(text);
+
+       if (text && text_len > 0) {
+               mms_data->pagelist[nPage].isText = true;
+
+               if (text_len <= COMPOSER_MMS_TEXT_MAX_BYTE)
+                       strncpy(mms_data->pagelist[nPage].body_text, text, text_len);
+               else
+                       strncpy(mms_data->pagelist[nPage].body_text, text, COMPOSER_MMS_TEXT_MAX_BYTE);
+       } else {
+               D_MSG("no text");
+               mms_data->pagelist[nPage].isText = false;
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_mms_set_page_duration(int nPage, int duration)
+{
+       D_ENTER;
+
+       if (!msg_data) {
+               D_EMSG("message data is NOT exist");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       if (nPage >= COMPOSER_MMS_MAX_PAGE) {
+               D_EMSG("Invalid nPage index");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       MSG_COMP_MMS_DATA_S *mms_data = &msg_data->mms_data;
+
+       if (duration > COMPOSER_PAGE_DEFAULT_DURATION)
+               mms_data->pagelist[nPage].page_duration = duration;
+
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_mms_set_media(const char *file_path, COMPOSER_MEDIA_TYPE_E media_type, int nPage)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(file_path == NULL, COMPOSER_RETURN_FAIL, "file_path is NULL");
+       D_MSG_RETVM_IF(strlen(file_path) > COMPOSER_FILEPATH_LEN_MAX,
+                       COMPOSER_RETURN_FAIL, "file_path is too long");
+
+       D_MSG_RETVM_IF(msg_file_exists(file_path) == EINA_FALSE, COMPOSER_RETURN_FAIL, "File is NOT exist");
+
+       if (!msg_data) {
+               D_EMSG("message data is NOT exist");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       MSG_COMP_MMS_DATA_S *mms_data = &msg_data->mms_data;
+
+       switch (media_type) {
+       case COMPOSER_MEDIA_TYPE_IMAGE:
+               mms_data->pagelist[nPage].isImage = true;
+               strncpy(mms_data->pagelist[nPage].image_file_path, file_path, strlen(file_path));
+               break;
+
+       case COMPOSER_MEDIA_TYPE_VIDEO:
+               mms_data->pagelist[nPage].isVideo = true;
+               eina_strlcpy(mms_data->pagelist[nPage].image_file_path, file_path, sizeof(mms_data->pagelist[nPage].image_file_path));
+               break;
+
+       case COMPOSER_MEDIA_TYPE_AUDIO:
+               mms_data->pagelist[nPage].isSound = true;
+               strncpy(mms_data->pagelist[nPage].sound_file_path, file_path, strlen(file_path));
+               break;
+
+       default:
+               D_WMSG("invalid media type");
+               return COMPOSER_RETURN_INVALID_MEDIA_TYPE;
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+/*****************************************************
+ *
+ *      Framework message Handling
+ *
+ *******************************************************/
+
+static COMPOSER_RETURN_TYPE_E __msg_ui_composer_set_recipient()
+{
+       D_ENTER;
+
+       if (msg_data == NULL || msg_data->msgInfo == NULL) {
+               D_EMSG("msgInfo is NULL !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       int count = g_slist_length(msg_data->recp_list);
+       int i = 0;
+
+       for (i = 0; i < count; i++) {
+               char *address = (char *)g_slist_nth_data(msg_data->recp_list, i);
+               if (address == NULL) {
+                       D_IMSG("address is value NULL, skip");
+                       continue;
+               }
+
+               msg_struct_t tmpAddr = NULL;
+               if (msg_list_add_item(msg_data->msgInfo, MSG_MESSAGE_ADDR_LIST_HND, &tmpAddr) == MSG_SUCCESS) {
+                       int addr_type = get_address_type((const char *)address);
+
+                       if (addr_type == COMPOSER_UTIL_ADDRTYPE_NUMBER)
+                               msg_set_int_value(tmpAddr, MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_PLMN);
+                       else if (addr_type == COMPOSER_UTIL_ADDRTYPE_EMAIL)
+                               msg_set_int_value(tmpAddr, MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_EMAIL);
+
+                       msg_set_int_value(tmpAddr, MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO);
+                       msg_set_str_value(tmpAddr, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, address, strlen(address));
+               }
+       }
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_create_new_message()
+{
+       D_ENTER;
+
+       if (msg_data->msgInfo != NULL) {
+               msg_release_struct(&msg_data->msgInfo);
+               msg_data->msgInfo = NULL;
+       }
+
+       msg_data->msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+
+       if (msg_data->msgInfo == NULL) {
+               D_EMSG("msg_create_struct failed");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_release_message()
+{
+       D_ENTER;
+
+       if (msg_data->msgInfo == NULL) {
+               D_EMSG("msgInfo is already destroyed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (msg_release_struct(&msg_data->msgInfo) != MSG_SUCCESS) {
+               D_EMSG("msgInfo is already destroyed !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+#if _MSG_FEATURE_DSDS_ENABLED
+static COMPOSER_RETURN_TYPE_E __msg_ui_composer_make_sms_message(msg_handle_t msg_handle, int msg_id, int encode_type, int sim_number)
+#else
+static COMPOSER_RETURN_TYPE_E __msg_ui_composer_make_sms_message(msg_handle_t msg_handle, int msg_id, int encode_type)
+#endif
+{
+       D_ENTER;
+
+       if (msg_data == NULL || msg_data->msgInfo == NULL) {
+               D_EMSG("msgInfo is NULL !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       int err = MSG_SUCCESS;
+
+       /* set msgid */
+       if (msg_id) {
+               D_MSG("msg_id = %d", msg_id);
+               if (msg_set_int_value(msg_data->msgInfo, MSG_MESSAGE_ID_INT, msg_id) != MSG_SUCCESS) {
+                       D_EMSG("set msgId error");
+               }
+       }
+
+       /* set message type to SMS */
+       if (msg_set_int_value(msg_data->msgInfo, MSG_MESSAGE_TYPE_INT, MSG_TYPE_SMS) != MSG_SUCCESS) {
+               D_EMSG("MSG_MESSAGE_TYPE_INT set error !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       /* set encode type to SMS */
+       if (encode_type != MSGC_INVALID_TYPE) {
+               D_MSG("encode_type = %d", encode_type);
+               if (msg_set_int_value(msg_data->msgInfo, MSG_MESSAGE_ENCODE_TYPE_INT, encode_type) != MSG_SUCCESS) {
+                       D_EMSG("MSG_MESSAGE_ENCODE_TYPE_INT set error!!");
+                       return COMPOSER_RETURN_FAIL;
+               }
+       }
+#if _MSG_FEATURE_DSDS_ENABLED
+       /* set sim number */
+       D_MSG("MESSAGE_SIM_INDEX: %d", sim_number);
+       if (msg_set_int_value(msg_data->msgInfo, MSG_MESSAGE_SIM_INDEX_INT, sim_number) != MSG_SUCCESS) {
+               D_EMSG("MSG_MESSAGE_SIM_INDEX_INT set error!!");
+               return COMPOSER_RETURN_FAIL;
+       }
+#endif
+       /* set message body text */
+       if (msg_data->sms_data.body_text)
+               err = msg_set_str_value(msg_data->msgInfo, MSG_MESSAGE_SMS_DATA_STR, msg_data->sms_data.body_text, strlen(msg_data->sms_data.body_text));
+
+       if (err != MSG_SUCCESS) {
+               D_EMSG("MSG_MESSAGE_SMS_DATA_STR set error !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+       /* set recipient */
+       if (__msg_ui_composer_set_recipient() != COMPOSER_RETURN_SUCCESS) {
+               D_EMSG("__msg_ui_composer_set_recipient error !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+static COMPOSER_RETURN_TYPE_E __msg_ui_composer_make_smil_header(msg_handle_t msg_handle, msg_struct_t mms_data, bool isTextTop)
+{
+       D_ENTER;
+
+       if (!mms_data) {
+               D_EMSG("msg_data is NULL");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       msg_struct_t text_region = NULL;
+       msg_struct_t image_region = NULL;
+
+       /************  make rootlayout ***************/
+       msg_set_int_value(mms_data, MSG_MMS_ROOTLAYOUT_WIDTH_INT, MSG_COMPOSER_SMIL_SCREEN_WIDTH);
+       msg_set_int_value(mms_data, MSG_MMS_ROOTLAYOUT_HEIGHT_INT, MSG_COMPOSER_SMIL_SCREEN_HEIGHT);
+       msg_set_int_value(mms_data, MSG_MMS_ROOTLAYOUT_BGCOLOR_INT, MSG_COMPOSER_SMIL_DEFAULT_BGCOLOR);
+
+       /************ make region ********************/
+       /* 1. add text region */
+       msg_list_add_item(mms_data, MSG_STRUCT_MMS_REGION, &text_region);
+       msg_set_str_value(text_region, MSG_MMS_REGION_ID_STR, "Text", strlen("Text"));
+       msg_set_int_value(text_region, MSG_MMS_REGION_LENGTH_LEFT_INT, MSG_COMPOSER_SMIL_POS_LEFT);
+       msg_set_bool_value(text_region, MSG_MMS_REGION_LENGTH_LEFT_PERCENT_BOOL, true);
+
+       if (isTextTop)
+               msg_set_int_value(text_region, MSG_MMS_REGION_LENGTH_TOP_INT, MSG_COMPOSER_SMIL_POS_TOP);
+       else
+               msg_set_int_value(text_region, MSG_MMS_REGION_LENGTH_TOP_INT, MSG_COMPOSER_SMIL_POS_BOTTOM);
+       msg_set_bool_value(text_region, MSG_MMS_REGION_LENGTH_TOP_PERCENT_BOOL, true);
+
+       msg_set_int_value(text_region, MSG_MMS_REGION_LENGTH_WIDTH_INT, MSG_COMPOSER_SMIL_REGION_WIDTH);
+       msg_set_bool_value(text_region, MSG_MMS_REGION_LENGTH_WIDTH_PERCENT_BOOL, true);
+
+       msg_set_int_value(text_region, MSG_MMS_REGION_LENGTH_HEIGHT_INT, MSG_COMPOSER_SMIL_REGION_HEIGHT);
+       msg_set_bool_value(text_region, MSG_MMS_REGION_LENGTH_HEIGHT_PERCENT_BOOL, true);
+
+       msg_set_int_value(text_region, MSG_MMS_REGION_BGCOLOR_INT, MSG_COMPOSER_SMIL_DEFAULT_BGCOLOR);
+
+       /* 2. image(video) region */
+       msg_list_add_item(mms_data, MSG_STRUCT_MMS_REGION, &image_region);
+       msg_set_str_value(image_region, MSG_MMS_REGION_ID_STR, "Image", strlen("Image"));
+       msg_set_int_value(image_region, MSG_MMS_REGION_LENGTH_LEFT_INT, MSG_COMPOSER_SMIL_POS_LEFT);
+       msg_set_bool_value(image_region, MSG_MMS_REGION_LENGTH_LEFT_PERCENT_BOOL, true);
+
+       if (isTextTop)
+               msg_set_int_value(image_region, MSG_MMS_REGION_LENGTH_TOP_INT, MSG_COMPOSER_SMIL_POS_BOTTOM);
+       else
+               msg_set_int_value(image_region, MSG_MMS_REGION_LENGTH_TOP_INT, MSG_COMPOSER_SMIL_POS_TOP);
+       msg_set_bool_value(image_region, MSG_MMS_REGION_LENGTH_TOP_PERCENT_BOOL, true);
+
+       msg_set_int_value(image_region, MSG_MMS_REGION_LENGTH_WIDTH_INT, MSG_COMPOSER_SMIL_REGION_WIDTH);
+       msg_set_bool_value(image_region, MSG_MMS_REGION_LENGTH_WIDTH_PERCENT_BOOL, true);
+
+       msg_set_int_value(image_region, MSG_MMS_REGION_LENGTH_HEIGHT_INT, MSG_COMPOSER_SMIL_REGION_HEIGHT);
+       msg_set_bool_value(image_region, MSG_MMS_REGION_LENGTH_HEIGHT_PERCENT_BOOL, true);
+
+       msg_set_int_value(image_region, MSG_MMS_REGION_BGCOLOR_INT, MSG_COMPOSER_SMIL_DEFAULT_BGCOLOR);
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+static COMPOSER_RETURN_TYPE_E __msg_ui_composer_make_mms_body(msg_handle_t msg_handle, msg_struct_t fw_mms_data)
+{
+       D_ENTER;
+
+       if (!msg_data || !fw_mms_data) {
+               D_EMSG("message data or FW mms data pointer is NULL");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       MSG_COMP_MMS_DATA_S *ui_mms_data = &msg_data->mms_data;
+       int page_count = ui_mms_data->page_count;
+       int i = 0;
+
+       for (i = 0; i < page_count; i++) {
+               msg_struct_t page_info = NULL;
+               int page_duration = 0;
+
+               /* verify page duration */
+               if (COMPOSER_PAGE_DEFAULT_DURATION < ui_mms_data->pagelist[i].page_duration)
+                       page_duration = ui_mms_data->pagelist[i].page_duration;
+               else
+                       page_duration = COMPOSER_PAGE_DEFAULT_DURATION;
+
+               D_MSG("%dth page's page duration = %d", i + 1, page_duration);
+               page_duration = page_duration * 1000;
+
+               /* 1. make page */
+               if (msg_list_add_item(fw_mms_data, MSG_STRUCT_MMS_PAGE, &page_info) != MSG_SUCCESS) {
+                       D_EMSG("create mms page error");
+                       return COMPOSER_RETURN_FAIL;
+               }
+
+               msg_set_int_value(page_info, MSG_MMS_PAGE_PAGE_DURATION_INT, page_duration);
+
+               /* 2. add media */
+               /* 1) text */
+               if (ui_mms_data->pagelist[i].isText) {
+                       FILE *fp;
+                       char szFilePath[DEF_BUF_LEN_L] = { 0x00, };
+                       char szFileName[DEF_BUF_LEN_L] = { 0x00, };
+                       char strMsg[COMPOSER_MMS_TEXT_MAX_BYTE + 1] = { 0x00, };
+                       msg_struct_t added_media = NULL;
+                       msg_struct_t text_style = NULL;
+
+                       /* create txt file */
+                       snprintf(szFilePath, sizeof(szFilePath), "%s/MMS_Temp_%d.txt", MSGC_UI_DATA_PATH, i + 1);
+                       snprintf(szFileName, sizeof(szFileName), "MMS_Temp_%d.txt", i + 1);
+
+                       fp = fopen(szFilePath, "wb");
+                       if (!fp) {
+                               D_SEC_EMSG("fopen error: %s %s", szFilePath, strerror(errno));
+                       } else {
+                               strncpy(strMsg, ui_mms_data->pagelist[i].body_text, sizeof(strMsg) - 1);
+                               fwrite(strMsg, strlen(strMsg), 1, fp);
+                               fclose(fp);
+
+                               msg_list_add_item(page_info, MSG_STRUCT_MMS_MEDIA, &added_media);
+                               msg_set_int_value(added_media, MSG_MMS_MEDIA_TYPE_INT, MMS_SMIL_MEDIA_TEXT);
+                               msg_set_str_value(added_media, MSG_MMS_MEDIA_REGION_ID_STR, "Text", strlen("Text"));
+                               msg_set_str_value(added_media, MSG_MMS_MEDIA_FILEPATH_STR, szFilePath, strlen(szFilePath));
+                               msg_set_str_value(added_media, MSG_MMS_MEDIA_CONTENT_TYPE_STR, "text/plain", strlen("text/plain"));
+
+                               /* set font style */
+                               text_style = msg_create_struct(MSG_STRUCT_MMS_SMIL_TEXT);
+                               msg_set_int_value(text_style, MSG_MMS_SMIL_TEXT_COLOR_INT, MSG_COMPOSER_SMIL_DEFAULT_FONT_COLOR);
+                               msg_set_int_value(text_style, MSG_MMS_SMIL_TEXT_SIZE_INT, MSG_COMPOSER_SMIL_DEFAULT_FONT_SIZE);
+                               msg_set_int_value(text_style, MSG_MMS_SMIL_TEXT_BOLD_BOOL, MSG_COMPOSER_SMIL_DEFAULT_BOLD);
+                               msg_set_int_value(text_style, MSG_MMS_SMIL_TEXT_BOLD_BOOL, MSG_COMPOSER_SMIL_DEFAULT_UNDERLINE);
+
+                               msg_set_struct_handle(added_media, MSG_MMS_MEDIA_SMIL_TEXT_HND, text_style);
+                               msg_release_struct(&text_style);
+                       }
+               }
+
+               /* 2) image / video */
+               if (ui_mms_data->pagelist[i].isImage) {
+                       D_MSG("image file added");
+                       msg_struct_t added_media = NULL;
+                       char *filepath = ui_mms_data->pagelist[i].image_file_path;
+
+                       msg_list_add_item(page_info, MSG_STRUCT_MMS_MEDIA, &added_media);
+                       msg_set_int_value(added_media, MSG_MMS_MEDIA_TYPE_INT, MMS_SMIL_MEDIA_IMG);
+                       msg_set_str_value(added_media, MSG_MMS_MEDIA_REGION_ID_STR, "Image", strlen("Image"));
+                       msg_set_str_value(added_media, MSG_MMS_MEDIA_FILEPATH_STR, filepath, strlen(filepath));
+               } else if (ui_mms_data->pagelist[i].isVideo) {
+                       D_MSG("video file added");
+                       msg_struct_t added_media = NULL;
+                       char *filepath = ui_mms_data->pagelist[i].image_file_path;
+
+                       msg_list_add_item(page_info, MSG_STRUCT_MMS_MEDIA, &added_media);
+                       msg_set_int_value(added_media, MSG_MMS_MEDIA_TYPE_INT, MMS_SMIL_MEDIA_VIDEO);
+                       msg_set_str_value(added_media, MSG_MMS_MEDIA_REGION_ID_STR, "Image", strlen("Image"));
+                       msg_set_str_value(added_media, MSG_MMS_MEDIA_FILEPATH_STR, filepath, strlen(filepath));
+               }
+               /* 3) sound */
+               if (ui_mms_data->pagelist[i].isSound) {
+                       D_MSG("sound file added");
+                       msg_struct_t added_media = NULL;
+                       char *filepath = ui_mms_data->pagelist[i].sound_file_path;
+
+                       msg_list_add_item(page_info, MSG_STRUCT_MMS_MEDIA, &added_media);
+                       msg_set_int_value(added_media, MSG_MMS_MEDIA_TYPE_INT, MMS_SMIL_MEDIA_AUDIO);
+                       msg_set_str_value(added_media, MSG_MMS_MEDIA_FILEPATH_STR, filepath, strlen(filepath));
+               }
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+#if _MSG_FEATURE_DSDS_ENABLED
+static COMPOSER_RETURN_TYPE_E __msg_ui_composer_make_mms_message(msg_handle_t msg_handle, int msg_id, int sim_number)
+#else
+static COMPOSER_RETURN_TYPE_E __msg_ui_composer_make_mms_message(msg_handle_t msg_handle, int msg_id)
+#endif
+{
+       D_ENTER;
+
+       msg_struct_t fw_mms_data = NULL;
+       MSG_COMP_MMS_DATA_S ui_mms_data = { 0, };
+
+       if (msg_data == NULL || msg_data->msgInfo == NULL) {
+               D_EMSG("msg_data is NULL !! ");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       ui_mms_data = msg_data->mms_data;
+
+       /* set msgid */
+       if (msg_id) {
+               D_MSG("msg_id = %d", msg_id);
+               if (msg_set_int_value(msg_data->msgInfo, MSG_MESSAGE_ID_INT, msg_id) != MSG_SUCCESS) {
+                       D_EMSG("set msgId error");
+               }
+       }
+
+       /* set msg type to MMS */
+       if (msg_set_int_value(msg_data->msgInfo, MSG_MESSAGE_TYPE_INT, MSG_TYPE_MMS) != MSG_SUCCESS) {
+               D_EMSG("set message type[MMS] error");
+               return COMPOSER_RETURN_FAIL;
+       }
+#if _MSG_FEATURE_DSDS_ENABLED
+       /* set sim number */
+       D_MSG("MESSAGE_SIM_INDEX: %d", sim_number);
+       if (msg_set_int_value(msg_data->msgInfo, MSG_MESSAGE_SIM_INDEX_INT, sim_number) != MSG_SUCCESS) {
+               D_EMSG("MSG_MESSAGE_SIM_INDEX_INT set error!!");
+               return COMPOSER_RETURN_FAIL;
+       }
+#endif
+       /* create mms data */
+       fw_mms_data = msg_create_struct(MSG_STRUCT_MMS);
+       if (fw_mms_data == NULL) {
+               D_EMSG("create mms message error!!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       /* create smil header <rootlayout> <region> */
+       if (__msg_ui_composer_make_smil_header(msg_handle, fw_mms_data, ui_mms_data.isTextTop) != COMPOSER_RETURN_SUCCESS) {
+               D_EMSG("smil header create error");
+               msg_release_struct(&fw_mms_data);
+               return COMPOSER_RETURN_FAIL;
+       }
+       /* set subject */
+       int subject_len = strlen(ui_mms_data.subject);
+       if (ui_mms_data.isSubject == true || subject_len > 0) {
+               D_MSG("Set subject ");
+               if (msg_set_str_value(msg_data->msgInfo, MSG_MESSAGE_SUBJECT_STR, ui_mms_data.subject, subject_len) != MSG_SUCCESS)
+                       D_EMSG("mms set subject error ");
+       }
+       /* set attachment */
+       if (ui_mms_data.attach_count > 0) {
+               int i = 0;
+               D_MSG("ui_mms_data.attach_count = %d", ui_mms_data.attach_count);
+
+               if (ui_mms_data.attach_count > COMPOSER_MMS_MAX_ATTACH_COUNT) {
+                       D_IMSG("attachment count error, max count change");
+                       ui_mms_data.attach_count = COMPOSER_MMS_MAX_ATTACH_COUNT;
+               }
+
+               for (i = 0; i < ui_mms_data.attach_count; i++) {
+                       MSG_COMP_ATTACH_DATA_S *attach_data = &ui_mms_data.attachlist[i];
+                       if (attach_data == NULL) {
+                               D_WMSG("attachment data is NULL");
+                               break;
+                       }
+                       msg_struct_t attachment = NULL;
+                       msg_list_add_item(fw_mms_data, MSG_STRUCT_MMS_ATTACH, &attachment);
+                       msg_set_str_value(attachment, MSG_MMS_ATTACH_FILEPATH_STR, attach_data->filepath, strlen(attach_data->filepath));
+               }
+       }
+       /* make body */
+       /* 1) make page */
+       __msg_ui_composer_make_mms_body(msg_handle, fw_mms_data);
+
+       /* 2) set MMS body */
+       msg_set_mms_struct(msg_data->msgInfo, fw_mms_data);
+       msg_release_struct(&fw_mms_data);
+
+       /* set recipient */
+       if (__msg_ui_composer_set_recipient() != COMPOSER_RETURN_SUCCESS) {
+               D_EMSG("__msg_ui_composer_set_recipient error !!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+#endif
+
+static COMPOSER_RETURN_TYPE_E __msg_ui_composer_send(msg_handle_t msg_handle)
+{
+       D_ENTER;
+
+       if (msg_data == NULL || msg_data->msgInfo == NULL) {
+               D_EMSG("message is not initialized");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       msg_struct_t req = msg_create_struct(MSG_STRUCT_REQUEST_INFO);
+       int msg_type = MSG_TYPE_INVALID;
+       int err;
+
+       msg_struct_t sendOpt = NULL;
+       msg_get_struct_handle(req, MSG_REQUEST_SENDOPT_HND, &sendOpt);
+
+/*#ifdef MSG_SETTINGS_DELIVERY_READ_REPORT_REQUESTED */
+       msg_set_bool_value(sendOpt, MSG_SEND_OPT_SETTING_BOOL, false);/*sending options will be taken from message app setting*/
+/*#else
+ *     msg_set_bool_value(sendOpt, MSG_SEND_OPT_SETTING_BOOL, true);//take default values for read & delivery reports from msg-service, which is 0.
+ *#endif */
+
+       msg_set_struct_handle(req, MSG_REQUEST_MESSAGE_HND, msg_data->msgInfo);
+       msg_get_int_value(msg_data->msgInfo, MSG_MESSAGE_TYPE_INT, &msg_type);
+
+       if (msg_is_sms(msg_type)) {
+               D_MSG("try to send sms");
+               err = msg_sms_send_message(msg_handle, req);
+       } else if (msg_is_mms(msg_type)) {
+               D_MSG("try to send mms");
+               err = msg_mms_send_message(msg_handle, req);
+       } else {
+               D_EMSG("error message type");
+               msg_release_struct(&req);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       msg_release_struct(&req);
+
+       if (err == MSG_SUCCESS) {
+               D_IMSG("sending success");
+               return COMPOSER_RETURN_SUCCESS;
+       } else if (err == MSG_ERR_INVALID_PARAMETER) {
+               D_EMSG("sending failed error code [%d] : INVALID_PARAM ", err);
+               return COMPOSER_RETURN_NULL_POINTER;
+       } else if (err == MSG_ERR_NO_SIM) {
+               D_EMSG("sending failed error code [%d] : NO SIM", err);
+               return COMPOSER_RETURN_NO_SIM;
+       } else if (err == MSG_ERR_PLUGIN_STORAGE) {
+               D_EMSG("sending failed error code [%d] : MSG_ERR_PLUGIN_STORAGE", err);
+               return COMPOSER_RETURN_MEMORY_FULL;
+       } else {
+               D_EMSG("[DEBUG] sending failed error code [%d]", err);
+               return COMPOSER_RETURN_FAIL;
+       }
+}
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+msg_struct_t msg_ui_composer_message_make_preview(msg_handle_t msg_handle)
+{
+       D_ENTER;
+
+       if (msg_data == NULL) {
+               D_EMSG("can not send message,,, msg_data is NULL");
+               return NULL;
+       }
+
+       if (msg_ui_composer_create_new_message() != COMPOSER_RETURN_SUCCESS) {
+               D_EMSG("create new message error !!!");
+               return NULL;
+       }
+
+#if _MSG_FEATURE_DSDS_ENABLED
+       if (__msg_ui_composer_make_mms_message(msg_handle, 0, 0)
+#else
+       if (__msg_ui_composer_make_mms_message(msg_handle, 0)
+#endif
+           != COMPOSER_RETURN_SUCCESS) {
+               D_EMSG("make mms message error !!!");
+               return NULL;
+       }
+
+       D_LEAVE;
+       return msg_data->msgInfo;
+}
+#endif
+
+#if _MSG_FEATURE_DSDS_ENABLED
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_make_and_send(msg_handle_t msg_handle, int msg_id, int encode_type, msg_thread_id_t *tid, int sim_number)
+#else
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_make_and_send(msg_handle_t msg_handle, int msg_id, int encode_type, msg_thread_id_t *tid)
+#endif
+{
+       D_ENTER;
+
+       if (msg_data == NULL) {
+               D_EMSG("msg_data is NULL");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+
+       /* 1. create a new message (create msg_struct_t) */
+       if (msg_ui_composer_create_new_message() != COMPOSER_RETURN_SUCCESS) {
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       /* 2. make message */
+       if (msg_data->msg_type == COMPOSER_MSG_TYPE_SMS) {
+#if _MSG_FEATURE_DSDS_ENABLED
+               if (__msg_ui_composer_make_sms_message(msg_handle, msg_id, encode_type, sim_number) != COMPOSER_RETURN_SUCCESS)
+#else
+               if (__msg_ui_composer_make_sms_message(msg_handle, msg_id, encode_type) != COMPOSER_RETURN_SUCCESS)
+#endif
+                       ret =  COMPOSER_RETURN_FAIL;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       } else if (msg_data->msg_type == COMPOSER_MSG_TYPE_MMS) {
+#if _MSG_FEATURE_DSDS_ENABLED
+               if (__msg_ui_composer_make_mms_message(msg_handle, msg_id, sim_number) != COMPOSER_RETURN_SUCCESS)
+#else
+               if (__msg_ui_composer_make_mms_message(msg_handle, msg_id) != COMPOSER_RETURN_SUCCESS)
+#endif
+                       ret = COMPOSER_RETURN_FAIL;
+#endif
+       } else {
+               D_EMSG("invalid message type");
+               ret = COMPOSER_RETURN_FAIL;
+       }
+
+       /*3. send message */
+       if (ret != COMPOSER_RETURN_FAIL) {
+               ret = __msg_ui_composer_send(msg_handle);
+
+               if (ret == COMPOSER_RETURN_SUCCESS || ret == COMPOSER_RETURN_NO_SIM) {
+                       msg_list_handle_t addr_list = NULL;
+
+                       msg_get_list_handle(msg_data->msgInfo, MSG_MESSAGE_ADDR_LIST_HND, (void **)&addr_list);
+                       msg_get_thread_id_by_address2(msg_handle, addr_list, tid);
+               }
+       }
+
+       /*4. release message */
+       msg_ui_composer_release_message();
+
+       return ret;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_get_thread_id_by_address(msg_handle_t msg_handle, COMPOSER_LIST_TYPE_E type, void *address_list, msg_thread_id_t *tid)
+{
+       D_ENTER;
+
+       if (address_list == NULL || tid == NULL) {
+               D_EMSG("param is NULL");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+       msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+
+       if (msgInfo) {
+               int i = 0;
+               msg_list_handle_t addr_list = NULL;
+               int count = 0;
+
+               if (type == GLIST_TYPE) {
+                       /*GSList*/
+                       count = g_slist_length(address_list);
+
+                       for (i = 0; i < count; i++) {
+                               char *address = (char *)g_slist_nth_data(address_list, i);
+                               if (address == NULL) {
+                                       D_MSG("[ERROR] address is value NULL, skip");
+                                       continue;
+                               }
+
+                               msg_struct_t tmpAddr = NULL;
+                               if (msg_list_add_item(msgInfo, MSG_MESSAGE_ADDR_LIST_HND, &tmpAddr) == MSG_SUCCESS) {
+                                       int addr_type = get_address_type((const char *)address);
+
+                                       if (addr_type == COMPOSER_UTIL_ADDRTYPE_NUMBER)
+                                               msg_set_int_value(tmpAddr, MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_PLMN);
+                                       else if (addr_type == COMPOSER_UTIL_ADDRTYPE_EMAIL)
+                                               msg_set_int_value(tmpAddr, MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_EMAIL);
+
+                                       msg_set_int_value(tmpAddr, MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO);
+                                       msg_set_str_value(tmpAddr, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, address, strlen(address));
+                               }
+                       }
+               } else {
+                       /*Eina list*/
+                       Eina_List *l = NULL;
+                       char *address = NULL;
+
+                       EINA_LIST_FOREACH(address_list, l, address) {
+                               if (address) {
+                                       D_SEC_MSG("TO = %s", address);
+                                       msg_struct_t tmpAddr = NULL;
+
+                                       if (msg_list_add_item(msgInfo, MSG_MESSAGE_ADDR_LIST_HND, &tmpAddr) == MSG_SUCCESS) {
+                                               int addr_type = get_address_type((const char *)address);
+
+                                               if (addr_type == COMPOSER_UTIL_ADDRTYPE_NUMBER)
+                                                       msg_set_int_value(tmpAddr, MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_PLMN);
+                                               else if (addr_type == COMPOSER_UTIL_ADDRTYPE_EMAIL)
+                                                       msg_set_int_value(tmpAddr, MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_EMAIL);
+
+                                               msg_set_int_value(tmpAddr, MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO);
+                                               msg_set_str_value(tmpAddr, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, address, strlen(address));
+                                       }
+                               }
+                       }
+               }
+
+               msg_get_list_handle(msgInfo, MSG_MESSAGE_ADDR_LIST_HND, (void **)&addr_list);
+
+               if (addr_list)
+                       msg_get_thread_id_by_address2(msg_handle, addr_list, tid);
+               else
+                       D_EMSG("addr_list is NULL");
+
+               msg_release_struct(&msgInfo);
+
+       } else {
+               D_EMSG("msgInfo is NULL");
+               ret = COMPOSER_RETURN_FAIL;
+       }
+
+       return ret;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_delete_draft_message(msg_handle_t msg_handle, msg_thread_id_t tid, int protected_msgid)
+{
+       D_ENTER;
+       COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_FAIL;
+       int i = 0;
+       int msgid = 0;
+       msg_struct_list_s msg_list = {0, };
+       msg_struct_t list_cond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+
+       msg_set_int_value(list_cond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_DRAFT_ID);
+       msg_set_int_value(list_cond, MSG_LIST_CONDITION_THREAD_ID_INT, tid);
+
+       if (msg_get_message_list2(msg_handle, list_cond, &msg_list) == MSG_SUCCESS) {
+               D_MSG("delete draft message");
+               for (i = 0; i < msg_list.nCount; i++) {
+                       msg_get_int_value(msg_list.msg_struct_info[i], MSG_MESSAGE_ID_INT, &msgid);
+                       D_MSG("draft msg_id is %d", msgid);
+
+                       if (protected_msgid != msgid) {
+                               if (msg_delete_message(msg_handle, msgid) != MSG_SUCCESS) {
+                                       D_EMSG("msg_ui_comp_core_delete_message is failed = %d", msgid);
+                               } else {
+                                       ret = COMPOSER_RETURN_SUCCESS;
+                               }
+                       } else {
+                               D_MSG("skip protected msgid = %d", protected_msgid);
+                       }
+               }
+       }
+
+       msg_release_struct(&list_cond);
+       msg_release_list_struct(&msg_list);
+
+       return ret;
+}
+
+int msg_ui_composer_save_message(msg_handle_t msg_handle, int msg_id, msg_thread_id_t *tid)
+{
+       D_ENTER;
+       if (msg_data == NULL) {
+               D_EMSG("msg_data is NULL");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+       int new_msg_id = 0;
+
+       /* 1. create a new message (create msg_struct_t) */
+       if (msg_ui_composer_create_new_message() != COMPOSER_RETURN_SUCCESS) {
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       /* 2. make message */
+       if (msg_data->msg_type == COMPOSER_MSG_TYPE_SMS) {
+#if _MSG_FEATURE_DSDS_ENABLED
+               if (__msg_ui_composer_make_sms_message(msg_handle, msg_id, MSGC_INVALID_TYPE, 0) != COMPOSER_RETURN_SUCCESS)
+#else
+               if (__msg_ui_composer_make_sms_message(msg_handle, msg_id, MSGC_INVALID_TYPE) != COMPOSER_RETURN_SUCCESS)
+#endif
+                       ret =  COMPOSER_RETURN_FAIL;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       } else if (msg_data->msg_type == COMPOSER_MSG_TYPE_MMS) {
+#if _MSG_FEATURE_DSDS_ENABLED
+               if (__msg_ui_composer_make_mms_message(msg_handle, msg_id, 0) != COMPOSER_RETURN_SUCCESS)
+#else
+               if (__msg_ui_composer_make_mms_message(msg_handle, msg_id) != COMPOSER_RETURN_SUCCESS)
+#endif
+                       ret = COMPOSER_RETURN_FAIL;
+#endif
+       } else {
+               D_EMSG("invalid message type");
+               ret = COMPOSER_RETURN_FAIL;
+       }
+
+       /*3. save message */
+       if (ret != COMPOSER_RETURN_FAIL) {
+               msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+               msg_set_bool_value(sendOpt, MSG_SEND_OPT_SETTING_BOOL, false);
+
+               if (!msg_id) {
+                       /** ret is saved msg id */
+                       new_msg_id = msg_add_message(msg_handle, msg_data->msgInfo, sendOpt);
+                       D_IMSG("msg_add_message ret = %d", ret);
+               } else {
+                       /** ret is error num */
+                       D_IMSG("msg_update_message msg_id = %d", msg_id);
+
+                       if (msg_update_message(msg_handle, msg_data->msgInfo, sendOpt) != MSG_SUCCESS) {
+                               D_EMSG("msg_update_message error");
+                       } else {
+                               new_msg_id = msg_id;
+                       }
+               }
+
+               msg_release_struct(&sendOpt);
+       }
+       /* 4. get thread id */
+       if (new_msg_id > 0) {
+               msg_list_handle_t addr_list = NULL;
+               msg_get_list_handle(msg_data->msgInfo, MSG_MESSAGE_ADDR_LIST_HND, (void **)&addr_list);
+               msg_get_thread_id_by_address2(msg_handle, addr_list, tid);
+       }
+
+       /*5. release message */
+       msg_release_struct(&msg_data->msgInfo);
+       msg_data->msgInfo = NULL;
+
+       return ret;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_get_message_data(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       if (msg_data == NULL) {
+               D_EMSG("msg_data is NULL");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "composer data is NULL");
+
+       if (msg_ui_composer_recipient_read_data(cd) != COMPOSER_RETURN_SUCCESS) {
+               D_EMSG("Make recipient data Error");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (msg_ui_composer_body_read_data(cd) != COMPOSER_RETURN_SUCCESS) {
+               D_EMSG("Make body data Error");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       D_LEAVE;
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+static void msg_ui_composer_read_text(MSG_COMP_MMS_PAGE_S *mms_page, const char *path)
+{
+       D_MSG_RETM_IF(!mms_page, "invalid mms_page");
+       D_MSG_RETM_IF(!path, "invalid path");
+
+       if (access(path, R_OK) == 0) {
+               FILE *fp = fopen(path, "r");
+               if (fp) {
+                       struct stat stat_buf;
+                       if (stat(path, &stat_buf) == 0) {
+                               if (stat_buf.st_size > 0) {
+                                       mms_page->isText = true;
+                                       int result = fread(mms_page->body_text, sizeof(char), stat_buf.st_size, fp);
+                                       if (result != stat_buf.st_size)
+                                               D_EMSG("fread result is different!! result = %d, stat_buf.st_size = %d", result, stat_buf.st_size);
+                               } else {
+                                       D_EMSG("Getting file size is ZERO");
+                               }
+                       } else {
+                               D_EMSG("Getting file information Error");
+                       }
+
+                       fclose(fp);
+               } else {
+                       D_EMSG("File Open Error");
+               }
+       } else {
+               D_EMSG("file access failed");
+       }
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_load_message(msg_handle_t msg_handle, int msgID, bool is_forward_msg)
+{
+       D_ENTER;
+
+       if (!msg_handle) {
+               D_EMSG("msg_handle is NULL");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       msg_struct_t load_msg = NULL;
+       msg_struct_t sendOpt = NULL;
+       msg_struct_t mmsBody = NULL;
+
+       /* create new message */
+       load_msg = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       if (load_msg == NULL) {
+               D_EMSG("message create message failed.");
+               return COMPOSER_RETURN_FAIL;
+       }
+       sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+       if (sendOpt == NULL) {
+               D_EMSG("message create sendopt failed.");
+               msg_release_struct(&load_msg);
+               return COMPOSER_RETURN_FAIL;
+       }
+       /* load message */
+       if (msg_get_message(msg_handle, (msg_message_id_t)msgID, load_msg, sendOpt) != MSG_SUCCESS) {
+               D_EMSG("msg_get_message failed");
+               msg_release_struct(&load_msg);
+               msg_release_struct(&sendOpt);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       /* load "FROM" address */
+       msg_list_handle_t addr_list = NULL;
+       msg_get_list_handle(load_msg, MSG_MESSAGE_ADDR_LIST_HND, (void **)&addr_list);
+
+       if (addr_list) {
+               int addr_count = msg_list_length(addr_list);
+               int i = 0;
+               char number_str[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+
+               for (i = 0; i < addr_count; i++) {
+                       memset(number_str, 0, sizeof(number_str));
+
+                       msg_struct_t addr_info = NULL;
+                       addr_info = (msg_struct_t)msg_list_nth_data(addr_list, i);
+                       if (addr_info) {
+                               msg_get_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, number_str, MAX_ADDRESS_VAL_LEN);
+
+                               if (strlen(number_str))
+                                       msg_ui_composer_message_add_address(number_str);
+                       } else {
+                               D_EMSG("addr_info is NULL");
+                       }
+               }
+       }
+
+       /* load message type */
+       int msgType;
+       msg_get_int_value(load_msg, MSG_MESSAGE_TYPE_INT, &msgType);
+
+       if (msgType == MSG_TYPE_SMS || msgType == MSG_TYPE_SMS_CB || msgType == MSG_TYPE_SMS_REJECT) {
+               char *body_text = NULL;
+               int body_size = 0;
+
+               msg_data->msg_type = COMPOSER_MSG_TYPE_SMS;
+
+               msg_get_int_value(load_msg, MSG_MESSAGE_DATA_SIZE_INT, &body_size);
+
+               if (body_size > 0)
+                       body_text = (char *)calloc(1, body_size+1);
+
+               if (body_text)
+                       msg_get_str_value(load_msg, MSG_MESSAGE_SMS_DATA_STR, body_text, body_size);
+
+               if (body_text && strlen(body_text) > 0) {
+                       msg_data->sms_data.body_text = strdup(body_text);
+                       msg_data->sms_data.body_length = strlen(body_text);
+               }
+
+               if (body_text)
+                       free(body_text);
+
+       } else if (msgType == MSG_TYPE_MMS) {
+               int err = MSG_SUCCESS;
+#ifdef _MSG_FEATURE_ADD_SUB_ENABLED
+               char subject[MAX_SUBJECT_LEN+1] = {0,};
+#endif
+               msg_data->msg_type = COMPOSER_MSG_TYPE_MMS;
+
+               /* load mms body */
+               mmsBody = msg_create_struct(MSG_STRUCT_MMS);
+               if (mmsBody == NULL) {
+                       msg_release_struct(&load_msg);
+                       msg_release_struct(&sendOpt);
+                       return COMPOSER_RETURN_FAIL;
+               }
+
+               err = msg_get_mms_struct(load_msg, mmsBody);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("failed in get mms data handler err = %d", err);
+                       msg_release_struct(&mmsBody);
+                       msg_release_struct(&load_msg);
+                       msg_release_struct(&sendOpt);
+                       return COMPOSER_RETURN_FAIL;
+               }
+#ifdef _MSG_FEATURE_ADD_SUB_ENABLED
+               /* load subject */
+               if (msg_get_str_value(load_msg, MSG_MESSAGE_SUBJECT_STR, subject, MAX_SUBJECT_LEN) != MSG_SUCCESS) {
+                       D_WMSG("No subject data");
+                       msg_data->mms_data.isSubject = false;
+               } else {
+                       D_SEC_MSG("loaded subject : [%s]", subject);
+                       msg_data->mms_data.isSubject = true;
+                       strncpy(msg_data->mms_data.subject, subject, COMPOSER_SUBJECT_MAX_BYTE);
+               }
+
+               /* For forward msgs even if there is no subject we have to append "Fwd:" */
+               if (true == is_forward_msg) {
+                       msg_data->mms_data.isSubject = true;
+
+                       char *fwd_str = _MSGSTR("IDS_MSGF_SK_FORWARD_LITE");
+                       char edited_subject[COMPOSER_SUBJECT_MAX_BYTE + 1] = {0,};
+
+                       glong utf8_subject_len = g_utf8_strlen(subject, -1);
+                       glong utf8_fwd_len = g_utf8_strlen(fwd_str, -1);
+
+                       /*here fwd_str contains only "Fwd" string so we have character space for ": "*/
+                       if ((utf8_fwd_len + utf8_subject_len + strlen(": ")) <= COMPOSER_SUBJECT_MAX_CHAR) {
+                                snprintf(msg_data->mms_data.subject, sizeof(msg_data->mms_data.subject), "%s: %s", fwd_str, subject);
+                       } else {
+                               g_utf8_strncpy(edited_subject, subject, (COMPOSER_SUBJECT_MAX_CHAR - utf8_fwd_len - g_utf8_strlen(": ", -1)));
+                               D_SEC_MSG("edited_subject = %s", edited_subject);
+
+                               snprintf(msg_data->mms_data.subject, sizeof(msg_data->mms_data.subject), "%s: %s", fwd_str, edited_subject);
+                       }
+                       D_SEC_MSG("msg_data->mms_data.isSubject = %d, subject = [%s]", msg_data->mms_data.isSubject, msg_data->mms_data.subject);
+               }
+#endif
+               /* load region */
+               msg_list_handle_t region_list = NULL;
+               msg_get_list_handle(mmsBody, MSG_MMS_REGION_LIST_HND, (void **)&region_list);
+
+               int region_count = msg_list_length(region_list);
+               if (region_count >= 2) {
+                       msg_struct_t region_info_0 = NULL;
+                       msg_struct_t region_info_1 = NULL;
+                       bool is_text_top = false;
+
+                       region_info_0 = (msg_struct_t)msg_list_nth_data(region_list, 0);
+                       region_info_1 = (msg_struct_t)msg_list_nth_data(region_list, 1);
+
+                       if (msg_ui_composer_check_is_text_top(region_info_0, region_info_1, &is_text_top) == COMPOSER_RETURN_SUCCESS)
+                               msg_data->mms_data.isTextTop = is_text_top;
+               } else {
+                       D_EMSG("there is no region info region_count = %d", region_count);
+               }
+
+               /* load attachment */
+               msg_list_handle_t attach_list = NULL;
+               msg_get_list_handle(mmsBody, MSG_MMS_ATTACH_LIST_HND, (void **)&attach_list);
+               msg_data->mms_data.attach_count = msg_list_length(attach_list);
+
+               if (msg_data->mms_data.attach_count > COMPOSER_MMS_MAX_ATTACH_COUNT)
+                       msg_data->mms_data.attach_count = COMPOSER_MMS_MAX_ATTACH_COUNT;
+
+               int i = 0;
+               for (i = 0; i < msg_data->mms_data.attach_count; i++) {
+                       msg_struct_t attach_info = (msg_struct_t)msg_list_nth_data(attach_list, i);
+                       if (attach_info == NULL) {
+                               D_EMSG("attachment [%d]th item loading error ", i);
+                               continue;
+                       }
+
+                       msg_get_int_value(attach_info, MSG_MMS_ATTACH_MIME_TYPE_INT, &msg_data->mms_data.attachlist[i].filetype);
+                       msg_get_str_value(attach_info, MSG_MMS_ATTACH_FILEPATH_STR, msg_data->mms_data.attachlist[i].filepath, sizeof(msg_data->mms_data.attachlist[i].filepath));
+                       msg_get_str_value(attach_info, MSG_MMS_ATTACH_FILENAME_STR, msg_data->mms_data.attachlist[i].filename, sizeof(msg_data->mms_data.attachlist[i].filename));
+               }
+
+               /* load body (page and text, media) */
+               msg_list_handle_t page_list = NULL;
+               msg_get_list_handle(mmsBody, MSG_MMS_PAGE_LIST_HND, (void **)&page_list);
+
+               msg_data->mms_data.page_count = msg_list_length(page_list);
+
+               D_MSG("msg_data->mms_data.page_count = %d", msg_data->mms_data.page_count);
+               for (i = 0; i < msg_data->mms_data.page_count; i++) {
+                       msg_struct_t pageInfo = msg_list_nth_data(page_list, i);
+                       msg_list_handle_t media_list = NULL;
+                       int media_count = 0;
+
+                       if (pageInfo == NULL) {
+                               D_EMSG("MMS PAGE [%d]th page loading error ", i);
+                               continue;
+                       }
+
+                       /* get page duration */
+                       int page_duration = 0;
+                       msg_get_int_value(pageInfo, MSG_MMS_PAGE_PAGE_DURATION_INT, &page_duration);
+                       if (page_duration % 1000)
+                               page_duration = page_duration / 1000 + 1;
+                       else
+                               page_duration = page_duration / 1000;
+
+                       msg_data->mms_data.pagelist[i].page_duration = page_duration;
+
+                       msg_get_list_handle(pageInfo, MSG_MMS_PAGE_MEDIA_LIST_HND, (void **)&media_list);
+                       media_count = msg_list_length(media_list);
+
+                       int j = 0;
+                       for (j = 0; j < media_count; j++) {
+                               msg_struct_t mediaInfo = (msg_struct_t)msg_list_nth_data(media_list, j);
+
+                               char strContentType[DEF_BUF_LEN_S] = {0,};
+                               CONTENT_DISPLAY_TYPE content_type;
+                               int mediatype;
+
+                               if (mediaInfo == NULL) {
+                                       D_EMSG("MMS PAGE [%d]th page loading error", j);
+                                       continue;
+                               }
+
+                               msg_get_int_value(mediaInfo, MSG_MMS_MEDIA_TYPE_INT, &mediatype);
+                               D_MSG("mediatype = %d", mediatype);
+
+                               /* if media type image or video */
+                               if (mediatype == MMS_SMIL_MEDIA_IMG) {
+                                       msg_data->mms_data.pagelist[i].isImage = true;
+                                       msg_get_str_value(mediaInfo, MSG_MMS_MEDIA_FILEPATH_STR, msg_data->mms_data.pagelist[i].image_file_path, sizeof(msg_data->mms_data.pagelist[i].image_file_path));
+                               } else if (mediatype == MMS_SMIL_MEDIA_VIDEO) {
+                                       msg_data->mms_data.pagelist[i].isVideo = true;
+                                       msg_get_str_value(mediaInfo, MSG_MMS_MEDIA_FILEPATH_STR, msg_data->mms_data.pagelist[i].image_file_path, sizeof(msg_data->mms_data.pagelist[i].image_file_path));
+                               } else if (mediatype == MMS_SMIL_MEDIA_AUDIO) {
+                                       msg_data->mms_data.pagelist[i].isSound = true;
+                                       msg_get_str_value(mediaInfo, MSG_MMS_MEDIA_FILEPATH_STR, msg_data->mms_data.pagelist[i].sound_file_path, sizeof(msg_data->mms_data.pagelist[i].sound_file_path));
+                               } else if (mediatype == MMS_SMIL_MEDIA_TEXT) {
+                                       bzero(strContentType, sizeof(strContentType));
+                                       msg_get_str_value(mediaInfo, MSG_MMS_MEDIA_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+                                       content_type = msg_ui_content_get_display_type(strContentType);
+
+                                       char strFilePath[COMPOSER_FILEPATH_LEN_MAX + 1] = {0,};
+                                       msg_get_str_value(mediaInfo, MSG_MMS_MEDIA_FILEPATH_STR, strFilePath, sizeof(strFilePath));
+
+                                       if (content_type == DISPLAY_TEXT) {
+                                               msg_data->mms_data.pagelist[i].isText = false;
+                                               msg_ui_composer_read_text(&msg_data->mms_data.pagelist[i], strFilePath);
+                                       } else {
+                                               D_WMSG("unsupported content-type: %d", content_type);
+                                       }
+                               } else if (mediatype == MMS_SMIL_MEDIA_IMG_OR_VIDEO) {
+                                       msg_get_str_value(mediaInfo, MSG_MMS_MEDIA_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+                                       content_type = msg_ui_content_get_display_type(strContentType);
+
+                                       char strFilePath[COMPOSER_FILEPATH_LEN_MAX + 1] = {0,};
+                                       char strFileName[COMPOSER_FILENAME_LEN_MAX + 1] = {0,};
+                                       msg_get_str_value(mediaInfo, MSG_MMS_MEDIA_FILEPATH_STR, strFilePath, sizeof(strFilePath));
+                                       msg_get_str_value(mediaInfo, MSG_MMS_MEDIA_FILENAME_STR, strFileName, sizeof(strFileName));
+
+                                       switch (content_type) {
+                                               case DISPLAY_TEXT:
+                                                       msg_data->mms_data.pagelist[i].isText = false;
+                                                       msg_ui_composer_read_text(&msg_data->mms_data.pagelist[i], strFilePath);
+                                                       break;
+                                               case DISPLAY_IMAGE:
+                                                       msg_data->mms_data.pagelist[i].isImage = true;
+                                                       strncpy(msg_data->mms_data.pagelist[i].image_file_path, strFilePath, COMPOSER_FILEPATH_LEN_MAX);
+                                                       break;
+                                               case DISPLAY_VIDEO:
+                                                       msg_data->mms_data.pagelist[i].isVideo = true;
+                                                       strncpy(msg_data->mms_data.pagelist[i].image_file_path, strFilePath, COMPOSER_FILEPATH_LEN_MAX);
+                                                       break;
+                                               case DISPLAY_AUDIO:
+                                                       msg_data->mms_data.pagelist[i].isSound = true;
+                                                       strncpy(msg_data->mms_data.pagelist[i].sound_file_path, strFilePath, COMPOSER_FILEPATH_LEN_MAX);
+                                                       break;
+                                               default:
+                                                       D_WMSG("unsupported content-type: %d", content_type);
+                                                       break;
+                                       }
+                               } else {
+                                       msg_release_struct(&mmsBody);
+                                       msg_release_struct(&load_msg);
+                                       msg_release_struct(&sendOpt);
+                                       return COMPOSER_RETURN_INVALID_MEDIA_TYPE;
+                               }
+                       }
+               }
+       } else {
+               msg_data->msg_type = COMPOSER_MSG_TYPE_INVALID;
+               D_WMSG("invalid message type");
+               msg_release_struct(&load_msg);
+               msg_release_struct(&sendOpt);
+               return COMPOSER_RETURN_INVALID_MSG_TYPE;
+       }
+
+       if (msgType == MSG_TYPE_MMS)
+               msg_release_struct(&mmsBody);
+
+       msg_release_struct(&load_msg);
+       msg_release_struct(&sendOpt);
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+static void __msgc_warning_popup_ok_btn_clicked_cb(void *data, 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;
+       int page = (int)evas_object_data_del(cd->popup_end, "page_index");
+
+       msg_ui_composer_destroy_popup(cd, cd->popup_end);
+       cd->body_data.creation_allowed = COMPOSER_CONTENT_CREATION_ALLOWED;
+       msg_ui_composer_message_set_page_data(cd, page, true);
+       cd->body_data.creation_allowed = COMPOSER_CONTENT_CREATION_NONE;
+       msg_ui_composer_message_destroy();
+
+       D_LEAVE;
+}
+
+static void __msgc_warning_popup_do_cancel_process(void *data)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       int page = (int)evas_object_data_get(cd->popup_end, "page_index");
+
+       cd->body_data.creation_allowed = COMPOSER_CONTENT_CREATION_NOT_ALLOWED;
+       msg_ui_composer_message_set_page_data(cd, page, true);
+       cd->body_data.creation_allowed = COMPOSER_CONTENT_CREATION_NONE;
+       msg_ui_composer_message_destroy();
+
+}
+
+static void __msgc_warning_popup_cancel_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");
+       /* Be careful when you use obj, because this cb funtion is used for clicked cb and back key */
+
+       msg_ui_composer_destroy_popup(cd, cd->popup_end);
+       __msgc_warning_popup_do_cancel_process(cd);
+
+       D_LEAVE;
+}
+
+static void __msgc_warning_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *)event_info;
+
+       if (ev->button == 3) {/* if mouse right button is up*/
+               D_MSG("Back operation");
+               msg_ui_composer_destroy_popup(cd, cd->popup_end);
+               __msgc_warning_popup_do_cancel_process(cd);
+       }
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_page_data(void *composer_data, int page, bool load_focus)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(composer_data == NULL, COMPOSER_RETURN_FAIL, "composer data is NULL");
+       D_MSG_RETVM_IF(msg_data == NULL, COMPOSER_RETURN_FAIL, "msg_data is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)composer_data;
+       int ret = COMPOSER_RETURN_SUCCESS;
+       static bool is_drm = false;
+       static bool is_restricted_mode = false;
+       int i = 0;
+       int attach_ret = COMPOSER_RETURN_SUCCESS;
+       D_MSG("MMS PAGE COUNT [%d], page = %d", msg_data->mms_data.page_count, page);
+
+       if (page > msg_data->mms_data.page_count)
+               return COMPOSER_RETURN_FAIL;
+
+       if (msg_data->mms_data.page_count > COMPOSER_MMS_MAX_PAGE)
+               msg_data->mms_data.page_count = COMPOSER_MMS_MAX_PAGE;
+
+       if (cd->is_forward && cd->is_edit_clicked) {
+               Evas_Object *entry = msg_ui_composer_body_get_page_entry(cd, 0);        /* setting focus temporarily to body so that recipient focused_cb is called on idler finish in forward scerio*/
+               elm_object_focus_set(entry, EINA_TRUE);
+       }
+
+
+       /* cd->is_edit_clicked will be set, once all the text part is set to the entry.
+          This has been done because text part was overlapping with attachment file and
+          media filenames. Once all text is set to the enrty,
+          msg_ui_composer_body_body_layout_resize_cb() will be called wherin
+          msg_ui_composer_message_set_page_data() will be called again in an idler with
+          cd->is_edit_clicked = true to process the attachment and media files. */
+       if (cd->is_edit_clicked) {
+               if (msg_data->mms_data.attach_count > COMPOSER_MMS_MAX_ATTACH_COUNT)
+                       msg_data->mms_data.attach_count = COMPOSER_MMS_MAX_ATTACH_COUNT;
+
+               /* attachment */
+               for (i = 0; i < msg_data->mms_data.attach_count; i++) {
+                       char *filepath = msg_data->mms_data.attachlist[i].filepath;
+                       int filetype = msg_data->mms_data.attachlist[i].filetype;
+
+                       attach_ret = msg_ui_composer_attachment_set_loaded_data(cd, filepath, filetype);
+                       if (attach_ret == COMPOSER_RETURN_DRM_FORWARDLOCK)
+                               cd->is_needed_drm_popup = true;
+               }
+       }
+       for (; page < msg_data->mms_data.page_count; page++) {
+               if (cd->body_data.page_count < page + 1 && !cd->is_edit_clicked)
+                       msg_ui_composer_body_add_page(cd);
+               /* Please refer the comment above for cd->is_edit_clicked */
+               if (msg_data->mms_data.pagelist[page].isImage && cd->is_edit_clicked) {
+                       ret = msg_ui_composer_body_set_loaded_media(cd, msg_data->mms_data.pagelist[page].image_file_path, COMPOSER_MEDIA_TYPE_IMAGE, page);
+               } else if (msg_data->mms_data.pagelist[page].isVideo && cd->is_edit_clicked) {
+                       ret = msg_ui_composer_body_set_loaded_media(cd, msg_data->mms_data.pagelist[page].image_file_path, COMPOSER_MEDIA_TYPE_VIDEO, page);
+               }
+
+               if (msg_data->mms_data.pagelist[page].isSound && cd->is_edit_clicked) {
+                       ret = msg_ui_composer_body_set_loaded_media(cd, msg_data->mms_data.pagelist[page].sound_file_path, COMPOSER_MEDIA_TYPE_AUDIO, page);
+               }
+
+               if (ret == COMPOSER_RETURN_DRM_FORWARDLOCK) {
+                       D_MSG("ret COMPOSER_RETURN_DRM_FORWARDLOCK");
+                       is_drm = true;
+               } else if (ret == COMPOSER_RETURN_CREATION_RESTRICTED_MODE_FAIL) {
+                       D_MSG("ret COMPOSER_RETURN_CREATION_RESTRICTED_MODE_FAIL");
+                       is_restricted_mode = true;
+               } else if (ret == COMPOSER_RETURN_CREATION_WARINING_MODE_FAIL) {
+                       D_MSG("ret COMPOSER_RETURN_CREATION_WARINING_MODE_FAIL");
+                       if (cd->popup_end) {
+                               msg_ui_composer_destroy_popup(cd, cd->popup_end);
+                               cd->popup_end = NULL;
+                       }
+                       /* show warning mode popup */
+                       Evas_Object *popup = msg_ui_composer_create_text_popup_with_hardkey_cb(cd->main_window, cd, _MSGSTR("IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"),
+                                                                                                                                                                       __msgc_warning_popup_mouseup_cb, __msgc_warning_popup_cancel_btn_clicked_cb);
+                       Evas_Object *negative_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+                       elm_object_part_content_set(popup, "button1", negative_btn);
+                       evas_object_smart_callback_add(negative_btn, "clicked", __msgc_warning_popup_cancel_btn_clicked_cb, cd);
+                       Evas_Object *positive_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+                       elm_object_part_content_set(popup, "button2", positive_btn);
+                       evas_object_smart_callback_add(positive_btn, "clicked", __msgc_warning_popup_ok_btn_clicked_cb, cd);
+                       elm_object_focus_set(popup, EINA_TRUE);
+                       evas_object_show(popup);
+                       cd->popup_end = popup;
+
+                       evas_object_data_set(popup, "page_index", (void *)page);
+
+                       return ret;
+               }
+
+               if (msg_data->mms_data.pagelist[page].isText && !cd->is_edit_clicked) {
+                       msg_ui_composer_body_set_loaded_text(cd, msg_data->mms_data.pagelist[page].body_text, page);
+                       elm_box_recalculate(cd->body_main_box);
+                       elm_box_recalculate(cd->pages_box);
+               }
+
+               /* set page duration */
+               msg_ui_composer_body_set_loaded_page_duration(cd, msg_data->mms_data.pagelist[page].page_duration, page);
+       }
+
+       cd->is_edit_clicked = !cd->is_edit_clicked;
+       if (is_drm) {
+               /* show drm forwardlock popup */
+               msg_ui_composer_create_text_btn_popup(cd, _MSGSTR("IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"), 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+
+               is_drm = false;
+               is_restricted_mode = false;
+
+               if (load_focus) {
+                       if (!msg_ui_composer_popup_exist(cd))
+                               msg_ui_composer_last_focus_load(cd);
+               }
+
+               return COMPOSER_RETURN_DRM_FORWARDLOCK;
+       } else if (is_restricted_mode) {
+               /* show restricted mode popup */
+               msg_ui_composer_create_text_btn_popup(cd, _MSGSTR("IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"), 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       }
+
+       if (load_focus) {
+               if (!msg_ui_composer_popup_exist(cd) && !cd->loading_draft)
+                       msg_ui_composer_last_focus_load(cd);
+       }
+
+       is_drm = false;
+       is_restricted_mode = false;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_set_loaded_data(void *composer_data, bool set_recipient)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)composer_data;
+       int i = 0;
+       int ret = COMPOSER_RETURN_SUCCESS;
+
+       /* recipient */
+       if (set_recipient) {
+               if (msg_data->recp_list) {
+
+                       int count = g_slist_length(msg_data->recp_list);
+                       char *address = NULL;
+
+                       for (i = 0; i < count; i++) {
+                               address = (char *)g_slist_nth_data(msg_data->recp_list, i);
+
+                               if (address)
+                                       msg_ui_composer_recipient_set_loaded_data(cd, address, 0);
+                       }
+               }
+       }
+
+       if (msg_data->msg_type == COMPOSER_MSG_TYPE_SMS) {
+               msg_ui_composer_body_set_loaded_text(cd, msg_data->sms_data.body_text, 0);
+               return COMPOSER_RETURN_SUCCESS;
+       }
+
+       /* subject */
+       if (msg_data->mms_data.isSubject)
+               msg_ui_composer_subject_set_loaded_data(cd, msg_data->mms_data.subject);
+
+       /* region */
+       if (msg_data->mms_data.isTextTop)
+               cd->body_data.region_order = COMPOSER_REGION_ORDER_TEXT_TOP;
+       else
+               cd->body_data.region_order = COMPOSER_REGION_ORDER_IMAGE_TOP;
+
+       /* msg_ui_composer_attachment_set_loaded_data() has been moved to
+          msg_ui_composer_set_page_data() due to overlapping issue of text and attachment
+          files. Basically setting of attachment files in the body layout has been
+          delayed until all the texts are set to the entries and body gets resized */
+
+       /* body page data*/
+       /* the reason why load_focus is false is that if drm fl popup shoud be shown becase of attachement fl file,
+       focus should not be set to last entry in msg_ui_composer_message_set_page_data*/
+
+       cd->is_edit_clicked = false;
+       ret = msg_ui_composer_message_set_page_data(cd, 0, false);
+
+       /* if it is mms when either subject is added or emoticon is added(text case), then entry changed cb is called later after finishing mms loading operation.
+          So, mms status popup is shown because checking mms api is called later in entry changed cb after reseting cd->loading_draft*/
+       msg_ui_composer_message_type_check_and_change(cd);
+
+       if (ret == COMPOSER_RETURN_CREATION_WARINING_MODE_FAIL)
+               return ret;
+
+       /* when ret is COMPOSER_RETURN_DRM_FORWARDLOCK, drm fl popup is already shown in msg_ui_composer_message_set_page_data.
+       Because threre is drm fl file in inserted files. So, we don't have to show drm fl popup again */
+       if ((ret == COMPOSER_RETURN_DRM_FORWARDLOCK) && (cd->is_needed_drm_popup == true))
+               cd->is_needed_drm_popup = false;
+
+       if (cd->is_needed_drm_popup) {
+               /* show drm forwardlock popup */
+               msg_ui_composer_create_text_btn_popup(cd, _MSGSTR("IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"), 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       }
+
+       if (!msg_ui_composer_popup_exist(cd) && !cd->loading_draft)
+               msg_ui_composer_last_focus_load(cd);
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
diff --git a/composer/src/ui-composer/msg-ui-composer-attachment.c b/composer/src/ui-composer/msg-ui-composer-attachment.c
new file mode 100755 (executable)
index 0000000..983bd80
--- /dev/null
@@ -0,0 +1,551 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-composer-attachment.h"
+#include "msg-ui-composer-recipient.h"
+#include "msg-ui-composer-external.h"
+#include "msg-ui-composer-data.h"
+#include "msg-ui-composer-body.h"
+#include "msg-ui-composer-body-callback.h"
+#include "msg-ui-composer-subject.h"
+#include "msg-ui-composer-message.h"
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-main.h"
+#include "msg-ui-common-utility.h"
+#include "msg-file-util.h"
+
+
+int64 msg_ui_composer_get_attached_item_size(void *data)
+{
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       MSG_COMPOSER_ATTACH_S *attach_data = &cd->attach_data;
+
+       int64 temp_file_size = 0;
+       Eina_List *list = NULL;
+
+       MSG_COMPOSER_ATTACH_ITEM_S *cai;
+       EINA_LIST_FOREACH(attach_data->attachitem_list, list, cai) {
+               temp_file_size += msg_composer_get_file_size(cai->file_path);
+       }
+
+       return temp_file_size;
+}
+
+static void __msgc_remove_attachment_item(void *data, MSG_COMPOSER_ATTACH_ITEM_S *remove_item)
+{
+       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_COMPOSER_ATTACH_S *attach_data = &cd->attach_data;
+
+       attach_data->attachitem_list = eina_list_remove(attach_data->attachitem_list, remove_item);
+       attach_data->attachment_Cnt--;
+
+       /* remove temp file */
+       msg_composer_remove_file(remove_item->file_path);
+
+       evas_object_del(remove_item->layout);
+       g_free(remove_item);
+
+       msg_ui_composer_body_info_area_update(cd);
+
+       if (attach_data->attachment_Cnt == 0) {
+               msg_ui_composer_message_type_check_and_change(cd);
+
+               if (!msg_ui_composer_common_is_send_possible(cd)) {
+                       msg_ui_composer_send_btn_disabled_set(cd, EINA_TRUE);
+                       msg_ui_composer_body_update_send_btn_icon(cd, true);
+               } else {
+                       msg_ui_composer_send_btn_disabled_set(cd, EINA_FALSE);
+                       msg_ui_composer_body_update_send_btn_icon(cd, false);
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_attachment_clear(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "composer data is NULL");
+       MSG_COMPOSER_ATTACH_S *attach_data = &cd->attach_data;
+       MSG_COMPOSER_ATTACH_ITEM_S *attach_item = NULL;
+
+       if (attach_data->attachment_Cnt > 0) {
+               int attach_count = attach_data->attachment_Cnt;
+               int i = 0;
+               Evas_Object *box = cd->pages_box;
+
+               if (attach_data->attachitem_list) {
+                       for (i = 0; i < attach_count; i++) {
+                               attach_item = (MSG_COMPOSER_ATTACH_ITEM_S *)eina_list_nth(attach_data->attachitem_list, 0);
+
+                               if (attach_item) {
+                                       /* remove temp file */
+                                       msg_composer_remove_file(attach_item->file_path);
+                                       elm_box_unpack(box, attach_item->layout);
+                                       evas_object_del(attach_item->layout);
+
+                                       attach_data->attachitem_list = eina_list_remove(attach_data->attachitem_list, attach_item);
+                                       free(attach_item);
+                               }
+                       }
+               } else {
+                       D_EMSG("attachitem_list is NULL");
+               }
+       }
+
+       if (attach_data->attachitem_list) {
+               D_IMSG("free attach_data->attachitem_list (%p)", attach_data->attachitem_list);
+               attach_item = NULL;
+
+               EINA_LIST_FREE(attach_data->attachitem_list, attach_item) {
+                       if (attach_item) {
+                               D_WMSG("attach_item = %p", attach_item);
+                               free(attach_item);
+                       }
+               }
+
+               attach_data->attachitem_list = NULL;
+       }
+
+       attach_data->attachment_Cnt = 0;
+
+       D_LEAVE;
+}
+
+#ifdef MSG_SUPPORT_LAUNCHING_ATTACHMENT
+static void __msgc_attachment_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;
+
+       if (!cd->is_default_body_size) {
+               Evas_Object *layout = evas_object_data_get(obj, "layout");
+               MSG_COMPOSER_ATTACH_ITEM_S *attach_item = evas_object_data_get(layout, "attach_item");
+               COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+
+               if (cd->is_service_launching) {
+                       D_MSG("Already other or same service is trying to launch");
+                       return;
+               }
+
+               D_SEC_MSG("File path %s", attach_item->file_path);
+               msg_ui_composer_unset_view(cd);
+
+               ret = msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_COMMON, attach_item->file_path);
+
+               if (ret == COMPOSER_RETURN_SUCCESS)
+                       cd->is_service_launching = true;
+               else
+                       cd->is_service_launching = false;
+       }
+
+       D_LEAVE;
+}
+#endif
+
+int msg_ui_composer_get_attach_count(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, -1, "cd is NULL");
+       Eina_List *attach_list = cd->attach_data.attachitem_list;
+       if (attach_list == NULL)
+               return -1;
+
+       int attach_count = eina_list_count(attach_list);
+
+       return attach_count;
+}
+
+char *msg_ui_composer_get_attach_filename_by_index(MSG_COMPOSER_VIEW_DATA_S *cd, int index)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       Eina_List *attach_list = cd->attach_data.attachitem_list;
+       if (attach_list == NULL) {
+               D_EMSG("attach_list is NULL");
+               return NULL;
+       }
+
+       if (cd->attach_data.attachment_Cnt <= index) {
+               D_EMSG("invalid index %d", index);
+               return NULL;
+       }
+
+       MSG_COMPOSER_ATTACH_ITEM_S *attach_item = (MSG_COMPOSER_ATTACH_ITEM_S *)eina_list_nth(attach_list, index);
+       if (attach_item)
+               return attach_item->file_name;
+       else
+               return NULL;
+}
+
+void msg_ui_composer_hide_attach_focus(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+       D_MSG_RETM_IF(cd->attach_data.attachment_Cnt < 1, "Attachments do not exist");
+
+       if (cd->attach_data.focused_item) {
+               edje_object_signal_emit(_EDJ(cd->attach_data.focused_item), "unfocused", "*");
+       }
+}
+
+static void __msg_ui_composer_attachment_remove_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       Evas_Object *layout = (Evas_Object *)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)evas_object_data_get(layout, "priv_data");
+       MSG_COMPOSER_ATTACH_ITEM_S *remove_item = NULL;
+
+       if (cd == NULL) {
+               D_EMSG("cd is NULL");
+               return;
+       }
+
+       if (!cd->is_default_body_size) {
+               remove_item = evas_object_data_get(layout, "attach_item");
+               if (remove_item) {
+                       __msgc_remove_attachment_item(cd, remove_item);
+               }
+               msg_ui_composer_message_type_check_and_change(cd);
+       }
+
+       /* in invalid recipient case, give focus to other widget to call filter_cb of mbe */
+       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(msg_ui_composer_get_focusible_widget(cd), EINA_TRUE);
+                       }
+               }
+       }
+
+       msg_ui_composer_destroy_popup(cd, cd->center_popup);
+       cd->center_popup = NULL;
+       elm_object_focus_set(cd->last_focus_entry, EINA_TRUE);
+}
+
+static void __msg_ui_composer_attachment_layout_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       Evas_Object *content = (Evas_Object *)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)evas_object_data_get(content, "priv_data");
+
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+               RECIPIENT_S *rd = cd->recipient;
+               D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+               if (!rd->was_entry_empty) {
+                       msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+               }
+
+               if (msg_ui_composer_recipient_check_showing_popup_condition(cd)) {
+                       return;
+               } else {
+                       msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+               }
+       }
+
+       msg_ui_composer_hide_attach_focus(cd);
+       /* hide all highlights of other layout */
+       msg_ui_composer_body_media_layout_focus_hide(cd, COMPOSER_MEDIA_HIDE_ALL, -1);
+
+       edje_object_signal_emit(_EDJ(content), "play,press,sound", "*");
+
+       if (!cd->body_data.is_body_focus)
+               msg_ui_composer_body_input_field_focus_set(cd, true);
+
+       MSG_COMPOSER_BODY_PAGE_S *page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(cd->body_data.page_list, cd->current_edit_entry);
+       if (page_data)
+               msg_ui_composer_last_focused_entry_set(cd, page_data->entry);
+
+       Evas_Object *btn = elm_object_part_content_get(content, "swl.content");
+       if (btn) {
+               edje_object_signal_emit(_EDJ(cd->attach_data.focused_item), "focused", "*");
+               msg_ui_composer_entry_input_panel_hide(cd->last_focus_entry);
+
+               int page_index = -1;
+               /* since body got focused hide the recipeint mbe */
+               if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER)
+                       msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+
+               msg_ui_composer_hide_attach_focus(cd);
+
+               if (msg_ui_composer_body_get_page_index(cd, page_data, &page_index) == false) {
+                       D_EMSG("msg_ui_composer_body_get_page_index is failed");
+               }
+
+               if (page_index >= 0) {
+                       cd->current_edit_entry = page_index;
+               }
+
+               msg_ui_composer_unset_view(cd);
+
+               /* move focus to selected content(button) object so that focus is not moved to entry after deleting popup automatically. */
+               elm_object_focus_set(btn, EINA_TRUE);
+
+               msg_ui_composer_create_media_option_popup(cd, __msg_ui_composer_attachment_remove_cb, content);
+       }
+       D_LEAVE;
+}
+
+static Evas_Object *__msg_ui_composer_attachment_layout_create(MSG_COMPOSER_VIEW_DATA_S *cd, const char *file_path, Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *layout = NULL;
+       const char *filename = NULL;
+
+       layout = elm_layout_add(parent);
+       if (!layout) {
+               D_EMSG("layout create error !!!!");
+               return NULL;
+       }
+
+       elm_layout_file_set(layout, msg_ui_composer_edj_get(cd), MSGC_EDJ_GRP_BODY_MEDIA_SOUND);
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       filename = msg_file_file_get(file_path);
+       if (filename)
+               edje_object_part_text_set(_EDJ(layout), "text.filename", filename);
+
+       D_LEAVE;
+       return layout;
+}
+
+static Evas_Object *__msg_ui_composer_attachment_create(MSG_COMPOSER_VIEW_DATA_S *cd, const char *file_path, Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       D_MSG_RETVM_IF(file_path == NULL, NULL, "file_path is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *layout = NULL;
+       Evas_Object *transparent_button = NULL;
+       char *inserted_file_path = (char *)file_path;
+
+       layout = elm_layout_add(parent);
+       if (!layout) {
+               D_EMSG("layout create error !!!!");
+               return NULL;
+       }
+
+       elm_layout_file_set(layout, msg_ui_composer_edj_get(cd), MSGC_EDJ_GRP_BODY_MEDIA_MAIN);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       /* create transparent focus button so that insert media can have a focus and tts highlight*/
+       transparent_button = elm_button_add(layout);
+
+       elm_object_style_set(transparent_button, "focus");
+       evas_object_size_hint_weight_set(transparent_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(transparent_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(transparent_button);
+
+       elm_object_part_content_set(layout, "swl.content", transparent_button);
+
+       /* create media layout */
+       Evas_Object *attachment_layout = __msg_ui_composer_attachment_layout_create(cd, inserted_file_path, transparent_button);
+
+       evas_object_smart_callback_add(transparent_button, "clicked", __msg_ui_composer_attachment_layout_clicked_cb, layout);
+
+       elm_object_part_content_set(transparent_button, "elm.swallow.content", attachment_layout);
+       evas_object_data_set(layout, "priv_data", cd);
+       evas_object_data_set(layout, "tbutton", transparent_button);
+
+       return layout;
+}
+
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_add_attach_media(MSG_COMPOSER_VIEW_DATA_S
+                                                       *cd, const char *filepath, COMPOSER_MEDIA_TYPE_E media_type)
+{
+       D_ENTER;
+       if (!cd || !filepath || strlen(filepath) == 0) {
+               D_EMSG("composer data or file path is not exist");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       MSG_COMPOSER_ATTACH_S *attach_data = &cd->attach_data;
+       MSG_COMPOSER_ATTACH_ITEM_S *attach_item = NULL;
+
+       int attach_count = eina_list_count(attach_data->attachitem_list);
+
+       if (attach_count >= COMPOSER_MMS_MAX_ATTACH_COUNT) {
+               char popup_msg[DEF_BUF_LEN_L + 1] = {0,};
+               char count[DEF_BUF_LEN_D + 1] = {0,};
+               char *str = _MSGSTR("IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED");
+
+               snprintf(count, sizeof(count), "%d", COMPOSER_MMS_MAX_ATTACH_COUNT);
+               snprintf(popup_msg, sizeof(popup_msg), str, count, count);
+               msg_ui_composer_create_text_btn_popup(cd, popup_msg, 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+
+               return COMPOSER_RETURN_ATTACHMENT_MAX_COUNT;
+       }
+
+       if (attach_count > 0) {
+               Eina_List *list = attach_data->attachitem_list;
+               MSG_COMPOSER_ATTACH_ITEM_S *attached_item = NULL;
+               int i = 0;
+
+               for (i = 0; i < attach_count; i++) {
+                       attached_item = (MSG_COMPOSER_ATTACH_ITEM_S *)eina_list_nth(list, i);
+
+                       if (attached_item && (strncmp(attached_item->file_path, filepath, strlen(attached_item->file_path)) == 0)) {
+                               msg_ui_composer_create_text_btn_popup(cd, _MSGSTR("IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"), 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+
+                               return COMPOSER_RETURN_ATTACHMENT_ALREADY_EXIST;
+                       }
+               }
+       }
+
+       attach_item = (MSG_COMPOSER_ATTACH_ITEM_S *)calloc(1, sizeof(MSG_COMPOSER_ATTACH_ITEM_S));
+       if (!attach_item) {
+               D_EMSG("calloc is failed");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       char *file_name = msg_file_app_exe_get(msg_file_file_get(filepath));
+       if (!file_name) {
+               D_EMSG("file_name is NULL");
+               free(attach_item);
+
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       eina_strlcpy(attach_item->file_path, filepath, sizeof(attach_item->file_path));
+       eina_strlcpy(attach_item->file_name, file_name, sizeof(attach_item->file_name));
+       g_free(file_name);
+
+       attach_item->type = media_type;
+       attach_item->layout = __msg_ui_composer_attachment_create(cd, attach_item->file_path, cd->body_main_layout);
+       if (!attach_item->layout) {
+               D_EMSG("attachment item create error");
+               free(attach_item);
+
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       attach_item->del_icon = (Evas_Object *)evas_object_data_get(attach_item->layout, "del_icon");
+       evas_object_data_set(attach_item->layout, "attach_item", attach_item);
+
+       attach_data->attachitem_list = eina_list_append(attach_data->attachitem_list, attach_item);
+       attach_data->attachment_Cnt++;
+
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(body_data->page_list, 0);
+
+       elm_box_pack_before(cd->pages_box, attach_item->layout, page_data->layout);
+
+       msg_ui_composer_send_btn_disabled_set(cd, EINA_FALSE);
+       msg_ui_composer_message_type_check_and_change(cd);
+       msg_ui_composer_body_info_area_update(cd);
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER)
+               msg_ui_composer_change_body_layout_mode(cd, cd->rotate);
+
+       D_MSG("cd->attach_index = %d", cd->attach_index);
+
+       if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true) {
+               int media_count = eina_list_count(cd->attachlist);
+               /* show invalid popup when last content is added*/
+               if (media_count == cd->attach_index) {
+                       if (msg_ui_composer_recipient_addr_type_get(cd->recipient) == COMPOSER_RECP_ADDR_INVALID) {
+                               msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID");
+                       } else {
+                               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+                       }
+                       if (cd->recipient) {
+                               msg_ui_composer_last_focused_entry_set(cd, cd->recipient->entry);
+                       }
+               }
+       } else {
+               /* change last focused entry to a page that is added media recently*/
+               Eina_List *page_list = cd->body_data.page_list;
+               MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+
+               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, cd->current_edit_entry);
+               if (page_data)
+                       msg_ui_composer_last_focused_entry_set(cd, page_data->entry);
+               if (cd->recipient && cd->recipient->was_entry_empty == false) {
+                       msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+               }
+               msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+       }
+       D_LEAVE;
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_read_attachments(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_NULL_POINTER, "composer data is NULL");
+       MSG_COMPOSER_ATTACH_S *attach_data = &cd->attach_data;
+       int attach_count = attach_data->attachment_Cnt;
+       Eina_List *attach_list = attach_data->attachitem_list;
+       MSG_COMPOSER_ATTACH_ITEM_S *attach_item = NULL;
+       int i = 0;
+
+       msg_ui_composer_message_set_attach_count(attach_count);
+
+       for (i = 0; i < attach_data->attachment_Cnt; i++) {
+               attach_item = (MSG_COMPOSER_ATTACH_ITEM_S *)eina_list_nth(attach_list, i);
+               if (attach_item) {
+                       if (msg_ui_composer_message_add_attachments(attach_item->file_path, attach_item->type) != COMPOSER_RETURN_SUCCESS) {
+                               attach_count--;
+                       }
+               } else {
+                       attach_count--;
+               }
+       }
+
+       if (attach_count < 0)
+               attach_count = 0;
+
+       msg_ui_composer_message_set_attach_count(attach_count);
+
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_attachment_set_loaded_data(void *data, const char
+                                                                 *filepath, int filetype)
+{
+       D_MSG_RETVM_IF(data == NULL, COMPOSER_RETURN_NULL_POINTER, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       char local_item_path[COMPOSER_FILEPATH_LEN_MAX + 1] = {0,};
+       /* copy temp file */
+       if (msg_ui_composer_copy_file(cd, filepath, local_item_path, COMPOSER_FILEPATH_LEN_MAX) != COMPOSER_RETURN_SUCCESS) {
+               D_EMSG("get file error");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       return msg_ui_composer_add_attach_media(cd, local_item_path, filetype);
+}
diff --git a/composer/src/ui-composer/msg-ui-composer-body-callback.c b/composer/src/ui-composer/msg-ui-composer-body-callback.c
new file mode 100755 (executable)
index 0000000..0e90a14
--- /dev/null
@@ -0,0 +1,2019 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "msg-ui-composer-predictsearch.h"
+#include "msg-ui-composer-data.h"
+#include "msg-ui-common-app-control.h"
+#include <ITapiModem.h>
+#include <ITapiSim.h>
+#include <ITapiNetwork.h>
+#include <tapi_event.h>
+#include <TapiUtility.h>
+#include <app_info.h>
+#include <TapiUtility.h>
+
+Elm_Gengrid_Item_Class attach_popup_gic;
+Elm_Gengrid_Item_Class replace_popup_gic;
+
+typedef enum {
+        SIM_LIST_SEND_VIA_SIM_1,
+        SIM_LIST_SEND_VIA_SIM_2,
+} sim_list_e;
+
+typedef enum {
+        ADD_OBJECTS_AS_TEXT,
+        ADD_OBJECTS_AS_ATTACHMENT,
+} attachment_options_e;
+
+enum {
+       STRING_TYPE_MESSAGE,
+       STRING_TYPE_SYSTEM,
+};
+
+typedef struct {
+       int module_id;
+       char *module_name;
+       char *module_string;
+       int string_type;
+} ATTACH_MODULE_INFO_S;
+
+/* module id should be same with module order of msg_attach_module_table */
+const ATTACH_MODULE_INFO_S module_info_list[] = {
+               {1, "Quick responses", "IDS_MSG_OPT_QUICK_RESPONSE_ABB", STRING_TYPE_MESSAGE},
+               {2, "Gallery", "IDS_MSG_OPT_IMAGES", STRING_TYPE_MESSAGE},
+               {3, "TakePicture", "IDS_MSG_OPT_TAKE_PICTURE_ABB", STRING_TYPE_MESSAGE},
+               {4, "Video", "IDS_MSG_OPT_VIDEOS", STRING_TYPE_MESSAGE},
+               {5, "RecordVideo", "IDS_MSG_OPT_RECORD_VIDEO_ABB", STRING_TYPE_MESSAGE},
+               {6, "Audio", "IDS_MSG_OPT_AUDIO_FILES_ABB2", STRING_TYPE_MESSAGE},
+               {7, "RecordAudio", "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB", STRING_TYPE_MESSAGE},
+               {8, "Memo", "IDS_MSG_BODY_MEMO_T_MAINMENU", STRING_TYPE_MESSAGE},
+};
+
+static void _attach_panel_selected_cb(MSG_COMPOSER_VIEW_DATA_S *cd, attach_panel_h attach_panel,
+                                                                               attach_panel_content_category_e content_category, char **select, int length);
+
+/*==================================================================================================
+*                                                              FUNCTION IMPLEMENTATIONS
+*==================================================================================================*/
+static char *__add_popup_grid_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       D_MSG_RETVM_IF(part == NULL, NULL, "part is NULL");
+       char *str = (char *)data;
+       int r = 0, g = 0, b = 0, a = 0;
+       char color_text[DEF_BUF_LEN_L + 1] = {0,};
+
+       if (!strcmp(part, "elm.text")) {
+               if (str && strlen(str)) {
+                       if (strstr(str, "IDS_COM_")) {
+                               snprintf(color_text, DEF_BUF_LEN_L, "<color=#%02x%02x%02x%02x>%s</color>", COLOR_BLACK, _SYSSTR(str));
+                               return strdup(color_text);
+                       } else {
+                               snprintf(color_text, DEF_BUF_LEN_L, "<color=#%02x%02x%02x%02x>%s</color>", COLOR_BLACK, _MSGSTR(str));
+                               return strdup(color_text);
+                       }
+               } else {
+                       D_EMSG("str is NULL");
+                       return strdup("");
+               }
+       }
+
+       return NULL;
+}
+
+static Evas_Object *__add_popup_grid_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       D_MSG_RETVM_IF(part == NULL, NULL, "part is NULL");
+       char *str = (char *)data;
+
+       if (!strcmp(part, "elm.swallow.icon")) {
+               Evas_Object *icon = NULL;
+
+               if (!g_strcmp0(str, ("IDS_MSG_OPT_IMAGES"))) {
+                       icon = msg_ui_composer_get_app_icon(obj, "org.tizen.gallery");
+               } else if (!g_strcmp0(str, ("IDS_MSG_OPT_VIDEOS"))) {
+                       icon = msg_ui_composer_get_app_icon(obj, "org.tizen.videos-lite");
+               } else if (!g_strcmp0(str, ("IDS_MSG_OPT_TAKE_PICTURE_ABB"))) {
+                       icon = msg_ui_composer_get_app_icon(obj, "org.tizen.camera-app-lite");
+               } else if (!g_strcmp0(str, ("IDS_MSG_OPT_RECORD_VIDEO_ABB"))) {
+                       icon = msg_ui_composer_make_image(obj, MSGC_ATTACH_RECORD_VIDEO_ICON);
+               } else if (!g_strcmp0(str, ("IDS_MSG_OPT_QUICK_RESPONSE_ABB"))) {
+                       icon = msg_ui_composer_make_image(obj, MSGC_ATTACH_TEXT_TEMPLATE_ICON);
+               } else if (!g_strcmp0(str, ("IDS_MSG_OPT_AUDIO_FILES_ABB2"))) {
+                       icon = msg_ui_composer_get_app_icon(obj, "org.tizen.music-player-lite");
+               } else if (!g_strcmp0(str, ("IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"))) {
+                       icon = msg_ui_composer_get_app_icon(obj, "org.tizen.contacts");
+               } else if (!g_strcmp0(str, ("IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"))) {
+                       icon = msg_ui_composer_get_app_icon(obj, "org.tizen.calendar-lite");
+               } else if (!g_strcmp0(str, ("IDS_MSG_BODY_MEMO_T_MAINMENU"))) {
+                       icon = msg_ui_composer_get_app_icon(obj, "org.tizen.memo");
+               } else {
+                       D_EMSG("Unknown Menu List Item. str : %s", str);
+               }
+
+               return icon;
+       }
+
+       return NULL;
+}
+
+static Evas_Object *__replace_popup_grid_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       D_MSG_RETVM_IF(part == NULL, NULL, "part is NULL");
+       char *str = (char *)data;
+
+       if (!strcmp(part, "elm.swallow.icon")) {
+               Evas_Object *icon = NULL;
+
+               if (!g_strcmp0(str, ("IDS_MSG_OPT_IMAGES"))) {
+                       icon = msg_ui_composer_get_app_icon(obj, "org.tizen.gallery");
+               } else if (!g_strcmp0(str, ("IDS_MSG_OPT_VIDEOS"))) {
+                       icon = msg_ui_composer_get_app_icon(obj, "org.tizen.videos-lite");
+               } else if (!g_strcmp0(str, ("IDS_MSG_OPT_TAKE_PICTURE_ABB"))) {
+                       icon = msg_ui_composer_get_app_icon(obj, "org.tizen.camera-app-lite");
+               } else if (!g_strcmp0(str, ("IDS_MSG_OPT_RECORD_VIDEO_ABB"))) {
+                       icon = msg_ui_composer_make_image(obj, MSGC_ATTACH_RECORD_VIDEO_ICON);
+               } else if (!g_strcmp0(str, ("IDS_MSG_OPT_AUDIO_FILES_ABB2"))) {
+                       icon = msg_ui_composer_get_app_icon(obj, "org.tizen.music-player-lite");
+               } else {
+                       D_EMSG("Unknown Menu List Item");
+               }
+
+               return icon;
+       }
+
+       return NULL;
+}
+
+static int __get_attach_module_id(const char *module_string)
+{
+       D_ENTER;
+       int module_id = 0;
+       /* get module string and string type to append list */
+       int module_max = (sizeof(module_info_list) / sizeof(ATTACH_MODULE_INFO_S));
+       int module_index = 0;
+       for (module_index = 0; module_index < module_max; module_index++) {
+               if (!strcmp(module_info_list[module_index].module_string, module_string)) {
+                       D_MSG("module_id : %d, module : %s, string_type : %d, string : %s", module_info_list[module_index].module_id, module_info_list[module_index].module_name, module_info_list[module_index].string_type, module_info_list[module_index].module_string);
+
+                       module_id = module_info_list[module_index].module_id;
+                       break;
+               }
+       }
+
+       return module_id;
+}
+
+static char *__msg_ui_composer_message_add_objects_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+
+       if (!strcmp(part, "elm.text.main.left")) {
+               attachment_options_e attach_option = (attachment_options_e)data;
+
+               switch (attach_option) {
+                       case ADD_OBJECTS_AS_TEXT:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_TEXT"));
+                       case ADD_OBJECTS_AS_ATTACHMENT:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_ATTACHMENT_ABB"));
+               }
+       }
+
+       return NULL;
+}
+
+static void __add_popup_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+       if (cd->add_menu_clicked) {
+               D_WMSG("return. cd->add_menu_clicked is set");
+               return;
+       }
+
+       elm_gengrid_item_selected_set(item, EINA_FALSE);
+
+       char *label = (char *)elm_object_item_data_get(item);
+       if (!label) {
+               D_EMSG("label is NULL !!");
+               return;
+       }
+
+       cd->add_menu_clicked = true;
+       D_MSG("label = %s", label);
+
+       msg_ui_composer_unset_view(cd);
+
+       if (cd->isAppControl && cd->isEmulator) {
+               if (!g_strcmp0(label, ("IDS_COM_BODY_SUBJECT"))) {
+                       msg_ui_composer_add_subject(cd);
+               } else {
+                       D_EMSG("Unknown Menu List Item");
+               }
+       } else {
+               if (!g_strcmp0(label, ("IDS_MSG_OPT_IMAGES"))) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_PICK, COMPOSER_PATH_IMAGE);
+               } else if (!g_strcmp0(label, ("IDS_MSG_OPT_VIDEOS"))) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_PICK, COMPOSER_PATH_VIDEO);
+               } else if (!g_strcmp0(label, ("IDS_MSG_OPT_TAKE_PICTURE_ABB"))) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_CAMERA, NULL);
+               } else if (!g_strcmp0(label, ("IDS_MSG_OPT_RECORD_VIDEO_ABB"))) {
+                       int64 msg_size = 0;
+                       int remain_size = 0;
+
+                       if (msg_ui_composer_get_message_size(cd, &msg_size) == COMPOSER_RETURN_SUCCESS) {
+                               remain_size = cd->mms_max_size - (int)msg_size;
+                               D_MSG("remain_size = %d bytes", remain_size);
+                       }
+
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_CAMCORDER, (void *)remain_size);
+               } else if (!g_strcmp0(label, "IDS_MSG_OPT_QUICK_RESPONSE_ABB")) {
+                       msg_ui_composer_create_text_templates_popup(cd);
+               } else if (!g_strcmp0(label, ("IDS_MSG_OPT_AUDIO_FILES_ABB2"))) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_MYFILE_AUDIO, NULL);
+               } else if (!g_strcmp0(label, ("IDS_MSG_BODY_MEMO_T_MAINMENU"))) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_ADD_TEXT_MEMO, NULL);
+               } else {
+                       D_EMSG("Unknown Menu List Item");
+               }
+       }
+
+       msg_common_connect_db();
+
+       int module_id = __get_attach_module_id(label);
+       if (module_id > 0)
+               msg_ui_composer_update_attach_module(module_id);
+
+       msg_common_disconnect_db();
+       MSG_TIMER_OBJECT_DEL(cd->ignore_hw_back_events_timer);
+       cd->ignore_hw_back_events_timer = ecore_timer_add(1.5f, msg_ui_composer_ignore_hw_back_events_timer_cb, cd);
+
+       msg_ui_composer_destroy_popup(cd, cd->add_grid_popup);
+       cd->add_menu_clicked = false;
+
+       D_LEAVE;
+}
+
+static void __replace_popup_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+       if (cd->add_menu_clicked) {
+               D_WMSG("return. cd->add_menu_clicked is set");
+               return;
+       }
+
+       elm_gengrid_item_selected_set(item, EINA_FALSE);
+
+       char *label = (char *)elm_object_item_data_get(item);
+       if (!label) {
+               D_EMSG("label is NULL !!");
+               return;
+       }
+
+       cd->add_menu_clicked = true;
+       D_MSG("label = %s", label);
+
+       if (cd->isAppControl && cd->isEmulator) {
+               if (!g_strcmp0(label, ("IDS_COM_BODY_SUBJECT"))) {
+                       msg_ui_composer_add_subject(cd);
+               } else {
+                       D_EMSG("Unknown Menu List Item");
+               }
+       } else {
+               if (!g_strcmp0(label, ("IDS_MSG_OPT_IMAGES"))) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_PICK, COMPOSER_PATH_IMAGE);
+               } else if (!g_strcmp0(label, ("IDS_MSG_OPT_VIDEOS"))) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_PICK, COMPOSER_PATH_VIDEO);
+               } else if (!g_strcmp0(label, ("IDS_MSG_OPT_TAKE_PICTURE_ABB"))) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_CAMERA, NULL);
+               } else if (!g_strcmp0(label, ("IDS_MSG_OPT_RECORD_VIDEO_ABB"))) {
+                       int64 msg_size = 0;
+                       int remain_size = 0;
+                       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;
+                       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, cd->current_edit_entry);
+
+                       if (msg_ui_composer_get_message_size(cd, &msg_size) == COMPOSER_RETURN_SUCCESS) {
+                               remain_size = cd->mms_max_size - ((int)msg_size - msg_composer_get_file_size(page_data->image_file_path));
+                               D_MSG("remain_size = %d bytes", remain_size);
+                       }
+
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_CAMCORDER, (void *)remain_size);
+               } else if (!g_strcmp0(label, ("IDS_MSG_OPT_AUDIO_FILES_ABB2"))) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_MYFILE_AUDIO, NULL);
+               } else {
+                       D_EMSG("Unknown Menu List Item");
+               }
+       }
+
+       MSG_TIMER_OBJECT_DEL(cd->ignore_hw_back_events_timer);
+       cd->ignore_hw_back_events_timer = ecore_timer_add(1.5f, msg_ui_composer_ignore_hw_back_events_timer_cb, cd);
+
+       if (cd->replace_grid_popup) {
+               msg_ui_composer_destroy_popup(cd, cd->replace_grid_popup);
+               cd->replace_grid_popup = NULL;
+       }
+       cd->add_menu_clicked = false;
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_create_replace_grid_popup(void *data, COMPOSER_MEDIA_TYPE_E type)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *popup = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *gengrid = NULL;
+       int count = 0;
+       int w = 0;
+       int h = 0;
+
+       if (cd->replace_grid_popup) {
+               msg_ui_composer_destroy_popup(cd, cd->replace_grid_popup);
+               cd->replace_grid_popup = NULL;
+       }
+       popup = msg_ui_composer_create_list_popup(cd, MESSAGE_PKGNAME, "IDS_MSGC_OPT_EDIT_ITEM_REPLACE", NULL, NULL);
+       elm_popup_orient_set(popup, ELM_POPUP_ORIENT_BOTTOM);
+
+       layout = elm_layout_add(popup);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       /* create gengrid */
+       gengrid = msg_ui_composer_create_gengrid_popup(layout);
+
+       w = (int)(ELM_SCALE_SIZE(156)); /* Gengrid item width (image area width + left/right padding) from Winset UX Guide */
+       h = (int)(ELM_SCALE_SIZE(167)); /* Gengrid item height (image area height + top/bottom padding) from Winset UX Guide */
+       elm_gengrid_item_size_set(gengrid, w, h);
+
+       replace_popup_gic.item_style = "default";
+       replace_popup_gic.func.text_get = __add_popup_grid_text_get;
+       replace_popup_gic.func.content_get = __replace_popup_grid_content_get;
+       replace_popup_gic.func.state_get = NULL;
+       replace_popup_gic.func.del = NULL;
+
+       Elm_Object_Item *list_item = NULL;
+
+       if (type == COMPOSER_MEDIA_TYPE_VIDEO || type == COMPOSER_MEDIA_TYPE_IMAGE) {
+               list_item = elm_gengrid_item_append(gengrid, &replace_popup_gic, (void *)("IDS_MSG_OPT_IMAGES"), __replace_popup_item_selected_cb, data);
+               elm_object_item_domain_text_translatable_set(list_item, MESSAGE_PKGNAME, EINA_TRUE);
+               ++count;
+               list_item = elm_gengrid_item_append(gengrid, &replace_popup_gic, (void *)("IDS_MSG_OPT_TAKE_PICTURE_ABB"), __replace_popup_item_selected_cb, data);
+               elm_object_item_domain_text_translatable_set(list_item, MESSAGE_PKGNAME, EINA_TRUE);
+               ++count;
+               list_item = elm_gengrid_item_append(gengrid, &replace_popup_gic, (void *)("IDS_MSG_OPT_VIDEOS"), __replace_popup_item_selected_cb, data);
+               elm_object_item_domain_text_translatable_set(list_item, MESSAGE_PKGNAME, EINA_TRUE);
+               ++count;
+               list_item = elm_gengrid_item_append(gengrid, &replace_popup_gic, (void *)("IDS_MSG_OPT_RECORD_VIDEO_ABB"), __replace_popup_item_selected_cb, data);
+               elm_object_item_domain_text_translatable_set(list_item, MESSAGE_PKGNAME, EINA_TRUE);
+               ++count;
+       } else {
+               list_item = elm_gengrid_item_append(gengrid, &replace_popup_gic, (void *)("IDS_MSG_OPT_AUDIO_FILES_ABB2"), __replace_popup_item_selected_cb, data);
+               elm_object_item_domain_text_translatable_set(list_item, MESSAGE_PKGNAME, EINA_TRUE);
+               ++count;
+       }
+
+       int rot = elm_win_rotation_get(cd->main_window);
+
+       if (rot == COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN || rot == COMPOSER_ROTATE_LANDSCAPE) {
+               if (count < 4) {
+                       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_landscape_1line");
+               } else {
+                       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_landscape_2line");
+               }
+       } else {
+               if (count < 4) {
+                       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_portrait_1line");
+               } else {
+                       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_portrait_2line");
+               }
+       }
+
+       evas_object_show(gengrid);
+       evas_object_data_set(popup, "gengrid_item_count", (void *)count);
+       elm_object_part_content_set(layout, "elm.swallow.content", gengrid);
+       elm_object_content_set(popup, layout);
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+       elm_object_focus_allow_set(gengrid, EINA_TRUE);
+
+       cd->replace_grid_popup = popup;
+
+       D_LEAVE;
+}
+
+void __msgc_create_add_attach_grid_popup(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *popup = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *gengrid = NULL;
+       int count = 0;
+       int w = 0;
+       int h = 0;
+
+       if (cd->add_grid_popup) {
+               msg_ui_composer_destroy_popup(cd, cd->add_grid_popup);
+               cd->add_grid_popup = NULL;
+       }
+
+       popup = msg_ui_composer_create_list_popup(cd, MESSAGE_PKGNAME, "IDS_MSG_HEADER_ADD_CONTENT_ABB", NULL, NULL);
+       elm_popup_orient_set(popup, ELM_POPUP_ORIENT_BOTTOM);
+
+       layout = elm_layout_add(popup);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       /* create gengrid */
+       gengrid = msg_ui_composer_create_gengrid_popup(layout);
+
+       w = (int)(ELM_SCALE_SIZE(156)); /* Gengrid item width (image area width + left/right padding) from Winset UX Guide */
+       h = (int)(ELM_SCALE_SIZE(167)); /* Gengrid item height (image area height + top/bottom padding) from Winset UX Guide */
+       elm_gengrid_item_size_set(gengrid, w, h);
+
+       attach_popup_gic.item_style = "default";
+       attach_popup_gic.func.text_get = __add_popup_grid_text_get;
+       attach_popup_gic.func.content_get = __add_popup_grid_content_get;
+       attach_popup_gic.func.state_get = NULL;
+       attach_popup_gic.func.del = NULL;
+
+       Elm_Object_Item *list_item = NULL;
+       Eina_List *module_list = NULL;
+       msg_common_connect_db();
+
+       module_list = msg_ui_composer_get_attach_module_list();
+       if (module_list) {
+               int i = 0;
+               int module_cnt = eina_list_count(module_list);
+               D_MSG("module list count = %d", module_cnt);
+
+               for (i = 0; i < module_cnt; i++) {
+                       MSG_COMPOSER_ATTACH_MODULE_S *attach_module = eina_list_nth(module_list, i);
+                       if (attach_module == NULL || attach_module->module_name == NULL) {
+                               D_EMSG("attach_module is invalid");
+                               continue;
+                       }
+                       /* get module string and string type to append list */
+                       int module_max = (sizeof(module_info_list) / sizeof(ATTACH_MODULE_INFO_S));
+                       int module_index = 0;
+                       for (module_index = 0; module_index < module_max; module_index++) {
+                               if (!strcmp(module_info_list[module_index].module_name, attach_module->module_name)) {
+                                       D_MSG("module_id : %d, module : %s, string_type : %d, string : %s", module_info_list[module_index].module_id, module_info_list[module_index].module_name, module_info_list[module_index].string_type, module_info_list[module_index].module_string);
+
+                                       list_item = elm_gengrid_item_append(gengrid, &attach_popup_gic, (void *)module_info_list[module_index].module_string, __add_popup_item_selected_cb, data);
+                                       if (module_info_list[module_index].string_type == STRING_TYPE_SYSTEM)
+                                               elm_object_item_domain_text_translatable_set(list_item, SYSTEM_STRING_PKGNAME, EINA_TRUE);
+                                       else
+                                               elm_object_item_domain_text_translatable_set(list_item, MESSAGE_PKGNAME, EINA_TRUE);
+
+                                       ++count;
+
+                                       break;
+                               }
+                       }
+               }
+
+               msg_ui_composer_free_attach_module_list(&module_list);
+       } else {
+               D_EMSG("module_list is NULL");
+       }
+
+       msg_common_disconnect_db();
+
+       int rot = elm_win_rotation_get(cd->main_window);
+
+       if (rot == COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN || rot == COMPOSER_ROTATE_LANDSCAPE) {
+               if (count < 4) {
+                       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_landscape_1line");
+               } else {
+                       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_landscape_2line");
+               }
+       } else {
+               if (count < 4) {
+                       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_portrait_1line");
+               } else if (count < 7) {
+                       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_portrait_2line");
+               } else {
+                       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_portrait_3line");
+               }
+       }
+
+       evas_object_data_set(popup, "gengrid_item_count", (void *)count);
+       evas_object_show(gengrid);
+       elm_object_part_content_set(layout, "elm.swallow.content", gengrid);
+       elm_object_content_set(popup, layout);
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       cd->add_grid_popup = popup;
+
+       D_LEAVE;
+}
+
+static void __msgc_unsupported_character_popup_yes_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");
+
+       msg_ui_composer_destroy_popup(cd, cd->popup_end);
+
+       cd->send_check_exception_type |= SEND_CHECK_EXCEPTION_TYPE_ENCODING_MODE;
+       msg_ui_composer_common_message_send(cd);
+
+       D_LEAVE;
+}
+
+static void __msgc_unsupported_character_popup_no_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");
+       /* Be careful when you use obj, because this cb funtion is used for clicked cb and back key */
+
+       msg_ui_composer_destroy_popup(cd, cd->popup_end);
+       msg_ui_composer_last_focus_load(cd);
+
+       D_LEAVE;
+}
+
+static void __msgc_unsupported_character_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *)event_info;
+
+       if (ev->button == 3) {/* if mouse right button is up */
+               D_MSG("Back operation");
+               msg_ui_composer_destroy_popup(cd, cd->popup_end);
+               msg_ui_composer_last_focus_load(cd);
+       }
+}
+
+static COMPOSER_RETURN_TYPE_E __msgc_check_condition_to_send_msg(void *data, int check_exption_type)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "composer data is NULL");
+
+       /*Check recipient available sending*/
+       RECIPIENT_S *rd = cd->recipient;
+       if (rd && rd->mode == EDIT_RECIP_MODE) {
+               /*add recipient, if entry text exist*/
+               Evas_Object *entry = rd->entry;
+               char *entry_txt = elm_entry_markup_to_utf8(elm_entry_entry_get(entry));
+               if (entry_txt) {
+                       if (false == rd->was_entry_empty) {
+                               if (strlen(entry_txt) > 0) {
+                                       Elm_Object_Item *item = NULL;
+                                       char *markup_str = elm_entry_utf8_to_markup(entry_txt);
+
+                                       item = elm_multibuttonentry_item_append(rd->mbe, markup_str, NULL, NULL);
+                                       if (item == NULL) {
+                                               /* when we call elm_multibuttonentry_item_append(), it will internally call msg_ui_recipient_mbe_item_filter_cb(),
+                                                * here in this CB we are checking for all conditions and again at the end of that API we are calling
+                                                * elm_multibuttonentry_item_append(), which means it will again call msg_ui_recipient_mbe_item_filter_cb(),
+                                                * so when this API is called for 2nd time without checking anything we will just return EINA_TRUE saying
+                                                * "This is a checked item before append" and in the first callback to msg_ui_recipient_mbe_item_filter_cb()
+                                                * we will return EINA_FALSE, which means the return value for elm_multibuttonentry_item_append() will be NULL.
+                                                * If the contact was not added succesfully then notify_popup_idler and is_required_address_popup will get
+                                                *      set to display "Invalid recipient" popup */
+
+                                               D_MSG("rd->notify_popup_idler = %p, rd->is_required_address_popup = %d", rd->notify_popup_idler, rd->is_required_address_popup);
+                                               if (NULL != rd->notify_popup_idler) {
+                                                       g_free(entry_txt);
+                                                       MSG_FREE(markup_str);
+
+                                                       return COMPOSER_RETURN_FAIL;
+                                               }
+                                       } else {
+                                               D_MSG("set recipient data directly");
+                                               /* set recipient data to mbe item directly, because mbe_item_added_cb is called after send_btn_clicked_cb */
+                                               char *bt_label = elm_entry_markup_to_utf8(elm_object_item_text_get(item));
+                                               if (bt_label) {
+                                                       RECIPIENT_ITEM_S *recipient_item = NULL;
+                                                       recipient_item = msg_ui_composer_recipient_item_make_by_string(bt_label);
+                                                       if (recipient_item) {
+                                                               elm_object_item_text_set(item, recipient_item->display_name);
+                                                               elm_object_item_data_set(item, recipient_item);
+                                                       } else {
+                                                               elm_object_item_del(item);
+                                                       }
+
+                                                       g_free(bt_label);
+                                               } else {
+                                                       D_EMSG("button label is null");
+                                               }
+                                       }
+
+                                       MSG_FREE(markup_str);
+                               }
+                               elm_entry_entry_set(entry, "");
+                       }
+
+                       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_common_create_noti_toast_popup("IDS_MSG_TPOP_ADD_RECIPIENTS");
+
+                       /* 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);
+
+                               Evas_Object *entry = msg_ui_composer_recipient_entry_get(cd->recipient);
+                               if (entry) {
+                                       msg_ui_composer_entry_input_panel_show(entry);
+                               }
+
+                               msg_ui_composer_recipient_create_no_recipient_icon(cd->recipient);
+                       }
+
+                       return COMPOSER_RETURN_FAIL;
+               }
+       }
+#if 0
+       /* check no sim */
+       if (!msg_common_is_sim_inserted()) {
+               D_WMSG("NO sim mode");
+               msg_ui_composer_create_text_btn_popup(cd, _MSGSTR("IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"), 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+               return COMPOSER_RETURN_FAIL;
+       }
+#endif
+
+       if (!(check_exption_type & SEND_CHECK_EXCEPTION_TYPE_ENCODING_MODE)) {
+               if (cd->msg_type == COMPOSER_MSG_TYPE_SMS) {
+                       if (cd->body_data.page_list) {
+                               MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+                               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(cd->body_data.page_list, 0);
+
+                               if (page_data && page_data->text_info.encode == COMPOSER_CHAR_ENCODE_GSM7_ABNORMAL) {
+                                       if (cd->popup_end) {
+                                               msg_ui_composer_destroy_popup(cd, cd->popup_end);
+                                               cd->popup_end = NULL;
+                                       }
+
+                                       Evas_Object *popup = msg_ui_composer_create_text_popup_with_hardkey_cb(cd->main_window, cd, _MSGSTR("IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"),
+                                                                                                                                                                                       __msgc_unsupported_character_popup_mouseup_cb, __msgc_unsupported_character_popup_no_btn_clicked_cb);
+                                       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_HEADER_ATTENTION");
+                                       Evas_Object *negative_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_SK_NO_ABB");
+                                       elm_object_part_content_set(popup, "button1", negative_btn);
+                                       evas_object_smart_callback_add(negative_btn, "clicked", __msgc_unsupported_character_popup_no_btn_clicked_cb, cd);
+                                       Evas_Object *positive_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BODY_YES");
+                                       elm_object_part_content_set(popup, "button2", positive_btn);
+                                       evas_object_smart_callback_add(positive_btn, "clicked", __msgc_unsupported_character_popup_yes_btn_clicked_cb, cd);
+                                       elm_object_focus_set(popup, EINA_TRUE);
+                                       evas_object_show(popup);
+                                       cd->popup_end = popup;
+
+                                       return COMPOSER_RETURN_FAIL;
+                               }
+                       }
+               }
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+void msg_ui_composer_body_make_and_send_message(void *data, int check_exception_type)
+{
+       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;
+
+       msg_ui_composer_send_btn_disabled_set(cd, EINA_TRUE);
+
+       /*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 = COMPOSER_RETURN_FAIL;
+       int encode = cd->encode_mode;
+
+       /* check exceptional Korean case in gsm7 mode */
+       if ((cd->changed_encode_mode == MSG_ENCODE_AUTO) && (cd->encode_mode == MSG_ENCODE_GSM7BIT))
+               encode = MSG_ENCODE_AUTO;
+
+#if _MSG_FEATURE_DSDS_ENABLED
+       ret = msg_ui_composer_message_make_and_send(cd->msg_handle, cd->msg_id, encode, &tid, cd->sim_number);
+#else
+       ret = msg_ui_composer_message_make_and_send(cd->msg_handle, cd->msg_id, encode, &tid);
+#endif
+
+       /* reset region info */
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       body_data->region_order = COMPOSER_REGION_ORDER_IMAGE_TOP;
+       cd->send_check_exception_type = SEND_CHECK_EXCEPTION_TYPE_NONE;
+
+       if (ret == COMPOSER_RETURN_SUCCESS) {
+               int curr_sim_idx = 0;
+               preference_get_int(KEY_MSG_APP_RESET_SIM_INDEX, &curr_sim_idx);
+               if (curr_sim_idx != 0) {
+                       D_MSG("Launch the reset SIM process");
+                       msg_ui_composer_launch_reset_sim_process(curr_sim_idx, 0, tid);
+               }
+               D_MSG("Send Success");
+               cd->has_emoticon = false;
+
+               if (cd->composer_mode == MSG_COMPOSER_MODE_FORWARD) {
+                       /* set saved msg flag */
+                       cd->disable_auto_save_mode = true;
+                       ug_destroy_me(cd->ug);
+               } else if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+                       msg_ui_composer_show_bubble_view(cd, tid);
+
+                       /* Below Line is Added Because , After msg_ui_clear_composer is called , message type will be reset to SMS.
+                        * But we need to check the message type in __msg_ui_composer_sent_status_cb function. So storing the messgae type value ,before composer_clear */
+                       msg_ui_composer_clear(cd);
+
+                       app_control_h svc_handle = NULL;
+                       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                               D_EMSG("app_control_create() is failed !!");
+                       } else {
+                               char buf[DEF_BUF_LEN_S] = {0,};
+                               snprintf(buf, sizeof(buf), "%d", tid);
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+
+                               if (cd->ug)
+                                       ug_send_result(cd->ug, svc_handle);
+                               app_control_destroy(svc_handle);
+                       }
+               } else {
+                       msg_ui_composer_clear(cd);
+               }
+
+       } else {
+               if (cd->composer_mode == MSG_COMPOSER_MODE_FORWARD) {
+                       D_EMSG("Send Fail : Unable Send");
+                       /* set saved msg flag */
+                       cd->disable_auto_save_mode = true;
+                       ug_destroy_me(cd->ug);
+               } else {
+                       msg_ui_composer_unset_view(cd);
+                       if (ret == COMPOSER_RETURN_MEMORY_FULL) {
+                               D_EMSG("Send Fail : Memory Full");
+                               msg_ui_composer_create_memory_full_popup(cd);
+                       } else {
+                               D_EMSG("Send Fail : Unable Send");
+                               msg_ui_composer_create_text_btn_popup(cd, _MSGSTR("IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"), 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+                       }
+               }
+
+               msg_ui_composer_send_btn_disabled_set(cd, EINA_FALSE);
+       }
+
+       cd->composer_mode = MSG_COMPOSER_MODE_NORMAL;
+       cd->msg_id = 0;
+       cd->changed_encode_mode = cd->encode_mode;
+
+       msg_ui_composer_set_body_keypad_layout(cd, ELM_INPUT_PANEL_LAYOUT_NORMAL);
+       msg_ui_composer_message_destroy();
+       D_LEAVE;
+       return;
+
+error_return:
+       msg_ui_composer_set_body_keypad_layout(cd, ELM_INPUT_PANEL_LAYOUT_NORMAL);
+       msg_ui_composer_message_destroy();
+
+       msg_ui_composer_send_btn_disabled_set(cd, EINA_FALSE);
+
+       D_LEAVE;
+}
+
+void msgi_ui_composer_body_send_message(MSG_COMPOSER_VIEW_DATA_S *cData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cData == NULL, "Composer Data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)cData;
+
+       msg_ui_composer_send_btn_disabled_set(cd, EINA_TRUE);
+
+       cd->send_check_exception_type = SEND_CHECK_EXCEPTION_TYPE_NONE;
+       msg_ui_composer_body_make_and_send_message(cd, cd->send_check_exception_type);
+
+       /* Destroy "Send via" list popup*/
+       if (cd->send_via_popup) {
+               msg_ui_composer_destroy_popup(cd, cd->send_via_popup);
+               cd->send_via_popup = NULL;
+       }
+
+       D_LEAVE;
+       return;
+}
+
+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, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       if (msg_common_is_sim_active()) {
+               if (__msgc_check_condition_to_send_msg(cd, cd->send_check_exception_type) != COMPOSER_RETURN_SUCCESS) {
+                       D_EMSG("__msgc_check_condition_to_send_msg is failed");
+                       msg_ui_composer_send_btn_disabled_set(cd, EINA_FALSE);
+                       return;
+               } else {
+                       msg_ui_composer_common_message_send(cd);
+                       return;
+               }
+       }
+
+       /* check flight mode */
+       if (msg_ui_composer_message_flight_mode_check_and_change(cd, NULL) != COMPOSER_RETURN_SUCCESS) {
+               D_MSG("FLIGHT MODE WAS ENABLED");
+               return;
+       } else {
+               D_WMSG("NO SIM mode");
+               msg_ui_composer_unset_view(cd);
+               msg_ui_composer_create_text_btn_popup(cd, _MSGSTR("IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"), 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       evas_object_del(cd->body_ctx_popup);
+       cd->body_ctx_popup = NULL;
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_add_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       Evas_Object *icon = elm_object_part_content_get(cd->add_button, "button_center_part");
+       if (icon  != NULL) {
+               D_MSG("Contact button icon part get SUCCESS.");
+               evas_object_color_set(icon, COLOR_ADD_BUTTON_PRESSED);
+       }
+}
+
+void msg_ui_composer_body_add_btn_unpressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       Evas_Object *icon = elm_object_part_content_get(cd->add_button, "button_center_part");
+       if (icon  != NULL) {
+               D_MSG("Contact button icon part get SUCCESS.");
+               evas_object_color_set(icon, COLOR_ADD_BUTTON);
+       }
+}
+void msg_ui_composer_body_add_btn_clicked_cb(void *data, 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;
+
+       if (EINA_TRUE == msg_ui_composer_popup_exist(cd)) {
+               D_EMSG("There is a popup which is created already, so no need to display the attach popup");
+               return;
+       }
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+               RECIPIENT_S *rd = cd->recipient;
+               D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+               char *recipient_str = NULL;
+               bool is_exception_case = FALSE;
+
+               recipient_str = elm_entry_markup_to_utf8(elm_entry_entry_get(rd->entry));
+               if (recipient_str != NULL) {
+                       if (strlen(recipient_str) > 0) {
+                               is_exception_case = is_all_exception_characters(recipient_str);
+                               if (is_exception_case) {
+                                       D_MSG("All spaces case.");
+                                       elm_entry_entry_set(rd->entry, "");
+                               }
+                       }
+                       free(recipient_str);
+                       recipient_str = NULL;
+               }
+
+               if ((msg_ui_composer_recipient_addr_type_get(cd->recipient) == COMPOSER_RECP_ADDR_INVALID) && (msg_ui_composer_recipient_check_showing_popup_condition(cd) == TRUE) && (is_exception_case == FALSE)) {
+                       Evas_Object *entry = msg_ui_composer_last_focused_entry_get(cd);
+                       if (entry) {
+                               elm_object_focus_set(entry, EINA_TRUE);
+                       }
+                       msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID");
+                       return;
+               }
+       }
+
+       msg_ui_show_attach_panel(cd);
+       msg_ui_composer_entry_input_panel_hide(cd->last_focus_entry);
+
+       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 = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       /* it is used as checking variable when image content should be removed according to backspace scenario */
+       cd->entry_changed_called = true;
+#endif
+
+       if (cd->is_maximum_char) {
+               cd->is_maximum_char = false;
+
+               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_MAXLENGHT_CHAR);
+               return;
+       }
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER)
+               msg_ui_composer_change_body_layout_mode(cd, cd->rotate);
+
+       msg_ui_composer_message_type_check_and_change(cd);
+       msg_ui_composer_body_info_area_update(cd); /* position changed so that new disabled state can be detected while making focus chain for tab key */
+
+       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");
+       RECIPIENT_S *rd = cd->recipient;
+       if (rd != NULL) {
+               rd->return_pressed = FALSE;
+       }
+
+       if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true) {
+               elm_entry_context_menu_disabled_set(obj, EINA_TRUE);
+       } else {
+               if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+                       msg_ui_composer_recipient_hide_mbe_and_update_entry(rd);
+               }
+               elm_entry_context_menu_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;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+               RECIPIENT_S *rd = cd->recipient;
+               D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+               if (false == rd->was_entry_empty)
+                       msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+
+               if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == false) {
+                       msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+                       msg_ui_composer_recipient_destroy_no_recipient_icon(cd->recipient);
+               }
+       }
+
+       if (elm_entry_input_panel_enabled_get(obj) == EINA_FALSE) {
+               if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == false) {
+                       Ecore_IMF_Context *entry_ctx = elm_entry_imf_context_get(obj);
+                       ecore_imf_context_input_panel_layout_set(entry_ctx, ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL);
+                       msg_ui_composer_entry_input_panel_show(obj);
+               }
+       }
+
+       msg_ui_composer_hide_attach_focus(cd);
+
+       msg_ui_composer_body_info_area_update(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");
+
+       MSG_COMPOSER_BODY_PAGE_S *page_data = msg_ui_composer_body_get_page_by_index(cd, cd->current_edit_entry);
+       D_MSG_RETM_IF(page_data == NULL, "Page data is NULL");
+
+
+       if (cd->body_data.is_body_focus && !page_data->is_image_focus && !page_data->is_sound_focus) {
+               msg_ui_composer_body_input_field_focus_set(cd, false);
+       }
+
+       if (cd->is_keypad_show && cd->on_press_power_key)
+               cd->not_hiding_keypad_flag = true;
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_entry_cursor_changed_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");
+       D_MSG_RETM_IF(obj == NULL, "entry obj is NULL");
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       D_MSG_RETM_IF(body_data == NULL, "body_data is NULL");
+
+       int page_count = body_data->page_count;
+       Evas_Object *entry = NULL;
+
+       Eina_List *page_list = body_data->page_list;
+       if (page_count == 1) {
+               entry = obj;
+       } else {
+               MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+               int i = 0;
+               for (i = page_count - 1; i >= 0; i--) {
+                       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, i);
+                       if (page_data) {
+                               if (page_data->entry == obj) {
+                                       entry = obj;
+                                       break;
+                               }
+                       }
+               }
+       }
+
+       D_MSG("current_edit_entry [%d : %p]", cd->current_edit_entry, entry);
+       D_MSG_RETM_IF(entry == NULL, "entry is NULL");
+
+       if (cd->current_edit_entry + 1 == page_count) { /* edit the last page entry. */
+               Evas_Coord x = 0, y = 0, w = 0, h = 0;
+               Evas_Coord x2 = 0, y2 = 0, w2 = 0, h2 = 0;
+
+               elm_entry_cursor_geometry_get(entry, &x, &y, &w, &h);
+               evas_object_geometry_get(entry, &x2, &y2, &w2, &h2);
+
+               if (h2-y <= 40) {
+                       Evas_Coord child_w = 0, child_h = 0, region_w = 0, region_h = 0, region_x = 0, region_y = 0;
+
+                       D_MSG("move scroller. h2 : %d, y : %d", h2, y);
+                       elm_scroller_child_size_get(cd->main_scroller, &child_w, &child_h);
+                       elm_scroller_region_get(cd->main_scroller, &region_x, &region_y, &region_w, &region_h);
+
+                       elm_scroller_region_show(cd->main_scroller, 0, child_h, region_w, region_h);
+               }
+       }
+
+}
+
+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 (cd->isclosed) {
+               D_MSG("ug close case. return.");
+               return;
+       }
+
+       if (cd->attachment_string) {
+               elm_entry_entry_insert(obj, cd->attachment_string);
+               free(cd->attachment_string);
+               cd->attachment_string = NULL;
+
+               if ((cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) && (cd->recipient != NULL)) {
+                       COMPOSER_RECP_ADDR_E recp_type = msg_ui_composer_recipient_addr_type_get(cd->recipient);
+                       if ((recp_type == COMPOSER_RECP_ADDR_INVALID) || (recp_type == COMPOSER_RECP_ADDR_MAX_REACHED)) {
+                               msg_ui_composer_last_focused_entry_set(cd, cd->recipient->entry);
+                               msg_ui_composer_last_focus_load(cd);
+                               return;
+                       }
+               }
+       }
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+               msg_ui_composer_predictsearch_clear(cd);
+
+               if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true) {
+                       /* 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);
+                       } else if (msg_ui_composer_recipient_addr_type_get(cd->recipient) == COMPOSER_RECP_ADDR_INVALID) {
+                               if (cd->recipient->notify_popup_idler) {
+                                       ecore_idler_del(cd->recipient->notify_popup_idler);
+                                       cd->recipient->notify_popup_idler = NULL;
+                               }
+                               cd->recipient->notify_popup_idler = ecore_idler_add(msg_ui_composer_recipient_invalid_address_popup_cb, cd);
+                       }
+
+                       return;
+               }
+       }
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+               if (cd->recipient) {
+                       cd->recipient->coming_from = NULL;
+                       cd->recipient->going_to = NULL;
+               }
+       }
+
+       if (!cd->body_data.is_body_focus)
+               msg_ui_composer_body_input_field_focus_set(cd, true);
+
+       msg_ui_composer_hide_attach_focus(cd);
+
+       /* hide all highlights of other layout */
+       msg_ui_composer_body_media_layout_focus_hide(cd, COMPOSER_MEDIA_HIDE_ALL, -1);
+
+       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) {
+                                       if (page_data->entry == obj) {
+                                               D_MSG("page NO.[%d]/[%d] focused !!!", i + 1, page_count);
+                                               cd->current_edit_entry = i;
+                                               break;
+                                       }
+                               }
+                       }
+               }
+       } else if (cd->msg_type == COMPOSER_MSG_TYPE_SMS) {
+               cd->current_edit_entry = 0;
+       } else {
+               D_MSG("message composer invalid message type");
+       }
+
+       if (cd->return_from_power_home) {
+               msg_ui_composer_reset_view(cd);
+               cd->return_from_power_home = false;
+       }
+
+       msg_ui_composer_last_focused_entry_set(cd, obj);
+
+       if (cd->center_popup == NULL && cd->composer_mode != MSG_COMPOSER_MODE_NORMAL) {
+               msg_ui_composer_entry_input_panel_show(cd->last_focus_entry);
+       }
+
+       D_LEAVE;
+}
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+/* handles delete key
+ * it can be pressed when layout is selected, so it is handled on layout input_field_key_down_cb */
+void msg_ui_composer_input_field_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Event_Key_Up *ev = (Evas_Event_Key_Up *)event_info;
+
+       D_MSG("ev->keyname = (%s)", ev->keyname);
+
+       if (!strcmp(ev->keyname, "BackSpace")) {
+               MSG_COMPOSER_BODY_PAGE_S *page_data = msg_ui_composer_body_get_page_by_index(cd, cd->current_edit_entry);
+               if (page_data) {
+                       D_MSG("current page index = %d", cd->current_edit_entry);
+
+                       if (page_data->sound_item && page_data->is_sound_focus) {
+                               D_MSG("remove sound layout");
+                               msg_ui_composer_mms_insert_item_remove(cd, page_data->sound_item);
+
+                               if (cd->body_data.region_order == COMPOSER_REGION_ORDER_TEXT_TOP) {
+                                       /* move focus to image layout */
+                                       if (page_data->is_image_item) {
+                                               msg_ui_composer_body_backspace_image_layout_focus_show(cd, page_data);
+                                       } else {
+                                               elm_entry_cursor_end_set(page_data->entry);
+                                               elm_object_focus_set(page_data->entry, EINA_TRUE);
+                                       }
+                               } else {
+                                       /* move focus to entry */
+                                       elm_entry_cursor_end_set(page_data->entry);
+                                       elm_object_focus_set(page_data->entry, EINA_TRUE);
+                               }
+
+                               msg_ui_composer_entry_input_panel_show(page_data->entry);
+
+                               cd->skip_back_key_action = true;
+                       } else if (page_data->image_item && page_data->is_image_focus) {
+                               D_MSG("remove image region layout");
+                               msg_ui_composer_mms_insert_item_remove(cd, page_data->image_item);
+
+                               if (cd->body_data.region_order == COMPOSER_REGION_ORDER_TEXT_TOP)
+                                       elm_entry_cursor_end_set(page_data->entry);
+                               else
+                                       elm_entry_cursor_begin_set(page_data->entry);
+
+                               elm_object_focus_set(page_data->entry, EINA_TRUE);
+                               msg_ui_composer_entry_input_panel_show(page_data->entry);
+
+                               cd->skip_back_key_action = true;
+                       }
+               }
+       }
+}
+
+void msg_ui_composer_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       Evas_Event_Key_Up *ev = (Evas_Event_Key_Up *)event_info;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       D_MSG("ev->keyname = (%s)", ev->keyname)
+
+       if (!strcmp(ev->keyname, "BackSpace")) {
+               D_MSG("backspace is pressed");
+               cd->entry_changed_called = false;
+       }
+}
+
+void msg_ui_composer_key_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       Evas_Event_Key_Up *ev = (Evas_Event_Key_Up *)event_info;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = evas_object_data_get(obj, "page_data");
+
+       if (!strcmp(ev->keyname, "BackSpace")) {
+               D_MSG("backspace is pressed");
+               /* msg_ui_composer_input_field_key_down_cb() is called first and msg_ui_composer_key_up_cb() is called at later
+               So, if layout is deleted in input_field_key_down_cb(), then skip key_up_cb() in order to process BackSpace operation at once.*/
+               if (cd->skip_back_key_action) {
+                       cd->skip_back_key_action = false;
+                       D_MSG("skip back key action");
+                       return;
+               }
+
+               if (page_data) {
+                       int cursor_pos = elm_entry_cursor_pos_get(obj);
+                       D_MSG("cursor_pos = %d", cursor_pos);
+                       /* If changed_cb is called,  character of entry is deleted.
+                           So, image should be removed when cursor is 0 and changed cb is not called.
+                           cd->entry_changed_called is reset in msg_ui_composer_key_down_cb and set in msg_ui_composer_body_entry_changed_cb.
+                       */
+                       if (cursor_pos == 0 && !cd->entry_changed_called) {
+                               D_MSG("changed_cb is not called. Do back space action");
+                               cd->doing_back_key_operation = true;
+                               if (cd->body_data.region_order == COMPOSER_REGION_ORDER_TEXT_TOP) {
+                                       msg_ui_composer_back_space_remove_page(cd, page_data);
+                               } else if (cd->body_data.region_order == COMPOSER_REGION_ORDER_IMAGE_TOP) {
+                                       if (page_data->is_image_item && page_data->image_item) {
+                                               msg_ui_composer_body_backspace_image_layout_focus_show(cd, page_data);
+                                       } else {
+                                               msg_ui_composer_back_space_remove_page(cd, page_data);
+                                       }
+                               } else {
+                                       D_WMSG("invalid cd->body_data.region_order = %d", cd->body_data.region_order);
+                               }
+                               D_MSG("End of backkey operation");
+                               cd->doing_back_key_operation = false;
+                       }
+               } else {
+                       D_EMSG("page_data is NULL");
+               }
+
+               if (cd->entry_changed_called)
+                       cd->entry_changed_called = false;
+       }
+}
+#endif
+
+Evas_Event_Flags msg_ui_composer_body_media_longpress_s_cb(void *data, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EVAS_EVENT_FLAG_ON_HOLD, "data is NULL");
+       Evas_Object *content = (Evas_Object *)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)evas_object_data_get(content, "priv_data");
+
+       if (!cd) {
+               D_EMSG("cd is NULL");
+               goto ret;
+       }
+
+       MSG_COMPOSER_BODY_PAGE_S *page_data = msg_ui_composer_body_get_page_by_content(cd, content);
+       if (!page_data) {
+               D_EMSG("page_data is NULL");
+               goto ret;
+       }
+
+       page_data->loop_count = 0;
+
+ret:
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+static void __msgc_media_option_popup_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       Evas_Object *content = (Evas_Object *)data;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+       elm_list_item_selected_set(item, EINA_FALSE);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)evas_object_data_get(content, "priv_data");
+       if (!cd) {
+               D_EMSG("cd is NULL !!");
+               return;
+       }
+
+       char *label = (char *)elm_object_item_data_get(item);
+       if (!label) {
+               D_EMSG("label is NULL !!");
+               goto ret;
+       }
+
+       if (!strcmp(label, _MSGSTR("IDS_MSGC_OPT_EDITITEM_REMOVE"))) {
+               MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+               page_data = msg_ui_composer_body_get_page_by_content(cd, content);
+               msg_ui_composer_body_remove_cur_page(cd, page_data, 1);
+       } else {
+               D_EMSG("Unknown Menu List Item");
+       }
+
+       D_LEAVE;
+ret:
+       msg_ui_composer_destroy_popup(cd, cd->center_popup);
+}
+
+
+Evas_Event_Flags msg_ui_composer_body_media_longpress_m_cb(void *data, void *event_info)
+{
+       D_MSG_RETVM_IF(data == NULL, EVAS_EVENT_FLAG_ON_HOLD, "data is NULL");
+       Evas_Object *content = (Evas_Object *)data;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       MSG_COMPOSER_VIEW_DATA_S *cd = NULL;
+
+       cd = (MSG_COMPOSER_VIEW_DATA_S *)evas_object_data_get(content, "priv_data");
+       if (!cd) {
+               D_EMSG("cd is NULL");
+               goto ret;
+       }
+
+       page_data = msg_ui_composer_body_get_page_by_content(cd, content);
+       if (!page_data) {
+               D_EMSG("page_data is NULL");
+               goto ret;
+       }
+
+       page_data->loop_count += 1;
+
+       if (page_data->loop_count == 1) {
+               COMPOSER_MEDIA_TYPE_E type = COMPOSER_MEDIA_TYPE_UNKNOWN;
+
+
+               if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+
+                       RECIPIENT_S *rd = cd->recipient;
+                       if (!rd) {
+                               D_EMSG("Recipient Data is NULL");
+                               goto ret;
+                       }
+
+                       if (false == rd->was_entry_empty) {
+                               msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+                               elm_object_focus_set(content, EINA_FALSE);
+                       }
+
+                       if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true)
+                               goto ret;
+               }
+
+               if (page_data->image_item == content) {
+                       if (page_data->isVideo)
+                               type = COMPOSER_MEDIA_TYPE_VIDEO;
+                       else
+                               type = COMPOSER_MEDIA_TYPE_IMAGE;
+               } else if (page_data->sound_item == content) {
+                       type = COMPOSER_MEDIA_TYPE_AUDIO;
+               } else {
+                       D_EMSG("Invalid media state");
+               }
+
+               if (type != COMPOSER_MEDIA_TYPE_UNKNOWN) {
+                       /* move focus to current content's page.
+                       * media_longpress_m_cb's action + media_btn_pressed_cb's action = media_btn_clicked_cb's action */
+                       int page_index = -1;
+                       /* since body got focused hide the recipeint mbe */
+                       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER)
+                               msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+
+                       msg_ui_composer_hide_attach_focus(cd);
+
+                       if (msg_ui_composer_body_get_page_index(cd, page_data, &page_index) == false)
+                               D_EMSG("msg_ui_composer_body_get_page_index is failed");
+
+                       msg_ui_composer_last_focused_entry_set(cd, page_data->entry);
+
+                       if (page_index >= 0)
+                               cd->current_edit_entry = page_index;
+
+                       msg_ui_composer_unset_view(cd);
+
+                       /* move focus to selected content(button) object so that focus is not moved to entry after deleting popup automatically. */
+                       Evas_Object *focus_button = elm_object_part_content_get(content, "swl.content");
+                       if (focus_button)
+                               elm_object_focus_set(focus_button, EINA_TRUE);
+
+                       msg_ui_composer_create_media_option_popup(cd, __msgc_media_option_popup_clicked_cb, content);
+               }
+       }
+ret:
+       return EVAS_EVENT_FLAG_ON_HOLD;
+}
+
+void msg_ui_composer_body_media_btn_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       Evas_Object *content = (Evas_Object *)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)evas_object_data_get(content, "priv_data");
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       /* bellow code is added to reset is_service_launching when select application popup is destroyed by back key
+       ex> longpress inserted sound > play > select application popup > back */
+       cd->is_service_launching = false;
+
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       D_MSG_RETM_IF(body_data == NULL, "Body Data is NULL");
+
+       msg_ui_composer_body_input_field_focus_set(cd, true);
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_media_btn_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       Evas_Object *content = (Evas_Object *)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)evas_object_data_get(content, "priv_data");
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       D_MSG_RETM_IF(body_data == NULL, "Body Data is NULL");
+
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       Eina_List *page_list = body_data->page_list;
+
+       int current_edit_entry = cd->current_edit_entry;
+       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, current_edit_entry);
+       D_MSG_RETM_IF(page_data == NULL, "Page Data is NULL");
+
+       if (elm_entry_input_panel_enabled_get(page_data->entry) == EINA_FALSE) {
+               /* If entry unfocused cb is called while back key operation, keep current keypad show status */
+               if (cd->is_keypad_show) {
+                       msg_ui_composer_entry_input_panel_hide(page_data->entry);
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_media_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       Evas_Object *content = (Evas_Object *)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)evas_object_data_get(content, "priv_data");
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       int page_index = -1;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true)
+               return;
+
+       page_data = msg_ui_composer_body_get_page_by_content(cd, content);
+       if (!page_data) {
+               D_EMSG("page_data is NULL");
+               return;
+       }
+
+       if (msg_ui_composer_body_get_page_index(cd, page_data, &page_index) == false)
+               D_EMSG("msg_ui_composer_body_get_page_index is failed");
+
+       /* update current image & page's focus infomation */
+       if (page_data->sound_item == content) {
+               D_MSG("sound media selected");
+               msg_ui_composer_body_page_sound_layout_focus_show(page_data);
+
+               /* hide highlight of other media layout */
+               if (page_index >= 0)
+                       msg_ui_composer_body_media_layout_focus_hide(cd, COMPOSER_MEDIA_HIDE_EXCEPT_SOUND, page_index);
+
+       } else if (page_data->image_item == content) {
+               D_MSG("image media selected");
+               msg_ui_composer_body_page_image_layout_focus_show(page_data);
+
+               /* hide highlight of other media layout */
+               if (page_index >= 0)
+                       msg_ui_composer_body_media_layout_focus_hide(cd, COMPOSER_MEDIA_HIDE_EXCEPT_IMAGE, page_index);
+
+       } else {
+               D_EMSG("invalid media type");
+       }
+
+       if (!cd->body_data.is_body_focus)
+               msg_ui_composer_body_input_field_focus_set(cd, true);
+
+       D_MSG("page_index = %d", page_index);
+       D_MSG("cd->body_data.is_body_focus = %d", cd->body_data.is_body_focus);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_media_btn_unpressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       Evas_Object *content = (Evas_Object *)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)evas_object_data_get(content, "priv_data");
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       /* btn_unpressed_cb is called after creating longpres popup on longpress_cb */
+       if (cd->center_popup) {
+               D_MSG("cd->center_popup is created. return.");
+               return;
+       }
+
+       if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true)
+               return;
+
+       msg_ui_composer_body_media_layout_focus_hide(cd, COMPOSER_MEDIA_HIDE_ALL, -1);
+
+       D_LEAVE;
+}
+
+static Eina_Bool msg_ui_composer_media_event_idler(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETVM_IF(cd == NULL, EINA_FALSE, "composer data is NULL");
+
+       cd->media_event_idler = NULL;
+       cd->is_media_clicked = false;
+
+       return EINA_FALSE;
+}
+
+void msg_ui_composer_body_media_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       Evas_Object *content = (Evas_Object *)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)evas_object_data_get(content, "priv_data");
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       int page_index = -1;
+
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       /* btn_clicked_cb is called after creating longpres popup on longpress_cb */
+       if (cd->center_popup) {
+               D_MSG("cd->center_popup is created. return.");
+               return;
+       }
+
+       edje_object_signal_emit(_EDJ(content), "play,press,sound", "*");
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+               RECIPIENT_S *rd = cd->recipient;
+               D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+               if (false == rd->was_entry_empty)
+                       msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+
+               if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true)
+                       return;
+               else
+                       msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+       }
+
+       page_data = msg_ui_composer_body_get_page_by_content(cd, content);
+       if (!page_data) {
+               D_EMSG("page_data is NULL");
+               return;
+       }
+
+       msg_ui_composer_hide_attach_focus(cd);
+
+       if (msg_ui_composer_body_get_page_index(cd, page_data, &page_index) == false)
+               D_EMSG("msg_ui_composer_body_get_page_index is failed");
+
+       /* update current image & page's focus infomation */
+       if (page_data->sound_item == content) {
+               D_MSG("sound media selected");
+               page_data->is_sound_focus = true;
+               msg_ui_composer_body_page_sound_layout_focus_show(page_data);
+
+               /* hide highlight of other media layout */
+               if (page_index >= 0)
+                       msg_ui_composer_body_media_layout_focus_hide(cd, COMPOSER_MEDIA_HIDE_EXCEPT_SOUND, page_index);
+
+       } else if (page_data->image_item == content) {
+               D_MSG("image media selected");
+               page_data->is_image_focus = true;
+               msg_ui_composer_body_page_image_layout_focus_show(page_data);
+
+               /* hide highlight of other media layout */
+               if (page_index >= 0)
+                       msg_ui_composer_body_media_layout_focus_hide(cd, COMPOSER_MEDIA_HIDE_EXCEPT_IMAGE, page_index);
+
+       } else {
+               D_EMSG("Invalid media type");
+       }
+
+       msg_ui_composer_last_focused_entry_set(cd, page_data->entry);
+
+       if (page_index >= 0)
+               cd->current_edit_entry = page_index;
+
+       if (!cd->body_data.is_body_focus)
+               msg_ui_composer_body_input_field_focus_set(cd, true);
+
+       D_MSG("page_index = %d", page_index);
+       D_MSG("cd->body_data.is_body_focus = %d", cd->body_data.is_body_focus);
+
+
+       /* msg_ui_composer_page_main_layout_clicked_cb is called after calling msg_ui_composer_body_media_btn_clicked_cb.
+       So, cd->is_media_clicked is set in oder to ignore operation of msg_ui_composer_page_main_layout_clicked_cb and it is initialized in idler
+       */
+       cd->is_media_clicked = true;
+
+       if (cd->media_event_idler) {
+               ecore_idler_del(cd->media_event_idler);
+               cd->media_event_idler = NULL;
+       }
+       cd->media_event_idler = ecore_idler_add(msg_ui_composer_media_event_idler, cd);
+
+       D_LEAVE;
+}
+#if 0
+static bool __msgc_is_cursor_at_last_position(Evas_Object *entry)
+{
+       D_MSG_RETVM_IF(entry == NULL, false, "entry is NULL");
+       Evas_Coord cur_y = 0;
+       Evas_Coord cur_h = 0;
+       Evas_Coord entry_h = 0;
+
+       elm_entry_cursor_geometry_get(entry, NULL, &cur_y, NULL, &cur_h);
+       evas_object_geometry_get(entry, NULL, NULL, NULL, &entry_h);
+
+       if (entry_h == (cur_y + cur_h))
+               return true;
+       else
+               return false;
+}
+#endif
+static void __msgc_move_scroller_to_bottom(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+
+       if (!body_data->page_list) {
+               D_EMSG("body_data->page_list is NULL");
+               return;
+       }
+
+       Evas_Coord child_w = 0;
+       Evas_Coord child_h = 0;
+       Evas_Coord region_w = 0;
+       Evas_Coord region_h = 0;
+
+       elm_scroller_child_size_get(cd->main_scroller, &child_w, &child_h);
+       elm_scroller_region_get(cd->main_scroller, NULL, NULL, &region_w, &region_h);
+       /* D_MSG("content w = %d, h = %d", child_w, child_h); */
+       /* D_MSG("scroller region_w = %d, region_h = %d", region_w, region_h); */
+
+       if (child_h > region_h) {
+               D_MSG("move scroller at bottom");
+               elm_scroller_region_show(cd->main_scroller, 0, child_h, region_w, region_h);
+       }
+}
+
+Eina_Bool ecore_add_attach_media_idler(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       if (cd->is_edit_clicked) {
+               msg_ui_composer_message_set_page_data(cd, 0, false);
+       }
+
+       if (!cd->is_edit_clicked && cd->loading_draft) {
+               PMSG_COMMON_BUBBLE_INFO_S conv_data = (PMSG_COMMON_BUBBLE_INFO_S)evas_object_data_get(cd->input_field_bg, "conv_data");
+
+               if (cd->set_loaded_data_ret != COMPOSER_RETURN_CREATION_WARINING_MODE_FAIL)
+                       msg_ui_composer_message_destroy();
+
+               cd->loading_draft = false;
+               if (conv_data) {
+                       /** delete message */
+                       int err = msg_delete_message(cd->bubble_data->msgHandle, conv_data->msgId);
+                       if (err == MSG_SUCCESS) {
+                               if (cd->bubble_data->bubble_count == 1)
+                                       msg_ui_bubble_change_composer_view(cd->bubble_data);
+                               else
+                                       msg_ui_bubble_list_item_remove(cd->bubble_data, conv_data->msgId);
+                       }
+               }
+               evas_object_data_del(cd->input_field_bg, "conv_data");
+       }
+       if (cd->is_forward) {
+               elm_object_focus_set(cd->recipient->entry, EINA_TRUE); /* Shifting focus to recipient to call recipient focused in forward */
+       } else {
+               Evas_Object *entry = msg_ui_composer_body_get_page_entry(cd, 0); /* In edit message scenario set focus to first entry and cursor end set */
+               elm_object_focus_set(entry, EINA_TRUE);
+               elm_entry_cursor_end_set(entry);
+       }
+
+       if (cd->add_attach_media_idler) {
+               cd->add_attach_media_idler = NULL;
+       }
+       return EINA_FALSE;
+}
+
+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;
+
+       if (cd->isclosed) {
+               D_MSG("ug close case. return.");
+               return;
+       }
+
+       evas_object_geometry_get(obj, &x, &y, &w, &h);
+       D_MSG("body layout height = %d", h);
+       D_MSG("body layout width = %d", w);
+
+       /* This is added for entering the bubble composer, Remaining char count show the 0/1. */
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER)
+               msg_ui_composer_body_is_mms(cd);
+
+       msg_ui_composer_body_info_area_update(cd);
+
+       bool recipient_has_focus = false;
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+               RECIPIENT_S *recipient = cd->recipient;
+               if (recipient && elm_object_focus_get(recipient->entry)) {
+                       recipient_has_focus = true;
+               }
+       }
+
+       if (h > 0) {
+               if (recipient_has_focus) {
+                       /* move scroller to top */
+                       Evas_Coord region_w = 0;
+                       Evas_Coord region_h = 0;
+                       elm_scroller_region_get(cd->main_scroller, NULL, NULL, &region_w, &region_h);
+                       elm_scroller_region_show(cd->main_scroller, 0, 0, region_w, region_h);
+               } else {
+                       /* move scroller to bottom */
+                       __msgc_move_scroller_to_bottom(cd);
+               }
+       }
+       if (cd->add_attach_media_idler) {
+               ecore_idler_del(cd->add_attach_media_idler);
+               cd->add_attach_media_idler = NULL;
+       }
+       if (cd->is_edit_clicked) {
+               D_MSG("Media Idler Added");
+               cd->add_attach_media_idler = ecore_idler_add(ecore_add_attach_media_idler, (void *)cd);
+       }
+
+}
+
+void msg_ui_composer_page_main_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_BODY_PAGE_S *page_data = (MSG_COMPOSER_BODY_PAGE_S *)data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = evas_object_data_get(obj, "private_data");
+       bool set_focus_to_body = false;
+
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       /* page_main_layout_clicked_cb should be called only when empty area which is located at beside inserted image is clicked in a page.
+       But, currently main_layout_clicked_cb is called after making center popup from longpress cb. */
+
+       if (cd->center_popup) {
+               D_MSG("cd->center_popup is created. return.");
+               return;
+       }
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+
+               RECIPIENT_S *rd = cd->recipient;
+               D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+               if (false == rd->was_entry_empty)
+                       msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+
+               if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true)
+                       return;
+               else
+                       msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+       }
+
+       if (cd->is_media_clicked) {
+               D_MSG("Propagated clicked_cb is ignored. return.");
+               cd->is_media_clicked = false;
+               return;
+       }
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+#ifdef MSG_SUPPORT_DEFAULT_HEIGHT_FEATURE      /* this feature is not supported */
+               if (cd->is_default_body_size || (cd->is_keypad_show == false)) {
+                       D_MSG("bubble view mode, is_default size body %d", cd->is_default_body_size)
+                       cd->is_default_body_size = false;
+                       set_focus_to_body = true;
+               }
+#else
+               cd->is_default_body_size = false;
+               set_focus_to_body = true;
+#endif
+       } else {
+               set_focus_to_body = true;
+       }
+
+       if (set_focus_to_body) {
+               elm_object_focus_set(page_data->entry, EINA_TRUE);
+               if (!cd->body_data.is_body_focus) {
+                       msg_ui_composer_body_input_field_focus_set(cd, true);
+               }
+
+               if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true) {
+                       if (msg_ui_composer_popup_exist(cd))
+                               msg_ui_composer_popup_focus(cd);
+                       return;
+               }
+               msg_ui_composer_entry_input_panel_show(page_data->entry);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_attach_panel_result_cb(attach_panel_h attach_panel,
+               attach_panel_content_category_e content_category,
+               app_control_h result,
+               app_control_result_e result_code,
+               void *user_data)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)user_data;
+       char **select = NULL;
+       int i = 0;
+       int length = 0;
+       int ret = APP_CONTROL_ERROR_NONE;
+
+       D_MSG_RETM_IF(!cd, "cd is null");
+       D_MSG_RETM_IF(!result, "result is null");
+       D_MSG_RETM_IF(APP_CONTROL_RESULT_SUCCEEDED != result_code, "wrong result_code: %d", result_code);
+
+       ret = app_control_get_extra_data_array(result, APP_CONTROL_DATA_ITEM_ID, &select, &length);
+       if (APP_CONTROL_ERROR_NONE == ret) {
+               for (i = 0; i < length; i++) {
+                       D_MSG("item_id is %s[%d]", select[i], i);
+               }
+       }
+
+       ret = app_control_get_extra_data_array(result, APP_CONTROL_DATA_VCS_PATH, &select, &length);
+       if (APP_CONTROL_ERROR_NONE == ret) {
+               for (i = 0; i < length; i++) {
+                       D_MSG("vcs_path is %s[%d]", select[i], i);
+               }
+       }
+
+       ret = app_control_get_extra_data_array(result, APP_CONTROL_DATA_PHONE, &select, &length);
+       if (APP_CONTROL_ERROR_NONE == ret) {
+               for (i = 0; i < length; i++) {
+                       D_MSG("phone is %s[%d]", select[i], i);
+               }
+       }
+
+       ret = app_control_get_extra_data_array(result, APP_CONTROL_DATA_EMAIL, &select, &length);
+       if (APP_CONTROL_ERROR_NONE == ret) {
+               for (i = 0; i < length; i++) {
+                       D_MSG("email is %s[%d]", select[i], i);
+               }
+       }
+
+       ret = app_control_get_extra_data_array(result, APP_CONTROL_DATA_SELECTED, &select, &length);
+       if (APP_CONTROL_ERROR_NONE == ret && length > 0) {
+               _attach_panel_selected_cb(cd, attach_panel, content_category, select, length);
+               free(select);
+       }
+}
+
+static void _attach_panel_selected_cb(MSG_COMPOSER_VIEW_DATA_S *cd, attach_panel_h attach_panel,
+                                                                               attach_panel_content_category_e content_category, char **select, int length)
+{
+       D_ENTER;
+
+       int i;
+       if (select) {
+               for (i = 0; i < length; i++) {
+                       if (select[i]) {
+                               D_MSG("selected_list[%d] = (%s)", i, select[i]);
+                               cd->attachlist = eina_list_append(cd->attachlist, strdup(select[i]));
+                       }
+               }
+       }
+
+       if (cd->attachlist) {
+               msg_ui_composer_body_items_add(cd);
+       }
+}
diff --git a/composer/src/ui-composer/msg-ui-composer-body-page.c b/composer/src/ui-composer/msg-ui-composer-body-page.c
new file mode 100755 (executable)
index 0000000..9a07077
--- /dev/null
@@ -0,0 +1,2010 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-composer-body.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-popup.h"
+#include "msg-ui-composer-message.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-recipient.h"
+#include "msg-ui-composer-attachment.h"
+#include "msg-ui-composer-external.h"
+#include "msg-ui-content-utility.h"
+#include "msg-file-util.h"
+
+#include <glib.h>
+
+/*==================================================================================================
+                                     STRUCTURES
+==================================================================================================*/
+
+static void msg_ui_composer_mms_attach_sound_remove(MSG_COMPOSER_BODY_PAGE_S *page_data, Evas_Object *remove_item);
+static void msg_ui_composer_mms_attach_image_remove(MSG_COMPOSER_BODY_PAGE_S *page_data, Evas_Object *remove_item);
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_read_sms_body(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+
+       if (!cd) {
+               D_EMSG("composer view data is NULL ");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+
+       Evas_Object *entry = NULL;
+
+       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(body_data->page_list, 0);
+       if (!page_data) {
+               D_EMSG("page data is not exist");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       entry = page_data->entry;
+       if (!entry) {
+               D_EMSG("sms entry is NULL");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       char *entry_text = g_strdup(elm_entry_entry_get(entry));
+       char *sms_text = NULL;
+       int sms_length = 0;
+
+       if (entry_text) {
+               convert_ps_to_br(entry_text);
+               sms_text = elm_entry_markup_to_utf8(entry_text);
+               if (sms_text == NULL) {
+                       D_EMSG("sms_text is NULL");
+                       g_free(entry_text);
+                       return COMPOSER_RETURN_FAIL;
+               }
+
+               sms_length = strlen(sms_text);
+
+               if (sms_length > 0) {
+                       msg_ui_composer_message_set_sms_body(sms_text);
+               } else {
+                       D_WMSG("sms_length is %d", sms_length);
+               }
+
+               if (sms_text)
+                       g_free(sms_text);
+
+               g_free(entry_text);
+       } else {
+               D_WMSG("entry_text is NULL");
+               sms_length = 0;
+       }
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_read_mms_body(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+
+       if (!cd) {
+               D_EMSG("composer data is NULL");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       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;
+
+       msg_ui_composer_message_set_page_count(page_count);
+
+       if (body_data->region_order == COMPOSER_REGION_ORDER_IMAGE_TOP)
+               msg_ui_composer_message_set_is_text_top(false);
+       else
+               msg_ui_composer_message_set_is_text_top(true);
+
+       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) {
+                       char *body_text;
+                       D_MSG("page duration = %d", page_data->page_duration);
+
+                       msg_ui_composer_message_mms_set_page_duration(i, page_data->page_duration);
+
+                       if (page_data->entry) {
+                               D_MSG("read TEXT region data");
+                               char *entry_text = g_strdup(elm_entry_entry_get(page_data->entry));
+                               convert_ps_to_br(entry_text);
+
+                               body_text = elm_entry_markup_to_utf8(entry_text);
+
+                               if (body_text && strlen(body_text) > 0) {
+                                       msg_ui_composer_message_mms_set_text(body_text, i);
+                               } else {
+                                       D_MSG("no text [%d]", i + 1);
+                               }
+
+                               if (body_text)
+                                       g_free(body_text);
+
+                               g_free(entry_text);
+                       } else {
+                               D_MSG("no page entry @ page [%d]", i + 1);
+                       }
+
+                       if (page_data->is_image_item) {
+                               if (page_data->isVideo) {
+                                       D_MSG("read video region data");
+                                       msg_ui_composer_message_mms_set_media(page_data->image_file_path, COMPOSER_MEDIA_TYPE_VIDEO, i);
+                               } else {
+                                       D_MSG("read image region data");
+                                       msg_ui_composer_message_mms_set_media(page_data->image_file_path, COMPOSER_MEDIA_TYPE_IMAGE, i);
+                               }
+                       } else {
+                               D_MSG("No [Image] region data");
+                       }
+
+                       if (page_data->is_sound_item) {
+                               D_MSG("read SOUND region data");
+
+                               msg_ui_composer_message_mms_set_media(page_data->sound_file_path, COMPOSER_MEDIA_TYPE_AUDIO, i);
+                       } else {
+                               D_MSG("No [Sound] region data");
+                       }
+               }
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_update_char_count(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object* entry)
+{
+       if (!cd || !entry) {
+               D_EMSG("NULL parameter passed.");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       int char_count = 0;
+       int char_encode = COMPOSER_CHAR_ENCODE_MAX;
+       int page_size = 0;
+       char *body_text = elm_entry_markup_to_utf8(elm_entry_entry_get(entry));
+
+       if (body_text == NULL) {
+               D_EMSG("no text on there");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       /* update text count */
+       int text_len = strlen(body_text);
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+
+       page_data = evas_object_data_get(entry, "page_data");
+       if (page_data == NULL) {
+               D_EMSG("page_data is NULL");
+               free(body_text);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (text_len <= 0) {
+               COMPOSER_CHAR_ENCODE_E encode = COMPOSER_CHAR_ENCODE_GSM7;
+
+               page_data->text_info.char_count = 0;
+
+               switch (cd->encode_mode) {
+               case MSG_ENCODE_GSM7BIT:
+               case MSG_ENCODE_AUTO:
+                       encode = COMPOSER_CHAR_ENCODE_GSM7;
+                       break;
+               case MSG_ENCODE_UCS2:
+                       encode = COMPOSER_CHAR_ENCODE_UNICODE;
+                       break;
+               }
+               page_data->text_info.encode = encode;
+
+               if (cd->encode_mode == MSG_ENCODE_UCS2)
+                       page_data->text_info.page_size = (COMPOSER_SMS_UNICODE_MAX_LEN * 2);
+               else
+                       page_data->text_info.page_size = COMPOSER_SMS_GSM7_MAX_LEN;
+       } else {
+               int encode_mode = cd->encode_mode;
+
+               COMPOSER_TEXT_EXCEPTION_CHAR_E is_exception_char = COMPOSER_TEXT_HAS_NO_EXCEPTION_CHAR;
+
+               is_exception_char = msg_composer_check_exception_char_from_utf8(cd->encode_mode, (const unsigned char *)body_text);
+
+               /* When Emot Icons Entered. it should not be converted to MMS, So disable the check     for Emot Icons*/
+#ifdef _CONVERT_SMS_TO_MMS_IF_EMOTICON_PRESENT
+               if (is_exception_char == COMPOSER_TEXT_HAS_EMOTICON) {
+                       /*there is emoticon, it should be changed to MMS;*/
+                       cd->has_emoticon = true;
+                       free(body_text);
+                       return COMPOSER_RETURN_SUCCESS;
+               }
+#endif
+               if (cd->encode_mode == MSG_ENCODE_GSM7BIT) {
+                       if (is_exception_char == COMPOSER_TEXT_HAS_KOREAN) {
+                               D_MSG("there is korean,Encoding mode has to be changed");
+                               encode_mode = MSG_ENCODE_AUTO;
+                               cd->changed_encode_mode = MSG_ENCODE_AUTO;
+                       }
+               }
+               char_encode = msg_ui_composer_body_entry_char_count(cd, (const char *)body_text, encode_mode, &char_count, &page_size);
+
+               page_data->text_info.encode = char_encode;
+               page_data->text_info.char_count = char_count;
+               page_data->text_info.page_size = page_size;
+       }
+
+       free(body_text);
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+int msg_ui_composer_body_entry_char_count(void *data, const char *text, int encode_type, int *char_count, int *page_size)
+{
+       D_MSG_RETVM_IF(data == NULL, -1, "param is NULL");
+       D_MSG_RETVM_IF(text == NULL, -1, "param is NULL");
+       D_MSG_RETVM_IF(char_count == NULL, -1, "param is NULL");
+       D_MSG_RETVM_IF(page_size == NULL, -1, "param is NULL");
+       unsigned int text_size = 0;
+       unsigned int segment_size = 0;
+       int encoded_mode = 0;
+       int encode_mode_in = encode_type;
+       int ret = MSG_SUCCESS;
+       COMPOSER_CHAR_ENCODE_E encode = COMPOSER_CHAR_ENCODE_MAX;
+
+       ret = msg_util_calculate_text_length(text, encode_mode_in, &text_size, &segment_size, (msg_encode_type_t *)&encoded_mode);
+       D_MSG("encode_mode_in = %d, text_size = %d, segment_size = %d encoded_mode = %d", encode_mode_in, text_size, segment_size, encoded_mode);
+
+       if (ret != MSG_SUCCESS) {
+               D_EMSG("msg_calculate_text_length is failed ret = %d", ret);
+       } else {
+               switch (encode_mode_in) {
+               case MSG_ENCODE_GSM7BIT:
+                       *char_count = (int)text_size;
+                       *page_size = (int)segment_size;
+
+                       if (encoded_mode == MSG_ENCODE_GSM7BIT_ABNORMAL)
+                               encode = COMPOSER_CHAR_ENCODE_GSM7_ABNORMAL;
+                       else
+                               encode = COMPOSER_CHAR_ENCODE_GSM7;
+
+                       break;
+
+               case MSG_ENCODE_UCS2:
+                       *char_count = (int)text_size;
+                       *page_size = (int)segment_size;
+                       encode = COMPOSER_CHAR_ENCODE_UNICODE;
+
+                       break;
+
+               case MSG_ENCODE_AUTO:
+                       *char_count = (int)text_size;
+                       *page_size = (int)segment_size;
+
+                       if (encoded_mode == MSG_ENCODE_GSM7BIT)
+                               encode = COMPOSER_CHAR_ENCODE_GSM7;
+                       else
+                               encode = COMPOSER_CHAR_ENCODE_UNICODE;
+
+                       break;
+
+               default:
+                       D_EMSG("unsupported encode mode %d", encode_mode_in);
+               }
+       }
+
+       return encode;
+}
+
+Eina_Bool msg_ui_composer_body_keypad_show_idler(void *data)
+{
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETVM_IF(cd == NULL, ECORE_CALLBACK_CANCEL, "composer data is NULL");
+
+       D_MSG("show_keypad_on_launch : %d", cd->show_keypad_on_launch);
+
+       if (cd->show_keypad_on_launch) {
+               msg_ui_composer_entry_input_panel_show(cd->last_focus_entry);
+               cd->show_keypad_on_launch = false;
+       }
+
+       int preferred_subscription = MSG_SIM_PREFERENCE_SIM_COUNT_LESS_THAN_TWO;
+       preferred_subscription = cd->voice_preferred_sim;
+
+       bool bMax_recipient_over = false;
+
+       int recipient_cnt = msg_ui_composer_common_recipient_count_get(cd);
+       if (recipient_cnt > cd->recipient_max_count) {
+               bMax_recipient_over = true;
+       }
+
+       if (cd->active_sims != 2) {
+               if (msg_ui_composer_common_is_send_possible(cd) && bMax_recipient_over == false) {
+                       msg_ui_composer_send_btn_disabled_set(cd, EINA_FALSE);
+                       msg_ui_composer_body_update_send_btn_icon(cd, false);
+               } else {
+                       msg_ui_composer_send_btn_disabled_set(cd, EINA_TRUE);
+                       msg_ui_composer_body_update_send_btn_icon(cd, true);
+               }
+       }
+
+       cd->keypad_show_idler = NULL;
+       D_LEAVE;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void msg_ui_composer_body_info_area_update(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_MSG_RETM_IF(cd == NULL, "composer data is NULL");
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       char count_str[DEF_BUF_LEN] = {0,};
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_SMS) {
+               MSG_COMPOSER_BODY_PAGE_S *page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(body_data->page_list, 0);
+               if (page_data == NULL) {
+                       D_EMSG("page_data is NULL");
+                       return;
+               }
+
+               int char_encode = page_data->text_info.encode;
+               int char_count = page_data->text_info.char_count;
+               int page_size = page_data->text_info.page_size;
+               int cms_page = 0;
+               int max_count = 0;
+               int remaining_count = 0;
+
+               if (char_encode == COMPOSER_CHAR_ENCODE_UNICODE ||
+                       char_encode == COMPOSER_CHAR_ENCODE_GSM7 ||
+                       char_encode == COMPOSER_CHAR_ENCODE_GSM7_ABNORMAL) {
+                       if (char_count > page_size) {
+                               cms_page = char_count / page_size;
+
+                               if (!(char_count % page_size))
+                                       --cms_page;
+
+                               if ((cms_page+1) >= cd->cms_max_page)
+                                       max_count = page_size * cd->cms_max_page;
+                               else
+                                       max_count = page_size * (cms_page+1);
+
+                       } else {
+                               max_count = page_size;
+                       }
+
+               } else {
+                       D_EMSG("Unknown character encode");
+                       return;
+               }
+
+               remaining_count = max_count - char_count;
+
+               if (char_encode == COMPOSER_CHAR_ENCODE_UNICODE)
+                       remaining_count /= 2;
+
+               if (cd->cms_max_page == 1)
+                       snprintf(count_str, sizeof(count_str), "%d", remaining_count);
+               else
+                       snprintf(count_str, sizeof(count_str), "%d/%d", remaining_count, cms_page+1);
+
+               edje_object_part_text_set(_EDJ(cd->input_field_layout), "text.char_count", count_str); /*Add Char count*/
+
+               if (char_count == 0) {
+                       msg_ui_composer_entry_set_guide_text(page_data->entry, "IDS_MSGF_BODY_TEXT_MESSAGES");
+               }
+
+               MSG_ECORE_IDLER_DEL(cd->keypad_show_idler);
+               cd->keypad_show_idler = ecore_idler_add(msg_ui_composer_body_keypad_show_idler, cd);
+       } else if (cd->msg_type == COMPOSER_MSG_TYPE_MMS) {
+               int64 msg_size = 0;
+               int sizeKB = 0;
+               int sizeB = 0;
+
+               if (msg_ui_composer_get_message_size(cd, &msg_size) == COMPOSER_RETURN_SUCCESS) {
+                       cd->mms_remained_size = cd->mms_max_size - (int)msg_size;
+                       D_MSG("cd->mms_remained_byte = %d", cd->mms_remained_size);
+                       if (cd->mms_remained_size < 0)
+                               cd->mms_remained_size = 0;
+
+                       if (msg_size < MSGC_1KB) {
+                               snprintf(count_str, sizeof(count_str), "1%s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MSGSIZE_KB"));
+                       } else {
+                               sizeKB = (int64)msg_size / MSGC_1KB;
+                               sizeB = (int64)msg_size % MSGC_1KB;
+
+                               if (sizeB) {
+                                       if (sizeKB < cd->mms_max_size)
+                                               sizeKB++;
+                               }
+                               snprintf(count_str, sizeof(count_str), "%d%s", sizeKB, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MSGSIZE_KB"));
+                       }
+                       edje_object_part_text_set(_EDJ(cd->input_field_layout), "text.char_count", count_str);
+               }
+
+               /* update body guide text */
+               int page_count = 0;
+               MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+               page_data = eina_list_nth(body_data->page_list, 0);
+               if (page_data) {
+                       page_count = eina_list_count(body_data->page_list);
+                       if (page_count == 1) {
+                               /* if there is inserted content */
+                               if (page_data->is_image_item || page_data->is_sound_item) {
+                                       msg_ui_composer_entry_set_guide_text(page_data->entry, "");
+                               } else {
+                                       msg_ui_composer_entry_set_guide_text(page_data->entry, "IDS_MSGF_BODY_TEXT_MESSAGES");
+                               }
+                       } else if (page_count > 1) {
+                               msg_ui_composer_entry_set_guide_text(page_data->entry, "");
+                       } else {
+                               D_EMSG("Invalid page count = %d", page_count);
+                       }
+               }
+
+               MSG_ECORE_IDLER_DEL(cd->keypad_show_idler);
+               cd->keypad_show_idler = ecore_idler_add(msg_ui_composer_body_keypad_show_idler, cd);
+       }
+}
+
+static Evas_Object *__msg_ui_composer_body_create_page_divider(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "composer data is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *layout = NULL;
+       Evas_Load_Error err = EVAS_LOAD_ERROR_NONE;
+
+       layout = elm_layout_add(parent);
+       if (!layout) {
+               D_EMSG("elm_layout_add error !!");
+               return NULL;
+       }
+       elm_layout_file_set(layout, msg_ui_composer_edj_get(cd), "composer/body/page_divider");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       Evas *evas = evas_object_evas_get(cd->main_window);
+       Evas_Object *img = evas_object_image_add(evas);
+       evas_object_image_file_set(img, MSGC_DOTTED_LINE_ICON, NULL);
+
+       err = evas_object_image_load_error_get(img);
+       if (err != EVAS_LOAD_ERROR_NONE)
+               D_EMSG("image loading is failed = %d", err);
+
+       evas_object_image_fill_set(img, 0, 0, 8, 1); /* this is image resource size (8*1) */
+       elm_object_part_content_set(layout, "swl.divider_line", img);
+
+       D_LEAVE;
+       return layout;
+}
+
+static Evas_Object *__msg_ui_composer_body_page_create(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent, MSG_COMPOSER_BODY_PAGE_S *page_data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "composer data is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       D_MSG_RETVM_IF(page_data == NULL, NULL, "page_data is NULL");
+       Evas_Object *layout = NULL;
+       Evas_Object *page_box = NULL;
+       Evas_Object *entry = NULL;
+       Elm_Entry_Filter_Limit_Size limit_filter;
+
+       layout = elm_layout_add(parent);
+       if (!layout) {
+               D_EMSG("elm_layout_add error !!");
+               return NULL;
+       }
+
+       elm_layout_file_set(layout, msg_ui_composer_edj_get(cd), MSGC_EDJ_GRP_BODY_PAGE);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       page_box = elm_box_add(layout);
+       if (!page_box) {
+               D_EMSG("elm_box_add error !!");
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(page_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(page_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(page_box);
+
+       entry = elm_entry_add(page_box);
+       if (!entry) {
+               D_EMSG("elm_box_add error !!");
+               return NULL;
+       }
+
+       D_MSG("### body entry : %p", entry);
+
+       evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       elm_entry_markup_filter_append(entry, msg_composer_entry_filter_check_boundary, cd);
+       elm_entry_markup_filter_append(entry, msg_composer_entry_filter_addimage, cd);
+       /* add filter for removing markup */
+       elm_entry_markup_filter_append(entry, msg_composer_entry_filter_remove_markup, cd);
+
+       /* set entry max character count*/
+#ifdef _MSG_FEATURE_MMS_DISABLE
+       int max_char_count = COMPOSER_SMS_GSM7_MAX_LEN;
+
+       if (cd->cms_max_page > 1)
+               max_char_count = COMPOSER_CMS_GSM7_MAX_LEN * cd->cms_max_page;
+
+       limit_filter.max_char_count = max_char_count;
+#else
+       limit_filter.max_char_count = COMPOSER_MMS_TEXT_MAX_CHAR;
+#endif
+
+       elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter);
+
+#ifdef _MSG_FEATURE_MMS_DISABLE
+       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+#endif
+
+       elm_entry_prediction_allow_set(entry, EINA_TRUE);
+       elm_entry_autocapital_type_set(entry, ELM_AUTOCAPITAL_TYPE_SENTENCE);
+       elm_entry_input_panel_return_key_type_set(entry, ELM_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT);
+
+       int len = 0;
+       if (cd->msg_type == COMPOSER_MSG_TYPE_SMS && cd->encode_mode == MSG_ENCODE_GSM7BIT) {
+               len = strlen("type=gsm_alphabet&action=enable_emoticons");
+               elm_entry_input_panel_imdata_set(entry, "type=gsm_alphabet&action=enable_emoticons", len);
+       } else {
+               len = strlen("action=enable_emoticons");
+               elm_entry_input_panel_imdata_set(entry, "action=enable_emoticons", len);
+       }
+
+       Ecore_IMF_Context *entry_ctx = elm_entry_imf_context_get(entry);
+       ecore_imf_context_input_panel_event_callback_add((Ecore_IMF_Context *)entry_ctx, ECORE_IMF_INPUT_PANEL_STATE_EVENT, msg_ui_composer_entry_imf_state_cb, cd);
+
+       /* We should not connect the resize callback on the keypad and try to resize the scroller in the callback.
+        * This is creating the flickering issue in bubble composer when candidate window comes and goes.
+        * ecore_imf_context_input_panel_event_callback_add((Ecore_IMF_Context *)entry_ctx, ECORE_IMF_INPUT_PANEL_GEOMETRY_EVENT, msg_ui_composer_entry_imf_resize_cb, cd); */
+
+       evas_object_show(entry);
+       evas_object_data_set(entry, "page_data", page_data);
+
+       evas_object_smart_callback_add(entry, "cursor,changed", msg_ui_composer_body_entry_cursor_changed_cb, cd);
+       evas_object_smart_callback_add(entry, "focused", msg_ui_composer_body_entry_focused_cb, cd);
+       evas_object_smart_callback_add(entry, "unfocused", msg_ui_composer_body_entry_unfocused_cb, cd);
+       evas_object_smart_callback_add(entry, "changed", msg_ui_composer_body_entry_changed_cb, cd);
+       evas_object_smart_callback_add(entry, "preedit,changed", msg_ui_composer_body_entry_changed_cb, cd);
+       evas_object_smart_callback_add(entry, "press", msg_ui_composer_body_entry_press_cb, cd);
+       evas_object_smart_callback_add(entry, "clicked", msg_ui_composer_body_entry_clicked_cb, cd);
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       evas_object_smart_callback_add(entry, "maxlength,reached", msg_ui_composer_body_entry_maxlength_reached_cb, cd);
+       evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN, msg_ui_composer_key_down_cb, cd);
+       evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_UP, msg_ui_composer_key_up_cb, cd);
+#endif
+       eext_entry_selection_back_event_allow_set(entry, EINA_TRUE);
+
+       elm_box_pack_end(page_box, entry);
+       elm_object_part_content_set(layout, "swl.page", page_box);
+
+       page_data->upper_layout = layout;
+       page_data->entry = entry;
+       page_data->page_box = page_box;
+
+       /* keypad is manually controlled, so disabling the auto control of keypad */
+       elm_entry_input_panel_enabled_set(page_data->entry, EINA_FALSE);
+
+       /* Check appcontrol launching scenario because share text scenario. (eg. browser > share)
+        * Fix do not add signature firstly, and append signature later after setting loaded share text to entry. */
+       if (!cd->isAppControl) {
+               /* Signature is added only to first page
+                * Incase of bubble view, whether the composer mode is draft or not, will
+                * be decided while loading the data so we neglect that case here */
+               if ((cd->body_data.page_count == 0) && (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER)) {
+                       if (true == msg_ui_composer_common_is_signature_enabled(cd, false)) {
+                               D_MSG("cd->signature_string = %s", cd->signature_string);
+                               char *utf8_string = NULL;
+                               utf8_string = elm_entry_utf8_to_markup(cd->signature_string);
+                               if (NULL != utf8_string) {
+                                       elm_entry_entry_set(entry, utf8_string);
+                                       free(utf8_string);
+                               }
+                       }
+               }
+       }
+
+       if (cd->page_duration > COMPOSER_PAGE_DEFAULT_DURATION)
+               page_data->page_duration = cd->page_duration;
+       else
+               page_data->page_duration = COMPOSER_PAGE_DEFAULT_DURATION;
+
+       D_LEAVE;
+       return layout;
+}
+
+static Evas_Object *__msg_ui_composer_body_page_main_create(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "composer data is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *new_page = NULL;
+       Evas_Object *page_main_box = NULL;
+       Evas_Object *page_divider = NULL;
+
+       page_data = (MSG_COMPOSER_BODY_PAGE_S *)calloc(1, sizeof(MSG_COMPOSER_BODY_PAGE_S));
+       if (!page_data) {
+               D_EMSG("page_data is NULL!! calloc error");
+               return NULL;
+       }
+
+       layout = elm_layout_add(parent);
+       if (!layout) {
+               D_EMSG(" elm_layout_add error !!");
+               g_free(page_data);
+               return NULL;
+       }
+
+       elm_layout_file_set(layout, msg_ui_composer_edj_get(cd), MSGC_EDJ_GRP_BODY_PAGE_MAIN);
+
+       edje_object_signal_emit(_EDJ(layout), "show.normal.mode", "*");
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       page_main_box = elm_box_add(layout);
+       if (!page_main_box) {
+               D_EMSG("elm_box_add error !!");
+               g_free(page_data);
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(page_main_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(page_main_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(page_main_box);
+
+       page_data->page_main_box = page_main_box;
+       page_data->layout = layout;
+
+       new_page = __msg_ui_composer_body_page_create(cd, page_main_box, page_data);
+       if (!new_page) {
+               D_EMSG(" new_page error !!");
+               g_free(page_data);
+               return NULL;
+       }
+
+       elm_box_pack_end(page_main_box, new_page);
+
+       if (body_data->page_count > 0) {
+               page_divider = __msg_ui_composer_body_create_page_divider(cd, page_main_box);
+               if (page_divider) {
+                       page_data->page_divider = page_divider;
+                       elm_box_pack_start(page_main_box, page_divider);
+               }
+       }
+
+       elm_object_part_content_set(layout, "swl.page.main", page_main_box);
+
+       evas_object_data_set(_EDJ(layout), "private_data", cd);
+       edje_object_signal_callback_add(_EDJ(layout), "page_layout,clicked", "", msg_ui_composer_page_main_layout_clicked_cb, (void *)page_data);
+
+       body_data->page_list = eina_list_append(body_data->page_list, (void *)page_data);
+       body_data->page_count++;
+
+       int page_count = 0;
+       page_count = eina_list_count(body_data->page_list);
+
+       if (page_count == 1) {
+               ;
+       } else if (page_count == 2) {
+               if (page_divider) {
+                       char page_str[DEF_BUF_LEN_D + 1] = {0,};
+                       snprintf(page_str, sizeof(page_str), "%d/%d", page_count - 1, page_count);
+                       edje_object_part_text_set(_EDJ(page_divider), "text.page_info", page_str);
+               }
+       } else if (page_count > 2) {
+               msg_ui_composer_body_update_page_divider(cd);
+       }
+
+       D_LEAVE;
+       return layout;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_add_page(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "composer data is NULL");
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       Evas_Object *main_box = cd->pages_box;
+       Evas_Object *new_page = NULL;
+
+       if (body_data->page_count >= COMPOSER_MMS_MAX_PAGE) {
+               char buf[DEF_BUF_LEN] = { 0, };
+               char *text = dgettext(MESSAGE_PKGNAME, "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED");
+               snprintf(buf, sizeof(buf), text, COMPOSER_MMS_MAX_PAGE);
+               msg_ui_composer_create_text_btn_popup(cd, buf, 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+               return COMPOSER_RETURN_MAX_PAGE;
+       }
+
+       if (!main_box) {
+               D_EMSG("composer body box is NULL");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (body_data->page_count == 0) {
+               cd->page_duration = COMPOSER_PAGE_DEFAULT_DURATION;
+       }
+
+       new_page = __msg_ui_composer_body_page_main_create(cd, main_box);
+       if (!new_page) {
+               D_EMSG("page create error");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       elm_box_pack_end(main_box, new_page);
+
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_mms_insert_item_remove(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *remove_item)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_NULL_POINTER, "cd is NULL");
+       D_MSG_RETVM_IF(remove_item == NULL, COMPOSER_RETURN_NULL_POINTER, "remove_item is NULL");
+       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 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) {
+                       if (page_data->image_item == remove_item) {
+                               D_MSG("remove image region media item !!");
+                               page_data->is_image_item = false;
+                               page_data->image_item = NULL;
+                               page_data->isVideo = false;
+                               page_data->is_image_focus = false;
+                               /* remove temp file */
+                               msg_composer_remove_file(page_data->image_file_path);
+                               memset(page_data->image_file_path, 0x00, sizeof(page_data->image_file_path));
+                               evas_object_del(remove_item);
+                               break;
+                       } else if (page_data->sound_item == remove_item) {
+                               D_MSG("remove sound media item !!");
+                               page_data->is_sound_item = false;
+                               page_data->sound_item = NULL;
+                               page_data->is_sound_focus = false;
+                               /* remove temp file */
+                               msg_composer_remove_file(page_data->sound_file_path);
+                               memset(page_data->sound_file_path, 0x00, sizeof(page_data->sound_file_path));
+                               evas_object_del(remove_item);
+                               break;
+                       }
+               } else {
+                       D_WMSG("page_data is NULL");
+               }
+       }
+       if (cd->is_replace == false) {
+               msg_ui_composer_message_type_check_and_change(cd);
+       }
+
+       msg_ui_composer_body_info_area_update(cd);
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+static void __msgc_body_remove_page(MSG_COMPOSER_VIEW_DATA_S *cd, MSG_COMPOSER_BODY_PAGE_S *page_data, Evas_Object *remove_page)
+{
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+       D_MSG_RETM_IF(page_data == NULL, "remove_page is NULL");
+       D_MSG_RETM_IF(remove_page == NULL, "remove_page is NULL");
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+
+       elm_box_unpack(cd->pages_box, remove_page);
+
+       if (page_data->is_image_item)
+               msg_ui_composer_mms_insert_item_remove(cd, page_data->image_item);
+
+       if (page_data->is_sound_item)
+               msg_ui_composer_mms_insert_item_remove(cd, page_data->sound_item);
+
+       /* page count should be decresed before delete page layout */
+       body_data->page_list = eina_list_remove(body_data->page_list, page_data);
+       body_data->page_count--;
+
+       if (page_data->page_main_box) {
+               if (page_data->page_divider) {
+                       evas_object_del(page_data->page_divider);
+               }
+
+               if (page_data->page_box) {
+                       if (page_data->image_item) {
+                               evas_object_del(page_data->image_item);
+                       }
+
+                       if (page_data->sound_item) {
+                               evas_object_del(page_data->sound_item);
+                       }
+
+                       if (page_data->entry) {
+                               evas_object_del(page_data->entry);
+                       }
+
+                       evas_object_del(page_data->page_box);
+               }
+
+               if (page_data->upper_layout) {
+                       evas_object_del(page_data->upper_layout);
+               }
+
+               evas_object_del(page_data->page_main_box);
+       }
+
+       evas_object_del(page_data->layout);
+       free(page_data);
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_mms_body_remove_page(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *remove_page, bool clear_body)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_NULL_POINTER, "cd is NULL");
+       D_MSG_RETVM_IF(remove_page == NULL, COMPOSER_RETURN_NULL_POINTER, "remove_page is NULL");
+       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 i = 0;
+
+       if (page_count == 1) { /* in case of only one page exist */
+               if (clear_body == true) {
+                       /* clear page */
+                       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, 0);
+
+                       if (page_data->is_image_item)
+                               msg_ui_composer_mms_insert_item_remove(cd, page_data->image_item);
+
+                       if (page_data->is_sound_item)
+                               msg_ui_composer_mms_insert_item_remove(cd, page_data->sound_item);
+
+                       elm_entry_entry_set(page_data->entry, "");
+
+                       D_MSG("focus change to the first page");
+                       /* focus change to the first page */
+                       cd->current_edit_entry = 0;
+
+                       Evas_Object *body_entry = msg_ui_composer_last_body_entry_get(cd);
+                       Evas_Object *last_focused_entry = msg_ui_composer_last_focused_entry_get(cd);
+                       /* last focus is body entry*/
+                       if (body_entry && (body_entry == last_focused_entry))
+                               msg_ui_composer_last_focused_entry_set(cd, page_data->entry);
+
+                       page_data->page_duration = COMPOSER_PAGE_DEFAULT_DURATION;
+               } else {
+                       /* remove page */
+                       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, 0);
+                       __msgc_body_remove_page(cd, page_data, remove_page);
+
+                       cd->current_edit_entry = 0;
+               }
+       } else {
+               for (i = 0; i < page_count; i++) {
+                       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(body_data->page_list, i);
+                       if (page_data) {
+                               if (page_data->layout == remove_page) {
+                                       D_MSG("Remove MMS (%d)th page", i + 1);
+                                       Evas_Object *body_entry = msg_ui_composer_last_body_entry_get(cd);
+                                       Evas_Object *last_focused_entry = msg_ui_composer_last_focused_entry_get(cd);
+                                       int current_edit_entry = cd->current_edit_entry;
+                                       D_MSG("current_edit_entry = %d", cd->current_edit_entry);
+
+                                       /* When focus is with body page entry, click on recipient entry once and again click
+                                        * on body entry and then remove the page. Here since body entry is getting deleted
+                                        * and last focused entry was recipient, EFL is giving the focus temporarily to recipient entry
+                                        * Due to which the contents of recipient entry is going off. This is default behaviour of
+                                        * EFL that when a entry is deleted focus should be given to some other object.
+                                        * So prevent this temporarily giving the focus to send button. */
+                                       elm_object_focus_set(cd->send_button, EINA_TRUE);
+
+                                       /* remove page */
+                                       __msgc_body_remove_page(cd, page_data, remove_page);
+
+                                       if (i == 0) {
+                                               /* remove next page's page_divider */
+                                               MSG_COMPOSER_BODY_PAGE_S *next_page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(body_data->page_list, i);
+                                               if (next_page_data && next_page_data->page_divider) {
+                                                       D_MSG("remove next page's page_divider");
+                                                       elm_box_unpack(next_page_data->page_main_box, next_page_data->page_divider);
+                                                       evas_object_del(next_page_data->page_divider);
+                                                       next_page_data->page_divider = NULL;
+                                               }
+                                       }
+                                       /* update page separator */
+                                       msg_ui_composer_body_update_page_divider(cd);
+
+                                       D_MSG("before update current entry");
+                                       /* deleted page is current edit page */
+                                       if (current_edit_entry == i) {
+                                               D_MSG("update focus index");
+                                               /* update body focus index*/
+                                               if (i == 0) { /* if it is first page, update focus index to next page */
+                                                       cd->current_edit_entry = 0;
+                                               } else { /* if it is not first page, update focus index to previous page */
+                                                       cd->current_edit_entry = i - 1;
+                                               }
+
+                                               /* change focus when last focused entry is a body entry */
+                                               if (body_entry && (body_entry == last_focused_entry)) {
+                                                       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(body_data->page_list, cd->current_edit_entry);
+                                                       if (page_data) {
+                                                               msg_ui_composer_last_focused_entry_set(cd, page_data->entry);
+                                                               if (!cd->isclosed) {
+                                                                       msg_ui_composer_last_focus_load(cd);
+                                                                       elm_entry_cursor_end_set(msg_ui_composer_last_focused_entry_get(cd));
+                                                               }
+                                                       } else {
+                                                               D_EMSG("page_data is NULL");
+                                                       }
+                                               }
+                                       } else if (cd->current_edit_entry > i) {
+                                               D_MSG("update focus index");
+                                               /* update body focus index*/
+                                               cd->current_edit_entry--;
+
+                                               if (cd->current_edit_entry <= 0)
+                                                       cd->current_edit_entry = 0;
+                                       }
+
+                                       break;
+                               }
+                       }
+               }
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+static Evas_Object *__msg_ui_composer_body_media_layout_create(MSG_COMPOSER_VIEW_DATA_S *cd, const char *file_path, Evas_Object *parent, COMPOSER_MEDIA_TYPE_E media_type, COMPOSER_MEDIA_ORIENT_E orient_mode)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *layout = NULL;
+       Evas_Object *thumb_icon = NULL;
+       const char *filename = NULL;
+       int image_icon_w = (int) ELM_SCALE_SIZE(MSGC_IMAGE_THUMB_LANDSCAPE_W);
+       int image_icon_h = (int) ELM_SCALE_SIZE(MSGC_IMAGE_THUMB_LANDSCAPE_H);
+       int sound_icon_w = (int) ELM_SCALE_SIZE(MSGC_SOUND_THUMB_WIDTH);
+       int sound_icon_h = (int) ELM_SCALE_SIZE(MSGC_SOUND_THUMB_HEIGHT);
+
+       layout = elm_layout_add(parent);
+       if (!layout) {
+               D_EMSG("layout create error !!!!");
+               return NULL;
+       }
+
+       if (media_type == COMPOSER_MEDIA_TYPE_AUDIO)
+               elm_layout_file_set(layout, msg_ui_composer_edj_get(cd), MSGC_EDJ_GRP_BODY_MEDIA_SOUND);
+       else
+               elm_layout_file_set(layout, msg_ui_composer_edj_get(cd), MSGC_EDJ_GRP_BODY_MEDIA_IMAGE);
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       thumb_icon = elm_icon_add(layout);
+
+       if (media_type != COMPOSER_MEDIA_TYPE_AUDIO) {
+               D_MSG("orient_mode = %d", orient_mode);
+               if (orient_mode == COMPOSER_MEDIA_PORTRAIT_MODE) {
+                       image_icon_w = (int)ELM_SCALE_SIZE(MSGC_IMAGE_THUMB_PORTRAIT_W);
+                       image_icon_h = (int)ELM_SCALE_SIZE(MSGC_IMAGE_THUMB_PORTRAIT_H);
+               } else if (orient_mode == COMPOSER_MEDIA_LANDSCAPE_MODE) {
+                       image_icon_w = (int)ELM_SCALE_SIZE(MSGC_IMAGE_THUMB_LANDSCAPE_W);
+                       image_icon_h = (int)ELM_SCALE_SIZE(MSGC_IMAGE_THUMB_LANDSCAPE_H);
+               } else if (orient_mode == COMPOSER_MEDIA_EQUAL_MODE) {
+                       image_icon_w = (int)ELM_SCALE_SIZE(MSGC_IMAGE_THUMB_EQUAL_W_H);
+                       image_icon_h = (int)ELM_SCALE_SIZE(MSGC_IMAGE_THUMB_EQUAL_W_H);
+               }
+       }
+
+       if (media_type == COMPOSER_MEDIA_TYPE_IMAGE) {
+               elm_image_file_set(thumb_icon, file_path, NULL);
+               evas_object_size_hint_min_set(thumb_icon, image_icon_w, image_icon_h);
+               elm_image_aspect_fixed_set(thumb_icon, EINA_FALSE);
+       } else if (media_type == COMPOSER_MEDIA_TYPE_VIDEO) {
+               if (strcmp(file_path, MSGC_IMG_INSERT_ETC_ICON)) {
+                       elm_image_file_set(thumb_icon, file_path, NULL);
+               } else {
+                       elm_image_file_set(thumb_icon, MSG_IMAGES_EDJ, MSGC_IMG_INSERT_ETC_ICON);
+               }
+               evas_object_size_hint_min_set(thumb_icon, image_icon_w, image_icon_h);
+               elm_image_aspect_fixed_set(thumb_icon, EINA_FALSE);
+       } else {
+               elm_image_file_set(thumb_icon, MSG_IMAGES_EDJ, MSGC_IMG_INSERT_ETC_ICON);
+               evas_object_size_hint_min_set(thumb_icon, sound_icon_w, sound_icon_h);
+       }
+       if (media_type != COMPOSER_MEDIA_TYPE_AUDIO) {
+               evas_object_show(thumb_icon);
+               elm_object_part_content_set(layout, "swl.thumbnail", thumb_icon);
+       }
+
+       if (media_type == COMPOSER_MEDIA_TYPE_AUDIO) {
+               filename = msg_file_file_get(file_path);
+               if (filename)
+                       edje_object_part_text_set(_EDJ(layout), "text.filename", filename);
+       } else if (media_type == COMPOSER_MEDIA_TYPE_VIDEO) {
+               if (strcmp(file_path, MSGC_IMG_INSERT_ETC_ICON))
+                       edje_object_signal_emit(_EDJ(layout), "elm,state,icon,show", "");
+       }
+
+       D_LEAVE;
+       return layout;
+}
+
+static Evas_Object *__msg_ui_composer_body_create_insert_media(MSG_COMPOSER_VIEW_DATA_S *cd, const char *file_path, Evas_Object *parent, COMPOSER_MEDIA_TYPE_E media_type)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       D_MSG_RETVM_IF(file_path == NULL, NULL, "file_path is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *layout = NULL;
+       Evas_Object *transparent_button = NULL;
+       char *inserted_file_path = (char *)file_path;
+       char thumbnail_path[COMPOSER_FILEPATH_LEN_MAX + 1] = {0, };
+       COMPOSER_MEDIA_ORIENT_E media_orient = COMPOSER_MEDIA_NONE;
+
+       Evas_Load_Error err = EVAS_LOAD_ERROR_NONE;
+
+       layout = elm_layout_add(parent);
+       if (!layout) {
+               D_EMSG("layout create error !!!!");
+               return NULL;
+       }
+
+       elm_layout_file_set(layout, msg_ui_composer_edj_get(cd), MSGC_EDJ_GRP_BODY_MEDIA_MAIN);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       if (media_type != COMPOSER_MEDIA_TYPE_AUDIO) {
+               bool is_portrait = false;
+               bool is_landscape = false ;
+               int content_w = 0;
+               int content_h = 0;
+
+               if (media_type == COMPOSER_MEDIA_TYPE_VIDEO) {
+                       if (msg_composer_common_get_thumbnail(cd, file_path, thumbnail_path, COMPOSER_FILEPATH_LEN_MAX) == COMPOSER_RETURN_SUCCESS) {
+                               inserted_file_path = thumbnail_path;
+                       } else {
+                               D_EMSG("getting thumbnail from video is failed");
+                               inserted_file_path = MSGC_IMG_INSERT_ETC_ICON;
+                       }
+               }
+
+               D_SEC_MSG("inserted_file_path = (%s)", inserted_file_path);
+
+               if (media_type == COMPOSER_MEDIA_TYPE_IMAGE || media_type == COMPOSER_MEDIA_TYPE_VIDEO) {
+                       /*get image's content size*/
+                       Evas *evas = evas_object_evas_get(cd->main_window);
+                       Evas_Object *img = evas_object_image_add(evas);
+                       evas_object_image_load_orientation_set(img, EINA_TRUE);
+                       evas_object_image_file_set(img, inserted_file_path, NULL);
+
+                       err = evas_object_image_load_error_get(img);
+                       if (err != EVAS_LOAD_ERROR_NONE) {
+                               D_EMSG("image loading is failed = %d", err);
+                               return NULL;
+                       }
+                       evas_object_image_size_get(img, &content_w, &content_h);
+                       evas_object_del(img);
+                       D_SEC_MSG("image_width = %d, image_height = %d", content_w, content_h);
+               }
+
+               if (content_w && content_h) {
+                       if (content_w < content_h) {
+                               is_portrait = true;
+                       } else if (content_w > content_h) {
+                               is_landscape = true;
+                       }
+               }
+
+               if (is_portrait) {
+                       D_MSG("change to image portrait layout");
+                       media_orient = COMPOSER_MEDIA_PORTRAIT_MODE;
+                       edje_object_signal_emit(_EDJ(layout), "media.image.portrait", "*");
+               } else if (is_landscape) {
+                       D_MSG("change to image landscape layout");
+                       media_orient = COMPOSER_MEDIA_LANDSCAPE_MODE;
+                       edje_object_signal_emit(_EDJ(layout), "media.image.landscape", "*");
+               } else {
+                       D_MSG("change to image equal layout");
+                       media_orient = COMPOSER_MEDIA_EQUAL_MODE;
+                       edje_object_signal_emit(_EDJ(layout), "media.image.equal", "*");
+               }
+
+               Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(layout));
+               evas_object_size_hint_align_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_color_set(rect, 0, 0, 0, 0);
+               evas_object_size_hint_min_set(rect, 0, ELM_SCALE_SIZE(MSGC_IMAGE_THUMB_LANDSCAPE_ORIGIN_H));
+               evas_object_show(rect);
+
+               elm_object_part_content_set(layout, "swl.rect", rect);
+       }
+
+       /* create transparent focus button so that insert media can have a focus and tts highlight*/
+       transparent_button = elm_button_add(layout);
+
+       elm_object_style_set(transparent_button, "focus");
+       evas_object_size_hint_weight_set(transparent_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(transparent_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(transparent_button);
+
+       elm_object_part_content_set(layout, "swl.content", transparent_button);
+
+       /* create media layout */
+       Evas_Object *media_layout = __msg_ui_composer_body_media_layout_create(cd, inserted_file_path, transparent_button, media_type, media_orient);
+
+       /* create gesture_layout */
+       Evas_Object *gl = elm_gesture_layer_add(parent);
+       if (gl) {
+               if (elm_gesture_layer_attach(gl, media_layout) == EINA_TRUE) {
+                       elm_gesture_layer_cb_set(gl, ELM_GESTURE_N_LONG_TAPS, ELM_GESTURE_STATE_START, msg_ui_composer_body_media_longpress_s_cb, layout);
+                       elm_gesture_layer_cb_set(gl, ELM_GESTURE_N_LONG_TAPS, ELM_GESTURE_STATE_MOVE, msg_ui_composer_body_media_longpress_m_cb, layout);
+               } else {
+                       D_EMSG("gesture_layer_attach is failed");
+                       evas_object_del(gl);
+                       gl = NULL;
+               }
+       } else {
+               D_EMSG("gesture layer is NULL");
+       }
+
+       evas_object_smart_callback_add(transparent_button, "clicked", msg_ui_composer_body_media_btn_clicked_cb, layout);
+       evas_object_smart_callback_add(transparent_button, "pressed", msg_ui_composer_body_media_btn_pressed_cb, layout);
+       evas_object_smart_callback_add(transparent_button, "focused", msg_ui_composer_body_media_btn_focused_cb, layout);
+       evas_object_smart_callback_add(transparent_button, "unfocused", msg_ui_composer_body_media_btn_unfocused_cb, layout);
+       evas_object_smart_callback_add(transparent_button, "unpressed", msg_ui_composer_body_media_btn_unpressed_cb, layout);
+
+       elm_object_part_content_set(transparent_button, "elm.swallow.content", media_layout);
+       evas_object_data_set(layout, "priv_data", cd);
+
+       return layout;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_insert_media(MSG_COMPOSER_VIEW_DATA_S *cd, const char *file_path, COMPOSER_MEDIA_TYPE_E media_type)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "cd is NULL");
+       D_MSG_RETVM_IF(file_path == NULL, COMPOSER_RETURN_FAIL, "file_path is NULL");
+       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 = eina_list_count(page_list);
+       bool is_new_page_needed = false;
+       int length = 0;
+       COMPOSER_RETURN_TYPE_E ret;
+
+       if (strlen(file_path) == 0) {
+               D_EMSG("empty file path");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (page_count < 1) {
+               D_EMSG("mms page count error");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (page_count <= cd->current_edit_entry) {
+               D_EMSG("mms page count error case page_count <= cd->current_edit_entry");
+               return COMPOSER_RETURN_INVALID_PAGE;
+       }
+
+       /* Check whether the selected file has some valid size or not */
+       struct stat stat_buf;
+       if (stat(file_path, &stat_buf) != 0) {
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (stat_buf.st_size <= 0) {
+               D_MSG("file size is invalid");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, cd->current_edit_entry);
+       if (page_data) {
+               if (media_type == COMPOSER_MEDIA_TYPE_IMAGE) {
+                       if (page_data->is_image_item)
+                               is_new_page_needed = true;
+               } else if (media_type == COMPOSER_MEDIA_TYPE_VIDEO) {
+                       if (page_data->is_image_item || page_data->is_sound_item)
+                               is_new_page_needed = true;
+               } else if (media_type == COMPOSER_MEDIA_TYPE_AUDIO) {
+                       if (page_data->is_sound_item || (page_data->is_image_item && page_data->isVideo))
+                               is_new_page_needed = true;
+               } else {
+                       D_EMSG("invalid media type [%d]", media_type);
+                       return COMPOSER_RETURN_INVALID_MEDIA_TYPE;
+               }
+               if (cd->is_replace == false) {
+                       if (is_new_page_needed) {
+                               ret = msg_ui_composer_body_add_page(cd);
+                               if (ret != COMPOSER_RETURN_SUCCESS) {
+                                       D_EMSG("Fail of new page created");
+                                       return ret;
+                               }
+                               D_MSG("new page created");
+                               /* if new page added, current edit entry is changed to a new page's entry */
+                               cd->current_edit_entry = page_count;
+                       }
+               } else {
+                       if (page_data->is_image_focus) {
+                               msg_ui_composer_mms_insert_item_remove(cd, page_data->image_item);
+                       } else if (page_data->is_sound_focus) {
+                               msg_ui_composer_mms_insert_item_remove(cd, page_data->sound_item);
+                       }
+               }
+       }
+
+       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, cd->current_edit_entry);
+       if (page_data != NULL) {
+               if (media_type == COMPOSER_MEDIA_TYPE_AUDIO) {
+                       page_data->is_sound_item = true;
+                       length = strlen(file_path);
+                       strncpy(page_data->sound_file_path, file_path, length);
+                       page_data->sound_file_path[length] = '\0';
+
+                       int media_duration = 0;
+                       msg_composer_common_get_media_duration(file_path, &media_duration);
+                       D_MSG("audio file duration [%d]", media_duration);
+
+                       if (media_duration % 1000)
+                               media_duration = media_duration / 1000 + 1;
+                       else
+                               media_duration = media_duration / 1000;
+
+                       if (media_duration > page_data->page_duration)
+                               page_data->page_duration = media_duration;
+
+                       page_data->sound_item = __msg_ui_composer_body_create_insert_media(cd, page_data->sound_file_path, page_data->layout, media_type);
+
+                       if (page_data->sound_item) {
+                               elm_box_pack_end(page_data->page_box, page_data->sound_item);
+                       } else {
+                               D_EMSG("creating insert item layout error");
+                               return COMPOSER_RETURN_FAIL;
+                       }
+               } else {
+                       page_data->is_image_item = true;
+                       page_data->isVideo = media_type == COMPOSER_MEDIA_TYPE_VIDEO ? true : false;
+                       length = strlen(file_path);
+                       strncpy(page_data->image_file_path, file_path, length);
+                       page_data->image_file_path[length] = '\0';
+
+                       if (page_data->isVideo) {
+                               int media_duration = 0;
+                               msg_composer_common_get_media_duration(file_path, &media_duration);
+                               D_MSG("video file duration [%d]", media_duration);
+
+                               if (media_duration % 1000)
+                                       media_duration = media_duration / 1000 + 1;
+                               else
+                                       media_duration = media_duration / 1000;
+
+                               if (media_duration > page_data->page_duration)
+                                       page_data->page_duration = media_duration;
+                       }
+
+                       page_data->image_item = __msg_ui_composer_body_create_insert_media(cd, page_data->image_file_path, page_data->layout, media_type);
+
+                       if (page_data->image_item) {
+                               D_MSG("cd->body_data.region_order = %d", cd->body_data.region_order);
+                               if (cd->body_data.region_order == COMPOSER_REGION_ORDER_IMAGE_TOP)
+                                       elm_box_pack_start(page_data->page_box, page_data->image_item);
+                               else
+                                       elm_box_pack_after(page_data->page_box, page_data->image_item, page_data->entry);
+                       } else {
+                               msg_composer_remove_file(page_data->image_file_path);
+                               memset(page_data->image_file_path, 0x00, sizeof(page_data->image_file_path));
+                               page_data->is_image_item = false;
+                               D_EMSG("creating insert item layout error");
+                               return COMPOSER_RETURN_FAIL;
+                       }
+               }
+       }
+
+       msg_ui_composer_send_btn_disabled_set(cd, EINA_FALSE);
+       if (cd->is_replace == false) {
+               msg_ui_composer_message_type_check_and_change(cd);
+       }
+       msg_ui_composer_body_info_area_update(cd);
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER)
+               msg_ui_composer_change_body_layout_mode(cd, cd->rotate);
+
+       D_MSG("cd->attach_index = %d", cd->attach_index);
+
+       if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true) {
+               int media_count = eina_list_count(cd->attachlist);
+               /* show invalid popup when last content is added */
+               if (media_count == cd->attach_index) {
+                       if (msg_ui_composer_recipient_addr_type_get(cd->recipient) == COMPOSER_RECP_ADDR_INVALID) {
+                               msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID");
+                       } else {
+                               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+                       }
+               }
+       } else {
+               /* change last focused entry to a page that is added media recently*/
+               const char *recipient = NULL;
+               bool status = true;
+               if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+                       if (cd->recipient) {
+                               RECIPIENT_S *rd = cd->recipient;
+                               D_MSG_RETVM_IF(rd == NULL, COMPOSER_RETURN_FAIL, "rd is NULL");
+                               recipient = msg_ui_composer_recipient_entry_text_get(cd->recipient);
+                               status = rd->was_entry_empty;
+                       }
+               }
+               if (recipient && recipient[0] != '\0' && false == status) {
+                       msg_ui_composer_last_focused_entry_set(cd, cd->recipient->entry);
+               } else {
+                       msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+
+                       if (page_data != NULL) {
+                               msg_ui_composer_last_focused_entry_set(cd, page_data->entry);
+                       }
+               }
+       }
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+int msg_ui_composer_get_inserted_item_size(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_MSG_RETVM_IF(cd == NULL, MSG_UI_RET_ERR, "cd is NULL");
+       int page_count = cd->body_data.page_count;
+       Eina_List *page_list = cd->body_data.page_list;
+       int total_size = 0;
+       int i = 0;
+
+       for (i = 0; i < page_count; i++) {
+               MSG_COMPOSER_BODY_PAGE_S *page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, i);
+               int image_file_size = 0;
+               int sound_file_size = 0;
+               int body_text_size = 0;
+               char *body_text = NULL;
+               if (page_data) {
+                       if (page_data->is_image_item) {
+                               image_file_size = msg_composer_get_file_size(page_data->image_file_path);
+                       }
+                       if (page_data->is_sound_item) {
+                               sound_file_size = msg_composer_get_file_size(page_data->sound_file_path);
+                       }
+
+                       if (page_data->entry) {
+                               body_text = elm_entry_markup_to_utf8(elm_entry_entry_get(page_data->entry));
+                               if (body_text) {
+                                       body_text_size = strlen(body_text);
+                                       free(body_text);
+                               }
+                       }
+
+                       total_size = total_size + image_file_size + sound_file_size + body_text_size;
+               }
+       }
+       return total_size;
+}
+
+bool should_body_keypad_be_shown(MSG_COMPOSER_VIEW_DATA_S *cd, int nPage)
+{
+       bool show_keypad = false;
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+               show_keypad = true;
+       } else {
+               if ((cd->bubble_data && true == cd->bubble_data->reply_mode) ||
+                       ((cd->loaded_aul == false) && (cd->state == COMPOSER_STATE_TYPE_PAUSE))) {
+                       if (cd->isclosed == false) {
+                               show_keypad = true;
+                       }
+               }
+       }
+       return show_keypad;
+}
+
+void msg_ui_composer_body_apply_font_size(MSG_COMPOSER_VIEW_DATA_S *cd, const char *font_sytle)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       D_MSG_RETM_IF(font_sytle == NULL, "font_sytle is NULL");
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       int page_count = body_data->page_count;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       int i = 0;
+
+       D_MSG_RETM_IF(body_data->page_list == NULL, "page_list is NULL");
+
+       for (i = 0; i < page_count; i++) {
+               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(body_data->page_list, i);
+               if (page_data && page_data->entry) {
+                       elm_entry_text_style_user_push(page_data->entry, font_sytle);
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_focus_set(MSG_COMPOSER_VIEW_DATA_S *cd, int nPage)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+       D_MSG_RETM_IF(nPage < 0, "nPage < 0");
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       D_MSG_RETM_IF(body_data->page_list == NULL, "page_list is NULL");
+
+       RECIPIENT_S *rd = cd->recipient;
+
+       MSG_COMPOSER_BODY_PAGE_S *page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(body_data->page_list, nPage);
+
+       if (page_data) {
+               bool is_recipient_entry_activated = false;
+               if (rd)
+                       is_recipient_entry_activated = rd->is_entry_activated;
+               elm_object_focus_set(page_data->entry, EINA_TRUE);
+
+               D_MSG("Focus to Page[%d]", nPage);
+               if (should_body_keypad_be_shown(cd, nPage)) {
+                       /*Even If internal mode is true check if reply mode is false or not . if false only then launch keypad , otherwise launch it in idler.
+                       Because when we launch bubble composer from quickpanel , internal mode will be true.
+                       */
+                       if (cd->isMsgInternal || !cd->isAppControl) {
+                               if ((cd->bubble_data) && (cd->bubble_data->reply_mode == true)) {
+                                       D_MSG("MEssage INtyernal MOde is :%d ", cd->isMsgInternal);
+                                       cd->show_keypad_on_launch = true;
+                               } else {
+                                       msg_ui_composer_entry_input_panel_show(page_data->entry);
+                               }
+                       } else {
+                               if ((cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) && (is_recipient_entry_activated == true)) {
+                                       msg_ui_composer_entry_input_panel_show(page_data->entry);
+                               } else {
+                                       D_MSG("MEssage INtyernal MOde is :%d ", cd->isMsgInternal);
+                                       cd->show_keypad_on_launch = true;
+                               }
+                       }
+               }
+
+               /* Make reply mode false here mode false here */
+               if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+                       if (cd->bubble_data) {
+                               if ((cd->bubble_data->reply_mode) || ((cd->loaded_aul == false) && (cd->state == COMPOSER_STATE_TYPE_PAUSE))) {
+                                       cd->bubble_data->reply_mode = false;
+                               }
+                       }
+               }
+
+               if ((nPage == 0) && (true == msg_ui_composer_common_is_signature_enabled(cd, false))) {
+                       char *body_text = elm_entry_markup_to_utf8(elm_entry_entry_get(page_data->entry));
+                       if (body_text) {
+                               char *signature_start = g_strrstr(body_text, cd->signature_string);
+
+                               if (signature_start) {
+                                       if (!strcmp(signature_start, cd->signature_string)) {
+                                               glong full_str_cnt = g_utf8_strlen(body_text, -1);
+                                               glong signature_str_cnt = g_utf8_strlen(cd->signature_string, -1);
+
+                                               elm_entry_cursor_pos_set(page_data->entry, (full_str_cnt - signature_str_cnt));
+                                               D_MSG("cursor = %d", (full_str_cnt - signature_str_cnt));
+                                       }
+                               } else {
+                                       D_EMSG("signature_start is NULL");
+                               }
+
+                               free(body_text);
+                       } else {
+                               D_EMSG("body_text is NULL");
+                       }
+               } else {
+                       elm_entry_cursor_end_set(page_data->entry);
+               }
+       } else {
+               D_MSG("There is not exist Page[%d]", nPage);
+       }
+
+       D_LEAVE;
+}
+
+Evas_Object *msg_ui_composer_body_get_page_entry(MSG_COMPOSER_VIEW_DATA_S *cd, int nPage)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       D_MSG_RETVM_IF(nPage < 0, NULL, "nPage < 0");
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(body_data->page_list, nPage);
+
+       if (page_data)
+               return page_data->entry;
+       else
+               return NULL;
+}
+
+MSG_COMPOSER_BODY_PAGE_S *msg_ui_composer_body_get_page_by_content(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *obj)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       D_MSG_RETVM_IF(obj == NULL, NULL, "obj is 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;
+
+       if (!page_list) {
+               D_EMSG("page_list is NULL");
+               return NULL;
+       }
+
+       int page_count = eina_list_count(page_list);
+       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) {
+                       D_EMSG("page data is NULL !!!");
+                       return NULL;
+               }
+
+               if (page_data->sound_item == obj) {
+                       break;
+               } else if (page_data->image_item == obj) {
+                       break;
+               } else if (page_data->entry == obj) {
+                       break;
+               } else {
+                       page_data = NULL;
+               }
+       }
+
+       return page_data;
+}
+
+bool msg_ui_composer_body_get_focused_page_index(MSG_COMPOSER_VIEW_DATA_S *cd, int *page_index)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, false, "cd is NULL");
+       D_MSG_RETVM_IF(page_index == NULL, false, "page_index is NULL");
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       Eina_List *page_list = cd->body_data.page_list;
+       int index = 0;
+
+       if (page_list == NULL) {
+               D_EMSG("page_list is NULL");
+               return false;
+       }
+
+       Eina_List *l = NULL;
+       EINA_LIST_FOREACH(page_list, l, page_data) {
+               if (page_data == NULL) {
+                       D_EMSG("page_data is NULL");
+                       return false;
+               }
+
+               if (page_data->is_image_focus || page_data->is_sound_focus) {
+                       *page_index = index;
+                       return true;
+               }
+
+               if (evas_object_focus_get(page_data->entry)) {
+                       *page_index = index;
+                       return true;
+               }
+
+               ++index;
+       }
+
+       D_LEAVE;
+       return false;
+}
+
+bool msg_ui_composer_body_get_page_index(MSG_COMPOSER_VIEW_DATA_S *cd, MSG_COMPOSER_BODY_PAGE_S *page, int *page_index)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, false, "cd is NULL");
+       D_MSG_RETVM_IF(page_index == NULL, false, "page_index is NULL");
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       Eina_List *page_list = cd->body_data.page_list;
+       int index = 0;
+
+       if (page_list) {
+               Eina_List *l = NULL;
+               EINA_LIST_FOREACH(page_list, l, page_data) {
+                       if (page_data == page) {
+                               *page_index = index;
+                               return true;
+                       }
+
+                       ++index;
+               }
+       } else {
+               D_EMSG("page_list is NULL");
+       }
+       D_LEAVE;
+       return false;
+}
+
+MSG_COMPOSER_BODY_PAGE_S *msg_ui_composer_body_get_page_by_index(MSG_COMPOSER_VIEW_DATA_S *cd, int page_index)
+{
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+
+       if (page_index > cd->body_data.page_count) {
+               D_EMSG("invalid page_index = %d, page_count = %d", page_index, cd->body_data.page_count);
+               return NULL;
+       }
+
+       MSG_COMPOSER_BODY_PAGE_S *page_data = eina_list_nth(cd->body_data.page_list, page_index);
+
+       if (page_data)
+               return page_data;
+       else
+               return NULL;
+}
+
+bool msg_ui_composer_body_is_page_data(MSG_COMPOSER_BODY_PAGE_S *page)
+{
+       D_MSG_RETVM_IF(page == NULL, false, "page is NULL");
+
+       if (page->is_image_item)
+               return true;
+
+       if (page->is_sound_item)
+               return true;
+
+       if (page->entry) {
+               const char *str = elm_entry_entry_get(page->entry);
+               if (str && strlen(str)) {
+                       return true;
+               }
+       }
+
+       return false;
+}
+
+void msg_ui_composer_body_page_image_layout_focus_hide(MSG_COMPOSER_BODY_PAGE_S *page_data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(page_data == NULL, "page_data is NULL");
+       Evas_Object *btn = elm_object_part_content_get(page_data->image_item, "swl.content");
+       Evas_Object *media_layout = elm_object_part_content_get(btn, "elm.swallow.content");
+
+       if (media_layout)
+               edje_object_signal_emit(_EDJ(media_layout), "unfocused", "*");
+
+       page_data->is_image_focus = false;
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_page_image_layout_focus_show(MSG_COMPOSER_BODY_PAGE_S *page_data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(page_data == NULL, "page_data is NULL");
+       Evas_Object *btn = elm_object_part_content_get(page_data->image_item, "swl.content");
+       Evas_Object *media_layout = elm_object_part_content_get(btn, "elm.swallow.content");
+
+       if (media_layout)
+               edje_object_signal_emit(_EDJ(media_layout), "focused", "*");
+
+       page_data->is_image_focus = true;
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_page_sound_layout_focus_hide(MSG_COMPOSER_BODY_PAGE_S *page_data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(page_data == NULL, "page_data is NULL");
+       Evas_Object *btn = elm_object_part_content_get(page_data->sound_item, "swl.content");
+       Evas_Object *media_layout = elm_object_part_content_get(btn, "elm.swallow.content");
+
+       if (media_layout)
+               edje_object_signal_emit(_EDJ(media_layout), "unfocused", "*");
+
+       page_data->is_sound_focus = false;
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_page_sound_layout_focus_show(MSG_COMPOSER_BODY_PAGE_S *page_data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(page_data == NULL, "page_data is NULL");
+       Evas_Object *btn = elm_object_part_content_get(page_data->sound_item, "swl.content");
+       Evas_Object *media_layout = elm_object_part_content_get(btn, "elm.swallow.content");
+
+       if (media_layout)
+               edje_object_signal_emit(_EDJ(media_layout), "focused", "*");
+
+       page_data->is_sound_focus = true;
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_media_layout_focus_hide(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_MEDIA_HIDE_TYPE_E type, int page_index)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       Eina_List *page_list = cd->body_data.page_list;
+
+       if (!page_list) {
+               D_EMSG("page_list is NULL");
+               return;
+       }
+
+       int page_count = eina_list_count(page_list);
+       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) {
+                       D_EMSG("page data is NULL !!!");
+                       return;
+               }
+
+               if ((type != COMPOSER_MEDIA_HIDE_EXCEPT_IMAGE) || (i != page_index)) {
+                       if (page_data->is_image_item && page_data->is_image_focus)
+                               msg_ui_composer_body_page_image_layout_focus_hide(page_data);
+               }
+
+               if ((type != COMPOSER_MEDIA_HIDE_EXCEPT_SOUND) || (i != page_index)) {
+                       if (page_data->is_sound_item && page_data->is_sound_focus)
+                       msg_ui_composer_body_page_sound_layout_focus_hide(page_data);
+               }
+       }
+}
+
+void msg_ui_composer_body_update_page_divider(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       Eina_List *l = NULL;
+       Eina_List *page_list = cd->body_data.page_list;
+       char page_str[DEF_BUF_LEN_D + 1] = {0,};
+       int index = 0;
+
+       if (!page_list) {
+               D_EMSG("page_list is NULL");
+               return;
+       }
+
+       int total_page_count = eina_list_count(page_list);
+
+       EINA_LIST_FOREACH(page_list, l, page_data) {
+               if (!page_data) {
+                       D_IMSG("page data is NULL !!!");
+                       return;
+               }
+
+               if (index > 0) { /*skip first page*/
+                       if (page_data->page_divider) {
+                               memset(page_str, 0, sizeof(page_str));
+                               snprintf(page_str, sizeof(page_str), "%d/%d", index, total_page_count);
+                               edje_object_part_text_set(_EDJ(page_data->page_divider), "text.page_info", page_str);
+                       }
+               }
+               ++index;
+       }
+}
+
+void msg_ui_composer_body_backspace_image_layout_focus_show(MSG_COMPOSER_VIEW_DATA_S *cd, MSG_COMPOSER_BODY_PAGE_S *page_data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(page_data == NULL, "page_data is NULL");
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       /* layout is not focusible widget. So, in order to disappear cursor of entry unset focus of entry.
+       And, manually use input_panel_show to keep keypad showing becase entry unfocused cb makes hiding keypad. */
+
+       page_data->is_image_focus = true; /* removed from msg_ui_composer_body_page_image_layout_focus_show and put here so that in entry unfocused callback it can be tracked */
+       elm_object_focus_set(page_data->entry, EINA_FALSE);
+       msg_ui_composer_entry_input_panel_show(page_data->entry);
+
+       /* Bellow elm_object_focus_set() code should be called so that input_field_key_down_cb is called after moving focus to image layout */
+       elm_object_focus_set(elm_layout_edje_get(page_data->image_item), EINA_TRUE);
+
+       msg_ui_composer_body_page_image_layout_focus_show(page_data);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_backspace_sound_layout_focus_show(MSG_COMPOSER_VIEW_DATA_S *cd, MSG_COMPOSER_BODY_PAGE_S *page_data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(page_data == NULL, "page_data is NULL");
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       /* layout is not focusible widget. So, in order to disappear cursor of entry unset focus of entry.
+       And, manually use input_panel_show to keep keypad showing becase entry unfocused cb makes hiding keypad. */
+       elm_object_focus_set(page_data->entry, EINA_FALSE);
+       msg_ui_composer_entry_input_panel_show(page_data->entry);
+
+       /* Bellow elm_object_focus_set() code should be called so that input_field_key_down_cb is called after moving focus to image layout */
+       elm_object_focus_set(elm_layout_edje_get(page_data->sound_item), EINA_TRUE);
+
+       msg_ui_composer_body_page_sound_layout_focus_show(page_data);
+
+       D_LEAVE;
+}
+
+/**
+ * Check if page have really no data, included text and audio/image-attachments as well
+ * */
+static bool __msg_ui_is_page_empty(MSG_COMPOSER_BODY_PAGE_S *page_data)
+{
+       return elm_entry_is_empty(page_data->entry) && !page_data->sound_item && !page_data->image_item;
+}
+
+void msg_ui_composer_body_remove_cur_page(void *data, MSG_COMPOSER_BODY_PAGE_S *page_data, int page_index)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(page_data == NULL, "page_data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *remove_layout = NULL;
+
+       remove_layout = page_data->layout;
+
+       if (page_data->sound_item && page_data->is_sound_focus) {
+               D_MSG("remove sound layout");
+               msg_ui_composer_mms_attach_sound_remove(page_data, page_data->sound_item);
+       } else if (page_data->image_item && page_data->is_image_focus) {
+               D_MSG("remove image region layout");
+               msg_ui_composer_mms_attach_image_remove(page_data, page_data->image_item);
+       }
+
+       if (__msg_ui_is_page_empty(page_data)) {
+               D_MSG("remove page if it's empty");
+               msg_ui_composer_mms_body_remove_page(cd, remove_layout, true);
+       }
+
+       msg_ui_composer_message_type_check_and_change(cd);
+       msg_ui_composer_body_info_area_update(cd);
+
+       if (page_index >= 1) { /* if there is a previous page, check it */
+               int prev_page_index = page_index - 1;
+               MSG_COMPOSER_BODY_PAGE_S *prev_page_data = msg_ui_composer_body_get_page_by_index(cd, prev_page_index);
+               if (prev_page_data) {
+                       if (prev_page_data->is_sound_item) {
+                               /* move cursor to sound layout */
+                               msg_ui_composer_body_backspace_sound_layout_focus_show(cd, prev_page_data);
+                       } else {
+                               if (cd->body_data.region_order == COMPOSER_REGION_ORDER_TEXT_TOP) {
+                                       /* set focus to image layout */
+                                       if (prev_page_data->is_image_item) {
+                                               msg_ui_composer_body_backspace_image_layout_focus_show(cd, prev_page_data);
+                                       } else {
+                                               msg_ui_composer_entry_input_panel_show(prev_page_data->entry);
+                                       }
+                               } else {
+                                       /* move cursor at end of text of prev page */
+                                       /* entry focused_cb of prev_page_data is called at later. So, keypad is not shown on focused_cb */
+                                       msg_ui_composer_entry_input_panel_show(prev_page_data->entry);
+                               }
+                       }
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void msg_ui_composer_mms_attach_sound_remove(MSG_COMPOSER_BODY_PAGE_S *page_data, Evas_Object *remove_item)
+{
+       D_ENTER;
+       D_MSG("remove sound media item !!");
+       page_data->is_sound_item = false;
+       page_data->sound_item = NULL;
+       page_data->is_sound_focus = false;
+       /* remove temp file */
+       msg_composer_remove_file(page_data->sound_file_path);
+       page_data->sound_file_path[0] = '\0';
+       evas_object_del(remove_item);
+       D_LEAVE;
+}
+
+static void msg_ui_composer_mms_attach_image_remove(MSG_COMPOSER_BODY_PAGE_S *page_data, Evas_Object *remove_item)
+{
+       D_ENTER;
+       D_MSG("remove image region media item !!");
+       page_data->is_image_item = false;
+       page_data->image_item = NULL;
+       page_data->isVideo = false;
+       page_data->is_image_focus = false;
+       /* remove temp file */
+       msg_composer_remove_file(page_data->image_file_path);
+       page_data->image_file_path[0] = '\0';
+       evas_object_del(remove_item);
+       D_LEAVE;
+}
+
+void msg_ui_composer_back_space_remove_page(void *data, MSG_COMPOSER_BODY_PAGE_S *page_data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(page_data == NULL, "page_data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       /* check prev page's data and current pags' data
+               if (prev has data & current no data), then remove current page
+               else if (prev no data & current has data), then remove prev page
+               else if (prev no data & current no data), then remove prev page <= no concept,
+       */
+       int page_index = 0;
+       if (msg_ui_composer_body_get_page_index(cd, page_data, &page_index)) {
+               int prev_page_index = 0;
+               bool is_prev_page_data = false;
+               bool is_cur_page_data = false;
+
+               D_MSG("page_index = %d", page_index)
+               if (page_index > 0) {
+                       prev_page_index = page_index - 1;
+                       MSG_COMPOSER_BODY_PAGE_S *prev_page_data = msg_ui_composer_body_get_page_by_index(cd, prev_page_index);
+                       if (prev_page_data) {
+                               Evas_Object *remove_layout = NULL;
+                               is_prev_page_data = msg_ui_composer_body_is_page_data(prev_page_data);
+                               is_cur_page_data = msg_ui_composer_body_is_page_data(page_data);
+                               D_MSG("is_prev_page_data = %d, is_cur_page_data = %d", is_prev_page_data, is_cur_page_data);
+
+                               if (is_prev_page_data && !is_cur_page_data) {
+                                       msg_ui_composer_body_remove_cur_page(cd, page_data, page_index);
+                               } else if (!is_prev_page_data && is_cur_page_data) {
+                                       /* remove prev page and keep cursor position(start) */
+                                       D_MSG("remove prev page");
+                                       remove_layout = prev_page_data->layout;
+                                       msg_ui_composer_mms_body_remove_page(cd, remove_layout, true);
+                                       msg_ui_composer_message_type_check_and_change(cd);
+                                       msg_ui_composer_body_info_area_update(cd);
+                               } else if (!is_prev_page_data && !is_cur_page_data) {
+                                       /* remove prev page and keep cursor position(start) */
+                                       D_MSG("remove prev page");
+                                       remove_layout = prev_page_data->layout;
+                                       msg_ui_composer_mms_body_remove_page(cd, remove_layout, true);
+                                       msg_ui_composer_message_type_check_and_change(cd);
+                                       msg_ui_composer_body_info_area_update(cd);
+                               } else {
+                                       D_MSG("Do nothing. Both pages have data");
+                               }
+                       } else {
+                               D_EMSG("prev_page_data is NULL");
+                       }
+               }
+       } else {
+               D_IMSG("msg_ui_composer_body_get_page_index is failed");
+       }
+
+       D_LEAVE;
+}
diff --git a/composer/src/ui-composer/msg-ui-composer-body.c b/composer/src/ui-composer/msg-ui-composer-body.c
new file mode 100755 (executable)
index 0000000..3889686
--- /dev/null
@@ -0,0 +1,2709 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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-subject.h"
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-attachment.h"
+#include "msg-ui-composer-external.h"
+#include "msg-ui-composer-message.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-body-callback.h"
+#include "msg-ui-composer-data.h"
+#include "msg-ui-content-utility.h"
+#include "msg-ui-color.h"
+#include "msg-file-util.h"
+#include "msg-system-util.h"
+#include "msg-ui-common-app-control.h"
+
+Elm_Genlist_Item_Class template_list_itc;
+Elm_Gengrid_Item_Class add_text_gic;
+Elm_Gengrid_Item_Class message_options_list_itc;
+
+
+/* functions*/
+static void __msgc_restricted_mode_popup_close_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");
+
+       msg_ui_composer_destroy_popup(cd, cd->center_popup);
+
+       if (cd->iter_list)
+               msg_ui_composer_body_items_add(cd);
+
+       D_LEAVE;
+}
+
+static void __msgc_warning_mode_popup_ok_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");
+
+       cd->wait_giving_focus = true;
+       /*It avoids to move focus to entry automatically by widget */
+       msg_ui_composer_set_entry_focusable(cd, EINA_FALSE);
+
+       msg_ui_composer_destroy_popup(cd, cd->center_popup);
+
+       cd->wait_giving_focus = false;
+       msg_ui_composer_set_entry_focusable(cd, EINA_TRUE);
+
+       cd->body_data.creation_allowed = COMPOSER_CONTENT_CREATION_ALLOWED;
+
+       if (cd->iter_list)
+               msg_ui_composer_body_items_add(cd);
+       else
+               D_EMSG("cd->iter_list is NULL");
+
+       D_LEAVE;
+}
+
+static void __msgc_warning_mode_popup_do_cancel_process(void *data)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       cd->body_data.creation_allowed = COMPOSER_CONTENT_CREATION_NOT_ALLOWED;
+
+       if (cd->iter_list) {
+               /* check next iter_list(file list) */
+               cd->iter_list = eina_list_next(cd->iter_list);
+
+               if (cd->iter_list) {
+                       msg_ui_composer_body_items_add(cd);
+               } else {
+                       char *list_data = NULL;
+
+                       if (cd->isLoad == true)
+                               cd->isLoad = false;
+
+                       EINA_LIST_FREE(cd->attachlist, list_data) {
+                               if (list_data)
+                                       free(list_data);
+                       }
+
+                       cd->attach_index = 0;
+                       cd->body_data.creation_allowed = COMPOSER_CONTENT_CREATION_NONE;
+               }
+       }
+}
+
+static void __msgc_warning_mode_popup_cancel_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");
+       /* Be careful when you use obj, because this cb funtion is used for clicked cb and back key */
+       msg_ui_composer_destroy_popup(cd, cd->center_popup);
+       __msgc_warning_mode_popup_do_cancel_process(cd);
+
+       D_LEAVE;
+}
+
+static void __msgc_warning_mode_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *)event_info;
+
+       if (ev->button == 3) {/* if mouse right button is up */
+               D_MSG("Back operation");
+               msg_ui_composer_destroy_popup(cd, cd->center_popup);
+               __msgc_warning_mode_popup_do_cancel_process(cd);
+       }
+}
+
+static void __msgc_sound_and_shot_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");
+
+       msg_ui_composer_destroy_popup(cd, cd->popup_end);
+       msg_ui_composer_body_items_add(cd);
+
+       D_LEAVE;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_get_message_size(MSG_COMPOSER_VIEW_DATA_S *cd, int64 *size)
+{
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_NULL_POINTER, "Composer Data is Invalid");
+       D_MSG_RETVM_IF(size == NULL, COMPOSER_RETURN_NULL_POINTER, " size parameter is Invalid");
+       int inserted_size = 0;
+       int attached_size = 0;
+       int total_size = 0;
+
+       /* This is a temporal approach to get a message size */
+       /* currently, Message size is sum of attached files and inserted files */
+       /* it will be implemented, message size validate API on MF side */
+       inserted_size = msg_ui_composer_get_inserted_item_size(cd);
+       attached_size = msg_ui_composer_get_attached_item_size(cd);
+
+       D_MSG("inserted_size(%d)+attached_size(%d)", inserted_size, attached_size);
+       total_size = inserted_size + attached_size;
+       *size = total_size;
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+static COMPOSER_RETURN_TYPE_E __msgc_jpeg_image_get_resizing_resolution(const char *src_path, int creation_mode, int *dst_w, int *dst_h, int win_w, int win_h)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(src_path == NULL, COMPOSER_RETURN_FAIL, "Parameter Source Path is Invaild");
+       D_MSG_RETVM_IF(dst_w == NULL, COMPOSER_RETURN_FAIL, "dst_w is Invaild");
+       D_MSG_RETVM_IF(dst_h == NULL, COMPOSER_RETURN_FAIL, "dst_h is Invaild");
+       int goal_w = 0;
+       int goal_h = 0;
+       int from_w = 0;
+       int from_h = 0;
+       int to_w = 0;
+       int to_h = 0;
+
+       if (!win_w || !win_h)
+               D_EMSG("getting win size is failed(%d,%d)", win_w, win_h);
+
+       /* get original image resolution*/
+       int util_ret = jpeg_image_get_resolution(src_path, &from_w, &from_h);
+       D_MSG_RETVM_IF(util_ret != COMPOSER_UTIL_RET_SUCCESS, COMPOSER_RETURN_FAIL, "Fail to Get Resolution");
+       D_MSG("Input IMAGE resolution %d X %d", from_w, from_h);
+
+       if (from_w > from_h) {
+               if (creation_mode == MSG_CREATION_MODE_FREE || creation_mode == MSG_CREATION_MODE_WARNING) {
+                       if (win_w && win_h) {
+                               goal_w = win_h;
+                               goal_h = win_w;
+                       } else {
+                               goal_w = MSGC_RESTRICT_MAX_IMG_W;
+                               goal_h = MSGC_RESTRICT_MAX_IMG_H;
+                       }
+               } else {
+                       goal_w = MSGC_RESTRICT_MAX_IMG_W;
+                       goal_h = MSGC_RESTRICT_MAX_IMG_H;
+               }
+       } else {
+               if (creation_mode == MSG_CREATION_MODE_FREE || creation_mode == MSG_CREATION_MODE_WARNING) {
+                       if (win_w && win_h) {
+                               goal_w = win_w;
+                               goal_h = win_h;
+                       } else {
+                               goal_w = MSGC_RESTRICT_MAX_IMG_H;
+                               goal_h = MSGC_RESTRICT_MAX_IMG_W;
+                       }
+               } else {
+                       goal_w = MSGC_RESTRICT_MAX_IMG_H;
+                       goal_h = MSGC_RESTRICT_MAX_IMG_W;
+               }
+       }
+
+       D_MSG("Set RESTRICT resolution %d X %d", goal_w, goal_h);
+
+       if (from_w > goal_w && from_h > goal_h) {
+               double weight_w = (double)goal_w/from_w;
+               double weight_h = (double)goal_h/from_h;
+               if (weight_w < weight_h) {
+                       to_w = goal_w;
+                       to_h = from_h*weight_w;
+               } else if (weight_w > weight_h) {
+                       to_w = from_w*weight_h;
+                       to_h = goal_h;
+               } else {
+                       to_w = goal_w;
+                       to_h = goal_h;
+               }
+       } else if (from_w > goal_w) {
+               double weight_w = (double)goal_w/from_w;
+               to_w = goal_w;
+               to_h = from_h*weight_w;
+       } else if (from_h > goal_h) {
+               double weight_h = (double)goal_h/from_h;
+               to_w = from_w*weight_h;
+               to_h = goal_h;
+       } else {
+               D_IMSG("It does not need to resize image");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       D_MSG("dest image resolution to %d X %d", to_w, to_h);
+
+       *dst_w = to_w;
+       *dst_h = to_h;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+static COMPOSER_RETURN_TYPE_E __msgc_image_change_image(const char *src_path, int64 wishsize, MSGC_UTIL_CHANGE_IMAGE_S *req, const char *dst_path)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(src_path == NULL, COMPOSER_RETURN_FAIL, "Parameter Source Path is Invaild");
+       D_MSG_RETVM_IF(dst_path == NULL, COMPOSER_RETURN_FAIL, "Parameter Destination Path is Invaild");
+       D_MSG_RETVM_IF(req == NULL, COMPOSER_RETURN_FAIL, "Parameter req is Invaild");
+       D_MSG_RETVM_IF(wishsize <= 0, COMPOSER_RETURN_FAIL, "Parameter remain size (%d) is Invaild", wishsize);
+
+       const int max_resize_loop = COMPOSER_RESIZE_LOOP_MAX;
+       int quality = 0;
+       char *file_ext = NULL;
+       int i = 0;
+       int util_ret;
+
+       file_ext = msg_composer_get_file_ext(src_path);
+       D_MSG_RETVM_IF((strcasecmp(file_ext, "jpeg") != 0 && strcasecmp(file_ext, "jpg") != 0 && strcasecmp(file_ext, "png") != 0), COMPOSER_RETURN_FAIL, "File Ext Value is NOT Valid");
+
+       /* Set proper quality for image quality down */
+       int64 file_size = msg_composer_get_file_size(src_path);
+
+       /* get quality value of first trial */
+       if (req->type & MSGC_IMAGE_CHANGE_RESIZE) {
+               quality = 100;
+       } else {
+               if (file_size > wishsize) {
+                       int percent;
+                       percent = (int)(wishsize * 100) / file_size;
+                       D_MSG("percent(%d) = wishsize(%lld) / filesize(%lld)", percent, wishsize, file_size);
+                       /* remain size of msg / Original File Size x 100 = percentage to reduce original file
+                               If percent > 60 then proper quality is 90
+                               If 40 < percent < 60 then proper quality is 80
+                               If 20 < percent < 40 then proper quality is 60
+                               If 15 < percent < 20 then proper quality is 20
+                               If 15 < percent < 20 then proper quality is 20
+                               If 10 < percent < 15 then proper quality is 10
+                               else proper quality is 10
+                       */
+
+                       if (percent > 60) {
+                               quality = 90;
+                       } else if (percent > 40) {
+                               quality = 80;
+                       } else if (percent > 20) {
+                               quality = 60;
+                       } else if (percent > 15) {
+                               quality = 20;
+                       } else if (percent > 10) {
+                               quality = 10;
+                       } else {
+                               quality = 10;
+                       }
+               } else {
+                       if (req->type & MSGC_IMAGE_CHANGE_ROTATION)
+                               quality = 100;
+                       else
+                               return COMPOSER_RETURN_SUCCESS;
+               }
+       }
+
+       /* Try image qulity down */
+       for (i = 0; i < max_resize_loop; i++) {
+               if (quality < 5) {
+                       D_EMSG("Quality is Too Low to Resize");
+                       return COMPOSER_RETURN_FAIL;
+               }
+
+               /* set quality value to image request info. */
+               req->quality = quality;
+               req->type |= MSGC_IMAGE_CHANGE_QUAILTY;
+
+               util_ret = jpeg_image_change_image(src_path, req, dst_path);
+
+               if (util_ret == COMPOSER_UTIL_RET_SUCCESS) {
+                       file_size = msg_composer_get_file_size(dst_path);
+
+                       if (wishsize > file_size) {
+                               return COMPOSER_RETURN_SUCCESS;
+                       } else {
+                               D_MSG("filesize(%lld)", file_size);
+                       }
+
+                       quality -= 10;
+
+                       /* init req type */
+                       req->type = 0;
+               } else {
+                       D_EMSG("Fail to Resizing");
+                       return COMPOSER_RETURN_FAIL;
+               }
+       }
+
+       D_EMSG("Resized Result Size Is Not Satisfy to Add");
+       return COMPOSER_RETURN_FAIL;
+}
+
+static char *__msg_ui_composer_body_unattached_filename_popup_str(Eina_List *iter_list)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(iter_list == NULL, NULL, "iter_list is NULL");
+
+       char *str_buf = NULL;
+       str_buf = (char *)calloc(DEF_BUF_LEN_1024 + 1, sizeof(char));
+
+       if (str_buf) {
+               char *offset = NULL;
+               char *new_line_char = "\n";
+               int total_str_len = 0;
+               int file_name_len = 0;
+               int new_line_len = strlen(new_line_char);
+               int buf_len = DEF_BUF_LEN_1024 + 1;
+               Eina_List *l = NULL;
+               char *list_data = NULL;
+
+               EINA_LIST_FOREACH(iter_list, l, list_data) {
+                       const char *file_name = msg_file_file_get((const char *)list_data);
+                       if (!file_name) {
+                               D_EMSG("file_name is NULL");
+                       } else {
+                               D_MSG("file_name : %s", file_name);
+                               file_name_len = strlen(file_name);
+
+                               /* check buf size in order to realloc memory */
+                               if ((total_str_len + file_name_len + new_line_len) >= buf_len) {
+                                       char *new_buf = NULL;
+
+                                       buf_len = total_str_len + file_name_len + new_line_len + 1;
+                                       new_buf = (char *)realloc(str_buf, buf_len * sizeof(char));
+                                       if (!new_buf) {
+                                               D_EMSG("realloc is failed");
+                                               free(str_buf);
+                                               return NULL;
+                                       } else {
+                                               D_MSG("new buf (%s)", new_buf);
+                                               str_buf = new_buf;
+                                       }
+                               }
+
+                               offset = str_buf + strlen(str_buf);
+                               g_utf8_strncpy(offset, new_line_char, g_utf8_strlen(new_line_char, -1));
+                               total_str_len += new_line_len;
+
+                               offset = str_buf + strlen(str_buf);
+                               g_utf8_strncpy(offset, file_name, g_utf8_strlen(file_name, -1));
+                               total_str_len += file_name_len;
+                       }
+               }
+               D_SEC_MSG("str_buf(%s)", str_buf);
+       } else {
+               D_EMSG("calloc is failed");
+       }
+
+       D_LEAVE;
+       return str_buf;
+}
+
+static void __msg_ui_composer_body_resize_end_job(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = NULL;
+       COMPOSER_THREAD_DATA_S *th_data = NULL;
+       COMPOSER_RETURN_TYPE_E ret;
+       char *list_data = NULL;
+
+       th_data = data;
+       D_MSG_RETM_IF(th_data == NULL, "Thread Data is NULL");
+
+       cd = th_data->cd;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       cd->job_thread_end = NULL;
+       cd->attach_thread = NULL;
+
+       if (th_data->status == COMPOSER_THREAD_STATUS_RESIZE_SUCCESS) {
+               /*attach item exist*/
+               if (cd->iter_list) {
+                       ret = msg_ui_composer_body_items_add(cd);
+                       if (ret == COMPOSER_RETURN_RESIZE_IMAGE) {
+                               D_MSG("resize attach item ...");
+                               if (th_data)
+                                       g_free(th_data);
+                               return;
+                       }
+               }
+       } else {
+               /* remove temp file */
+               msg_composer_remove_file(th_data->filepath);
+
+               char *popup_str = NULL;
+               char *filenames_str = NULL;
+               int popup_str_len = 0;
+
+               if (cd->iter_list) {
+                       if (cd->attach_index <= eina_list_count(cd->iter_list)) {
+                               cd->iter_list = eina_list_prev(cd->iter_list);
+                               filenames_str = __msg_ui_composer_body_unattached_filename_popup_str(cd->iter_list);
+                       }
+               } else {
+                       if (cd->attach_index <= eina_list_count(cd->attachlist)) {
+                               Eina_List *attachlist = eina_list_nth_list(cd->attachlist, cd->attach_index - 1);
+                               filenames_str = __msg_ui_composer_body_unattached_filename_popup_str(attachlist);
+                       }
+               }
+
+               popup_str_len = strlen(_MSGSTR("IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"));
+               if (filenames_str) {
+                       popup_str_len = popup_str_len + strlen(filenames_str);
+               }
+               popup_str = (char *)calloc(popup_str_len + 1, sizeof(char));
+               if (popup_str) {
+                       sprintf(popup_str, "%s%s", _MSGSTR("IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"), filenames_str);
+
+                       if (cd->center_popup) {
+                               msg_ui_composer_destroy_popup(cd, cd->center_popup);
+                               cd->center_popup = NULL;
+                       }
+
+                       Evas_Object *popup = msg_ui_composer_create_text_btn_popup(cd, popup_str, 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+                       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB");
+                       cd->center_popup = popup;
+
+                       free(popup_str);
+                       popup_str = NULL;
+               } else {
+                       D_EMSG("calloc for popup_str failed");
+               }
+
+               if (filenames_str) {
+                       free(filenames_str);
+                       filenames_str = NULL;
+               }
+       }
+
+       /* location text data after adding image */
+       if (cd->result_string) {
+               Evas_Object *entry = NULL;
+               char *markup_str = NULL;
+
+               entry = msg_ui_composer_last_body_entry_get(cd);
+               if (entry) {
+                       markup_str = elm_entry_utf8_to_markup(eina_strbuf_string_get(cd->result_string));
+                       if (markup_str) {
+                               elm_entry_entry_append(entry, markup_str);
+                               elm_entry_cursor_end_set(entry);
+                               free(markup_str);
+                       }
+               }
+
+               eina_strbuf_free(cd->result_string);
+               cd->result_string = NULL;
+       }
+
+       if (!msg_ui_composer_popup_exist(cd))
+               msg_ui_composer_reset_view(cd);
+
+       if (cd->isLoad == true)
+               cd->isLoad = false;
+
+       EINA_LIST_FREE(cd->attachlist, list_data) {
+               if (list_data)
+                       g_free(list_data);
+       }
+
+       cd->attachlist = NULL;
+       cd->attach_index = 0;
+       cd->body_data.creation_allowed = COMPOSER_CONTENT_CREATION_NONE;
+
+       /* destroy resizing progress popup */
+       if (cd->progress_popup) {
+               msg_ui_composer_destroy_popup(cd, cd->progress_popup);
+       }
+       cd->iter_list = NULL;
+
+       if (th_data)
+               g_free(th_data);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_resize_worker_end_cb(void *data, Ecore_Thread *thread)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = NULL;
+       COMPOSER_THREAD_DATA_S *th_data = NULL;
+
+       th_data = data;
+       D_MSG_RETM_IF(th_data == NULL, "Thread Data is NULL");
+
+       cd = th_data->cd;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       cd->attach_thread = NULL;
+
+       if (cd->job_thread_end) {
+               ecore_job_del(cd->job_thread_end);
+               cd->job_thread_end = NULL;
+       }
+       cd->job_thread_end = ecore_job_add(__msg_ui_composer_body_resize_end_job, th_data);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_resize_worker_feedback_cb(void *data, Ecore_Thread *thread, void *msg_data)
+{
+       D_ENTER;
+       COMPOSER_THREAD_DATA_S *th_data = data;
+
+       D_MSG_RETM_IF(th_data == NULL, "Thread Data is Invalid");
+       D_MSG_RETM_IF(msg_data == NULL, "Thread Message Data is Invalid");
+
+       if (th_data->cd->progress_popup) {
+               msg_ui_composer_destroy_popup(th_data->cd, th_data->cd->progress_popup);
+       }
+
+       D_SEC_MSG("Received Resized Image path = %s", msg_data);
+       msg_ui_composer_body_insert_media(th_data->cd, msg_data, COMPOSER_MEDIA_TYPE_IMAGE);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_resize_worker_thread(void *data, Ecore_Thread *thread)
+{
+       D_ENTER;
+       COMPOSER_RETURN_TYPE_E resize_result;
+       MSG_COMPOSER_VIEW_DATA_S *cd;
+       COMPOSER_THREAD_DATA_S *th_data = data;
+
+       if (!th_data) {
+               D_EMSG("No th_data");
+               ecore_thread_feedback(thread, "No th_data");
+               return;
+       }
+
+       cd = th_data->cd;
+       if (!cd) {
+               D_EMSG("No cd");
+               ecore_thread_feedback(thread, "No cd");
+               return;
+       }
+
+       MSGC_UTIL_CHANGE_IMAGE_S image_req = {0,};
+
+
+       if (__msgc_jpeg_image_get_resizing_resolution(th_data->filepath, th_data->creation_mode,
+                                                                                                 &image_req.dest_width, &image_req.dest_height,
+                                                                                                 th_data->win_width, th_data->win_height) == COMPOSER_RETURN_SUCCESS)
+               image_req.type |= MSGC_IMAGE_CHANGE_RESIZE;
+
+       if (th_data->rotation) {
+               image_req.type |= MSGC_IMAGE_CHANGE_ROTATION;
+               image_req.rotation = th_data->rotation;
+
+               th_data->rotation = 0;
+       }
+
+       resize_result = __msgc_image_change_image(th_data->filepath, th_data->wishsize, &image_req, th_data->filepath);
+       if (resize_result == COMPOSER_RETURN_SUCCESS) {
+               th_data->status = COMPOSER_THREAD_STATUS_RESIZE_SUCCESS;
+               ecore_thread_feedback(thread, th_data->filepath);
+       } else {
+               th_data->status = COMPOSER_THREAD_STATUS_RESIZE_FAIL;
+       }
+
+       D_LEAVE;
+}
+
+Evas_Object *msg_ui_create_popup(Evas_Object *parent, MSG_COMPOSER_VIEW_DATA_S *cd, const char *message_id, Evas_Smart_Cb on_ok)
+{
+       D_ENTER;
+       Evas_Object *popup = msg_ui_composer_create_text_popup(parent, cd, _MSGSTR(message_id), 0);
+       Evas_Object *btn1 = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       elm_object_part_content_set(popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", on_ok, cd);
+
+       elm_object_focus_set(popup, EINA_TRUE);
+       evas_object_show(popup);
+       return popup;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_items_add(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "Composer Data is Invalid");
+       D_MSG_RETVM_IF(cd->attachlist == NULL, COMPOSER_RETURN_FAIL, "Composer attach List is Invalid");
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       char *list_data = NULL;
+       COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+       Eina_List *l = NULL;
+       Eina_List *o = NULL;
+
+       if (cd->is_sound_and_shot) {
+               if (cd->popup_end) {
+                       msg_ui_composer_destroy_popup(cd, cd->popup_end);
+                       cd->popup_end = NULL;
+               }
+
+               cd->popup_end = msg_ui_create_popup(cd->navi_bar, cd,
+                               "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED",
+                               __msgc_sound_and_shot_popup_btn_clicked_cb);
+               cd->is_sound_and_shot = false;
+               return COMPOSER_RETURN_SOUND_AND_SHOT_FAIL;
+       }
+
+       if (cd->iter_list)
+               o = cd->iter_list;
+       else
+               o = cd->attachlist;
+       COMPOSER_MEDIA_TYPE_E media_type;
+
+       EINA_LIST_FOREACH(o, l, list_data) {
+               cd->attach_index++;
+               D_MSG("cd->attach_index = %d", cd->attach_index);
+               media_type = msg_composer_get_media_type(list_data);
+               if ((body_data->page_count >= COMPOSER_MMS_MAX_PAGE) && (media_type == COMPOSER_MEDIA_TYPE_IMAGE || media_type == COMPOSER_MEDIA_TYPE_VIDEO)) {
+                       char buf[DEF_BUF_LEN] = { 0, };
+                       char *text = dgettext(MESSAGE_PKGNAME, "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED");
+                       snprintf(buf, sizeof(buf), text, COMPOSER_MMS_MAX_PAGE);
+                       msg_ui_composer_create_text_btn_popup(cd, buf, 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+                       return COMPOSER_RETURN_MAX_PAGE;
+               }
+               if (list_data) {
+                       ret = msg_ui_composer_body_item_add(cd, list_data);
+                       if (ret == COMPOSER_RETURN_RESIZE_IMAGE) {
+                               break;
+                       } else if (ret == COMPOSER_RETURN_MAX_PAGE) {
+                               break;
+                       } else if (ret == COMPOSER_RETURN_DRM_FORWARDLOCK) {
+                               msg_ui_composer_create_text_btn_popup(cd, _MSGSTR("IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"), 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+                               break;
+                       } else if (ret == COMPOSER_RETURN_OVERSIZE_FILE) {
+                               char *popup_str = NULL;
+                               char *filenames_str = NULL;
+                               int popup_str_len = 0;
+
+                               if (cd->iter_list) {
+                                       if (cd->attach_index <= eina_list_count(cd->iter_list)) {
+                                               filenames_str = __msg_ui_composer_body_unattached_filename_popup_str(cd->iter_list);
+                                       }
+                               } else {
+                                       if (cd->attach_index <= eina_list_count(cd->attachlist)) {
+                                               Eina_List *attachlist = eina_list_nth_list(cd->attachlist, cd->attach_index - 1);
+                                               filenames_str = __msg_ui_composer_body_unattached_filename_popup_str(attachlist);
+                                       }
+                               }
+
+                               popup_str_len = strlen(_MSGSTR("IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"));
+                               if (filenames_str) {
+                                       popup_str_len = popup_str_len + strlen(filenames_str);
+                               }
+                               popup_str = (char *)calloc(popup_str_len + 1, sizeof(char));
+                               if (popup_str) {
+                                       sprintf(popup_str, "%s%s", _MSGSTR("IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"), filenames_str);
+
+                                       if (cd->center_popup) {
+                                               msg_ui_composer_destroy_popup(cd, cd->center_popup);
+                                               cd->center_popup = NULL;
+                                       }
+
+                                       Evas_Object *popup = msg_ui_composer_create_text_btn_popup(cd, popup_str, 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+                                       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB");
+                                       cd->center_popup = popup;
+
+                                       free(popup_str);
+                                       popup_str = NULL;
+                               } else {
+                                       D_EMSG("calloc for popup_str failed");
+                               }
+
+                               if (filenames_str) {
+                                       free(filenames_str);
+                                       filenames_str = NULL;
+                               }
+                               break;
+                       } else if (ret == COMPOSER_RETURN_CREATION_RESTRICTED_MODE_FAIL) {
+                               if (cd->center_popup) {
+                                       msg_ui_composer_destroy_popup(cd, cd->center_popup);
+                                       cd->center_popup = NULL;
+                               }
+                               Evas_Object *popup = msg_ui_composer_create_text_popup(cd->navi_bar, cd, _MSGSTR("IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"), 0);
+                               Evas_Object *btn1 = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+                               elm_object_part_content_set(popup, "button1", btn1);
+                               evas_object_smart_callback_add(btn1, "clicked", __msgc_restricted_mode_popup_close_btn_clicked_cb, cd);
+                               elm_object_focus_set(popup, EINA_TRUE);
+                               evas_object_show(popup);
+                               cd->center_popup = popup;
+                               break;
+                       } else if (ret == COMPOSER_RETURN_CREATION_WARINING_MODE_FAIL) {
+                               if (cd->center_popup) {
+                                       msg_ui_composer_destroy_popup(cd, cd->center_popup);
+                                       cd->center_popup = NULL;
+                               }
+
+                               Evas_Object *popup = msg_ui_composer_create_text_popup_with_hardkey_cb(cd->main_window, cd, _MSGSTR("IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"),
+                                               __msgc_warning_mode_popup_mouseup_cb, __msgc_warning_mode_popup_cancel_btn_clicked_cb);
+                               Evas_Object *negative_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+                               elm_object_part_content_set(popup, "button1", negative_btn);
+                               evas_object_smart_callback_add(negative_btn, "clicked", __msgc_warning_mode_popup_cancel_btn_clicked_cb, cd);
+                               Evas_Object *positive_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+                               elm_object_part_content_set(popup, "button2", positive_btn);
+                               evas_object_smart_callback_add(positive_btn, "clicked", __msgc_warning_mode_popup_ok_btn_clicked_cb, cd);
+                               elm_object_focus_set(popup, EINA_TRUE);
+                               evas_object_show(popup);
+                               cd->center_popup = popup;
+                               break;
+                       } else if ((ret == COMPOSER_RETURN_CREATION_RESTRICTED_MODE_PASS) || (ret == COMPOSER_RETURN_CREATION_WARINING_MODE_PASS)) {
+                               D_SEC_MSG("skip this file = (%s)", list_data);
+                       } else if (ret == COMPOSER_RETURN_MEMORY_FULL) {
+                               msg_ui_composer_unset_view(cd);
+                               msg_ui_composer_create_memory_full_popup(cd);
+                               break;
+                       } else if (ret == COMPOSER_RETURN_ATTACHMENT_MAX_COUNT) {
+                               D_MSG("attachement count reached max limit");
+                               goto clear_data;
+                       } else if (ret != COMPOSER_RETURN_SUCCESS) {
+                               msg_ui_composer_unset_view(cd);
+                               D_EMSG("Fail to add item");
+                               msg_ui_composer_create_text_btn_popup(cd, _MSGSTR("IDS_MSGC_POP_MMSCANTADD"), 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+                               break;
+                       }
+               }
+       }
+
+       if (ret == COMPOSER_RETURN_RESIZE_IMAGE) {
+               cd->iter_list = eina_list_next(l);
+       } else if (ret == COMPOSER_RETURN_CREATION_RESTRICTED_MODE_FAIL) {
+               cd->iter_list = eina_list_next(l);
+
+               if (!cd->iter_list)
+                       goto clear_data;
+       } else if (ret == COMPOSER_RETURN_CREATION_WARINING_MODE_FAIL) {
+               /* keep current file */
+               cd->iter_list = l;
+       } else {
+               goto clear_data;
+       }
+
+       D_LEAVE;
+       return ret;
+
+clear_data:
+       /* location text data after adding image */
+       if (cd->result_string) {
+               Evas_Object *entry = NULL;
+               char *markup_str = NULL;
+
+               entry = msg_ui_composer_last_body_entry_get(cd);
+               if (entry) {
+                       markup_str = elm_entry_utf8_to_markup(eina_strbuf_string_get(cd->result_string));
+                       if (markup_str) {
+                               elm_entry_entry_append(entry, markup_str);
+                               elm_entry_cursor_end_set(entry);
+                               free(markup_str);
+                       }
+               }
+
+               eina_strbuf_free(cd->result_string);
+               cd->result_string = NULL;
+       }
+
+       if (!msg_ui_composer_popup_exist(cd))
+               msg_ui_composer_last_focus_load(cd);
+
+       if (cd->isLoad == true)
+               cd->isLoad = false;
+
+       EINA_LIST_FREE(cd->attachlist, list_data) {
+               if (list_data)
+                       free(list_data);
+       }
+
+       cd->attachlist = NULL;
+       cd->iter_list = NULL;
+       cd->attach_index = 0;
+       cd->body_data.creation_allowed = COMPOSER_CONTENT_CREATION_NONE;
+
+       return ret;
+}
+
+bool msg_ui_composer_body_weburi_append(MSG_COMPOSER_VIEW_DATA_S *cd, const char *uri)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, false, "Composer Data is Invalid");
+       D_MSG_RETVM_IF(uri == NULL, false, "uri is NULL");
+       D_MSG_RETVM_IF(is_web_uri(uri) == false, false, "url is NOT weburi");
+
+       Evas_Object *entry = msg_ui_composer_last_body_entry_get(cd);
+       D_MSG_RETVM_IF(entry == NULL, false, "entry is NULL");
+
+       char *str = elm_entry_utf8_to_markup(uri);
+       D_MSG_RETVM_IF(str == NULL, false, "markup string is NULL");
+
+       char *prev_str = elm_entry_markup_to_utf8(elm_entry_entry_get(entry));
+       if (prev_str) {
+               if (strlen(prev_str) > 0) {
+                       char *enter = elm_entry_utf8_to_markup("\n");
+                       if (enter) {
+                               elm_entry_entry_append(entry, enter);
+                               g_free(enter);
+                       }
+                       elm_entry_entry_append(entry, str);
+               } else {
+                       elm_entry_entry_set(entry, str);
+               }
+
+               g_free(prev_str);
+       } else {
+               D_MSG("prev_str is NULL !!");
+               elm_entry_entry_set(entry, str);
+       }
+
+       g_free(str);
+       D_LEAVE;
+       return true;
+}
+
+static bool __msg_ui_is_image_extesion(const char *ext)
+{
+       return (strcasecmp(ext, "jpeg") == 0 || strcasecmp(ext, "jpg") == 0 || strcasecmp(ext, "png") == 0);
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_item_add(MSG_COMPOSER_VIEW_DATA_S *cd, const char *item_path)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_NULL_POINTER, "Composer Data is Invalid");
+       D_MSG_RETVM_IF(item_path == NULL, COMPOSER_RETURN_NULL_POINTER, "item_path is NULL");
+
+       COMPOSER_RETURN_TYPE_E ret;
+       COMPOSER_MEDIA_TYPE_E media_type;
+
+       /*if path is web uri then set path as body text*/
+       if (is_web_uri(item_path) == true) {
+               if (msg_ui_composer_body_weburi_append(cd, item_path) == false)
+                       return COMPOSER_RETURN_FAIL;
+
+               return COMPOSER_RETURN_SUCCESS;
+       }
+
+       /*check file path*/
+       if (msg_file_exists(item_path) == EINA_FALSE) {
+               D_SEC_EMSG("item_path(%s) is NOT Exist", item_path);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (msg_file_is_dir(item_path) == EINA_TRUE) {
+               D_SEC_EMSG("item_path(%s) is dir", item_path);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       /* check memory full */
+       if (msg_common_is_memory_full()) {
+               D_WMSG("memory full status");
+               return COMPOSER_RETURN_MEMORY_FULL;
+       }
+
+       /*Check Media Type*/
+       media_type = msg_composer_get_media_type(item_path);
+       D_MSG("media_type = %d", media_type);
+
+       /*Check Creation Mode*/
+       COMPOSER_UTIL_RETURN_E allowed_type = COMPOSER_UTIL_RET_ERR;
+       int creationMode = -1;
+       bool need_to_resize = false;    /* set for restricted resizing image */
+       msg_struct_t setting = NULL;
+
+       setting = msg_create_struct(MSG_STRUCT_SETTING_MMS_SEND_OPT);
+
+       if (setting) {
+               msg_get_mms_send_opt(cd->msg_handle, setting);
+               if (msg_get_int_value(setting, MSG_MMS_SENDOPT_CREATION_MODE_INT, &creationMode) == MSG_SUCCESS) {
+                       D_IMSG("creationMode = %d", creationMode);
+                       if (creationMode == MSG_CREATION_MODE_RESTRICTED || creationMode == MSG_CREATION_MODE_WARNING) {
+                               allowed_type = msg_composer_is_allowed_creation_mode(item_path, media_type, creationMode, cd->composer_mode);
+                       }
+               }
+
+               msg_release_struct(&setting);
+       } else {
+               D_EMSG("msg_create_struct is failed");
+       }
+
+       if (false == cd->loading_draft) {
+               /* creation restricted mode */
+               if (creationMode == MSG_CREATION_MODE_RESTRICTED) {
+                       if (allowed_type == COMPOSER_UTIL_RET_NOT_ALLOWED) {
+                               if (cd->body_data.creation_allowed != COMPOSER_CONTENT_CREATION_NOT_ALLOWED) {
+                                       cd->body_data.creation_allowed = COMPOSER_CONTENT_CREATION_NOT_ALLOWED;
+                                       /* show restricted popup one time */
+                                       return COMPOSER_RETURN_CREATION_RESTRICTED_MODE_FAIL;
+                               } else {
+                                       return COMPOSER_RETURN_CREATION_RESTRICTED_MODE_PASS;
+                               }
+                       } else if (allowed_type == COMPOSER_UTIL_RET_ALLOWED_WITH_RESIZE) {
+                               need_to_resize = true;
+                       }
+               }
+
+               /* creation warning mode */
+               if (creationMode == MSG_CREATION_MODE_WARNING) {
+                       if (allowed_type == COMPOSER_UTIL_RET_NOT_ALLOWED) {
+                               if (cd->body_data.creation_allowed != COMPOSER_CONTENT_CREATION_ALLOWED &&
+                                       cd->body_data.creation_allowed != COMPOSER_CONTENT_CREATION_NOT_ALLOWED) {
+                                       /* show warning popup one time */
+                                       return COMPOSER_RETURN_CREATION_WARINING_MODE_FAIL;
+                               } else if (cd->body_data.creation_allowed == COMPOSER_CONTENT_CREATION_NOT_ALLOWED) {
+                                       return COMPOSER_RETURN_CREATION_WARINING_MODE_PASS;
+                               }
+                       }
+               }
+       } else {
+               /* creation restricted mode */
+               if (creationMode == MSG_CREATION_MODE_RESTRICTED) {
+                       if (allowed_type == COMPOSER_UTIL_RET_ALLOWED_WITH_RESIZE) {
+                               need_to_resize = true;
+                       }
+               }
+       }
+
+       /*Check file size && resize able (if Image)*/
+       int64 msg_size = 0;
+       int64 file_size = 0;
+       int64 remain_size = 0;
+
+       ret = msg_ui_composer_get_message_size(cd, &msg_size);
+       D_MSG_RETVM_IF(ret != COMPOSER_RETURN_SUCCESS, COMPOSER_RETURN_FAIL, "Fail to Get Message Size");
+       if (cd->is_replace) {
+               MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+               Eina_List *page_list = body_data->page_list;
+               MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, cd->current_edit_entry);
+               if (page_data) {
+                       if (page_data->is_image_focus) {
+                               remain_size = cd->mms_max_size - (msg_size - msg_composer_get_file_size(page_data->image_file_path));
+                       } else if (page_data->is_sound_focus) {
+                               remain_size = cd->mms_max_size - (msg_size - msg_composer_get_file_size(page_data->sound_file_path));
+                       } else {
+                               D_EMSG("There is no selected content to replace");
+                       }
+               }
+       } else {
+               remain_size = cd->mms_max_size - msg_size;
+       }
+
+       char *file_ext = msg_composer_get_file_ext(item_path);
+       if (strcasecmp(file_ext, "png") == 0) {
+               int content_w = 0;
+               int content_h = 0;
+               Evas_Load_Error err = EVAS_LOAD_ERROR_NONE;
+               Evas *evas = evas_object_evas_get(cd->main_window);
+               Evas_Object *img = evas_object_image_add(evas);
+               evas_object_image_load_orientation_set(img, EINA_TRUE);
+               evas_object_image_file_set(img, item_path, NULL);
+
+               err = evas_object_image_load_error_get(img);
+               if (err != EVAS_LOAD_ERROR_NONE) {
+                       D_EMSG("image loading is failed = %d", err);
+                       return COMPOSER_RETURN_HIGH_RESOLUTION;
+               }
+               evas_object_image_size_get(img, &content_w, &content_h);
+               evas_object_del(img);
+
+               if (content_w > MSGC_MAXIMAGE_RESOLUTION_KIRAN || content_h > MSGC_MAXIMAGE_RESOLUTION_KIRAN) {
+                       return COMPOSER_RETURN_HIGH_RESOLUTION;
+               }
+       }
+
+       file_size = msg_composer_get_file_size(item_path);
+       D_MSG("file_size = %lld, remain_size = %lld", file_size, remain_size);
+       if (file_size > remain_size || need_to_resize) {
+
+               /*If image type resize*/
+               if (media_type == COMPOSER_MEDIA_TYPE_IMAGE && __msg_ui_is_image_extesion(file_ext)) {
+
+                       COMPOSER_THREAD_DATA_S *th_data = calloc(1, sizeof(COMPOSER_THREAD_DATA_S));
+                       if (th_data == NULL) {
+                               return COMPOSER_RETURN_FAIL;
+                       }
+
+                       th_data->cd = cd;
+                       th_data->creation_mode = creationMode;
+                       th_data->wishsize = remain_size;
+                       elm_win_screen_size_get(cd->main_window, NULL, NULL, &th_data->win_width, &th_data->win_height);
+
+                       ret = msg_ui_composer_copy_file(cd, item_path, th_data->filepath, sizeof(th_data->filepath)-1);
+                       if (ret != COMPOSER_RETURN_SUCCESS) {
+                               D_EMSG("get file error");
+                               free(th_data);
+                               return COMPOSER_RETURN_FAIL;
+                       }
+
+                       /* get rotation info */
+                       int rotation = 0;
+                       th_data->rotation = 0;
+
+                       if (strcasecmp(file_ext, "png") != 0) {
+                               if (jpeg_image_get_rotation(th_data->filepath, &rotation) == COMPOSER_UTIL_RET_SUCCESS) {
+                                       th_data->rotation = rotation;
+                               }
+                       }
+
+                       if (!cd->progress_popup) {
+                               cd->progress_popup = msg_ui_composer_create_progress_popup(th_data->cd,
+                                               MESSAGE_PKGNAME,
+                                               "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING",
+                                               MSGC_PROGRESS_MMS_MAX_SIZE_TEXT);
+                       }
+
+                       if ((cd->attach_thread) && (EINA_FALSE == ecore_thread_check(cd->attach_thread))) {
+                               ecore_thread_cancel(cd->attach_thread);
+                               cd->attach_thread = NULL;
+                       }
+
+                       cd->attach_thread = ecore_thread_feedback_run(msg_ui_composer_body_resize_worker_thread,
+                                                                                                                       msg_ui_composer_body_resize_worker_feedback_cb,
+                                                                                                                       msg_ui_composer_body_resize_worker_end_cb,
+                                                                                                                       msg_ui_composer_body_resize_worker_end_cb,
+                                                                                                                       th_data, EINA_TRUE);
+
+                       if (!cd->attach_thread) {
+                               D_EMSG("thread run is failed");
+                               /*resizing progress popup*/
+                               msg_ui_composer_destroy_popup(cd, cd->progress_popup);
+
+                               return COMPOSER_RETURN_FAIL;
+                       }
+
+                       return COMPOSER_RETURN_RESIZE_IMAGE;
+               } else {
+                       D_MSG("Adding Item Size is too big to add or remain msg size is too small");
+                       return COMPOSER_RETURN_OVERSIZE_FILE;
+               }
+
+       } else {
+               char local_item_path[COMPOSER_FILEPATH_LEN_MAX + 1] = {0,};
+               /* copy temp file */
+               ret = msg_ui_composer_copy_file(cd, item_path, local_item_path, COMPOSER_FILEPATH_LEN_MAX);
+               if (ret != COMPOSER_RETURN_SUCCESS) {
+                       D_EMSG("get file error");
+                       return COMPOSER_RETURN_FAIL;
+               }
+
+               if (media_type == COMPOSER_MEDIA_TYPE_IMAGE || media_type == COMPOSER_MEDIA_TYPE_VIDEO || media_type == COMPOSER_MEDIA_TYPE_AUDIO) {
+                       ret = msg_ui_composer_body_insert_media(cd, local_item_path, media_type);
+                       if (ret != COMPOSER_RETURN_SUCCESS) {
+                               return ret;
+                       }
+               } else {
+                       ret = msg_ui_composer_add_attach_media(cd, local_item_path, media_type);
+                       if (ret == COMPOSER_RETURN_ATTACHMENT_MAX_COUNT) {
+                               return ret;
+                       }
+               }
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+static Evas_Object *__msg_ui_composer_body_create_add_button(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *button = elm_button_add(parent);
+       Evas_Object *icon = NULL;
+
+       elm_object_tree_focus_allow_set(button, EINA_FALSE);
+       elm_object_theme_set(button, cd->th);
+       elm_object_style_set(button, "body_button");
+
+       icon = elm_icon_add(parent);
+       elm_image_file_set(icon, MSG_IMAGES_EDJ, MSGC_ADD_ICON);
+       elm_object_part_content_set(button, "button_center_part", icon);
+       evas_object_color_set(icon, COLOR_ADD_BUTTON);
+
+       evas_object_size_hint_weight_set(button, 0.0, 0.0);
+       evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(button);
+       evas_object_smart_callback_add(button, "pressed", msg_ui_composer_body_add_btn_pressed_cb, cd);
+       evas_object_smart_callback_add(button, "unpressed", msg_ui_composer_body_add_btn_unpressed_cb, cd);
+       evas_object_smart_callback_add(button, "clicked", msg_ui_composer_body_add_btn_clicked_cb, cd);
+       cd->add_button = button;
+
+       if (!msg_is_mms_enabled()) {
+               elm_object_disabled_set(cd->add_button, EINA_TRUE);
+               Evas_Object *icon = elm_object_part_content_get(cd->add_button, "button_center_part");
+               if (icon  != NULL) {
+                       evas_object_color_set(icon, COLOR_ADD_BUTTON_DIMMED);
+               }
+       }
+
+       D_LEAVE;
+       return button;
+}
+#endif
+
+Evas_Object *msg_ui_composer_body_create_input_field(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer Data is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *layout = NULL;
+       Evas_Object *pages_box = NULL;
+
+       layout = elm_layout_add(parent);
+       if (!layout) {
+               D_EMSG(" elm_layout_add error !!");
+               return NULL;
+       }
+       elm_layout_file_set(layout, msg_ui_composer_edj_get(cd), "composer/body/main_bg");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_RESIZE, msg_ui_composer_body_body_layout_resize_cb, cd);
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       /* register once only when composer is created */
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, msg_ui_composer_input_field_key_down_cb, cd);
+#endif
+
+       cd->input_field_bg = layout;
+
+       pages_box = elm_box_add(layout);
+       if (!pages_box) {
+               D_EMSG("bx_content is NULL");
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(pages_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pages_box, EVAS_HINT_FILL, 1.0);
+       evas_object_show(pages_box);
+       elm_object_part_content_set(layout, "swl.page.content", pages_box);
+
+       cd->pages_box = pages_box;
+
+       D_LEAVE;
+       return layout;
+}
+
+static COMPOSER_RETURN_TYPE_E __msg_ui_composer_body_read_mms_data(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_NULL_POINTER, "cd is NULL");
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_MMS) {
+               msg_ui_composer_message_set_msg_type(COMPOSER_MSG_TYPE_MMS);
+
+               if (cd->isSubject)
+                       msg_ui_composer_read_subject(cd);
+
+               if (cd->attach_data.attachment_Cnt > 0)
+                       msg_ui_composer_read_attachments(cd);
+
+               msg_ui_composer_body_read_mms_body(cd);
+       } else {
+               D_WMSG("invalid message type");
+               return COMPOSER_RETURN_INVALID_MSG_TYPE;
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_read_data(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "cd is NULL");
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_SMS) {
+               D_MSG("message type SMS!!");
+
+               msg_ui_composer_message_set_msg_type(COMPOSER_MSG_TYPE_SMS);
+
+               if (msg_ui_composer_body_read_sms_body(cd) != COMPOSER_RETURN_SUCCESS)
+                       D_EMSG("read sms body text!!");
+
+       } else if (cd->msg_type == COMPOSER_MSG_TYPE_MMS) {
+               D_MSG("message type MMS!!");
+               __msg_ui_composer_body_read_mms_data(cd);
+       } else {
+               D_EMSG("invalid message type!!");
+               msg_ui_composer_message_destroy();
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+static Evas_Object *__msg_ui_composer_body_create_send_button(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *button = NULL;
+       Evas_Object *icon = NULL;
+
+       button = elm_button_add(parent);
+       if (!button) {
+               D_EMSG("send button create error !!");
+               return NULL;
+       }
+       elm_object_theme_set(button, cd->th);
+       elm_object_style_set(button, "sendbutton_text_button");
+
+       elm_object_domain_translatable_part_text_set(button, "button_text", MESSAGE_PKGNAME, "IDS_MSG_ACBUTTON_SEND_ABB3");
+
+       /* focus_allow_set of send button is changed from false to true becasue of focusible ui behaivor from keyboard.
+       So, we should check whehter disabling/enabling code of send button is required or not when it is clicked in msg_ui_composer_body_send_btn_clicked_cb */
+       evas_object_show(button);
+       evas_object_smart_callback_add(button, "clicked", msg_ui_composer_body_send_btn_clicked_cb, cd);
+
+       cd->send_button = button;
+
+       D_LEAVE;
+
+       return button;
+}
+
+Evas_Object *msg_ui_composer_create_body(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *input_field_layout = NULL;
+       Evas_Object *layout = NULL;
+
+       layout = msg_ui_composer_body_create_body_main_layout(cd, parent);
+       if (layout) {
+               if (!cd->body_main_box) {
+                       D_EMSG("cd->body_main_box is NULL");
+                       return NULL;
+               }
+
+               input_field_layout = msg_ui_composer_body_create_input_field_layout(cd, layout);
+               cd->input_field_layout = input_field_layout;
+
+               elm_box_pack_end(cd->body_main_box, cd->input_field_layout);
+       } else {
+               D_EMSG("layout is NULL");
+       }
+
+       D_LEAVE;
+       return layout;
+}
+
+/* return body main layout which contains body_main_box or scroller having body_main_box */
+Evas_Object *msg_ui_composer_body_create_body_main_layout(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *layout = NULL;
+       Evas_Object *main_box = NULL;
+       Evas_Object *scroller = NULL;
+
+       if (!cd->body_main_layout) {
+               layout = msg_ui_composer_load_edj(parent, MSGC_UI_DEFAULT_EDJ, "composer/body/main/total");
+               evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_show(layout);
+               cd->body_main_layout = layout;
+       } else {
+               D_MSG("body_main_layout is already existed");
+               layout = cd->body_main_layout;
+       }
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+               /* normal composer */
+               D_MSG("normal composer mode");
+               Evas_Object *sc = elm_object_part_content_get(layout, "swl.body.main");
+
+               if (sc) {
+                       /* keep content box from scroller */
+                       main_box = elm_object_content_unset(sc);
+                       sc = elm_object_part_content_unset(layout, "swl.body.main");
+                       D_IMSG("destroy scroller");
+                       evas_object_del(sc);
+               } else {
+                       main_box = elm_box_add(layout);
+                       evas_object_size_hint_weight_set(main_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_size_hint_align_set(main_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+                       evas_object_show(main_box);
+               }
+
+               if (!main_box) {
+                       D_EMSG("main_box is NULL");
+                       return NULL;
+               }
+
+               elm_object_part_content_set(layout, "swl.body.main", main_box);
+               cd->body_main_box = main_box;
+               cd->body_scroll = NULL;
+       } else {
+               /* bubble view */
+               D_MSG("bubble view mode");
+               main_box = elm_object_part_content_get(layout, "swl.body.main");
+
+               /* create box */
+               if (main_box) {
+                       main_box = elm_object_part_content_unset(layout, "swl.body.main");
+                       D_MSG("body_box(%p) is already existed", main_box);
+               } else {
+                       D_MSG("create new box");
+                       main_box = elm_box_add(layout);
+                       evas_object_size_hint_weight_set(main_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_size_hint_align_set(main_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+                       evas_object_show(main_box);
+               }
+
+               if (!main_box) {
+                       D_EMSG("main_box is NULL");
+                       return NULL;
+               }
+
+               scroller = elm_scroller_add(layout);
+               if (!scroller) {
+                       D_EMSG("scroller create error");
+                       evas_object_del(main_box);
+                       return NULL;
+               }
+
+               elm_object_focus_allow_set(scroller, EINA_FALSE);
+               elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_FALSE);
+               elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+               evas_object_show(scroller);
+
+               elm_object_content_set(scroller, main_box);
+               elm_object_part_content_set(layout, "swl.body.main", scroller);
+
+               cd->body_main_box = main_box;
+               cd->body_scroll = scroller;
+       }
+
+       D_LEAVE;
+       return layout;
+}
+
+static Evas_Object *__msg_ui_compsoer_body_layout_create(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent)
+{
+       Evas_Object *layout = NULL;
+
+       layout = msg_ui_composer_load_edj(parent, MSGC_UI_DEFAULT_EDJ, MSGC_EDJ_GRP_BODY_FIELD);
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       if (!layout) {
+               D_EMSG("create layout error");
+               return NULL;
+       }
+
+       return layout;
+}
+
+Evas_Object *msg_ui_composer_body_create_input_field_layout(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+
+       Evas_Object *layout = NULL;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       Evas_Object *add_button = NULL;
+#endif
+       Evas_Object *input_field = NULL;
+
+       layout = __msg_ui_compsoer_body_layout_create(cd, parent);
+       if (!layout) {
+               D_EMSG("layout create error !!");
+               return NULL;
+       }
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       add_button = __msg_ui_composer_body_create_add_button(cd, parent);
+
+       if (!add_button) {
+               D_EMSG("add_button_field create error !!");
+               return NULL;
+       }
+#endif
+
+       input_field = msg_ui_composer_body_create_input_field(cd, parent);
+       if (!input_field) {
+               D_EMSG("input_field create error !!");
+               return NULL;
+       }
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_SMS) {
+               msg_ui_composer_body_add_page(cd);
+       } else if (cd->msg_type == COMPOSER_MSG_TYPE_MMS) {
+
+       } else {
+               D_EMSG("invalid message type");
+               return NULL;
+       }
+
+       cd->send_button = __msg_ui_composer_body_create_send_button(cd, parent);
+       if (!cd->send_button) {
+               D_EMSG("button create error !!");
+               return NULL;
+       }
+       msg_ui_composer_send_btn_disabled_set(cd, EINA_TRUE);
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       elm_object_part_content_set(layout, "swl.add_button", add_button);
+#endif
+       elm_object_part_content_set(layout, "swl.main", input_field);
+       elm_object_part_content_set(layout, "swl.send_button", cd->send_button);
+
+
+       D_LEAVE;
+       return layout;
+}
+
+void msg_ui_composer_body_delete(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       int page_count = body_data->page_count;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       int i = 0;
+       Eina_List *page_list = body_data->page_list;
+
+       for (i = page_count - 1; i >= 0; i--) {
+               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, i);
+               if (page_data) {
+                       msg_ui_composer_mms_body_remove_page(cd, page_data->layout, false);
+               }
+       }
+
+       if (body_data->page_list) {
+               D_IMSG("free body_data->page_list");
+               page_data = NULL;
+               EINA_LIST_FREE(body_data->page_list, page_data) {
+                       if (page_data) {
+                               free(page_data);
+                       }
+               }
+       }
+
+       if (cd->attachlist) {
+               D_IMSG("free cd->attachlist");
+               char *list_data = NULL;
+               EINA_LIST_FREE(cd->attachlist, list_data) {
+                       if (list_data) {
+                               free(list_data);
+                       }
+               }
+       }
+
+       if (elm_object_part_content_get(cd->input_field_layout, "swl.send_button") == NULL) {
+               /* destroy send button when if it is not set to send button area */
+               if (cd->send_button) {
+                       evas_object_del(cd->send_button);
+                       cd->send_button = NULL;
+               }
+       }
+
+       if (cd->input_field_layout) {
+               evas_object_del(cd->input_field_layout);
+               cd->input_field_layout = NULL;
+       }
+
+       if (elm_object_part_content_get(cd->content_layout, "swl.composer.body") == NULL) {
+               /* destroy body_main_layout when if it is not set to swl.composer.body */
+               if (cd->body_main_layout) {
+                       evas_object_del(cd->body_main_layout);
+                       cd->body_main_layout = NULL;
+               }
+       }
+
+       MSG_ECORE_IDLER_DEL(cd->keypad_show_idler);
+       MSG_ECORE_IDLER_DEL(cd->media_event_idler);
+       MSG_ECORE_IDLER_DEL(cd->entry_size_idler);
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_clear(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       int page_count = body_data->page_count;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       int i = 0;
+       Eina_List *page_list = body_data->page_list;
+
+       for (i = page_count - 1; i >= 0; i--) {
+               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, i);
+               if (page_data) {
+                       msg_ui_composer_mms_body_remove_page(cd, page_data->layout, true);
+               }
+       }
+
+       cd->current_edit_entry = 0;
+
+       /* After clearing all the pages and if signature is enabled, then set the signatre */
+       if (true == msg_ui_composer_common_is_signature_enabled(cd, true)) {
+               MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, cd->current_edit_entry);
+
+               D_MSG("cd->signature_string = %s", cd->signature_string);
+               char *utf8_string = NULL;
+               utf8_string = elm_entry_utf8_to_markup(cd->signature_string);
+               if (NULL != utf8_string) {
+                       elm_entry_entry_set(page_data->entry, utf8_string);
+                       free(utf8_string);
+               }
+       }
+
+       if (cd->is_recipient_email == false)
+               cd->msg_type = COMPOSER_MSG_TYPE_SMS;
+
+       D_LEAVE;
+}
+
+/* Once landscape GUI is realsed the below code will be required*/
+#if LANDSCAPE_GUI_DEFINED
+static void __msgc_body_change_body_layout(MSG_COMPOSER_VIEW_DATA_S *cd, int body_layout_mode, int orient_mode, bool hide_send_btn)
+{
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       D_MSG_RETM_IF(cd->input_field_layout == NULL, "cd->input_field_layout is NULL");
+       D_MSG_RETM_IF(cd->input_field_bg == NULL, "cd->input_field_bg is NULL");
+
+       if (body_layout_mode > BODY_LAYOUT_EXPAND_H) {
+               D_EMSG("Invalid layout mode (%d)", body_layout_mode);
+               return;
+       }
+
+       if (orient_mode > BODY_LAYOUT_LANDSCAPE) {
+               D_EMSG("Invalid orient_mode mode (%d)", orient_mode);
+               return;
+       }
+
+       D_MSG("body_layout_mode = %d, ori_mode = %d, hide_send_btn = %d", body_layout_mode, orient_mode, hide_send_btn);
+
+       if (body_layout_mode == BODY_LAYOUT_DEFAULT_H) {
+               edje_object_signal_emit(_EDJ(cd->input_field_bg), "show.default.height", "*");
+               /* character info text */
+               edje_object_signal_emit(_EDJ(cd->input_field_layout), "show.default.mode", "*");
+       } else if (body_layout_mode == BODY_LAYOUT_DEFAULT_N_SAME_PAD_H) {
+               edje_object_signal_emit(_EDJ(cd->input_field_bg), "show.default.same_pad", "*");
+               /* character info text */
+               edje_object_signal_emit(_EDJ(cd->input_field_layout), "show.default.mode", "*");
+       } else if (body_layout_mode == BODY_LAYOUT_EXPAND_LANDSCAPE_H) {
+               edje_object_signal_emit(_EDJ(cd->input_field_bg), "show.expand.landscape", "*");
+               /* character info text */
+               edje_object_signal_emit(_EDJ(cd->input_field_layout), "show.expand.mode", "*");
+       } else {
+               edje_object_signal_emit(_EDJ(cd->input_field_bg), "show.expand.height", "*");
+               /* character info text */
+               edje_object_signal_emit(_EDJ(cd->input_field_layout), "show.expand.mode", "*");
+       }
+
+       elm_layout_sizing_eval(cd->input_field_bg);
+
+       if (orient_mode == BODY_LAYOUT_PORTRAIT) {
+               edje_object_signal_emit(_EDJ(cd->input_field_layout), "show.portrait.mode", "*");
+       } else {
+               edje_object_signal_emit(_EDJ(cd->input_field_layout), "show.landscape.mode", "*");
+       }
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       if (hide_send_btn) {
+               elm_object_part_content_unset(cd->input_field_layout, "swl.send_button");
+               evas_object_hide(cd->send_button);
+       } else {
+               if (elm_object_part_content_get(cd->input_field_layout, "swl.send_button") == NULL) {
+                       elm_object_part_content_set(cd->input_field_layout, "swl.send_button", cd->send_button);
+                       evas_object_show(cd->send_button);
+               }
+       }
+#endif
+
+       edje_message_signal_process();
+}
+#endif
+
+#if LANDSCAPE_GUI_DEFINED
+static int __msgc_body_get_entry_cursor_height(Evas_Object *entry)
+{
+       D_MSG_RETVM_IF(entry == NULL, 0, "entry is NULL");
+       Evas_Coord x = 0;
+       Evas_Coord y = 0;
+       Evas_Coord w = 0;
+       Evas_Coord h = 0;
+
+       elm_entry_cursor_geometry_get(entry, &x, &y, &w, &h);
+
+       return h;
+}
+#endif /* LANDSCAPE_GUI_DEFINED */
+
+void msg_ui_composer_change_body_layout_mode(MSG_COMPOSER_VIEW_DATA_S *cd, int rotate_type)
+{
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+/* Once landscape GUI is realsed the below code will be required*/
+#if LANDSCAPE_GUI_DEFINED
+       COMPOSER_ROTATE_TYPE_E rotate = COMPOSER_ROTATE_UNKNOWN;
+
+       if (rotate_type != -1)
+               rotate = rotate_type;
+       else
+               rotate = cd->rotate;
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               if (msg_ui_composer_body_has_body_data(cd) == false) { /* no data mode */
+                       int MAXIMUM_BODY_ENTRY_CURSOR_HEIGHT = 58; /* 58 is maximum cursor heigh with current body entry style */
+
+                       if (rotate == COMPOSER_ROTATE_PORTRAIT || rotate == COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN) {
+                               if (cd->is_keypad_show) {
+                                       __msgc_body_change_body_layout(cd, BODY_LAYOUT_EXPAND_H, BODY_LAYOUT_PORTRAIT, false);
+                               } else {
+                                       Evas_Object *entry = msg_ui_composer_body_get_page_entry(cd, 0);
+                                       Evas_Coord cur_h = __msgc_body_get_entry_cursor_height(entry);
+
+                                       /* if entry height is bigger than default finger size(60) because of font size,
+                                       show it as BODY_LAYOUT_DEFAULT_N_SAME_PAD_H mode so that text is not reached at input field bottom line.
+                                       if entry is bigger than default size once, it is not reduced correcly. So, use cursor height to distingush font size. */
+                                       if (cur_h >= MAXIMUM_BODY_ENTRY_CURSOR_HEIGHT)
+                                               __msgc_body_change_body_layout(cd, BODY_LAYOUT_DEFAULT_N_SAME_PAD_H, BODY_LAYOUT_PORTRAIT, true);
+                                       else
+                                               __msgc_body_change_body_layout(cd, BODY_LAYOUT_DEFAULT_H, BODY_LAYOUT_PORTRAIT, true);
+                               }
+                       } else { /* landscape mode */
+                               if (cd->is_keypad_show) {
+                                       __msgc_body_change_body_layout(cd, BODY_LAYOUT_EXPAND_LANDSCAPE_H, BODY_LAYOUT_LANDSCAPE, false);
+                               } else {
+                                       Evas_Object *entry = msg_ui_composer_body_get_page_entry(cd, 0);
+                                       Evas_Coord cur_h = __msgc_body_get_entry_cursor_height(entry);
+
+                                       /* if entry height is bigger than default finger size(60) because of font size,
+                                       show it as BODY_LAYOUT_DEFAULT_N_SAME_PAD_H mode so that text is not reached at input field bottom line.
+                                       if entry is bigger than default size once, it is not reduced correcly. So, use cursor height to distingush font size. */
+                                       if (cur_h >= MAXIMUM_BODY_ENTRY_CURSOR_HEIGHT)
+                                               __msgc_body_change_body_layout(cd, BODY_LAYOUT_DEFAULT_N_SAME_PAD_H, BODY_LAYOUT_LANDSCAPE, false);
+                                       else
+                                               __msgc_body_change_body_layout(cd, BODY_LAYOUT_DEFAULT_H, BODY_LAYOUT_LANDSCAPE, false);
+                               }
+                       }
+               } else { /* with data mode */
+                       if (rotate == COMPOSER_ROTATE_PORTRAIT || rotate == COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN) {
+                               __msgc_body_change_body_layout(cd, BODY_LAYOUT_EXPAND_H, BODY_LAYOUT_PORTRAIT, false);
+                       } else {
+                               __msgc_body_change_body_layout(cd, BODY_LAYOUT_EXPAND_LANDSCAPE_H, BODY_LAYOUT_LANDSCAPE, false);
+                       }
+               }
+       } else { /* normal composer mode */
+               if (rotate == COMPOSER_ROTATE_PORTRAIT || rotate == COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN) {
+                       __msgc_body_change_body_layout(cd, BODY_LAYOUT_EXPAND_H, BODY_LAYOUT_PORTRAIT, false);
+               } else {
+                       __msgc_body_change_body_layout(cd, BODY_LAYOUT_EXPAND_LANDSCAPE_H, BODY_LAYOUT_LANDSCAPE, false);
+               }
+       }
+#endif
+}
+
+bool msg_ui_composer_body_has_body_data(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, false, "cd is NULL");
+
+       if (cd->body_data.page_count > 1) {
+               return true;
+       } else if (cd->body_data.page_count == 1) {
+               MSG_COMPOSER_BODY_PAGE_S *page = msg_ui_composer_body_get_page_by_index(cd, 0);
+               if (page) {
+                       if ((msg_ui_composer_body_is_page_data(page) == true) || (cd->isSubject == true) || (cd->attach_data.attachment_Cnt > 0)) {
+                               return true;
+                       }
+               } else {
+                       D_EMSG("page is NULL");
+               }
+       }
+
+       D_LEAVE;
+       return false;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_read_preview_message(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+
+       if (!cd) {
+               D_EMSG("composer data is NULL");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_MMS) {
+               __msg_ui_composer_body_read_mms_data(cd);
+       } else {
+               D_EMSG("invlaid message type!!");
+               return COMPOSER_RETURN_INVALID_MSG_TYPE;
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_set_loaded_media(MSG_COMPOSER_VIEW_DATA_S *pcomp_data, char *filepath, int filetype, int nPage)
+{
+       D_ENTER;
+
+       if (!pcomp_data) {
+               D_EMSG("composer data is NULL");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+
+       D_MSG("page = %d", nPage);
+
+       pcomp_data->current_edit_entry = nPage;
+
+       ret = msg_ui_composer_body_item_add(pcomp_data, filepath);
+
+       if (ret != COMPOSER_RETURN_SUCCESS)
+               return ret;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_set_loaded_text(MSG_COMPOSER_VIEW_DATA_S *pcomp_data, const char *body_text, int nPage)
+{
+       D_ENTER;
+
+       if (!pcomp_data) {
+               D_EMSG("composer data is NULL");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       Eina_List *pagelist = pcomp_data->body_data.page_list;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(pagelist, nPage);
+
+       if (!page_data) {
+               D_EMSG("Invalid page_data taken from page %d", nPage);
+               return COMPOSER_RETURN_INVALID_PAGE;
+       }
+
+       Evas_Object *entry = page_data->entry;
+       char *markup_text = elm_entry_utf8_to_markup(body_text);
+       int len = g_utf8_strlen(body_text, -1);
+
+       /* if we use elm_entry_entry_set, entry filter cb is not called. So, maximum character count is not checked. So it is changed to elm_entry_entry_append */
+       /*elm_entry_entry_set(entry, markup_text);*/
+       if (markup_text) {
+               if (len > COMPOSER_MMS_TEXT_MAX_CHAR) {
+                       D_MSG("mms limit is reached");
+                       msg_ui_composer_common_tickernoti(pcomp_data, COMPOSER_TICKERNOTI_MAXLENGHT_CHAR);
+               }
+
+               elm_entry_entry_append(entry, markup_text);
+
+               g_free(markup_text);
+       }
+
+       /* add signature after setting loaded text in case of appcontrol request (eg. browser > share text) */
+       if (pcomp_data->isAppControl) {
+               if (nPage == 0 && pcomp_data->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+                       if (true == msg_ui_composer_common_is_signature_enabled(pcomp_data, false)) {
+                               D_MSG("signature_string = %s", pcomp_data->signature_string);
+                               char *utf8_string = NULL;
+                               utf8_string = elm_entry_utf8_to_markup(pcomp_data->signature_string);
+                               if (NULL != utf8_string) {
+                                       elm_entry_entry_append(entry, utf8_string);
+                                       free(utf8_string);
+                               }
+                       }
+               }
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_set_loaded_page_duration(MSG_COMPOSER_VIEW_DATA_S *pcomp_data, int duration, int nPage)
+{
+       D_ENTER;
+
+       if (!pcomp_data) {
+               D_EMSG("composer data is NULL");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       if (pcomp_data->body_data.page_count < nPage + 1) {
+               D_EMSG("Invalid page count nPage = %d", nPage);
+               return COMPOSER_RETURN_INVALID_PAGE;
+       }
+
+       Eina_List *pagelist = pcomp_data->body_data.page_list;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(pagelist, nPage);
+       if (page_data) {
+               if (duration > COMPOSER_PAGE_DEFAULT_DURATION)
+                       page_data->page_duration = duration;
+       }
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_body_data_init(MSG_COMPOSER_VIEW_DATA_S *pcomp_data)
+{
+       D_ENTER;
+       if (!pcomp_data) {
+               D_EMSG("composer data is NULL;");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       MSG_COMPOSER_BODY_S *body_data = &pcomp_data->body_data;
+       Eina_List *page_list = body_data->page_list;
+
+       body_data->page_count = 0;
+
+       if (page_list) {
+               Eina_List *iter;
+               MSG_COMPOSER_BODY_PAGE_S *pData;
+
+               EINA_LIST_FOREACH(page_list, iter, pData) {
+                       if (pData)
+                               free(pData);
+               }
+               free(page_list);
+               page_list = NULL;
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_TEXT_IS_SMS_CHAR_E msg_ui_composer_is_sms_text(MSG_COMPOSER_VIEW_DATA_S *cd, char *body_text, int *over_char_cnt)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, true, "param is NULL");
+       D_MSG_RETVM_IF(body_text == NULL, true, "param is NULL");
+       D_MSG_RETVM_IF(over_char_cnt == NULL, true, "over_char_cnt is NULL");
+
+       int char_count = 0;
+       int cms_max_count = 0;
+       int char_encode = COMPOSER_CHAR_ENCODE_MAX;
+       int page_size = 0;
+       int text_len = strlen(body_text);
+
+       if (text_len > 0) {
+               int encode_mode = cd->encode_mode;
+
+               COMPOSER_TEXT_EXCEPTION_CHAR_E is_exception_char = COMPOSER_TEXT_HAS_NO_EXCEPTION_CHAR;
+
+               is_exception_char = msg_composer_check_exception_char_from_utf8(cd->encode_mode, (const unsigned char *)body_text);
+               /* When Emot Icons Entered. it should not be converted to MMS, So disable the check     for Emot Icons*/
+#ifdef _CONVERT_SMS_TO_MMS_IF_EMOTICON_PRESENT
+               if (is_exception_char == COMPOSER_TEXT_HAS_EMOTICON) {
+                       /* there is emoticon, it should be changed to MMS; */
+                       cd->has_emoticon = true;
+                       return COMPOSER_TEXT_IS_EMOTICON;
+               }
+#endif
+               if (cd->encode_mode == MSG_ENCODE_GSM7BIT) {
+                       if (is_exception_char == COMPOSER_TEXT_HAS_KOREAN) {
+                               D_MSG("there is korean,Encoding mode has to be changed");
+                               encode_mode = MSG_ENCODE_AUTO;
+                               cd->changed_encode_mode = MSG_ENCODE_AUTO;
+                       }
+               }
+               char_encode = msg_ui_composer_body_entry_char_count(cd, (const char *)body_text, encode_mode, &char_count, &page_size);
+       }
+
+       if (char_encode == COMPOSER_CHAR_ENCODE_UNICODE)
+               char_count /= 2;
+
+       if (char_encode == COMPOSER_CHAR_ENCODE_UNICODE) {
+               if (cd->cms_max_page == 1)
+                       cms_max_count = COMPOSER_SMS_UNICODE_MAX_LEN;
+               else
+                       cms_max_count = COMPOSER_CMS_UNICODE_MAX_LEN * cd->cms_max_page;
+       } else if (char_encode == COMPOSER_CHAR_ENCODE_GSM7 || char_encode == COMPOSER_CHAR_ENCODE_GSM7_ABNORMAL) {
+               if (cd->cms_max_page == 1)
+                       cms_max_count = COMPOSER_SMS_GSM7_MAX_LEN;
+               else
+                       cms_max_count = COMPOSER_CMS_GSM7_MAX_LEN * cd->cms_max_page;
+       } else {
+               return COMPOSER_TEXT_IS_SMS;
+       }
+
+       /* check msg type */
+       if (char_count > cms_max_count) {
+               D_MSG("it is over the sms limit count");
+               *over_char_cnt = char_count - cms_max_count;
+               return COMPOSER_TEXT_CROSSED_SMSLIMIT; /*this is mms message*/
+       } else {
+               return COMPOSER_TEXT_IS_SMS;
+       }
+}
+
+static bool __msg_ui_composer_is_mms_text(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object* entry)
+{
+       D_ENTER;
+
+       if (!cd || !entry) {
+               D_EMSG("NULL parameter passed.");
+               return false;
+       }
+
+       int char_count = 0;
+       int cms_page = 0;
+       int cms_max_count = 0;
+
+       int char_encode = COMPOSER_CHAR_ENCODE_MAX;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+
+       cd->has_emoticon = false;
+       if (msg_ui_composer_update_char_count(cd, entry) != COMPOSER_RETURN_SUCCESS)
+               D_EMSG("msg_ui_composer_update_char_count is failed");
+       /* When Emot Icons Entered. it should not be converted to MMS, So disable the check     for Emot Icons*/
+#ifdef _CONVERT_SMS_TO_MMS_IF_EMOTICON_PRESENT
+       if (cd->has_emoticon == true) {
+               return true;
+       }
+#endif
+       page_data = evas_object_data_get(entry, "page_data");
+       if (page_data == NULL) {
+               D_EMSG("page_data is NULL");
+               return false;
+       }
+
+       char_encode = page_data->text_info.encode;
+       char_count = page_data->text_info.char_count;
+
+       /* check mms type */
+       if (char_encode == COMPOSER_CHAR_ENCODE_UNICODE)
+               char_count /= 2;
+
+       if (char_encode == COMPOSER_CHAR_ENCODE_UNICODE) {
+               cms_max_count = COMPOSER_CMS_UNICODE_MAX_LEN * cd->cms_max_page;
+       } else if (char_encode == COMPOSER_CHAR_ENCODE_GSM7 || char_encode == COMPOSER_CHAR_ENCODE_GSM7_ABNORMAL) {
+               cms_max_count = COMPOSER_CMS_GSM7_MAX_LEN * cd->cms_max_page;
+       } else {
+               return false;
+       }
+
+       D_LEAVE;
+       if (cms_page > cd->cms_max_page || cms_max_count < char_count) {
+               return true;
+       } else {
+               return false;
+       }
+}
+
+Eina_Bool msg_ui_composer_body_is_mms(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, EINA_FALSE, "param is NULL");
+
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       Eina_List *page_list = body_data->page_list;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+
+       if (body_data->page_count > 1) {
+               D_MSG("composer message type MMS (multi-page)");
+               return EINA_TRUE;
+       } else if (body_data->page_count == 1) {
+               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, 0);
+               if (!page_data) {
+                       D_EMSG("page data is NULL");
+                       return EINA_FALSE;
+               }
+
+               if (page_data->is_image_item && (strlen(page_data->image_file_path) > 0)) {
+                       D_MSG("composer message type MMS (image/video data exist)");
+                       return EINA_TRUE;
+               }
+
+               if (page_data->is_sound_item && (strlen(page_data->sound_file_path) > 0)) {
+                       D_MSG("composer message type MMS (sound data exist)");
+                       return EINA_TRUE;
+               }
+
+               if (__msg_ui_composer_is_mms_text(cd, page_data->entry) == true) {
+                       D_MSG("composer message type MMS (number of body character is over CMS max count)");
+                       return EINA_TRUE;
+               }
+       } else {
+               D_EMSG("page_count value is not valid");
+               return EINA_FALSE;
+       }
+
+       return EINA_FALSE;
+}
+
+bool msg_ui_composer_body_has_media(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, false, "param is NULL");
+
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       Eina_List *page_list = body_data->page_list;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+
+       if (cd->isSubject && msg_ui_composer_has_subject(cd)) {
+               D_MSG("There is subject text");
+               return true;
+       }
+
+       if (body_data->page_count > 1) {
+               D_MSG("composer message type MMS (multi-page)");
+               return true;
+       } else if (body_data->page_count == 1) {
+               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, 0);
+               if (!page_data) {
+                       D_EMSG("page data is NULL");
+                       return false;
+               }
+
+               if (page_data->is_image_item && (strlen(page_data->image_file_path) > 0)) {
+                       D_MSG("composer message type MMS (image/video data exist)");
+                       return true;
+               }
+
+               if (page_data->is_sound_item && (strlen(page_data->sound_file_path) > 0)) {
+                       D_MSG("composer message type MMS (sound data exist)");
+                       return true;
+               }
+
+               if (page_data->entry) {
+                       bool has_text = false;
+                       char *body_text = elm_entry_markup_to_utf8(elm_entry_entry_get(page_data->entry));
+
+                       if (body_text) {
+                               if (strlen(body_text))
+                                       has_text = true;
+
+                               free(body_text);
+                       }
+
+                       return has_text;
+               }
+
+       } else {
+               D_EMSG("page_count value is not valid");
+               return false;
+       }
+
+       return false;
+}
+
+void msg_ui_composer_send_btn_disabled_set(MSG_COMPOSER_VIEW_DATA_S *cd, Eina_Bool disable)
+{
+       D_ENTER;
+
+       if (cd->send_button)
+               elm_object_disabled_set(cd->send_button, disable);
+
+       if (disable != EINA_TRUE) {
+#ifndef _MSG_FEATURE_MMS_DISABLE
+               elm_object_focus_next_object_set(cd->send_button, cd->add_button, ELM_FOCUS_NEXT);
+
+               if (cd->recipient)
+                       elm_object_focus_next_object_set(cd->add_button, cd->recipient->entry, ELM_FOCUS_NEXT);
+#endif
+       }
+}
+
+void msg_ui_composer_body_update_send_btn_icon(MSG_COMPOSER_VIEW_DATA_S *cd, bool disable)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       char *file_path = NULL;
+       Evas_Object *icon = NULL;
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_MMS) { /* mms type */
+               file_path = MSGC_MMS_SEND_ICON;
+       } else { /* sms type */
+               file_path = MSGC_SMS_SEND_ICON;
+       }
+
+       if (file_path) {
+               if ((!cd->str_send_button) || (strcmp(file_path, cd->str_send_button))) {
+                       const char *btn_style = elm_object_style_get(cd->send_button);
+                       if (btn_style && (strcmp(btn_style, "send_custom") == 0)) {
+                               Evas_Object *content = NULL;
+
+                               content = elm_object_part_content_unset(cd->send_button, "button_center_part");
+                               if (NULL != content)
+                                       evas_object_del(content);
+
+                               icon = elm_icon_add(cd->send_button);
+                               elm_image_file_set(icon, MSG_IMAGES_EDJ, (const char *)file_path);
+                               elm_object_part_content_set(cd->send_button, "button_center_part", icon);
+                               evas_object_show(icon);
+                       }
+
+                       if (cd->str_send_button) {
+                               free(cd->str_send_button);
+                               cd->str_send_button = NULL;
+                       }
+                       cd->str_send_button = g_strdup(file_path);
+               }
+       }
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_check_is_text_top(msg_struct_t region_0, msg_struct_t region_1, bool *is_text_top)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(region_0 == NULL, COMPOSER_RETURN_FAIL, "param is NULL");
+       D_MSG_RETVM_IF(region_1 == NULL, COMPOSER_RETURN_FAIL, "param is NULL");
+       D_MSG_RETVM_IF(is_text_top == NULL, COMPOSER_RETURN_FAIL, "is_text_top is NULL");
+
+       int top_0 = 0;
+       int top_1 = 0;
+       int height_0 = 0;
+       int height_1 = 0;
+       char sz_id_0[MAX_SMIL_REGION_ID] = {0,};
+       char sz_id_1[MAX_SMIL_REGION_ID] = {0,};
+
+       /* get region_0 */
+       msg_get_str_value(region_0, MSG_MMS_REGION_ID_STR, sz_id_0, sizeof(sz_id_0));
+       msg_get_int_value(region_0, MSG_MMS_REGION_LENGTH_TOP_INT, &top_0);
+       msg_get_int_value(region_0, MSG_MMS_REGION_LENGTH_HEIGHT_INT, &height_0);
+
+       /* get region_1 */
+       msg_get_str_value(region_1, MSG_MMS_REGION_ID_STR, sz_id_1, sizeof(sz_id_1));
+       msg_get_int_value(region_1, MSG_MMS_REGION_LENGTH_TOP_INT, &top_1);
+       msg_get_int_value(region_1, MSG_MMS_REGION_LENGTH_HEIGHT_INT, &height_1);
+
+       /*check text top
+        *      if (text's top == 0 & image's top != 0)
+        *              text top
+        *      else if (text's top < image's top)
+        *              text top
+        *      else if (text's top == 0 & image's top == 0) {
+        *              if (text' height < image's height )
+        *                      text top
+        *      }
+        */
+
+       *is_text_top = false;
+
+       /* find and set image, text region */
+       if (!strcasecmp(sz_id_0, "Image")) {    /* region_0 is IMAGE REGION */
+               if (top_1 == 0 && top_0 != 0) {
+                       *is_text_top = true;
+               } else if (top_1 < top_0) {
+                       *is_text_top = true;
+               } else if (top_1 == 0 && top_0 == 0) {
+                       if (height_1 < height_0) {
+                               *is_text_top = true;
+                       }
+               }
+
+       } else if (!strcasecmp(sz_id_1, "Image")) { /* region_1 is IMAGE_REGION */
+               if (top_0 == 0 && top_1 != 0) {
+                       *is_text_top = true;
+               } else if (top_0 < top_1) {
+                       *is_text_top = true;
+               } else if (top_0 == 0 && top_1 == 0) {
+                       if (height_0 < height_1) {
+                               *is_text_top = true;
+                       }
+               }
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+void msg_ui_composer_body_change_region_order(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_MMS_REGION_ORDER_E order)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       D_MSG_RETM_IF(body_data->page_list == NULL, "page_list is NULL");
+
+       if (order == COMPOSER_REGION_ORDER_UNDETERMINDED) {
+               D_EMSG("invalid region order");
+               return;
+       }
+
+       D_MSG("body_data->region_order = %d, order = %d", body_data->region_order, order);
+
+       if (order != body_data->region_order) {
+               int page_count = body_data->page_count;
+               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(body_data->page_list, i);
+                       if (page_data) {
+                               if (order == COMPOSER_REGION_ORDER_IMAGE_TOP) { /*text bottom*/
+                                       if (page_data->image_item) {
+                                               elm_box_unpack(page_data->page_box, page_data->image_item);
+                                               elm_box_pack_start(page_data->page_box, page_data->image_item);
+                                       }
+                               } else if (order == COMPOSER_REGION_ORDER_TEXT_TOP) { /* text top */
+                                       if (page_data->image_item) {
+                                               elm_box_unpack(page_data->page_box, page_data->entry);
+                                               elm_box_pack_start(page_data->page_box, page_data->entry);
+                                       }
+                               }
+                       }
+               }
+
+               body_data->region_order = order;
+       }
+
+       D_LEAVE;
+}
+
+static void __msgc_text_templates_list_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       MSG_ITEM_S *msg_item = (MSG_ITEM_S *)elm_object_item_data_get(item);
+
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+
+       if (!msg_item) {
+               D_EMSG("msg_item is NULL");
+       } else {
+               /* When mbe is lots of recipient, recipient layout and composer body area is overlap. */
+               if ((cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) && (cd->recipient != NULL)) {
+                       if (false == cd->recipient->was_entry_empty)
+                               msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+
+                       COMPOSER_RECP_ADDR_E recp_type = msg_ui_composer_recipient_addr_type_get(cd->recipient);
+                       if ((recp_type != COMPOSER_RECP_ADDR_INVALID) && (recp_type != COMPOSER_RECP_ADDR_MAX_REACHED))
+                               msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+               }
+
+               D_MSG("msg id = %d", msg_item->msg_id);
+               D_SEC_MSG("msg_item->text = (%s)", msg_item->text);
+               char *template_msg = NULL;
+               bool user_defined_tmpl = false;
+
+               if (msg_item->text[0] != '\0' && strstr(msg_item->text, "IDS_MSG_")) {
+                       template_msg = msg_item->text;
+               } else {
+                       msg_common_connect_db();
+                       template_msg = msg_common_get_template(msg_item->msg_id);
+                       if (template_msg) {
+                               D_SEC_MSG("user defined template_msg = (%s)", template_msg);
+                               strncpy(msg_item->text, template_msg, sizeof(msg_item->text) - 1);
+                               user_defined_tmpl = true;
+                       }
+                       msg_common_disconnect_db();
+               }
+
+               Evas_Object *entry = NULL;
+               entry = msg_ui_composer_last_body_entry_get(cd);
+
+               if (entry) {
+                       char *markup_str = NULL;
+                       D_SEC_MSG("### before markup = (%s)", template_msg);
+
+                       if (!user_defined_tmpl) {
+                               markup_str = elm_entry_utf8_to_markup(_MSGSTR(template_msg));
+                       } else {
+                               /* do not NULL checking of template_msg because elm_entry_utf8_markup() returns NULL when if input text is null. */
+                               markup_str = elm_entry_utf8_to_markup(template_msg);
+                       }
+
+                       if (markup_str) {
+                               D_SEC_MSG("### text markup = (%s)", markup_str);
+                               cd->attachment_string = markup_str;
+                       }
+                       msg_ui_composer_last_focused_entry_set(cd, entry);
+               }
+
+               if (template_msg && user_defined_tmpl)
+                       free(template_msg);
+
+       }
+
+       msg_ui_composer_destroy_popup(cd, cd->add_template_popup);
+
+       D_LEAVE;
+}
+
+static char *__msgc_text_template_list_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       MSG_ITEM_S *msg_item = (MSG_ITEM_S *)data;
+
+       if (strlen(msg_item->text) && ((g_strcmp0(part, "elm.text.main.left") == 0) || g_strcmp0(part, "elm.text.multiline") == 0)) {
+               if (strstr(msg_item->text, "IDS_MSG_"))
+                       return strdup(_MSGSTR(msg_item->text));
+               else
+                       return strdup(msg_item->text);
+       } else {
+               return NULL;
+       }
+}
+
+static void  __msgc_text_template_list_gl_del_cb(void *data, Evas_Object *obj)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_ITEM_S *msg_item = (MSG_ITEM_S *)data;
+
+       if (msg_item)
+               free(msg_item);
+}
+
+void msg_ui_composer_create_text_templates_popup(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *popup = NULL;
+       Evas_Object *genlist = NULL;
+       int i = 0;
+       Eina_List *template_list = NULL;
+
+       msg_common_connect_db();
+
+       /* get template strings */
+       template_list = msg_common_get_template_list();
+       if (template_list) {
+               int tmpl_count = eina_list_count(template_list);
+               D_MSG("template list count = %d", tmpl_count);
+
+               if (cd->add_template_popup) {
+                       msg_ui_composer_destroy_popup(cd, cd->add_template_popup);
+                       cd->add_template_popup = NULL;
+               }
+
+               popup = msg_ui_composer_create_list_popup(cd, MESSAGE_PKGNAME, "IDS_MSG_OPT_QUICK_RESPONSE_ABB", NULL, NULL);
+
+               /* this popup should use genlist style so that allocated memory should be freed during destroying genlist/popup */
+               genlist = elm_genlist_add(popup);
+               elm_object_style_set(genlist, "popup");
+               elm_object_theme_set(genlist, cd->th);
+               elm_genlist_homogeneous_set(genlist, EINA_FALSE);
+               elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+               elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+
+               template_list_itc.item_style = "multiline_main_custom_idential_height_1_2line";
+               template_list_itc.func.text_get = __msgc_text_template_list_gl_text_get;
+               template_list_itc.func.content_get = NULL;
+               template_list_itc.func.state_get = NULL;
+               template_list_itc.func.del = __msgc_text_template_list_gl_del_cb;
+
+               for (i = 0; i < tmpl_count; i++) {
+                       MSG_ITEM_S *msg_item = (MSG_ITEM_S *)calloc(1, sizeof(MSG_ITEM_S));
+                       if (!msg_item) {
+                               D_EMSG("calloc is failed");
+                               continue;
+                       }
+
+                       MSG_COMMON_TMPL_S *msg_template = eina_list_nth(template_list, i);
+                       if (!msg_template || msg_template->p_text == NULL) {
+                               D_EMSG("msg_tempalte is NULL");
+                               free(msg_item);
+                               continue;
+                       }
+
+                       msg_item->msg_id = msg_template->msg_id;
+                       strncpy(msg_item->text, msg_template->p_text, sizeof(msg_item->text) - 1);
+
+                       convert_CRLF_to_space(msg_item->text);
+                       elm_genlist_item_append(genlist, &template_list_itc, (void *)msg_item, NULL, ELM_GENLIST_ITEM_NONE, __msgc_text_templates_list_clicked_cb, data);
+               }
+
+               msg_common_free_template_list(&template_list);
+
+               elm_object_content_set(popup, genlist);
+               evas_object_show(genlist);
+               evas_object_show(popup);
+               elm_object_focus_set(popup, EINA_TRUE);
+
+               cd->add_template_popup = popup;
+
+       } else {
+               D_MSG("get template list is NULL!!");
+               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_NO_TEMPLATE_LIST);
+       }
+
+       msg_common_disconnect_db();
+
+       D_LEAVE;
+}
+
+static void __msgc_select_layout_popup_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+       elm_list_item_selected_set(item, EINA_FALSE);
+
+       char *label = (char *)elm_object_item_text_get(item);
+       if (!label) {
+               D_EMSG("label is NULL !!");
+               goto ret;
+       }
+
+       D_MSG("label = %s", label);
+
+       if (!g_strcmp0(label, _MSGSTR("IDS_MSGC_POP_TEXT_AT_TOP"))) {
+               msg_ui_composer_body_change_region_order(cd, COMPOSER_REGION_ORDER_TEXT_TOP);
+       } else if (!g_strcmp0(label, _MSGSTR("IDS_MSGC_POP_TEXT_AT_BOTTOM"))) {
+               msg_ui_composer_body_change_region_order(cd, COMPOSER_REGION_ORDER_IMAGE_TOP);
+       } else {
+               D_EMSG("Unknown Menu List Item");
+       }
+
+       D_LEAVE;
+ret:
+       msg_ui_composer_destroy_popup(cd, cd->center_popup);
+}
+
+static void __msg_ui_composer_body_move_ctxpopup(Evas_Object *ctxpopup, Evas_Object *btn)
+{
+       Evas_Coord x, y, w , h;
+       evas_object_geometry_get(btn, &x, &y, &w, &h);
+       evas_object_move(ctxpopup, x + (5 * w / 6), y + (h + (3 * h / 4)));
+}
+
+void msg_ui_composer_body_show_ctx_popup(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       if (cd->body_ctx_popup) {
+               Evas_Object *parent = (Evas_Object *)evas_object_data_get(cd->body_ctx_popup, "parent");
+               __msg_ui_composer_body_move_ctxpopup(cd->body_ctx_popup, parent);
+               evas_object_show(cd->body_ctx_popup);
+               evas_object_smart_callback_add(cd->body_ctx_popup, "dismissed", msg_ui_composer_body_ctxpopup_dismissed_cb, cd);
+       } else {
+               D_MSG("No ctx_popup present");
+       }
+       D_LEAVE;
+}
+
+void msg_ui_composer_create_select_layout_popup(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *popup = NULL;
+
+       if (cd->center_popup) {
+               msg_ui_composer_destroy_popup(cd, cd->center_popup);
+               cd->center_popup = NULL;
+       }
+
+       popup = msg_ui_composer_create_list_popup(cd, MESSAGE_PKGNAME, "IDS_MSGC_POP_SELECT_LAYOUT", NULL, NULL);
+
+       Elm_Object_Item *popup_item;
+       if (cd->body_data.region_order == COMPOSER_REGION_ORDER_TEXT_TOP)
+               popup_item = elm_popup_item_append(popup, "IDS_MSGC_POP_TEXT_AT_BOTTOM", NULL, __msgc_select_layout_popup_clicked_cb, data);
+       else
+               popup_item = elm_popup_item_append(popup, "IDS_MSGC_POP_TEXT_AT_TOP", NULL, __msgc_select_layout_popup_clicked_cb, data);
+
+       elm_object_item_signal_emit(popup_item, "elm,state,bottomline,hide", "");
+
+       elm_object_item_domain_text_translatable_set(popup_item, MESSAGE_PKGNAME, EINA_TRUE);
+
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       cd->center_popup = popup;
+
+       D_LEAVE;
+}
+
+static char *__msg_ui_composer_message_options_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       const char *label  = (char *) data;
+       if (!strcmp(part, "elm.text")) {
+               if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_EDITITEM_VIEW")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_EDITITEM_VIEW"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_EDITITEM_PLAY")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_EDITITEM_PLAY"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_EDIT_ITEM_REPLACE")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_EDITITEM_REMOVE")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_EDITITEM_REMOVE"));
+               }
+       }
+               return NULL;
+}
+
+void msg_ui_composer_create_media_option_popup(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Smart_Cb on_remove, Evas_Object *content)
+{
+       D_ENTER;
+       Evas_Object *popup = NULL;
+       Evas_Object *genlist = NULL;
+
+       if (cd->center_popup) {
+               msg_ui_composer_destroy_popup(cd, cd->center_popup);
+               cd->center_popup = NULL;
+       }
+
+       popup = msg_ui_composer_create_list_popup(cd, MESSAGE_PKGNAME, "IDS_MSG_OPT_ATTACHMENT_ABB", NULL, NULL);
+       genlist = elm_genlist_add(popup);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+
+       message_options_list_itc.item_style = "default";
+       message_options_list_itc.func.text_get = __msg_ui_composer_message_options_gl_text_get;
+       message_options_list_itc.func.content_get = NULL;
+       message_options_list_itc.func.state_get = NULL;
+       message_options_list_itc.func.del = NULL;
+
+       elm_genlist_item_append(genlist,
+                       &message_options_list_itc,
+                       (const void *)dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_EDITITEM_REMOVE"),
+                       NULL,
+                       ELM_GENLIST_ITEM_NONE,
+                       on_remove,
+                       content);
+
+       Evas_Object *box = elm_box_add(popup);
+
+       evas_object_size_hint_min_set(box, 0, ELM_SCALE_SIZE(MSGC_POPUP_LIST_H));
+       evas_object_show(genlist);
+       elm_box_pack_end(box, genlist);
+       elm_object_content_set(popup, box);
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       cd->center_popup = popup;
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_input_field_focus_set(void *data, bool value)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       D_MSG("value = %d", value);
+       if (cd->body_data.is_body_focus != value) {
+               if (value == true) {
+                       edje_object_signal_emit(_EDJ(cd->input_field_bg), "elm,state,focus,on", "*");
+               } else {
+                       edje_object_signal_emit(_EDJ(cd->input_field_bg), "elm,state,focus,off", "*");
+               }
+               cd->body_data.is_body_focus = value;
+       }
+}
+
+bool msg_ui_composer_body_input_field_focus_get(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, false, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       D_MSG("is_body_focus = %d", cd->body_data.is_body_focus);
+       return cd->body_data.is_body_focus;
+}
+
+void __msg_ui_composer_make_empty_body(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "data is NULL");
+
+       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 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) {
+                       if (page_data->entry) {
+                               D_MSG("Emptying page: %d", i);
+                               elm_entry_entry_set(page_data->entry, "");
+                       } else {
+                               D_EMSG("no page entry @ page [%d]", i + 1);
+                       }
+               }
+       }
+
+       D_LEAVE;
+       return;
+}
+
+void msg_ui_destroy_attach_panel(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       if (cd && cd->attach_panel) {
+               msg_ui_hide_attach_panel(cd);
+               attach_panel_unset_result_cb(cd->attach_panel);
+
+               int destroy_res = attach_panel_destroy(cd->attach_panel);
+               D_MSG("attach_panel_destroy() returned %d", destroy_res);
+               cd->attach_panel = NULL;
+       }
+}
+
+void msg_ui_hide_attach_panel(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       if (cd && cd->attach_panel) {
+               attach_panel_hide(cd->attach_panel);
+       }
+}
+
+attach_panel_h msg_ui_show_attach_panel(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+
+       if (!cd->attach_panel) {
+               attach_panel_h attach_panel = NULL;
+
+               Evas_Object *conformant = (Evas_Object *)ug_get_conformant();
+               D_MSG_RETVM_IF(conformant == NULL, NULL, "conformant is NULL");
+
+               int err = attach_panel_create(conformant, &attach_panel);
+               D_MSG_RETVM_IF(err != 0, attach_panel, "attach_panel_create returns error: %d", err);
+
+               cd->attach_panel = attach_panel;
+
+               bundle *extra_data = bundle_create();
+               char buf[BUFSIZ] = {0,};
+
+               snprintf(buf, BUFSIZ, "%d", cd->mms_max_size);
+               bundle_add_str(extra_data, APP_CONTROL_TOTAL_SIZE, buf);
+
+               snprintf(buf, BUFSIZ, "%d", COMPOSER_MMS_MAX_ATTACH_COUNT);
+               bundle_add_str(extra_data, APP_CONTROL_TOTAL_COUNT, buf);
+
+               attach_panel_add_content_category(attach_panel, ATTACH_PANEL_CONTENT_CATEGORY_IMAGE, extra_data);
+               attach_panel_add_content_category(attach_panel, ATTACH_PANEL_CONTENT_CATEGORY_CAMERA, extra_data);
+               attach_panel_add_content_category(attach_panel, ATTACH_PANEL_CONTENT_CATEGORY_VOICE, extra_data);
+               attach_panel_add_content_category(attach_panel, ATTACH_PANEL_CONTENT_CATEGORY_VIDEO, extra_data);
+               attach_panel_add_content_category(attach_panel, ATTACH_PANEL_CONTENT_CATEGORY_AUDIO, extra_data);
+               attach_panel_add_content_category(attach_panel, ATTACH_PANEL_CONTENT_CATEGORY_MYFILES, extra_data);
+
+               bundle_free(extra_data);
+
+               attach_panel_set_result_cb(attach_panel, msg_ui_attach_panel_result_cb, cd);
+       }
+
+       attach_panel_show(cd->attach_panel);
+       return cd->attach_panel;
+}
diff --git a/composer/src/ui-composer/msg-ui-composer-common.c b/composer/src/ui-composer/msg-ui-composer-common.c
new file mode 100755 (executable)
index 0000000..a5b536b
--- /dev/null
@@ -0,0 +1,3453 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "ITapiSim.h"
+#include "ITapiNetwork.h"
+#include "ITapiCall.h"
+#include <Elementary.h>
+#include <utilX.h>
+#include <Ecore_X.h>
+#include <mmf/mm_error.h>
+#include <metadata_extractor.h>
+#include <image_util.h>
+#include <feedback.h>
+#include <ITapiModem.h>
+#include <app_info.h>
+#include <app_manager.h>
+#include <runtime_info.h>
+
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-message.h"
+#include "msg-ui-composer-subject.h"
+#include "msg-ui-composer-body.h"
+#include "msg-ui-composer-body-callback.h"
+#include "msg-ui-composer-attachment.h"
+#include "msg-ui-composer-recipient.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-composer-data.h"
+#include "msg-ui-composer-bubble.h"
+#include "msg-ui-composer-main.h"
+#include "msg-ui-composer-external.h"
+#include "msg-ui-db-util.h"
+#include "msg-file-util.h"
+#include "msg-system-util.h"
+
+/* MIME type table*/
+const composer_mime_type_t composer_mime_table[] = {
+/*audio*/
+       {"aac", "audio/aac", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"amr", "audio/amr", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"amr", "audio/x-amr", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"amr", "audio/amr-wb", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"imy", "audio/imelody", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"imy", "audio/imy", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"imy", "audio/iMelody", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"imy", "audio/melody", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"imy", "audio/x-iMelody", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"imy", "text/iMelody", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"imy", "text/x-iMelody", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"imy", "text/x-imelody", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mid", "audio/mid", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mid", "audio/midi", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mid", "audio/x-mid", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mid", "audio/x-midi", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"midi", "audio/mid", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mmf", "application/vnd.smaf", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mmf", "application/x-smaf", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mmf", "audio/mmf", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mmf", "audio/smaf", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mmf", "audio/x-mmf", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mmf", "audio/x-smaf", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mp3", "audio/mpeg", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mp3", "audio/mp3", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mp3", "audio/mpg3", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mp3", "audio/mpeg3", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mp3", "audio/mpg", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mp3", "audio/x-mp3", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mp3", "audio/x-mpeg", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mp3", "audio/x-mpeg3", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mp3", "audio/x-mpegaudio", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mp3", "audio/x-mpg", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mpg", "audio/x-mpeg", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"m4a", "audio/m4a", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"ra", "audio/x-pn-realaudio", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"rm", "audio/vnd.rn-realaudio", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"rm", "audio/x-pn-multirate-realaudio", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"rm", "audio/x-pn-multirate-realaudio-live", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"spm", "audio/sp-midi", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"wav", "audio/wav", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"wav", "audio/wave", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"wav", "audio/x-wav", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"wav", "audio/x-wave", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"wma", "audio/wma", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"wma", "audio/x-ms-wma", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"xmf", "audio/mobile-xmf", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"xmf", "audio/xmf", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"xmf", "audio/x-xmf", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"3gp", "audio/3gpp", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mp4", "audio/mp4", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mp4", "audio/MP4A-LATM", COMPOSER_MEDIA_TYPE_AUDIO},
+       {"mp4", "audio/mpeg4", COMPOSER_MEDIA_TYPE_AUDIO},
+/*image*/
+       {"bmp", "image/bmp", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"bmp", "image/x-bmp", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"gif", "image/gif", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"GIF", "image/gif", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"gif", "image/vnd.tmo.my5-gif", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"jpg", "image/jpg", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"jpg", "image/jpeg", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"jpg", "image/vnd.tmo.my5-jpg", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"jpeg", "image/jpeg", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"JPG", "image/jpeg", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"jpg", "image/pjpeg", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"jpe", "image/jpeg", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"png", "image/png", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"wbmp", "image/vnd.wap.wbmp", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"wbmp", "image/wbmp", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"swf", "application/x-shockwave-flash", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"tif", "image/tiff", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"tif", "image/tif", COMPOSER_MEDIA_TYPE_IMAGE},
+       {"pmd", "audio/pmd", COMPOSER_MEDIA_TYPE_IMAGE},
+/*video*/
+       {"3gp", "video/3gpp", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"3gp", "video/3gp", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"3gp", "video/h263", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"3gp", "video/mp4v-es", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"asf", "audio/x-ms-asf", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"asf", "video/x-ms-asf", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"asx", "video/x-ms-asf", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"avi", "video/avi", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"mp2", "video/mpeg", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"mp4", "video/mp4", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"mp4", "video/mpeg4", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"mp4", "video/x-mp4", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"mp4", "video/x-pv-mp4", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"mpg", "video/mpeg", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"mpeg", "video/mpeg", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"rm", "video/x-pn-multirate-realvideo", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"rm", "video/vnd.rn-realmedia", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"rm", "video/vnd.rn-realvideo", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"rv", "video/x-pn-realvideo", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"sdp", "application/sdp", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"sdp", "video/sdp", COMPOSER_MEDIA_TYPE_VIDEO},
+       {"wmv", "video/x-ms-wmv", COMPOSER_MEDIA_TYPE_VIDEO},
+/*text*/
+       {"txt", "text/plain", COMPOSER_MEDIA_TYPE_TEXT},
+       {"text", "text/plain", COMPOSER_MEDIA_TYPE_TEXT},
+       {"html", "text/html", COMPOSER_MEDIA_TYPE_TEXT},
+       {"htm", "text/html", COMPOSER_MEDIA_TYPE_TEXT},
+       {"wml", "text/vnd.wap.wml", COMPOSER_MEDIA_TYPE_TEXT},
+       {"xml", "text/xml", COMPOSER_MEDIA_TYPE_TEXT},
+/*vObject*/
+       {"vbm", "text/x-vbookmark", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"vcf", "text/x-vcard", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"vcs", "text/x-vCalendar", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"vnt", "text/x-vnote", COMPOSER_MEDIA_TYPE_UNKNOWN},
+/*doc*/
+       {"doc", "application/msword", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"doc", "applcation/vnd.ms-word", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"xls", "application/vnd.ms-excel", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"xls", "application/x-msexcel", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"ppt", "application/vnd.ms-powerpoint", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"ppt", "application/x-mspowerpoint", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"pdf", "application/pdf", COMPOSER_MEDIA_TYPE_UNKNOWN},
+/*etc*/
+       {"rm ", "application/vnd.rn-realmedia", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"smi", "application/smil", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"smil", "application/smil", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"xml", "application/vnd.oma.drm.roap-pdu+xml", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"xml", "application/vnd.oma.drm.roap-trigger+xml", COMPOSER_MEDIA_TYPE_UNKNOWN},
+       {"xxx", "application/octet-stream", COMPOSER_MEDIA_TYPE_UNKNOWN},
+};
+
+static void _naviframe_size_hints_changed_deferred_cb(void *data);
+
+void msg_ui_common_initialize_telephony(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       unsigned int modem_num = 0;
+
+       /* Get CP name list – cp_list */
+       if (cd->sim_info.cp_list == NULL) {
+               cd->sim_info.cp_list = tel_get_cp_name_list();
+               if (cd->sim_info.cp_list == NULL) {
+                       D_MSG("Dual-sim - Could not get the cp_name_list");
+                       return;
+               }
+       }
+
+       while (cd->sim_info.cp_list[modem_num]) {
+               /* Initialize TAPI handle */
+               if (!cd->sim_info.handle[modem_num]) {
+                       cd->sim_info.handle[modem_num] = tel_init(cd->sim_info.cp_list[modem_num]);
+                       D_SEC_MSG("handle[%d] = %s; ptr = %p", modem_num, cd->sim_info.cp_list[modem_num], cd->sim_info.handle[modem_num]);
+               } else {
+                       D_MSG("%d tapi_handle is already initialized.", modem_num+1);
+               }
+
+               /* Move to next CP Name in cp_list */
+               modem_num++;
+       }
+
+       cd->sim_info.handle[modem_num] = NULL;
+
+       D_LEAVE;
+}
+
+void msg_ui_common_deinitialize_telephony(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       unsigned int i = 0;
+       while (cd->sim_info.handle[i]) {
+               /* De-initialize TAPI handle */
+               tel_deinit(cd->sim_info.handle[i]);
+               cd->sim_info.handle[i] = NULL;
+
+               /* Move to next handle */
+               i++;
+       }
+
+       /* free cp_list */
+       g_strfreev(cd->sim_info.cp_list);
+       cd->sim_info.cp_list = NULL;
+       D_LEAVE;
+}
+
+void msg_ui_composer_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");
+
+       msg_ui_composer_change_bubble_view(cd, tid);
+
+       if (tid <= 0) {
+               D_EMSG("Can not find tid = %d !!", tid);
+               msg_ui_composer_message_destroy();
+               ug_destroy_me(cd->ug);
+
+               return;
+       }
+
+       /* set recipient list for bubble composer */
+       msg_ui_composer_recipient_set_recipient_list(cd, tid);
+
+       msg_common_change_bubble_font_style(cd->display_font_size);
+       msg_ui_composer_bubble_data_set(cd, tid);
+       msg_ui_composer_navi_title_set((void *)cd);
+       msg_ui_bubble_start_view(cd->bubble_data);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_composer_switch_network_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *popup = (Evas_Object *)obj;
+
+       msg_ui_composer_destroy_popup(cd, popup);
+
+       int curr_sim_idx = 0;
+       preference_get_int(KEY_MSG_APP_RESET_SIM_INDEX, &curr_sim_idx);
+       if (curr_sim_idx != 0)
+               msg_ui_common_reset_data_service_back_to_main_setting_value(cd);
+       cd->is_net_switch_popup_exist = false;
+
+}
+
+void msg_ui_composer_common_sim_network_not_changed(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       if (cd->send_via_popup) {
+               msg_ui_composer_destroy_popup(cd, cd->send_via_popup);
+               cd->send_via_popup = NULL;
+       }
+       return;
+}
+
+void msg_ui_composer_common_reset_data_service_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+       D_ENTER;
+       D_SEC_EMSG("Enter tel_set_network_default_data_subscription callback : %s", "msg_ui_composer_common_reset_data_service_cb");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)user_data;
+
+       if (result == TAPI_API_SUCCESS) {
+               Evas_Object *popup = msg_ui_composer_create_activity_indicator_popup(cd);
+               cd->is_net_switch_popup_exist = true;
+               eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_composer_common_ignore_back_key_cb, cd);
+               elm_popup_timeout_set(popup, 60);
+               evas_object_smart_callback_add(popup, "timeout", __msg_ui_composer_switch_network_popup_timeout_cb, cd);
+               cd->send_via_popup = popup;
+       } else {
+               msg_ui_common_deinitialize_telephony(cd);
+       }
+       D_LEAVE;
+
+}
+
+
+void msg_ui_composer_launch_reset_sim_process(int reset_index, int msg_id, int thread_id)
+{
+       D_ENTER;
+
+       int ret = APP_CONTROL_ERROR_NONE;
+       app_control_h service;
+       char buf[DEF_BUF_LEN_S] = {0,};
+       char buf1[DEF_BUF_LEN_S] = {0,};
+       char buf2[DEF_BUF_LEN_S] = {0,};
+
+       ret = app_control_create(&service);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               return;
+       }
+
+       ret = app_control_set_app_id(service, "msg-sim-reset-efl-lite");
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               ret = app_control_destroy(service);
+               return;
+       }
+
+       snprintf(buf, sizeof(buf), "%d", msg_id);
+       ret = app_control_add_extra_data(service, "msgId", buf);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_MSG("app_control_add_extra_data FAILED");
+               ret = app_control_destroy(service);
+               return;
+       }
+
+       snprintf(buf1, sizeof(buf1), "%d", thread_id);
+       ret = app_control_add_extra_data(service, "threadId", buf1);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_MSG("app_control_add_extra_data FAILED");
+               ret = app_control_destroy(service);
+               return;
+       }
+
+       snprintf(buf2, sizeof(buf2), "%d", reset_index);
+       ret = app_control_add_extra_data(service, "resetSimId", buf2);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_MSG("app_control_add_extra_data FAILED");
+               ret = app_control_destroy(service);
+               return;
+       }
+
+       ret = app_control_send_launch_request(service, NULL, NULL);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_MSG("app_control_send_launch_request FAILED");
+       }
+
+       app_control_destroy(service);
+}
+
+static void __msg_composer_reset_data_service_after_send_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+       D_ENTER;
+}
+
+void msg_ui_common_reset_data_service_back_to_main_setting_value(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+
+       int active_sims;
+       int active_sim;
+       int data_subscription;
+       int curr_sim_idx = 0;
+       preference_get_int(KEY_MSG_APP_RESET_SIM_INDEX, &curr_sim_idx);
+
+       msg_common_get_sim_preference(cd, &active_sims, &active_sim, &data_subscription);
+
+       /* App has manually changed the data preferred sim while sending an MMS . Need to reset it back on message Send Success/Failure */
+       if (data_subscription != curr_sim_idx) {
+
+               if ((data_subscription == MSG_ACTIVE_DATA_SUBSCRIPTION_SIM2 || data_subscription == MSG_ACTIVE_DATA_SUBSCRIPTION_NONE) && curr_sim_idx == 1) {
+                       if (TAPI_API_SUCCESS != tel_set_network_default_data_subscription(cd->sim_info.handle[0], __msg_composer_reset_data_service_after_send_cb, (void *)cd))
+                               D_EMSG("tel_set_network_default_data_subscription failed");
+               } else if ((data_subscription == MSG_ACTIVE_DATA_SUBSCRIPTION_SIM1 || data_subscription == MSG_ACTIVE_DATA_SUBSCRIPTION_NONE) && curr_sim_idx == 2) {
+                       if (TAPI_API_SUCCESS != tel_set_network_default_data_subscription(cd->sim_info.handle[1], __msg_composer_reset_data_service_after_send_cb, (void *)cd))
+                               D_EMSG("tel_set_network_default_data_subscription failed");
+               }
+               preference_set_int(KEY_MSG_APP_RESET_SIM_INDEX, 0);
+       }
+       D_LEAVE;
+}
+
+static void __msg_ui_composer_common_send_via_sim_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       PMSG_BUBBLE_DATA bubble_data = NULL;
+       int msg_type = 0;
+       D_MSG_RETM_IF(!cd, "COMPOSER DATA is NULL!!");
+
+       if (cd->send_via_popup) {
+               msg_ui_composer_destroy_popup(cd, cd->send_via_popup);
+               cd->send_via_popup = NULL;
+       }
+
+       if (cd->send_from_bubble == TRUE) {
+               bubble_data = cd->bubble_data;
+               msg_type = bubble_data->resend_msg_type;
+
+               D_MSG_RETM_IF(!bubble_data, "bubble_data is NULL!!");
+       } else {
+               msg_type = cd->msg_type;
+       }
+
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+       int sim_index = (int)elm_object_item_data_get(item);
+
+#if _MSG_FEATURE_DSDS_ENABLED
+               cd->sim_number = 1;
+#endif
+
+       if (msg_type == COMPOSER_MSG_TYPE_SMS) {
+               if (cd->send_from_bubble == TRUE) {
+                       msg_ui_bubble_resend_msg(bubble_data, bubble_data->resend_id);
+                       cd->send_from_bubble = FALSE;
+               } else {
+                       msgi_ui_composer_body_send_message(cd);
+               }
+       } else if (msg_type == COMPOSER_MSG_TYPE_MMS) {
+               if (msg_ui_composer_message_mobile_data_roaming_check_and_send(cd, NULL) != COMPOSER_RETURN_SUCCESS) {
+                       return;
+               }
+
+               if (cd->send_from_bubble == TRUE) {
+                       msg_ui_bubble_resend_msg(bubble_data, bubble_data->resend_id);
+                       cd->send_from_bubble = FALSE;
+               } else {
+                       msgi_ui_composer_body_send_message(cd);
+               }
+       }
+}
+
+void msg_ui_composer_common_message_send(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       int msg_type = 0;
+
+       if (cd->send_from_bubble == TRUE) {
+               msg_type = bubble_data->resend_msg_type;
+       } else {
+               msg_type = cd->msg_type;
+       }
+
+       int active_sims;
+       int active_sim;
+       int data_subscription;
+
+       int preferred_subscription = MSG_SIM_PREFERENCE_SIM_COUNT_LESS_THAN_TWO;
+       preferred_subscription = msg_common_get_sim_preference(cd, &active_sims, &active_sim, &data_subscription);
+       cd->voice_preferred_sim = preferred_subscription;
+       cd->data_preferred_sim = data_subscription;
+       cd->active_sims = active_sims;
+       cd->active_sim = active_sim;
+
+       if (cd->active_sims == 1) {
+               D_MSG("One active SIM");
+               if (active_sim == MSG_SIM_SIM1_ACTIVE) {
+                       D_MSG("active SIM is in slot 1");
+#if _MSG_FEATURE_DSDS_ENABLED
+                       cd->sim_number = 1;
+#endif
+               } else if (active_sim == MSG_SIM_SIM2_ACTIVE) {
+                       D_MSG("active SIM is in slot 2");
+#if _MSG_FEATURE_DSDS_ENABLED
+                       cd->sim_number = 2;
+#endif
+               }
+               /* check mobile data */
+               if (msg_type == COMPOSER_MSG_TYPE_MMS) {
+                       if (msg_ui_composer_message_mobile_data_roaming_check_and_send(cd, NULL) != COMPOSER_RETURN_SUCCESS) {
+                               return;
+                       }
+               }
+
+               if (cd->send_from_bubble == TRUE) {
+                       msg_ui_bubble_resend_msg(bubble_data, bubble_data->resend_id);
+                       cd->send_from_bubble = FALSE;
+               } else {
+                       msgi_ui_composer_body_send_message(cd);
+               }
+       } else {
+               if (msg_type == COMPOSER_MSG_TYPE_SMS) {
+                       if (preferred_subscription == MSG_SIM_PREFERENCE_SIM1) {
+                               cd->sim_number = 1;
+                       } else if (preferred_subscription == MSG_SIM_PREFERENCE_SIM2) {
+                               cd->sim_number = 2;
+                       }
+
+                       if (cd->send_from_bubble == TRUE) {
+                               msg_ui_bubble_resend_msg(bubble_data, bubble_data->resend_id);
+                               cd->send_from_bubble = FALSE;
+                       } else {
+                               msgi_ui_composer_body_send_message(cd);
+                       }
+
+               } else if (msg_type == COMPOSER_MSG_TYPE_MMS) {
+                       if (preferred_subscription == MSG_SIM_PREFERENCE_SIM1) {
+                               cd->sim_number = 1;
+                       } else if (preferred_subscription == MSG_SIM_PREFERENCE_SIM2) {
+                               cd->sim_number = 2;
+                       }
+
+                       if (msg_ui_composer_message_mobile_data_roaming_check_and_send(cd, NULL) != COMPOSER_RETURN_SUCCESS) {
+                               return;
+                       }
+
+
+                       if ((data_subscription == MSG_ACTIVE_DATA_SUBSCRIPTION_SIM1) && (preferred_subscription == MSG_SIM_PREFERENCE_SIM1 || preferred_subscription == MSG_SIM_PREFERENCE_ALWAYS_ASK)) {
+                               if (cd->send_from_bubble == TRUE) {
+                                       msg_ui_bubble_resend_msg(bubble_data, bubble_data->resend_id);
+                                       cd->send_from_bubble = FALSE;
+                               } else {
+                                       msgi_ui_composer_body_send_message(cd);
+                               }
+                       } else if ((data_subscription == MSG_ACTIVE_DATA_SUBSCRIPTION_SIM2) && (preferred_subscription == MSG_SIM_PREFERENCE_SIM2 || preferred_subscription == MSG_SIM_PREFERENCE_ALWAYS_ASK)) {
+                               if (cd->send_from_bubble == TRUE) {
+                                       msg_ui_bubble_resend_msg(bubble_data, bubble_data->resend_id);
+                                       cd->send_from_bubble = FALSE;
+                               } else {
+                                       msgi_ui_composer_body_send_message(cd);
+                               }
+                       }
+               }
+       }
+
+       msg_ui_hide_attach_panel(cd);
+}
+
+char *msg_ui_composer_edj_get(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       return MSGC_UI_DEFAULT_EDJ;
+}
+
+Evas_Object *msg_ui_composer_popup_create(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent)
+{
+        msg_ui_composer_unset_view(cd);
+        return elm_popup_add(parent);
+}
+
+bool check_condition_to_focus_entry(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+
+       if (cd->is_appsvc_ug_call || (cd->popup_list != NULL) || cd->attach_thread != NULL || (cd->bubble_data != NULL && (cd->bubble_data->viewmode != BUBBLE_NORMAL_VIEW))) {
+               return false;
+       } else {
+               return true;
+       }
+
+}
+
+bool check_condition_to_show_keypad(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       if (cd->loaded_aul == TRUE || cd->loaded_ug != NULL || cd->isclosed == TRUE) {
+               return false;
+       } else {
+               return true;
+       }
+}
+/**
+ * This API should only be used by naviframe size hints changed cb .
+ * To keep old state of keypad
+ */
+
+void msg_ui_composer_save_view_state(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       if (cd->called_from_unset == false) {
+               cd->saved_keypad_state = !cd->is_keypad_show;
+       } else {
+               D_MSG("UNSET ALREADY CALLED");
+       }
+       D_LEAVE;
+}
+
+
+void msg_ui_composer_unset_view(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+
+       if (cd->called_from_unset == false) {
+               /* if unset_view is called before showing keypad even though we try to show keypad manually in reset_view(), we keep saved_keypad_state as true(show)
+                * Ex> in easy mode, contact btn > back [trying to show keypad in reset_view()] > click recent btn before showing keypad [unset_view is called] */
+               if (cd->try_to_show_keypad) {
+                       cd->saved_keypad_state = cd->try_to_show_keypad;
+                       cd->try_to_show_keypad = false;
+               } else {
+                       cd->saved_keypad_state = cd->is_keypad_show;
+               }
+
+               elm_object_focus_set(cd->last_focus_entry, EINA_FALSE);
+       } else {
+               D_IMSG("LAST UNSET NOT RESET");
+       }
+       cd->called_from_unset = true;
+       msg_ui_composer_entry_input_panel_hide(cd->last_focus_entry);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_reset_view(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       bool should_entry_focus = check_condition_to_focus_entry(cd);
+       bool should_keypad_show = check_condition_to_show_keypad(cd);
+
+       D_MSG("### should_entry_focus : %d", should_entry_focus);
+       D_MSG("### should_keypad_show : %d", should_keypad_show);
+       D_MSG("### cd->called_from_unset : %d", cd->called_from_unset);
+
+       if (cd->called_from_unset) { /* If reset called after unset*/
+               if (should_entry_focus) {
+                       D_MSG("FOCUS ALLOWED");
+                       msg_ui_composer_last_focus_load(cd);
+                       D_MSG("cd->saved_keypad_state %d", cd->saved_keypad_state);
+                       D_MSG("should_keypad_show %d", should_keypad_show);
+                       if (cd->saved_keypad_state && should_keypad_show) {
+                               D_MSG("KEYPAD ALLOWED");
+
+                               cd->try_to_show_keypad = true;
+                               msg_ui_composer_entry_input_panel_show(cd->last_focus_entry);
+                               if (cd->is_timing_popup) { /*After clicking ok of timing popup (like invalid recipient popup) keypad should be shown for recipient entry*/
+                                       cd->is_timing_popup = false;
+                               }
+                       }
+
+                       if (cd->saved_keypad_state && !should_keypad_show) {
+                               D_MSG("UNSET NOT RESET");
+                               cd->called_from_unset = true; /*since old keypad state could not be reset keep unset variable*/
+                       } else {
+                               D_MSG("UNSET RESET");
+                               cd->called_from_unset = false;
+                       }
+               }
+       } else { /* If reset called after arbitary app_pause eg setting of keypad pressed*/
+               if (should_entry_focus) {
+                       D_MSG("FOCUS ALLOWED");
+                       msg_ui_composer_last_focus_load(cd);
+                       if (cd->saved_keypad_state && should_keypad_show) {
+                               D_MSG("KEYPAD ALLOWED");
+                               msg_ui_composer_entry_input_panel_show(cd->last_focus_entry);
+                       }
+               }
+       }
+       D_LEAVE;
+}
+
+void msg_ui_composer_entry_input_panel_hide(Evas_Object *entry)
+{
+       D_MSG("HIDING KEYPAD MANNULLY FOR ENTRY = %p", entry);
+       elm_entry_input_panel_hide(entry);
+}
+
+void msg_ui_composer_entry_input_panel_show(Evas_Object *entry)
+{
+       D_MSG("SHOWING KEYPAD MANNULLY FOR ENTRY = %p", entry);
+       elm_entry_input_panel_show(entry);
+}
+
+void msg_ui_composer_sim_icon_refresh(void *data, MSG_SIM_PREFERENCE caller)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       MSG_SIM_PREFERENCE pref = cd->voice_preferred_sim;
+
+       if (cd->check_push_cb_msg == TRUE) {
+               D_IMSG("Return because this is push_cb msg(there is no composer body)");
+               return;
+       }
+
+       /* unset previous icons */
+       Evas_Object *content = NULL;
+       if (caller != MSG_SIM_PREFERENCE_NONE && pref != MSG_SIM_PREFERENCE_SIM_COUNT_LESS_THAN_TWO) {
+               const char *btn_style = elm_object_style_get(cd->send_button);
+               if (btn_style && (strcmp(btn_style, "send_custom") == 0)) {
+                       D_MSG("unset previous normal icon.");
+                       content = elm_object_part_content_unset(cd->send_button, "button_center_part");
+                       if (NULL != content)
+                               evas_object_del(content);
+               }
+       }
+
+       if (pref == MSG_SIM_PREFERENCE_SIM1 && caller == MSG_SIM_PREFERENCE_SIM1) {
+               D_MSG("sim1");
+               elm_object_style_set(cd->send_button, cd->sim1_sendbtn_style);
+       } else if (pref == MSG_SIM_PREFERENCE_ALWAYS_ASK) {
+               Evas_Object *icon = NULL;
+
+               elm_object_style_set(cd->send_button, "send_custom");
+               icon = elm_icon_add(cd->input_field_layout);
+
+               if (cd->msg_type == COMPOSER_MSG_TYPE_MMS)
+                       elm_image_file_set(icon, MSG_IMAGES_EDJ, MSGC_MMS_SEND_ICON);
+               else
+                       elm_image_file_set(icon, MSG_IMAGES_EDJ, MSGC_SMS_SEND_ICON);
+               elm_object_part_content_set(cd->send_button, "button_center_part", icon);
+               elm_object_part_content_set(cd->send_button, "button_sim", NULL);
+       }
+
+       /* send a signal manually if need to make disabled send_button afer changing object_style */
+       if (!msg_ui_composer_common_is_send_possible(cd))
+               edje_object_signal_emit(_EDJ(cd->send_button), "elm,state,disabled", "elm");
+
+       D_LEAVE;
+       return;
+}
+
+static void __msg_ui_unregister_sim_callbacks(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       int ret;
+
+       ret = tel_deregister_noti_event(cd->sim_info.handle[0], TAPI_NOTI_CALL_PREFERRED_VOICE_SUBSCRIPTION);
+       if (ret != TAPI_API_SUCCESS) {
+               D_MSG("Failed to dereregister  callback to handle: 0");
+               return;
+       }
+       D_LEAVE;
+}
+
+static void __msg_ui_get_sim_status(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       int i;
+       int ret;
+       TelSimCardStatus_t sim_status;
+       int card_changed;
+
+       for (i = 0; i < TAPI_HANDLE_MAX + 1; ++i) {
+               if (cd->sim_info.handle[i]) {
+                       ret = tel_get_sim_init_info(cd->sim_info.handle[i], &sim_status, &card_changed);
+                       if (ret == 0) {
+                               /* print_sim_status(sim_status, card_changed); */
+
+                               if (sim_status == TAPI_SIM_STATUS_SIM_INIT_COMPLETED) {
+                                       cd->sim_info.sim_card_ready[i] = EINA_TRUE;
+                               } else {
+                                       D_MSG("SIM[%d] is not completed initialization [%d]", i, sim_status);
+                               }
+                       } else {
+                               D_MSG("Could not get sim[%d] status[%d]", i, ret);
+                       }
+               }
+       }
+}
+
+void msg_ui_composer_sim_controller_deinit(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       __msg_ui_unregister_sim_callbacks(cd);
+       msg_ui_common_deinitialize_telephony(cd);
+}
+
+void msg_ui_composer_sim_controller_init(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       /* Initialize TAPI handles */
+       if (cd->sim_info.handle[0])
+               __msg_ui_unregister_sim_callbacks(cd);
+
+       msg_ui_common_initialize_telephony(cd);
+       __msg_ui_get_sim_status(cd);
+
+       return;
+}
+
+MSG_SIM_PREFERENCE msg_common_get_sim_preference(MSG_COMPOSER_VIEW_DATA_S *cd, int *active_sims, int *active_sim, int *data_subs)
+{
+       int active_count = 0;
+       int sim_preference = MSG_SIM_PREFERENCE_SIM_COUNT_LESS_THAN_TWO;
+       int sim_active = MSG_SIM_NONE_ACTIVE;
+       int datasubs = MSG_ACTIVE_DATA_SUBSCRIPTION_NONE;
+
+       /* TBD: Below rules for SIM options will be applied once SIM manager provides SIM configuration api's.
+        * 1. Check active SIM slot count
+        * 2-1. If active SIM slot count is 1, send sms/mms using this SIM.
+        * 2-2. If active SIM slot count is 2, follow below steps.
+        * 3. Check preferred SIM configuration.
+        * 4-1. If preferred SIM configuration is set to "Always ask", show SIM selection popup.
+        * 4-2. If preferred SIM configuration is set to SIM1 or SIM2, and message is SMS, send using configured SIM.
+        * 4-3. If preferred SIM configuration is set to SIM1 or SIM2, and message is MMS, go to step 5.
+        * 5. Check voice call preferred SIM/current SIM  == data preferred SIM
+        * 5-1. If yes, send MMS using the current preferred SIM.
+        * 5-2. If no, go to step 6.
+        * 6. Check if  user wants to cancel the operation bcoz changing the data service n/w wil disconnect the n/w curretly in use.
+        * 6-1. If yes, come back to the composer.
+        * 6-2. If no, send MMS via data preferred SIM.
+        */
+
+       bool mobile_data = false;
+       TelNetworkDefaultDataSubs_t data_subscription;
+       int err_code = TAPI_API_SUCCESS;
+
+       system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED, &mobile_data);
+
+       D_MSG("mobile_data = %d", mobile_data);
+
+       if (msg_common_is_sim_active()) {
+               D_MSG("One active SIM");
+
+               msg_ui_common_initialize_telephony(cd);
+
+               if (mobile_data == true) {
+                       err_code = tel_get_network_default_data_subscription(cd->sim_info.handle[1], &data_subscription);
+
+                       if (err_code != TAPI_API_SUCCESS) {
+                               D_MSG("tel_get_network_default_data_subscription is failed,err_code is %d", err_code);
+                       } else if (data_subscription == TAPI_NETWORK_DEFAULT_DATA_SUBS_SIM1) {
+                               datasubs = MSG_ACTIVE_DATA_SUBSCRIPTION_SIM1;
+                       }
+               }
+
+               D_MSG("active SIM is in slot");
+               sim_active = MSG_SIM_SIM1_ACTIVE;
+               active_count = 1;
+       }
+       *active_sims = active_count;
+       *active_sim = sim_active;
+       *data_subs = datasubs;
+       return sim_preference;
+}
+
+Evas_Object *msg_ui_composer_load_edj(Evas_Object *parent, const char *edj_file, const char *group)
+{
+       Evas_Object *layout;
+       layout = elm_layout_add(parent);
+
+       elm_layout_file_set(layout, edj_file, group);
+       return layout;
+}
+
+Evas_Object *msg_ui_composer_layout_create(Evas_Object *parent, bool indicator)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent object  == NULL");
+
+       Evas_Object *layout;
+
+       layout = elm_layout_add(parent);
+       if (layout == NULL) {
+               D_EMSG("[ASSERT] elm_layout_add failed!!");
+               return NULL;
+       }
+
+       if (indicator == true)
+               elm_layout_theme_set(layout, "layout", "application", "default");
+       else
+               elm_layout_theme_set(layout, "layout", "application", "noindicator");
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+       D_LEAVE;
+       return layout;
+}
+
+Evas_Object *msg_ui_composer_bg_create(Evas_Object *parent)
+{
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent object  == NULL");
+       Evas_Object *bg = elm_bg_add(parent);
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(bg);
+       return bg;
+}
+
+Evas_Object *msg_ui_composer_make_image(Evas_Object *parent, const char *image_path)
+{
+       D_MSG_RETVM_IF(image_path == NULL, NULL, "image_path is NULL");
+
+       Evas_Object *icon = elm_image_add(parent);
+       elm_image_file_set(icon, MSG_IMAGES_EDJ, image_path);
+       elm_image_aspect_fixed_set(icon, EINA_FALSE);
+       elm_image_preload_disabled_set(icon, EINA_FALSE);
+       evas_object_show(icon);
+
+       return icon;
+}
+
+int64 msg_composer_get_file_size(const char *path)
+{
+       return msg_file_size_get(path);
+}
+
+char *msg_composer_get_file_ext(const char *a_pszfile_name)
+{
+       if (a_pszfile_name != NULL) {
+               int nlen = strlen(a_pszfile_name);
+               char *psztemp = (char *)a_pszfile_name + nlen;
+
+               while (nlen--) {
+                       psztemp--;
+                       if (*psztemp == '.') {
+                               psztemp++;
+                               break;
+                       }
+               }
+               return psztemp;
+       }
+
+       return NULL;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_copy_file(MSG_COMPOSER_VIEW_DATA_S *cd, const char *src_file_path, char *dst_file_path, int size_dst_file_path)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "cd is NULL");
+       D_MSG_RETVM_IF(src_file_path == NULL, COMPOSER_RETURN_FAIL, "src_file_path is NULL");
+       D_MSG_RETVM_IF(dst_file_path == NULL, COMPOSER_RETURN_FAIL, "dst_file_path is NULL");
+
+       const char *filename = NULL;
+       char *ext = NULL;
+       int i = 0;
+       char temp_file_path[COMPOSER_FILEPATH_LEN_MAX + 1] = {0,};
+       char temp_file_name[COMPOSER_FILENAME_LEN_MAX + 1] = {0,};
+       char file_name_without_ext[COMPOSER_FILENAME_LEN_MAX + 1] = {0};
+       char counter_string[10] = {0,};
+       glong utf8_file_name_len = 0;
+       bool isSameFile = false;
+
+       if (msg_file_exists(src_file_path) == EINA_FALSE) {
+               D_EMSG("file is not existed");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       filename = msg_file_file_get(src_file_path);
+       utf8_file_name_len = g_utf8_strlen(filename, -1);
+
+       if (filename) {
+               strncpy(file_name_without_ext, filename, COMPOSER_FILENAME_LEN_MAX);
+               ext = msg_composer_get_file_ext(filename);
+
+               if (ext)
+                       file_name_without_ext[strlen(file_name_without_ext) - strlen(ext) - 1] = '\0';
+
+               /*make new filename*/
+               do {
+                       memset(temp_file_path, 0x00, sizeof(temp_file_path));
+                       memset(counter_string, 0x00, sizeof(counter_string));
+                       memset(temp_file_name, 0x00, sizeof(temp_file_name));
+
+                       snprintf(counter_string, sizeof(counter_string), "_%02d", i);
+
+                       if (COMPOSER_FILENAME_LEN_MAX < (utf8_file_name_len + strlen(counter_string)))
+                               g_utf8_strncpy(temp_file_name, filename, (COMPOSER_FILENAME_LEN_MAX - (strlen(counter_string) + 1 + strlen(ext)))); /* Here +1 is not "." before ext */
+                       else
+                               g_utf8_strncpy(temp_file_name, file_name_without_ext, COMPOSER_FILENAME_LEN_MAX);
+
+                       if (i == 0) {
+                               snprintf(temp_file_path, sizeof(temp_file_path), "%s%s", cd->working_path, filename);
+                       } else {
+                               if (ext && strlen(ext) > 0)
+                                       snprintf(temp_file_path, sizeof(temp_file_path), "%s%s%s.%s", cd->working_path, temp_file_name, counter_string, ext);
+                               else
+                                       snprintf(temp_file_path, sizeof(temp_file_path), "%s%s_%s", cd->working_path, temp_file_name, counter_string);
+                       }
+
+                       i++;
+
+                       /*Check if source and dest are the same file */
+                       /* The source file path and temp file path can be same when an attachment is created
+                        * by msging appliction. For Ex.: Incase of contacts attachment, contacts will
+                        * give only index and vcf file will be created by msging application in current working dir. */
+                       if (strcmp(src_file_path, temp_file_path) == 0) {
+                               isSameFile = true;
+                               D_EMSG("source and dest are same");
+                               break;
+                       }
+
+                       if (i > COMPOSER_MMS_MAX_MEDIA_COUNT) {
+                               D_EMSG("maximum count is reached = %d", i);
+                               return COMPOSER_RETURN_FAIL;
+                       }
+               } while (msg_file_exists(temp_file_path));
+
+               if (isSameFile != true) {
+                       if (msg_file_cp(src_file_path, temp_file_path) == EINA_FALSE) {
+                               D_SEC_MSG("temp_file_path = %s", temp_file_path);
+                               return COMPOSER_RETURN_FAIL;
+                       }
+               }
+
+               strncpy(dst_file_path, temp_file_path, size_dst_file_path);
+               D_SEC_MSG("copy file from %s to %s", src_file_path, dst_file_path);
+       } else {
+               D_EMSG("filename is NULL");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_MEDIA_TRACK_TYPE_E msg_composer_get_media_track_type(const char *a_pszfile_name)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(a_pszfile_name == NULL, COMPOSER_MEDIA_TRACK_TYPE_NONE, "file path is null");
+
+       int ret = METADATA_EXTRACTOR_ERROR_NONE;
+       metadata_extractor_h metadata = NULL;
+
+       ret = metadata_extractor_create(&metadata);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("Fail metadata_extractor_create [%d]", ret);
+               return COMPOSER_MEDIA_TRACK_TYPE_NONE;
+       }
+
+       ret = metadata_extractor_set_path(metadata, a_pszfile_name);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("Fail metadata_extractor_set_path [%d]", ret);
+               metadata_extractor_destroy(metadata);
+               return COMPOSER_MEDIA_TRACK_TYPE_NONE;
+       }
+
+       /* check video first */
+       char *video_track_cnt = NULL;
+       metadata_extractor_get_metadata(metadata, METADATA_HAS_VIDEO, &video_track_cnt);
+       if (video_track_cnt) {
+               D_MSG("video_track_cnt = [%s]", video_track_cnt);
+               if (atoi(video_track_cnt) > 0) {
+                       metadata_extractor_destroy(metadata);
+                       free(video_track_cnt);
+                       video_track_cnt = NULL;
+                       return COMPOSER_MEDIA_TRACK_TYPE_VIDEO;
+               } else {
+                       free(video_track_cnt);
+                       video_track_cnt = NULL;
+               }
+       }
+
+       /* if curren meta_info has no video track, check audio again */
+       char *audio_track_cnt = NULL;
+       metadata_extractor_get_metadata(metadata, METADATA_HAS_AUDIO, &audio_track_cnt);
+       if (audio_track_cnt) {
+               D_MSG("audio_track_cnt = [%s]", audio_track_cnt);
+               if (atoi(audio_track_cnt) > 0) {
+                       metadata_extractor_destroy(metadata);
+                       free(audio_track_cnt);
+                       audio_track_cnt = NULL;
+                       return COMPOSER_MEDIA_TRACK_TYPE_AUDIO;
+               } else {
+                       free(audio_track_cnt);
+                       audio_track_cnt = NULL;
+               }
+       }
+
+       metadata_extractor_destroy(metadata);
+
+       return COMPOSER_MEDIA_TRACK_TYPE_NONE;
+}
+
+COMPOSER_MEDIA_TYPE_E msg_composer_get_media_type(const char *a_pszfile_path)
+{
+       char *pext = NULL;
+       unsigned int nmimeidx = 0;
+       unsigned int nmime_max = 0;
+       COMPOSER_MEDIA_TRACK_TYPE_E track_type = COMPOSER_MEDIA_TRACK_TYPE_NONE;
+
+       if (a_pszfile_path == NULL)
+               return COMPOSER_MEDIA_TYPE_UNKNOWN;
+
+       pext = msg_composer_get_file_ext(a_pszfile_path);
+       nmime_max = (sizeof(composer_mime_table) / sizeof(composer_mime_type_t));
+
+       for (; nmimeidx < nmime_max; nmimeidx++) {
+               int nlen = strlen(composer_mime_table[nmimeidx].m_szextend);
+
+               if (strncasecmp(composer_mime_table[nmimeidx].m_szextend, pext, nlen) == 0) {
+                       if ((composer_mime_table[nmimeidx].m_ncontent_type == COMPOSER_MEDIA_TYPE_AUDIO) ||
+                               (composer_mime_table[nmimeidx].m_ncontent_type == COMPOSER_MEDIA_TYPE_VIDEO)) {
+                               track_type = msg_composer_get_media_track_type(a_pszfile_path);
+
+                               if (track_type == COMPOSER_MEDIA_TRACK_TYPE_VIDEO) {
+                                       if (strstr(composer_mime_table[nmimeidx].m_szmime_type, "video") != NULL)
+                                               return composer_mime_table[nmimeidx].m_ncontent_type;
+                               } else if (track_type == COMPOSER_MEDIA_TRACK_TYPE_AUDIO) {
+                                       if (strstr(composer_mime_table[nmimeidx].m_szmime_type, "audio") != NULL)
+                                               return composer_mime_table[nmimeidx].m_ncontent_type;
+                               } else {
+                                       return composer_mime_table[nmimeidx].m_ncontent_type;
+                               }
+                       } else {
+                               return composer_mime_table[nmimeidx].m_ncontent_type;
+                       }
+               }
+       }
+
+       return COMPOSER_MEDIA_TYPE_UNKNOWN;
+}
+
+COMPOSER_RETURN_TYPE_E msg_composer_common_get_media_duration(const char *file_path, int *duration)
+{
+       D_ENTER;
+       metadata_extractor_h metadata_h = NULL;
+       int ret = METADATA_EXTRACTOR_ERROR_NONE;
+       char *value = NULL;
+
+       if (!file_path || !duration) {
+               D_EMSG("file_path or duration is not exist");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       ret = metadata_extractor_create(&metadata_h);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_create is failed ret = %d", ret);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       ret = metadata_extractor_set_path(metadata_h, file_path);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_set_path is failed ret = %d", ret);
+               metadata_extractor_destroy(metadata_h);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       ret = metadata_extractor_get_metadata(metadata_h, METADATA_DURATION, &value);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_get_metadata is failed ret = %d", ret);
+               metadata_extractor_destroy(metadata_h);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (value) {
+               *duration = atoi(value);
+               free(value);
+       }
+
+       D_SEC_MSG("file : %s, duration : %d", file_path, *duration);
+
+       metadata_extractor_destroy(metadata_h);
+
+       D_LEAVE;
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_composer_common_get_thumbnail(MSG_COMPOSER_VIEW_DATA_S *cd, const char *src_file_path, char *thumb_file_path, int size_thumb_file_path)
+{
+       D_ENTER;
+       COMPOSER_MEDIA_TYPE_E media_type;
+       int ret;
+       char temp_img_file[COMPOSER_FILEPATH_LEN_MAX] = {0,};
+       char *filename_without_ext = NULL;
+       const char *filename = NULL;
+
+       if (!src_file_path || !thumb_file_path) {
+               D_EMSG("file path or thumbnail path is NULL");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       if (!msg_file_exists(src_file_path)) {
+               D_EMSG("file path is not exist");
+               return COMPOSER_RETURN_NULL_POINTER;
+       }
+
+       media_type = msg_composer_get_media_type(src_file_path);
+       if (media_type == COMPOSER_MEDIA_TYPE_VIDEO) {
+
+               filename = msg_file_file_get(src_file_path);
+               if (filename) {
+                       filename_without_ext = msg_file_strip_ext(filename);
+
+                       if (filename_without_ext) {
+                               snprintf(temp_img_file, sizeof(temp_img_file), "%s/thumbnail_%s.jpg", cd->working_path, filename_without_ext);
+                               g_free(filename_without_ext);
+                       } else {
+                               return COMPOSER_RETURN_FAIL;
+                       }
+
+               } else {
+                       return COMPOSER_RETURN_FAIL;
+               }
+
+               /* get image of video*/
+               ret = msg_composer_common_get_image_in_video(src_file_path, temp_img_file);
+               if (ret == COMPOSER_RETURN_SUCCESS) {
+                       strncpy(thumb_file_path, temp_img_file, size_thumb_file_path);
+               }
+       } else {
+               D_EMSG("media type is not video type media_type = %d !!", media_type);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+static void __msg_ui_composer_change_to_sms(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "composer data is NULL");
+
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+
+       /* reset region info */
+       body_data->region_order = COMPOSER_REGION_ORDER_IMAGE_TOP;
+
+       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(cd->body_data.page_list, 0);
+
+       int len = 0;
+       if (cd->encode_mode == MSG_ENCODE_GSM7BIT) {
+               len = strlen("type=gsm_alphabet&action=enable_emoticons");
+               elm_entry_input_panel_imdata_set(page_data->entry, "type=gsm_alphabet&action=enable_emoticons", len);
+       } else {
+               len = strlen("action=enable_emoticons");
+               elm_entry_input_panel_imdata_set(page_data->entry, "action=enable_emoticons", len);
+       }
+
+       char *body_text = elm_entry_markup_to_utf8(elm_entry_entry_get(page_data->entry));
+       if (body_text) {
+               msg_ui_composer_body_info_area_update(cd);
+               free(body_text);
+       }
+
+       int preferred_subscription = MSG_SIM_PREFERENCE_SIM_COUNT_LESS_THAN_TWO;
+       preferred_subscription = cd->voice_preferred_sim;
+
+       Evas_Object *content = NULL;
+
+       content = elm_object_part_content_unset(cd->send_button, "button_sim");
+       if (NULL != content)
+               evas_object_del(content);
+
+       if (cd->active_sims != 2) {
+               elm_object_part_content_set(cd->send_button, "button_sim", NULL);
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_composer_change_to_mms(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "composer data is NULL");
+
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+
+       int i = 0;
+       int page_count = cd->body_data.page_count;
+
+       for (i = 0; i < page_count; i++) {
+               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(cd->body_data.page_list, i);
+               if (page_data != NULL && page_data->entry) {
+                       int len = strlen("type=mms&action=enable_emoticons");
+                       elm_entry_input_panel_imdata_set(page_data->entry, "type=mms&action=enable_emoticons", len);
+               }
+       }
+
+       msg_ui_composer_body_info_area_update(cd);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_clear(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       cd->resetting_msg = true;
+       /*Clear recipient */
+       if (cd->recipient)
+               msg_ui_composer_recipient_clear(cd->recipient);
+
+       /*Clear Body*/
+       if (cd->isSubject)
+               msg_ui_composer_subject_clear(cd);
+
+       if (cd->attach_data.attachment_Cnt > 0) {
+               msg_ui_composer_attachment_clear(cd);
+       }
+
+       msg_ui_composer_body_clear(cd);
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER && cd->msg_type != COMPOSER_MSG_TYPE_MMS)
+               __msg_ui_composer_change_to_sms(cd);
+
+       cd->resetting_msg = false;
+
+       D_LEAVE;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_change_message_type(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_MSG_TYPE_E msg_type)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "composer data is NULL");
+
+       if (cd->msg_type == msg_type) {
+               D_MSG("it doesn't need to change message type");
+               return COMPOSER_RETURN_SUCCESS;
+       }
+
+       switch (msg_type) {
+       case COMPOSER_MSG_TYPE_SMS:
+               if (cd->resetting_msg == false)
+                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_CHANGED_SMS);
+
+               cd->msg_type = COMPOSER_MSG_TYPE_SMS;
+               __msg_ui_composer_change_to_sms(cd);
+               break;
+       case COMPOSER_MSG_TYPE_MMS:
+               if ((cd->loading_draft == false) && (cd->resetting_msg == false))
+                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_CHANGED_MMS);
+
+               cd->msg_type = COMPOSER_MSG_TYPE_MMS;
+               __msg_ui_composer_change_to_mms(cd);
+
+               break;
+       default:
+               D_WMSG("invalid message type");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_MSG_TYPE_E msg_ui_composer_check_message_type(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_MSG_TYPE_INVALID, "composer data is NULL");
+
+#ifdef _MSG_FEATURE_MMS_DISABLE
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(cd->body_data.page_list, 0);
+
+       if (page_data)
+               msg_ui_composer_update_char_count(cd, page_data->entry);
+#else
+       if ((cd->isSubject) && (!elm_entry_is_empty(cd->sub_data.entry)))
+               return COMPOSER_MSG_TYPE_MMS;
+
+       if (cd->attach_data.attachment_Cnt > 0)
+               return COMPOSER_MSG_TYPE_MMS;
+
+       if (msg_ui_composer_recipient_is_mms(cd) == true)
+               return COMPOSER_MSG_TYPE_MMS;
+
+       if (msg_ui_composer_body_is_mms(cd) == EINA_TRUE)
+               return COMPOSER_MSG_TYPE_MMS;
+#endif
+
+       return COMPOSER_MSG_TYPE_SMS;
+}
+
+void msg_ui_composer_message_type_check_and_change(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+
+       if (cd->isclosed) {
+               D_MSG("return closing case");
+               return;
+       }
+
+       COMPOSER_MSG_TYPE_E checked_type = msg_ui_composer_check_message_type(cd);
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_SMS && checked_type == COMPOSER_MSG_TYPE_MMS) {
+               D_MSG("### Message Type Change from [SMS] to [MMS] ###");
+               msg_ui_composer_change_message_type(cd, COMPOSER_MSG_TYPE_MMS);
+
+               cd->recipient_max_count = cd->mms_recipient_max_count;
+               cd->bMax_recipient_popup_show = false;
+       } else if (cd->msg_type == COMPOSER_MSG_TYPE_MMS && checked_type == COMPOSER_MSG_TYPE_SMS) {
+               D_MSG("### Message Type Change from [MMS] to [SMS] ###");
+               msg_ui_composer_change_message_type(cd, COMPOSER_MSG_TYPE_SMS);
+
+               cd->recipient_max_count = cd->sms_recipient_max_count;
+               cd->bMax_recipient_popup_show = false;
+       } else {
+               D_MSG("Same type Now msg type[%d], checked msg type[%d](0: INVAILD, 1: SMS, 2: MMS)", cd->msg_type, checked_type);
+       }
+
+       int recipient_cnt = msg_ui_composer_common_recipient_count_get(cd);
+       if (cd->bMax_recipient_popup_show == false && recipient_cnt > cd->recipient_max_count) {
+               cd->bMax_recipient_popup_show = true;
+               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_get_max_recipient_count(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       if (preference_get_int(KEY_MSG_APP_SMS_RECIPIENT_COUNT_LIMIT, &cd->sms_recipient_max_count) < 0) {
+               D_EMSG("preference_get_int(SMS_RECIPIENT_COUNT_LIMIT) is failed !! Should use default value!");
+               cd->sms_recipient_max_count = MSG_APP_SMS_RECIPIENT_COUNT_LIMIT_DEFAULT_BY_CONCEPT;
+       }
+
+       if (preference_get_int(KEY_MSG_APP_MMS_RECIPIENT_COUNT_LIMIT, &cd->mms_recipient_max_count) < 0) {
+               D_EMSG("preference_get_int(MMS_RECIPIENT_COUNT_LIMIT) is failed !! Should use default value!");
+               cd->mms_recipient_max_count = MSG_APP_MMS_RECIPIENT_COUNT_LIMIT_DEFAULT_BY_CONCEPT;
+       }
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_SMS) {
+               cd->recipient_max_count = cd->sms_recipient_max_count;
+       } else {
+               cd->recipient_max_count = cd->mms_recipient_max_count;
+       }
+}
+
+bool msg_composer_common_check_msg_id(MSG_COMPOSER_VIEW_DATA_S *cd, int msg_id)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, false, "cd is NULL");
+
+       msg_struct_t load_msg = NULL;
+       msg_struct_t sendOpt = NULL;
+
+       /* create new message */
+       load_msg = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       if (load_msg == NULL) {
+               D_EMSG("message create message failed.");
+               return false;
+       }
+       sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+       if (sendOpt == NULL) {
+               D_EMSG("message create sendopt failed.");
+               msg_release_struct(&load_msg);
+               return false;
+       }
+
+       /* load message */
+       if (msg_get_message(cd->msg_handle, (msg_message_id_t)msg_id, load_msg, sendOpt) != MSG_SUCCESS) {
+               D_IMSG("msg_get_message(%d) failed", msg_id);
+               msg_release_struct(&load_msg);
+               msg_release_struct(&sendOpt);
+               return false;
+       }
+
+       msg_release_struct(&load_msg);
+       msg_release_struct(&sendOpt);
+
+       return true;
+}
+
+/* change entry focus allow of all entries in composer.
+It can avoid to move focus to entry automatically by focus recovery of widget, when some other widget which has focus is destroyed
+*/
+void msg_ui_composer_set_entry_focusable(void *data, Eina_Bool value)
+{
+       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_BUBBLE_COMPOSER) {
+               if (cd->recipient && cd->recipient->entry)
+                       elm_object_focus_allow_set(cd->recipient->entry, value);
+       }
+
+       if (cd->isSubject) {
+               if (cd->sub_data.entry)
+                       elm_object_focus_allow_set(cd->sub_data.entry, value);
+       }
+
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       Eina_List *page_list = body_data->page_list;
+
+       if (page_list) {
+               Eina_List *iter = NULL;
+               MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+
+               EINA_LIST_FOREACH(page_list, iter, page_data) {
+                       if (page_data && page_data->entry) {
+                               elm_object_focus_allow_set(page_data->entry, value);
+                       }
+               }
+       }
+}
+
+void msg_ui_composer_load_last_focused_entry(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");
+
+       if (!msg_ui_composer_popup_exist(data) && !cd->loaded_ug && !cd->loaded_aul && !cd->popup_end) {
+               if (!cd->isclosed && !cd->wait_giving_focus)
+                       msg_ui_composer_last_focus_load(cd);
+       }
+
+       D_LEAVE;
+}
+
+Eina_Bool msg_ui_composer_last_focus_load(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETVM_IF(cd == NULL, EINA_FALSE, "composer data is NULL");
+
+       if (cd->loading_draft) {
+               D_MSG("cd->loading_draft [%d]", cd->loading_draft);
+               return EINA_FALSE;
+       }
+
+       if (cd->last_focus_entry == NULL) {
+               D_MSG("NO ENTRY FOCUS");
+               return EINA_FALSE;
+       }
+       if (cd->is_replace == true) { /* this is used to prevent that when after replace attach is clicked the normal attach cpde flow is followed*/
+               cd->is_replace = false;
+       }
+
+       D_MSG("### last_focus_entry = %p", cd->last_focus_entry);
+       elm_object_focus_set(cd->last_focus_entry, EINA_TRUE);
+
+       D_LEAVE;
+       return EINA_FALSE;
+}
+
+void msg_ui_composer_last_focused_entry_set(void *data, Evas_Object *entry)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG("### set cd->last_focus_entry = %p", entry);
+
+       cd->last_focus_entry = entry;
+}
+
+Evas_Object *msg_ui_composer_last_focused_entry_get(void *data)
+{
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG("### get cd->last_focus_entry = %p", cd->last_focus_entry);
+
+       return cd->last_focus_entry;
+}
+
+Eina_Bool msg_ui_composer_last_body_page_focus_load(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       MSG_COMPOSER_BODY_PAGE_S *last_page_data = eina_list_nth(cd->body_data.page_list, cd->body_data.page_count-1);
+
+       if (last_page_data && last_page_data->entry) {
+               if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+                       elm_object_focus_set(last_page_data->entry, EINA_TRUE);
+                       D_MSG("### Last body page entry focused = %p", last_page_data->entry);
+                       msg_ui_composer_last_focused_entry_set(cd, last_page_data->entry);
+               }
+       } else {
+               D_MSG("Failed to get last body page entry");
+               return EINA_FALSE;
+       }
+
+       D_LEAVE;
+       return EINA_TRUE;
+}
+
+Evas_Object *msg_ui_composer_last_body_entry_get(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = eina_list_nth(cd->body_data.page_list, cd->current_edit_entry);
+
+       if (page_data && page_data->entry) {
+               D_MSG("### page_data->entry : %p", page_data->entry);
+               return page_data->entry;
+       } else {
+               D_MSG("No Entry Saved");
+               return NULL;
+       }
+
+       D_LEAVE;
+       return NULL;
+}
+
+void msg_ui_composer_set_body_keypad_layout(void *data, int mode)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+
+       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(cd->body_data.page_list, 0);
+
+       if (page_data && page_data->entry)
+               elm_entry_input_panel_layout_set(page_data->entry, mode);
+       else
+               D_EMSG("entry is not found");
+
+       D_LEAVE;
+}
+
+bool msg_ui_composer_last_focus_is_recipient(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, false, "data is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *recipient = cd->recipient;
+       Evas_Object *last_focus = msg_ui_composer_last_focused_entry_get(cd);
+
+       if (last_focus && recipient) {
+               D_MSG("### last_focus == recipient->entry, [%p == %p]", last_focus, recipient->entry);
+               if (last_focus == recipient->entry) {
+                       return true;
+               }
+       }
+
+       D_LEAVE;
+       return false;
+}
+
+bool msg_ui_composer_last_focus_is_subject(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, false, "data is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *sub_entry = cd->sub_data.entry;
+       Evas_Object *last_focused_entry = msg_ui_composer_last_focused_entry_get(cd);
+
+       if (sub_entry && (sub_entry == last_focused_entry))
+               return true;
+
+       return false;
+}
+
+bool msg_ui_composer_last_focus_is_body(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, false, "data is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *body_entry = msg_ui_composer_last_body_entry_get(cd);
+       Evas_Object *last_focused_entry = msg_ui_composer_last_focused_entry_get(cd);
+
+       D_MSG("### body_entry == last_focused_entry, [%p == %p]", body_entry, last_focused_entry);
+
+       if (body_entry && (body_entry == last_focused_entry))
+               return true;
+
+       return false;
+}
+
+/* it returns focusible btn of current view */
+Evas_Object *msg_ui_composer_get_focusible_widget(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "data is NULL");
+
+       return cd->send_button;
+}
+
+void bundle_send_to_result(void *data, char *key, char *val)
+{
+       D_ENTER;
+       D_MSG("key = %s, val = %s", key, val);
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       app_control_h svc_handle;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               app_control_add_extra_data(svc_handle, key, val);
+               ug_send_result(cd->ug, svc_handle);
+               app_control_destroy(svc_handle);
+       }
+       D_LEAVE;
+}
+
+bool msg_ui_composer_common_is_signature_enabled(MSG_COMPOSER_VIEW_DATA_S *cd, bool check_for_back_key)
+{
+       D_MSG_RETVM_IF(cd == NULL, false, "composer is NULL");
+
+       if ((true == cd->is_signature_enabled) && (NULL != cd->signature_string)) {
+               /* When signature is enabled and returning back to tread view then irrespective
+                * of composer mode, we need to compare the contents of the body
+                * with signature string. If it contains only signature, then we neglect that page
+                * and proceed to next page or exit without saving the msg */
+               if (true == check_for_back_key)
+                       return true;
+
+               if (cd->composer_mode == MSG_COMPOSER_MODE_NORMAL)
+                       return true;
+       }
+
+       return false;
+}
+
+bool msgc_ui_composer_signature_is_not_edited(void *data, Evas_Object *entry)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, false, "data is NULL");
+       D_MSG_RETVM_IF(entry == NULL, false, "entry is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       bool signature_enabled = msg_ui_composer_common_is_signature_enabled(cd, false);
+       bool ret = false;
+       char *body_text = NULL;
+
+       /* To check signature text edited or Not */
+       if (true == signature_enabled) {
+               const char *entry_text = elm_entry_entry_get(entry);
+
+               if (entry_text) {
+                       glong signature_len = 0;
+                       glong body_len = 0;
+
+                       body_text = elm_entry_markup_to_utf8(entry_text);
+                       if (body_text == NULL) {
+                               D_EMSG("could not able to get the utf8 string");
+                               goto end;
+                       }
+
+                       signature_len = strlen(cd->signature_string);
+                       body_len = strlen(body_text);
+
+                       /*D_MSG("body_text = %s", body_text);
+                        *D_MSG("cd->signature_string = %s", cd->signature_string);
+                        *D_MSG("body_len = %d, signature_len = %d", body_len, signature_len); */
+
+                       if ((body_len > 0) && (body_len == signature_len)) {
+                               if (0 == g_strcmp0(body_text, cd->signature_string)) {
+                                       D_MSG("Signature is proper. Any text is not added except signature");
+                                       ret = true;
+                               } else {
+                                       D_MSG("Signature is edited");
+                               }
+                       }
+               } else {
+                       D_MSG("Empty string");
+               }
+       }
+
+end:
+       if (body_text)
+               g_free(body_text);
+
+       return ret;
+}
+
+bool msg_ui_composer_common_is_send_possible(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, false, "composer is NULL");
+
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_MMS) {
+               if (cd->isSubject) {
+                       char *subject = elm_entry_markup_to_utf8(elm_entry_entry_get(cd->sub_data.entry));
+                       if (subject && strlen(subject) > 0) {
+                               g_free(subject);
+                               return true;
+                       } else {
+                               g_free(subject);
+                       }
+               }
+
+               if (cd->attach_data.attachment_Cnt > 0) {
+                       return true;
+               }
+
+               if (cd->body_data.page_count > 1)
+                       return true;
+
+               int i = 0;
+               for (i = 0; i < cd->body_data.page_count; i++) {
+                       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(body_data->page_list, i);
+
+                       if (page_data->is_image_item)
+                               return true;
+
+                       if (page_data->is_sound_item)
+                               return true;
+
+                       char *body_text = elm_entry_markup_to_utf8(elm_entry_entry_get(page_data->entry));
+                       if (body_text) {
+                               if ((body_text[0] != '\0')) {
+                                       if ((0 == i) && (true == msg_ui_composer_common_is_signature_enabled(cd, true))) {
+                                               if (g_strcmp0(body_text, cd->signature_string) != 0) {
+                                                       g_free(body_text);
+                                                       return true;
+                                               } else {
+                                                       g_free(body_text);
+                                               }
+
+                                               continue;
+                                       }
+
+                                       g_free(body_text);
+                                       return true;
+                               }
+                               g_free(body_text);
+                       }
+               }
+       } else if (cd->msg_type == COMPOSER_MSG_TYPE_SMS) {
+               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(body_data->page_list, 0);
+               if (page_data) {
+                       char *body_text = elm_entry_markup_to_utf8(elm_entry_entry_get(page_data->entry));
+                       if (body_text) {
+                               if ((body_text[0] != '\0')) {
+                                       /* Check whether entered string is only signature and check for is signature enabled */
+                                       if (true == msg_ui_composer_common_is_signature_enabled(cd, true)) {
+                                               if (g_strcmp0(body_text, cd->signature_string) != 0) {
+                                                       g_free(body_text);
+                                                       return true;
+                                               }
+                                       } else {
+                                               g_free(body_text);
+                                               return true;
+                                       }
+                               }
+                               g_free(body_text);
+                       }
+               }
+       } else {
+               D_WMSG("invalid message type");
+               return false;
+       }
+
+       return false;
+}
+
+COMPOSER_RETURN_TYPE_E msg_composer_common_get_image_in_video(const char *video_file_path, char *image_file_path)
+{
+       D_ENTER;
+
+       COMPOSER_MEDIA_TYPE_E media_type;
+       metadata_extractor_h metadata_h = NULL;
+       int ret = METADATA_EXTRACTOR_ERROR_NONE;
+       int video_w = 0;
+       int video_h = 0;
+       int thumbsize = 0;
+       void *thumbnail = NULL;
+       char *value = NULL;
+
+       media_type = msg_composer_get_media_type(video_file_path);
+       if (media_type != COMPOSER_MEDIA_TYPE_VIDEO) {
+               D_SEC_EMSG("It is not video file %s", video_file_path);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       ret = metadata_extractor_create(&metadata_h);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_create is failed ret = %d", ret);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       ret = metadata_extractor_set_path(metadata_h, video_file_path);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_set_path is failed ret = %d", ret);
+               metadata_extractor_destroy(metadata_h);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       ret = metadata_extractor_get_metadata(metadata_h, METADATA_VIDEO_WIDTH, &value);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_get_metadata is failed ret = %d", ret);
+               metadata_extractor_destroy(metadata_h);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (value) {
+               video_w = atoi(value);
+               free(value);
+               value = NULL;
+       }
+
+       ret = metadata_extractor_get_metadata(metadata_h, METADATA_VIDEO_HEIGHT, &value);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_get_metadata is failed ret = %d", ret);
+               metadata_extractor_destroy(metadata_h);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (value) {
+               video_h = atoi(value);
+               free(value);
+               value = NULL;
+       }
+
+       ret = metadata_extractor_get_frame(metadata_h, &thumbnail, &thumbsize);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_get_frame is failed ret = %d", ret);
+               metadata_extractor_destroy(metadata_h);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (thumbnail) {
+               ret = image_util_encode_jpeg((unsigned char *)thumbnail, video_w, video_h, IMAGE_UTIL_COLORSPACE_RGB888, 90, image_file_path);
+               if (ret != IMAGE_UTIL_ERROR_NONE) {
+                       D_EMSG("image_util_encode_jpeg is failed ret = %d", ret);
+                       goto err_return;
+               }
+
+               free(thumbnail);
+       }
+
+       metadata_extractor_destroy(metadata_h);
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+
+err_return:
+       if (thumbnail)
+               free(thumbnail);
+
+       if (metadata_h)
+               metadata_extractor_destroy(metadata_h);
+
+       return COMPOSER_RETURN_FAIL;
+}
+
+void msg_composer_entry_filter_check_boundary(void *data, Evas_Object *entry, char **text)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(entry == NULL, "entry is NULL");
+       D_MSG_RETM_IF((!text || !(*text)), "Parameter text is invalid");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       char *utf8_str = NULL;
+
+       if (cd->disable_conversion_to_mms && cd->msg_type == COMPOSER_MSG_TYPE_SMS) {
+               char *pre_str = NULL;
+               gchar *full_str = NULL;
+
+               utf8_str  = elm_entry_markup_to_utf8(*text);
+               if (utf8_str) {
+                       /* get previous entered str */
+                       pre_str = elm_entry_markup_to_utf8(elm_entry_entry_get(entry));
+
+                       /* make full str */
+                       if (pre_str)
+                               full_str = g_strconcat(pre_str, utf8_str, NULL);
+                       else
+                               full_str = g_strdup(utf8_str);
+
+                       D_SEC_MSG("text = (%s)", *text);
+
+                       if (full_str) {
+                               D_SEC_MSG("full_str (%s)", full_str);
+                               int over_char_cnt = 0;
+
+                               if (msg_ui_composer_is_sms_text(cd, (char *)full_str, &over_char_cnt) == COMPOSER_TEXT_CROSSED_SMSLIMIT) {
+                                       D_MSG("sms limit is reached over_char_cnt(%d)", over_char_cnt);
+                                       char *preedit_tag_start = NULL;
+                                       char *preedit_tag_end = NULL;
+                                       bool is_preedit_str = false;
+
+                                       /* Check preeditting text and return if it exist*/
+                                       preedit_tag_start = strstr(*text, "<preedit");
+                                       preedit_tag_end = strstr(*text, "</preedit");
+
+                                       if (preedit_tag_start && preedit_tag_end)
+                                               is_preedit_str = true;
+
+                                       /* check valid char cnt */
+                                       glong prev_char_cnt = 0;
+                                       glong new_char_cnt = g_utf8_strlen(utf8_str, -1);
+                                       glong full_char_cnt = g_utf8_strlen(full_str, -1);
+                                       int valid_char_cnt = 0;
+
+                                       if (pre_str)
+                                               prev_char_cnt = g_utf8_strlen(pre_str, -1);
+
+                                       if (over_char_cnt) {
+                                               if (new_char_cnt > 1) {
+                                                       /* In case of preeedit inserting characters, it can be changed as unicode character at random position like japan keypad.
+                                                               So, check string from the 1st character among inserted one. */
+                                                       int tmp_full_str_len = (strlen(full_str) + 1);
+                                                       int char_cnt = prev_char_cnt;
+                                                       bool add_all_str = false;
+                                                       char *tmp_full_str = (char *)calloc(tmp_full_str_len, sizeof(char));
+
+                                                       if (!tmp_full_str) {
+                                                               D_EMSG("calloc is failed");
+                                                               valid_char_cnt = new_char_cnt;
+                                                       } else {
+                                                               do {
+                                                                       ++char_cnt;
+                                                                       if (char_cnt > full_char_cnt) {
+                                                                               D_EMSG("whole string can be inserted");
+                                                                               add_all_str = true;
+                                                                               break;
+                                                                       }
+
+                                                                       memset(tmp_full_str, 0, tmp_full_str_len);
+                                                                       g_utf8_strncpy(tmp_full_str, full_str, char_cnt);
+                                                               } while (msg_ui_composer_is_sms_text(cd, (char *)tmp_full_str, &over_char_cnt) == COMPOSER_TEXT_IS_SMS);
+
+                                                               D_MSG("result char_cnt = %d", char_cnt);
+
+                                                               if (add_all_str) {
+                                                                       /* It should not enter this case. Becuase full_str is already overed max limit. So, remove all inserted string in this case*/
+                                                                       D_EMSG("Invalid case");
+                                                                       valid_char_cnt = 0;
+                                                               } else {
+                                                                       /* valid char cnt = invalid char cnt - prev char cnt - last 1 char */
+                                                                       valid_char_cnt = char_cnt - prev_char_cnt - 1; /* -1 :  delete last 1 character */
+                                                               }
+
+                                                               free(tmp_full_str);
+                                                       }
+
+                                               } else {
+                                                       valid_char_cnt = 0;
+                                               }
+                                       }
+
+                                       D_MSG("prev_char_cnt = %d", prev_char_cnt);
+                                       D_MSG("new_char_cnt = %d", new_char_cnt);
+                                       D_MSG("full_char_cnt = %d", full_char_cnt);
+                                       D_MSG("valid_char_cnt = %d", valid_char_cnt);
+
+                                       if (is_preedit_str) {
+                                               D_MSG("preedit mode return");
+                                               cd->is_maximum_char = true;
+
+                                               /* assemble new string buffer */
+                                               if (valid_char_cnt) {
+                                                       char *new_text = *text;
+                                                       int current_len = strlen(*text);
+
+                                                       while (*new_text) {
+                                                               int idx = 0;
+                                                               glong char_cnt = 0;
+
+                                                               if (*new_text == '<') {
+                                                                       while (*(new_text + idx) != '>') {
+                                                                               idx++;
+                                                                               if (!*(new_text + idx)) {
+                                                                                       D_WMSG("there is no > tag for <");
+                                                                                       break;
+                                                                               }
+                                                                       }
+                                                               } else if (*new_text == '&') {
+                                                                       while (*(new_text + idx) != ';') {
+                                                                               idx++;
+                                                                               if (!*(new_text + idx)) {
+                                                                                       D_WMSG("there is no ; tag for &");
+                                                                                       break;
+                                                                               }
+                                                                       }
+                                                               }
+
+                                                               if (idx > 0) { /* tag case (<> or &;) */
+                                                                       char *markup = NULL;
+                                                                       char *utfstr = NULL;
+
+                                                                       markup = (char *)calloc(idx + 1, sizeof(char));
+                                                                       if (markup) {
+                                                                               strncpy(markup, new_text, idx);
+                                                                               markup[idx] = 0;
+                                                                               utfstr = elm_entry_markup_to_utf8(markup);
+                                                                               if (utfstr) { /* '&' or <br> or etc case */
+                                                                                       char_cnt = g_utf8_strlen(utfstr, -1);
+                                                                                       free(utfstr);
+                                                                                       utfstr = NULL;
+                                                                               }
+                                                                               free(markup);
+                                                                               markup = NULL;
+                                                                       } else {
+                                                                               D_EMSG("calloc is failed");
+                                                                       }
+
+                                                                       idx++;
+                                                               } else { /* normal text case */
+                                                                       /* check buffer by 1 char(not 1 byte) */
+                                                                       char *char_pos = g_utf8_offset_to_pointer(new_text, 1);
+                                                                       idx = char_pos - new_text;
+                                                                       char_cnt = 1;
+                                                               }
+
+                                                               if (valid_char_cnt >= char_cnt) {
+                                                                       new_text += idx;
+                                                                       valid_char_cnt -= char_cnt;
+                                                               } else {
+                                                                       strncpy(new_text, new_text + idx, current_len - ((new_text + idx) - *text));
+
+                                                                       current_len -= idx;
+                                                                       (*text)[current_len] = 0;
+                                                                       valid_char_cnt = 0;
+                                                               }
+                                                       }
+
+                                                       D_SEC_MSG("changed_str(%s)", *text);
+                                               } else {
+                                                       free(*text);
+                                                       *text = NULL;
+                                               }
+
+                                               if (pre_str) {
+                                                       free(pre_str);
+                                                       pre_str = NULL;
+                                               }
+                                               free(utf8_str);
+                                               free(full_str);
+
+                                               return;
+                                       } else {
+                                               /* assemble new string buffer */
+                                               if (valid_char_cnt) {
+                                                       char *changed_str = (char *)calloc((strlen(utf8_str) + 1), sizeof(char));
+                                                       if (changed_str) {
+                                                               g_utf8_strncpy(changed_str, utf8_str, valid_char_cnt);
+                                                               D_SEC_MSG("changed_str(%s)", changed_str);
+
+                                                               char *markup_str = elm_entry_utf8_to_markup(changed_str);
+                                                               if (markup_str) {
+                                                                       free(*text);
+                                                                       *text = markup_str;
+                                                               } else {
+                                                                       D_EMSG("markup_str is NULL");
+                                                               }
+
+                                                               free(changed_str);
+
+                                                       } else {
+                                                               D_EMSG("calloc is failed (%s)", strerror(errno));
+                                                       }
+                                               } else {
+                                                       free(*text);
+                                                       *text = NULL;
+                                               }
+                                       }
+
+                                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_MAXLENGHT_CHAR);
+                               }
+
+                               free(full_str);
+                       } else {
+                               D_EMSG("full_str is NULL");
+                       }
+
+                       if (pre_str)
+                               free(pre_str);
+
+                       free(utf8_str);
+               }
+       } else {
+               if (cd->msg_type == COMPOSER_MSG_TYPE_MMS) {
+                       /* convert from markup text to utf8 text from entry */
+                       utf8_str = elm_entry_markup_to_utf8(*text);
+                       if (utf8_str) {
+                               int len = strlen(utf8_str);
+                               if (cd->mms_remained_size < len) {
+                                       D_MSG("mms limit is reached");
+                                       free(*text);
+                                       *text = NULL;
+                                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_MAXLENGHT_CHAR);
+                               }
+
+                               free(utf8_str);
+                       }
+               }
+       }
+
+       D_LEAVE;
+}
+
+static char *__get_item_tag(char *text)
+{
+       char *fulltext = NULL;
+       char *tagStart = NULL;
+       char *tagEnd = NULL;
+       int tagStrLength = 0;
+
+       if (text == NULL)
+               return NULL;
+
+       fulltext = text;
+       D_SEC_MSG("text(%p)[%d] = %s", text, strlen(text), text);
+
+       tagStart = strstr(fulltext, "<item");
+       if (tagStart) {
+               tagEnd = strchr(tagStart, '>');
+               if (tagEnd) {
+                       tagStrLength = tagEnd - tagStart + 1;
+                       return strndup(tagStart, tagStrLength);
+               }
+       }
+
+       return NULL;
+}
+
+static char *__remove_item_tag(char *text)
+{
+       char *fulltext = NULL;
+       char *tagStart = NULL;
+       char *tagEnd = NULL;
+       char *braceStart = NULL;
+       char *braceEnd = NULL;
+       char *postStr = NULL;
+
+       int strLength = 0;
+       int postStrLength = 0;
+       bool isitemTag = false;
+
+       if (text == NULL)
+               return NULL;
+
+       char *textBuf = strdup(text);
+
+       if (!textBuf) {
+               D_EMSG("strdup is failed");
+               return NULL;
+       }
+
+       fulltext = textBuf;
+       strLength = strlen(textBuf);
+       D_SEC_MSG("text length = %d, text = [%s]", strLength, textBuf);
+
+       while ((tagStart = strstr(fulltext, "<item"))) {
+               braceEnd = strchr(tagStart, '>');
+               if (braceEnd) {
+                       braceStart = strstr(braceEnd, "</item>");
+                       if (braceStart) {
+                               tagEnd = (braceStart + strlen("</item>") - 1);
+                       } else {
+                               D_EMSG("There is no close item tag");
+                               tagEnd = braceEnd;
+                       }
+               } else {
+                       D_EMSG("There is no close tag");
+                       g_free(textBuf);
+                       return NULL;
+               }
+
+               postStrLength = strLength - (tagEnd - fulltext + 1);
+               postStr = strndup(tagEnd + 1, postStrLength);
+               if (!postStr) {
+                       D_EMSG("strndup is failed");
+                       g_free(textBuf);
+                       return NULL;
+               }
+
+               strncpy(tagStart, postStr, postStrLength);
+               *(tagStart + postStrLength) = '\0';
+               D_SEC_MSG("after textBuf = [%s]", textBuf);
+
+               g_free(postStr);
+               postStr = NULL;
+
+               isitemTag = true;
+       }
+
+       if (isitemTag)
+               return textBuf;
+
+       g_free(textBuf);
+
+       return NULL;
+}
+
+static char *__get_tag_value(const char *tag_str, const char *tag_name)
+{
+       char *tag;
+
+       if (!tag_name || !tag_str)
+               return NULL;
+
+       if ((tag = strstr(tag_str, tag_name))) {
+               if (tag[strlen(tag_name)] == '_')
+                       return NULL;
+               char *value = strchr(tag, '=');
+               if (value) {
+                       do {
+                               value++;
+                       } while (!isalnum(*value) && *value != '/');
+
+                       int spCnt = 5;
+                       char *spArray[spCnt];
+                       spArray[0] = strchr(value, '>');
+                       spArray[1] = strchr(value, '\"');
+                       spArray[2] = strchr(value, '\'');
+                       spArray[3] = strchr(value, '\t');
+                       spArray[4] = strchr(value, '\n');
+                       char *valueEnd = strchr(value, '\0');
+
+                       int i;
+                       int start = 0;
+                       if (!strcmp(tag_str, "item") && !strcmp(tag_name, "href"))
+                               start = 1;
+
+                       for (i = start; i < spCnt; i++) {
+                               if (spArray[i] && spArray[i] < valueEnd) {
+                                       valueEnd = spArray[i];
+                               }
+                       }
+
+                       int valueLength = valueEnd - value;
+                       return strndup(value, valueLength);
+               }
+       }
+
+       return NULL;
+}
+
+void msg_composer_entry_filter_addimage(void *data, Evas_Object *entry, char **text)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(entry == NULL, "entry is NULL");
+       D_MSG_RETM_IF((!text || !(*text)), "text is invalid");
+       char *item_val = NULL;
+       char *item_tag = NULL;
+       char *filepath = NULL;
+       char *realpath = NULL;
+       char *emoticon_converted_text = NULL;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = data;
+
+       /*remove emoticon string */
+       emoticon_converted_text = msg_common_convert_emoticon_to_normal_text(*text);
+       g_free(*text);
+
+       /*get <item xxx> tag at insert text*/
+       item_tag = __get_item_tag(emoticon_converted_text);
+
+       if (item_tag) {
+               D_SEC_MSG("item_tag = %s", item_tag);
+
+               /*get value of href in the item tag*/
+               item_val = __get_tag_value(item_tag, "href");
+               if (item_val) {
+                       D_MSG("item_href_val = %s", item_val);
+
+                       filepath = strstr(item_val, "file:");
+                       if (filepath) {
+                               realpath = filepath + 5;
+                       } else {
+                               realpath = item_val;
+                       }
+
+                       if (realpath) {
+                               if (msg_file_exists(realpath) == EINA_TRUE) {
+                                       char *list_item_data  = g_strdup(realpath);
+                                       if (list_item_data) {
+                                               /* add image case from clipboard or paste */
+                                               cd->attachlist = eina_list_append(cd->attachlist, list_item_data);
+                                               msg_ui_composer_body_items_add(data);
+                                       } else {
+                                               D_EMSG("Fail to g_strdup");
+                                       }
+                               } else {
+                                       D_SEC_EMSG("File is NOT exist %s", realpath);
+                               }
+                       } else {
+                               D_EMSG("File Path is NULL");
+                       }
+
+                       g_free(item_val);
+               }
+
+               g_free(item_tag);
+
+               /* remove item tag */
+               char *removed_text = __remove_item_tag(emoticon_converted_text);
+
+               if (removed_text)
+                       *text = removed_text;
+               else
+                       *text = NULL;
+
+               MSG_FREE(emoticon_converted_text);
+
+       } else {
+               *text = emoticon_converted_text;
+       }
+       D_LEAVE;
+}
+
+void msg_composer_entry_filter_remove_markup(void *data, Evas_Object *entry, char **text)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(text == NULL || *text == NULL, "New Text is NULL");
+       char *preedit_tag_start = NULL;
+       char *preedit_tag_end = NULL;
+       char *utf8_text = NULL;
+       char *convert_text = NULL;
+
+       /* Check preeditting text and return if it exist*/
+       preedit_tag_start = strstr(*text, "<preedit");
+       preedit_tag_end = strstr(*text, "</preedit");
+
+       if (preedit_tag_start && preedit_tag_end)
+               return;
+
+       /* convert from markup text to utf8 text from entry */
+       utf8_text  = elm_entry_markup_to_utf8(*text);
+
+       if (utf8_text) {
+               /* If the string contains "Carrage return ('\n'), it should be changed "<br>" to show properly*/
+               convert_text = elm_entry_utf8_to_markup(utf8_text);
+               if (convert_text) {
+                       free(*text);
+                       *text = strdup(convert_text);
+                       free(convert_text);
+               }
+               free(utf8_text);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_common_tickernoti(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_TICKERNOTI_TYPE_E tickertype)
+{
+       char popup_msg[DEF_BUF_LEN_L + 1] = {0,};
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is Invalid");
+
+       if (tickertype == COMPOSER_TICKERNOTI_COUNT_MAX) {
+               char *str = NULL;
+               if (cd->msg_type == COMPOSER_MSG_TYPE_SMS) {
+                       str = _MSGSTR("IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED");
+               } else {
+                       str = _MSGSTR("IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST");
+               }
+               snprintf(popup_msg, sizeof(popup_msg), str, cd->recipient_max_count);
+       } else if (tickertype == COMPOSER_TICKERNOTI_DUP_RECP) {
+               snprintf(popup_msg, sizeof(popup_msg), _MSGSTR("IDS_MSGC_BODY_DUPLICATED_RECIPIENT"));
+       } else if (tickertype == COMPOSER_TICKERNOTI_INVALID_RECP) {
+               snprintf(popup_msg, sizeof(popup_msg), _MSGSTR("IDS_MSGF_BODY_INVALID_RECIPIENT"));
+       } else if (tickertype == COMPOSER_TICKERNOTI_CHANGED_SMS) {
+               snprintf(popup_msg, sizeof(popup_msg), _MSGSTR("IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"));
+       } else if (tickertype == COMPOSER_TICKERNOTI_CHANGED_MMS) {
+               snprintf(popup_msg, sizeof(popup_msg), _MSGSTR("IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"));
+       } else if (tickertype == COMPOSER_TICKERNOTI_MAXLENGHT_CHAR) {
+               snprintf(popup_msg, sizeof(popup_msg), _MSGSTR("IDS_MSGF_POP_MAXIMUM_CHARACTERS"));
+       } else if (tickertype == COMPOSER_TICKERNOTI_NO_TEMPLATE_LIST) {
+               snprintf(popup_msg, sizeof(popup_msg), _MSGSTR("IDS_MSG_POP_NO_TEMPLATES_IN_LIST"));
+       } else if (tickertype == COMPOSER_TICKERNOTI_MESSAGE_SIZE_LIMIT_REACHED) {
+               snprintf(popup_msg, sizeof(popup_msg), _MSGSTR("IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"));
+       } else if (tickertype == COMPOSER_TICKERNOTI_ATTACHMENT_LIMIT_REACHED) {
+               char *str = _MSGSTR("IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED");
+               char count[DEF_BUF_LEN_D + 1] = {0,};
+               snprintf(count, sizeof(count), "%d", COMPOSER_MMS_MAX_ATTACH_COUNT);
+               snprintf(popup_msg, sizeof(popup_msg), str, count);
+       } else if (tickertype == COMPOSER_TICKERNOTI_DURATION_MIN_LIMIT_REACHED) {
+               char *str = _MSGSTR("IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS");
+               snprintf(popup_msg, sizeof(popup_msg), str, MSGC_PAGE_DURATION_MIN);
+       } else if (tickertype == COMPOSER_TICKERNOTI_DURATION_MAX_LIMIT_REACHED) {
+               char *str = _MSGSTR("IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS");
+               snprintf(popup_msg, sizeof(popup_msg), str, (MSGC_PAGE_DURATION_MAX + 1));
+       } else if (tickertype == COMPOSER_TICKERNOTI_SCHEDULED_TIME_LIMIT_REACHED) {
+               snprintf(popup_msg, sizeof(popup_msg), _MSGSTR("IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"));
+       } else if (tickertype == COMPOSER_TICKERNOTI_UNABLE_TO_FIND_LOCATION) {
+               snprintf(popup_msg, sizeof(popup_msg), _MSGSTR("IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"));
+       } else {
+               return;
+       }
+
+       msg_ui_composer_show_status_message(popup_msg);
+}
+
+int msg_ui_composer_get_keypad_height(Evas_Object *entry)
+{
+       D_MSG_RETVM_IF(entry == NULL, 0, "param is NULL");
+       int keypad_x = 0;
+       int keypad_y = 0;
+       int keypad_w = 0;
+       int keypad_h = 0;
+
+       Ecore_IMF_Context *entry_ctx = elm_entry_imf_context_get(entry);
+       ecore_imf_context_input_panel_geometry_get(entry_ctx, &keypad_x, &keypad_y, &keypad_w, &keypad_h);
+
+       return keypad_h;
+}
+
+void msg_ui_composer_change_body_scroll_size(MSG_COMPOSER_VIEW_DATA_S *cd, int keypad_height)
+{
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is Invalid");
+       COMPOSER_ROTATE_TYPE_E rotate = cd->rotate;
+       int total_height = 0;
+       int scroll_height = 0;
+       int navi_title_h = 0;
+       Evas_Coord scroll_w = 0;
+       Evas_Coord scroll_h = 0;
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+               D_MSG("return. this is not bubble view");
+               return;
+       }
+
+       if (!cd->body_scroll) {
+               D_EMSG("cd->body_scroll is NULL");
+               return;
+       }
+
+       evas_object_size_hint_max_get(cd->body_scroll, &scroll_w, &scroll_h);
+
+       if (rotate == COMPOSER_ROTATE_PORTRAIT || rotate == COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN)
+               total_height = (cd->window_h > cd->window_w) ? cd->window_h : cd->window_w;
+       else
+               total_height = (cd->window_h > cd->window_w) ? cd->window_w : cd->window_h;
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+               RECIPIENT_S *rd = cd->recipient;
+               D_MSG_RETM_IF(rd == NULL, "recipient Data is NULL");
+               int recipient_h = 0;
+               int indicator_h = 0;
+
+               if (rotate == COMPOSER_ROTATE_PORTRAIT || rotate == COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN) {
+                       indicator_h = MSGC_INDICATOR_PORTRAIT_H;
+               } else {
+                       indicator_h = MSGC_INDICATOR_LANDSCAPE_H;
+               }
+
+               recipient_h = rd->recipient_h;
+
+               Eina_Bool title_enable = elm_naviframe_item_title_enabled_get(cd->navi_it);
+               if (title_enable) {
+                       Evas_Coord x = 0;
+                       Evas_Coord y = 0;
+                       Evas_Coord w = 0;
+                       Evas_Coord h = 0;
+
+                       evas_object_geometry_get(cd->navi_title_layout, &x, &y, &w, &h);
+                       navi_title_h = h;
+               }
+
+               scroll_height = (total_height - keypad_height - recipient_h - navi_title_h - MSGC_BODY_PADDING - indicator_h);
+
+               if (scroll_height <= COMPOSER_FRAME_BODY_LANDSCAPE_HEIGHT_MIN)
+                       scroll_height = COMPOSER_FRAME_BODY_LANDSCAPE_HEIGHT_MIN;
+
+               if (scroll_h != scroll_height) {
+                       evas_object_size_hint_max_set(cd->body_scroll, 9999, scroll_height);
+                       elm_scroller_content_min_limit(cd->body_scroll, EINA_FALSE, EINA_TRUE);
+               }
+       } else if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               int indicator_h = 0;
+               Evas_Coord x = 0;
+               Evas_Coord y = 0;
+               Evas_Coord w = 0;
+               Evas_Coord h = 0;
+
+               if (rotate == COMPOSER_ROTATE_PORTRAIT || rotate == COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN) {
+                       indicator_h = MSGC_INDICATOR_PORTRAIT_H;
+               } else {
+                       indicator_h = MSGC_INDICATOR_LANDSCAPE_H;
+               }
+
+               evas_object_geometry_get(cd->navi_title_layout, &x, &y, &w, &h);
+
+               navi_title_h = h;
+               if (navi_title_h == 0) {
+                       D_MSG("navi_title_h is 0. not updated yet");
+                       navi_title_h = MSGC_NAVIFRAME_TITLE_H;
+               }
+               Eina_Bool title_enable = elm_naviframe_item_title_enabled_get(cd->navi_it);
+               if (title_enable == EINA_FALSE) {
+                       navi_title_h = 0;
+               }
+
+               scroll_height = (total_height - keypad_height - navi_title_h - indicator_h - MSGC_BODY_PADDING);
+
+               if (scroll_height <= COMPOSER_FRAME_BODY_LANDSCAPE_HEIGHT_MIN)
+                       scroll_height = COMPOSER_FRAME_BODY_LANDSCAPE_HEIGHT_MIN;
+
+               if (scroll_h != scroll_height) {
+                       evas_object_size_hint_max_set(cd->body_scroll, 9999, scroll_height);
+                       elm_scroller_content_min_limit(cd->body_scroll, EINA_FALSE, EINA_TRUE);
+               }
+       } else {
+               D_EMSG("Unknown Composer Mode");
+       }
+}
+
+void msg_ui_composer_make_default_body_size(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+#ifdef MSG_SUPPORT_DEFAULT_HEIGHT_FEATURE      /* it feature is not supported */
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       int scroll_height = COMPOSER_BODY_DEFAULT_H;
+
+       cd->is_default_body_size = true;
+
+       msg_ui_composer_hide_attach_focus(cd);
+
+       evas_object_size_hint_max_set(cd->body_scroll, 9999, scroll_height);
+       elm_scroller_content_min_limit(cd->body_scroll, EINA_FALSE, EINA_TRUE);
+       /* move scroll to top */
+       elm_scroller_region_show(cd->body_scroll, 0, 0, 0, 0);
+#endif
+       D_LEAVE;
+}
+
+void msg_ui_composer_entry_imf_resize_cb(void *data, Ecore_IMF_Context *ctx, int value)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is Invalid");
+       D_MSG_RETM_IF(ctx == NULL, "Ecore_IMF_Context is Invalid");
+       int keypad_x = 0;
+       int keypad_y = 0;
+       int keypad_w = 0;
+       int keypad_h = 0;
+
+       ecore_imf_context_input_panel_geometry_get(ctx, &keypad_x, &keypad_y, &keypad_w, &keypad_h);
+       D_SEC_MSG("keypad x = %d, y = %d, w = %d, h = %d", keypad_x, keypad_y, keypad_w, keypad_h);
+
+       if (cd->make_default_body_size) {
+/* it is commented because msg_ui_composer_naviframe_size_hints_changed is called before calling imf_resize&state_cb
+                if (!cd->is_keypad_show)
+                        cd->make_default_body_size = false;
+*/
+       } else {
+               /* it is commented to fix showing bubble widget for a while during hiding keypad */
+               /* if (keypad_w != 0 && keypad_h != 0) */
+                       msg_ui_composer_change_body_scroll_size(cd, keypad_h);
+       }
+
+       D_LEAVE;
+}
+
+static Eina_Bool __msgc_popup_show_timer_cb(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       cd->show_popup_timer = NULL;
+
+       if (cd->ctx_popup) {
+               D_MSG("show popup");
+               evas_object_show(cd->ctx_popup);
+               elm_object_focus_set(cd->ctx_popup, EINA_TRUE);
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void msg_ui_composer_entry_imf_state_cb(void *data, Ecore_IMF_Context *ctx, int value)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is Invalid");
+       D_MSG_RETM_IF(ctx == NULL, "Ecore_IMF_Context is Invalid");
+
+       RECIPIENT_S *rd = cd->recipient;
+
+       if (value == ECORE_IMF_INPUT_PANEL_STATE_SHOW) {
+               D_MSG("Imf status SHOW");
+/* 1. imf_state_cb is called as hided only without calling shown mode, even though keypad remains shown status becasue focus is moved to body entry after deleting previous focused entry.
+        So,  it is commented because of limitation of imf context. ex> add subject > remove subject > more
+    2. And controlling is_keypad_show variable is intergared in msg_ui_composer_naviframe_size_hints_changed to manage both IME and clipboard cases */
+               /* cd->is_keypad_show = true; */
+
+               if (cd->bubble_data)
+                       msg_ui_bubble_scroller_show_latest(cd->bubble_data);
+       } else if (value == ECORE_IMF_INPUT_PANEL_STATE_HIDE) {
+               D_MSG("Imf status HIDE");
+/* 1. imf_state_cb is called as hided only without calling shown mode even though keypad remains shown status becasue focus is moved to body entry after deleting previous focused entry.
+       So, it is commented because of limitation of imf context. ex> add subject > remove subject > more
+    2. And controlling is_keypad_show variable is intergared in msg_ui_composer_naviframe_size_hints_changed to manage both IME and clipboard cases */
+               /* cd->is_keypad_show = false; */
+
+               D_MSG("cd->make_default_body_size = %d", cd->make_default_body_size);
+
+               bool is_show_default_mode = false;
+
+               if (is_show_default_mode == false) {
+                       if (cd->make_default_body_size) {
+                               cd->make_default_body_size = false;
+                               msg_ui_composer_make_default_body_size(cd);
+                       } else {
+                               msg_ui_composer_change_body_scroll_size(cd, 0);
+                       }
+               }
+
+               if (cd->show_popup) {
+                       if (cd->ctx_popup) {
+                               if (cd->show_popup_timer) {
+                                       ecore_timer_del(cd->show_popup_timer);
+                                       cd->show_popup_timer = NULL;
+                               }
+                               cd->show_popup_timer = ecore_timer_add(0.2, __msgc_popup_show_timer_cb, cd);
+                       } else if (rd) { /* bellow timing popups are shown only when there is recipient */
+                               if (cd->tpopup_type == MSG_COMPOSER_TPOPUP_INVALID_RECIPIENT) {
+                                       if (cd->show_popup_timer) {
+                                               ecore_timer_del(cd->show_popup_timer);
+                                               cd->show_popup_timer = NULL;
+                                       }
+                                       cd->show_popup_timer = ecore_timer_add(0.05, msg_ui_composer_recipient_invalid_address_popup_cb, cd);
+                               } else if (cd->tpopup_type == MSG_COMPOSER_TPOPUP_MAXIMUM_RECIPIENT_COUNT) {
+                                       if (cd->show_popup_timer) {
+                                               ecore_timer_del(cd->show_popup_timer);
+                                               cd->show_popup_timer = NULL;
+                                       }
+                                       cd->show_popup_timer = ecore_timer_add(0.05, msg_ui_composer_recipient_maximum_count_popup_cb, cd);
+                               }
+                       }
+
+                       cd->show_popup = false;
+               }
+
+               msg_ui_composer_body_show_ctx_popup(cd);
+       } else {
+               D_MSG("imf status is INVALID value = %d", value);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_entry_set_guide_text(Evas_Object *entry, const char *str)
+{
+       D_MSG_RETM_IF(entry == NULL, "entry is NULL");
+       D_MSG_RETM_IF(str == NULL, "str is NULL");
+       elm_object_domain_translatable_part_text_set(entry, "elm.guide", MESSAGE_PKGNAME, str);
+       /* Added to force calculate Entry field size */
+       elm_entry_calc_force(entry);
+
+       /* fix entry cursor flickering issue after pressing volume key when use volume key is enabled */
+       int cur = elm_entry_cursor_pos_get(entry);
+       if (!cur)
+               elm_entry_cursor_line_end_set(entry);
+}
+
+int msg_ui_composer_get_font_size(int type)
+{
+       int font_size = 0;
+       int converted_size = -1;
+
+       if (type == COMPOSER_TYPE_BODY) {
+               int index = 0;
+
+               if (msg_common_get_font_size(&index) == FALSE) {
+                       D_EMSG("msg_common_get_font_size() is failed !!");
+                       return -1;
+               } else {
+                       D_MSG("selected font_size index = %d", index);
+               }
+
+               font_size = msg_common_get_font_size_from_index(index);
+
+               if (font_size == -1) {
+                       D_EMSG("msg_common_get_font_size_from_index() is failed !!");
+                       return -1;
+               }
+
+               converted_size = (MSGC_BODY_FONT_SIZE * font_size) / MSG_APP_FONT_SIZE_NORMAL;
+       } else if (type == COMPOSER_TYPE_RECIPIENT) {
+               int index = 0;
+
+               if (msg_common_get_font_size(&index) == FALSE) {
+                       D_EMSG("msg_common_get_font_size() is failed !!");
+                       return -1;
+               } else {
+                       D_MSG("selected font_size index = %d", index);
+               }
+
+               font_size = msg_common_get_font_size_from_index(index);
+
+               if (font_size == -1) {
+                       D_EMSG("msg_common_get_font_size_from_index() is failed !!");
+                       return -1;
+               }
+
+               converted_size = (MSGC_RECIPIENT_FONT_SIZE * font_size) / MSG_APP_FONT_SIZE_NORMAL;
+       } else if (type == COMPOSER_TYPE_SUBJECT) {
+               int index = 0;
+
+               if (msg_common_get_font_size(&index) == FALSE) {
+                       D_EMSG("msg_common_get_font_size() is failed !!");
+                       return -1;
+               } else {
+                       D_MSG("selected font_size index = %d", index);
+               }
+
+               font_size = msg_common_get_font_size_from_index(index);
+               if (font_size == -1) {
+                       D_EMSG("msg_common_get_font_size_from_index() is failed !!");
+                       return -1;
+               }
+
+               converted_size = (MSGC_SUBJECT_FONT_SIZE * font_size) / MSG_APP_FONT_SIZE_NORMAL;
+       } else {
+               D_EMSG("Invalid type");
+       }
+
+       return converted_size;
+}
+
+static void _naviframe_size_hints_changed_deferred_cb(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Display_Mode dispmode = evas_object_size_hint_display_mode_get(cd->navi_bar);
+
+       if (dispmode == EVAS_DISPLAY_MODE_COMPRESS) {
+               D_MSG("dispmode = EVAS_DISPLAY_MODE_COMPRESS");
+               if (cd->rotate == COMPOSER_ROTATE_LANDSCAPE || cd->rotate == COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN) {/* landscape mode */
+                       /* If more button is clicked, keypad will be hided and ctx_popup will be shown. And at that time focus is moved to mbe.
+                       Bellow condition is added to prevent flashing title area issue which is caused moving focus to mbe. */
+                       D_MSG("Hide naviframe title");
+                       msg_ui_composer_hide_navi_title(cd);
+               }
+
+               if (cd->try_to_show_keypad)
+                       cd->try_to_show_keypad = false;
+
+               cd->is_keypad_show = true;
+               msg_ui_composer_save_view_state(cd);
+
+               msg_ui_composer_change_body_layout_mode(cd, cd->rotate);
+       } else if (dispmode == EVAS_DISPLAY_MODE_NONE) {
+               D_MSG("dispmode = EVAS_DISPLAY_MODE_NONE");
+               if (cd->rotate == COMPOSER_ROTATE_LANDSCAPE || cd->rotate == COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN) {/* landscape mode */
+                       D_MSG("Show naviframe title");
+                       msg_ui_composer_show_navi_title(cd);
+               }
+
+               cd->is_keypad_show = false;
+               msg_ui_composer_save_view_state(cd);
+
+               msg_ui_composer_change_body_layout_mode(cd, cd->rotate);
+       } else {
+               D_MSG("unsupported dispmode %d", dispmode);
+       }
+
+       cd->job_naviframe_size_hints_changed = NULL;
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_naviframe_size_hints_changed(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;
+
+       if (!cd->job_naviframe_size_hints_changed) {
+               cd->job_naviframe_size_hints_changed = ecore_job_add(_naviframe_size_hints_changed_deferred_cb, data);
+       }
+
+       D_LEAVE;
+}
+
+static gboolean __msgc_is_network_camped(TapiHandle *handle, TelNetworkRegistrationStatus_t *status)
+{
+       D_ENTER;
+       gboolean ret = FALSE;
+       TelNetworkServiceLevel_t cs = TAPI_NETWORK_SERVICE_LEVEL_NO;
+       TelNetworkServiceType_t svc_type = TAPI_NETWORK_SERVICE_TYPE_UNKNOWN;
+
+       if (status) {
+               cs = status->cs;
+               svc_type = status->type;
+       } else {
+               ret = tel_get_property_int(handle, TAPI_PROP_NETWORK_SERVICE_TYPE, (int *)&svc_type);
+               if (TAPI_API_SUCCESS != ret) {
+                       D_EMSG("tel_get_property_int failed..!!![%d]", ret);
+                       return FALSE;
+               }
+
+               ret = tel_get_property_int(handle, TAPI_PROP_NETWORK_CIRCUIT_STATUS, (int *) &cs);
+               if (TAPI_API_SUCCESS != ret) {
+                       D_EMSG("tel_get_property_int failed..!!![%d]", ret);
+                       return FALSE;
+               }
+       }
+
+       bool is_nw_camped = FALSE;
+
+       D_MSG("cs = %d; type = %d", cs, svc_type);
+
+       if (TAPI_NETWORK_SERVICE_LEVEL_FULL == cs) {
+               switch (svc_type) {
+
+               case TAPI_NETWORK_SERVICE_TYPE_2G:                              /**< Service type is 2G. In case of CDMA, service type is set to 2G when System Type is IS95A/IS95B/CDMA_1X */
+               case TAPI_NETWORK_SERVICE_TYPE_2_5G:                            /**< Service type is 2.5G */
+               case TAPI_NETWORK_SERVICE_TYPE_2_5G_EDGE:               /**< Service type is 2.5G (EDGE) */
+               case TAPI_NETWORK_SERVICE_TYPE_3G:                              /**< Service type is 3G. In case of CDMA, service type is set to 3G when System Type is EVDO_REV_0/REV_A/REV_B/EHRPD */
+               case TAPI_NETWORK_SERVICE_TYPE_HSDPA:                   /**< Service type is HSDPA */
+               case TAPI_NETWORK_SERVICE_TYPE_LTE:                             /**< Service type is LTE */
+                       is_nw_camped = TRUE;
+                       break;
+               default:
+                       break;
+               }
+       }
+       return is_nw_camped;
+}
+
+static Eina_Bool __msgc_flight_mode_timer_cb(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       MSG_DATA_SWITCH_DATA *switch_data = evas_object_data_get(cd->progress_popup, "switch_data");
+       TapiResult_t api_err = TAPI_API_SUCCESS;
+       cd->flight_mode_timer = NULL;
+
+       api_err = tel_deregister_noti_event(cd->tapi_handle, TAPI_NOTI_NETWORK_REGISTRATION_STATUS);
+       if (api_err != TAPI_API_SUCCESS) {
+               D_MSG("tel_deregister_noti_event() failed.. event id: TAPI_NOTI_NETWORK_REGISTRATION_STATUS, api_err:[%d]", api_err);
+       }
+       msg_ui_composer_destroy_popup(cd, cd->progress_popup);
+
+       if (switch_data && cd->is_retrieve) {
+               msg_ui_bubble_retrieve_message(switch_data);
+       } else {
+               msg_ui_composer_common_message_send(cd);
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __msgc_tapi_flight_mode_network_reg_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)user_data;
+       D_MSG_RETM_IF(cd == NULL, "composer data is NULL");
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+
+       D_MSG("event_type:[%s]", noti_id);
+       bool is_nw_camped = FALSE;
+
+       TapiResult_t api_err = TAPI_API_SUCCESS;
+
+       TelNetworkRegistrationStatus_t *status = (TelNetworkRegistrationStatus_t *)data;
+
+
+       is_nw_camped = __msgc_is_network_camped(cd->tapi_handle, status);
+
+       if (is_nw_camped) {
+               MSG_DATA_SWITCH_DATA *switch_data = evas_object_data_get(cd->progress_popup, "switch_data");
+
+               api_err = tel_deregister_noti_event(cd->tapi_handle, TAPI_NOTI_NETWORK_REGISTRATION_STATUS);
+               if (api_err != TAPI_API_SUCCESS) {
+                       D_MSG("tel_deregister_noti_event() failed.. event id: TAPI_NOTI_NETWORK_REGISTRATION_STATUS, api_err:[%d]", api_err);
+               }
+               if (cd->flight_mode_timer) {
+                       ecore_timer_del(cd->flight_mode_timer);
+                       cd->flight_mode_timer = NULL;
+                       msg_ui_composer_destroy_popup(cd, cd->progress_popup);
+                       if (switch_data && cd->is_retrieve) {
+                               msg_ui_bubble_retrieve_message(switch_data);
+                       } else {
+                               msg_ui_composer_common_message_send(cd);
+                       }
+               }
+       } else {
+               D_MSG("Not camped to network yet!!!");
+       }
+}
+
+static void __msgc_flight_mode_tapi_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)user_data;
+       MSG_DATA_SWITCH_DATA *switch_data = evas_object_data_get(cd->progress_popup, "switch_data");
+
+       bool is_nw_camped = FALSE;
+
+       switch (result) {
+       case TAPI_POWER_FLIGHT_MODE_RESP_OFF:
+               /* only if the flight mode is disabled , the message will be submitted for sending. */
+               D_MSG("result = %d", result);
+               is_nw_camped = __msgc_is_network_camped(cd->tapi_handle, NULL);
+               TapiResult_t api_err = TAPI_API_SUCCESS;
+               if (is_nw_camped) {
+                       D_MSG("/**********network already camped -> Send Message*********/");
+                       msg_ui_composer_destroy_popup(cd, cd->progress_popup);
+
+                       if (switch_data && cd->is_retrieve) {
+                               msg_ui_bubble_retrieve_message(switch_data);
+                       } else {
+                               msg_ui_composer_common_message_send(cd);
+                       }
+
+               } else {
+                       D_MSG("/****registering for network change****************/");
+                       api_err = tel_register_noti_event(cd->tapi_handle, TAPI_NOTI_NETWORK_REGISTRATION_STATUS, __msgc_tapi_flight_mode_network_reg_cb, (void *)cd);
+                       if (api_err != TAPI_API_SUCCESS) {
+                               D_EMSG("tel_register_noti_event() failed.. event id:TAPI_NOTI_NETWORK_CHANGE, api_err:[%d]",  api_err);
+                       }
+                       if (cd->flight_mode_timer) {
+                               ecore_timer_del(cd->flight_mode_timer);
+                               cd->flight_mode_timer = NULL;
+                       }
+                       cd->flight_mode_timer = ecore_timer_add(15, __msgc_flight_mode_timer_cb, cd);
+               }
+               break;
+       default:
+               /* If failure occurs , then keep the data in the body entry, for user to retry. */
+               D_EMSG("result = %d", result);
+               break;
+       }
+
+       D_LEAVE;
+}
+
+static void __flight_mode_popup_ok_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");
+       msg_ui_composer_destroy_popup(cd, cd->custom_popup);
+
+       MSG_DATA_SWITCH_DATA *switch_data = evas_object_data_get(obj, "switch_data");
+
+       /* set flight mode off*/
+       if (msg_composer_set_flight_mode(cd->tapi_handle, TAPI_POWER_FLIGHT_MODE_LEAVE, __msgc_flight_mode_tapi_cb, (void *)cd) == false) {
+               D_EMSG("msg_composer_set_flight_mode is failed");
+       } else {
+               /* show progress popup */
+               if (cd->progress_popup) {
+                       msg_ui_composer_destroy_popup(cd, cd->progress_popup);
+                       cd->progress_popup = NULL;
+               }
+               cd->progress_popup = msg_ui_composer_create_progress_popup(cd, MESSAGE_PKGNAME, "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING", MSGC_PROGRESS_TEXT);
+               if (switch_data && cd->is_retrieve)
+                       evas_object_data_set(cd->progress_popup, "switch_data", switch_data);
+               eext_object_event_callback_add(cd->progress_popup, EEXT_CALLBACK_BACK, msg_ui_composer_common_ignore_back_key_cb, cd);
+       }
+
+       D_LEAVE;
+}
+
+static void __flight_mode_popup_cancel_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");
+
+       cd->send_from_bubble = FALSE;
+       cd->is_retrieve = false;
+
+       msg_ui_composer_destroy_popup(cd, cd->custom_popup);
+
+       D_LEAVE;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_flight_mode_check_and_change(MSG_COMPOSER_VIEW_DATA_S *cd, MSG_DATA_SWITCH_DATA *switch_data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "composer data is NULL");
+       COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+       bool flight_mode = false;
+
+       msg_sys_flight_mode_get(&flight_mode);
+       if (flight_mode) {
+               /*get tapi handle */
+               if (!cd->tapi_handle)
+                       cd->tapi_handle = (void *)tel_init(NULL);
+
+               if (!cd->tapi_handle) {
+                       D_EMSG("tel_init is failed");
+               } else {
+                       /* show popup */
+                       Evas_Object *popup = NULL;
+                       Evas_Object *positive_btn = NULL;
+                       Evas_Object *negative_btn = NULL;
+
+                       if (cd->custom_popup) {
+                               msg_ui_composer_destroy_popup(cd, cd->custom_popup);
+                               cd->custom_popup = NULL;
+                       }
+                       msg_ui_composer_unset_view(cd);
+                       if (switch_data && cd->is_retrieve)
+                               popup = msg_ui_composer_create_text_popup(cd->main_window, cd, _MSGSTR("IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"), 0);
+                       else if (cd->is_retrieve == false)
+                               popup = msg_ui_composer_create_text_popup(cd->main_window, cd, _MSGSTR("IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"), 0);
+                       negative_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+                       elm_object_part_content_set(popup, "button1", negative_btn);
+                       evas_object_smart_callback_add(negative_btn, "clicked", __flight_mode_popup_cancel_btn_clicked_cb, cd);
+                       positive_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+                       elm_object_part_content_set(popup, "button2", positive_btn);
+                       evas_object_smart_callback_add(positive_btn, "clicked", __flight_mode_popup_ok_btn_clicked_cb, cd);
+                       if (switch_data && cd->is_retrieve) /* Retrive Case */
+                               evas_object_data_set(positive_btn, "switch_data", switch_data);
+                       else /* Send or Resend Case */
+                               evas_object_data_set(positive_btn, "switch_data", NULL);
+                       elm_object_focus_set(popup, EINA_TRUE);
+                       evas_object_show(popup);
+                       cd->custom_popup = popup;
+               }
+
+               ret =  COMPOSER_RETURN_FAIL;
+       }
+       D_LEAVE;
+       return ret;
+}
+
+void msg_ui_composer_common_ignore_back_key_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       return;
+}
+
+void msg_ui_composer_common_data_off_popup_ok_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");
+
+       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_SETTING, NULL);
+       msg_ui_composer_destroy_popup(cd, cd->center_popup);
+
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_common_data_off_popup_cancel_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");
+
+       msg_ui_composer_destroy_popup(cd, cd->center_popup);
+
+       D_LEAVE;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_message_mobile_data_roaming_check_and_send(MSG_COMPOSER_VIEW_DATA_S *cd, MSG_DATA_SWITCH_DATA *switch_data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "composer data is NULL");
+       COMPOSER_RETURN_TYPE_E ret_val = COMPOSER_RETURN_SUCCESS;
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_MMS || cd->send_from_bubble || (switch_data && cd->is_retrieve)) {
+               bool mobile_data = true;
+               int is_roaming = 0;
+               system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED, &mobile_data);
+               D_MSG("mobile_data = %d", mobile_data);
+
+               /* Below Line is added to check the roaming status for individual SIM . Earlier we were using VCONFKEY_TELEPHONY_SVC_ROAM
+                * which returns true if any of the SIMs is in roaming state. */
+               if (switch_data && cd->is_retrieve)
+                       tel_get_property_int (cd->sim_info.handle[switch_data->item_data->sim_index - 1], TAPI_PROP_NETWORK_ROAMING_STATUS, &is_roaming);
+               else
+                       tel_get_property_int (cd->sim_info.handle[cd->sim_number - 1], TAPI_PROP_NETWORK_ROAMING_STATUS, &is_roaming);
+
+               bool data_roaming_settting = true;
+               runtime_info_get_value_bool(RUNTIME_INFO_KEY_DATA_ROAMING_ENABLED , &data_roaming_settting);
+
+               D_MSG("roaming status = %d / data roaming setting = %d", is_roaming, data_roaming_settting);
+
+               if (((mobile_data == false) && (cd->send_mms_data == false)) || (data_roaming_settting == false && is_roaming == 1)) {
+                       /* show popup to enable mobile data setting value */
+                       Evas_Object *popup = NULL;
+                       Evas_Object *positive_btn = NULL;
+                       Evas_Object *negative_btn = NULL;
+                       char *popup_text = NULL;
+
+                       if (cd->center_popup) {
+                               msg_ui_composer_destroy_popup(cd, cd->center_popup);
+                               cd->center_popup = NULL;
+                       }
+                       msg_ui_composer_unset_view(cd);
+                       if (!data_roaming_settting && is_roaming)
+                               popup_text = _MSGSTR("IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN");
+                       else
+                               popup_text = _MSGSTR("IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN");
+
+                       popup = msg_ui_composer_create_text_popup(cd->main_window, cd, popup_text, 0);
+                       negative_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+                       elm_object_part_content_set(popup, "button1", negative_btn);
+                       evas_object_smart_callback_add(negative_btn, "clicked", msg_ui_composer_common_data_off_popup_cancel_btn_clicked_cb, cd);
+                       positive_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_OPT_SETTINGS");
+                       elm_object_part_content_set(popup, "button2", positive_btn);
+                       evas_object_smart_callback_add(positive_btn, "clicked", msg_ui_composer_common_data_off_popup_ok_btn_clicked_cb, cd);
+
+                       elm_object_focus_set(popup, EINA_TRUE);
+                       evas_object_show(popup);
+                       cd->center_popup = popup;
+
+                       ret_val = COMPOSER_RETURN_FAIL;
+               }
+       }
+       D_LEAVE;
+       return ret_val;
+}
+
+static MSG_COMPOSER_ATTACH_MODULE_S *__msgc_get_attach_module(int module_id)
+{
+       D_ENTER;
+       char *query = NULL;
+       void *p_stmt = NULL;
+       int ret = MSG_UI_RET_SUCCESS;
+       MSG_COMPOSER_ATTACH_MODULE_S *attach_module = NULL;
+
+       query = sqlite3_mprintf("select DEFAULT_ORDER, USED_CNT, LATEST_USED, MODULE_NAME from MSG_ATTACH_MODULE_TABLE where DEFAULT_ORDER = %d;", module_id);
+
+       ret = msg_ui_db_prepare_query(query, &p_stmt);
+       if (ret != MSG_UI_RET_SUCCESS) {
+               D_EMSG("msg_ui_db_prepare_query() fail.");
+               goto exit;
+       }
+
+       ret = msg_ui_db_step_query(p_stmt);
+       if (ret == MSG_UI_DB_STEP_QUERY_STATE_ROW) {
+               int idx = 0;
+               attach_module = (MSG_COMPOSER_ATTACH_MODULE_S *)calloc(1, sizeof(MSG_COMPOSER_ATTACH_MODULE_S));
+               if (!attach_module) {
+                       D_EMSG("calloc is falied");
+                       goto exit;
+               }
+
+               attach_module->default_order = msg_ui_db_get_column_int(p_stmt, idx++);
+               attach_module->used_cnt = msg_ui_db_get_column_int(p_stmt, idx++);
+               attach_module->latest_used = msg_ui_db_get_column_int(p_stmt, idx++);
+               const char *temp = (const char *)msg_ui_db_get_column_text(p_stmt, idx++);
+               if (temp)
+                       attach_module->module_name = strdup((char *)temp);
+       }
+
+exit:
+       if (p_stmt)
+               msg_ui_db_finalize_query(&p_stmt);
+
+       MSG_SQLITE3_FREE(query);
+
+       return attach_module;
+}
+
+int msg_ui_composer_update_attach_module(int module_id)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(module_id <= 0, MSG_UI_RET_ERR, "Invalid module_id");
+       char *query = NULL;
+       void *p_stmt = NULL;
+       MSG_COMPOSER_ATTACH_MODULE_S *attach_module = NULL;
+       int ret = MSG_UI_RET_SUCCESS;
+
+       attach_module = __msgc_get_attach_module(module_id);
+       if (!attach_module) {
+               D_EMSG("__msgc_get_attach_module is failed");
+               goto exit;
+       }
+
+       attach_module->used_cnt++;
+
+       query = sqlite3_mprintf("update MSG_ATTACH_MODULE_TABLE set USED_CNT = %d, LATEST_USED = (select MAX(LATEST_USED) from MSG_ATTACH_MODULE_TABLE) + 1 where DEFAULT_ORDER = %d;", attach_module->used_cnt, module_id);
+
+       ret = msg_ui_db_prepare_query(query, &p_stmt);
+       if (ret != MSG_UI_RET_SUCCESS) {
+               D_EMSG("msg_ui_db_prepare_query() fail.");
+               goto exit;
+       }
+
+       ret = msg_ui_db_step_query(p_stmt);
+       if (ret != MSG_UI_DB_STEP_QUERY_STATE_DONE) {
+               D_MSG("step_query failed (%d)", ret);
+               ret = MSG_UI_RET_ERR;
+       }
+
+exit:
+       if (p_stmt)
+               msg_ui_db_finalize_query(&p_stmt);
+
+       MSG_SQLITE3_FREE(query);
+
+       if (attach_module) {
+               if (attach_module->module_name)
+                       free(attach_module->module_name);
+               free(attach_module);
+       }
+       return ret;
+}
+
+Evas_Object *msg_ui_composer_get_app_icon(Evas_Object *parent, char *app_name)
+{
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       D_MSG_RETVM_IF(app_name == NULL, NULL, "app_name is NULL");
+       D_SEC_IMSG("app_name : %s", app_name);
+
+       app_info_h app_info = NULL;
+       Evas_Object *icon = NULL;
+       char *icon_path = NULL;
+       int ret = APP_CONTROL_ERROR_NONE;
+
+       ret = app_manager_get_app_info(app_name, &app_info);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_manager_get_app_info() is failed. ret = %d", ret);
+               goto EXIT;
+       }
+
+       ret = app_info_get_icon(app_info, &icon_path);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_info_get_icon() is failed. ret = %d", ret);
+               goto EXIT;
+       }
+
+       D_SEC_IMSG("icon_path : [%s]", icon_path);
+       if (icon_path) {
+               icon = elm_image_add(parent);
+               elm_image_file_set(icon, icon_path, NULL);
+               evas_object_show(icon);
+       } else {
+               D_EMSG("icon_path is NULL");
+       }
+
+       if (app_info)
+               app_info_destroy(app_info);
+
+       MSG_FREE(icon_path);
+
+       D_LEAVE;
+       return icon;
+
+EXIT:
+       if (app_info)
+               app_info_destroy(app_info);
+
+       MSG_FREE(icon_path);
+
+       D_LEAVE;
+       return NULL;
+}
+
+Eina_List *msg_ui_composer_get_attach_module_list(void)
+{
+       D_ENTER;
+       char *query = NULL;
+       char **pp_result = NULL;
+       int row_cnt = 0;
+       int ret = MSG_UI_RET_SUCCESS;
+       int i = 0;
+       Eina_List *p_list = NULL;
+
+       query = sqlite3_mprintf("select DEFAULT_ORDER, USED_CNT, LATEST_USED, MODULE_NAME from MSG_ATTACH_MODULE_TABLE order by USED_CNT desc, LATEST_USED desc;");
+
+       ret = msg_ui_db_get_table(query, &row_cnt, &pp_result);
+       if (ret != MSG_UI_RET_SUCCESS) {
+               D_EMSG("msg_ui_db_get_table() fail.");
+               goto exit;
+       }
+
+       for ( ; i < row_cnt; i++) {
+               int clm_idx = (i+1)*4;
+               MSG_COMPOSER_ATTACH_MODULE_S *p_attach_module = (MSG_COMPOSER_ATTACH_MODULE_S *)calloc(1, sizeof(MSG_COMPOSER_ATTACH_MODULE_S));
+               if (!p_attach_module) {
+                       D_EMSG("calloc() failed.");
+                       goto error_exit;
+               }
+
+               char *pVal = NULL;
+               /* get DEFAULT_ORDER */
+               pVal = pp_result[clm_idx++];
+               if (pVal) {
+                       p_attach_module->default_order = atoi(pVal);
+               }
+               /* get USED_CNT */
+               pVal = pp_result[clm_idx++];
+               if (pVal) {
+                       p_attach_module->used_cnt = atoi(pVal);
+               }
+               /* get LATEST_USED */
+               pVal = pp_result[clm_idx++];
+               if (pVal) {
+                       p_attach_module->latest_used = atoi(pVal);
+               }
+               /* get MSG_TEXT */
+               pVal = pp_result[clm_idx++];
+               if (pVal) {
+                       p_attach_module->module_name = strdup(pVal);
+               }
+
+               p_list = eina_list_append(p_list, (void *)p_attach_module);
+       }
+
+       goto exit;
+
+error_exit:
+       if (p_list)
+               msg_ui_composer_free_attach_module_list(&p_list);
+
+exit:
+       if (pp_result) {
+               msg_ui_db_free_table(pp_result);
+               pp_result = NULL;
+       }
+
+       MSG_SQLITE3_FREE(query);
+
+       return p_list;
+}
+
+void msg_ui_composer_free_attach_module_list(Eina_List **pp_list)
+{
+       D_MSG_RETM_IF(!pp_list, "pp_list is NULL");
+       Eina_List *p_list = *pp_list;
+
+       if (p_list) {
+               MSG_COMPOSER_ATTACH_MODULE_S *attach_module = NULL;
+
+               EINA_LIST_FREE(p_list, attach_module)   {
+                       if (attach_module) {
+                               if (attach_module->module_name)
+                                       free(attach_module->module_name);
+                               free(attach_module);
+                       }
+               }
+       }
+       *pp_list = NULL;
+}
+
+Evas_Object *msg_ui_composer_create_gengrid_popup(Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!parent, NULL, "parent is NULL");
+
+       Evas_Object *gengrid = elm_gengrid_add(parent);
+       elm_object_style_set(gengrid, "popup");
+       evas_object_size_hint_weight_set(gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_gengrid_align_set(gengrid, 0.5, 0.0);
+       elm_gengrid_horizontal_set(gengrid, EINA_FALSE);
+       elm_scroller_policy_set(gengrid, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+
+       return gengrid;
+}
+
+int msg_ui_composer_common_recipient_count_get(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETVM_IF(cd == NULL, 0, "Composer Data is NULL");
+
+       int recipient_cnt = 0;
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+               recipient_cnt = msg_ui_composer_recipient_count_get(cd->recipient);
+       } else if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               MSG_BUBBLE_DATA *bubble_data = (MSG_BUBBLE_DATA *)cd->bubble_data;
+               D_MSG_RETVM_IF(bubble_data == NULL, 0, "bubble_data is NULL");
+
+               recipient_cnt = bubble_data->addr_list.addr_cnt;
+               D_MSG("bubble_data addr_cnt [%d]", recipient_cnt);
+       }
+
+       return recipient_cnt;
+}
diff --git a/composer/src/ui-composer/msg-ui-composer-main.c b/composer/src/ui-composer/msg-ui-composer-main.c
new file mode 100755 (executable)
index 0000000..12edc04
--- /dev/null
@@ -0,0 +1,3693 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 <Ecore_X.h>
+#include <tapi_common.h>
+#include <TapiUtility.h>
+#include <utilX.h>
+#include <system_info.h>
+#include <app_preference.h>
+
+#include "msg-ui-common-app-control.h"
+#include "msg-ui-composer-main.h"
+#include "msg-ui-composer-recipient.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-composer-predictsearch.h"
+#include "msg-ui-composer-subject.h"
+#include "msg-ui-composer-body.h"
+#include "msg-ui-composer-attachment.h"
+#include "msg-ui-composer-message.h"
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-external.h"
+#include "msg-ui-composer-bubble.h"
+#include "msg-ui-common-utility.h"
+#include "msg-ui-composer-body-callback.h"
+#include "msg-ui-common-utility.h"
+#include "msg-system-util.h"
+#include "msg-vcard-utils.h"
+
+#define COMPOSER_BUNDLE_ATTACH_TOKEN "\n"
+#define COMPOSER_BUNDLE_RECP_TOKEN ",;"
+#define COMPOSER_VOLUME_KEY_LONG_PRESS_TIME 0.3
+
+
+/*msg_service defines should be removed after supporting them by application*/
+#ifndef MSG_SERVICE_OPERATION_SHARE_CONTACT
+#define MSG_SERVICE_OPERATION_SHARE_CONTACT "http://tizen.org/appcontrol/operation/share_contact"
+#endif
+#ifndef MSG_SERVICE_DATA_ITEM_ID
+#define MSG_SERVICE_DATA_ITEM_ID "http://tizen.org/appcontrol/data/social/item_id"
+#endif
+#ifndef MSG_SERVICE_DATA_NAMECARD_SHARE_ITEM
+#define MSG_SERVICE_DATA_NAMECARD_SHARE_ITEM "http://tizen.org/appcontrol/data/social/item_type"
+#endif
+
+struct _msg_ui_translation_list_item translation_menu_its[] = {
+       {"IDS_MSG_HEADER_TRANSLATE", NULL},
+       {"IDS_MSGF_BODY_ME", NULL},
+       {"IDS_MSG_BODY_OTHER_PERSON", NULL},
+       {"IDS_MSG_POP_INCOMING_MESSAGES_ONLY", NULL},
+       {"IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE", NULL},
+       {NULL, NULL}
+};
+
+struct _SimIconNode simPopupIconNode[] = {
+       {"SIM 1", SETTING_ICON_PATH_CFG"multisim/46X46/logs_icon_sim_1.png", "107, 211, 255, 255", "31, 188, 255, 255", "107, 211, 255, 71"},
+       {"SIM 2", SETTING_ICON_PATH_CFG"multisim/46X46/logs_icon_sim_2.png", "214, 106, 236, 255", "123, 19, 144, 255", "214, 106, 236, 71"},
+       {"Call", SETTING_ICON_PATH_CFG"multisim/46X46/logs_icon_sim_phone.png", "160, 243, 109, 255", "114, 237, 38, 255", "160, 243, 109, 71"},
+       {"SMS", SETTING_ICON_PATH_CFG"multisim/46X46/logs_icon_sim_sms.png", "255, 251, 240, 255", "254, 231, 165, 255", "255, 251, 240, 71"},
+       {"Data", SETTING_ICON_PATH_CFG"multisim/46X46/logs_icon_sim_data.png", "255, 240, 230, 255", "254, 133, 52, 255", "255, 240, 230, 71"},
+       {"Internet", SETTING_ICON_PATH_CFG"multisim/46X46/logs_icon_sim_internet.png", "26, 72, 224, 255", "18, 50, 155, 255", "26, 72, 224, 71"},
+       {"Home", SETTING_ICON_PATH_CFG"multisim/46X46/logs_icon_sim_home.png", "46, 255, 185, 255", "0, 224, 150, 255", "46, 255, 185, 71"},
+       {"Office", SETTING_ICON_PATH_CFG"multisim/46X46/logs_icon_sim_office.png", "59, 74, 84, 255", "27, 35, 39, 255", "59, 74, 84, 71"},
+       {"Heart", SETTING_ICON_PATH_CFG"multisim/46X46/logs_icon_sim_heart.png", "248, 216, 233, 255", "237, 151, 197, 255", "248, 216, 233, 71"},
+       {NULL, NULL, NULL, NULL,}
+};
+
+/* Refer to msg_button.edc */
+char *simSendBtnStyles[] = {
+       "send_custom/sim_1",
+       "send_custom/sim_2",
+       "send_custom/sim_call",
+       "send_custom/sim_messages",
+       "send_custom/sim_data",
+       "send_custom/sim_internet",
+       "send_custom/sim_home",
+       "send_custom/sim_office",
+       "send_custom/sim_heart",
+       NULL
+};
+
+/*==================================================================================================
+*                                                              FUNCTION IMPLEMENTATIONS
+*==================================================================================================*/
+static COMPOSER_EDIT_STATE_E __msg_ui_composer_edit_check(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_EDIT_NONE, "Composer Data == NULL");
+
+       bool isvalid_address = false;
+       bool iscontent_edited = false;
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+               int recipient_count = msg_ui_composer_recipient_count_get(cd->recipient);
+               if (recipient_count > 0) {
+                       isvalid_address = true;
+               }
+
+               const char *entry_str = msg_ui_composer_recipient_entry_text_get(cd->recipient);
+               if (entry_str && strlen(entry_str)) {
+                       if (msg_ui_composer_recipient_vaild_check(entry_str) == EINA_TRUE)
+                               isvalid_address = true;
+               }
+       } else if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               isvalid_address = true;
+       }
+
+       /* valid address & there is body content */
+       if (msg_ui_composer_common_is_send_possible(cd) == true)
+               iscontent_edited = true;
+
+       if (isvalid_address && iscontent_edited)
+               return COMPOSER_EDIT_RECIPIENT_AND_BODY;
+       else if (isvalid_address)
+               return COMPOSER_EDIT_RECIPIENT;
+       else if (iscontent_edited)
+               return COMPOSER_EDIT_BODY;
+       else
+               return COMPOSER_EDIT_NONE;
+}
+
+static void __msgc_parse_recipient_list(MSG_COMPOSER_VIEW_DATA_S *cd, const char *address)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       D_MSG_RETM_IF(address == NULL, "address is NULL");
+
+       bool bMaxCount = false;
+       bool bInvalidNum = false;
+       bool bDup = false;
+       bool is_sound_and_shot = false;
+       Eina_List *recipient_list = make_tokenize_list(address, COMPOSER_BUNDLE_RECP_TOKEN, COMPOSER_UTIL_LIST_TYPE_RECIPIENT, &is_sound_and_shot);
+
+       if (recipient_list) {
+               Eina_List *l = NULL;
+               char *recipient;
+
+               if (cd->invalid_recipient_list)
+                       msg_ui_composer_recipient_clear_invalid_recipient_list(cd);
+
+               EINA_LIST_FOREACH(recipient_list, l, recipient) {
+                       if (recipient) {
+                               D_SEC_MSG("TO = %s", recipient);
+                               if (msg_ui_composer_recipient_count_get(cd->recipient) >= cd->recipient_max_count) {
+                                       bMaxCount = true;
+                                       g_free(recipient);
+                                       break;
+                               }
+
+                               if (msg_ui_composer_recipient_duplicate_check(cd->recipient, recipient) == COMPOSER_RETURN_RECIPIENT_DUPLICATE) {
+                                       bDup = true;
+                                       g_free(recipient);
+                                       continue;
+                               }
+
+                               if (msg_ui_composer_recipient_vaild_check(recipient) == EINA_FALSE) {
+                                       bInvalidNum = true;
+                                       msg_ui_composer_recipient_add_invalid_recipient_list(cd, recipient);
+                               } else {
+                                       msg_ui_composer_recipient_append(cd->recipient, recipient, 0);
+                               }
+
+                               g_free(recipient);
+                       }
+               }
+
+               D_MSG("bMaxCount = %d, bInvalidNum = %d, bDup = %d", bMaxCount, bInvalidNum, bDup);
+               if (bMaxCount) {
+                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+               } else if (bInvalidNum) {
+                       char *popup_str = NULL;
+
+                       msg_ui_composer_unset_view(cd);
+                       popup_str = msg_ui_composer_recipient_get_invalid_recipient_popup_str(cd);
+                       if (popup_str == NULL) {
+                               popup_str = "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID";
+                       } else {
+                               msg_ui_composer_last_focused_entry_set(cd, cd->recipient->entry);
+                       }
+                       msg_common_create_noti_toast_popup(popup_str);
+
+               } else if (bDup) {
+                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_DUP_RECP);
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void __msgc_get_service_app_svc_op(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle, char *operation)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       D_MSG_RETM_IF(svc_handle == NULL, "svc_handle is NULL");
+       D_MSG_RETM_IF(operation == NULL, "operation is NULL");
+
+       char *uri = NULL;
+       int number_of_recipients = 0;
+       char **recipient = NULL;
+       char *body_text = NULL;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       char *subject = NULL;
+       char *one_attachment = NULL;
+       char **attachment_list = NULL;
+       int file_len = 0;
+       char **personID = NULL;
+       int personID_size = 0;
+       char *mimeType = NULL;
+       bool cancel = false;
+       char *vcardPath = NULL;
+       int *id_list = NULL;
+#endif
+
+       D_MSG("operation = (%s)", operation);
+
+       if (g_strcmp0(operation, APP_CONTROL_OPERATION_COMPOSE) == 0) {
+
+               if ((app_control_get_extra_data_array(svc_handle, APP_CONTROL_DATA_TO, &recipient, &number_of_recipients) == APP_CONTROL_ERROR_NONE) && recipient) {
+                       int i = 0;
+                       for (i = 0; i < number_of_recipients; i++) {
+                               __msgc_parse_recipient_list(cd, (const char *)recipient[i]);
+                       }
+                       msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+                       free(recipient);
+               }
+
+               if ((app_control_get_extra_data(svc_handle, APP_CONTROL_DATA_TEXT, &body_text) == APP_CONTROL_ERROR_NONE) && body_text) {
+                       msg_ui_composer_body_set_loaded_text(cd, (const char *)body_text, 0);
+                       free(body_text);
+               }
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+               if ((app_control_get_extra_data(svc_handle, APP_CONTROL_DATA_SUBJECT, &subject) == APP_CONTROL_ERROR_NONE) && subject) {
+                       msg_ui_composer_subject_set_loaded_data(cd, (const char *)subject);
+                       free(subject);
+               }
+#endif
+
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       } else if (g_strcmp0(operation, APP_CONTROL_OPERATION_SHARE) == 0) {
+
+               char *mime = NULL;
+               app_control_get_mime(svc_handle, &mime);
+
+               if (mime && strcmp(mime, APP_CONTROL_MIME_CONTACT) == 0) {
+
+                       char *id_str = NULL;
+                       app_control_get_extra_data(svc_handle, APP_CONTROL_DATA_ID, &id_str);
+
+                       if (id_str) {
+                               bool my_profile = false;
+                               char *data_type = NULL;
+                               char *vcard_path = NULL;
+                               int id = atoi(id_str);
+
+                               app_control_get_extra_data(svc_handle, APP_CONTROL_DATA_TYPE, &data_type);
+                               my_profile = data_type && strcmp(data_type, APP_CONTROL_MY_PROFILE_DATA_TYPE) == 0;
+                               vcard_path = msg_vcard_create_from_id(id, my_profile, cd->working_path);
+                               if (vcard_path) {
+                                       cd->attachlist = eina_list_append(cd->attachlist, vcard_path);
+                               }
+                               free(data_type);
+                       }
+                       free(id_str);
+               }
+               free(mime);
+
+               if (msg_common_app_control_get_single_extra_data(svc_handle, APP_CONTROL_DATA_PATH, &one_attachment) == APP_CONTROL_ERROR_NONE) {
+                       if (one_attachment) {
+                               char *filepath = one_attachment;
+
+                               if (strstr(one_attachment, MSG_BUNDLE_VALUE_FILE_URI_FULL))
+                                       filepath = one_attachment + strlen(MSG_BUNDLE_VALUE_FILE_URI_FULL);
+
+                               cd->attachlist = eina_list_append(cd->attachlist, strdup(filepath));
+
+                               free(one_attachment);
+                       }
+               }
+
+               if (cd->attachlist)
+                       msg_ui_composer_body_items_add(cd);
+       } else if (g_strcmp0(operation, APP_CONTROL_OPERATION_MULTI_SHARE) == 0) {
+               if (app_control_get_mime(svc_handle, &mimeType) != APP_CONTROL_ERROR_NONE) {
+                       D_EMSG("FAIL to get MIME!");
+                       ug_destroy_me(cd->ug);
+               }
+               if (mimeType && !strcmp(mimeType, APP_CONTROL_MIME_CONTACT)) {
+                       if (app_control_get_extra_data_array(svc_handle, APP_CONTROL_DATA_ID, &personID, &personID_size) == APP_CONTROL_ERROR_NONE && personID) {
+                               int i = 0;
+                               id_list = calloc(personID_size, sizeof(int));
+                               for (i = 0; i < personID_size; i++) {
+                                       id_list[i] = atoi(personID[i]);
+                               }
+                               vcardPath = msg_vcard_create_from_id_list(id_list, personID_size, cd->working_path, &cancel);
+                               if (vcardPath) {
+                                       cd->attachlist = eina_list_append(cd->attachlist, vcardPath);
+                               }
+                       } else {
+                               D_EMSG("Mandatory parameter APP_CONTROL_DATA_ID is not set!");
+                               ug_destroy_me(cd->ug);
+                       }
+                       free(personID);
+                       free(id_list);
+               } else if (app_control_get_extra_data_array(svc_handle, APP_CONTROL_DATA_PATH, &attachment_list, &file_len) == APP_CONTROL_ERROR_NONE) {
+                       if (attachment_list) {
+                               if (file_len) {
+                                       int i = 0;
+                                       for (i = 0; i < file_len; i++) {
+                                               if (attachment_list[i]) {
+                                                       char *filepath = attachment_list[i];
+                                                       D_SEC_MSG("ATTACHFILE[%d] = (%s)", i, attachment_list[i]);
+
+                                                       if (g_str_has_prefix(attachment_list[i], MSG_BUNDLE_VALUE_FILE_URI_FULL))
+                                                               filepath = attachment_list[i] + 7;
+
+                                                       cd->attachlist = eina_list_append(cd->attachlist, strdup(filepath));
+                                                       free(attachment_list[i]);
+                                               }
+                                       }
+                               }
+                               free(attachment_list);
+                       }
+               } else {
+                       D_EMSG("Mandatory parameter APP_CONTROL_DATA_PATH is not set!");
+                       ug_destroy_me(cd->ug);
+               }
+               free(mimeType);
+               if (cd->attachlist)
+                       msg_ui_composer_body_items_add(cd);
+
+       } else if (g_strcmp0(operation, MSG_SERVICE_OPERATION_SHARE_CONTACT) == 0) {
+               char **item_id_list = NULL;
+
+               COMPOSER_VCARD_THREAD_DATA_S *thd = (COMPOSER_VCARD_THREAD_DATA_S *)calloc(1, sizeof(COMPOSER_VCARD_THREAD_DATA_S));
+               if (thd == NULL) {
+                       D_EMSG("thd is NULL");
+                       return;
+               }
+
+               thd->cd = cd;
+               char *namecard_share_item = NULL;
+               if (app_control_get_extra_data(svc_handle, MSG_SERVICE_DATA_NAMECARD_SHARE_ITEM, &namecard_share_item) == APP_CONTROL_ERROR_NONE) {
+                       if (namecard_share_item) {
+                               D_MSG("namecard_share_item = (%s)", namecard_share_item);
+                               if (!strcmp(namecard_share_item, "person")) {
+                                       thd->share_item = 0;
+                               } else {
+                                       thd->share_item = 1;
+                               }
+
+                               free(namecard_share_item);
+                               namecard_share_item = NULL;
+                       }
+               }
+
+               int id_count = 0;
+               if (app_control_get_extra_data_array(svc_handle, MSG_SERVICE_DATA_ITEM_ID, &item_id_list, &id_count) == APP_CONTROL_ERROR_NONE) {
+                       /* item_id_list will be freed after adding it in make_vcard_end|cancel cb*/
+                       if (item_id_list) {
+                               thd->item_id_list = item_id_list;
+                               thd->id_count = id_count;
+                       }
+               }
+
+               /* create progress popup */
+               if (cd->progress_popup) {
+                       msg_ui_composer_destroy_popup(cd, cd->progress_popup);
+                       cd->progress_popup = NULL;
+               }
+
+               cd->progress_popup = msg_ui_composer_create_progress_popup(cd, MESSAGE_PKGNAME, "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW", MSGC_PROGRESS_TEXT);
+
+               if ((cd->vcard_thread) && (EINA_FALSE == ecore_thread_check(cd->vcard_thread))) {
+                       ecore_thread_cancel(cd->vcard_thread);
+                       cd->vcard_thread = NULL;
+               }
+
+               if (!cd->vcard_thread) {
+                       D_EMSG("thread run is failed");
+                       msg_ui_composer_destroy_popup(cd, cd->progress_popup);
+               }
+
+               /* free item_id_list */
+               if (thd->item_id_list) {
+                       int i = 0;
+                       for (i = 0; i < thd->id_count; i++) {
+                               if (thd->item_id_list[i])
+                                       free(thd->item_id_list[i]);
+                       }
+
+                       free(thd->item_id_list);
+               }
+
+               free(thd);
+
+#endif
+       } else if (g_strcmp0(operation, APP_CONTROL_OPERATION_SHARE_TEXT) == 0) {
+               int path_array_len = 0;
+               char **path_array = NULL;
+
+               if (app_control_get_extra_data(svc_handle, APP_CONTROL_DATA_TEXT, &body_text) == APP_CONTROL_ERROR_NONE && body_text) {
+                       msg_ui_composer_body_set_loaded_text(cd, (const char *)body_text, 0);
+                       free(body_text);
+
+                       if ((app_control_get_extra_data(svc_handle, APP_CONTROL_DATA_SUBJECT, &subject) == APP_CONTROL_ERROR_NONE) && subject) {
+                               msg_ui_composer_subject_set_loaded_data(cd, (const char *)subject);
+                               free(subject);
+                       }
+
+                       /* share data (e.g. memo). text, image and audio need to add. */
+                       if (app_control_get_extra_data_array(svc_handle, APP_CONTROL_DATA_PATH, &path_array, &path_array_len) == APP_CONTROL_ERROR_NONE) {
+                               if (path_array) {
+                                       D_MSG("path_array_len : %d", path_array_len);
+                                       if (path_array_len > 0) {
+                                               int i;
+                                               for (i = 0; i < path_array_len; i++) {
+                                                       if (path_array[i]) {
+                                                               D_MSG("### path_array[%d] : %s", i, path_array[i]);
+                                                               cd->attachlist = eina_list_append(cd->attachlist, g_strdup(path_array[i]));
+                                                               free(path_array[i]);
+                                                       }
+                                               }
+                                       }
+                                       free(path_array);
+                               }
+
+                               if (cd->attachlist) {
+                                       msg_ui_composer_body_items_add(cd);
+                               }
+                       }
+               } else {
+                       D_EMSG("Mandatory parameter APP_CONTROL_DATA_TEXT is not set!");
+                       ug_destroy_me(cd->ug);
+               }
+       } else {
+               D_MSG("Unsupported operation = (%s)", operation);
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_popup_cant_attach_on_ok(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_destroy_popup(cd, cd->popup_end);
+
+       D_LEAVE;
+}
+
+/* function definitions*/
+static void __msg_ui_composer_bundle_data_process(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       D_MSG_RETM_IF(svc_handle == NULL, "Bundle Data is NULL");
+
+       char *bundle_txt = NULL;
+
+       if (cd->isAppControl) { /* composer launching from appcontrol */
+               char *operation = NULL;
+
+               app_control_get_operation(svc_handle, &operation);
+               if (operation) {
+                       if ((!strcmp(operation, APP_CONTROL_OPERATION_SHARE) || !strcmp(operation, APP_CONTROL_OPERATION_MULTI_SHARE))
+                               && !msg_is_mms_enabled()) {
+
+                               cd->popup_end = msg_ui_create_popup(cd->navi_bar, cd, "IDS_MSGC_POP_MMSCANTADD", __msg_ui_popup_cant_attach_on_ok);
+                               free(operation);
+                               return;
+                       }
+
+                       __msgc_get_service_app_svc_op(cd, svc_handle, operation);
+                       free(operation);
+               } else {
+                       D_MSG("There is no operation");
+               }
+       } else {
+               if (cd->composer_mode == MSG_COMPOSER_MODE_EDIT || cd->composer_mode == MSG_COMPOSER_MODE_FORWARD) {
+                       if ((app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, &bundle_txt) == APP_CONTROL_ERROR_NONE) && bundle_txt) {
+                               bool set_recipient = false;
+                               bool is_forward_msg = false;
+                               int msg_id = atoi(bundle_txt);
+
+                               if (cd->composer_mode != MSG_COMPOSER_MODE_FORWARD) {
+                                       cd->msg_id = msg_id;
+                                       set_recipient = true;
+                               } else {
+                                       is_forward_msg = true;
+                               }
+
+                               if (cd->composer_mode == MSG_COMPOSER_MODE_EDIT) {
+                                       msg_struct_t conv = msg_create_struct(MSG_STRUCT_CONV_INFO);
+                                       msg_error_t err = MSG_SUCCESS;
+
+                                       err = msg_get_conversation(cd->msg_handle, cd->msg_id , conv);
+                                       if (err == MSG_SUCCESS) {
+                                               int thread_id = 0;
+                                               msg_get_int_value(conv, MSG_CONV_MSG_THREAD_ID_INT, &thread_id);
+                                               cd->old_tid = thread_id;
+                                       } else {
+                                               D_EMSG("Getting conversation failed");
+                                       }
+
+                                       D_MSG("cd->old_tid = %d", cd->old_tid);
+                                       msg_release_struct(&conv);
+                               } else {
+                                       cd->old_tid = -1;
+                               }
+                               cd->delete_edit_msg = false;
+
+                               cd->loading_draft = true;
+
+                               msg_ui_composer_message_init();
+                               msg_ui_composer_message_load_message(cd->msg_handle, msg_id, is_forward_msg);
+                               cd->set_loaded_data_ret = msg_ui_composer_message_set_loaded_data(cd, set_recipient);
+                               Evas_Object *entry = msg_ui_composer_body_get_page_entry(cd, 0);
+                               if (entry) {
+                                       cd->is_edit_clicked = true;
+                                       msg_ui_composer_body_body_layout_resize_cb(cd, NULL, cd->input_field_bg, NULL);
+                               }
+
+                               /* Update recipient string */
+                               msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+
+                               cd->loading_draft = false;
+
+                               free(bundle_txt);
+                               bundle_txt = NULL;
+                       } else if (cd->msg_id > 0) {
+                               cd->loading_draft = true;
+
+                               msg_ui_composer_message_init();
+                               msg_ui_composer_message_load_message(cd->msg_handle, cd->msg_id, false);
+                               cd->set_loaded_data_ret = msg_ui_composer_message_set_loaded_data(cd, true);
+
+                               cd->loading_draft = false;
+                       } else {
+                               D_EMSG("there is no msgid");
+                       }
+               } else {
+                       if ((app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_TO, &bundle_txt) == APP_CONTROL_ERROR_NONE) && bundle_txt) {
+                               __msgc_parse_recipient_list(cd, bundle_txt);
+                               /* Update recipient string */
+                               msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+
+                               free(bundle_txt);
+                               bundle_txt = NULL;
+                       } else {
+                               if ((app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_NUMBER_INDEX, &bundle_txt) == APP_CONTROL_ERROR_NONE) && bundle_txt) {
+                                       char *recipient = NULL;
+                                       char *index  = NULL;
+                                       char *save_p = NULL;
+                                       int idx = 0;
+
+                                       char *copy_string = MSG_STRDUP(bundle_txt);
+                                       if (copy_string) {
+                                               recipient = strtok_r(copy_string, "/", &save_p);
+                                               if (recipient) {
+                                                       index = strtok_r(NULL, "/", &save_p);
+                                                       if (index) {
+                                                               D_SEC_MSG("NUMBER_INDEX = %s[%s]", recipient, index);
+                                                               idx = atoi(index);
+                                                       } else {
+                                                               idx = 0;
+                                                       }
+
+                                                       char *normalized_number = msg_common_make_normalized_number(recipient);
+
+                                                       if (normalized_number) {
+                                                               D_SEC_MSG("normalized_number = [%s]", normalized_number);
+                                                               recipient = normalized_number;
+                                                       }
+
+                                                       if (msg_ui_composer_recipient_count_get(cd->recipient) >= cd->recipient_max_count) {
+                                                               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+                                                       } else {
+                                                               if (msg_ui_composer_recipient_duplicate_check(cd->recipient, recipient) == COMPOSER_RETURN_RECIPIENT_DUPLICATE) {
+                                                                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_DUP_RECP);
+                                                               } else {
+                                                                       if (msg_ui_composer_recipient_vaild_check(recipient) == EINA_FALSE) {
+                                                                               if (cd->invalid_recipient_list)
+                                                                                       msg_ui_composer_recipient_clear_invalid_recipient_list(cd);
+
+                                                                               msg_ui_composer_recipient_add_invalid_recipient_list(cd, recipient);
+
+                                                                               char *popup_str = NULL;
+
+                                                                               msg_ui_composer_unset_view(cd);
+                                                                               popup_str = msg_ui_composer_recipient_get_invalid_recipient_popup_str(cd);
+                                                                               if (popup_str == NULL) {
+                                                                                       popup_str = "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID";
+                                                                               } else {
+                                                                                       msg_ui_composer_last_focused_entry_set(cd, cd->recipient->entry);
+                                                                               }
+                                                                               msg_common_create_noti_toast_popup(popup_str);
+
+                                                                       } else {
+                                                                               msg_ui_composer_recipient_append(cd->recipient, recipient, idx);
+                                                                               /* Update recipient string */
+                                                                               msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+                                                                       }
+                                                               }
+                                                       }
+
+                                                       if (normalized_number) {
+                                                               free(normalized_number);
+                                                               normalized_number = NULL;
+                                                       }
+                                               }
+
+                                               g_free(copy_string);
+                                       }
+
+                                       free(bundle_txt);
+                                       bundle_txt = NULL;
+                               }
+                       }
+
+                       if (app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_BODY, &bundle_txt) == APP_CONTROL_ERROR_NONE) {
+                               msg_ui_composer_body_set_loaded_text(cd, bundle_txt, 0);
+                               free(bundle_txt);
+                               bundle_txt = NULL;
+                       }
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+                       if (app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_SUBJECT, &bundle_txt) == APP_CONTROL_ERROR_NONE) {
+                               msg_ui_composer_subject_set_loaded_data(cd, bundle_txt);
+                               free(bundle_txt);
+                               bundle_txt = NULL;
+                       }
+
+                       if (app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_ATTACHFILE, &bundle_txt) == APP_CONTROL_ERROR_NONE) {
+                               D_SEC_MSG("ATTACHFILE = (%s)", bundle_txt);
+                               bool is_sound_and_shot = false;
+                               cd->attachlist = make_tokenize_list(bundle_txt, COMPOSER_BUNDLE_ATTACH_TOKEN, COMPOSER_UTIL_LIST_TYPE_FILE, &is_sound_and_shot);
+                               /* Check whether this file is sound & shot or not */
+                               if ((cd->is_sound_and_shot == false) && (is_sound_and_shot == true)) {
+                                       D_MSG("At least there is a sound & shot image");
+                                       cd->is_sound_and_shot = true;
+                               }
+
+                               free(bundle_txt);
+                               bundle_txt = NULL;
+                       }
+
+                       /* support attachfile arraylist */
+                       char **attachment_list = NULL;
+                       int file_cnt = 0;
+
+                       if (app_control_get_extra_data_array(svc_handle, MSG_BUNDLE_KEY_ATTACHFILE_ARRAY, &attachment_list, &file_cnt) == APP_CONTROL_ERROR_NONE) {
+                               if (attachment_list) {
+                                       if (file_cnt) {
+                                               int i = 0;
+                                               for (i = 0; i < file_cnt; i++) {
+                                                       if (attachment_list[i]) {
+                                                               D_SEC_MSG("ATTACHMENT_LIST[%d] = (%s)", i, attachment_list[i]);
+
+                                                               cd->attachlist = eina_list_append(cd->attachlist, strdup(attachment_list[i]));
+                                                               free(attachment_list[i]);
+                                                       }
+                                               }
+                                       }
+
+                                       free(attachment_list);
+                               }
+                       }
+
+                       if (cd->attachlist)
+                               msg_ui_composer_body_items_add(cd);
+#endif
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_composer_sent_status_cb(msg_handle_t Handle, msg_struct_t pStatus, void *pUserParam)
+{
+       D_ENTER;
+/*     MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)pUserParam; */
+/*     D_MSG_RETM_IF(cd == NULL, "composer data is NULL"); */
+}
+
+static void __msgc_end_popup_ok_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");
+
+       msg_ui_composer_destroy_popup(cd, cd->popup_end);
+
+       if (cd->composer_mode == MSG_COMPOSER_MODE_EDIT)
+               cd->delete_edit_msg = true;
+
+       ug_destroy_me(cd->ug);
+}
+
+static void __msgc_end_popup_cancel_btn_clicked_cb(void *data, 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;
+       /* Be careful when you use obj, because this cb funtion is used for clicked cb and back key */
+
+       msg_ui_composer_destroy_popup(cd, cd->popup_end);
+       cd->isclosed = false;
+       D_LEAVE;
+}
+
+static void __msgc_end_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *)event_info;
+
+       if (ev->button == 3) {/* if mouse right button is up */
+               D_MSG("Back operation");
+               msg_ui_composer_destroy_popup(cd, cd->popup_end);
+               cd->isclosed = false;
+               msg_ui_composer_last_focus_load(cd);
+       }
+}
+
+static void  __msg_ui_composer_end_popup(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       if (cd->popup_end) {
+               msg_ui_composer_destroy_popup(cd, cd->popup_end);
+               cd->popup_end = NULL;
+       }
+
+       Evas_Object *popup = msg_ui_composer_create_text_popup_with_hardkey_cb(cd->main_window, cd, _MSGSTR("IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"),
+                                                                                                                                                       __msgc_end_popup_mouseup_cb, __msgc_end_popup_cancel_btn_clicked_cb);
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB");
+       Evas_Object *negative_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", negative_btn);
+       evas_object_smart_callback_add(negative_btn, "clicked", __msgc_end_popup_cancel_btn_clicked_cb, cd);
+       Evas_Object *positive_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_DISCARD_ABB");
+       elm_object_part_content_set(popup, "button2", positive_btn);
+       evas_object_smart_callback_add(positive_btn, "clicked", __msgc_end_popup_ok_btn_clicked_cb, cd);
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       cd->popup_end = popup;
+
+       D_LEAVE;
+       return;
+}
+
+static void __msgc_move_more_ctxpopup(Evas_Object *main_window, Evas_Object *ctx)
+{
+       D_MSG_RETM_IF(main_window == NULL, "main_window is NULL");
+       D_MSG_RETM_IF(ctx == NULL, "ctx is NULL");
+
+       Evas_Coord w = 0;
+       Evas_Coord h = 0;
+       int pos = -1;
+
+       elm_win_screen_size_get(main_window, NULL, NULL, &w, &h);
+       pos = elm_win_rotation_get(main_window);
+
+       switch (pos) {
+               case 0:
+               case 180:
+                       evas_object_move(ctx, w/2, h);
+                       break;
+               case 90:
+                       evas_object_move(ctx, h/2, w);
+                       break;
+               case 270:
+                       evas_object_move(ctx, h/2, w);
+                       break;
+       }
+}
+
+static void __msgc_ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       D_MSG_RETM_IF(!obj, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       if (obj != cd->ctx_popup) {
+               D_EMSG("Invalid case. cd->ctx_popup(%p), obj(%p)", cd->ctx_popup, obj);
+               evas_object_del(obj);
+       } else {
+               if (cd->ctx_popup) {
+                       evas_object_del(cd->ctx_popup);
+                       cd->ctx_popup = NULL;
+               }
+       }
+
+       msg_ui_composer_reset_view(cd);
+
+       D_LEAVE;
+}
+
+static void __msgc_resize_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       __msgc_move_more_ctxpopup(cd->main_window, cd->ctx_popup);
+}
+
+static void __msgc_rotate_more_ctxpopup_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       __msgc_move_more_ctxpopup(cd->main_window, cd->ctx_popup);
+}
+
+static void __msgc_delete_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *ctx = obj;
+
+       evas_object_event_callback_del_full(cd->main_window, EVAS_CALLBACK_RESIZE, __msgc_resize_more_ctxpopup_cb, cd);
+       evas_object_smart_callback_del_full(elm_object_top_widget_get(ctx), "rotation,changed", __msgc_rotate_more_ctxpopup_cb, cd);
+       evas_object_smart_callback_del(ctx, "dismissed", __msgc_ctxpopup_dismissed_cb);
+       evas_object_event_callback_del_full(ctx, EVAS_CALLBACK_DEL, __msgc_delete_more_ctxpopup_cb, cd);
+
+       /* If focus is set to last entry after showing scheduled message screen in tts mode, focus is moved and tts reads last focused entry.
+       So, don't set focus to last focused entry when ctx_popup is destroyed with scheduled message menu */
+       if (!(cd->bubble_data && cd->bubble_data->popup)) {
+               msg_ui_composer_reset_view(cd);
+       }
+}
+
+void msgc_naviframe_more_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data || !obj, "param is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       bool valid_phonenum = false;
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               if (!bubble_data) {
+                       D_EMSG("msg_ui_mode is MSG_UG_MODE_BUBBLE_COMPOSER, but no bubble_data");
+                       return;
+               }
+
+               if (bubble_data->viewmode == BUBBLE_EDIT_VIEW) {
+                       D_MSG("bubble_edit_view.. return;");
+                       return;
+               }
+       }
+
+       if (cd->ctx_popup) {
+               evas_object_del(cd->ctx_popup);
+               cd->ctx_popup = NULL;
+               D_MSG("delete ctx popup");
+               return;
+       } else {
+               /* Currently there is no item to append to context popup in Full composer and Only composer .
+               * So no need to create the context popup .Below Lines can be removed , as soon as we add any item to ctxpopup in
+               * FULL or ONLY composer modes */
+               if ((cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER) || (cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER))
+                       return;
+
+               /* When more button is clicked keypad is hidden so storing the keypad status.
+                * so that when more popup id destroyed based on this flag we will decide whether to show the keypad  or not */
+
+               /* keypad is not hided automatically because of  manual control by app */
+               msg_ui_composer_unset_view(cd);
+
+               if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER)
+                       msg_ui_composer_recipient_destroy_no_recipient_icon(cd->recipient);
+
+               if (cd->popup_end) {
+                       evas_object_del(cd->popup_end);
+                       cd->popup_end = NULL;
+               }
+
+               if (bubble_data) {
+                       msg_ui_bubble_destroy_popup(bubble_data);
+
+                       if (bubble_data->addr_list.addr_cnt == 1) {
+                               valid_phonenum = msg_common_is_valid_phone_number(bubble_data->addr_list.addr_info[0].address);
+                       }
+               }
+
+               Evas_Object *ctx_popup = NULL;
+               if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+                       /* fix ctx_popup flashing issue because of focus */
+                       ctx_popup = elm_ctxpopup_add(cd->main_window);
+                       elm_object_style_set(ctx_popup, "more/default");
+                       elm_ctxpopup_auto_hide_disabled_set(ctx_popup, EINA_TRUE);
+
+                       elm_ctxpopup_direction_priority_set(ctx_popup,
+                                       ELM_CTXPOPUP_DIRECTION_UP,
+                                       ELM_CTXPOPUP_DIRECTION_UNKNOWN,
+                                       ELM_CTXPOPUP_DIRECTION_UNKNOWN,
+                                       ELM_CTXPOPUP_DIRECTION_UNKNOWN);
+
+                       evas_object_smart_callback_add(ctx_popup, "dismissed", __msgc_ctxpopup_dismissed_cb, cd);
+                       evas_object_event_callback_add(ctx_popup, EVAS_CALLBACK_DEL, __msgc_delete_more_ctxpopup_cb, cd);
+                       evas_object_event_callback_add(cd->main_window, EVAS_CALLBACK_RESIZE, __msgc_resize_more_ctxpopup_cb, cd);
+                       evas_object_smart_callback_add(elm_object_top_widget_get(ctx_popup), "rotation,changed", __msgc_rotate_more_ctxpopup_cb, cd);
+                       eext_object_event_callback_add(ctx_popup, EEXT_CALLBACK_BACK, eext_ctxpopup_back_cb, cd);
+                       eext_object_event_callback_add(ctx_popup, EEXT_CALLBACK_MORE, eext_ctxpopup_back_cb, cd);
+
+                       if (bubble_data) {
+                               elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE"), NULL,
+                                               msg_ui_bubble_more_delete_clicked_cb, cd);
+                               if (cd->check_push_cb_msg != TRUE) {
+                                       elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"), NULL,
+                                                       msg_ui_bubble_add_recipient_clicked_cb, cd);
+                               }
+                       }
+
+                       __msgc_move_more_ctxpopup(cd->main_window, ctx_popup);
+
+                       if (cd->is_keypad_show == false) {
+                               evas_object_show(ctx_popup);
+                               elm_object_focus_set(ctx_popup, EINA_TRUE);
+                       } else {
+                               cd->show_popup = true;
+                       }
+
+               }
+               cd->ctx_popup = ctx_popup;
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_reset_request(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+       COMPOSER_EDIT_STATE_E edit_state = __msg_ui_composer_edit_check(cd);
+       D_MSG("edit_state = %d", edit_state);
+       D_MSG("composer mode = %d, msg_ug_mode = %d", cd->composer_mode, cd->msg_ug_mode);
+
+       msg_thread_id_t tid = 0;
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+               if (edit_state == COMPOSER_EDIT_RECIPIENT_AND_BODY) {
+                       /* auto saving */
+                       msg_ui_composer_message_init();
+
+                       if (msg_ui_composer_get_message_data(cd) == COMPOSER_RETURN_SUCCESS) {
+                               msg_ui_composer_save_message(cd->msg_handle, cd->msg_id, &tid);
+                       }
+
+                       msg_ui_composer_message_destroy();
+               }
+       } else if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               if (edit_state == COMPOSER_EDIT_RECIPIENT) {
+                       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+                       edje_object_signal_emit(_EDJ(cd->navi_title_layout), "hide,subtitle", "");
+                       elm_object_part_text_set(cd->navi_title_layout, "subtitle_text", "");
+
+                       if (bubble_data->bubble_count == 0) {
+                               int err = MSG_SUCCESS;
+
+                               if (bubble_data->isDraft == true)
+                                       err = msg_delete_thread_message_list(bubble_data->msgHandle, bubble_data->threadId, false);
+
+                               if (err == MSG_SUCCESS) {
+                                       app_control_h svc_handle;
+                                       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                               D_EMSG("app_control_create() is failed !!");
+                                       } else {
+                                               char buf[DEF_BUF_LEN_S] = {0,};
+                                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RESULT, MSG_BUNDLE_VALUE_DEL_ALL);
+                                               snprintf(buf, sizeof(buf), "%d", bubble_data->threadId);
+                                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+
+                                               ug_send_result(cd->ug, svc_handle);
+
+                                               app_control_destroy(svc_handle);
+                                       }
+                               } else {
+                                       D_MSG("msg_delete_thread_message_list failed");
+                               }
+                       } else {
+                               /* delete draft message */
+                               if (msg_ui_composer_delete_draft_message(cd->msg_handle, bubble_data->threadId, 0) != COMPOSER_RETURN_SUCCESS)
+                                       D_EMSG("msg_ui_composer_delete_draft_message is failed, treadid(%d)", bubble_data->threadId);
+                       }
+               } else if (edit_state == COMPOSER_EDIT_RECIPIENT_AND_BODY) {
+                       /* auto saving */
+                       msg_ui_composer_message_init();
+
+                       if (msg_ui_composer_get_message_data(cd) == COMPOSER_RETURN_SUCCESS) {
+                               msg_ui_composer_save_message(cd->msg_handle, cd->msg_id, &tid);
+                       }
+
+                       msg_ui_composer_message_destroy();
+               }
+
+               /* clear recipient_list of bubble composer */
+               msg_ui_composer_recipient_clear_recipient_list(cd);
+       }
+
+       /*process reset*/
+       msg_ui_composer_reset(cd, svc_handle);
+
+       D_LEAVE;
+}
+
+/*
+ *     1. clear all composer editing obj
+ *     2. make composer using bundle val
+*/
+COMPOSER_RETURN_TYPE_E msg_ui_composer_reset(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "cd is NULL");
+
+       if (cd->working_path) {
+               msg_composer_destroy_working_dir(cd->working_path);
+               g_free(cd->working_path);
+               cd->working_path = NULL;
+       }
+
+       cd->working_path = msg_composer_create_working_dir();
+
+       if (cd->working_path == NULL) {
+               D_EMSG("Fail of make working dir!!!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (svc_handle) {
+               msg_ui_composer_clear(cd);
+
+               char *thread_id = NULL;
+               char *msg_id = NULL;
+               char *composer_mode = NULL;
+               char *from = NULL;
+
+               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, &thread_id);
+               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, &msg_id);
+               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, &composer_mode);
+               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, &from);
+
+               if (composer_mode) {
+                       if (g_strcmp0(composer_mode, MSG_BUNDLE_VALUE_EDIT) == 0)
+                               cd->composer_mode = MSG_COMPOSER_MODE_EDIT;
+                       else if (g_strcmp0(composer_mode, MSG_BUNDLE_VALUE_FORWARD) == 0)
+                               cd->composer_mode = MSG_COMPOSER_MODE_FORWARD;
+                       else
+                               cd->composer_mode = MSG_COMPOSER_MODE_NORMAL;
+               } else {
+                       cd->composer_mode = MSG_COMPOSER_MODE_NORMAL;
+               }
+
+               if (from && g_strcmp0(from, MSG_BUNDLE_VALUE_INTERNAL) == 0)
+                       cd->isMsgInternal = true;
+               else
+                       cd->isMsgInternal = false;
+
+               /*Change to Bubble view*/
+               if ((thread_id || msg_id) && cd->composer_mode == MSG_COMPOSER_MODE_NORMAL) {
+                       D_MSG("bubble view composer mode = %d, msg_ug_mode = %d", cd->composer_mode, cd->msg_ug_mode);
+
+                       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+                               D_MSG("change bubble view");
+                               msg_thread_id_t tid = 0;
+
+                               if (thread_id)
+                                       tid = atoi(thread_id);
+
+                               msg_ui_composer_change_bubble_view(cd, tid);
+                               msg_ui_bubble_parse_bubble_data(cd->bubble_data, svc_handle);
+                               msg_ui_composer_navi_title_set((void *)cd);
+                               msg_ui_bubble_start_view(cd->bubble_data);
+
+                               /* change body scroller size */
+                               Evas_Object *entry = msg_ui_composer_last_body_entry_get(cd);
+                               int keypad_h = msg_ui_composer_get_keypad_height(entry);
+                               msg_ui_composer_change_body_scroll_size(cd, keypad_h);
+
+                               /* set recipient list for bubble composer */
+                               msg_ui_composer_recipient_set_recipient_list(cd, cd->bubble_data->threadId);
+                       } else if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+                               D_MSG("reload bubble view");
+                               msg_ui_bubble_parse_bubble_data(cd->bubble_data, svc_handle);
+                               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, cd->bubble_data->threadId);
+                       } else {
+                               D_EMSG("Invalid type");
+                       }
+
+                       cd->msg_ug_mode = MSG_UG_MODE_BUBBLE_COMPOSER;
+               } else {
+                       D_MSG("normal composer composer mode = %d, msg_ug_mode = %d", cd->composer_mode, cd->msg_ug_mode);
+
+                       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+                               D_MSG("change composer view");
+                               if (cd->bubble_data) {
+                                       cd->bubble_data->ug_state = BUBBLE_UG_DESTROY;
+                                       msg_ui_bubble_deinit_bubble_data(cd->bubble_data);
+                                       cd->bubble_data = NULL;
+                               }
+
+                               msg_ui_composer_change_composer_view(cd);
+                       }
+
+                       if (cd->isMsgInternal == true)
+                               cd->msg_ug_mode = MSG_UG_MODE_FULL_COMPOSER;
+                       else
+                               cd->msg_ug_mode = MSG_UG_MODE_ONLY_COMPOSER;
+
+                       __msg_ui_composer_bundle_data_process(cd, svc_handle);
+               }
+
+               if (thread_id)
+                       free(thread_id);
+
+               if (msg_id)
+                       free(msg_id);
+
+               if (composer_mode)
+                       free(composer_mode);
+
+               if (from)
+                       free(from);
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_start(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "Composer Data is NULL");
+       COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+       cd->state = COMPOSER_STATE_TYPE_RUNNING;
+
+       /* bundle data parsing */
+       if (svc_handle) {
+               if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+                       cd->isLoad = true;
+                       __msg_ui_composer_bundle_data_process(cd, svc_handle);
+
+                       if (cd->attachlist == NULL)
+                               cd->isLoad = false;
+
+               } else if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+                       D_MSG("START BUBBLE COMPOSER");
+
+                       PMSG_BUBBLE_DATA bubble_data = (PMSG_BUBBLE_DATA)cd->bubble_data;
+                       msg_ui_bubble_parse_bubble_data(bubble_data, svc_handle);
+
+                       msg_ui_composer_navi_title_set((void *)cd);
+                       msg_ui_bubble_start_view(bubble_data);
+
+                       /* set recipient list for bubble composer */
+                       msg_ui_composer_recipient_set_recipient_list(cd, cd->bubble_data->threadId);
+               }
+       }
+
+       D_LEAVE;
+       return ret;
+}
+
+void msg_ui_composer_set_loading_focus(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       /* set first focus*/
+       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+               if (!msg_ui_composer_popup_exist(cd)) {
+                       msg_ui_composer_recipient_focus_set(cd->recipient);
+               } else {
+                       /* set last focused entry in order to give focus to this entry after desroying popup */
+                       Evas_Object *entry = msg_ui_composer_recipient_entry_get(cd->recipient);
+                       msg_ui_composer_last_focused_entry_set(cd, entry);
+                       if (cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER)
+                               cd->saved_keypad_state = true;
+               }
+       } else if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               if (cd->bubble_data) {
+                       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+
+                       if (!bubble_data->popup) {
+                               msg_ui_composer_body_focus_set(cd, 0);
+                       }
+               }
+       }
+}
+
+static bool __msgc_has_only_draft_msg_by_thread_id(MSG_COMPOSER_VIEW_DATA_S *cd, msg_thread_id_t tid)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, false, "cd is NULL");
+       D_MSG_RETVM_IF(tid <= 0, false, "tid <= 0");
+       msg_struct_list_s conv_list;
+       msg_error_t err = MSG_SUCCESS;
+       bool ret = false;
+
+       memset(&conv_list, 0, sizeof(msg_struct_list_s));
+
+       err = msg_get_conversation_view_list(cd->msg_handle, tid, &conv_list);
+       if (err == MSG_SUCCESS) {
+               /* check whether only 1 draft message is existed or not in the thread id */
+               if (conv_list.nCount == 1) {
+                       int value = 0;
+                       msg_folder_id_t folder_id = MSG_IOSBOX_ID;
+
+                       msg_get_int_value(conv_list.msg_struct_info[0], MSG_CONV_MSG_FOLDER_ID_INT, &value);
+                       folder_id = (msg_folder_id_t)value;
+
+                       if (folder_id == MSG_DRAFT_ID) {
+                               D_MSG("Only draft message is existed");
+                               ret = true;
+                       }
+               }
+
+               msg_release_list_struct(&conv_list);
+       } else {
+               D_EMSG("msg_get_conversation_view_list is failed(%d)", err);
+       }
+
+       return ret;
+}
+
+static void __msg_composer_auto_save_and_delete_msg(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+       bool need_to_send_msg = false;
+       char buf[DEF_BUF_LEN_S] = {0,};
+       GSList *address_list = NULL;
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+
+       if (cd->delete_edit_msg == true) {
+               /* delete edited draft message */
+               msg_thread_id_t tid = 0;
+
+               if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+
+                       if (bubble_data)
+                               tid = bubble_data->threadId;
+                       else
+                               D_EMSG("bubble_data is NULL");
+               } else {
+                       tid = cd->old_tid;
+               }
+
+               D_MSG("tid = %d, cd->msg_id = %d", tid, cd->msg_id);
+               if (tid > 0) {
+                       if (msg_ui_composer_recipient_count_get(cd->recipient) == 0)
+                               msg_ui_composer_delete_draft_message(cd->msg_handle, tid, 0);
+                       snprintf(buf, sizeof(buf), "%d", tid);
+                       need_to_send_msg = true;
+
+               }
+       } else {
+               /* delete and save msg */
+               if (!cd->disable_auto_save_mode) {
+                       COMPOSER_EDIT_STATE_E edit_state = __msg_ui_composer_edit_check(cd);
+                       D_IMSG("edit_state = %d", edit_state);
+
+                       if (edit_state == COMPOSER_EDIT_RECIPIENT_AND_BODY) {
+                               /* auto save composer data */
+                               msg_ui_composer_message_init();
+
+                               if (msg_ui_composer_get_message_data(cd) == COMPOSER_RETURN_SUCCESS) {
+                                       /* get tid */
+                                       msg_thread_id_t tid = 0;
+
+                                       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+                                               if (bubble_data)
+                                                       tid = bubble_data->threadId;
+                                               else
+                                                       D_EMSG("bubble_data is NULL");
+                                       } else {
+                                               /* In edit mode, getting tid from recipient address will fail when recipient is changed.
+                                               * For this particular case we use the thread obtained in the composer launch
+                                               */
+
+                                               if (cd->composer_mode == MSG_COMPOSER_MODE_EDIT) {
+                                                       D_MSG("Composer is in EDIT mode");
+                                                       tid = cd->old_tid;
+
+                                                       /* If recipient is changed in edit mode, then msg id is not updated, but thread id is changed.
+                                                       Thread list view can't delete previous thread list. Because thread view list can't know whehter previous thread id is deleted or not after updating message.
+                                                       There is no inforamtion in msg_changed_cb of msg_service.
+                                                       For that case, temporarily we choice deleting draft message and save it. So, msg_id = 0 */
+
+                                                       /* Except thred list updating case, msg should be updated with msgid.
+                                                       There is a issue. Scheduled message > edit > back > saved as draft > new draft msg is added but scheduled msg remained. Becasue msg_id is set as 0  */
+                                                       if (__msgc_has_only_draft_msg_by_thread_id(cd, tid)) {
+                                                               cd->msg_id = 0;
+                                                       }
+
+                                                       if (__msgc_has_only_draft_msg_by_thread_id(cd, tid) && tid > 0) {
+                                                               if (msg_ui_composer_delete_draft_message(cd->msg_handle, tid, cd->msg_id) == COMPOSER_RETURN_SUCCESS) {
+                                                                       snprintf(buf, sizeof(buf), "%d", tid);
+                                                                       need_to_send_msg = true;
+                                                               }
+
+                                                       }
+
+                                               } else {
+                                                       address_list = msg_ui_composer_message_get_address();
+                                                       msg_ui_composer_get_thread_id_by_address(cd->msg_handle, GLIST_TYPE, address_list, &tid);
+                                                       if (tid <= 0) {
+                                                               D_EMSG("tid is invalid %d", tid);
+                                                       }
+                                               }
+                                       }
+
+                                       D_MSG("tid = %d, msg_id = %d", tid, cd->msg_id);
+                                       /* delete draft message */
+                                       if (tid > 0) {
+                                               snprintf(buf, sizeof(buf), "%d", tid);
+                                               need_to_send_msg = true;
+                                       }
+
+                                       /* check current message is existed or not */
+                                       if (cd->msg_id > 0) {
+                                               if (msg_composer_common_check_msg_id(cd, cd->msg_id) == false) {
+                                                       D_IMSG("currently msg_id(%d) is not existed", cd->msg_id);
+                                                       /* Draft message may be deleted from other module. So, reset cd->msg_id */
+                                                       cd->msg_id = 0;
+                                               }
+                                       }
+
+                                       D_MSG("save draft message");
+                                       if (msg_ui_composer_save_message(cd->msg_handle, cd->msg_id, &tid) >= 0) {
+                                               if (tid <= 0)
+                                                       msg_ui_composer_get_thread_id_by_address(cd->msg_handle, GLIST_TYPE, address_list, &tid);
+
+                                               D_MSG("tid = %d, cd->msg_id = %d", tid, cd->msg_id);
+                                       }
+                               }
+
+                               msg_ui_composer_message_destroy();
+
+                       } else if (edit_state == COMPOSER_EDIT_RECIPIENT) {
+                               if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+                                       /* delete draft message */
+                                       MSG_BUBBLE_DATA *bubble_data = cd->bubble_data;
+
+                                       if (bubble_data) {
+                                               snprintf(buf, sizeof(buf), "%d", bubble_data->threadId);
+                                               need_to_send_msg = true;
+                                       }
+                               } else {
+                                       if (cd->composer_mode == MSG_COMPOSER_MODE_EDIT) {
+                                               /* delete draft message */
+                                               msg_thread_id_t tid = 0;
+
+                                               msg_ui_composer_message_init();
+
+                                               if (msg_ui_composer_get_message_data(cd) == COMPOSER_RETURN_SUCCESS) {
+                                                       GSList *address_list = msg_ui_composer_message_get_address();
+                                                       msg_ui_composer_get_thread_id_by_address(cd->msg_handle, GLIST_TYPE, address_list, &tid);
+                                                       D_MSG("tid = %d, cd->msg_id = %d", tid, cd->msg_id);
+
+                                                       if (tid > 0) {
+                                                               if (__msgc_has_only_draft_msg_by_thread_id(cd, tid))
+                                                                       msg_ui_composer_delete_draft_message(cd->msg_handle, tid, 0);
+                                                               snprintf(buf, sizeof(buf), "%d", tid);
+                                                               need_to_send_msg = true;
+                                                       }
+                                               }
+
+                                               msg_ui_composer_message_destroy();
+                                       }
+                               }
+                       }
+               }
+       }
+
+       if (true == need_to_send_msg) {
+               app_control_h svc_handle = NULL;
+
+               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                       D_EMSG("app_control_create() is failed !!");
+               } else {
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RESULT, MSG_BUNDLE_VALUE_DEL_BUBBLE);
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+                       msg_ui_composer_bubble_send_del_result(cd, svc_handle);
+                       app_control_destroy(svc_handle);
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void __msgc_rotation_changed_cb(void *data, Evas_Object *obj, void *event)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+#ifdef MSGC_SUPPORT_USE_OTHER_NUMBER
+       RECIPIENT_S *rd = cd->recipient;
+#endif
+       COMPOSER_ROTATE_TYPE_E rotate = COMPOSER_ROTATE_UNKNOWN;
+       int changed_rotation = elm_win_rotation_get(obj);
+       D_MSG("changed rotation [%d]", changed_rotation);
+
+       /* change popup layout */
+       if (cd->add_popup || cd->add_template_popup) {
+               Evas_Object *popup = NULL;
+
+               if (cd->add_template_popup) {
+                       popup = cd->add_template_popup;
+               } else {
+                       popup = cd->add_popup;
+               }
+               msg_ui_composer_change_list_popup_layout(cd, popup, COMPOSER_LIST_POPUP_LIST, changed_rotation);
+       }
+#ifdef MSGC_SUPPORT_USE_OTHER_NUMBER
+       else if (rd && rd->change_number_popup) {
+               Evas_Object *popup = NULL;
+
+               popup = rd->change_number_popup;
+               msg_ui_composer_change_list_popup_layout(cd, popup, COMPOSER_LIST_POPUP_GENLIST, changed_rotation);
+       }
+#endif
+       else if (cd->add_grid_popup || cd->add_text_popup || cd->replace_grid_popup) {
+               Evas_Object *popup = NULL;
+               if (cd->add_grid_popup) {
+                       popup = cd->add_grid_popup;
+               } else if (cd->add_text_popup) {
+                       popup = cd->add_text_popup;
+               } else if (cd->replace_grid_popup) {
+                       popup = cd->replace_grid_popup;
+               } else {
+                       D_EMSG("not a valid grid popup");
+               }
+               if (popup) {
+                       msg_ui_composer_change_grid_popup_layout(cd, popup, changed_rotation);
+               }
+       }
+
+       if (cd->bubble_data) {
+               PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+
+               if (bubble_data->popup) {
+                       if (bubble_data->popup_type >= BUBBLE_POPUP_LONGPRESS_MENU_LIST && bubble_data->popup_type < BUBBLE_POPUP_SAVE_ATTACHMENT_LIST) {
+                               msg_ui_bubble_list_popup_size_min_set(bubble_data);
+                       }
+#ifndef _MSG_FEATURE_MMS_DISABLE
+                       else if (bubble_data->popup_type == BUBBLE_POPUP_SAVE_ATTACHMENT_LIST) {
+                               Evas_Object *box = NULL;
+                               box = elm_object_content_get(bubble_data->popup);
+
+                               if (box && bubble_data->popup_genlist) {
+                                       double list_cnt = 0.0;
+                                       int max_list_cnt = 0;
+
+                                       if (changed_rotation == COMPOSER_ROTATE_LANDSCAPE || changed_rotation == COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN)
+                                               max_list_cnt = MSG_BUBBLE_POPUP_LIST_LANDSCAPE_MAX;
+                                       else
+                                               max_list_cnt = MSG_BUBBLE_POPUP_LIST_MAX_MENU;
+
+                                       list_cnt = elm_genlist_items_count(bubble_data->popup_genlist);
+
+                                       if (list_cnt < max_list_cnt)
+                                               evas_object_size_hint_min_set(box, 0, ELM_SCALE_SIZE(MSG_BUBBLE_POPUP_LIST_1LINE_HEIGHT * list_cnt));
+                                       else
+                                               evas_object_size_hint_min_set(box, 0, ELM_SCALE_SIZE(MSG_BUBBLE_POPUP_LIST_1LINE_HEIGHT * max_list_cnt));
+                               }
+                       }
+#endif
+               }
+       }
+
+       switch (changed_rotation) {
+               case 0:
+                       rotate = COMPOSER_ROTATE_PORTRAIT;
+                       break;
+               case 90:
+                       rotate = COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN;
+                       break;
+               case 180:
+                       rotate = COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN;
+                       break;
+               case 270:
+                       rotate = COMPOSER_ROTATE_LANDSCAPE;
+                       break;
+               default:
+                       break;
+       }
+
+       msg_ui_composer_change_body_layout_mode(cd, rotate);
+
+       D_MSG("rotate val [%d]", rotate);
+
+       D_LEAVE;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_destroy(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+
+       msg_ui_destroy_attach_panel(cd);
+
+       /* when user clicks the Switch button to change data to voice preferred SIM , then we create popup to block user from doing anything
+        * And at this time if user goes to task manager and kills the app, then sim need to be reset back . So Below lines are added for this special case */
+       if (cd->is_net_switch_popup_exist == true) {
+               int curr_sim_idx = 0;
+               preference_get_int(KEY_MSG_APP_RESET_SIM_INDEX, &curr_sim_idx);
+               if (curr_sim_idx != 0)
+                       msg_ui_common_reset_data_service_back_to_main_setting_value(cd);
+               cd->is_net_switch_popup_exist = false;
+       }
+
+       msg_ui_composer_decrease_ref_count();
+
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "data is NULL");
+
+       D_IMSG("===== Composer UG Destroy Start =====");
+       if (cd->callee_svc_handle) {
+               D_PRINT("===== destroy service callee's process =====");
+               app_control_send_terminate_request(cd->callee_svc_handle);
+               app_control_destroy(cd->callee_svc_handle);
+               cd->callee_svc_handle = NULL;
+       }
+
+       /* composer UG is called from logs which is not support the rotations so related the wm value need to be resotred. */
+       D_MSG("rot_available_cnt : %d, preferred_rot : %d", cd->rot_available_cnt, cd->preferred_rot);
+       if (cd->preferred_rot == -1) {
+               elm_win_wm_rotation_available_rotations_set(cd->main_window, cd->rot, cd->rot_available_cnt);
+       } else {
+               elm_win_wm_rotation_preferred_rotation_set(cd->main_window, (const int)cd->preferred_rot);
+       }
+
+       MSG_FREE(cd->rot);
+
+       __msg_composer_auto_save_and_delete_msg(cd);
+
+       /* Delete the memory allocated for signature */
+       cd->is_signature_enabled = false;
+       if (NULL != cd->signature_string) {
+               g_free(cd->signature_string);
+               cd->signature_string = NULL;
+       }
+
+       /* disconnect volume key handler */
+       msg_ui_composer_disconnect_handler(cd);
+
+       msg_ui_composer_sim_controller_deinit(cd);
+
+       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);
+               cd->job_thread_end = NULL;
+       }
+
+       if (cd->attach_thread) {
+               D_PRINT("===== Thread Delete =====");
+               ecore_thread_cancel(cd->attach_thread);
+               cd->attach_thread = NULL;
+       }
+
+       if (cd->vcard_thread) {
+               D_PRINT("===== vcard Thread Delete =====");
+               ecore_thread_cancel(cd->vcard_thread);
+               cd->vcard_thread = NULL;
+       }
+
+       MSG_TIMER_OBJECT_DEL(cd->flight_mode_timer);
+       MSG_TIMER_OBJECT_DEL(cd->show_popup_timer);
+       MSG_TIMER_OBJECT_DEL(cd->emg_mode_timer);
+       MSG_TIMER_OBJECT_DEL(cd->vol_up_key_longpress);
+       MSG_TIMER_OBJECT_DEL(cd->vol_down_key_longpress);
+       D_PRINT("===== Timer are deleted =====");
+
+       MSG_ECORE_IDLER_DEL(cd->popup_size_idler);
+       MSG_ECORE_IDLER_DEL(cd->loc_destroy_idler);
+       MSG_ECORE_IDLER_DEL(cd->add_attach_media_idler);
+       D_PRINT("===== Idler are deleted =====");
+
+       if (cd->recipient) {
+               D_PRINT("===== Recipient Delete =====");
+               msg_ui_composer_recipient_delete(cd->recipient);
+               cd->recipient = NULL;
+       }
+
+       D_PRINT("===== Recipient list Clear =====");
+       msg_ui_composer_recipient_clear_recipient_list(cd);
+       msg_ui_composer_recipient_clear_invalid_recipient_list(cd);
+
+       D_PRINT("===== Predict Search Delete =====");
+       msg_ui_composer_predictsearch_list_delete(cd);
+
+       if (cd->isSubject) {
+               D_PRINT("===== Subject Delete =====");
+               msg_ui_composer_subject_clear(cd);
+       }
+
+       if (cd->attach_data.attachment_Cnt > 0 || cd->attach_data.attachitem_list) {
+               D_PRINT("===== Attachment Delete =====");
+               msg_ui_composer_attachment_clear(cd);
+       }
+
+       if (cd->result_string) {
+               eina_strbuf_free(cd->result_string);
+       }
+
+       D_PRINT("===== Body Delete =====");
+       msg_ui_composer_body_delete(cd);
+
+       /* support multiwindow dnd */
+       elm_drop_item_container_del(cd->navi_bar);
+
+       evas_object_event_callback_del(cd->navi_bar, EVAS_CALLBACK_CHANGED_SIZE_HINTS, msg_ui_composer_naviframe_size_hints_changed);
+       if (cd->job_naviframe_size_hints_changed) {
+               ecore_job_del(cd->job_naviframe_size_hints_changed);
+               cd->job_naviframe_size_hints_changed = NULL;
+       }
+
+       evas_object_smart_callback_del_full(cd->main_window, "wm,rotation,changed", __msgc_rotation_changed_cb, cd);
+
+       D_PRINT("===== Close Msg Handle =====");
+       msg_close_msg_handle(&cd->msg_handle);
+
+       D_PRINT("===== Delete Popup  =====");
+       msg_ui_composer_popup_delete_all(cd);
+
+       D_PRINT("===== Deleting Ignore HW back events  timer =====");
+       MSG_TIMER_OBJECT_DEL(cd->ignore_hw_back_events_timer);
+
+       if (cd->lockscreen_svc_handle) {
+               app_control_destroy(cd->lockscreen_svc_handle);
+               cd->lockscreen_svc_handle = NULL;
+       }
+
+       if (cd->bubble_data) {
+               D_PRINT("===== Delete bubble data =====");
+               cd->bubble_data->ug_state = BUBBLE_UG_DESTROY;
+               msg_ui_bubble_deinit_bubble_data(cd->bubble_data);
+               cd->bubble_data = NULL;
+       }
+
+       if (cd->base) {
+               D_PRINT("===== Delete base layout =====");
+               evas_object_del(cd->base);
+               cd->base = NULL;
+       }
+
+       if (cd->working_path) {
+               msg_composer_destroy_working_dir(cd->working_path);
+               g_free(cd->working_path);
+               cd->working_path = NULL;
+       }
+
+       if (cd->attachment_string) {
+               g_free(cd->attachment_string);
+               cd->attachment_string = NULL;
+       }
+
+       if (cd->th) {
+               elm_theme_extension_del(cd->th, MSG_CUSTOM_WINSET_EDJ);
+               elm_theme_free(cd->th);
+               cd->th = NULL;
+       }
+
+       if (cd->sim1_icon) {
+               free(cd->sim1_icon);
+               cd->sim1_icon = NULL;
+       }
+       if (cd->str_send_button) {
+               free(cd->str_send_button);
+               cd->str_send_button = NULL;
+       }
+       if (cd->main_win_focus_in_cb) {
+               ecore_event_handler_del(cd->main_win_focus_in_cb);
+               cd->main_win_focus_in_cb = NULL;
+       }
+       if (cd->main_win_focus_out_cb) {
+               ecore_event_handler_del(cd->main_win_focus_out_cb);
+               cd->main_win_focus_out_cb = NULL;
+       }
+
+       D_IMSG("===== Composer UG Destroy End =====");
+
+       D_LEAVE;
+       return ret;
+}
+
+void msg_ui_composer_process_message(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       D_MSG_RETM_IF(svc_handle == NULL, "svc_handle is NULL");
+
+       char *bundle_txt = NULL;
+       bool reset_message = true;
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_CHECK_CALLEE, &bundle_txt);
+       if (bundle_txt) {
+               if (g_strcmp0(bundle_txt, MSG_BUNDLE_VALUE_YES) == 0) {
+
+                       if (cd->callee_svc_handle) {
+                               D_PRINT("===== destroy service callee's process =====");
+                               app_control_send_terminate_request(cd->callee_svc_handle);
+                               app_control_destroy(cd->callee_svc_handle);
+                               cd->callee_svc_handle = NULL;
+                       }
+
+                       reset_message = false;
+               }
+
+               free(bundle_txt);
+               bundle_txt = NULL;
+       }
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_REQUEST_TYPE, &bundle_txt);
+       if (bundle_txt) {
+               if (g_strcmp0(bundle_txt, MSG_BUNDLE_VALUE_REFRESH_CONV) == 0) {
+                       reset_message = false;
+                       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER && cd->bubble_data)
+                               msg_ui_bubble_list_load(cd->bubble_data, false);
+               }
+       }
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_DESTROY, &bundle_txt);
+       if (bundle_txt) {
+               if (g_strcmp0(bundle_txt, MSG_BUNDLE_VALUE_YES) == 0) {
+                       /* change focus allow set as false so that destroying composer doesn't have a focus.
+                       Because, it doesn't have to have focus before destroying it */
+                       cd->isclosed = true;
+                       elm_object_tree_focus_allow_set(cd->base, EINA_FALSE);
+
+                       if (cd->bubble_data) {
+                               PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+
+                               /** For unregistering storage changed callback of the old bubble ug,
+                                     close the msg handle. And it is re-opened a new msg_handle that will be used while destroying
+                               */
+                               if (msg_close_msg_handle(&cd->msg_handle) == MSG_SUCCESS) {
+                                       cd->msg_handle = NULL;
+                                       bubble_data->msgHandle = NULL;
+
+                                       if (msg_open_msg_handle(&cd->msg_handle) == MSG_SUCCESS) {
+                                               D_MSG("A new message handle opened");
+                                               bubble_data->msgHandle = cd->msg_handle;
+                                       } else {
+                                               D_EMSG("msg_open_msg_handle failed");
+                                       }
+                               }
+                       }
+               }
+               free(bundle_txt);
+               bundle_txt = NULL;
+       }
+
+       if (reset_message)
+               msg_ui_composer_reset_request(cd, svc_handle);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_app_request_del_lockscreen(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");
+
+       int ret = 0;
+       app_control_h reply = NULL;
+
+       if (app_control_create(&reply) < 0 || reply == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               app_control_add_extra_data(reply, "destroy_request", "true");
+
+               ret = app_control_reply_to_launch_request(reply, cd->lockscreen_svc_handle, APP_CONTROL_RESULT_SUCCEEDED);
+               app_control_destroy(reply);
+               if (ret != APP_CONTROL_ERROR_NONE) {
+                       D_EMSG("app_control_reply_to_launch_request() is failed, ret = [%x], [%d]", ret, ret);
+               }
+
+               if (cd->lockscreen_svc_handle) {
+                       app_control_destroy(cd->lockscreen_svc_handle);
+                       cd->lockscreen_svc_handle = NULL;
+               }
+       }
+}
+
+void msg_ui_composer_get_create_mode_from_bundle(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       D_MSG_RETM_IF(svc_handle == NULL, "Bundle Data is NULL");
+
+       char *from = NULL;
+       char *thread_id = NULL;
+       char *msg_id = NULL;
+       char *composer_mode = NULL;
+       char *is_only_composer = NULL;
+       char *operation = NULL;
+       char *caller_layout = NULL;
+       char *msg_type_str = NULL;
+       char *lock_screen = NULL;
+       bool is_recipient = false;
+       msg_thread_id_t tid = 0;
+
+       app_control_get_extra_data(svc_handle, "CALLER", &lock_screen);
+       if (lock_screen) {
+               if (g_strcmp0(lock_screen, "lock_screen") == 0) {
+                       int ret = 0;
+                       ret = app_control_clone(&cd->lockscreen_svc_handle, svc_handle);
+                       if (ret !=  APP_CONTROL_ERROR_NONE) {
+                               D_EMSG("app_control_clone() is failed. ret : %d", ret);
+                       } else {
+                               msg_ui_composer_app_request_del_lockscreen(cd);
+                       }
+               }
+               MSG_FREE(lock_screen);
+       }
+
+       app_control_get_operation(svc_handle, &operation);
+       if (operation)
+               cd->isAppControl = true;
+       else
+               cd->isAppControl = false;
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, &thread_id);
+       msg_common_parse_uri_to_app_control(svc_handle);
+       if (!thread_id) {
+               /* check whehter tid which is consisted of recipients is existed or not */
+               Eina_List *recipient_list = NULL;
+
+               if (cd->isAppControl && operation) {
+                       /* appcontrol mode */
+                       if (g_strcmp0(operation, APP_CONTROL_OPERATION_COMPOSE) == 0) {
+                               int number_of_recipients = 0;
+                               char **recipient = NULL;
+                               if ((app_control_get_extra_data_array(svc_handle, APP_CONTROL_DATA_TO, &recipient, &number_of_recipients) == APP_CONTROL_ERROR_NONE) && recipient) {
+                                       bool is_sound_and_shot = false;
+                                       int i = 0;
+                                       for (i = 0; i < number_of_recipients; i++) {
+                                               recipient_list = make_tokenize_list(recipient[i], COMPOSER_BUNDLE_RECP_TOKEN, COMPOSER_UTIL_LIST_TYPE_RECIPIENT, &is_sound_and_shot);
+                                       }
+                                       free(recipient);
+                               }
+                       } else {
+                               D_IMSG("operation(%s)", operation);
+                       }
+               } else {
+                       /* ug mode */
+                       char *recipient = NULL;
+
+                       if ((app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_TO, &recipient) == APP_CONTROL_ERROR_NONE) && recipient) {
+                               bool is_sound_and_shot = false;
+                               recipient_list = make_tokenize_list(recipient, COMPOSER_BUNDLE_RECP_TOKEN, COMPOSER_UTIL_LIST_TYPE_RECIPIENT, &is_sound_and_shot);
+                               free(recipient);
+                       } else {
+                               char *number_index = NULL;
+                               if ((app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_NUMBER_INDEX, &number_index) == APP_CONTROL_ERROR_NONE) && number_index) {
+                                       char *recipient = NULL;
+                                       char *index  = NULL;
+                                       char *save_p = NULL;
+                                       char *copy_string = MSG_STRDUP(number_index);
+
+                                       if (copy_string) {
+                                               recipient = strtok_r(copy_string, "/", &save_p);
+
+                                               if (recipient) {
+                                                       index = strtok_r(NULL, "/", &save_p);
+                                                       if (index)
+                                                               D_MSG("NUMBER_INDEX = %s[%s]", recipient, index);
+
+                                                       bool is_sound_and_shot = false;
+                                                       recipient_list = make_tokenize_list(recipient, COMPOSER_BUNDLE_RECP_TOKEN, COMPOSER_UTIL_LIST_TYPE_RECIPIENT, &is_sound_and_shot);
+                                               }
+
+                                               g_free(copy_string);
+                                       }
+
+                                       free(number_index);
+                               }
+                       }
+               }
+
+               if (recipient_list) {
+                       is_recipient = true;
+
+                       msg_ui_composer_get_thread_id_by_address(cd->msg_handle, EINA_LIST_TYPE, recipient_list, &tid);
+                       D_MSG("tid = %d", tid);
+
+                       if (tid > 0) {
+                               char buf[DEF_BUF_LEN_S] = {0,};
+                               snprintf(buf, sizeof(buf), "%d", tid);
+                               /* add extra data to launch bubble view mode */
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TYPE, MSG_BUNDLE_VALUE_REPLY);
+                       }
+
+                       cd->recipient_list_from_contacts = recipient_list;
+               }
+       } else {
+               tid = (msg_thread_id_t)atoi(thread_id);
+       }
+
+       if (operation)
+               free(operation);
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, &from);
+       if (from && g_strcmp0(from, MSG_BUNDLE_VALUE_INTERNAL) == 0)
+               cd->isMsgInternal = true;
+       else
+               cd->isMsgInternal = false;
+
+       if (from)
+               free(from);
+
+       /* get caller layout address */
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_LAYOUT_ADDRESS, &caller_layout);
+       if (caller_layout) {
+               unsigned int layout_pointer = 0;
+
+               /* get layout pointer */
+               layout_pointer = msg_ui_composer_convert_atoh((const char *)caller_layout);
+               cd->caller_layout = (Evas_Object *)layout_pointer;
+               D_SEC_MSG("cd->caller_layout = %p", cd->caller_layout);
+               free(caller_layout);
+       }
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, &msg_id);
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, &composer_mode);
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_COMPOSER_ONLY, &is_only_composer);
+
+       if (composer_mode) {
+               if (g_strcmp0(composer_mode, MSG_BUNDLE_VALUE_EDIT) == 0)
+                       cd->composer_mode = MSG_COMPOSER_MODE_EDIT;
+               else if (g_strcmp0(composer_mode, MSG_BUNDLE_VALUE_FORWARD) == 0)
+                       cd->composer_mode = MSG_COMPOSER_MODE_FORWARD;
+               else
+                       cd->composer_mode = MSG_COMPOSER_MODE_NORMAL;
+       } else {
+               cd->composer_mode = MSG_COMPOSER_MODE_NORMAL;
+       }
+
+       if (is_only_composer && (g_strcmp0(is_only_composer, MSG_BUNDLE_VALUE_YES) == 0)) {
+               cd->msg_ug_mode = MSG_UG_MODE_ONLY_COMPOSER;
+       } else {
+               if ((tid > 0 || msg_id) && (cd->composer_mode == MSG_COMPOSER_MODE_NORMAL)) {
+                       if (tid == 0 && msg_id) {
+                               int msgid = 0;
+
+                               msgid = atoi(msg_id);
+
+                               if (msgid > 0) {
+                                       int value = 0;
+                                       msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+                                       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+                                       if (msg_get_message(cd->msg_handle, msgid, msgInfo, sendOpt) == MSG_SUCCESS) {
+                                               msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, &value);
+                                               tid = (msg_thread_id_t)value;
+                                       } else {
+                                               D_EMSG("msg_get_message is failed");
+                                       }
+
+                                       msg_release_struct(&msgInfo);
+                                       msg_release_struct(&sendOpt);
+                               }
+                       }
+
+                       if (tid > 0) {
+                               /* Get the message Type */
+                               msg_struct_t threadInfo = NULL;
+                               int msgType = 0;
+
+                               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_TYPE, &msg_type_str);
+                               if (msg_type_str) {
+                                       msgType = atoi(msg_type_str);
+                                       free(msg_type_str);
+                               } else {
+                                       msg_error_t check = MSG_SUCCESS;
+                                       threadInfo = msg_create_struct(MSG_STRUCT_THREAD_INFO);
+                                       check = msg_get_thread(cd->msg_handle, tid, threadInfo);
+                                       if (check == MSG_SUCCESS)
+                                               msg_get_int_value(threadInfo, MSG_THREAD_MSG_TYPE_INT, &msgType);
+                                       else
+                                               D_MSG("[ERROR] msg_get_thread return error [%d]", check);
+
+                                       msg_release_struct(&threadInfo);
+                               }
+
+
+                               D_MSG("msgType=%d", msgType);
+
+                               if (msgType == MSG_TYPE_SMS_CB || msgType == MSG_TYPE_SMS_WAPPUSH || msgType == MSG_TYPE_SMS_SYNCML) {
+                                       cd->check_push_cb_msg = TRUE;
+                               }
+
+                               msg_struct_list_s *conv_list = NULL;
+                               msg_error_t err = MSG_SUCCESS;
+
+                               conv_list = (msg_struct_list_s *)calloc(1, sizeof(msg_struct_list_s));
+                               err = msg_get_conversation_view_list(cd->msg_handle, tid, conv_list);
+                               if (err == MSG_SUCCESS) {
+                                       PMSG_BUBBLE_DATA bubble_data = NULL;
+
+                                       bubble_data = msg_ui_bubble_init_bubble_data(cd->msg_handle, cd);
+                                       if (bubble_data) {
+                                               cd->bubble_data = bubble_data;
+                                               bubble_data->conv_list = conv_list;
+                                       } else {
+                                               D_EMSG("msg_ui_bubble_init_bubble_data error");
+                                       }
+
+                                       cd->msg_ug_mode = MSG_UG_MODE_BUBBLE_COMPOSER;
+                                       if (!cd->bubble_data)
+                                               msg_release_list_struct(conv_list);
+                               } else {
+                                       D_EMSG("msg_get_conversation_view_list is failed(%d)", err);
+                               }
+                       } else {
+                               cd->msg_ug_mode = MSG_UG_MODE_FULL_COMPOSER;
+                       }
+               } else {
+                       if ((cd->isMsgInternal == true) || (is_recipient == true))
+                               cd->msg_ug_mode = MSG_UG_MODE_FULL_COMPOSER;
+                       else
+                               cd->msg_ug_mode = MSG_UG_MODE_ONLY_COMPOSER;
+               }
+       }
+
+       if (thread_id)
+               free(thread_id);
+
+       if (msg_id)
+               free(msg_id);
+
+       if (composer_mode)
+               free(composer_mode);
+
+       if (is_only_composer)
+               free(is_only_composer);
+
+       D_IMSG("[UG MODE=%d][0:FULL_COMPOSER, 1:BUBBLE_COMPOSER, 2:ONLY_COMPOSER]", cd->msg_ug_mode);
+       D_IMSG("[Internal=%d],[Composer Mode=%d][0:MODE_NORMAL, 1:MODE_EDIT, 2:MODE_FORWARD, 3:MODE_ADD_RECIPIENT]", cd->isMsgInternal, cd->composer_mode);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_change_language(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+               /* destroy popup */
+               msg_ui_composer_popup_delete_all(cd);
+
+               /* recipient */
+               if (cd->recipient) {
+                       elm_object_domain_translatable_text_set(cd->recipient->mbe, MESSAGE_PKGNAME, "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO");
+               }
+
+               /* subject */
+               if (cd->isSubject && cd->sub_data.entry)
+                       msg_ui_composer_entry_set_guide_text(cd->sub_data.entry, "IDS_MSGC_BODY_ENTER_SUBJECT");
+
+               /* mms size & guide text */
+               if (cd->msg_type == COMPOSER_MSG_TYPE_MMS) {
+                       msg_ui_composer_body_info_area_update(cd);
+               }
+       } else if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               if (cd->bubble_data) {
+                       msg_ui_bubble_get_locale(cd->bubble_data);
+                       msg_ui_bubble_get_time_format(cd->bubble_data);
+                       msg_ui_bubble_list_data_update(cd->bubble_data);
+                       msg_ui_bubble_list_date_update(cd->bubble_data);
+
+                       if (cd->bubble_data->viewmode == BUBBLE_EDIT_VIEW)
+                               msg_ui_bubble_show_select_info(cd->bubble_data);
+
+                       if (cd->bubble_data->popup) {
+                               /* Update block message popup text */
+                               if ((Evas_Object *)evas_object_data_get(cd->bubble_data->popup, "block_popup_language_change") == cd->bubble_data->popup) {
+                                       char *addr = evas_object_data_get(cd->bubble_data->popup, "block_address");
+
+                                       if (addr == NULL) {
+                                               D_EMSG("block popup address is NULL");
+                                               return;
+                                       }
+
+                                       elm_object_domain_translatable_text_set(cd->bubble_data->popup, MESSAGE_PKGNAME, "IDS_MSGF_POP_BLOCK_PS_Q");
+                               } else if ((Evas_Object *)evas_object_data_get(cd->bubble_data->popup, "details_popup_language_change") == cd->bubble_data->popup) {
+
+                                       int msg_id = (int)evas_object_data_get(cd->bubble_data->popup, "details_msg_id");
+                                       char *str = msg_common_make_message_detail_text(cd->bubble_data->msgHandle, msg_id);
+
+                                       if (str) {
+                                               elm_object_text_set(cd->bubble_data->popup, str);
+                                               free(str);
+                                       }
+                               } else if ((Evas_Object *)evas_object_data_get(cd->bubble_data->popup, "send_now_popup_language_change") == cd->bubble_data->popup) {
+                                       char popup_msg[DEF_BUF_LEN_L + 1] = {0, };
+                                       char addr[DEF_BUF_LEN_L + 1] = {0, };
+                                       int i = 0;
+                                       int addr_len = 0;
+
+                                       const char *str =  dgettext(MESSAGE_PKGNAME, "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q");
+
+                                       /* make recipient string */
+                                       for (i = 0; i < cd->bubble_data->addr_list.addr_cnt; i++) {
+                                               int len = 0;
+                                               int pid = -1;
+                                               pid = get_contact_index_by_recipient(cd->bubble_data->addr_list.addr_info[i].address);
+
+                                               if (pid > 0) {
+                                                       char display_name[MAX_ADDRESS_VAL_LEN+1] = {0,};
+                                                       get_contact_display_name_by_index(pid, display_name, sizeof(display_name));
+
+                                                       len = strlen(display_name);
+                                                       if (addr_len+len <= sizeof(addr)) {
+                                                               strncat(addr, display_name, len);
+                                                               addr_len = addr_len + len;
+                                                       }
+                                               } else {
+                                                       if (cd->bubble_data->addr_list.addr_info[i].address[0] != '\0') {
+                                                               len = strlen(cd->bubble_data->addr_list.addr_info[i].address);
+                                                               if (addr_len+len <= sizeof(addr)) {
+                                                                       strncat(addr, cd->bubble_data->addr_list.addr_info[i].address, len);
+                                                                       addr_len = addr_len + len;
+                                                               }
+                                                       } else {
+                                                               char *unknown_str = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_UNKNOWN");
+                                                               len = strlen(unknown_str);
+                                                               if (addr_len+len <= sizeof(addr)) {
+                                                                       strncat(addr, unknown_str, len);
+                                                                       addr_len = addr_len + len;
+                                                               }
+                                                       }
+                                               }
+
+                                               if (cd->bubble_data->addr_list.addr_cnt-1 != i) {
+                                                       strncat(addr, ", ", 2);
+                                                       addr_len += 2;
+                                               }
+                                       }
+
+                                       snprintf(popup_msg, sizeof(popup_msg), str, addr);
+                                       elm_object_text_set(cd->bubble_data->popup, popup_msg);
+                               }
+                       }
+               }
+       }
+
+       cd->isclosed = false;
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_change_region(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER && cd->bubble_data) {
+               msg_ui_bubble_get_locale(cd->bubble_data);
+               msg_ui_bubble_get_time_format(cd->bubble_data);
+               msg_ui_bubble_list_data_update(cd->bubble_data);
+               msg_ui_bubble_list_date_update(cd->bubble_data);
+       }
+
+       cd->isclosed = false;
+
+       D_LEAVE;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_rotate(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_ROTATE_TYPE_E rotate)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "cd is NULL");
+
+       cd->rotate = rotate;
+       D_MSG("rotate val [%d]", rotate);
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+
+               RECIPIENT_S *rd = cd->recipient;
+               if (!rd) {
+                       D_EMSG("there is no recipient");
+                       return COMPOSER_RETURN_FAIL;
+               }
+
+               if (rotate == COMPOSER_ROTATE_PORTRAIT || rotate == COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN) {
+                       /* show navi title */
+                       msg_ui_composer_show_navi_title(cd);
+               } else if (rotate == COMPOSER_ROTATE_LANDSCAPE || rotate == COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN) {
+                       if (cd->is_keypad_show) {
+                               /* hide navi title */
+                               msg_ui_composer_hide_navi_title(cd);
+                       }
+               }
+               /* In case of rotation mbe height can be modified */
+               msg_ui_composer_recipient_update_recipient_height(cd->recipient);
+
+       } else if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               if (rotate == COMPOSER_ROTATE_PORTRAIT || rotate == COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN) {
+                       if (cd->bubble_data)
+                               cd->bubble_data->isRotate = false;
+
+                       /* show navi title */
+                       msg_ui_composer_show_navi_title(cd);
+
+               } else if (rotate == COMPOSER_ROTATE_LANDSCAPE || rotate == COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN) {
+                       if (cd->bubble_data)
+                               cd->bubble_data->isRotate = true;
+
+                       if (cd->is_keypad_show) {
+                               /* hide navi title */
+                               msg_ui_composer_hide_navi_title(cd);
+                       }
+               }
+
+               if (cd->bubble_data)
+                       msg_ui_bubble_rotate_bubbles(cd->bubble_data, rotate);
+
+               /* change body scroller size */
+               Evas_Object *entry = msg_ui_composer_last_body_entry_get(cd);
+               int keypad_h = msg_ui_composer_get_keypad_height(entry);
+               msg_ui_composer_change_body_scroll_size(cd, keypad_h);
+
+       } else {
+               D_EMSG("Unknown Composer Mode");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+static COMPOSER_RETURN_TYPE_E __msg_ui_composer_is_forward_possble(MSG_COMPOSER_VIEW_DATA_S *cd, msg_handle_t msg_handle, const char *item_path, int media_type)
+{
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "cd is NULL");
+
+       /*Check Creation Mode*/
+       COMPOSER_UTIL_RETURN_E allowed_type = COMPOSER_UTIL_RET_ERR;
+       int creationMode = -1;
+       msg_struct_t setting = NULL;
+
+       setting = msg_create_struct(MSG_STRUCT_SETTING_MMS_SEND_OPT);
+
+       if (setting) {
+               msg_get_mms_send_opt(msg_handle, setting);
+               if (msg_get_int_value(setting, MSG_MMS_SENDOPT_CREATION_MODE_INT, &creationMode) == MSG_SUCCESS) {
+                       D_IMSG("creationMode = %d", creationMode);
+                       if (creationMode == MSG_CREATION_MODE_RESTRICTED || creationMode == MSG_CREATION_MODE_WARNING) {
+                               allowed_type = msg_composer_is_allowed_creation_mode(item_path, media_type, creationMode, cd->composer_mode);
+                       }
+               }
+
+               msg_release_struct(&setting);
+       } else {
+               D_EMSG("msg_create_struct is failed");
+       }
+
+       /* creation restricted mode */
+       if (creationMode == MSG_CREATION_MODE_RESTRICTED) {
+               if (allowed_type == COMPOSER_UTIL_RET_NOT_ALLOWED) {
+                       return COMPOSER_RETURN_CREATION_RESTRICTED_MODE_FAIL;
+               } else if (allowed_type == COMPOSER_UTIL_RET_ALLOWED_WITH_RESIZE) {
+                       return COMPOSER_RETURN_SUCCESS;
+               }
+       }
+
+       /* creation warning mode */
+       if (creationMode == MSG_CREATION_MODE_WARNING) {
+               if (allowed_type == COMPOSER_UTIL_RET_NOT_ALLOWED) {
+                       return COMPOSER_RETURN_CREATION_WARINING_MODE_FAIL;
+               } else {
+                       return COMPOSER_RETURN_SUCCESS;
+               }
+       }
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+static void __msgc_forward_not_possible_restricted_mode_popup_close_cb(void *data, 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;
+       /* Be careful when you use obj, because this cb funtion is used for clicked cb and back key */
+
+       msg_ui_composer_destroy_popup(cd, cd->popup_end);
+       ug_destroy_me(cd->ug);
+
+       D_LEAVE;
+       return;
+}
+
+static void __msgc_forward_not_possible_restricted_mode_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *)event_info;
+
+       if (ev->button == 3) {/* if mouse right button is up */
+               D_MSG("Back operation");
+               msg_ui_composer_destroy_popup(cd, cd->popup_end);
+               ug_destroy_me(cd->ug);
+       }
+}
+
+static void __msgc_forward_not_possible_warning_mode_popup_ok_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_destroy_popup(cd, cd->popup_end);
+       cd->forward_not_possible_popup = false;
+
+       msg_ui_composer_process_on_create(cd, cd->caller_svc_handle);
+       msg_ui_composer_process_on_start(cd, cd->caller_svc_handle);
+
+       app_control_destroy(cd->caller_svc_handle);
+       cd->caller_svc_handle = NULL;
+
+       D_LEAVE;
+       return;
+}
+
+Evas_Object *msg_ui_composer_forward_not_possible_popup(MSG_COMPOSER_VIEW_DATA_S *cd, COMPOSER_RETURN_TYPE_E popup_type, app_control_h data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       Evas_Object *popup = NULL;
+
+       if (popup_type == COMPOSER_RETURN_CREATION_RESTRICTED_MODE_FAIL) {
+               if (cd->popup_end) {
+                       msg_ui_composer_destroy_popup(cd, cd->popup_end);
+                       cd->popup_end = NULL;
+               }
+
+               popup = msg_ui_composer_create_text_popup_with_hardkey_cb(cd->main_window, cd, _MSGSTR("IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"),
+                                                                                                                                                       __msgc_forward_not_possible_restricted_mode_popup_mouseup_cb, __msgc_forward_not_possible_restricted_mode_popup_close_cb);
+               Evas_Object *btn1 = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+               evas_object_data_set(btn1, "popup", popup);
+               elm_object_part_content_set(popup, "button1", btn1);
+               evas_object_smart_callback_add(btn1, "clicked", __msgc_forward_not_possible_restricted_mode_popup_close_cb, cd);
+               elm_object_focus_set(popup, EINA_TRUE);
+               evas_object_show(popup);
+               cd->popup_end = popup;
+       } else if (popup_type == COMPOSER_RETURN_CREATION_WARINING_MODE_FAIL) {
+               if (cd->popup_end) {
+                       msg_ui_composer_destroy_popup(cd, cd->popup_end);
+                       cd->popup_end = NULL;
+               }
+
+               popup = msg_ui_composer_create_text_popup_with_hardkey_cb(cd->main_window, cd, _MSGSTR("IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"),
+                                                                                                                                                       __msgc_forward_not_possible_restricted_mode_popup_mouseup_cb, __msgc_forward_not_possible_restricted_mode_popup_close_cb);
+               Evas_Object *negative_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+               elm_object_part_content_set(popup, "button1", negative_btn);
+               evas_object_smart_callback_add(negative_btn, "clicked", __msgc_forward_not_possible_restricted_mode_popup_close_cb, cd);
+               Evas_Object *positive_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+               elm_object_part_content_set(popup, "button2", positive_btn);
+               evas_object_smart_callback_add(positive_btn, "clicked", __msgc_forward_not_possible_warning_mode_popup_ok_cb, cd);
+               elm_object_focus_set(popup, EINA_TRUE);
+               evas_object_show(popup);
+               cd->popup_end = popup;
+
+               /* Make a copy of the service data because after displaying of popup
+                * the call goes back to calle application where the service data will be destroyed */
+               app_control_clone(&cd->caller_svc_handle, data);
+       }
+
+       D_LEAVE;
+
+       return popup;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_check_creation_mode_for_forward(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h svc_handle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_NULL_POINTER, "cd is NULL");
+       msg_handle_t msg_handle = NULL;
+       char *bundle_txt = NULL;
+       char *composer_mode = NULL;
+       int msgID = 0;
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, &composer_mode);
+
+       /* If it is not a forward mode then just return back
+        * Creation mode restrictions are taken care at the time of file attachment */
+       if (composer_mode) {
+               if (g_strcmp0(composer_mode, MSG_BUNDLE_VALUE_FORWARD) != 0) {
+                       free(composer_mode);
+                       composer_mode = NULL;
+                       return COMPOSER_RETURN_SUCCESS;
+               }
+               cd->is_forward = true;
+               free(composer_mode);
+               composer_mode = NULL;
+       } else {
+               return COMPOSER_RETURN_SUCCESS;
+       }
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, &bundle_txt);
+       if (bundle_txt) {
+               msgID = atoi(bundle_txt);
+               D_MSG("msgID = %d", msgID);
+
+               free(bundle_txt);
+       }
+
+       if (msg_open_msg_handle(&msg_handle) != MSG_SUCCESS) {
+               D_EMSG("msg-server doesn't response !!!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       msg_struct_t load_msg = NULL;
+       msg_struct_t sendOpt = NULL;
+       msg_struct_t mmsBody = NULL;
+
+       /* create new message */
+       load_msg = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       if (load_msg == NULL) {
+               D_EMSG("message create message failed.");
+               msg_close_msg_handle(&msg_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+       sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+       if (sendOpt == NULL) {
+               D_EMSG("message create sendopt failed.");
+               msg_release_struct(&load_msg);
+               msg_close_msg_handle(&msg_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+       /* load message */
+       if (msg_get_message(msg_handle, (msg_message_id_t)msgID, load_msg, sendOpt) != MSG_SUCCESS) {
+               D_EMSG("msg_get_message failed");
+               msg_release_struct(&load_msg);
+               msg_release_struct(&sendOpt);
+               msg_close_msg_handle(&msg_handle);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       /* load message type */
+       int msgType;
+       msg_get_int_value(load_msg, MSG_MESSAGE_TYPE_INT, &msgType);
+
+       /* If forwarding msg is a SMS then there is no need to check for creation mode */
+       if (msgType == MSG_TYPE_SMS || msgType == MSG_TYPE_SMS_CB || msgType == MSG_TYPE_SMS_REJECT) {
+               msg_release_struct(&load_msg);
+               msg_release_struct(&sendOpt);
+               msg_close_msg_handle(&msg_handle);
+               return COMPOSER_RETURN_SUCCESS;
+       } else if (msgType == MSG_TYPE_MMS) {
+               int err = MSG_SUCCESS;
+
+               /* load mms body */
+               mmsBody = msg_create_struct(MSG_STRUCT_MMS);
+               if (mmsBody == NULL) {
+                       msg_release_struct(&load_msg);
+                       msg_release_struct(&sendOpt);
+                       msg_close_msg_handle(&msg_handle);
+                       return COMPOSER_RETURN_FAIL;
+               }
+
+               err = msg_get_mms_struct(load_msg, mmsBody);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("failed in get mms data handler err = %d", err);
+                       msg_release_struct(&mmsBody);
+                       msg_release_struct(&load_msg);
+                       msg_release_struct(&sendOpt);
+                       msg_close_msg_handle(&msg_handle);
+                       return COMPOSER_RETURN_FAIL;
+               }
+
+               /* load body (page and text, media) */
+               msg_list_handle_t page_list = NULL;
+               msg_get_list_handle(mmsBody, MSG_MMS_PAGE_LIST_HND, (void **)&page_list);
+
+               int page_count = msg_list_length(page_list);
+
+               if (page_count > 0) {
+                       int i = 0;
+
+                       for (i = 0; i < page_count; i++) {
+                               msg_struct_t pageInfo = msg_list_nth_data(page_list, i);
+                               msg_list_handle_t media_list = NULL;
+                               int media_count = 0;
+                               char image_file_path[COMPOSER_FILEPATH_LEN_MAX + 1] = {0,};
+
+                               if (pageInfo == NULL) {
+                                       D_EMSG("MMS PAGE [%d]th page loading error ", i);
+                                       continue;
+                               }
+
+                               msg_get_list_handle(pageInfo, MSG_MMS_PAGE_MEDIA_LIST_HND, (void **)&media_list);
+                               media_count = msg_list_length(media_list);
+
+                               if (media_count > 0) {
+                                       int j = 0;
+
+                                       for (j = 0; j < media_count; j++) {
+                                               msg_struct_t mediaInfo = (msg_struct_t)msg_list_nth_data(media_list, j);
+                                               int mediatype;
+                                               int file_type = 0;
+
+                                               if (mediaInfo == NULL) {
+                                                       D_EMSG("MMS PAGE [%d]th page loading error", j);
+                                                       continue;
+                                               }
+
+                                               memset(image_file_path, 0x00, sizeof(image_file_path));
+
+                                               msg_get_int_value(mediaInfo, MSG_MMS_MEDIA_TYPE_INT, &mediatype);
+                                               /* if media type image or video */
+                                               if (mediatype == MMS_SMIL_MEDIA_IMG) {
+                                                       file_type = COMPOSER_MEDIA_TYPE_IMAGE;
+                                                       msg_get_str_value(mediaInfo, MSG_MMS_MEDIA_FILEPATH_STR, image_file_path, sizeof(image_file_path));
+                                               } else if (mediatype == MMS_SMIL_MEDIA_VIDEO || mediatype == MMS_SMIL_MEDIA_IMG_OR_VIDEO) {
+                                                       file_type = COMPOSER_MEDIA_TYPE_VIDEO;
+                                                       msg_get_str_value(mediaInfo, MSG_MMS_MEDIA_FILEPATH_STR, image_file_path, sizeof(image_file_path));
+                                               } else if (mediatype == MMS_SMIL_MEDIA_AUDIO) {
+                                                       file_type = COMPOSER_MEDIA_TYPE_AUDIO;
+                                                       msg_get_str_value(mediaInfo, MSG_MMS_MEDIA_FILEPATH_STR, image_file_path, sizeof(image_file_path));
+                                               } else if (mediatype == MMS_SMIL_MEDIA_TEXT) {
+                                               } else {
+                                                       msg_release_struct(&mmsBody);
+                                                       msg_release_struct(&load_msg);
+                                                       msg_release_struct(&sendOpt);
+                                                       msg_close_msg_handle(&msg_handle);
+                                                       return COMPOSER_RETURN_INVALID_MEDIA_TYPE;
+                                               }
+
+                                               if (strlen(image_file_path) > 0) {
+                                                       COMPOSER_RETURN_TYPE_E is_forward_possible = __msg_ui_composer_is_forward_possble(cd, msg_handle, image_file_path, file_type);
+                                                       if ((COMPOSER_RETURN_CREATION_RESTRICTED_MODE_FAIL == is_forward_possible) ||
+                                                               (COMPOSER_RETURN_CREATION_WARINING_MODE_FAIL == is_forward_possible)) {
+                                                               msg_release_struct(&mmsBody);
+                                                               msg_release_struct(&load_msg);
+                                                               msg_release_struct(&sendOpt);
+                                                               msg_close_msg_handle(&msg_handle);
+                                                               return is_forward_possible;
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               }
+       } else {
+               D_WMSG("invalid message type");
+               msg_release_struct(&load_msg);
+               msg_release_struct(&sendOpt);
+               msg_close_msg_handle(&msg_handle);
+               return COMPOSER_RETURN_INVALID_MSG_TYPE;
+       }
+
+       if (msgType == MSG_TYPE_MMS)
+               msg_release_struct(&mmsBody);
+
+       msg_release_struct(&load_msg);
+       msg_release_struct(&sendOpt);
+       msg_close_msg_handle(&msg_handle);
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+static void __base_layout_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;
+
+       if (!cd)
+               return;
+
+       if (cd->state != COMPOSER_STATE_TYPE_DESTROY)
+               D_EMSG("base layout is destroyed unexpectedly");
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_process_on_start(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       int font_index;
+
+       msg_ui_composer_start(cd, data);
+
+       /* connect volume key handler */
+       msg_ui_composer_connect_handler(cd);
+
+       if (msg_common_get_font_size(&font_index)) {
+               cd->setting_font_size = font_index;
+       } else {
+               D_EMSG("msg_common_get_font_size error");
+               cd->setting_font_size = MSG_APP_FONT_SIZE_INDEX_NORMAL;
+       }
+
+       cd->display_font_size = cd->setting_font_size;
+
+       msg_ui_composer_set_loading_focus(cd);
+
+       /* When bubble composer is entered, scroll bar is show. */
+       if (cd->main_scroller)
+               elm_object_style_set(cd->main_scroller, "effect");
+
+       D_LEAVE;
+}
+
+bool msg_ui_composer_process_on_create(MSG_COMPOSER_VIEW_DATA_S *cd, app_control_h data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, false, "cd is NULL");
+
+       Evas_Object *bg = msg_ui_composer_bg_create(cd->base);
+       elm_object_part_content_set(cd->base, "elm.swallow.bg", bg);
+
+       char *cvalue = NULL;
+       int ret = SYSTEM_INFO_ERROR_NONE;
+
+       ret = system_info_get_platform_string("tizen.org/system/model_name", &cvalue);
+       if (ret == SYSTEM_INFO_ERROR_NONE && cvalue != NULL) {
+               if (g_strcmp0(cvalue, "Emulator") == 0)
+                       cd->isEmulator = true;
+       }
+
+       if (cvalue) {
+               g_free(cvalue);
+               cvalue = NULL;
+       }
+
+       if (msg_ui_composer_init(cd) != COMPOSER_RETURN_SUCCESS) {
+               D_EMSG("msg_ui_composer_init error");
+               return false;
+       }
+
+       /* get composer mode from bundle data */
+       msg_ui_composer_get_create_mode_from_bundle(cd, data);
+
+       evas_object_event_callback_add(cd->base, EVAS_CALLBACK_DEL, __base_layout_delete_cb, cd);
+
+       if (msg_ui_composer_create(cd) != COMPOSER_RETURN_SUCCESS) {
+               D_EMSG("creating main layout failed");
+               return false;
+       }
+
+       if (cd->base)
+               msg_ui_composer_increase_ref_count();
+
+       D_LEAVE;
+       return true;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_init(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "cd is NULL");
+
+       /* create message handle */
+       if (msg_open_msg_handle(&cd->msg_handle) != MSG_SUCCESS) {
+               D_EMSG("msg_open_msg_handle is failed!!!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       /* set message sent status callback */
+       if (msg_reg_sent_status_callback(cd->msg_handle, &__msg_ui_composer_sent_status_cb, cd) != MSG_SUCCESS) {
+               D_EMSG("sent status callback register error!!!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       /* connect contacts svc*/
+       if (contacts_connect() != 0) {
+               D_EMSG("contacts_connect is failed !!!");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       cd->working_path = msg_composer_create_working_dir();
+       if (cd->working_path == NULL) {
+               D_EMSG("msg_composer_create_working_dir is failed!!!");
+#if 0
+               return COMPOSER_RETURN_FAIL;
+#endif
+       }
+
+       /* set default message type is SMS */
+       cd->msg_type = COMPOSER_MSG_TYPE_SMS;
+
+       /* get maximum recipient count */
+       if (cd->recipient_max_count == 0) {
+               /* TODO: get recipient maximum count from msgfw or csc */
+
+               msg_ui_composer_get_max_recipient_count(cd);
+               D_IMSG("recipient_max_count = %d", cd->recipient_max_count);
+       }
+
+       int active_sims;
+       int active_sim;
+       int data_subscription;
+
+       cd->voice_preferred_sim = MSG_SIM_PREFERENCE_SIM_COUNT_LESS_THAN_TWO;
+       cd->voice_preferred_sim = msg_common_get_sim_preference(cd, &active_sims, &active_sim, &data_subscription);
+       cd->active_sims = active_sims;
+       cd->active_sim = active_sim;
+
+       /* get sms setting */
+       msg_struct_t sms_sent_opt = msg_create_struct(MSG_STRUCT_SETTING_SMS_SEND_OPT);
+
+       if (msg_get_sms_send_opt(cd->msg_handle, sms_sent_opt) != MSG_SUCCESS) {
+               D_EMSG("Getting SMS_SEND_OP ERROR");
+       } else {
+               msg_get_int_value(sms_sent_opt, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, &cd->encode_mode);
+               D_IMSG("SMS Encode mode is %d", cd->encode_mode);
+               cd->changed_encode_mode = cd->encode_mode;
+       }
+
+       msg_release_struct(&sms_sent_opt);
+
+       if (cd->cms_max_page == 0) {
+               /* get csc feature */
+               cd->disable_conversion_to_mms = false;
+               D_IMSG("disable_conversion_to_mms = %d", cd->disable_conversion_to_mms);
+
+               /* get sms threshold value */
+               int sms_threshold_type = 0;
+               int sms_threshold = 0;
+
+               if (preference_get_int(KEY_MSG_APP_SMS_THRESHOLD_TYPE, &sms_threshold_type) < 0)
+                       D_EMSG("preference_get_int(sms_threshold_type) is failed !!");
+
+               if (preference_get_int(KEY_MSG_APP_SMS_THRESHOLD, &sms_threshold) < 0)
+                       D_EMSG("preference_get_int(sms_threshold) is failed !!");
+
+               D_IMSG("sms_threshold(%d), sms_threshold_type(%d) [0:pagecount, 1:charcount]", sms_threshold, sms_threshold_type);
+
+               if (sms_threshold_type == 1) {
+                       /* TODO: convert charcount to page or support charcount */
+                       /* temporarily, use default sms threshold page */
+                       cd->cms_max_page = COMPOSER_CMS_MAX_PAGE;
+               } else {
+                       if (sms_threshold) {
+                               cd->cms_max_page = sms_threshold;
+                       } else {
+                               /* use default sms threshold page */
+                               cd->cms_max_page = COMPOSER_CMS_MAX_PAGE;
+                       }
+               }
+
+               D_IMSG("cms_max_page = %d", cd->cms_max_page);
+       }
+
+       if (cd->mms_max_size == 0) {
+               msg_struct_t setting = msg_create_struct(MSG_STRUCT_SETTING_MSGSIZE_OPT);
+
+               int msg_size_res = msg_get_msgsize_opt(cd->msg_handle, setting);
+               if (msg_size_res != MSG_SUCCESS) {
+                       D_EMSG("msg_get_msgsize_opt() failed with err-code: %d", msg_size_res);
+               } else {
+                       if (setting)
+                               msg_get_int_value(setting, MSG_MESSAGE_SIZE_INT, &cd->mms_max_size);
+
+                       cd->mms_max_size = cd->mms_max_size * MSGC_1KB;
+                       /* reserved mms header size */
+                       cd->mms_max_size -= MMS_HEADER_SIZE;
+
+                       if (cd->recipient_max_count > COMPOSER_TO_ADDRESS_CNT_MAX) {
+                               int tmp_recipient_count = cd->recipient_max_count - COMPOSER_TO_ADDRESS_CNT_MAX;
+                               int quotient = tmp_recipient_count / 10;
+                               int remainer = tmp_recipient_count % 10;
+                               int address_header_size = 0;
+
+                               if (quotient) { /* 20 < recipient count */
+                                       if (!remainer) {        /* 20,30,40,... */
+                                               address_header_size = quotient * MMS_RECIPIENT_HEADER_SIZE;
+                                       } else {
+                                               ++quotient;
+                                               address_header_size = quotient * MMS_RECIPIENT_HEADER_SIZE;
+                                       }
+                               } else { /* 10 < recipient count < 20 */
+                                       ++quotient;
+                                       address_header_size = quotient * MMS_RECIPIENT_HEADER_SIZE;
+                               }
+
+                               D_MSG("address_header_size = [%d KB] !!!", address_header_size/MSGC_1KB);
+                               cd->mms_max_size -= address_header_size;
+                       }
+
+                       D_MSG("msg max size = [%d KB] !!!", cd->mms_max_size/MSGC_1KB);
+               }
+               msg_release_struct(&setting);
+       }
+
+       cd->body_data.region_order = COMPOSER_REGION_ORDER_IMAGE_TOP;
+       cd->is_replace = false;
+
+       cd->is_signature_enabled = false;
+       cd->signature_string = NULL;
+
+
+       /* Get SIM 1 AND SIM2 icon to display on sim selection popup ,while sending message */
+       cd->sim1_icon = (char *)g_strdup(simPopupIconNode[0].icon);
+       cd->sim1_sendbtn_style = simSendBtnStyles[0];
+
+       msg_ui_composer_sim_controller_init(cd);
+
+       cd->is_appsvc_ug_call = false;
+       cd->saved_keypad_state = false;
+       cd->called_from_unset = false;
+       cd->is_recipient_email = false;
+
+       /* get number min match digit */
+       int ret = msg_sys_phonenumber_min_match_digit_get(&cd->number_min_match_digit);
+       if (ret < 0) {
+               D_EMSG("msg_sys_phonenumber_min_match_digit_get failed(%d)", ret);
+               cd->number_min_match_digit = COMPARE_STRING_NUM;
+       }
+       D_MSG("number_min_match_digit = %d", cd->number_min_match_digit);
+
+       /* set default font size*/
+       msg_common_sync_local_font_size();
+       cd->ignore_hw_back_events_timer = NULL;
+
+       /* CHECK : bellow setting is not required during launching time */
+       /* get csc feature */
+       cd->send_mms_data = false;
+       D_MSG("send mms force(%d)", cd->send_mms_data);
+       /* CHECK END */
+
+       cd->th = elm_theme_new();
+       elm_theme_ref_set(cd->th, NULL);
+       elm_theme_extension_add(cd->th, MSG_CUSTOM_WINSET_EDJ);
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+/* __msgc_naviframe_item_pop_cb is called only when ESC key is pressed from usb keyboard in composer */
+static Eina_Bool __msgc_naviframe_item_pop_cb(void *data, Elm_Object_Item *it)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_FALSE, "dat is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       D_MSG_RETVM_IF(((cd->job_thread_end) || (cd->attach_thread) || (cd->progress_popup)), EINA_FALSE, "Ignore hardware key events as progress bar is running");
+       /* comment regarding showing/hiding keypad or clipboard in __msgc_naviframe_item_pop_cb
+       if (cd->is_keypad_show) {
+               D_MSG("Hide keypad or clipboard");
+               __msgc_hide_keypad(cd, obj);
+               goto end;
+       }
+       */
+
+       /* To prevent B/S. If a user clicks hardware back key while launching other
+        * applications(like camera via attach files), it'll cause B/S.
+        * Because result callback for the launching request is called after the composer is destroyed. */
+       D_MSG_RETVM_IF(cd->ignore_hw_back_events_timer != NULL, EINA_FALSE, "Ignore hardware key events timer is running so ignore back key events");
+
+       COMPOSER_EDIT_STATE_E edit_state = __msg_ui_composer_edit_check(cd);
+       D_MSG("edit_state = %d", edit_state);
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+               if (cd->isclosed) {
+                       D_EMSG("back btn is already called");
+                       goto end;
+               }
+
+               /* isclosed is set to prevent showing invalid popup*/
+               cd->isclosed = true;
+
+               if (edit_state == COMPOSER_EDIT_BODY) {
+                       msg_ui_composer_recipient_destroy_no_recipient_icon(cd->recipient);
+                       __msg_ui_composer_end_popup(cd);
+                       goto end;
+               }
+       } else if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+               if (bubble_data->viewmode == BUBBLE_EDIT_VIEW) {
+                       msg_ui_bubble_ctlbar_cancel(cd);
+                       goto end;
+               }
+
+               if (edit_state == COMPOSER_EDIT_RECIPIENT) {
+                       int err = MSG_SUCCESS;
+                       int unread_cnt = 0;
+                       msg_struct_t thread_info = msg_create_struct(MSG_STRUCT_THREAD_INFO);
+                       err = msg_get_thread(bubble_data->msgHandle, bubble_data->threadId, thread_info);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("fail to msg_count_message : err = %d", err);
+                               msg_release_struct(&thread_info);
+                               return EINA_FALSE;
+                       }
+                       msg_get_int_value(thread_info, MSG_THREAD_UNREAD_COUNT_INT, &unread_cnt);
+                       msg_release_struct(&thread_info);
+                       if (unread_cnt > 0) {
+                               D_EMSG("unread count = [%d]", unread_cnt);
+                               msg_ui_bubble_list_update_read_status_thread_call(bubble_data);
+                       }
+                       if (bubble_data->bubble_count == 0) {
+                               if (bubble_data->isDraft == true)
+                                       err = msg_delete_thread_message_list(bubble_data->msgHandle, bubble_data->threadId, false);
+
+                               if (err == MSG_SUCCESS) {
+                                       app_control_h svc_handle;
+                                       char buf[DEF_BUF_LEN_S] = {0,};
+
+                                       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                               D_EMSG("app_control_create() is failed !!");
+                                       } else {
+                                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RESULT, MSG_BUNDLE_VALUE_DEL_ALL);
+                                               snprintf(buf, sizeof(buf), "%d", bubble_data->threadId);
+                                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+                                               ug_send_result(cd->ug, svc_handle);
+
+                                               app_control_destroy(svc_handle);
+                                       }
+                               } else {
+                                       D_MSG("msg_delete_thread_message_list failed");
+                               }
+                       }
+               }
+       }
+
+       ug_destroy_me(cd->ug);
+
+end:
+       D_LEAVE;
+       return EINA_FALSE;
+}
+
+static Evas_Object *__msgc_create_naviframe(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+
+       Evas_Object *navi_frame = NULL;
+       navi_frame = elm_naviframe_add(parent);
+       if (!navi_frame)
+               return NULL;
+
+       evas_object_show(navi_frame);
+       elm_object_focus_set(navi_frame, EINA_TRUE);
+
+       elm_naviframe_prev_btn_auto_pushed_set(navi_frame, EINA_FALSE);
+       eext_object_event_callback_add(navi_frame, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
+       eext_object_event_callback_add(navi_frame, EEXT_CALLBACK_MORE, eext_naviframe_more_cb, NULL);
+
+       if (cd)
+               evas_object_event_callback_add(navi_frame, EVAS_CALLBACK_CHANGED_SIZE_HINTS, msg_ui_composer_naviframe_size_hints_changed, cd);
+
+       return navi_frame;
+}
+
+static Evas_Object *__msgc_create_scroller(Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+
+       Evas_Object *scroller = elm_scroller_add(parent);
+       elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_FALSE);
+       elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+       evas_object_show(scroller);
+
+       return scroller;
+}
+
+static Evas_Object *__msgc_create_recipient_area_rect(Evas_Object *parent, MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+
+       Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(parent));
+       evas_object_size_hint_align_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_color_set(rect, 0, 0, 0, 0);
+       evas_object_size_hint_min_set(rect, 0, ELM_SCALE_SIZE(MSGC_RECIPIENT_DEFAULT_HEIGHT));
+
+       return rect;
+}
+
+static Eina_Bool msg_ui_composer_set_body_entry_size_idler(void *data)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETVM_IF(cd == NULL, EINA_FALSE, "composer data is NULL");
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(body_data->page_list, 0);
+
+       cd->entry_size_idler = NULL;
+       if (page_data->entry)
+               elm_entry_calc_force(page_data->entry);
+
+       return EINA_FALSE;
+}
+
+/* This function is called when data is dropped */
+static Eina_Bool __msgc_drop_cb(void *data, Evas_Object *obj, Elm_Object_Item *it, Elm_Selection_Data *ev, int xposret, int yposret)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_TRUE, "data is NULL");
+       D_MSG_RETVM_IF(obj == NULL, EINA_TRUE, "obj is NULL");
+       D_MSG_RETVM_IF(ev == NULL, EINA_TRUE, "ev is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       D_MSG("data = (%s)", ev->data);
+
+       bool is_sound_and_shot = false;
+
+       cd->attachlist = make_tokenize_list(ev->data, COMPOSER_BUNDLE_ATTACH_TOKEN, COMPOSER_UTIL_LIST_TYPE_FILE, &is_sound_and_shot);
+       /* Check whether this file is sound & shot or not */
+       if ((cd->is_sound_and_shot == false) && (is_sound_and_shot == true)) {
+               D_MSG("At least there is a sound & shot image");
+               cd->is_sound_and_shot = true;
+       }
+
+       if (cd->attachlist)
+               msg_ui_composer_body_items_add(cd);
+
+       return EINA_TRUE;
+}
+
+/*
+ * Create Composer First View
+ */
+COMPOSER_RETURN_TYPE_E msg_ui_composer_create(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "Composer data is NULL");
+       D_MSG_RETVM_IF(cd->main_window == NULL, COMPOSER_RETURN_FAIL, "main_window is NULL");
+       D_MSG_RETVM_IF(cd->base == NULL, COMPOSER_RETURN_FAIL, "base layout is NULL");
+
+       Evas_Object *navi_frame = NULL;
+       Evas_Object *content_layout = NULL;
+       Elm_Object_Item *navi_it = NULL;
+       int bg_style = -1;
+
+       /* State Set */
+       cd->state = COMPOSER_STATE_TYPE_CREATE;
+       cd->header_not_allowed = false;
+       /* Create naviframe */
+       navi_frame = __msgc_create_naviframe(cd, cd->base);
+       if (!navi_frame) {
+               D_EMSG("naviframe add fail");
+               goto error_return;
+       }
+
+       cd->navi_bar = navi_frame;
+
+       /* support multiwindow dnd */
+       elm_drop_item_container_add(navi_frame, ELM_SEL_FORMAT_TARGETS, NULL, NULL, NULL, NULL, NULL, NULL, NULL, __msgc_drop_cb, cd);
+
+       /* Create content layout */
+       content_layout = elm_layout_add(navi_frame);
+       if (!content_layout) {
+               D_EMSG("layout add fail");
+               goto error_return;
+       }
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+               elm_layout_file_set(content_layout, MSGC_UI_DEFAULT_EDJ, MSGC_EDJ_GRP_CONTENT_LAYOUT);
+       } else if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               elm_layout_file_set(content_layout, MSGC_UI_DEFAULT_EDJ, MSGC_EDJ_GRP_CONTENT_LAYOUT);
+               edje_object_signal_emit(_EDJ(content_layout), "change.bubble", "*");
+       } else {
+               D_EMSG("UG mode Unknown");
+               goto error_return;
+       }
+
+       evas_object_size_hint_weight_set(content_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(content_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       edje_object_signal_emit(_EDJ(content_layout), "hide.predictsearch", "*");
+       evas_object_show(content_layout);
+
+       cd->content_layout = content_layout;
+
+       /** create background of composer & bubble */
+       Evas_Object *background = NULL;
+       background = msg_common_create_bubble_layout_bg(content_layout, bg_style);
+
+       elm_object_part_content_set(cd->content_layout, "swl.background.body", background);
+
+       /*Create content*/
+       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+               cd->recipient = msg_ui_composer_recipient_create(content_layout, EDIT_RECIP_MODE, cd);
+               if (cd->recipient == NULL) {
+                       goto error_return;
+               }
+
+               elm_object_part_content_set(content_layout, "swl.recipient", cd->recipient->bx_main);
+
+               /* This rect is needed to push/pull the body entry based on MBE visibility */
+               cd->recipient_ht_rect = __msgc_create_recipient_area_rect(content_layout, cd);
+               elm_object_part_content_set(content_layout, "swl.recipient.rect", cd->recipient_ht_rect);
+               edje_object_signal_emit(_EDJ(content_layout), "swl.recipient.rect.normal.mode", "*");
+
+               Evas_Object *predict_search_layout = msg_ui_composer_predictsearch_list_create(content_layout, cd);
+               elm_object_part_content_set(content_layout, "swl.predictsearch", predict_search_layout);
+       } else {
+               PMSG_BUBBLE_DATA bubble_data = NULL;
+               if (!cd->bubble_data) {
+                       bubble_data = msg_ui_bubble_init_bubble_data(cd->msg_handle, cd);
+                       if (!bubble_data) {
+                               goto error_return;
+                       }
+
+                       cd->bubble_data = bubble_data;
+               } else {
+                       bubble_data = cd->bubble_data;
+               }
+
+               Evas_Object *bubble_layout = msg_ui_bubble_create_view(content_layout, cd->bubble_data);
+
+               if (!bubble_layout) {
+                       goto error_return;
+               }
+
+               bubble_data->background_style = bg_style;
+
+               cd->recipient = msg_ui_composer_recipient_create(content_layout, VIEW_RECIP_MODE, cd);
+               if (cd->recipient == NULL)
+                       goto error_return;
+
+               elm_object_part_content_set(content_layout, "swl.recipient", cd->recipient->bx_main);
+               elm_object_part_content_set(content_layout, "swl.bubble.content", bubble_layout);
+
+               /* This rect is needed to push/pull the body entry based on MBE visibility */
+               cd->recipient_ht_rect = __msgc_create_recipient_area_rect(content_layout, cd);
+               elm_object_part_content_set(content_layout, "swl.recipient.rect", cd->recipient_ht_rect);
+               edje_object_signal_emit(_EDJ(content_layout), "swl.recipient.rect.normal.mode", "*");
+       }
+
+       /* Push and CB  message body layout is not displayed. */
+       if (cd->check_push_cb_msg != TRUE) {
+               Evas_Object *body_layout = msg_ui_composer_create_body(cd, content_layout);
+               if (!body_layout) {
+                       D_EMSG("body_layout is NULL");
+                       goto error_return;
+               }
+
+               elm_object_part_content_set(content_layout, "swl.composer.body", body_layout);
+
+               msg_ui_composer_change_body_layout_mode(cd, cd->rotate);
+       }
+
+       /* make outer layout & scroller */
+       Evas_Object *main_scroller = __msgc_create_scroller(navi_frame);
+       Evas_Object *outer_layout = msg_ui_composer_layout_create(navi_frame, false);
+
+       if (!main_scroller || !outer_layout) {
+               D_EMSG("NULL pointer error!! main_scroller = %p, outer_layout = %p");
+               goto error_return;
+       }
+
+       elm_object_content_set(main_scroller, content_layout);
+
+       /* elm_scroller_page_relative_set(main_scroller, 0, 1); */
+
+       elm_object_part_content_set(outer_layout, "elm.swallow.content", main_scroller);
+       cd->main_scroller = main_scroller;
+
+       navi_it = msg_common_naviframe_item_with_title_and_back_arrow_create(navi_frame, "IDS_MSGF_POP_NEW_MESSAGE", outer_layout, EINA_TRUE);
+       cd->navi_title_layout = elm_object_item_part_content_get(navi_it, "title");
+       cd->navi_it = navi_it;
+
+       elm_naviframe_item_pop_cb_set(navi_it, __msgc_naviframe_item_pop_cb, cd);
+
+       /*  create more button */
+       Evas_Object *more_btn = elm_button_add(navi_frame);
+       if (more_btn) {
+               elm_object_style_set(more_btn, "naviframe/more/default");
+               elm_object_item_part_content_set(navi_it, "toolbar_more_btn", more_btn);
+               evas_object_smart_callback_add(more_btn, "clicked", msgc_naviframe_more_btn_clicked_cb, cd);
+       }
+
+       /* set navibar to main layout (base) */
+       elm_object_part_content_set(cd->base, "elm.swallow.content", navi_frame);
+
+       /* composer UG is called from logs which is not support the rotations so related the wm value need to be resotred. */
+       elm_win_wm_rotation_available_rotations_get(cd->main_window, &cd->rot, (unsigned int *)&cd->rot_available_cnt);
+       cd->preferred_rot = elm_win_wm_rotation_preferred_rotation_get(cd->main_window);
+       D_MSG("rot_available_cnt : %d, preferred_rot : %d", cd->rot_available_cnt, cd->preferred_rot);
+
+       if (elm_win_wm_rotation_supported_get(cd->main_window)) {
+               int rotation[4] = {0, 90, 180, 270};
+               elm_win_wm_rotation_available_rotations_set(cd->main_window, rotation, 4);
+
+               /* composer UG is called from logs which is not support the rotations so related the wm value need to be resotred. */
+               elm_win_wm_rotation_preferred_rotation_set(cd->main_window, -1);
+
+               /* __msgc_rotation_changed_cb can be registered in multi instance composer ug case */
+               evas_object_smart_callback_add(cd->main_window, "wm,rotation,changed", __msgc_rotation_changed_cb, cd);
+
+               int cur_rotation = elm_win_rotation_get(cd->main_window);
+               D_MSG("current rotation %d", cur_rotation);
+       }
+
+       /* This is need when the composer UG is launched in landscape mode.
+        * i.e., when the device is in lanscape mode before launching compser UG
+        * The above register CB for "wm,rotation,changed" is for future window rotations. */
+       __msgc_rotation_changed_cb(cd, cd->main_window, NULL);
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               if (cd->entry_size_idler) {
+                       ecore_idler_del(cd->entry_size_idler);
+                       cd->entry_size_idler = NULL;
+               }
+               /*This Idler is needed to force calculate entry field size only in case bubble view composer
+               for first time only */
+               /* In case of Push, CB messages body entry will not be created, recalculating entry height is not needed */
+               if (cd->check_push_cb_msg != TRUE)
+                       cd->entry_size_idler = ecore_idler_add(msg_ui_composer_set_body_entry_size_idler, cd);
+       } else {
+               /** Hide button down arrow in title menu */
+               edje_object_signal_emit(_EDJ(cd->navi_title_layout), "hide,arrow", "");
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+
+error_return:
+       return COMPOSER_RETURN_FAIL;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_bubble_data_set(MSG_COMPOSER_VIEW_DATA_S *cd, int thread_id)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "Composer data is NULL");
+       D_MSG_RETVM_IF(cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER, COMPOSER_RETURN_FAIL, "msg_ug_mode is NOT BUBBLE TYPE");
+       D_MSG_RETVM_IF(thread_id <=  0, COMPOSER_RETURN_FAIL, "Composer mode is Not Full");
+       D_MSG_RETVM_IF(cd->bubble_data == NULL, COMPOSER_RETURN_FAIL, "bubble data is NULL");
+
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       msg_struct_t threadInfo = NULL;
+       int err;
+
+       /*Create bubble list*/
+       bubble_data->threadId = thread_id;
+       D_MSG("Thread ID = %d", bubble_data->threadId);
+
+       msg_struct_list_s addrList;
+       int i = 0;
+       memset(&addrList, 0x00, sizeof(msg_struct_list_s));
+
+       err = msg_get_address_list(bubble_data->msgHandle, bubble_data->threadId, &addrList);
+
+       if (err == MSG_SUCCESS) {
+               bubble_data->addr_list.addr_cnt = addrList.nCount;
+
+               for (i = 0; i < addrList.nCount; i++)
+                       msg_get_str_value(addrList.msg_struct_info[i], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, bubble_data->addr_list.addr_info[i].address, DEF_THREAD_ADDR_LEN);
+
+               msg_release_list_struct(&addrList);
+       } else {
+               D_MSG("[ERROR] msg_get_address_list returns error [%d]", err);
+       }
+
+       threadInfo = msg_create_struct(MSG_STRUCT_THREAD_INFO);
+       err = msg_get_thread(bubble_data->msgHandle, bubble_data->threadId, threadInfo);
+
+       if (err == MSG_SUCCESS) {
+               int msg_type = 0;
+
+               msg_get_int_value(threadInfo, MSG_THREAD_MSG_TYPE_INT, &msg_type);
+               bubble_data->msg_type = msg_type;
+       } else {
+               D_MSG("[ERROR] msg_get_trhead returns error [%d", err);
+       }
+
+       msg_release_struct(&threadInfo);
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_change_composer_view(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "Composer data is NULL");
+       D_MSG_RETVM_IF(cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER, COMPOSER_RETURN_FAIL, "Composer mode is Not Full");
+
+       /*Change Mode */
+       cd->msg_ug_mode = MSG_UG_MODE_FULL_COMPOSER;
+
+       /*Change content layout to composer layout*/
+       edje_object_signal_emit(_EDJ(cd->content_layout), "change.composer", "*");
+
+       /* change body main field to create body scroller */
+       msg_ui_composer_body_create_body_main_layout(cd, cd->content_layout);
+
+       cd->recipient = msg_ui_composer_recipient_create(cd->content_layout, 1, cd);
+        if (cd->recipient) {
+                elm_object_part_content_set(cd->content_layout, "swl.recipient", cd->recipient->bx_main);
+        }
+
+       /* This rect is needed to push/pull the body entry based on MBE visibility */
+       cd->recipient_ht_rect = __msgc_create_recipient_area_rect(cd->content_layout, cd);
+       elm_object_part_content_set(cd->content_layout, "swl.recipient.rect", cd->recipient_ht_rect);
+
+       Evas_Object *predict_search_layout = msg_ui_composer_predictsearch_list_create(cd->content_layout, cd);
+       elm_object_part_content_set(cd->content_layout, "swl.predictsearch", predict_search_layout);
+
+       elm_object_signal_callback_del(cd->content_layout, "bubble_layout,clicked", "", msg_ui_bubble_main_layout_clicked_cb);
+
+       msg_ui_composer_change_body_layout_mode(cd, cd->rotate);
+
+       msg_ui_composer_navi_title_set(cd);
+
+       app_control_h svc_handle = NULL;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RESULT, MSG_BUNDLE_VALUE_MODE_CHANGE);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_COMPOSE);
+               ug_send_result(cd->ug, svc_handle);
+               app_control_destroy(svc_handle);
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_change_bubble_view(MSG_COMPOSER_VIEW_DATA_S *cd, msg_thread_id_t tid)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "Composer data is NULL");
+       D_MSG_RETVM_IF(cd->msg_ug_mode != MSG_UG_MODE_FULL_COMPOSER && cd->msg_ug_mode != MSG_UG_MODE_ONLY_COMPOSER, COMPOSER_RETURN_FAIL, "Composer mode is Not Full or only");
+
+       /*Change Mode */
+       cd->msg_ug_mode = MSG_UG_MODE_BUBBLE_COMPOSER;
+
+       /* Change the background color */
+       Evas_Object *background = elm_object_part_content_get(cd->content_layout, "swl.background.body");
+
+       /*Change content layout to bubble layout*/
+       edje_object_signal_emit(_EDJ(cd->content_layout), "hide.predictsearch", "*");
+       edje_object_signal_emit(_EDJ(cd->content_layout), "change.bubble", "*");
+
+       /*Init bubble data*/
+       PMSG_BUBBLE_DATA bubble_data = msg_ui_bubble_init_bubble_data(cd->msg_handle, cd);
+       if (!bubble_data)
+               return COMPOSER_RETURN_FAIL;
+
+       cd->bubble_data = (void *)bubble_data;
+
+       /* First parameter should be 'content_layout'. */
+       Evas_Object *layout = msg_ui_bubble_create_view(cd->content_layout, cd->bubble_data);
+       elm_object_part_content_set(cd->content_layout, "swl.bubble.content", layout);
+
+       /*remove unused layout*/
+       msg_ui_composer_recipient_delete(cd->recipient);
+       cd->recipient = NULL;
+
+       msg_ui_composer_predictsearch_list_delete(cd);
+
+       /* change body main field to create body scroller */
+       msg_ui_composer_body_create_body_main_layout(cd, cd->content_layout);
+
+       /* change body scroller size */
+       Evas_Object *entry = msg_ui_composer_last_body_entry_get(cd);
+       int keypad_h = msg_ui_composer_get_keypad_height(entry);
+       msg_ui_composer_change_body_scroll_size(cd, keypad_h);
+
+       app_control_h svc_handle = NULL;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               char buf[DEF_BUF_LEN_S] = {0,};
+               snprintf(buf, sizeof(buf), "%d", tid);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RESULT, MSG_BUNDLE_VALUE_MODE_CHANGE);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_BUBBLE);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+               ug_send_result(cd->ug, svc_handle);
+               app_control_destroy(svc_handle);
+       }
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+/*
+ * msg_ui_composer_editable_set
+ * editable == FALSE : hide body content & disable more button & close option header
+ * editable == TRUE : show body content layout
+ * */
+void msg_ui_composer_editable_set(MSG_COMPOSER_VIEW_DATA_S *cd, Eina_Bool editable)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       D_MSG("editable is %d", editable);
+
+       if (editable == EINA_FALSE) {
+               msg_ui_composer_unset_view(cd);
+               Evas_Object *body_layout = elm_object_part_content_unset(cd->content_layout, "swl.composer.body");
+               evas_object_hide(body_layout);
+       } else {
+               elm_object_part_content_set(cd->content_layout, "swl.composer.body", cd->body_main_layout);
+               evas_object_show(cd->body_main_layout);
+               msg_ui_composer_reset_view(cd);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_bubble_send_del_result(void *data, app_control_h svc_handle)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       ug_send_result(cd->ug, svc_handle);
+}
+
+static void __msgc_navi_title_layout_key_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+
+       D_ENTER;
+       Evas_Event_Key_Down *ev = event_info;
+       if (!ev) return;
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
+
+       if ((!strcmp(ev->keyname, "Return")) || (!strcmp(ev->keyname, "KP_Enter")) || (!strcmp(ev->keyname, "space"))) {
+               /* code to be put once navi title layout gets focus */
+       }
+
+       D_LEAVE;
+}
+
+Evas_Object *msg_ui_composer_create_navi_title_bar(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       Evas_Object *title_layout = elm_layout_add(cd->navi_bar);
+       elm_layout_file_set(title_layout, MSG_COMMON_EDJ, "title");
+       evas_object_size_hint_weight_set(title_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(title_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(title_layout);
+       evas_object_event_callback_add(title_layout, EVAS_CALLBACK_KEY_DOWN, __msgc_navi_title_layout_key_down_cb, NULL);
+
+       return title_layout;
+}
+
+void msg_ui_composer_hide_navi_title(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer data is NULL");
+
+       elm_naviframe_item_title_enabled_set(cd->navi_it, EINA_FALSE, EINA_FALSE);
+       elm_object_item_part_content_unset(cd->navi_it, "title");
+       evas_object_hide(cd->navi_title_layout);
+}
+
+void msg_ui_composer_show_navi_title(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer data is NULL");
+       D_MSG_RETM_IF(cd->header_not_allowed, "Not allowed to show header");
+       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER || cd->msg_ug_mode ==  MSG_UG_MODE_BUBBLE_COMPOSER) {
+               elm_naviframe_item_title_enabled_set(cd->navi_it, EINA_TRUE, EINA_FALSE);
+               if (elm_object_item_part_content_get(cd->navi_it, "title") == NULL) {
+                       elm_naviframe_item_style_set(cd->navi_it, "empty");
+                       elm_object_item_part_content_set(cd->navi_it, "title", cd->navi_title_layout);
+               }
+
+               evas_object_show(cd->navi_title_layout);
+       } else {
+               D_EMSG("Invalid msg_ui_mode [%d]", cd->msg_ug_mode);
+               return;
+       }
+}
+
+void msg_ui_composer_navi_title_set(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+               Evas_Object *navi_title_layout = elm_object_item_part_content_unset(cd->navi_it, "title");
+               if (navi_title_layout)
+                       evas_object_hide(navi_title_layout);
+       } else if (cd->msg_ug_mode ==  MSG_UG_MODE_BUBBLE_COMPOSER) {
+               Evas_Object *back_button = NULL;
+
+               if (!cd->navi_title_layout) {
+                       D_MSG("Creating new navi title layout");
+                       cd->navi_title_layout = msg_ui_composer_create_navi_title_bar(cd);
+                       elm_naviframe_item_style_set(cd->navi_it, "empty");
+                       elm_object_item_part_content_set(cd->navi_it, "title", cd->navi_title_layout);
+               } else
+                       D_MSG("cd->navi_title_layout already exists");
+
+               if (elm_object_item_part_content_get(cd->navi_it, "title") == NULL) {
+                       elm_naviframe_item_style_set(cd->navi_it, "empty");
+                       elm_object_item_part_content_set(cd->navi_it, "title", cd->navi_title_layout);
+               }
+               elm_object_part_text_set(cd->navi_title_layout, "title_text", ""); /* text part clear first */
+
+               msg_ui_bubble_create_title_name_button(cd->navi_bar, bubble_data);
+
+               msg_common_naviframe_title_back_arrow_set(cd->navi_title_layout, cd->navi_bar);
+
+       } else {
+               D_EMSG("Invalid msg_ui_mode [%d]", cd->msg_ug_mode);
+               return;
+       }
+}
+
+Eina_Bool msg_ui_composer_key_release_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_FALSE, "cd is NULL");
+       D_MSG_RETVM_IF(event == NULL, EINA_FALSE, "event is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Ecore_Event_Key *ev = (Ecore_Event_Key *)event;
+
+       D_MSG("[KEY RELEASE] ev->keyname = %s", ev->keyname);
+
+       if (!g_strcmp0(ev->keyname, KEY_HOME) || !g_strcmp0(ev->keyname, KEY_POWER)) {
+               if (!g_strcmp0(ev->keyname, KEY_POWER)) {
+                       if (cd->is_keypad_show)
+                               cd->return_from_power_home = true;
+
+                       cd->on_press_power_key = false;
+                       cd->not_hiding_keypad_flag = false;
+               } else {
+                       cd->return_from_power_home = true;
+               }
+       }
+
+       return EINA_TRUE;
+}
+
+Eina_Bool msg_ui_composer_key_press_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_FALSE, "cd is NULL");
+       D_MSG_RETVM_IF(event == NULL, EINA_FALSE, "event is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Ecore_Event_Key *ev = (Ecore_Event_Key *)event;
+       static char prev_keyname[DEF_BUF_LEN_S+1] = {0,};
+
+       D_MSG("[KEY PRESS] ev->keyname = %s", ev->keyname);
+
+       memset(prev_keyname, 0x00, DEF_BUF_LEN_S);
+       strncpy(prev_keyname, ev->keyname, DEF_BUF_LEN_S);
+
+       if (!g_strcmp0(ev->keyname, KEY_POWER))
+               cd->on_press_power_key = true;
+
+       return EINA_TRUE;
+}
+
+void msg_ui_composer_connect_handler(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       /* connect key press/release handler only for capturing key event on Composer */
+       if (!cd->volkey_press_handler)
+               cd->volkey_press_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, msg_ui_composer_key_press_cb, (void *)cd);
+
+       if (!cd->volkey_release_handler)
+               cd->volkey_release_handler = ecore_event_handler_add(ECORE_EVENT_KEY_UP, msg_ui_composer_key_release_cb, (void *)cd);
+}
+
+void msg_ui_composer_disconnect_handler(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       if (cd->volkey_press_handler) {
+               ecore_event_handler_del(cd->volkey_press_handler);
+               cd->volkey_press_handler = NULL;
+       }
+
+       if (cd->vol_down_key_longpress) {
+               ecore_timer_del(cd->vol_down_key_longpress);
+               cd->vol_down_key_longpress = NULL;
+       }
+
+       if (cd->volkey_release_handler) {
+               ecore_event_handler_del(cd->volkey_release_handler);
+               cd->volkey_release_handler = NULL;
+       }
+
+       if (cd->vol_up_key_longpress) {
+               ecore_timer_del(cd->vol_up_key_longpress);
+               cd->vol_up_key_longpress = NULL;
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_temporary_draft_message(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       D_MSG_RETM_IF(bubble_data == NULL, "Bubble data is NULL");
+       COMPOSER_EDIT_STATE_E edit_state = __msg_ui_composer_edit_check(cd);
+       D_IMSG("edit_state = %d", edit_state);
+
+       if ((edit_state == COMPOSER_EDIT_RECIPIENT_AND_BODY) ||
+               (edit_state == COMPOSER_EDIT_RECIPIENT && bubble_data->isDraft)) {
+               msg_ui_composer_message_init();
+
+               msg_ui_composer_message_destroy();
+       }
+       D_LEAVE;
+       return;
+}
+
+void msg_ui_composer_save_temporary_draft_message(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+       PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
+       D_MSG_RETM_IF(bubble_data == NULL, "Bubble data is NULL");
+
+       msg_thread_id_t tid = 0;
+       COMPOSER_EDIT_STATE_E edit_state = __msg_ui_composer_edit_check(cd);
+       D_IMSG("edit_state = %d", edit_state);
+
+       if ((edit_state == COMPOSER_EDIT_RECIPIENT_AND_BODY) ||
+               (edit_state == COMPOSER_EDIT_RECIPIENT && bubble_data->isDraft)) {
+               /* auto save composer data */
+               msg_ui_composer_message_init();
+
+               if (msg_ui_composer_get_message_data(cd) == COMPOSER_RETURN_SUCCESS) {
+                       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+                               tid = bubble_data->threadId;
+                       }
+
+                       D_MSG("tid = %d, msg_id = %d", tid, cd->msg_id);
+                       /* delete draft message */
+                       if (tid > 0) {
+                               if (msg_ui_composer_delete_draft_message(cd->msg_handle, tid, cd->msg_id) == COMPOSER_RETURN_SUCCESS) {
+                                       D_MSG("Previous draft message is deleted before saving new one");
+                               }
+                       }
+
+                       D_MSG("save draft message");
+                       if (msg_ui_composer_save_message(cd->msg_handle, cd->msg_id, &tid) >= 0) {
+                               D_MSG("Draft message saved");
+                       }
+               }
+               msg_ui_composer_message_destroy();
+
+               /* For clearing the body entry, attachments and so */
+               /* msg_ui_composer_clear(cd); */
+       }
+
+       D_LEAVE;
+       return;
+}
diff --git a/composer/src/ui-composer/msg-ui-composer-pageduration.c b/composer/src/ui-composer/msg-ui-composer-pageduration.c
new file mode 100755 (executable)
index 0000000..bd83331
--- /dev/null
@@ -0,0 +1,352 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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-common.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-message.h"
+#include "msg-ui-composer-pageduration.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-composer-main.h"
+#include "msg-ui-composer-data.h"
+
+#define CUSTOM_TIME_CHAR_MAX 2
+#define MSGC_PAGE_DURATION_MIN_STRING "5"
+#define MSGC_PAGE_DURATION_MAX_STRING "99"
+
+static void __msg_ui_composer_pageduration_value_set(MSG_COMPOSER_VIEW_DATA_S *cd, int page_duration)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       Evas_Object *body_entry = msg_ui_composer_last_body_entry_get(cd);
+       Evas_Object *last_focused_entry = msg_ui_composer_last_focused_entry_get(cd);
+
+       /* focus is body entry*/
+       if (body_entry && (body_entry == last_focused_entry)) {
+               D_MSG("body entry has a focus");
+               MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+
+               page_data = eina_list_nth(cd->body_data.page_list, cd->current_edit_entry);
+
+               if (page_data) {
+                       page_data->page_duration = page_duration;
+               } else {
+                       D_EMSG("page_data is NULL!!");
+               }
+       } else {
+               cd->page_duration = page_duration;
+       }
+}
+
+static void __msgc_pageduration_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data param is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd->page_duration_spinner == NULL, "cd->page_duration_spinner is NULL");
+       Evas_Object *entry = NULL;
+       int page_duration = 0;
+       const char *str_duration = NULL;
+
+       entry = elm_object_part_content_get(cd->page_duration_spinner, "elm.swallow.entry");
+       D_MSG_RETM_IF(entry == NULL, "entry is NULL");
+
+       if (cd->is_spinner_entry_focus) {
+               str_duration = elm_entry_entry_get(entry);
+               if (str_duration != NULL) {
+                       page_duration = atoi(str_duration);
+               }
+
+               if (page_duration < MSGC_PAGE_DURATION_MIN || page_duration > MSGC_PAGE_DURATION_MAX) {
+                       if (page_duration < MSGC_PAGE_DURATION_MIN) {
+                               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_DURATION_MIN_LIMIT_REACHED);
+                               elm_entry_entry_set(entry, MSGC_PAGE_DURATION_MIN_STRING);
+                               elm_entry_cursor_end_set(entry);
+                               return;
+                       } else {
+                               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_DURATION_MAX_LIMIT_REACHED);
+                               elm_entry_entry_set(entry, MSGC_PAGE_DURATION_MAX_STRING);
+                               elm_entry_cursor_end_set(entry);
+                               return;
+                       }
+               }
+       } else {
+               double page_durationspinner = elm_spinner_value_get(cd->page_duration_spinner);
+               page_duration = page_durationspinner;
+       }
+       D_MSG("page_duration is %d", page_duration);
+
+       /*save pageduration */
+       __msg_ui_composer_pageduration_value_set(cd, page_duration);
+
+       MSGC_EVAS_OBJECT_DEL(cd->page_duration_spinner);
+       msg_ui_composer_destroy_popup(cd, cd->custom_popup);
+}
+
+static void __msgc_pageduration_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data param is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       MSGC_EVAS_OBJECT_DEL(cd->page_duration_spinner);
+       msg_ui_composer_destroy_popup(cd, cd->custom_popup);
+}
+
+static void __msgc_pageduration_ok_pressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data param is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *entry = NULL;
+       entry = elm_object_part_content_get(cd->page_duration_spinner, "elm.swallow.entry");
+       if (elm_object_focus_get(entry)) {
+               cd->is_spinner_entry_focus = true;
+       } else {
+               cd->is_spinner_entry_focus = false;
+       }
+       D_LEAVE;
+}
+
+int msg_ui_composer_pageduration_value_get(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, MSGC_PAGE_DURATION_MIN, "Composer Data is NULL");
+       Evas_Object *body_entry = msg_ui_composer_last_body_entry_get(cd);
+       Evas_Object *last_focused_entry = msg_ui_composer_last_focused_entry_get(cd);
+       int page_duration = MSGC_PAGE_DURATION_MIN;
+
+       /* focus is body entry*/
+       if (body_entry && (body_entry == last_focused_entry)) {
+               D_MSG("body entry has a focus");
+               MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+
+               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(cd->body_data.page_list, cd->current_edit_entry);
+
+               if (page_data) {
+                       page_duration = page_data->page_duration;
+               }
+       } else {
+               if (cd->page_duration > COMPOSER_PAGE_DEFAULT_DURATION) {
+                       page_duration = cd->page_duration;
+               }
+       }
+
+       return page_duration;
+}
+
+static bool __msg_ui_composer_get_page_number(MSG_COMPOSER_VIEW_DATA_S *cd, int *cur_page, int *total_page)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, false, "Composer Data is NULL");
+       D_MSG_RETVM_IF(cur_page == NULL, false, "param is NULL");
+       D_MSG_RETVM_IF(total_page == NULL, false, "param is NULL");
+
+       Evas_Object *body_entry = msg_ui_composer_last_body_entry_get(cd);
+       Evas_Object *last_focused_entry = msg_ui_composer_last_focused_entry_get(cd);
+
+       /* focus is body entry*/
+       if (body_entry && (body_entry == last_focused_entry)) {
+               D_MSG("body entry has a focus");
+               MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+               int page_count = cd->body_data.page_count;
+               int i = 0;
+
+               for (i = 0; i < page_count; i++) {
+                       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(cd->body_data.page_list, i);
+                       if (page_data->entry == body_entry) {
+                               D_MSG("page NO.[%d]/[%d] focused !!!", i + 1, page_count);
+                               *cur_page = i + 1;
+                               *total_page = page_count;
+
+                               return true;
+                       }
+               }
+       }
+
+       return false;
+}
+
+static void __msgc_pageduration_entry_activated_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "entry is NULL");
+       int page_durationentry = 0;
+       const char *durationentry = NULL;
+       Ecore_IMF_Context *context = NULL;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       durationentry = elm_entry_entry_get(obj);
+
+       if (!durationentry) {
+               D_EMSG("durationentry is NULL");
+               return;
+       }
+       page_durationentry = atoi(durationentry);
+
+       if (page_durationentry < MSGC_PAGE_DURATION_MIN || page_durationentry > MSGC_PAGE_DURATION_MAX) {
+               if (page_durationentry < MSGC_PAGE_DURATION_MIN) {
+                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_DURATION_MIN_LIMIT_REACHED);
+                       elm_entry_entry_set(obj, MSGC_PAGE_DURATION_MIN_STRING);
+                       elm_entry_cursor_end_set(obj);
+                       return;
+               } else {
+                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_DURATION_MAX_LIMIT_REACHED);
+                       elm_entry_entry_set(obj, MSGC_PAGE_DURATION_MAX_STRING);
+                       elm_entry_cursor_end_set(obj);
+                       return;
+               }
+       }
+       context = elm_entry_imf_context_get(obj);
+       ecore_imf_context_input_panel_hide(context);
+       D_LEAVE;
+       return;
+}
+
+static void __msgc_pageduration_spinner_on_min_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_DURATION_MIN_LIMIT_REACHED);
+       D_LEAVE;
+       return;
+}
+
+static void __msgc_pageduration_spinner_on_max_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_DURATION_MAX_LIMIT_REACHED);
+       D_LEAVE;
+       return;
+}
+
+static void __set_spinner_entry_filter(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       Evas_Object *spinner = NULL;
+       Evas_Object *entry = NULL;
+       static Elm_Entry_Filter_Accept_Set digits_filter_data;
+       static Elm_Entry_Filter_Limit_Size limit_filter_data;
+
+       D_MSG_RETM_IF(cd == NULL, "composer data is NULL");
+
+       digits_filter_data.accepted = "0123456789";
+       digits_filter_data.rejected = NULL;
+
+       limit_filter_data.max_byte_count = 0;
+       spinner = cd->page_duration_spinner;
+       entry = elm_object_part_content_get(spinner, "elm.swallow.entry");
+       D_MSG_RETM_IF(entry == NULL, "Entry is NULL");
+       elm_entry_magnifier_disabled_set(entry, EINA_TRUE);
+       elm_object_style_set(entry, "datetime_popup/date");
+       elm_entry_context_menu_disabled_set(entry, EINA_TRUE);
+       elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_DATETIME);
+       elm_entry_markup_filter_append(entry, elm_entry_filter_accept_set, &digits_filter_data);
+       limit_filter_data.max_char_count = CUSTOM_TIME_CHAR_MAX;
+       elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data);
+       evas_object_smart_callback_add(entry, "activated", __msgc_pageduration_entry_activated_cb, cd);
+       return;
+}
+
+void msg_ui_composer_pageduration_popup_create(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       Evas_Object *positive_btn = NULL;
+       Evas_Object *negative_btn = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *spinner = NULL;
+       Evas_Object *popup = NULL;
+       int page_duration = MSGC_PAGE_DURATION_MIN;
+       int cur_page = 0;
+       int total_page = 0;
+       bool has_page_number = false;
+       char duration_str[DEF_BUF_LEN_S + 1] = {0,};
+       char popup_msg[DEF_BUF_LEN + 1] = {0,};
+       char *str = NULL;
+
+       page_duration = msg_ui_composer_pageduration_value_get(cd);
+       D_MSG("Loaded duration is %d", page_duration);
+       snprintf(duration_str, sizeof(duration_str), "%d", page_duration);
+
+       if (cd->custom_popup) {
+               msg_ui_composer_destroy_popup(cd, cd->custom_popup);
+               cd->custom_popup = NULL;
+       }
+
+       /* create popup */
+       if (ug_get_mode(cd->ug) == UG_MODE_FRAMEVIEW && cd->caller_layout) {
+               popup = msg_ui_composer_create_custom_popup(cd, NULL, cd->caller_layout, NULL);
+       } else {
+               popup = msg_ui_composer_create_custom_popup(cd, NULL, cd->navi_bar, NULL);
+       }
+
+       if (!popup) {
+               D_EMSG("popup is NULL");
+               return;
+       }
+
+       /* create custom popup inner layout */
+       layout = elm_layout_add(popup);
+       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "popup/spinner");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       has_page_number = __msg_ui_composer_get_page_number(cd, &cur_page, &total_page);
+       str = _MSGSTR("IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD");
+       snprintf(popup_msg, sizeof(popup_msg), str, cur_page, total_page);
+
+       if (has_page_number) {
+               char popup_msg_with_page[DEF_BUF_LEN + 1] = {0,};
+               snprintf(popup_msg_with_page, sizeof(popup_msg_with_page), "%s", popup_msg);
+               elm_object_part_text_set(popup, "title,text", popup_msg_with_page);
+       }
+       elm_object_domain_translatable_part_text_set(layout, "secs.text", MESSAGE_PKGNAME, "IDS_MSG_BODY_SEC");
+       spinner = elm_spinner_add(layout);
+       elm_spinner_min_max_set(spinner, MSGC_PAGE_DURATION_MIN, MSGC_PAGE_DURATION_MAX);
+       elm_spinner_editable_set(spinner, EINA_TRUE);
+       elm_object_style_set(spinner, "vertical");
+       elm_spinner_value_set(spinner, page_duration);
+       elm_object_part_content_set(layout, "swl.spinner", spinner);
+       evas_object_smart_callback_add(spinner, "min,reached", __msgc_pageduration_spinner_on_min_clicked_cb, cd);
+       evas_object_smart_callback_add(spinner, "max,reached", __msgc_pageduration_spinner_on_max_clicked_cb, cd);
+       evas_object_show(spinner);
+       evas_object_show(layout);
+       elm_object_content_set(popup, layout);
+
+       cd->is_spinner_entry_focus = false;
+
+       cd->page_duration_spinner = spinner;
+       __set_spinner_entry_filter(cd);
+
+       /* create button */
+       negative_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", negative_btn);
+       evas_object_smart_callback_add(negative_btn, "clicked", __msgc_pageduration_cancel_clicked_cb, cd);
+       positive_btn = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       elm_object_part_content_set(popup, "button2", positive_btn);
+       evas_object_smart_callback_add(positive_btn, "clicked", __msgc_pageduration_ok_clicked_cb, cd);
+       evas_object_smart_callback_add(positive_btn, "pressed", __msgc_pageduration_ok_pressed_cb, cd);
+
+       evas_object_show(popup);
+       cd->custom_popup = popup;
+
+       D_LEAVE;
+       return;
+}
diff --git a/composer/src/ui-composer/msg-ui-composer-popup.c b/composer/src/ui-composer/msg-ui-composer-popup.c
new file mode 100755 (executable)
index 0000000..eef780f
--- /dev/null
@@ -0,0 +1,728 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-composer-recipient-callback.h"
+#include "msg-ui-composer-recipient.h"
+
+#include <notification.h>
+#include <utilX.h>
+#include <app_control_internal.h>
+
+void msg_ui_composer_destroy_popup(void *data, Evas_Object *popup)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(popup == NULL, "popup is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = (RECIPIENT_S *)cd->recipient;
+
+       if (cd->add_popup == popup) {
+               MSGC_EVAS_OBJECT_DEL(cd->add_popup);
+       } else if (cd->add_text_popup) {
+               MSGC_EVAS_OBJECT_DEL(cd->add_text_popup);
+#ifdef MSGC_SUPPORT_USE_OTHER_NUMBER
+       } else if (rd && rd->change_number_popup == popup) {
+               MSGC_EVAS_OBJECT_DEL(rd->change_number_popup);
+#endif
+       } else if (rd && rd->selected_popup == popup) {
+               MSGC_EVAS_OBJECT_DEL(rd->selected_popup);
+       } else if (rd && rd->add_contact_popup == popup) {
+               MSGC_EVAS_OBJECT_DEL(rd->add_contact_popup);
+       } else if (cd->popup_end == popup) {
+               MSGC_EVAS_OBJECT_DEL(cd->popup_end);
+               cd->isclosed = false;
+       } else if (cd->custom_popup == popup) {
+               MSGC_EVAS_OBJECT_DEL(cd->custom_popup);
+       } else if (cd->center_popup == popup) {
+               MSGC_EVAS_OBJECT_DEL(cd->center_popup);
+       } else if (cd->add_grid_popup == popup) {
+               MSGC_EVAS_OBJECT_DEL(cd->add_grid_popup);
+       } else if (cd->add_template_popup == popup) {
+               MSGC_EVAS_OBJECT_DEL(cd->add_template_popup);
+       } else if (cd->progress_popup == popup) {
+               MSGC_EVAS_OBJECT_DEL(cd->progress_popup);
+       } else if (cd->replace_grid_popup == popup) {
+               MSGC_EVAS_OBJECT_DEL(cd->replace_grid_popup);
+       } else if (cd->send_via_popup == popup) {
+               MSGC_EVAS_OBJECT_DEL(cd->send_via_popup);
+       } else if (cd->scroller_popup == popup) {
+               char *popup_msg = (char *)evas_object_data_get(popup, "text");
+
+               if (popup_msg) {
+                       g_free(popup_msg);
+               } else {
+                       D_EMSG("popup_msg is NULL");
+               }
+
+               MSGC_EVAS_OBJECT_DEL(cd->scroller_popup);
+       } else {
+               D_MSG("etc popup. please check this popup");
+               evas_object_del(popup);
+       }
+}
+
+/* Destroy all window popup */
+void msg_ui_composer_popup_delete_all(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *popup = NULL;
+
+       EINA_LIST_FREE(cd->popup_list, popup) {
+               if (popup) {
+                       /* cd->popup_list is freed in this api.
+                        So, evas_object_event_callback_del(popup, EVAS_CALLBACK_DEL, msg_ui_composer_popup_delete_cb); should be called to avoid duplicated freeing eina_list(cd->popup_list)
+                       */
+                       evas_object_event_callback_del(popup, EVAS_CALLBACK_DEL, msg_ui_composer_popup_delete_cb);
+                       msg_ui_composer_destroy_popup(cd, popup);
+               }
+       }
+
+       if (cd->ctx_popup) {
+               evas_object_del(cd->ctx_popup);
+               cd->ctx_popup = NULL;
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_popup_delete_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;
+       Evas_Object *popup = (Evas_Object *)obj;
+
+       elm_object_tree_focus_allow_set(cd->base, EINA_TRUE);
+
+       if (cd->popup_list) {
+               D_MSG("popup list count = %d", eina_list_count(cd->popup_list));
+               cd->popup_list = eina_list_remove(cd->popup_list, popup);
+
+       } else {
+               D_EMSG("popup_list is not exist");
+       }
+       msg_ui_composer_reset_view(cd);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_text_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *popup = (Evas_Object *)obj;
+
+       msg_ui_composer_destroy_popup(cd, popup);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *)event_info;
+       Evas_Object *popup = (Evas_Object *)obj;
+
+       if (ev->button == 3) {/* if mouse right button is up */
+               D_MSG("Back operation");
+               /* Bellow codes are added for invalid recipient popup type: set the original string to the entry */
+               char *recipient_str = evas_object_data_del(popup, "entry_data");
+               if (NULL != recipient_str) {
+                       RECIPIENT_S *rd = cd->recipient;
+                       if (NULL != rd) {
+                               char *markup_string = elm_entry_utf8_to_markup(recipient_str);
+                               if (NULL != markup_string) {
+                                       elm_entry_entry_set(rd->entry, markup_string);
+                                       elm_entry_cursor_end_set(rd->entry);
+                                       free(markup_string);
+                               }
+                       }
+
+                       msg_ui_composer_last_focus_load(cd);
+                       free(recipient_str);
+               }
+
+               msg_ui_composer_destroy_popup(cd, popup);
+       }
+}
+
+void msg_ui_composer_popup_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *popup = (Evas_Object *)obj;
+
+       /* Bellow codes are added for invalid recipient popup type: set the original string to the entry */
+       char *recipient_str = evas_object_data_del(popup, "entry_data");
+       if (NULL != recipient_str) {
+               RECIPIENT_S *rd = cd->recipient;
+               if (NULL != rd) {
+                       char *markup_string = elm_entry_utf8_to_markup(recipient_str);
+                       if (NULL != markup_string) {
+                               elm_entry_entry_set(rd->entry, markup_string);
+                               elm_entry_cursor_end_set(rd->entry);
+                               free(markup_string);
+                       }
+               }
+
+               free(recipient_str);
+       }
+       msg_ui_composer_destroy_popup(cd, popup);
+}
+
+void msg_ui_composer_popup_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *popup = evas_object_data_del(obj, "popup");
+       D_MSG_RETM_IF(popup == NULL, "popup is NULL");
+       msg_ui_composer_destroy_popup(cd, popup);
+       msg_ui_composer_entry_input_panel_show(cd->last_focus_entry);
+
+       D_LEAVE;
+}
+
+Evas_Object *msg_ui_composer_create_popup_button(Evas_Object *parent, const char *package_str, const char *str_id)
+{
+       D_MSG_RETVM_IF(parent == NULL, NULL, "param is NULL");
+       Evas_Object *btn = NULL;
+
+       btn = elm_button_add(parent);
+       elm_object_style_set(btn, "popup");
+       elm_object_domain_translatable_text_set(btn, package_str, str_id);
+
+       return btn;
+}
+
+void msg_ui_composer_show_status_message(const char *msg)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(msg == NULL, "msg is NULL");
+
+       if (notification_status_message_post(msg) != NOTIFICATION_ERROR_NONE)
+               D_EMSG("notification_status_message_post is failed");
+
+       D_LEAVE;
+}
+
+Evas_Object *msg_ui_composer_create_text_popup_with_hardkey_cb(Evas_Object *parent, MSG_COMPOSER_VIEW_DATA_S *cd, const char *msg,
+               Evas_Object_Event_Cb mouseup_cb, Eext_Event_Cb back_cb)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer data is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *popup = NULL;
+       char *popup_msg = NULL;
+
+       popup = msg_ui_composer_popup_create(cd, parent);
+       D_MSG_RETVM_IF(popup == NULL, NULL, "popup is NULL");
+
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+
+       popup_msg = elm_entry_utf8_to_markup(msg);
+       if (popup_msg) {
+               elm_object_text_set(popup, popup_msg);
+               g_free(popup_msg);
+       }
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, msg_ui_composer_popup_delete_cb, cd);
+
+       if (mouseup_cb)
+               evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, mouseup_cb, cd);
+
+       if (back_cb)
+               eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, back_cb, cd);
+
+       cd->popup_list = eina_list_append(cd->popup_list, popup);
+
+       return popup;
+}
+
+/*
+Note : This popup api should be used when any specific behavior is not required while popup is destroyed except basic destroying operations.
+IF any specific behavior is required, then use msg_ui_composer_create_text_popup_without_hardkey_cb() and use custom_cb funtions to destroy it.
+*/
+Evas_Object *msg_ui_composer_create_text_popup(Evas_Object *parent, MSG_COMPOSER_VIEW_DATA_S *cd, const char *msg, int time)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer data is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *popup = NULL;
+       char *popup_msg = NULL;
+
+       popup = msg_ui_composer_popup_create(cd, parent);
+       D_MSG_RETVM_IF(popup == NULL, NULL, "popup is NULL");
+
+       popup_msg = elm_entry_utf8_to_markup(msg);
+       if (popup_msg) {
+               Evas_Object *box = elm_box_add(popup);
+               elm_object_content_set(popup, box); /* Can't set text to popup without content. */
+               elm_object_text_set(popup, popup_msg);
+               g_free(popup_msg);
+       }
+
+       if (time > 0) {
+               elm_popup_timeout_set(popup, time);
+               evas_object_smart_callback_add(popup, "timeout", msg_ui_composer_text_popup_timeout_cb, cd);
+       }
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, msg_ui_composer_popup_delete_cb, cd);
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_composer_popup_mouseup_cb, cd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_composer_popup_back_cb, cd);
+
+       cd->popup_list = eina_list_append(cd->popup_list, popup);
+
+       return popup;
+}
+
+static void __msg_ui_composer_launch_storage_setting(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;
+       int ret = APP_CONTROL_ERROR_NONE;
+       app_control_h svc_handle = NULL;
+
+       Evas_Object *popup = evas_object_data_del(obj, "popup");
+       D_MSG_RETM_IF(popup == NULL, "popup is NULL");
+       msg_ui_composer_destroy_popup(cd, popup);
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return;
+       }
+
+       app_control_set_window(svc_handle, elm_win_xwindow_get(cd->main_window));
+       app_control_set_app_id(svc_handle, "setting-storage-efl");
+
+       ret = app_control_send_launch_request(svc_handle, NULL, cd);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request is failed ret = %d", ret);
+               app_control_destroy(svc_handle);
+               return;
+       }
+
+       app_control_destroy(svc_handle);
+
+       D_LEAVE;
+}
+
+Evas_Object *msg_ui_composer_create_memory_full_popup(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer data is NULL");
+       D_MSG_RETVM_IF(cd->main_window == NULL, NULL, "main window is NULL");
+       Evas_Object *popup = NULL;
+
+       popup = msg_ui_composer_create_text_popup(cd->main_window, cd, _MSGSTR("IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"), 0);
+       D_MSG_RETVM_IF(popup == NULL, NULL, "popup is NULL");
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_HEADER_ATTENTION");
+
+       Evas_Object *btn1 = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       elm_object_part_content_set(popup, "button1", btn1);
+       evas_object_data_set(btn1, "popup", popup);
+       evas_object_smart_callback_add(btn1, "clicked", msg_ui_composer_popup_btn_clicked_cb, cd);
+
+       Evas_Object *btn2 = msg_ui_composer_create_popup_button(popup, MESSAGE_PKGNAME, "IDS_MSGF_BODY_SETTINGS");
+       elm_object_part_content_set(popup, "button2", btn2);
+       evas_object_data_set(btn2, "popup", popup);
+       evas_object_smart_callback_add(btn2, "clicked", __msg_ui_composer_launch_storage_setting, cd);
+
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       return popup;
+}
+
+/* TEXT && BUTTON */
+Evas_Object *msg_ui_composer_create_text_btn_popup(MSG_COMPOSER_VIEW_DATA_S *cd, const char *msg, int time, const char *package_str, const char *str_id)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer data is NULL");
+       D_MSG_RETVM_IF(cd->main_window == NULL, NULL, "main window is NULL");
+       Evas_Object *popup = NULL;
+
+       popup = msg_ui_composer_create_text_popup(cd->main_window, cd, msg, time);
+       D_MSG_RETVM_IF(popup == NULL, NULL, "popup is NULL");
+
+       if (str_id) {
+               Evas_Object *btn = msg_ui_composer_create_popup_button(popup, package_str, str_id);
+               elm_object_part_content_set(popup, "button1", btn);
+               evas_object_data_set(btn, "popup", popup);
+               evas_object_smart_callback_add(btn, "clicked", msg_ui_composer_popup_btn_clicked_cb, cd);
+       }
+
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       return popup;
+}
+
+Evas_Object *msg_ui_composer_create_activity_indicator_popup(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer data is NULL");
+
+       Evas_Object *popup = NULL;
+
+       popup = msg_ui_composer_popup_create(cd, cd->main_window);
+       D_MSG_RETVM_IF(popup == NULL, NULL, "popup is NULL");
+
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       Evas_Object *layout = elm_layout_add(popup);
+       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "processing_view");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_domain_translatable_part_text_set(layout, "elm.text", MESSAGE_PKGNAME, "IDS_ST_BODY_LOADING_ING");
+
+       Evas_Object *progressbar = elm_progressbar_add(popup);
+       elm_object_style_set(progressbar, "process_medium");
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+       elm_object_part_content_set(layout, "processing", progressbar);
+
+       elm_object_content_set(popup, layout);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, msg_ui_composer_popup_delete_cb, cd);
+       cd->popup_list = eina_list_append(cd->popup_list, popup);
+
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       D_LEAVE;
+       return popup;
+}
+
+
+
+Evas_Object *msg_ui_composer_create_progress_popup(MSG_COMPOSER_VIEW_DATA_S *cd, const char *package_str, const char *str_id, int type)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer data is NULL");
+       D_MSG_RETVM_IF(cd->main_window == NULL, NULL, "main window is NULL");
+       D_MSG_RETVM_IF(package_str == NULL, NULL, "package_str param is NULL");
+       D_MSG_RETVM_IF(str_id == NULL, NULL, "str_id param is NULL");
+       Evas_Object *layout = NULL;
+       Evas_Object *label = NULL;
+       Evas_Object *progressbar = NULL;
+       Evas_Object *popup = NULL;
+
+       popup = msg_ui_composer_popup_create(cd, cd->main_window);
+       D_MSG_RETVM_IF(popup == NULL, NULL, "popup is NULL");
+
+       /* create custom inner layout */
+       layout = elm_layout_add(popup);
+       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "composer/popup/popup_processingview");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       label = elm_label_add(layout);
+       elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
+
+       if (type == MSGC_PROGRESS_MMS_MAX_SIZE_TEXT) {
+               char buf[DEF_BUF_LEN_1024 + 1] = {0,};
+               char count_str[DEF_BUF_LEN_S] = {0,};
+               char str[DEF_BUF_LEN_32] = {0,};
+               int max_size = 0;
+
+               D_MSG("mms_max_size : %d", cd->mms_max_size);
+               max_size = (cd->mms_max_size / MSGC_1KB);
+               snprintf(str, sizeof(str), "%d", max_size);
+               snprintf(count_str, sizeof(count_str), "%s%s", str, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MSGSIZE_KB"));
+               snprintf(buf, sizeof(buf), dgettext(package_str, str_id), count_str);
+               elm_object_text_set(label, buf);
+       } else {
+               elm_object_domain_translatable_text_set(label, package_str, str_id);
+       }
+
+       evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(label);
+
+       progressbar = elm_progressbar_add(layout);
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+       elm_object_style_set(progressbar, "process_large");
+       elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(progressbar);
+
+       elm_object_part_content_set(layout, "elm.swallow.content", progressbar);
+       elm_object_part_content_set(layout, "elm.swallow.text", label);
+
+       elm_object_content_set(popup, layout);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, msg_ui_composer_popup_delete_cb, cd);
+
+       cd->popup_list = eina_list_append(cd->popup_list, popup);
+
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       D_LEAVE;
+       return popup;
+}
+
+/* list | grid type popup.
+    Caller should call evas_object_show(popup) after getting popup handle.
+    Because if elm_list widget is added as content, evas_object_show should be called after setting conent. */
+Evas_Object *msg_ui_composer_create_list_popup(MSG_COMPOSER_VIEW_DATA_S *cd, const char *package_str, const char *title, Evas_Object *list, const char *style)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer data is NULL");
+       D_MSG_RETVM_IF(cd->main_window == NULL, NULL, "main window is NULL");
+       Evas_Object *popup = NULL;
+
+       popup = msg_ui_composer_popup_create(cd, cd->main_window);
+       D_MSG_RETVM_IF(popup == NULL, NULL, "popup is NULL");
+
+       if (style)
+               elm_object_style_set(popup, style);
+
+       if (title)
+               elm_object_domain_translatable_part_text_set(popup, "title,text", package_str, title);
+
+       if (list)
+               elm_object_content_set(popup, list);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, msg_ui_composer_popup_delete_cb, cd);
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_composer_popup_mouseup_cb, cd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_composer_popup_back_cb, cd);
+       evas_object_smart_callback_add(popup, "block,clicked", msg_ui_composer_popup_back_cb, cd);
+
+       cd->popup_list = eina_list_append(cd->popup_list, popup);
+
+       D_LEAVE;
+       return popup;
+}
+
+/* checkbox popup */
+Evas_Object *msg_ui_composer_create_checkbox_popup(MSG_COMPOSER_VIEW_DATA_S *cd, const char *title, const char *msg_package, const char *msg, const char *chk_msg_package, const char *check_msg)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer data is NULL");
+       D_MSG_RETVM_IF(cd->main_window == NULL, NULL, "main window is NULL");
+       D_MSG_RETVM_IF(msg == NULL, NULL, "param is NULL");
+       D_MSG_RETVM_IF(check_msg == NULL, NULL, "param is NULL");
+       D_MSG_RETVM_IF(msg_package == NULL, NULL, "msg_package param is NULL");
+       D_MSG_RETVM_IF(chk_msg_package == NULL, NULL, "chk_msg_package param is NULL");
+       Evas_Object *popup = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *check = NULL;
+
+       popup = msg_ui_composer_popup_create(cd, cd->main_window);
+       D_MSG_RETVM_IF(popup == NULL, NULL, "popup is NULL");
+
+       if (title)
+               elm_object_part_text_set(popup, "title,text", title);
+
+       /* create custom inner layout */
+       layout = elm_layout_add(popup);
+       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "popup/popup_checkview");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       check = elm_check_add(popup);
+       elm_object_domain_translatable_text_set(check, chk_msg_package, check_msg);
+       evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(check);
+
+       Evas_Object *label = elm_label_add(popup);
+       elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
+       elm_object_domain_translatable_text_set(label, msg_package, msg);
+       evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(label);
+
+       elm_object_part_content_set(layout, "elm.swallow.content", label);
+       elm_object_part_content_set(layout, "elm.swallow.end", check);
+
+       evas_object_show(layout);
+
+       elm_object_content_set(popup, layout);
+       evas_object_data_set(popup, "check_box", check);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, msg_ui_composer_popup_delete_cb, cd);
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_composer_popup_mouseup_cb, cd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_composer_popup_back_cb, cd);
+
+       cd->popup_list = eina_list_append(cd->popup_list, popup);
+
+       evas_object_show(popup);
+
+       D_LEAVE;
+       return popup;
+}
+
+/* custom type popup */
+Evas_Object *msg_ui_composer_create_custom_popup(MSG_COMPOSER_VIEW_DATA_S *cd, const char *title, Evas_Object *parent, Evas_Object *layout)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer data is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent param is NULL");
+       Evas_Object *popup = NULL;
+
+       popup = msg_ui_composer_popup_create(cd, parent);
+       D_MSG_RETVM_IF(popup == NULL, NULL, "popup is NULL");
+
+       if (title)
+               elm_object_part_text_set(popup, "title,text", title);
+
+       if (layout)
+               elm_object_content_set(popup, layout);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, msg_ui_composer_popup_delete_cb, cd);
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_composer_popup_mouseup_cb, cd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_composer_popup_back_cb, cd);
+
+       cd->popup_list = eina_list_append(cd->popup_list, popup);
+
+       D_LEAVE;
+       return popup;
+}
+
+Eina_Bool msg_ui_composer_popup_exist(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       if (!cd)
+               return EINA_FALSE;
+
+       if (!cd->popup_list)
+               return EINA_FALSE;
+
+       D_MSG("popup count = %d", eina_list_count(cd->popup_list));
+
+       if (eina_list_count(cd->popup_list) > 0)
+               return EINA_TRUE;
+       else
+               return EINA_FALSE;
+}
+
+void msg_ui_composer_popup_focus(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *popup = NULL;
+
+       if (!cd || !cd->popup_list)
+               return;
+
+       popup = eina_list_nth(cd->popup_list, 0);
+       if (!popup) {
+               D_EMSG("popup is NULL");
+               return;
+       }
+
+       elm_object_focus_set(popup, EINA_TRUE);
+}
+
+void msg_ui_composer_change_list_popup_layout(void *data, Evas_Object *popup, int list_popup_type, int rotate)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(popup == NULL, "data is NULL");
+       Evas_Object *content_eo = elm_object_content_get(popup);
+       int item_count = (int)evas_object_data_get(popup, "item_count");
+       int popu_list_count = item_count;
+
+       D_MSG("item_count = %d", item_count);
+
+       /* bellow variables can be chanaged according to list_popup_style */
+       int list_item_h = 0;
+       int portrait_list_count_max = 0;
+       int landscape_list_count_max = 0;
+
+       if (list_popup_type == COMPOSER_LIST_POPUP_LIST) {
+               list_item_h = MSGC_POPUP_LIST_H;
+               portrait_list_count_max = MSGC_PORTRAIT_LIST_POPUP_COUNT;
+               landscape_list_count_max = MSGC_LANDSCAPE_LIST_POPUP_COUNT;
+       } else {
+               list_item_h = MSGC_POPUP_GENLIST_H;
+               portrait_list_count_max = MSGC_PORTRAIT_GENLIST_POPUP_COUNT;
+               landscape_list_count_max = MSGC_LANDSCAPE_GENLIST_POPUP_COUNT;
+       }
+
+       if (content_eo) {
+               if (rotate == COMPOSER_ROTATE_PORTRAIT || rotate == COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN) {
+                       if (item_count >= portrait_list_count_max)
+                               popu_list_count = portrait_list_count_max;
+               } else {
+                       if (item_count >= landscape_list_count_max)
+                               popu_list_count = landscape_list_count_max;
+               }
+               evas_object_size_hint_min_set(content_eo, 0, ELM_SCALE_SIZE(list_item_h * popu_list_count));
+       } else {
+               D_EMSG("box is NULL");
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_change_grid_popup_layout(void *data, Evas_Object *popup, int rotate)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(popup == NULL, "data is NULL");
+       Evas_Object *content_eo = elm_object_content_get(popup);
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       int count = 0;
+
+       if (content_eo) {
+               if (cd->add_grid_popup) {
+                       count = (int)evas_object_data_get(cd->add_grid_popup, "gengrid_item_count");
+               } else if (cd->add_text_popup) {
+                       count = (int)evas_object_data_get(cd->add_text_popup, "gengrid_item_count");
+               } else if (cd->replace_grid_popup) {
+                       count = (int)evas_object_data_get(cd->replace_grid_popup, "gengrid_item_count");
+               } else {
+                       D_EMSG("not a valid grid popup");
+                       return;
+               }
+
+               if (rotate == COMPOSER_ROTATE_LANDSCAPE || rotate == COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN) {
+                       if (count < 4) {
+                               elm_layout_file_set(content_eo, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_landscape_1line");
+                       } else {
+                               elm_layout_file_set(content_eo, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_landscape_2line");
+                       }
+               } else {
+                       if (count < 4) {
+                               elm_layout_file_set(content_eo, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_portrait_1line");
+                       } else if (count < 7) {
+                               elm_layout_file_set(content_eo, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_portrait_2line");
+                       } else {
+                               elm_layout_file_set(content_eo, MSGC_UI_DEFAULT_EDJ, "popup_gengrid_custom_portrait_3line");
+                       }
+               }
+       } else {
+               D_EMSG("content_eo is NULL");
+       }
+
+       D_LEAVE;
+}
diff --git a/composer/src/ui-composer/msg-ui-composer-predictsearch.c b/composer/src/ui-composer/msg-ui-composer-predictsearch.c
new file mode 100755 (executable)
index 0000000..3979b75
--- /dev/null
@@ -0,0 +1,871 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-composer-data.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-recipient.h"
+#include "msg-ui-composer-predictsearch.h"
+
+#define MSGC_PREDICTLIST_COUNT_MAX 9
+#define DEFAULT_CONTACT_ICON "default_contact_icon"
+
+static void __predictsearch_sel(void *data, Evas_Object *obj, void *event_info);
+static char *__predictsearch_text_get(void *data, Evas_Object *obj, const char *part);
+static void __predictsearch_del_cb(void *data, Evas_Object *obj);
+static int __predictsearch_genlist_item_append(PREDICTSEARCH_S *ps, int numlist);
+
+static char *__predictsearch_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_MSG_RETVM_IF(data == NULL, NULL, "RECIPIENT_ITEM_S data is NULL");
+       RECIPIENT_ITEM_S *ps_item_s = (RECIPIENT_ITEM_S *)data;
+       char *keyword = evas_object_data_get(obj, "keyword");
+
+       if (g_strcmp0(part, "elm.text") == 0) {
+               if (strlen(ps_item_s->display_name) == 0) {
+                       char *string = search_markup_keyword(ps_item_s->recipient, keyword);
+                       if (string == NULL)
+                               string = elm_entry_utf8_to_markup(ps_item_s->recipient);
+
+                       return string;
+               } else {
+                       char *string = search_markup_keyword(ps_item_s->display_name, keyword);
+
+                       if (string == NULL)
+                               string = elm_entry_utf8_to_markup(ps_item_s->display_name);
+
+                       return string;
+               }
+       } else if (g_strcmp0(part, "elm.text.sub") == 0) {
+               char *string = search_markup_keyword(ps_item_s->recipient, keyword);
+               if (string == NULL)
+                       string = elm_entry_utf8_to_markup(ps_item_s->recipient);
+
+               return string;
+       } else {
+               D_EMSG("Unknown part = %s", part);
+       }
+
+       return NULL;
+}
+
+static Evas_Object *__predictsearch_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_MSG_RETVM_IF(data == NULL, NULL, "RECIPIENT_ITEM_S data is NULL");
+       RECIPIENT_ITEM_S *ps_item_s = (RECIPIENT_ITEM_S *)data;
+
+       if (g_strcmp0(part, "elm.swallow.icon") == 0) {
+               Evas_Object *ic_ly = elm_layout_add(obj);
+               elm_layout_theme_set(ic_ly, "layout", "list/B/type.2", "default");
+               Evas_Object *icon = NULL;
+               if (ps_item_s && ps_item_s->image_path[0]) {
+                       if (!strcmp(ps_item_s->image_path, DEFAULT_CONTACT_ICON))
+                               icon = msg_common_get_thumbnail(ic_ly, MSG_LIST_THUMB_CONTACT, MSG_THUMB_TYPE_ICON, MSG_THUMB_SIZE_CONV);
+                       else
+                               icon = msg_common_get_thumbnail(ic_ly, ps_item_s->image_path, MSG_THUMB_TYPE_USER, MSG_THUMB_SIZE_CONV);
+                       elm_object_part_content_set(ic_ly, "elm.swallow.content", icon);
+               }
+
+               return ic_ly;
+       }
+       return NULL;
+}
+
+static void  __predictsearch_del_cb(void *data, Evas_Object *obj)
+{
+       D_MSG_RETM_IF(data == NULL, "RECIPIENT_ITEM_S data is NULL");
+       RECIPIENT_ITEM_S *ps_item_s = (RECIPIENT_ITEM_S *)data;
+
+       if (ps_item_s)
+               free(ps_item_s);
+}
+
+static void __predictsearch_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "Composer Data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       RECIPIENT_ITEM_S *ps_item_s = (RECIPIENT_ITEM_S *)elm_object_item_data_get(item);
+       D_MSG_RETM_IF(ps_item_s == NULL, "genlist_item_data is NULL");
+       char *address = NULL;
+       char *normalized_number = NULL;
+
+       elm_genlist_item_selected_set(item, 0);
+
+       if (msg_ui_composer_recipient_count_get(cd->recipient) >= cd->recipient_max_count) {
+               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+
+               msg_ui_composer_predictsearch_clear(cd);
+               return;
+       }
+
+       address = ps_item_s->recipient;
+
+       if (get_address_type(ps_item_s->recipient) != COMPOSER_UTIL_ADDRTYPE_EMAIL) {
+               /* make normalized number */
+               normalized_number = msg_common_make_normalized_number(ps_item_s->recipient);
+               if (normalized_number) {
+                       D_SEC_MSG("normalized_number = [%s]", normalized_number);
+                       address = normalized_number;
+               }
+       }
+
+       if (msg_ui_composer_recipient_duplicate_check(cd->recipient, address) == COMPOSER_RETURN_RECIPIENT_DUPLICATE) {
+               D_EMSG("Recipient is duplicate");
+               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_DUP_RECP);
+               msg_ui_composer_predictsearch_clear(cd);
+               msg_ui_composer_recipient_entry_text_set(cd->recipient, "");
+
+               if (normalized_number) {
+                       free(normalized_number);
+                       normalized_number = NULL;
+               }
+
+               return;
+       }
+
+       if (msg_ui_composer_recipient_vaild_check(address) == EINA_FALSE) {
+               D_EMSG("Input recipient is Invaild");
+               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_INVALID_RECP);
+       } else {
+               msg_ui_composer_recipient_append(cd->recipient, address, ps_item_s->index);
+               msg_ui_composer_recipient_entry_text_set(cd->recipient, "");
+       }
+
+       if (normalized_number) {
+               free(normalized_number);
+               normalized_number = NULL;
+       }
+
+       msg_ui_composer_predictsearch_clear(cd);
+       D_LEAVE;
+       return;
+}
+
+Eina_Bool __predictsearch_mouse_down_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_TRUE, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       PREDICTSEARCH_S *ps = cd->predictsearch;
+       Ecore_Event_Mouse_Button *ev = (Ecore_Event_Mouse_Button *)event;
+       Evas_Coord x = 0;
+       Evas_Coord y = 0;
+       Evas_Coord w = 0;
+       Evas_Coord h = 0;
+       Evas_Coord part_x = 0;
+       Evas_Coord part_y = 0;
+       Evas_Coord part_w = 0;
+       Evas_Coord part_h = 0;
+       int mouse_x = ev->x;
+       int mouse_y = ev->y;
+       COMPOSER_ROTATE_TYPE_E rotate = cd->rotate;
+
+       D_MSG_RETVM_IF(ps == NULL, EINA_TRUE, "ps is NULL");
+
+       /* convert mouse position based on orientation.
+               Because root point(R0) of mouse down is not changed according to rotation, but, root point of predictsearch layout is changed according to rotation*/
+       if (rotate == COMPOSER_ROTATE_PORTRAIT) {
+               mouse_x = ev->x;
+               mouse_y = ev->y;
+       } else if (rotate == COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN) {
+               mouse_x = cd->window_w - ev->x;
+               mouse_y = cd->window_h - ev->y;
+       } else if (rotate == COMPOSER_ROTATE_LANDSCAPE) {
+               mouse_x = ev->y;
+               mouse_y = cd->window_w - ev->x;
+       } else if (rotate == COMPOSER_ROTATE_LANDSCAPE_UPSIDEDOWN) {
+               mouse_x = cd->window_h - ev->y;
+               mouse_y = ev->x;
+       } else {
+               D_EMSG("Invalid rotate = %d", rotate);
+       }
+
+       D_SEC_MSG("mouse down point after rotation (x,y)=(%d,%d)", mouse_x, mouse_y);
+
+       /* it retrurns geometry position base on combination window and rotation */
+       evas_object_geometry_get(ps->layout, &x, &y, &w, &h);
+       /* it retrurns relative geometry position base on layout */
+       edje_object_part_geometry_get(_EDJ(ps->layout), "swl.predictsearch", &part_x, &part_y, &part_w, &part_h);
+
+       int start_x = x + part_x;
+       int end_x = start_x + part_w;
+       int start_y = y + part_y;
+       int end_y = start_y + part_h;
+
+       D_SEC_MSG("layout start(%d,%d) end(%d,%d)", start_x, start_y, end_x, end_y);
+
+       if ((mouse_x < start_x || mouse_x > end_x)
+               || (mouse_y < start_y || mouse_y > end_y)) {
+               D_MSG("Out of position of predictlist is pressed");
+
+               msg_ui_composer_predictsearch_clear(cd);
+       }
+
+       return EINA_TRUE;
+}
+
+static void __predictsearch_show(PREDICTSEARCH_S *ps)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(ps == NULL, "PredictSearchData is NULL");
+       D_MSG_RETM_IF(ps->cd == NULL, "Composer Data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = ps->cd;
+
+       if (ps->IsShow == EINA_FALSE) {
+               ps->IsShow = EINA_TRUE;
+
+               edje_object_signal_emit(_EDJ(cd->content_layout), "show.predictsearch", "*");
+
+               if (!ps->mouse_down_handler)
+                       ps->mouse_down_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, __predictsearch_mouse_down_cb, cd);
+       }
+
+       D_LEAVE;
+}
+
+static void __predictsearch_hide(PREDICTSEARCH_S *ps)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(ps == NULL, "PredictSearchData is NULL");
+       D_MSG_RETM_IF(ps->cd == NULL, "Composer Data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = ps->cd;
+
+       if (ps->IsShow == EINA_TRUE) {
+               ps->IsShow = EINA_FALSE;
+               edje_object_signal_emit(_EDJ(cd->content_layout), "hide.predictsearch", "*");
+
+               if (ps->mouse_down_handler) {
+                       ecore_event_handler_del(ps->mouse_down_handler);
+                       ps->mouse_down_handler = NULL;
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void __predictsearch_genlist_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       PREDICTSEARCH_S *ps = (PREDICTSEARCH_S *)data;
+       D_MSG_RETM_IF(ps == NULL, "ps is NULL");
+       Evas_Object *box = ps->box;
+       Evas_Coord x = 0;
+       Evas_Coord y = 0;
+       Evas_Coord w = 0;
+       Evas_Coord h = 0;
+       Evas_Object *track = NULL;
+       int max_layout_height = 0;
+       int total_height = 0;
+
+       edje_object_part_geometry_get(_EDJ(ps->layout), "rect.predictsearch", &x, &y, &w, &max_layout_height);
+
+       track = ps->track;
+       evas_object_geometry_get(track, &x, &y, &w, &h);
+       D_MSG_RETM_IF(0 == h, "Genlist Item height is 0");
+
+       if ((ps->count * h >= max_layout_height)) {
+               evas_object_size_hint_min_set(box, 0, max_layout_height);
+       } else {
+               total_height = ps->count * h;
+               evas_object_size_hint_min_set(box, 0, total_height);
+       }
+       D_LEAVE;
+}
+
+static void __predictsearch_genlist_realized_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(event_info == NULL, "Event info NULL");
+       PREDICTSEARCH_S *ps = (PREDICTSEARCH_S *)data;
+       D_MSG_RETM_IF(ps == NULL, "ps is NULL");
+
+       ps->track_item = event_info;
+       ps->track = elm_object_item_track(ps->track_item);
+       evas_object_event_callback_add(ps->track, EVAS_CALLBACK_RESIZE, __predictsearch_genlist_resize_cb, (void *)ps);
+}
+
+static void __predictsearch_genlist_unrealized_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(event_info == NULL, "Event info NULL");
+       PREDICTSEARCH_S *ps = (PREDICTSEARCH_S *)data;
+       D_MSG_RETM_IF(ps == NULL, "ps is NULL");
+
+       if (ps->track_item == event_info) {
+               evas_object_event_callback_del(ps->track, EVAS_CALLBACK_RESIZE, __predictsearch_genlist_resize_cb);
+               elm_object_item_untrack(ps->track_item);
+               ps->track_item = NULL;
+               ps->track = NULL;
+       }
+}
+static void __predictsearch_change_layout_size(PREDICTSEARCH_S *ps, Evas_Object *obj)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(ps == NULL, "ps is NULL");
+       __predictsearch_genlist_resize_cb(ps, NULL, NULL, NULL);
+}
+
+static void __predictsearch_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");
+       PREDICTSEARCH_S *ps = cd->predictsearch;
+       D_MSG_RETM_IF(ps == NULL, "ps is NULL");
+
+       if (cd->isclosed) {
+               D_MSG("ug close case. return.");
+               return;
+       }
+
+       __predictsearch_change_layout_size(ps, ps->box);
+       D_LEAVE;
+}
+
+static Evas_Object *__predictsearch_create_layout(MSG_COMPOSER_VIEW_DATA_S *cd, Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       Evas_Object *layout = NULL;
+
+       layout = elm_layout_add(parent);
+       if (!layout) {
+               D_EMSG("layout create error !!!!");
+               return NULL;
+       }
+       elm_layout_file_set(layout, msg_ui_composer_edj_get(cd), MSGC_EDJ_GRP_PREDICTSEARCH_FIELD);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       PREDICTSEARCH_S *ps = NULL;
+       Evas_Object *genlist = NULL;
+
+       if (!cd->predictsearch) {
+               ps = (PREDICTSEARCH_S *)calloc(1, sizeof(PREDICTSEARCH_S));
+               if (ps == NULL) {
+                       D_EMSG("Fail to malloc of PredictSearchData");
+                       evas_object_del(layout);
+
+                       return NULL;
+               }
+
+               cd->predictsearch = ps;
+       } else {
+               D_MSG("ps is already existed");
+               ps = cd->predictsearch;
+       }
+
+       ps->parent = parent;
+       ps->cd = cd;
+       ps->IsShow = EINA_FALSE;
+       ps->is_resume = false;
+
+       ps->itc_2line.item_style = "type1";
+       ps->itc_2line.func.content_get = __predictsearch_content_get;
+       ps->itc_2line.func.text_get = __predictsearch_text_get;
+       ps->itc_2line.func.state_get = NULL;
+       ps->itc_2line.func.del = __predictsearch_del_cb;
+
+       ps->itc_1line.item_style = "default";
+       ps->itc_1line.func.content_get = __predictsearch_content_get;
+       ps->itc_1line.func.text_get = __predictsearch_text_get;
+       ps->itc_1line.func.state_get = NULL;
+       ps->itc_1line.func.del = __predictsearch_del_cb;
+
+       ps->itc_2line_noicon.item_style = "type1";
+       ps->itc_2line_noicon.func.content_get = NULL;
+       ps->itc_2line_noicon.func.text_get = __predictsearch_text_get;
+       ps->itc_2line_noicon.func.state_get = NULL;
+       ps->itc_2line_noicon.func.del = __predictsearch_del_cb;
+
+       Evas_Object *box = elm_box_add(layout);
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(box);
+
+       genlist = elm_genlist_add(box);
+       if (!genlist) {
+               D_EMSG("list is NULL");
+               evas_object_del(layout);
+               evas_object_del(box);
+
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_genlist_homogeneous_set(genlist, EINA_TRUE);
+       elm_object_focus_allow_set(genlist, EINA_FALSE);
+       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+       evas_object_show(genlist);
+
+       elm_box_pack_end(box, genlist);
+
+       elm_object_part_content_set(layout, "swl.predictsearch", box);
+
+       evas_object_data_set(genlist, "keyword", ps->txt_ps_keyword);
+       evas_object_data_set(genlist, "total_height", 0);
+       ps->box = box;
+       ps->glist_ps = genlist;
+
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_RESIZE, __predictsearch_layout_resize_cb, cd);
+       evas_object_smart_callback_add(genlist, "realized", __predictsearch_genlist_realized_cb, ps);
+       evas_object_smart_callback_add(genlist, "unrealized", __predictsearch_genlist_unrealized_cb, ps);
+
+       ps->layout = layout;
+
+       D_LEAVE;
+       return layout;
+}
+
+Evas_Object *msg_ui_composer_predictsearch_list_create(Evas_Object *parent, MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer Data is NULL");
+
+       Evas_Object *layout = __predictsearch_create_layout(cd, parent);
+
+       return layout;
+}
+
+void msg_ui_composer_predictsearch_list_delete(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       PREDICTSEARCH_S *ps = cd->predictsearch;
+       if (ps == NULL) {
+               D_MSG("predictsearch is NULL. No need to delete");
+               return;
+       }
+
+       msg_ui_composer_predictsearch_clear(cd);
+
+       if (ps->layout) {
+               evas_object_del(ps->layout);
+               ps->layout = NULL;
+       }
+
+       if (cd->predictsearch) {
+               free(cd->predictsearch);
+               cd->predictsearch = NULL;
+       }
+
+       D_LEAVE;
+}
+
+static bool __predictsearch_iterate_load(PREDICTSEARCH_S *ps)
+{
+       D_MSG_RETVM_IF(ps == NULL, false, "Predict Search Data is NULL");
+       D_MSG_RETVM_IF(ps->ct_list, false, "Predict Search list is already exist");
+       D_MSG_RETVM_IF(ps->state == COMPOSER_PREDICTSEARCH_END, false, "Predict Search state END");
+
+       contacts_query_h query = NULL;
+       contacts_filter_h filter = NULL;
+       int ct_err = CONTACTS_ERROR_NONE;
+       int list_count = 0;
+
+       /*First Load contact search list about name or number */
+       if (ps->state == COMPOSER_PREDICTSEARCH_NONE) {
+               /* get list from person name */
+               contacts_filter_create(_contacts_person_number._uri, &filter);
+               contacts_filter_add_str(filter, _contacts_person_number.display_name, CONTACTS_MATCH_CONTAINS, ps->txt_ps_keyword);
+               contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR);
+               contacts_filter_add_str(filter, _contacts_person_number.normalized_number, CONTACTS_MATCH_CONTAINS, ps->txt_ps_keyword);
+               contacts_query_create(_contacts_person_number._uri, &query);
+               contacts_query_set_filter(query, filter);
+
+               ct_err = contacts_db_get_records_with_query(query, 0, 0, &ps->ct_list);
+
+               contacts_filter_destroy(filter);
+               contacts_query_destroy(query);
+
+               if (ct_err == CONTACTS_ERROR_NONE) {
+                       contacts_list_get_count(ps->ct_list, &list_count);
+                       if (!list_count) {
+                               D_MSG("There is no contact name or number data");
+                               contacts_list_destroy(ps->ct_list, true);
+                               ps->ct_list = NULL;
+                       } else {
+                               ps->state = COMPOSER_PREDICTSEARCH_NAME_OR_NUMBER;
+                               D_MSG("Get Contact NAME or NUMBER List SUCCESS count = %d", list_count);
+                               return true;
+                       }
+               } else {
+                       D_EMSG("contacts_db_get_records_with_query is failed err = %x", ct_err);
+               }
+       }
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       /*Second Load contact search list about name or email*/
+       if (ps->state < COMPOSER_PREDICTSEARCH_NAME_OR_EMAIL) {
+               /* get list from person email */
+               contacts_filter_create(_contacts_person_email._uri, &filter);
+               contacts_filter_add_str(filter, _contacts_person_email.display_name, CONTACTS_MATCH_CONTAINS, ps->txt_ps_keyword);
+               if ((strcmp(ps->txt_ps_keyword, "@") != 0) && ((strcmp(ps->txt_ps_keyword, ".") != 0))) {
+                       contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR);
+                       contacts_filter_add_str(filter, _contacts_person_email.email, CONTACTS_MATCH_CONTAINS, ps->txt_ps_keyword);
+               }
+               contacts_query_create(_contacts_person_email._uri, &query);
+               contacts_query_set_filter(query, filter);
+
+               ct_err = contacts_db_get_records_with_query(query, 0, 0, &ps->ct_list);
+
+               contacts_filter_destroy(filter);
+               contacts_query_destroy(query);
+
+               if (ct_err == CONTACTS_ERROR_NONE) {
+                       contacts_list_get_count(ps->ct_list, &list_count);
+                       if (!list_count) {
+                               D_MSG("There is no contact name or email data");
+                               contacts_list_destroy(ps->ct_list, true);
+                               ps->ct_list = NULL;
+                       } else {
+                               ps->state = COMPOSER_PREDICTSEARCH_NAME_OR_EMAIL;
+                               D_MSG("Get Contact NAME or EMAIL List SUCCESS count = %d", list_count);
+                               return true;
+                       }
+               } else {
+                       D_EMSG("contacts_db_get_records_with_query is failed err = %d", ct_err);
+               }
+       }
+#endif
+
+       /*Load contact search list about log*/
+       if (IsValidNumber(ps->txt_ps_keyword) == EINA_TRUE) {
+               if (ps->state < COMPOSER_PREDICTSEARCH_LOG) {
+                       /* get log list from address */
+                       contacts_query_create(_contacts_person_phone_log._uri, &query);
+                       contacts_filter_create(_contacts_person_phone_log._uri, &filter);
+                       contacts_filter_add_str(filter, _contacts_person_phone_log.address, CONTACTS_MATCH_CONTAINS, ps->txt_ps_keyword);
+                       contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_AND);
+                       contacts_filter_add_int(filter, _contacts_person_phone_log.person_id, CONTACTS_MATCH_NONE, 0);
+                       contacts_query_set_filter(query, filter);
+
+                       /* set projection */
+                       unsigned int number_projection[] = {
+                               _contacts_person_phone_log.person_id,
+                               _contacts_person_phone_log.address,
+                       };
+
+                       ct_err = contacts_query_set_projection(query, number_projection, sizeof(number_projection)/sizeof(unsigned int));
+                       if (ct_err != CONTACTS_ERROR_NONE)
+                               D_EMSG("contacts_query_set_projection is failed, ct_err = %d", ct_err);
+
+                       ct_err = contacts_query_set_distinct(query, true);
+                       if (ct_err != CONTACTS_ERROR_NONE)
+                               D_EMSG("contacts_query_set_distinct is failed, ct_err = %d", ct_err);
+
+                       ct_err = contacts_db_get_records_with_query(query, 0, 0, &ps->ct_list);
+                       contacts_filter_destroy(filter);
+                       contacts_query_destroy(query);
+                       filter = NULL;
+                       query = NULL;
+
+                       if (ct_err == CONTACTS_ERROR_NONE) {
+                               contacts_list_get_count(ps->ct_list, &list_count);
+                               if (!list_count) {
+                                       D_MSG("There is no phone log data");
+                                       contacts_list_destroy(ps->ct_list, true);
+                                       ps->ct_list = NULL;
+                               } else {
+                                       ps->state = COMPOSER_PREDICTSEARCH_LOG;
+                                       D_MSG("Get LOG List SUCCESS count = %d", list_count);
+                                       return true;
+                               }
+                       } else {
+                               D_EMSG("contacts_db_get_records_with_query is failed err = %d", ct_err);
+                       }
+               }
+       }
+
+       D_MSG("Search Data is NOT exist")
+       ps->state = COMPOSER_PREDICTSEARCH_END;
+       ps->ct_list = NULL;
+
+       return false;
+}
+
+static int __predictsearch_genlist_item_append(PREDICTSEARCH_S *ps, const int req_count)
+{
+       D_MSG_RETVM_IF(ps == NULL, 0, "Predict Search Data is NULL");
+       D_MSG_RETVM_IF(ps->ct_list == NULL, 0, "Predict Search List is NULL");
+
+       RECIPIENT_ITEM_S *ct_item = NULL;
+       Evas_Object *genlist = ps->glist_ps;
+       int i = 0;
+       int person_index = 0;
+       int ct_ret = CONTACTS_ERROR_NONE;
+       char *recipient = NULL;
+       char *display = NULL;
+       char *thumb_path = NULL;
+
+       if (ps->state < COMPOSER_PREDICTSEARCH_NAME_OR_NUMBER || ps->state > COMPOSER_PREDICTSEARCH_LOG) {
+               ps->state = COMPOSER_PREDICTSEARCH_END;
+               D_MSG("Predict State is END");
+               return i;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_ret) {
+               contacts_record_h ct_record = NULL;
+               contacts_list_get_current_record_p(ps->ct_list, &ct_record);
+
+               if (ct_record) {
+                       recipient = NULL;
+
+                       if (ps->state == COMPOSER_PREDICTSEARCH_LOG) {
+                               contacts_record_get_str_p(ct_record, _contacts_person_phone_log.address, &recipient);
+                               if (recipient && *recipient) {
+                                       ct_item = (RECIPIENT_ITEM_S *)calloc(1, sizeof(RECIPIENT_ITEM_S));
+                                       strncpy(ct_item->recipient, (char *)recipient, COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX);
+                                       strncpy(ct_item->image_path, DEFAULT_CONTACT_ICON, COMPOSER_FILEPATH_LEN_MAX);
+                                       elm_genlist_item_append(genlist, &ps->itc_1line, ct_item, NULL, ELM_GENLIST_ITEM_NONE, __predictsearch_sel, ps->cd);
+                                       ps->count++;
+                               }
+                       } else {
+                               display = NULL;
+                               thumb_path = NULL;
+
+                               if (ps->state == COMPOSER_PREDICTSEARCH_NAME_OR_EMAIL) {
+                                       contacts_record_get_int(ct_record, _contacts_person_email.person_id, &person_index);
+                                       contacts_record_get_str_p(ct_record, _contacts_person_email.email, &recipient);
+                                       contacts_record_get_str_p(ct_record, _contacts_person_email.display_name, &display);
+                                       contacts_record_get_str_p(ct_record, _contacts_person_email.image_thumbnail_path, &thumb_path);
+                               } else {
+                                       contacts_record_get_int(ct_record, _contacts_person_number.person_id, &person_index);
+                                       contacts_record_get_str_p(ct_record, _contacts_person_number.number, &recipient);
+                                       contacts_record_get_str_p(ct_record, _contacts_person_number.display_name, &display);
+                                       contacts_record_get_str_p(ct_record, _contacts_person_number.image_thumbnail_path, &thumb_path);
+                               }
+
+                               if ((person_index > 0) && recipient) {
+                                       ct_item = (RECIPIENT_ITEM_S *)calloc(1, sizeof(RECIPIENT_ITEM_S));
+                                       ct_item->index = person_index;
+
+                                       strncpy(ct_item->recipient, recipient, COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX);
+
+                                       if (display)
+                                               strncpy(ct_item->display_name, display, COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX);
+
+                                       if (thumb_path) {
+                                               strncpy(ct_item->image_path, thumb_path, COMPOSER_FILEPATH_LEN_MAX);
+                                               elm_genlist_item_append(genlist, &ps->itc_2line, ct_item, NULL, ELM_GENLIST_ITEM_NONE, __predictsearch_sel, ps->cd);
+                                       } else {
+                                               strncpy(ct_item->image_path, DEFAULT_CONTACT_ICON, COMPOSER_FILEPATH_LEN_MAX);
+                                               elm_genlist_item_append(genlist, &ps->itc_2line, ct_item, NULL, ELM_GENLIST_ITEM_NONE, __predictsearch_sel, ps->cd);
+                                       }
+                                       ps->count++;
+                               } else {
+                                       D_MSG("Waring Search result has not contact index or recipient");
+                               }
+                       }
+               } else {
+                       D_EMSG("ct_record is NULL");
+               }
+
+               i++;
+
+               if (req_count > 0 && i == req_count)
+                       return i;
+
+               ct_ret = contacts_list_next(ps->ct_list);
+       }
+       D_MSG("ct_ret = %d, i = %d, req_count = %d", ct_ret, i, req_count);
+
+       __predictsearch_change_layout_size(ps, ps->box);
+
+       if (CONTACTS_ERROR_NONE != ct_ret) {
+               contacts_list_destroy(ps->ct_list, true);
+               ps->ct_list = NULL;
+       }
+
+       return i;
+}
+
+static void  __predictsearch_list_append(PREDICTSEARCH_S *ps, int req_count)
+{
+       int addcount = 0;
+       int retcount = 0;
+       bool bLoad;
+
+       if (ps->ct_list == NULL || ps->state == COMPOSER_PREDICTSEARCH_END) {
+               D_EMSG("return ps->ct_list = %d", ps->ct_list);
+               return;
+       }
+
+       while (addcount < req_count) {
+               retcount = __predictsearch_genlist_item_append(ps, req_count - addcount);
+               if (retcount <= 0)
+                       return;
+
+               addcount += retcount;
+
+               if (ps->state == COMPOSER_PREDICTSEARCH_END) {
+                       D_MSG("PredictSearchList append Done");
+                       return;
+               }
+
+               if (ps->ct_list == NULL) {
+                       bLoad = __predictsearch_iterate_load(ps);
+                       if (bLoad == false)
+                               return;
+               }
+       }
+}
+
+Eina_Bool __predictsearch_idler_process(void *data)
+{
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "Predict Search Data is NULL");
+
+       PREDICTSEARCH_S *ps = (PREDICTSEARCH_S *)data;
+
+       __predictsearch_list_append(ps, COMPOSER_PSLIST_COUNT_AT_TIME);
+
+       if (ps->state == COMPOSER_PREDICTSEARCH_END || ps->ct_list == NULL) {
+               ps->idler_ps = NULL;
+
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+Eina_Bool __predictsearch_timer_process(void *data)
+{
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "Predict Search Data is NULL");
+       PREDICTSEARCH_S *ps = data;
+       MSG_COMPOSER_VIEW_DATA_S *cd = ps->cd;
+       D_MSG_RETVM_IF(cd == NULL, ECORE_CALLBACK_CANCEL, "Composer Data is NULL");
+
+       ps->timer_ps = NULL;
+
+       /*Check req string with predict search keyword*/
+       if (strlen(ps->txt_ps_reqkeyword) && !strcmp(ps->txt_ps_reqkeyword, ps->txt_ps_keyword) && (ps->is_resume == false)) {
+               D_SEC_MSG("SAME REQUEST KEYWORD request string %s", ps->txt_ps_reqkeyword);
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (ps->is_resume == true) {
+               ps->is_resume = false;
+       }
+
+       /*clear and reset predictsearch struct*/
+       msg_ui_composer_predictsearch_clear(cd);
+
+       /*change ps keyword*/
+       strncpy(ps->txt_ps_keyword, ps->txt_ps_reqkeyword, sizeof(ps->txt_ps_keyword)-1);
+       D_SEC_MSG("Predict Search Sting Update [%s]", ps->txt_ps_keyword);
+
+       /*Search List Load & show*/
+       if (__predictsearch_iterate_load(ps) == true) {
+               __predictsearch_list_append(ps, COMPOSER_PSLIST_COUNT_AT_TIME);
+
+               if (ps->count > 0) {
+                       __predictsearch_show(ps);
+
+                       if (ps->state != COMPOSER_PREDICTSEARCH_END) {
+                               MSG_ECORE_IDLER_DEL(ps->idler_ps);
+                               ps->idler_ps = ecore_idler_add(__predictsearch_idler_process, ps);
+                       }
+
+               } else {
+                       __predictsearch_hide(ps);
+               }
+       } else {
+               __predictsearch_hide(ps);
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void msg_ui_composer_predictsearch_request(MSG_COMPOSER_VIEW_DATA_S *cd, const char *str)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is Invalid");
+       D_MSG_RETM_IF(cd->predictsearch == NULL, "PredictSearch Data is Invalid");
+
+       PREDICTSEARCH_S *ps = cd->predictsearch;
+
+       if (str && strlen(str) > 0) {
+               /*changed request string of predict search*/
+               bzero(ps->txt_ps_reqkeyword, sizeof(ps->txt_ps_reqkeyword)-1);
+               strncpy(ps->txt_ps_reqkeyword, str, sizeof(ps->txt_ps_reqkeyword)-1);
+
+               if (ps->timer_ps) {
+                       ecore_timer_del(ps->timer_ps);
+                       ps->timer_ps = NULL;
+               }
+
+               ps->timer_ps = ecore_timer_add(COMPOSER_PS_TIMER, __predictsearch_timer_process, ps);
+       } else {
+               msg_ui_composer_predictsearch_clear(cd);
+               __predictsearch_hide(ps);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_predictsearch_clear(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is Invalid");
+       if (cd->predictsearch == NULL) {
+               D_MSG("cd->predictsearch is NULL. No need to clear");
+               return;
+       }
+
+       PREDICTSEARCH_S *ps = cd->predictsearch;
+       if (ps->timer_ps) {
+               ecore_timer_del(ps->timer_ps);
+               ps->timer_ps = NULL;
+       }
+
+       if (ps->idler_ps) {
+               ecore_idler_del(ps->idler_ps);
+               ps->idler_ps = NULL;
+       }
+
+       if (ps->mouse_down_handler) {
+               ecore_event_handler_del(ps->mouse_down_handler);
+               ps->mouse_down_handler = NULL;
+       }
+
+       if (ps->ct_list) {
+               contacts_list_destroy(ps->ct_list, true);
+               ps->ct_list = NULL;
+       }
+
+       if (ps->glist_ps)
+               elm_genlist_clear(ps->glist_ps);
+
+       bzero(ps->txt_ps_keyword, sizeof(ps->txt_ps_keyword));
+
+       ps->state = COMPOSER_PREDICTSEARCH_NONE;
+
+       ps->count = 0;
+       ps->track_item = NULL;
+       ps->track = NULL;
+       evas_object_data_set(ps->glist_ps, "total_height", 0);
+
+       __predictsearch_hide(ps);
+
+       D_LEAVE;
+}
diff --git a/composer/src/ui-composer/msg-ui-composer-recipient-callback.c b/composer/src/ui-composer/msg-ui-composer-recipient-callback.c
new file mode 100755 (executable)
index 0000000..d395dc3
--- /dev/null
@@ -0,0 +1,1868 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-composer-external.h"
+#include "msg-ui-composer-predictsearch.h"
+#include "msg-ui-composer-recipient.h"
+#include "msg-ui-composer-recipient-callback.h"
+#include "msg-ui-composer-attachment.h"
+#include "msg-ui-composer-body.h"
+#include "msg-ui-composer-subject.h"
+#include "msg-ui-composer-main.h"/*for page duration, it should be removed if more option concept is changed*/
+#include "msg-ui-composer-body-page.h"
+
+/*==================================================================================================
+*                                                              FUNCTION IMPLEMENTATIONS
+*==================================================================================================*/
+static void __msg_ui_recipient_process_delimiter_char(void *data, char *full_str, char **text, int type);
+static void __msg_ui_recipient_unselect_mbe_item(RECIPIENT_S *rd);
+
+#ifdef MSGC_SUPPORT_USE_OTHER_NUMBER
+/*change number popup cb*/
+void msg_ui_recipient_change_number_popup_list_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       RECIPIENT_ITEM_S *r_item = evas_object_data_get(obj, "selected_item");
+       D_MSG_RETM_IF(rd == NULL, "recipient data Data is NULL");
+       D_MSG_RETM_IF(r_item == NULL, "Recipient Data is NULL");
+
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+
+       CONTACT_ITEM_S *ct_item = (CONTACT_ITEM_S *)elm_object_item_data_get(item);
+       D_MSG_RETM_IF(ct_item == NULL, "ct_item is NULL");
+
+       if (g_strcmp0(r_item->recipient, ct_item->recipient) == 0) {
+               D_SEC_MSG("same recipient %s", ct_item->recipient);
+               msg_ui_composer_destroy_popup(cd, rd->change_number_popup);
+               return;
+       }
+
+       char *address = NULL;
+       char *normalized_number = NULL;
+
+       address = ct_item->recipient;
+
+       if (get_address_type(ct_item->recipient) != COMPOSER_UTIL_ADDRTYPE_EMAIL) {
+               /* make normalized number */
+               normalized_number = msg_common_make_normalized_number(ct_item->recipient);
+               if (normalized_number) {
+                       D_SEC_MSG("normalized_number = [%s]", normalized_number);
+                       address = normalized_number;
+               }
+       }
+
+       if (msg_ui_composer_recipient_duplicate_check(cd->recipient, address) == COMPOSER_RETURN_RECIPIENT_DUPLICATE) {
+               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_DUP_RECP);
+       } else {
+               memset(r_item->recipient, 0x00, sizeof(r_item->recipient));
+               strncpy(r_item->recipient, address, sizeof(r_item->recipient) - 1);
+               r_item->type = msg_ui_composer_recipient_type_get(r_item->recipient);
+               msg_ui_composer_message_type_check_and_change(cd);
+       }
+
+       if (normalized_number) {
+               free(normalized_number);
+               normalized_number = NULL;
+       }
+
+       msg_ui_composer_destroy_popup(cd, rd->change_number_popup);
+}
+
+static char *__contact_type_string_get(int type, int contact_type)
+{
+       static char return_string[DEF_BUF_LEN + 1] = { 0, };
+       memset(return_string, 0, DEF_BUF_LEN + 1);
+
+       if (type == COMPOSER_ADDR_TYPE_NUMBER) {
+               switch (contact_type) {
+               case CONTACTS_NUMBER_TYPE_HOME:
+                       strncpy(return_string, _SYSSTR("IDS_COM_BODY_HOME"), sizeof(return_string) - 1);
+                       break;
+               case CONTACTS_NUMBER_TYPE_WORK:
+                       strncpy(return_string, _SYSSTR("IDS_COM_BODY_WORK"), sizeof(return_string) - 1);
+                       break;
+               case CONTACTS_NUMBER_TYPE_CELL:
+                       strncpy(return_string, _SYSSTR("IDS_COM_BODY_MOBILE"), sizeof(return_string) - 1);
+                       break;
+               default:
+                       strncpy(return_string, _MSGSTR("IDS_MSGF_BODY_OTHER"), sizeof(return_string) - 1);
+                       break;
+               }
+       } else if (type == COMPOSER_ADDR_TYPE_EMAIL) {
+               switch (contact_type) {
+               case CONTACTS_EMAIL_TYPE_HOME:
+                       strncpy(return_string, _SYSSTR("IDS_COM_BODY_HOME"), sizeof(return_string) - 1);
+                       break;
+               case CONTACTS_EMAIL_TYPE_WORK:
+                       strncpy(return_string, _SYSSTR("IDS_COM_BODY_WORK"), sizeof(return_string) - 1);
+                       break;
+               default:
+                       strncpy(return_string, _MSGSTR("IDS_MSGF_BODY_OTHER"), sizeof(return_string) - 1);
+                       break;
+               }
+       } else {
+               D_EMSG("Invalid number type !!!");
+               strncpy(return_string, _MSGSTR("IDS_MSGF_BODY_OTHER"), sizeof(return_string) - 1);
+       }
+
+       return return_string;
+}
+
+char *msg_ui_recipient_change_number_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_MSG_RETVM_IF(data == NULL, NULL, "data param is NULL");
+       CONTACT_ITEM_S *ct_item = (CONTACT_ITEM_S *)data;
+
+       if (!strcmp(part, "elm.text.1")) {
+               return strdup(ct_item->recipient);
+       } else {
+               return strdup(__contact_type_string_get(ct_item->type, ct_item->contact_type));
+       }
+}
+
+void msg_ui_recipient_change_number_gl_del(void *data, Evas_Object *obj)
+{
+       D_MSG_RETM_IF(data == NULL, "RECIPIENT_ITEM_S data is NULL");
+       CONTACT_ITEM_S *ct_item = (CONTACT_ITEM_S *)data;
+
+       if (ct_item)
+               free(ct_item);
+}
+#endif
+
+/*select popup cb*/
+void msg_ui_recipient_select_popup_list_clicked_cb(void *data, 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;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+       elm_list_item_selected_set(item, EINA_FALSE);
+       elm_multibuttonentry_item_selected_set(rd->sel_mbe_item, EINA_FALSE);
+
+       char *label = (char *)elm_object_item_data_get(item);
+       if (!label) {
+               D_EMSG("label is NULL !!");
+       } else {
+               if (!strcmp(label, _MSGSTR("IDS_MSGF_OPT_REMOVE"))) {
+                       msg_ui_composer_recipient_selected_delete(cd);
+               } else if (!strcmp(label, _MSGSTR("IDS_MSG_OPT_EDIT"))) {
+                       msg_ui_composer_recipient_selected_edit(cd);
+#ifdef MSGC_SUPPORT_USE_OTHER_NUMBER
+               } else if (!strcmp(label, _MSGSTR("IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"))) {
+                       msg_ui_composer_recipient_create_change_number_popup(cd);
+#endif
+               } else if (!strcmp(label, _MSGSTR("IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"))) {
+                       RECIPIENT_ITEM_S *r_item = msg_ui_composer_recipient_selected_item_data_get(cd);
+                       if (r_item)
+                               appsvc_launch_contacts(cd, r_item->index, NULL, PERSON_ID_TYPE);
+                       else
+                               D_EMSG("r_item is NULL");
+
+                       /* temporarily, set focus to back_btn to resolve invalid focus tree issue */
+                       elm_object_focus_set(msg_ui_composer_get_focusible_widget(cd), EINA_TRUE);
+               } else if (!strcmp(label, _MSGSTR("IDS_MSG_OPT_CREATE_CONTACT_ABB"))) {
+                       RECIPIENT_ITEM_S *r_item = msg_ui_composer_recipient_selected_item_data_get(cd);
+
+                       if (msg_common_is_valid_phone_number(r_item->recipient))
+                               appsvc_launch_contacts(cd, 0, r_item->recipient, UPDATE_CONTACT_NUMBER_TYPE);
+                       else if (msg_common_is_valid_email_addr(r_item->recipient))
+                               appsvc_launch_contacts(cd, 0, r_item->recipient, UPDATE_CONTACT_EMAIL_TYPE);
+                       else
+                               D_EMSG("r_item->recipient adress is invalid: (%s)", r_item->recipient);
+               } else if (!strcmp(label, _MSGSTR("IDS_MSG_OPT_UPDATE_CONTACT"))) {
+                       RECIPIENT_ITEM_S *r_item = msg_ui_composer_recipient_selected_item_data_get(cd);
+
+                       CONTACT_APPSVC_LAUNCH_DATA app_launch_data;
+                       app_launch_data.on_reply = __msg_ui_composer_contact_detail_reply_cb;
+                       app_launch_data.on_reply_data = (void *)cd;
+
+                       app_control_h svc_handle = NULL;
+                       svc_handle = msg_common_appsvc_edit_contact(r_item->recipient, &app_launch_data);
+
+                       if (svc_handle) {
+                               cd->callee_svc_handle = svc_handle;
+                       }
+               } else {
+                       D_EMSG("Invalid list type!!");
+               }
+       }
+
+       rd->sel_r_item = NULL;
+       rd->sel_mbe_item = NULL;
+       msg_ui_composer_destroy_popup(cd, rd->selected_popup);
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_contact_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+       Evas_Object *icon = elm_object_part_content_get(rd->contact_btn, "button_center_part");
+       if (icon  != NULL) {
+               D_MSG("Contact button icon part get SUCCESS.");
+               evas_object_color_set(icon, COLOR_BUTTON_PRESSED);
+       }
+       /* screen is flashed when user click contact/recent btn with maximum recipient count and focus was on recipient entry.
+       Because focus is set to recipient entry after clicking btn. And recipient's rect is changed in entry_unfocused_cb and entry_focused_cb continuouly.
+       So, set is_keep_recipient_layout to prevent flashing issue becase of chaning recipient layout */
+       int recipient_cnt = msg_ui_composer_recipient_count_get(rd);
+       if (recipient_cnt >= cd->recipient_max_count)
+               rd->is_keep_recipient_layout = true;
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_contact_btn_unpressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+       Evas_Object *icon = elm_object_part_content_get(rd->contact_btn, "button_center_part");
+       if (icon  != NULL) {
+               D_MSG("Contact button icon part get SUCCESS.");
+               evas_object_color_set(icon, COLOR_BUTTON);
+       }
+       if (rd->is_keep_recipient_layout)
+               rd->is_keep_recipient_layout = false;
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_contact_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");
+
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       int recipient_cnt = msg_ui_composer_recipient_count_get(cd->recipient);
+       bool input_field_focus = msg_ui_composer_body_input_field_focus_get(cd);
+
+       if (input_field_focus) {
+               /* hide all highlights of input field */
+               msg_ui_composer_body_media_layout_focus_hide(cd, COMPOSER_MEDIA_HIDE_ALL, -1);
+               msg_ui_composer_body_input_field_focus_set(cd, false);
+       }
+
+       if (recipient_cnt >= cd->recipient_max_count) {
+               Evas_Object *entry = msg_ui_composer_last_focused_entry_get(cd);
+               if (entry) {
+                       elm_object_focus_set(entry, EINA_TRUE);
+               }
+
+               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+       } else {
+               msg_ui_composer_unset_view(cd);
+               msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_CONTACT_PHONEUI, (void *)recipient_cnt);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_recent_btn_pressed_cb(void *data, 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;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+
+       /* screen is flashed when user click contact/recent btn with maximum recipient count and focus was on recipient entry.
+       Because focus is set to recipient entry after clicking btn. And recipient's rect is changed in entry_unfocused_cb and entry_focused_cb continuouly.
+       So, set is_keep_recipient_layout to prevent flashing issue becase of chaning recipient layout */
+       int recipient_cnt = msg_ui_composer_recipient_count_get(rd);
+       if (recipient_cnt >= cd->recipient_max_count)
+               rd->is_keep_recipient_layout = true;
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_recent_btn_unpressed_cb(void *data, 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;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+
+       if (rd->is_keep_recipient_layout)
+               rd->is_keep_recipient_layout = false;
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_recent_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");
+
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       int recipient_cnt = msg_ui_composer_recipient_count_get(cd->recipient);
+       bool input_field_focus = msg_ui_composer_body_input_field_focus_get(cd);
+
+       if (input_field_focus) {
+               /* hide all highlights of input field */
+               msg_ui_composer_body_media_layout_focus_hide(cd, COMPOSER_MEDIA_HIDE_ALL, -1);
+               msg_ui_composer_body_input_field_focus_set(cd, false);
+       }
+
+       if (recipient_cnt >= cd->recipient_max_count) {
+               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+       } else {
+               msg_ui_composer_unset_view(cd);
+               msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_RECENT_PHONEUI, (void *)recipient_cnt);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_plus_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       Evas_Object *icon = (Evas_Object *)data;
+       if (icon  != NULL) {
+               D_MSG("PLUS button icon part get SUCCESS.");
+               evas_object_color_set(icon, COLOR_BUTTON_PRESSED);
+       }
+}
+
+void msg_ui_recipient_plus_btn_unpressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       Evas_Object *icon = (Evas_Object *)data;
+       if (icon  != NULL) {
+               D_MSG("PLUS button icon part get SUCCESS.");
+               evas_object_color_set(icon, COLOR_BUTTON);
+       }
+}
+
+void msg_ui_recipient_plus_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");
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+               RECIPIENT_S *rd = cd->recipient;
+               D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+               int r_count = msg_ui_composer_recipient_count_get(rd);
+               if (r_count < cd->recipient_max_count) {
+                       msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+               } else {
+                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+               }
+       }
+       msg_ui_composer_last_focus_load(cd);
+
+       D_LEAVE;
+       return;
+}
+
+/* multibuttonentry cb */
+void msg_ui_recipient_mbe_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");
+
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       /* Since mbe is uneditable, when mbe is focused that means TO entry is focused */
+       msg_ui_composer_last_focused_entry_set(cd, rd->entry);
+       Evas_Object *entry = elm_multibuttonentry_entry_get(rd->mbe);
+       rd->coming_from = entry;
+       elm_multibuttonentry_expanded_set(obj, EINA_TRUE);
+
+       rd->plus_btn_allowed = EINA_TRUE;
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_mbe_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");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+
+/*
+*      comment bellow code to hide keypad when mbe item has a focus by backspace and send button is clicked with no sim mode
+
+       //If it exist Selected item popup, then it should not shrink mode set == 1
+       if (msg_ui_composer_popup_exist(cd) == EINA_TRUE)
+               return;
+*/
+       __msg_ui_recipient_unselect_mbe_item(rd);
+
+       if (rd->mbe_key_press_handler) {
+               ecore_event_handler_del(rd->mbe_key_press_handler);
+               rd->mbe_key_press_handler = NULL;
+       }
+
+       rd->previous_item = NULL;
+       elm_object_focus_allow_set(rd->mbe, EINA_FALSE);
+
+       rd->plus_btn_allowed = EINA_FALSE;
+
+       /* Before getting the unfocussed CB on the mbe item if the item was
+        * in selected state then close the keypad */
+       const Eina_List *list = elm_multibuttonentry_items_get(rd->mbe);
+       if (NULL == list)
+               return;
+
+       int count = eina_list_count(list);
+       D_MSG("Number of items in mbe is = %d", count);
+
+       if (count > 0) {
+               Elm_Object_Item *last_item = elm_multibuttonentry_last_item_get(rd->mbe);
+
+               if (NULL != last_item) {
+                       D_MSG("rd->is_mbe_item_selected = %d", rd->is_mbe_item_selected);
+                       if (true == rd->is_mbe_item_selected) {
+                               rd->is_mbe_item_selected = false;
+
+                               if (rd->is_keep_recipient_layout == false) {
+                                       Evas_Object *rect = NULL;
+                                       Evas_Coord x = 0;
+                                       Evas_Coord y = 0;
+                                       Evas_Coord w = 0;
+                                       Evas_Coord entry_h = 0;
+                                       Evas_Coord total_h = 0;
+
+                                       edje_object_part_geometry_get(_EDJ(rd->ly_to), "img.recipient.main.bg", &x, &y, &w, &entry_h);
+                                       D_SEC_MSG("[EDJ_GEO] x = %d, y = %d, w =%d, h = %d", x, y, w, entry_h);
+
+                                       total_h = entry_h;
+
+                                       D_MSG("total_h = %d", total_h);
+
+                                       evas_object_size_hint_min_set(cd->recipient_ht_rect, 0, total_h);
+
+                                       rect = elm_layout_content_get(rd->ly_to, "rect");
+                                       evas_object_size_hint_min_set(rect, 0, total_h);
+                               }
+
+                               if (rd->going_to == rd->entry) {
+                                       D_MSG("hide keypad manually not done in msg_ui_recipient_mbe_unfocused_cb");
+                               }
+                       }
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void __msgc_recipient_process_clicked_action(void *data)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+
+       msg_ui_composer_hide_attach_focus(cd);
+
+       msg_ui_composer_body_input_field_focus_set(cd, false);
+
+       /* hide all highlights of other layout */
+       msg_ui_composer_body_media_layout_focus_hide(cd, COMPOSER_MEDIA_HIDE_ALL, -1);
+
+       if (msg_ui_composer_popup_exist(cd) == EINA_TRUE) {
+               msg_ui_composer_popup_focus(cd);
+               return;
+       }
+}
+
+void msg_ui_recipient_mbe_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_recipient_process_clicked_action(cd);
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_entry_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+
+       if (obj == rd->entry) {
+               if (elm_entry_input_panel_enabled_get(obj) == EINA_FALSE) {
+                       msg_ui_composer_last_focused_entry_set(cd, rd->entry);
+                       msg_ui_composer_entry_input_panel_show(obj);
+               }
+
+               rd->going_to = NULL;
+               rd->coming_from = rd->entry;
+       }
+
+       __msg_ui_recipient_unselect_mbe_item(rd);
+       __msgc_recipient_process_clicked_action(cd);
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_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_recipient_mbe_item_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");
+
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       D_MSG_RETM_IF(item == NULL, "Selected Object Item is NULL");
+
+       RECIPIENT_ITEM_S *r_item;
+
+       r_item = elm_object_item_data_get(item);
+       if (r_item == NULL) {
+               D_MSG("There are no item data");
+               return;
+       }
+
+       rd->sel_r_item = r_item;
+       rd->sel_mbe_item = item;
+
+       msg_ui_composer_last_focused_entry_set(cd, rd->entry);
+       msg_ui_composer_unset_view(cd);
+
+       if (rd->mode == VIEW_RECIP_MODE) {
+               RECIPIENT_ITEM_S *it = msg_ui_composer_recipient_selected_item_data_get(cd);
+               if (it) {
+                       msg_ui_bubble_destroy_popup(cd->bubble_data);
+                       cd->bubble_data->call_option_enabled = TRUE;
+                       cd->bubble_data->popup_type = BUBBLE_POPUP_ADD_TO_CONTACT_SINGLE;
+                       cd->bubble_data->popup = msg_ui_bubble_create_add_to_contact_popup(cd->bubble_data, it->recipient);
+               }
+       } else {
+               msg_ui_composer_recipient_select_popup_create(cd);
+       }
+
+       /* Before clicking on the mbe item if the item was in selected state then
+        * close the keypad */
+       const Eina_List *list = elm_multibuttonentry_items_get(rd->mbe);
+       if (NULL == list) {
+               D_EMSG("mbe item list is NULL");
+               return;
+       }
+
+       int count = eina_list_count(list);
+       D_MSG("Number of items in mbe is = %d", count);
+
+       if (count > 0) {
+               Elm_Object_Item *last_item = elm_multibuttonentry_last_item_get(rd->mbe);
+               D_MSG("last_item = %p", last_item);
+
+       }
+
+       D_LEAVE;
+}
+
+Eina_Bool msg_ui_recipient_mbe_item_filter_cb(Evas_Object *obj, const char *item_label, void *item_data, void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(item_label == NULL, EINA_FALSE, "item_label is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETVM_IF(cd == NULL, EINA_FALSE, "Composer Data is NULL");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETVM_IF(rd == NULL, EINA_FALSE, "Recipient Data is NULL");
+       RECIPIENT_ITEM_S *r_item = NULL;
+       char *display_label = NULL;
+
+       display_label = elm_entry_markup_to_utf8(item_label);
+       if (display_label == NULL) {
+               D_EMSG("display_label is NULL");
+               return EINA_FALSE;
+       }
+
+       if (check_delimiter_character(display_label)) {
+               if (item_data) {
+                       RECIPIENT_ITEM_S *r_item = (RECIPIENT_ITEM_S *)item_data;
+                       if (r_item->ignore_delimiter) { /* support , ; delimiters when delimters are saved in contact name */
+                               D_MSG("Delimiter characters of contact name is supported");
+                               MSG_FREE(display_label);
+                               return EINA_TRUE;
+                       }
+               }
+
+               /* need to parse copied string like "123,afd" */
+               D_MSG("need to parse string");
+
+               gchar *recipient_str = g_strdup(display_label);
+               if (recipient_str) {
+                       __msg_ui_recipient_process_delimiter_char(cd, recipient_str, NULL, RECIPIENT_PARSING_TYPE_MOVED_FOCUS);
+                       g_free(recipient_str);
+               }
+
+               /* if last char is invalid recipient after processing chars , keep keypad status so that show keypad after showing invalid popup */
+               if (msg_ui_composer_recipient_addr_type_get(cd->recipient) == COMPOSER_RECP_ADDR_INVALID) {
+
+                       if (rd->notify_popup_idler) {
+                               ecore_idler_del(rd->notify_popup_idler);
+                               rd->notify_popup_idler = NULL;
+                       }
+                       rd->notify_popup_idler = ecore_idler_add(msg_ui_composer_recipient_invalid_address_popup_cb, cd);
+               }
+
+               MSG_FREE(display_label);
+
+               return EINA_FALSE;
+       } else {
+               msg_ui_composer_recipient_addr_type_set(rd, COMPOSER_RECP_ADDR_NONE);
+
+               /*Check recipient count*/
+               int r_count = msg_ui_composer_recipient_count_get(rd);
+               if (r_count >= cd->recipient_max_count) {
+                       D_EMSG("recipient is reached max count %d", cd->recipient_max_count);
+                       msg_ui_composer_recipient_addr_type_set(rd, COMPOSER_RECP_ADDR_MAX_REACHED);
+
+                       elm_object_focus_set(rd->entry, EINA_TRUE);
+                       if (rd->notify_popup_idler) {
+                               ecore_idler_del(rd->notify_popup_idler);
+                               rd->notify_popup_idler = NULL;
+                       }
+                       rd->notify_popup_idler = ecore_idler_add(msg_ui_composer_recipient_maximum_count_popup_cb, cd);
+
+                       MSG_FREE(display_label);
+
+                       return EINA_FALSE;
+               }
+
+               if (item_data) {
+                       D_MSG("This is a checked item before append");
+
+                       MSG_FREE(display_label);
+                       return EINA_TRUE;
+               }
+
+               char *tmp_str = NULL;
+               char *normalized_number = NULL;
+
+               if (is_all_exception_characters(display_label)) {
+                       /* ignore only space case */
+                       D_MSG("ignore only space case");
+
+                       Evas_Object *entry = rd->entry;
+                       elm_entry_entry_set(entry, "");
+
+                       MSG_FREE(display_label);
+
+                       return EINA_FALSE;
+               }
+
+               tmp_str = (char *)display_label;
+
+               /* make normalized number */
+               if (get_address_type(display_label) != COMPOSER_UTIL_ADDRTYPE_EMAIL) {
+                       normalized_number = msg_common_make_normalized_number(display_label);
+                       if (normalized_number) {
+                               D_SEC_MSG("normalized_number = [%s]", normalized_number);
+                               tmp_str = normalized_number;
+                       }
+               }
+
+               if (msg_ui_composer_recipient_duplicate_check(cd->recipient, tmp_str) == COMPOSER_RETURN_RECIPIENT_DUPLICATE) {
+                       D_EMSG("Input recipient is duplicated");
+                       msg_ui_composer_recipient_entry_text_set(rd, "");
+
+                       MSG_FREE(normalized_number);
+                       MSG_FREE(display_label);
+
+                       return EINA_FALSE;
+               }
+
+               r_item = msg_ui_composer_recipient_item_make_by_string(tmp_str);
+               if (r_item == NULL) {
+                       MSG_FREE(normalized_number);
+                       MSG_FREE(display_label);
+
+                       return EINA_FALSE;
+               }
+
+               MSG_FREE(normalized_number);
+
+               if (r_item->type == COMPOSER_RECP_ADDR_INVALID) {
+                       D_MSG("recipient is invalid recipient");
+                       msg_ui_composer_recipient_addr_type_set(rd, COMPOSER_RECP_ADDR_INVALID);
+
+                       if (rd->notify_popup_idler) {
+                               ecore_idler_del(rd->notify_popup_idler);
+                               rd->notify_popup_idler = NULL;
+                       }
+                       rd->notify_popup_idler = ecore_idler_add(msg_ui_composer_recipient_invalid_address_popup_cb, cd);
+
+                       g_free(r_item);
+
+                       MSG_FREE(display_label);
+
+                       return EINA_FALSE;
+               }
+
+               MSG_FREE(display_label);
+
+               display_label = elm_entry_markup_to_utf8(r_item->display_name);
+
+               if (display_label == NULL) {
+                       D_EMSG("display_label is NULL");
+               }
+
+               if (elm_multibuttonentry_item_append(obj, display_label, NULL, r_item) == NULL) {
+                       D_EMSG("elm_multibuttonentry_item_append is failed!!");
+                       g_free(r_item);
+
+                       MSG_FREE(display_label);
+
+                       return EINA_FALSE;
+               }
+
+               MSG_FREE(display_label);
+
+               D_LEAVE;
+               return EINA_FALSE;
+       }
+}
+
+void msg_ui_recipient_mbe_item_object_key_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       Evas_Event_Key_Down *ev = event_info;
+       D_MSG_RETM_IF(ev == NULL, "ev is NULL");
+
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) {
+               D_EMSG("event_flags is EVAS_EVENT_FLAG_ON_HOLD");
+               return;
+       }
+
+       if ((!strcmp(ev->keyname, "Return")) || (!strcmp(ev->keyname, "KP_Enter"))) {
+               Evas_Object *last_item_object = (Evas_Object *)obj;
+               Elm_Object_Item *item = (Elm_Object_Item *)evas_object_data_get(last_item_object, "item");
+               msg_ui_recipient_mbe_item_clicked_cb(data, NULL, (void *)item);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_mbe_item_added_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");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       D_MSG_RETM_IF(item == NULL, "Mbe item is NULL");
+
+       RECIPIENT_ITEM_S *recipient_item = NULL;
+
+       msg_ui_composer_recipient_destroy_no_recipient_icon(cd->recipient);
+
+       if (elm_object_item_data_get(item) == NULL) {
+               char *bt_label = elm_entry_markup_to_utf8(elm_object_item_text_get(item));
+               if (bt_label) {
+                       recipient_item = msg_ui_composer_recipient_item_make_by_string(bt_label);
+
+                       if (recipient_item) {
+                               elm_object_item_text_set(item, recipient_item->display_name);
+                               elm_object_item_data_set(item, recipient_item);
+                       } else {
+                               elm_object_item_del(item);
+                       }
+
+                       g_free(bt_label);
+               } else {
+                       D_EMSG("button label is null");
+               }
+       } else {
+               recipient_item = elm_object_item_data_get(item);
+               D_SEC_MSG(" recipient_item index [%d], recipient_item recipient [%s], recipient_item display_name [%s], recipient_item->image_path [%s]", recipient_item->index, recipient_item->recipient, recipient_item->display_name, recipient_item->image_path);
+       }
+
+       if (recipient_item) {
+               if (recipient_item->type == COMPOSER_RECP_ADDR_VALID_NUMBER || recipient_item->type == COMPOSER_RECP_ADDR_VALID_EMAIL) {
+                       msg_ui_composer_message_type_check_and_change(cd);
+               } else {
+                       D_EMSG("Invalid recipient added!!");
+               }
+       } else {
+               D_EMSG("No recipient item");
+       }
+
+
+       /* Delete the idler callback first defore creating one mroe */
+       if (rd->resize_idler) {
+               ecore_idler_del(rd->resize_idler);
+               rd->resize_idler = NULL;
+       }
+
+       /* After adding a contact mbe height can change */
+       rd->resize_idler = ecore_idler_add(msg_ui_composer_recipient_ht_resize_idler, cd);
+}
+
+static void msg_ui_recipient_item_free(Elm_Object_Item *it)
+{
+       RECIPIENT_ITEM_S *recipient_item = elm_object_item_data_get(it);
+       if (recipient_item) {
+               D_MSG("===== START of recipient_item free =====");
+               D_MSG("recipient_item index [%d]", recipient_item->index);
+               D_MSG("recipient_item recipient [%s]", recipient_item->recipient);
+               D_MSG("recipient_item display_name [%s]", recipient_item->display_name);
+               D_MSG("===== END of recipient_item free =====");
+               free(recipient_item);
+               elm_object_item_data_set(it, NULL); /*item data isn't valid anymore*/
+       }
+}
+
+void msg_ui_recipient_mbe_item_deleted_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");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       if (cd->isclosed) {
+               return;
+       }
+
+       rd->going_to = rd->entry;
+
+       /* When an item is deleted focus should shift back to TO entry */
+       elm_object_focus_set(cd->recipient->entry, EINA_TRUE);
+
+       msg_ui_composer_message_type_check_and_change(cd);
+
+       /* Recipient is deleted when added recipient count is less than max recipient count.
+        * Send button need to enable. */
+       int recipient_cnt = msg_ui_composer_common_recipient_count_get(cd);
+       msg_ui_composer_send_btn_disabled_set(cd, recipient_cnt > cd->recipient_max_count);
+
+       /* Delete the idler callback first defore creating one mroe */
+       if (rd->resize_idler) {
+               ecore_idler_del(rd->resize_idler);
+               rd->resize_idler = NULL;
+       }
+
+       /* since the item is deleted updated the selected status */
+       rd->is_mbe_item_selected = false;
+
+       /* After deleting a contact mbe height can change */
+       rd->resize_idler = ecore_idler_add(msg_ui_composer_recipient_ht_resize_idler, cd);
+
+       D_LEAVE;
+}
+
+Eina_Bool msg_ui_composer_mbe_key_press_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_FALSE, "cd is NULL");
+       D_MSG_RETVM_IF(event == NULL, EINA_FALSE, "event is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETVM_IF(rd == NULL, EINA_FALSE, "Recipient Data is NULL");
+       Ecore_Event_Key *ev = (Ecore_Event_Key *)event;
+
+       D_MSG("ev->keyname = %s", ev->keyname);
+
+       if (!strcmp(ev->keyname, "BackSpace")) {
+               Elm_Object_Item *selected_item = elm_multibuttonentry_selected_item_get(cd->recipient->mbe);
+               if (selected_item)
+                       elm_object_item_del(selected_item);
+               else
+                       D_EMSG("There is no selected item");
+
+               if (rd->mbe_key_press_handler) {
+                       ecore_event_handler_del(rd->mbe_key_press_handler);
+                       rd->mbe_key_press_handler = NULL;
+               }
+       }
+
+       return EINA_TRUE;
+}
+
+void msg_ui_recipient_mbe_item_selected_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");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       if ((rd->previous_item = elm_multibuttonentry_item_prev_get(event_info)) == NULL) {
+               D_MSG("first item selected");
+       }
+
+       if (!rd->mbe_key_press_handler)
+               rd->mbe_key_press_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, msg_ui_composer_mbe_key_press_cb, (void *)cd);
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_mbe_expanded_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       RECIPIENT_S *rd = (RECIPIENT_S *)data;
+       D_MSG_RETM_IF(rd == NULL, "recipient data is NULL");
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_mbe_contracted_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       RECIPIENT_S *rd = (RECIPIENT_S *)data;
+       D_MSG_RETM_IF(rd == NULL, "recipient data is NULL");
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_mbe_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(obj == NULL, "Mbe object is NULL point");
+       D_MSG_RETM_IF(data == NULL, "data is NULL point");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       cd->recipient->previous_item = NULL;
+       D_LEAVE;
+}
+
+static void __msg_ui_recipient_process_delimiter_char(void *data, char *full_str, char **text, int type)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(full_str == NULL, "full_str is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       int full_str_len = strlen(full_str);
+       bool is_required_parsing = false;
+
+       D_MSG("type = %d", type);
+
+       if (full_str_len < 1) {
+               D_EMSG("full_str_len is %d", full_str_len);
+               return;
+       }
+
+       if (type == RECIPIENT_PARSING_TYPE_ENTER_KEY ||
+               type == RECIPIENT_PARSING_TYPE_MOVED_FOCUS) { /* enter key | moved focus case */
+               is_required_parsing = true;
+       } else {
+               /* check last character is either ',' or ';' */
+               if (full_str[full_str_len - 1] == ',' || full_str[full_str_len - 1] == ';') {
+                       D_SEC_MSG("full_str [%s]", full_str);
+
+                       /* remove last ',' or ';' */
+                       full_str[full_str_len - 1] = '\0';
+                       --full_str_len;
+
+                       is_required_parsing = true;
+               }
+       }
+
+       if (is_required_parsing) {
+               /* parse full str with delimeter , ; */
+               gchar **split_str = NULL;
+               split_str = g_strsplit_set(full_str, ",;", -1);
+
+               if (split_str) {
+                       int count = g_strv_length(split_str);
+                       int i = 0;
+                       MSG_BOOL is_count_max = FALSE;
+                       MSG_BOOL is_duplicated = FALSE;
+                       MSG_BOOL *is_used_list = NULL;
+
+                       D_MSG("splitted string count = %d", count);
+                       if (count) {
+                               is_used_list = (MSG_BOOL *)calloc(count, sizeof(MSG_BOOL));
+
+                               if (is_used_list) {
+                                       for (i = 0; i < count; i++) {
+                                               D_MSG("%dth string is [%s]", i+1, split_str[i]);
+
+                                               if (split_str[i] && strlen(split_str[i])) {
+                                                       char *tmp_str = NULL;
+                                                       char *normalized_number = NULL;
+
+                                                       if (is_all_exception_characters(split_str[i])) {
+                                                               /* ignore only space case */
+                                                               D_MSG("ignore only space case");
+                                                               continue;
+                                                       }
+
+                                                       tmp_str = (char *)split_str[i];
+
+                                                       /* make normalized number */
+                                                       if (get_address_type(split_str[i]) != COMPOSER_UTIL_ADDRTYPE_EMAIL) {
+                                                               normalized_number = msg_common_make_normalized_number(split_str[i]);
+                                                               if (normalized_number) {
+                                                                       D_SEC_MSG("normalized_number = [%s]", normalized_number);
+                                                                       tmp_str = normalized_number;
+                                                               }
+                                                       }
+
+                                                       if (msg_ui_composer_recipient_vaild_check(tmp_str) == EINA_TRUE) {
+                                                               /*Check recipient count*/
+                                                               int r_count = msg_ui_composer_recipient_count_get(rd);
+                                                               if (r_count >= cd->recipient_max_count) {
+                                                                       D_EMSG("recipient is over max count %d", cd->recipient_max_count);
+                                                                       is_count_max = TRUE;
+                                                                       /* bellow code is commented to keep entry text */
+                                                                       /*is_used_list[i] = TRUE;*/
+
+                                                                       if (normalized_number) {
+                                                                               free(normalized_number);
+                                                                               normalized_number = NULL;
+                                                                       }
+                                                                       continue;
+                                                               }
+
+                                                               if (msg_ui_composer_recipient_duplicate_check(rd, tmp_str) == COMPOSER_RETURN_RECIPIENT_DUPLICATE) {
+                                                                       D_EMSG("Input recipient is duplicated");
+                                                                       is_duplicated = TRUE;
+                                                                       is_used_list[i] = TRUE;
+
+                                                                       if (normalized_number) {
+                                                                               free(normalized_number);
+                                                                               normalized_number = NULL;
+                                                                       }
+                                                                       continue;
+                                                               }
+
+                                                               if (msg_ui_composer_recipient_append(cd->recipient, tmp_str, 0) == COMPOSER_RETURN_SUCCESS)
+                                                                       is_used_list[i] = TRUE;
+                                                       }
+
+                                                       if (normalized_number) {
+                                                               free(normalized_number);
+                                                               normalized_number = NULL;
+                                                       }
+                                               }
+                                       }
+
+                                       /* re-assemble string */
+                                       char *re_assembled_str = NULL;
+                                       bool is_exception_case = false;
+
+                                       re_assembled_str = (char *)calloc(full_str_len + 1, sizeof(char));
+
+                                       if (re_assembled_str) {
+                                               for (i = 0; i < count - 1; i++) {
+                                                       if (split_str[i] && strlen(split_str[i])) {
+                                                               if (!is_used_list[i]) {
+                                                                       strncat(re_assembled_str, split_str[i], strlen(split_str[i]));
+                                                                       strncat(re_assembled_str, ",", 1);
+                                                               }
+                                                       } else {
+                                                               strncat(re_assembled_str, ",", 1);
+                                                       }
+                                               }
+                                               /* append last parsed string */
+                                               if (split_str[i] && strlen(split_str[i])) {
+                                                       if (!is_used_list[i])
+                                                               strncat(re_assembled_str, split_str[i], strlen(split_str[i]));
+                                               }
+
+                                               /* remove ',' ';' of last position
+                                                   MBE don't accept adding ',' ';' via keypad, so remove delimiter character even when there is only a ',' or ';' in re_assembled_str.
+                                               */
+                                               int str_len = strlen(re_assembled_str);
+                                               if (str_len >= 1) {
+                                                       while (re_assembled_str[str_len - 1] == ',' || re_assembled_str[str_len - 1] == ';') {
+                                                               re_assembled_str[str_len - 1] = '\0';
+                                                               --str_len;
+
+                                                               if (str_len == 0)
+                                                                       break;
+                                                       }
+                                               }
+
+                                               /* Don't make invalid popup because space is exceptional character of invalid recipient */
+                                               is_exception_case = is_all_exception_characters(re_assembled_str);
+
+                                               D_MSG("reassembeld str = [%s]", re_assembled_str);
+                                               /*set re-assembed str to text */
+                                               Evas_Object *entry = rd->entry;
+
+                                               if (type == RECIPIENT_PARSING_TYPE_DELETE_CHAR ||
+                                                       type == RECIPIENT_PARSING_TYPE_ENTER_KEY ||
+                                                       type == RECIPIENT_PARSING_TYPE_MOVED_FOCUS) {   /* entry_changed_cb | enter key | moved focus case*/
+                                                       if (!is_exception_case) {
+                                                               int data_size = strlen(re_assembled_str);
+
+                                                               if (data_size > 0) {
+                                                                       char *markup_text = NULL;
+                                                                       char tmpl_text[data_size + 1];
+
+                                                                       memset(tmpl_text, 0, data_size + 1);
+                                                                       strncpy(tmpl_text, re_assembled_str, data_size);
+                                                                       markup_text = elm_entry_utf8_to_markup(tmpl_text);
+                                                                       elm_entry_entry_set(entry, markup_text);
+                                                                       elm_entry_cursor_end_set(entry);
+                                                                       if (markup_text != NULL) {
+                                                                               free(markup_text);
+                                                                               markup_text = NULL;
+                                                                       }
+                                                               } else {
+                                                                       elm_entry_entry_set(entry, "");
+                                                                       elm_entry_cursor_end_set(entry);
+                                                               }
+                                                       } else {
+                                                               elm_object_focus_set(rd->entry, EINA_TRUE);
+                                                               elm_entry_entry_set(rd->entry, "");
+                                                               msg_ui_composer_body_focus_set(cd, 0);
+                                                       }
+
+                                                       if (is_count_max) { /* if maxmum recipient popup should be shown, remain previous entry text */
+                                                               D_MSG("remain previous entry text");
+                                                       } else if (strlen(re_assembled_str)) {
+                                                               if (!is_exception_case) {
+                                                                       msg_ui_composer_recipient_addr_type_set(rd, COMPOSER_RECP_ADDR_INVALID);
+                                                                       rd->is_required_address_popup = true;
+                                                               }
+                                                       }
+                                               } else { /* entry_filter_cb */
+
+                                                       if (is_count_max) { /* if maxmum recipient popup should be shown, remain previous entry text */
+                                                               elm_entry_entry_set(entry, re_assembled_str);
+                                                               elm_entry_cursor_end_set(entry);
+                                                       } else {
+                                                               elm_entry_entry_set(entry, "");
+                                                               elm_entry_cursor_end_set(entry);
+                                                               free(*text);
+
+                                                               if (strlen(re_assembled_str)) {
+                                                                       if (!is_exception_case) {
+                                                                               msg_ui_composer_recipient_addr_type_set(rd, COMPOSER_RECP_ADDR_INVALID);
+                                                                               rd->is_required_address_popup = true;
+                                                                       }
+
+                                                                       *text = strdup(re_assembled_str);
+                                                                       D_MSG("changed string (%s)", *text);
+                                                               } else {
+                                                                       *text = NULL;
+                                                               }
+                                                       }
+                                               }
+
+                                               free(re_assembled_str);
+                                       } else {
+                                               D_EMSG("calloc is failed");
+                                       }
+
+                                       if (is_count_max && (rd->is_required_address_popup == false)) {
+                                               msg_ui_composer_recipient_addr_type_set(rd, COMPOSER_RECP_ADDR_MAX_REACHED);
+
+                                               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+                                       } else if (is_duplicated) {
+                                               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_DUP_RECP);
+                                       }
+
+                                       free(is_used_list);
+                               } else {
+                                       D_EMSG("calloc is failed");
+                               }
+                       }
+
+                       g_strfreev(split_str);
+               } else {
+                       D_EMSG("g_strsplit_set is failed");
+               }
+       }
+}
+
+/*
+static Eina_Bool __msgc_recipient_move_scroll_to_top(void *data, Evas_Object *scroller)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_FALSE, "data is NULL");
+       D_MSG_RETVM_IF(scroller == NULL, EINA_FALSE, "scroller is NULL");
+       RECIPIENT_S *rd = (RECIPIENT_S *)data;
+       Evas_Coord scr_w;
+       Evas_Coord scr_h;
+       Evas_Coord box_h;
+
+       evas_render(evas_object_evas_get(rd->bx_main));
+
+       elm_scroller_region_get(scroller, NULL, NULL, &scr_w, &scr_h);
+       D_SEC_MSG("scroller region w = %d, h = %d ", scr_w, scr_h);
+
+       evas_object_geometry_get(rd->mbe, NULL, NULL, NULL, &box_h);
+       D_SEC_MSG("mbe geometry h = %d ", box_h);
+
+       elm_scroller_region_show(scroller, 0, box_h - MSGC_RECIPIENT_1_LIST_H, scr_w, scr_h);
+       D_SEC_MSG("scroller region show x = %d, y = %d, w = %d, h = %d ", 0, box_h - MSGC_RECIPIENT_1_LIST_H, scr_w, scr_h);
+
+       D_LEAVE;
+       return EINA_FALSE;
+}
+*/
+
+static void __msg_ui_recipient_unselect_mbe_item(RECIPIENT_S *rd)
+{
+       if (rd && rd->mbe) {
+               Elm_Object_Item *item = elm_multibuttonentry_selected_item_get(rd->mbe);
+               if (item) {
+                       elm_multibuttonentry_item_selected_set(item, EINA_FALSE);
+               }
+       }
+}
+
+static void __msg_ui_contacts_button_set(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       if (rd->contact_btn != elm_object_part_content_get(rd->ly_to, "swl.contact_btn")) {
+               elm_object_part_content_unset(rd->ly_to, "swl.contact_btn");
+               evas_object_hide(rd->plus_btn);
+
+               elm_object_part_content_set(rd->ly_to, "swl.contact_btn", rd->contact_btn);
+       }
+}
+
+void msg_ui_recipient_entry_changed_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");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       char *recipient_str = NULL;
+       static char saved_str[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX + 1] = { 0, };
+       int count = 0;
+       const Eina_List *list = elm_multibuttonentry_items_get(rd->mbe);
+       if (NULL != list) {
+               count = eina_list_count(list);
+               D_MSG("Number of items in mbe is = %d", count);
+       }
+
+       __msg_ui_recipient_unselect_mbe_item(rd);
+
+       if (elm_entry_is_empty(obj)) {
+               if (rd->contact_btn != elm_object_part_content_get(rd->ly_to, "swl.contact_btn")) {
+                       elm_object_part_content_unset(rd->ly_to, "swl.contact_btn");
+                       evas_object_hide(rd->plus_btn);
+
+                       elm_object_part_content_set(rd->ly_to, "swl.contact_btn", rd->contact_btn);
+               }
+
+               /* when there is only one character and backspace is pressed, then in the
+                * entry_key_down() CB, it is showing entry is empty and rd->backspace_pressed
+                * flag is made TRUE which should not be the case. This happens because first
+                * the character is deleted and callbacks are called later.
+                * Actually this flag should be TRUE only when entry is completly empty and
+                * back space is pressed, only then the last mbe button should be selected. */
+               if (rd->backspace_pressed == true)
+                       rd->backspace_pressed = false;
+       } else {
+               if (rd->plus_btn_allowed) {
+                       if ((rd->plus_btn != elm_object_part_content_get(rd->ly_to, "swl.contact_btn"))) {
+                               elm_object_part_content_unset(rd->ly_to, "swl.contact_btn");
+                               evas_object_hide(rd->contact_btn);
+
+                               elm_object_part_content_set(rd->ly_to, "swl.contact_btn", rd->plus_btn);
+                               if (elm_object_focus_get(rd->contact_btn))
+                                       elm_object_focus_set(rd->contact_btn, EINA_FALSE);
+                               evas_object_show(rd->plus_btn);
+                               elm_object_focus_set(rd->plus_btn, EINA_TRUE);
+                               elm_object_focus_set(rd->entry, EINA_TRUE);
+                       }
+               } else {
+                       __msg_ui_contacts_button_set(rd);
+               }
+               D_MSG("rd->was_entry_empty = %d", rd->was_entry_empty);
+               if (rd->was_entry_empty) {
+                       __msg_ui_contacts_button_set(rd);
+                       return;
+               }
+       }
+
+       /* show invalid address popup, after either inserting text(keypad, paste) or deleting text  */
+       if (rd->is_required_address_popup) {
+
+               if (rd->notify_popup_idler) {
+                       ecore_idler_del(rd->notify_popup_idler);
+                       rd->notify_popup_idler = NULL;
+               }
+               rd->notify_popup_idler = ecore_idler_add(msg_ui_composer_recipient_invalid_address_popup_cb, cd);
+
+               rd->is_required_address_popup = false;
+       }
+
+       recipient_str = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+       if (recipient_str == NULL) {
+               D_EMSG("recipient_str is NULL");
+               return;
+       }
+
+       COMPOSER_RECP_ADDR_E addr_type = COMPOSER_RECP_ADDR_NONE;
+
+       if (recipient_str && strlen(recipient_str)) {
+               addr_type = msg_ui_composer_recipient_type_get(recipient_str);
+
+               int str_len = strlen(recipient_str);
+
+               if (str_len > 1) {
+                       /* remove ',' ';' character of last position, it is used for deleting character case  */
+                       if (recipient_str[str_len - 1] == ',' || recipient_str[str_len - 1] == ';') {
+                               __msg_ui_recipient_process_delimiter_char(cd, recipient_str, NULL, RECIPIENT_PARSING_TYPE_DELETE_CHAR);
+                               free(recipient_str);
+
+                               /* if last char is invalid recipient after processing chars, keep keypad status so that show keypad after showing invalid popup */
+
+                               return;
+                       }
+               } else if (str_len == 1) {
+                       /* remove ',' or ';' when only , or ; remains on entry.
+                            ',' or ';' remains on entry when they are inserted from keypad after pasting numbers like "123,434" */
+                       if (recipient_str[str_len - 1] == ',' || recipient_str[str_len - 1] == ';') {
+                               elm_entry_entry_set(obj, "");
+                               free(recipient_str);
+                               return;
+                       }
+               }
+       }
+
+       D_SEC_MSG("changed_str = %s", recipient_str);
+       D_SEC_MSG("saved_str = %s", saved_str);
+
+       /* recipient type for max reached is set to prevent setting last_focus_entry in body_entry_focused_cb() as body entry.
+       Because if it doesnot, focus is moved to body entry after destroying maximum recipient popup */
+       int r_count = msg_ui_composer_recipient_count_get(rd);
+       if ((r_count >= cd->recipient_max_count) && strlen(recipient_str)) {
+               D_IMSG("recipient is reached max count %d", cd->recipient_max_count);
+               addr_type = COMPOSER_RECP_ADDR_MAX_REACHED;
+       }
+
+       msg_ui_composer_recipient_addr_type_set(rd, addr_type);
+       D_MSG("recipient addr_type = %d", addr_type);
+
+       if (g_strcmp0(saved_str, recipient_str) == 0) {
+               D_SEC_MSG("It is same string before str(%s), current str(%s)", saved_str, recipient_str);
+               free(recipient_str);
+               return;
+       }
+
+       strncpy(saved_str, recipient_str, sizeof(saved_str) - 1);
+       saved_str[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX] = '\0';
+
+       if (strlen(recipient_str) > 0) {
+               /* Do not support preditive list when only spaces are existed. This is an exceptional case */
+               bool is_exception_case = is_all_exception_characters(recipient_str);
+               if (!is_exception_case)
+                       msg_ui_composer_predictsearch_request(cd, recipient_str);
+       } else {
+               msg_ui_composer_predictsearch_clear(cd);
+       }
+
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(obj, "elm,state,clear,visible", "");
+       else
+               elm_object_signal_emit(obj, "elm,state,clear,hidden", "");
+
+       free(recipient_str);
+       D_LEAVE;
+}
+
+void msg_ui_recipient_entry_activated_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       rd->is_entry_activated = true;
+
+       char *recipient_str = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+
+       if (recipient_str) {
+               if (strlen(recipient_str))
+                       __msg_ui_recipient_process_delimiter_char(cd, recipient_str, NULL, RECIPIENT_PARSING_TYPE_ENTER_KEY);
+
+               free(recipient_str);
+       }
+
+       if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true) {
+               return;
+       } else {
+               if (cd->isSubject)
+                       msg_ui_composer_subject_focus_set(cd);
+               else
+                       msg_ui_composer_body_focus_set(cd, 0);
+
+               /* since subject or body got focused hide the recipient mbe */
+               msg_ui_composer_recipient_hide_mbe_and_update_entry(rd);
+               msg_ui_composer_recipient_destroy_no_recipient_icon(rd);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_recipient_entry_filter_cb(void *data, Evas_Object *entry, char **text)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(text == NULL || *text == NULL, "New Text is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       const char *pre_str = NULL;
+       char *utf8_text = NULL;
+       gchar *full_str = NULL;
+       /* filter_cb is worked only for parsing case when ","and ";" are existed at last position.
+           mbe_item_filter_cb covers inputting "," ";" at last position from keypad.
+       */
+       utf8_text  = elm_entry_markup_to_utf8(*text);
+       if (utf8_text) {
+               int cursor_pos = elm_entry_cursor_pos_get(entry);
+               D_SEC_MSG("cursor_pos = %d", cursor_pos);
+
+               /*  cursor_pos can be 0 when text is added at last position or at first position */
+               if (cursor_pos == 0) {
+                       /* get previous entered str */
+                       pre_str = elm_entry_entry_get(entry);
+
+                       /* make full str */
+                       if (pre_str)
+                               full_str = g_strconcat(pre_str, utf8_text, NULL);
+                       else
+                               full_str = g_strdup(utf8_text);
+
+                       if (full_str) {
+                               __msg_ui_recipient_process_delimiter_char(data, full_str, text, RECIPIENT_PARSING_TYPE_ADD_CHAR);
+                               g_free(full_str);
+                       } else {
+                               D_EMSG("full_str is NULL");
+                       }
+               }
+
+               free(utf8_text);
+       }
+
+       D_LEAVE;
+}
+
+Eina_Bool msg_ui_composer_recipient_ht_resize_idler(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETVM_IF(cd == NULL, EINA_FALSE, "Composer Data is NULL");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETVM_IF(rd == NULL, EINA_FALSE, "recipient data is NULL");
+
+       rd->resize_idler = NULL;
+
+       if (false == msg_ui_composer_last_focus_is_recipient(cd))
+               return EINA_FALSE;
+
+       int count = 0;
+       const Eina_List *list = elm_multibuttonentry_items_get(rd->mbe);
+       if (NULL != list) {
+               count = eina_list_count(list);
+               D_MSG("Number of items in mbe is = %d", count);
+       }
+
+       if (count >= 1) {
+               msg_ui_composer_show_hide_mbe(rd, true);
+       } else {
+               msg_ui_composer_show_hide_mbe(rd, false);
+       }
+
+       /* We are doing the following approach for pushing the body entry below when
+        * To entry is clicked.
+        * ISSUE: since our composer main layout is combination of many layouts and
+        * Evas_objects, which changes there height dynamically evas_object_geometry_get(layout/box)
+        * could not able to calculate the height correctly. It should return the height as a combination of
+        * MBE and To entry background image but the height returned is the height of only MBE
+        * SOLUTION: We are creating one rectangle(visible: 0) in the composer_main.edc file
+        * and the height of this rectangle is maintained as a combination of height of MBE and
+        * To entry background image in MBE visible state and in MBE hide state its hieght will
+        * be equal to To entry background image height. And body is placed w.r.t this rectangle
+        * Whenever this rectangle is expanded/contracted body will be shifted accordingly. */
+       Evas_Object *rect = NULL;
+       Evas_Coord x = 0;
+       Evas_Coord y = 0;
+       Evas_Coord w = 0;
+       Evas_Coord mbe_h = 0;
+       Evas_Coord entry_h = 0;
+
+       evas_object_geometry_get(rd->mbe, &x, &y, &w, &mbe_h);
+       edje_object_part_geometry_get(_EDJ(rd->ly_to), "swl.entry", &x, &y, &w, &entry_h);
+
+       if (count >= 1) {
+               evas_object_size_hint_min_set(cd->recipient_ht_rect, 0, mbe_h + entry_h); /* 100 = Button size (Attach & Send) + top padding + mid padding */
+       } else {
+               evas_object_size_hint_min_set(cd->recipient_ht_rect, 0, entry_h);
+       }
+
+       /* This background rect resizing is needed to avoid sudden increase of the
+        * recipient background based on the MBE height. This makes it sync with MBE
+        * Visibility */
+       rect = elm_layout_content_get(rd->ly_to, "rect");
+       evas_object_size_hint_min_set(rect, 0, mbe_h + entry_h);
+
+       D_MSG("mbe_h = %d, entry_h = %d, (mbe_h + entry_h) = %d", mbe_h, entry_h, mbe_h + entry_h);
+
+       D_LEAVE;
+       return EINA_FALSE;
+}
+
+void msg_ui_recipient_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");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       elm_object_focus_allow_set(cd->send_button, EINA_FALSE); /*used to prevent focus shifting to send button when send button is clicked*/
+
+       if (cd->isclosed) {
+               D_MSG("ug close case. return.");
+               return;
+       }
+
+       if (rd->is_required_address_popup) {
+               D_MSG("Invalid popup will be shown ");
+               return;
+       }
+
+       if (true == rd->was_entry_empty) {
+               elm_entry_entry_set(rd->entry, "");
+               rd->was_entry_empty = false;
+       }
+
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(obj, "elm,state,clear,visible", "");
+       else
+               elm_object_signal_emit(obj, "elm,state,clear,hidden", "");
+
+       msg_ui_composer_hide_attach_focus(cd);
+
+       rd->coming_from = rd->entry;
+       msg_ui_composer_last_focused_entry_set(cd, rd->entry);
+
+       if (cd->return_from_power_home) {
+               msg_ui_composer_reset_view(cd);
+               cd->return_from_power_home = false;
+       }
+
+       rd->plus_btn_allowed = EINA_TRUE;
+
+       /* Delete the idler callback first before creating one mroe */
+       if (rd->resize_idler) {
+               ecore_idler_del(rd->resize_idler);
+               rd->resize_idler = NULL;
+       }
+
+       rd->resize_idler = ecore_idler_add(msg_ui_composer_recipient_ht_resize_idler, cd);
+       msg_ui_composer_body_input_field_focus_set(cd, false);
+       msg_ui_composer_body_media_layout_focus_hide(cd, COMPOSER_MEDIA_HIDE_ALL, -1);
+
+       Evas_Coord child_w = 0;
+       Evas_Coord child_h = 0;
+       Evas_Coord region_w = 0;
+       Evas_Coord region_h = 0;
+
+       elm_scroller_child_size_get(cd->main_scroller, &child_w, &child_h);
+       elm_scroller_region_get(cd->main_scroller, NULL, NULL, &region_w, &region_h);
+
+       /* move scroller to top */
+       if (child_h > region_h)
+               elm_scroller_region_show(cd->main_scroller, 0, 0, region_w, region_h);
+
+       char *recipient_str = NULL;
+
+       recipient_str = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+       if (recipient_str == NULL) {
+               D_EMSG("recipient_str is NULL");
+               return;
+       }
+
+       if (cd->predictsearch != NULL) {
+               cd->predictsearch->is_resume = true;
+       }
+
+       if (strlen(recipient_str) > 0) {
+               /* Do not support preditive list when only spaces are existed. This is an exceptional case */
+               bool is_exception_case = is_all_exception_characters(recipient_str);
+               if (!is_exception_case)
+                       msg_ui_composer_predictsearch_request(cd, recipient_str);
+       } else {
+               msg_ui_composer_predictsearch_clear(cd);
+       }
+
+       free(recipient_str);
+
+       D_LEAVE;
+       return;
+}
+
+void msg_ui_recipient_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = data;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+       elm_object_focus_allow_set(cd->send_button, EINA_TRUE); /*used to allow focus frame to shift to send button when input from hardware keyboard*/
+
+       /* If it exist Selected item popup, then it should not shrink mode set == 1 */
+       if (msg_ui_composer_popup_exist(cd) == EINA_TRUE) {
+               D_MSG("Popup exist");
+               return;
+       }
+
+       /* When entry does not have any characters and backspace is pressed then mbe
+        * is given focus and mbe item is selected, in this case we do not do anything. */
+       if (true == rd->backspace_pressed) {
+               D_MSG("Focus shifted to mbe for deleting items");
+               return;
+       }
+
+       /*If return key is pressed, call resize idler to avoid predict search overlapping with Recipient entry field in invalid recipient case.*/
+       if (rd->return_pressed == TRUE || cd->attach_panel) {
+               rd->coming_from = rd->entry;
+               /* Delete the idler callback first before creating one mroe */
+               if (rd->resize_idler) {
+                       ecore_idler_del(rd->resize_idler);
+                       rd->resize_idler = NULL;
+               }
+               rd->resize_idler = ecore_idler_add(msg_ui_composer_recipient_ht_resize_idler, cd);
+       }
+
+       rd->is_entry_activated = false;
+       rd->plus_btn_allowed = EINA_FALSE;
+
+       if (rd->is_keep_recipient_layout == false) {
+               Evas_Object *rect = NULL;
+               Evas_Coord x = 0;
+               Evas_Coord y = 0;
+               Evas_Coord w = 0;
+               Evas_Coord entry_h = 0;
+               Evas_Coord total_h = 0;
+
+               edje_object_part_geometry_get(_EDJ(rd->ly_to), "img.recipient.main.bg", &x, &y, &w, &entry_h);
+               total_h = entry_h;
+               D_SEC_MSG("[EDJ_GEO] x = %d, y = %d, w =%d, h = %d", x, y, w, entry_h);
+
+               if (rd->is_mbe_item_selected) {
+                       Evas_Coord mbe_h = 0;
+                       evas_object_geometry_get(rd->mbe, &x, &y, &w, &mbe_h);
+                       total_h += mbe_h;
+               }
+
+               D_MSG("total_h = %d", total_h);
+               evas_object_size_hint_min_set(cd->recipient_ht_rect, 0, total_h);
+
+               rect = elm_layout_content_get(rd->ly_to, "rect");
+               evas_object_size_hint_min_set(rect, 0, total_h);
+       }
+       if (rd->return_pressed == TRUE) {
+               char *recipient_str = NULL;
+               recipient_str = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+               if (recipient_str == NULL) {
+                       D_EMSG("recipient_str is NULL");
+                       return;
+               }
+
+               if (cd->predictsearch != NULL) {
+                       cd->predictsearch->is_resume = true;
+               }
+
+               if (strlen(recipient_str) > 0) {
+                       /* Do not support preditive list when only spaces are existed. This is an exceptional case */
+                       bool is_exception_case = is_all_exception_characters(recipient_str);
+                       if (!is_exception_case)
+                               msg_ui_composer_predictsearch_request(cd, recipient_str);
+               } else {
+                       msg_ui_composer_predictsearch_clear(cd);
+               }
+               rd->return_pressed = FALSE;
+               free(recipient_str);
+       }
+
+       if (cd->is_keypad_show && cd->on_press_power_key)
+               cd->not_hiding_keypad_flag = true;
+
+       D_LEAVE;
+}
+
+
+void msg_ui_recipient_entry_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+       Evas_Event_Key_Up *ev = (Evas_Event_Key_Up *)event_info;
+
+       if ((!strcmp(ev->keyname, "BackSpace")) && (elm_entry_is_empty(obj)) && (msg_ui_composer_recipient_count_get(rd))) {
+               D_MSG("recipient entry key down on backspace");
+               rd->backspace_pressed = true;
+       }
+       if (!strcmp(ev->keyname, "Return")) {
+               rd->return_pressed = TRUE;
+               msg_ui_composer_predictsearch_clear(cd);
+       }
+}
+
+void msg_ui_recipient_entry_key_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+       Evas_Event_Key_Up *ev = (Evas_Event_Key_Up *)event_info;
+
+       if (!strcmp(ev->keyname, "BackSpace")) {
+               if (true == rd->backspace_pressed) {
+                       D_MSG("recipient entry key up on backspace");
+
+                       rd->backspace_pressed = false;
+                       const Eina_List *list = elm_multibuttonentry_items_get(rd->mbe);
+                       if (NULL == list) {
+                               D_EMSG("item_list is NULL");
+                               return;
+                       }
+
+                       int count = eina_list_count(list);
+                       D_MSG("Number of items in mbe is = %d", count);
+
+                       if (count > 0) {
+                               Elm_Object_Item *last_item = elm_multibuttonentry_last_item_get(rd->mbe);
+
+                               if (NULL != last_item) {
+                                       Evas_Object *entry = elm_multibuttonentry_entry_get(rd->mbe);
+                                       rd->going_to = entry;
+
+                                       if (rd->coming_from == rd->entry) {
+                                               D_MSG("show keypad manually not done in msg_ui_recipient_entry_key_up_cb");
+                                       } else {
+                                               msg_ui_composer_last_focused_entry_set(cd, entry);
+                                               msg_ui_composer_entry_input_panel_show(entry);
+                                       }
+
+                                       rd->is_mbe_item_selected = true;
+                                       elm_object_focus_allow_set(rd->mbe, EINA_TRUE);
+                                       elm_multibuttonentry_item_selected_set(last_item, EINA_TRUE);
+                               }
+                       }
+               }
+       }
+}
+
+void msg_ui_recipient_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       RECIPIENT_S *rd = (RECIPIENT_S *)data;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)rd->cd;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+       Evas_Coord x = 0;
+       Evas_Coord y = 0;
+       Evas_Coord w = 0;
+       Evas_Coord h = 0;
+
+       if (cd->isclosed) {
+               D_MSG("ug close case. return.");
+               return;
+       }
+
+       evas_object_geometry_get(obj, &x, &y, &w, &h);
+       if (rd->recipient_h != h) {
+               rd->recipient_h = h;
+
+               if (cd->isclosed == false) {    /* evas_object_resize makes bs during closing composer*/
+                       Evas_Object *entry = rd->entry;
+                       int keypad_h = msg_ui_composer_get_keypad_height(entry);
+
+                       msg_ui_composer_change_body_scroll_size(cd, keypad_h);
+               }
+       }
+}
+
+void msg_ui_recipient_mbe_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");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "recipient data is NULL");
+       /* If idler not created */
+       if (!rd->resize_idler) {
+               rd->resize_idler = ecore_idler_add(msg_ui_composer_recipient_ht_resize_idler, cd);
+       }
+       D_LEAVE;
+}
diff --git a/composer/src/ui-composer/msg-ui-composer-recipient.c b/composer/src/ui-composer/msg-ui-composer-recipient.c
new file mode 100755 (executable)
index 0000000..02f29a8
--- /dev/null
@@ -0,0 +1,2155 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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-recipient.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-recipient-callback.h"
+#include "msg-ui-composer-message.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-composer-external.h"
+#include "msg-ui-composer-main.h"
+#include "msg-ui-composer-predictsearch.h"
+
+Elm_Gengrid_Item_Class mbe_options_list_itc;
+Elm_Gengrid_Item_Class add_contact_popup_list_itc;
+/*==================================================================================================
+*                                                              FUNCTION IMPLEMENTATIONS
+*==================================================================================================*/
+#ifdef MSGC_SUPPORT_USE_OTHER_NUMBER
+void msg_ui_composer_recipient_create_change_number_popup(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");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+       Evas_Object *popup = NULL;
+       Evas_Object *genlist = NULL;
+       int ct_err = CONTACTS_ERROR_NONE;
+       int count = 0;
+       RECIPIENT_ITEM_S *r_item = NULL;
+       CONTACT_ITEM_S *ct_item = NULL;
+       contacts_list_h list = NULL;
+       contacts_query_h query = NULL;
+       contacts_filter_h filter = NULL;
+
+       r_item = msg_ui_composer_recipient_selected_item_data_get(cd);
+       D_MSG_RETM_IF(r_item == NULL, "Selected Data is NULL");
+       D_MSG_RETM_IF(r_item->index <= 0, "Selected index <= 0");
+
+       if (rd->change_number_popup) {
+               msg_ui_composer_destroy_popup(cd, rd->change_number_popup);
+               rd->change_number_popup = NULL;
+       }
+       popup = msg_ui_composer_create_list_popup(cd, MESSAGE_PKGNAME, "IDS_MSGF_OPT_SELECT", NULL, NULL);
+
+       genlist = elm_genlist_add(popup);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+       evas_object_data_set(genlist, "selected_item", r_item);
+
+       rd->change_number_itc.item_style = "2text.3/popup";
+       rd->change_number_itc.func.text_get = msg_ui_recipient_change_number_gl_text_get;
+       rd->change_number_itc.func.content_get = NULL;
+       rd->change_number_itc.func.state_get = NULL;
+       rd->change_number_itc.func.del = msg_ui_recipient_change_number_gl_del;
+
+       /* create query and get list for numbers */
+       contacts_query_create(_contacts_person_number._uri, &query);
+       contacts_filter_create(_contacts_person_number._uri, &filter);
+       contacts_filter_add_int(filter, _contacts_person_number.person_id, CONTACTS_MATCH_EXACTLY, r_item->index);
+       contacts_query_set_filter(query, filter);
+
+       ct_err = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+       filter = NULL;
+       query = NULL;
+
+       if (ct_err != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+               contacts_list_destroy(list, true);
+               goto err;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_err) {
+               contacts_record_h ct_value = NULL;
+               int type;
+
+               contacts_list_get_current_record_p(list, &ct_value);
+
+               if (ct_value) {
+                       contacts_record_get_int(ct_value, _contacts_person_number.type, &type);
+
+                       if (type != CONTACTS_NUMBER_TYPE_ASSISTANT) {
+                               char *content = NULL;
+
+                               contacts_record_get_str_p(ct_value, _contacts_person_number.number, &content);
+                               D_SEC_MSG("[%d][%d]%s", r_item->index, type, content);
+
+                               if (content) {
+                                       /* make normalized number */
+                                       char *address = content;
+                                       char *normalized_number = msg_common_make_normalized_number(content);
+                                       if (normalized_number) {
+                                               D_SEC_MSG("normalized_number = [%s]", normalized_number);
+                                               address = normalized_number;
+                                       }
+
+                                       if (strcmp(r_item->recipient, address)) { /* comparing with normalized numbers */
+                                               ct_item = (CONTACT_ITEM_S *)calloc(1, sizeof(CONTACT_ITEM_S));
+                                               if (ct_item) {
+                                                       ct_item->type = COMPOSER_ADDR_TYPE_NUMBER;
+                                                       ct_item->contact_type = type;
+                                                       strncpy(ct_item->recipient, content, sizeof(ct_item->recipient) - 1);
+
+                                                       elm_genlist_item_append(genlist, &rd->change_number_itc, ct_item, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_recipient_change_number_popup_list_clicked_cb, cd);
+
+                                                       count++;
+                                               } else {
+                                                       D_EMSG("calloc is failed");
+                                               }
+                                       }
+
+                                       if (normalized_number) {
+                                               free(normalized_number);
+                                               normalized_number = NULL;
+                                       }
+                               }
+                       }
+               }
+
+               ct_err = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+       list = NULL;
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       /* create query and get list for emails */
+       contacts_query_create(_contacts_person_email._uri, &query);
+       contacts_filter_create(_contacts_person_email._uri, &filter);
+       contacts_filter_add_int(filter, _contacts_person_email.person_id, CONTACTS_MATCH_EXACTLY, r_item->index);
+       contacts_query_set_filter(query, filter);
+
+       ct_err = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+
+       if (ct_err != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+               contacts_list_destroy(list, true);
+               goto err;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_err) {
+               contacts_record_h ct_value = NULL;
+               int type;
+
+               contacts_list_get_current_record_p(list, &ct_value);
+
+               if (ct_value) {
+                       char *content = NULL;
+
+                       contacts_record_get_int(ct_value, _contacts_person_email.type, &type);
+                       contacts_record_get_str_p(ct_value, _contacts_person_email.email, &content);
+
+                       D_SEC_MSG("[%d][%d]%s", r_item->index, type, content);
+
+                       if (content) {
+                               if (strcmp(r_item->recipient, content)) {
+                                       ct_item = (CONTACT_ITEM_S *)calloc(1, sizeof(CONTACT_ITEM_S));
+                                       if (ct_item) {
+                                               ct_item->type = COMPOSER_ADDR_TYPE_EMAIL;
+                                               ct_item->contact_type = type;
+                                               strncpy(ct_item->recipient, (char *)content, sizeof(ct_item->recipient) - 1);
+
+                                               elm_genlist_item_append(genlist, &rd->change_number_itc, ct_item, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_recipient_change_number_popup_list_clicked_cb, cd);
+
+                                               count++;
+                                       } else {
+                                               D_EMSG("calloc is failed");
+                                       }
+                               }
+                       }
+               }
+
+               ct_err = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+#endif
+       int popup_list_count = count;
+
+       if (cd->rotate == COMPOSER_ROTATE_PORTRAIT || cd->rotate == COMPOSER_ROTATE_PORTRAIT_UPSIDEDOWN) {
+               if (count >= MSGC_PORTRAIT_GENLIST_POPUP_COUNT)
+                       popup_list_count = MSGC_PORTRAIT_GENLIST_POPUP_COUNT;
+       } else {
+               if (count >= MSGC_LANDSCAPE_GENLIST_POPUP_COUNT)
+                       popup_list_count = MSGC_LANDSCAPE_GENLIST_POPUP_COUNT;
+       }
+
+       Evas_Object *box = elm_box_add(popup);
+       evas_object_size_hint_min_set(box, 0, ELM_SCALE_SIZE(MSGC_POPUP_GENLIST_H * popup_list_count));
+       evas_object_show(genlist);
+       elm_box_pack_end(box, genlist);
+
+       elm_object_content_set(popup, box);
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       evas_object_data_set(popup, "item_count", (void *)count);
+
+       rd->change_number_popup = popup;
+
+       D_LEAVE;
+       return;
+
+err:
+       if (genlist)
+               evas_object_del(genlist);
+
+       if (popup)
+               evas_object_del(popup);
+}
+#endif
+
+void msg_ui_composer_recipient_apply_font_size(MSG_COMPOSER_VIEW_DATA_S *cd, const char *font_sytle)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       D_MSG_RETM_IF(font_sytle == NULL, "font_sytle is NULL");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "recipient data is NULL");
+
+       if (rd->entry) {
+               elm_entry_text_style_user_push(rd->entry, font_sytle);
+               int font_size = msg_ui_composer_get_font_size(COMPOSER_TYPE_RECIPIENT);
+               if (font_size > 0) {
+                       font_size = (font_size > 48 ? 48 : font_size);
+               } else {
+                       font_size = MSGC_RECIPIENT_FONT_SIZE;
+               }
+
+               msg_ui_composer_entry_set_guide_text(rd->entry, "IDS_MSGF_BODY_RECIPIENTS");
+       }
+
+       D_LEAVE;
+}
+
+void __msgc_show_idle_popup(void *data, MSG_COMPOSER_TIMING_POPUP_TYPE_E popup_type)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       if (!msg_ui_composer_popup_exist(cd) && !cd->loaded_ug && !cd->loaded_aul) {
+               /* show popup when message window has a top focus.(active state of app) */
+               if (elm_win_focus_get(cd->main_window) == EINA_TRUE) {
+                       if ((cd->isclosed == false) && (cd->ctx_popup == NULL)) {
+                               if (popup_type == MSG_COMPOSER_TPOPUP_MAXIMUM_RECIPIENT_COUNT) {
+                                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+                                       return;
+                               } else {
+                                       if (popup_type == MSG_COMPOSER_TPOPUP_INVALID_RECIPIENT) {
+                                               Evas_Object *entry = msg_ui_composer_last_focused_entry_get(cd);
+                                               if (entry) {
+                                                       elm_object_focus_set(entry, EINA_TRUE);
+                                               }
+                                               msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID");
+                                       } else {
+                                               D_EMSG("Invalid timing popup type : %d", popup_type);
+                                               return;
+                                       }
+                                       cd->is_timing_popup = true;
+                                       cd->tpopup_type = MSG_COMPOSER_TPOPUP_NONE;
+                               }
+                       }
+               }
+       }
+}
+
+Eina_Bool msg_ui_composer_recipient_invalid_address_popup_cb(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_FALSE, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETVM_IF(rd == NULL, EINA_FALSE, "recipient data is NULL");
+
+       cd->show_popup_timer = NULL;
+       rd->notify_popup_idler = NULL;
+       rd->is_entry_activated = false;
+
+       __msgc_show_idle_popup(cd, MSG_COMPOSER_TPOPUP_INVALID_RECIPIENT);
+
+       D_LEAVE;
+       return EINA_FALSE;
+}
+
+Eina_Bool msg_ui_composer_recipient_maximum_count_popup_cb(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_FALSE, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETVM_IF(rd == NULL, EINA_FALSE, "recipient data is NULL");
+
+       cd->show_popup_timer = NULL;
+       rd->notify_popup_idler = NULL;
+       rd->is_entry_activated = false;
+
+       __msgc_show_idle_popup(cd, MSG_COMPOSER_TPOPUP_MAXIMUM_RECIPIENT_COUNT);
+
+       D_LEAVE;
+       return EINA_FALSE;
+}
+
+bool msg_ui_composer_recipient_check_showing_popup_condition(void *data)
+{
+       D_MSG_RETVM_IF(data == NULL, false, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETVM_IF(rd == NULL, false, "cd->recipient is NULL");
+       COMPOSER_RECP_ADDR_E recp_type = msg_ui_composer_recipient_addr_type_get(rd);
+
+       D_MSG("### recp_type : %d", recp_type);
+
+       if (recp_type == COMPOSER_RECP_ADDR_MAX_REACHED)
+               return true;
+
+       /* For some recipients, for eg '123/45', recp_type will be COMPOSER_RECP_ADDR_INVALID */
+       /* but this is a valid recipient after normalizing hence in this case invalid popup should not be displayed. */
+       /* To handle this special scenario we need to make normalized string and check if address type of normalized string is invalid */
+       /* only then invalid popup should be displayed */
+       if (recp_type == COMPOSER_RECP_ADDR_INVALID) {
+               if (false == elm_entry_is_empty(rd->entry)) {
+                       char *recipient_str = NULL;
+                       char *normalized_number = NULL;
+
+                       recipient_str = elm_entry_markup_to_utf8(elm_entry_entry_get(rd->entry));
+                       if (recipient_str) {
+                               Bool ret_value = false;
+                               D_MSG("Recipient string : %s", recipient_str);
+
+                               /* make normalized number */
+                               normalized_number = msg_common_make_normalized_number(recipient_str);
+                               if (normalized_number) {
+                                       D_SEC_MSG("normalized_number = [%s]", normalized_number);
+                                       if (get_address_type(normalized_number) == COMPOSER_UTIL_ADDRTYPE_INVALID) {
+                                               ret_value = true;
+                                       } else {
+                                               ret_value = false;
+                                       }
+
+                                       free(normalized_number);
+                                       normalized_number = NULL;
+                               } else {
+                                       ret_value = true;
+                               }
+
+                               free(recipient_str);
+                               recipient_str = NULL;
+                               return ret_value;
+                       }
+               } else {
+                       return true;
+               }
+       }
+
+       return false;
+}
+
+RECIPIENT_ITEM_S *msg_ui_composer_recipient_selected_item_data_get(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer Data is NULL");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETVM_IF(rd == NULL, NULL, "Recipient Data is NULL");
+       RECIPIENT_ITEM_S *r_item = NULL;
+
+       r_item = rd->sel_r_item;
+       if (!r_item) {
+               D_EMSG("No data in Selected MBE item");
+               return NULL;
+       }
+
+       D_LEAVE;
+
+       return r_item;
+}
+
+void msg_ui_composer_recipient_selected_delete(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+       Elm_Object_Item *mbe_item = NULL;
+
+       mbe_item = rd->sel_mbe_item;
+       if (!mbe_item) {
+               D_EMSG("There is no Selected MBE item");
+               return;
+       }
+
+       elm_object_item_del(mbe_item);
+       msg_ui_composer_message_type_check_and_change(cd);
+
+       msg_ui_composer_entry_input_panel_show(rd->entry);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_recipient_selected_edit(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+       Elm_Object_Item *mbe_item = NULL;
+       Evas_Object *sc_entry = NULL;
+       RECIPIENT_ITEM_S *r_item = NULL;
+
+       mbe_item = rd->sel_mbe_item;
+       if (!mbe_item) {
+               D_EMSG("There is no Selected MBE item");
+               return;
+       }
+
+       elm_object_focus_set(rd->entry, true);
+       r_item = msg_ui_composer_recipient_selected_item_data_get(cd);
+       D_MSG_RETM_IF(r_item == NULL, "Selected Data is NULL");
+
+       if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true) {
+               if (msg_ui_composer_recipient_addr_type_get(cd->recipient) == COMPOSER_RECP_ADDR_INVALID) {
+                       msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID");
+               } else {
+                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+               }
+               msg_ui_composer_last_focused_entry_set(cd, cd->recipient->entry);
+               msg_ui_composer_last_focus_load(cd);
+               return;
+       } else {
+               if (false == elm_entry_is_empty(rd->entry)) {
+                       char *recipient_str = NULL;
+
+                       recipient_str = elm_entry_markup_to_utf8(elm_entry_entry_get(rd->entry));
+                       if (recipient_str == NULL) {
+                               D_EMSG("Unable to get the stiring from entry");
+                       } else {
+                               D_MSG("recipient_str = %s, length = %d", recipient_str, strlen(recipient_str));
+
+                               char *markup_str = elm_entry_utf8_to_markup(recipient_str);
+                               elm_multibuttonentry_item_append(rd->mbe, markup_str, NULL, NULL);
+
+                               MSG_FREE(markup_str);
+                               MSG_FREE(recipient_str);
+                       }
+               }
+       }
+
+       sc_entry = rd->entry;
+       elm_entry_entry_set(sc_entry, r_item->recipient);
+       elm_entry_cursor_line_end_set(sc_entry);
+
+       elm_object_item_del(mbe_item);
+       msg_ui_composer_message_type_check_and_change(cd);
+
+       msg_ui_composer_entry_input_panel_show(rd->entry);
+
+       D_LEAVE;
+}
+
+static char *__msg_ui_recipient_mbe_options_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       const char *label  = (char *) data;
+       if (!strcmp(part, "elm.text")) {
+               if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_REMOVE")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_REMOVE"));
+               } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_EDIT")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_EDIT"));
+               } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"));
+               } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB"));
+               } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"));
+               } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_UPDATE_CONTACT")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_UPDATE_CONTACT"));
+               }
+       }
+               return NULL;
+}
+void msg_ui_composer_recipient_select_popup_create(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data param is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "recipient data is NULL");
+       Evas_Object *popup = NULL;
+       RECIPIENT_ITEM_S *r_item = NULL;
+       char title_str[DEF_BUF_LEN + 1] = {0,};
+       char *markup_title_str = NULL;
+       Evas_Object *genlist = NULL;
+       int count = 0;
+
+
+       r_item = msg_ui_composer_recipient_selected_item_data_get(cd);
+       if (!r_item) {
+               D_EMSG("r_item is NULL");
+               return;
+       }
+
+       if (r_item->index > 0) {
+               if (r_item->display_name[0] != '\0')
+                       snprintf(title_str, sizeof(title_str), "%s <%s>", r_item->display_name, r_item->recipient);
+               else
+                       snprintf(title_str, sizeof(title_str), "%s", r_item->recipient);
+       } else {
+               snprintf(title_str, sizeof(title_str), "%s", r_item->recipient);
+       }
+
+       if (rd->selected_popup) {
+               msg_ui_composer_destroy_popup(cd, rd->selected_popup);
+               rd->selected_popup = NULL;
+       }
+
+       markup_title_str = elm_entry_utf8_to_markup(title_str);
+
+       popup = msg_ui_composer_create_list_popup(data, NULL, markup_title_str, NULL, NULL);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       genlist = elm_genlist_add(popup);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+
+       mbe_options_list_itc.item_style = "default";
+       mbe_options_list_itc.func.text_get = __msg_ui_recipient_mbe_options_gl_text_get;
+       mbe_options_list_itc.func.content_get = NULL;
+       mbe_options_list_itc.func.state_get = NULL;
+       mbe_options_list_itc.func.del = NULL;
+
+       if (markup_title_str) {
+               g_free(markup_title_str);
+               markup_title_str = NULL;
+       }
+
+       elm_genlist_item_append(genlist, &mbe_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_REMOVE"),
+                       NULL, ELM_GENLIST_ITEM_NONE, msg_ui_recipient_select_popup_list_clicked_cb, data);
+       count++;
+
+       elm_genlist_item_append(genlist, &mbe_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_EDIT"),
+                       NULL, ELM_GENLIST_ITEM_NONE, msg_ui_recipient_select_popup_list_clicked_cb, data);
+       count++;  
+
+       if (r_item->index > 0) {
+               elm_genlist_item_append(genlist, &mbe_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"),
+                                       NULL, ELM_GENLIST_ITEM_NONE, msg_ui_recipient_select_popup_list_clicked_cb, data);
+               count++;
+       } else {
+               elm_genlist_item_append(genlist, &mbe_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB"),
+                                       NULL, ELM_GENLIST_ITEM_NONE, msg_ui_recipient_select_popup_list_clicked_cb, data);
+               count++;
+
+               elm_genlist_item_append(genlist, &mbe_options_list_itc, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_UPDATE_CONTACT"),
+                                       NULL, ELM_GENLIST_ITEM_NONE, msg_ui_recipient_select_popup_list_clicked_cb, data);
+               count++;
+       }
+
+       Evas_Object *box = elm_box_add(popup);
+       evas_object_size_hint_min_set(box, 0, ELM_SCALE_SIZE(MSGC_POPUP_LIST_H * count));
+       evas_object_show(genlist);
+       elm_box_pack_end(box, genlist);
+       elm_object_content_set(popup, box);
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+       rd->selected_popup = popup;
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_recipient_create_no_recipient_icon(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       Evas_Object *icon = elm_icon_add(rd->ly_to);
+       elm_image_file_set(icon, MSG_IMAGES_EDJ, MSGC_NO_RECIPIENT_ICON);
+       evas_object_show(icon);
+
+       elm_object_part_content_set(rd->ly_to, "swl.invalid_icon", icon);
+       edje_object_signal_emit(_EDJ(rd->ly_to), "entry_with_invalid_icon", "*");
+}
+
+void msg_ui_composer_recipient_destroy_no_recipient_icon(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       Evas_Object *icon = elm_object_part_content_unset(rd->ly_to, "swl.invalid_icon");
+
+       edje_object_signal_emit(_EDJ(rd->ly_to), "entry_with_no_invalid_icon", "*");
+
+       if (icon) {
+               evas_object_del(icon);
+       }
+}
+
+static Evas_Object *__recipeint_mbe_create(RECIPIENT_S *rd, RECIPIENT_MODE_E mode)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(rd == NULL, NULL, "rd is NULL");
+       Evas_Object *mbe = NULL;
+       char label_txt[TO_FIELD_LABEL_SIZE_MAX] = { 0, };
+       gsize len = 0;
+
+       mbe = elm_multibuttonentry_add(rd->parent);
+       elm_multibuttonentry_editable_set(mbe, EINA_FALSE);
+       elm_multibuttonentry_expanded_set(mbe, EINA_TRUE);
+       evas_object_size_hint_weight_set(mbe, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(mbe, EVAS_HINT_FILL, 0.0);
+       evas_object_show(mbe);
+
+       /* set mbe label */
+       len = snprintf(label_txt, (gsize)sizeof(label_txt), "%s:", _MSGSTR("IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"));
+       if (len == -1) {
+               D_EMSG("len = %d", len);
+       } else if (len > 0) {
+               label_txt[len] = '\0';
+               /* elm_object_text_set(mbe, label_txt); */
+       } else {
+               D_EMSG("len = %d", len);
+       }
+
+       /* set mbe callback */
+       evas_object_smart_callback_add(mbe, "item,added", msg_ui_recipient_mbe_item_added_cb, rd->cd);
+       evas_object_smart_callback_add(mbe, "item,selected", msg_ui_recipient_mbe_item_selected_cb, rd->cd);
+       evas_object_smart_callback_add(mbe, "item,deleted", msg_ui_recipient_mbe_item_deleted_cb, rd->cd);
+       evas_object_smart_callback_add(mbe, "item,clicked", msg_ui_recipient_mbe_item_clicked_cb, rd->cd);
+       evas_object_smart_callback_add(mbe, "expanded", msg_ui_recipient_mbe_expanded_cb, rd);
+       evas_object_smart_callback_add(mbe, "contracted", msg_ui_recipient_mbe_contracted_cb, rd);
+
+       evas_object_smart_callback_add(mbe, "focused", msg_ui_recipient_mbe_focused_cb, rd->cd);
+       evas_object_smart_callback_add(mbe, "clicked", msg_ui_recipient_mbe_clicked_cb, rd->cd);
+       evas_object_smart_callback_add(mbe, "unfocused", msg_ui_recipient_mbe_unfocused_cb, rd->cd);
+       evas_object_event_callback_add(mbe, EVAS_CALLBACK_DEL, msg_ui_recipient_mbe_delete_cb, rd->cd);
+       evas_object_event_callback_add(mbe, EVAS_CALLBACK_RESIZE, msg_ui_recipient_mbe_resize_cb, rd->cd);
+
+       elm_multibuttonentry_item_filter_append(mbe, msg_ui_recipient_mbe_item_filter_cb, rd->cd);
+
+
+       D_LEAVE;
+       return mbe;
+}
+
+static void __recipeint_entry_create(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+       Evas_Object *entry = NULL;
+       Ecore_IMF_Context *context = NULL;
+       Elm_Entry_Filter_Limit_Size limit_filter;
+
+       Evas_Object *searchfield = elm_layout_add(rd->parent);
+       elm_layout_theme_set(searchfield, "layout", "searchfield", "singleline");
+       evas_object_size_hint_align_set(searchfield, EVAS_HINT_FILL, 0.0);
+       evas_object_size_hint_weight_set(searchfield, EVAS_HINT_EXPAND, 0.0);
+
+       entry = elm_entry_add(searchfield);
+       if (NULL == entry) {
+               D_EMSG("Unable to create entry");
+               return;
+       }
+
+       elm_object_signal_emit(entry, "elm,action,hide,search_icon", "");
+       elm_entry_editable_set(entry, EINA_TRUE);
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       elm_entry_scrollable_set(entry, EINA_TRUE);
+
+       elm_scroller_policy_set(entry, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
+       elm_entry_autocapital_type_set(entry, ELM_AUTOCAPITAL_TYPE_NONE);
+       elm_entry_input_panel_return_key_type_set(entry, ELM_INPUT_PANEL_RETURN_KEY_TYPE_NEXT);
+       /* keypad is manually controlled, so disabling the auto control of keypad */
+       elm_entry_input_panel_enabled_set(searchfield, EINA_FALSE);
+
+       /* Initializing the variable */
+       rd->backspace_pressed = false;
+
+       /*mbe item filter_cb covers inputting ',' ';' characters case from keypad
+         And paste case with ',' ';' at last position is coverted entry_changed_cb. So comment bellow entry_filter_cb
+         And there is a issue that we can't insert ',' ';' at middle position of inserted text on entry.
+       */
+       /* elm_entry_markup_filter_prepend(entry, msg_ui_recipient_entry_filter_cb, rd->cd); */
+
+       /* fix font size */
+       elm_object_domain_translatable_part_text_set(entry, "elm.guide", MESSAGE_PKGNAME, "IDS_MSGF_BODY_RECIPIENTS");
+       /* set entry max character count*/
+       limit_filter.max_char_count = COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX;
+       elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter);
+
+       context = elm_entry_imf_context_get(entry);
+       ecore_imf_context_input_panel_event_callback_add((Ecore_IMF_Context *)context, ECORE_IMF_INPUT_PANEL_STATE_EVENT, msg_ui_composer_entry_imf_state_cb, rd->cd);
+       ecore_imf_context_input_panel_event_callback_add((Ecore_IMF_Context *)context, ECORE_IMF_INPUT_PANEL_GEOMETRY_EVENT, msg_ui_composer_entry_imf_resize_cb, rd->cd);
+
+       evas_object_smart_callback_add(entry, "changed", msg_ui_recipient_entry_changed_cb, rd->cd);
+       evas_object_smart_callback_add(entry, "preedit,changed", msg_ui_recipient_entry_changed_cb, rd->cd);
+       /* activated is added for enter key of keypad */
+       evas_object_smart_callback_add(entry, "activated", msg_ui_recipient_entry_activated_cb, rd->cd);
+       evas_object_smart_callback_add(entry, "focused", msg_ui_recipient_entry_focused_cb, rd->cd);
+       evas_object_smart_callback_add(entry, "unfocused", msg_ui_recipient_entry_unfocused_cb, rd->cd);
+       evas_object_smart_callback_add(entry, "clicked", msg_ui_recipient_entry_clicked_cb, rd->cd);
+       evas_object_smart_callback_add(entry, "maxlength,reached", msg_ui_recipient_entry_maxlength_reached_cb, rd->cd);
+
+       evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN, msg_ui_recipient_entry_key_down_cb, rd->cd);
+       evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_UP, msg_ui_recipient_entry_key_up_cb, rd->cd);
+
+       eext_entry_selection_back_event_allow_set(entry, EINA_TRUE);
+       elm_object_part_content_set(searchfield, "elm.swallow.content", entry);
+       evas_object_show(entry);
+       evas_object_show(searchfield);
+
+       rd->entry = entry;
+       rd->search_field = searchfield;
+
+       D_LEAVE;
+}
+
+static Evas_Object *__msg_ui_composer_recipient_to_layout_create(RECIPIENT_S *rd, RECIPIENT_MODE_E mode)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(rd == NULL, NULL, "rd is NULL");
+       Evas_Object *layout = NULL;
+       Evas_Object *parent = rd->parent;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)rd->cd;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+
+       layout = msg_ui_composer_load_edj(parent, MSGC_UI_DEFAULT_EDJ, MSGC_EDJ_GRP_RECIPIENT_TO_FIELD);
+
+       if (mode == VIEW_RECIP_MODE) {
+               elm_object_signal_emit(layout, "mbe_only", "*");
+       }
+
+       Evas_Object *bg_layout = NULL;
+       bg_layout = elm_layout_add(parent);
+       elm_layout_file_set(bg_layout, MSG_COMMON_EDJ, MSG_BUBBLE_BG_STYLE_DEFAULT);
+
+       elm_object_part_content_set(layout, "img.recipient.main.bg_color", bg_layout);
+
+       if (!layout) {
+               D_EMSG("layout is NULL");
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       rd->resize_idler = NULL;
+       /* This rect is for MBE background color */
+       Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(layout));
+       evas_object_size_hint_align_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_propagate_events_set(rect, EINA_FALSE);
+       evas_object_color_set(rect, 0, 0, 0, 0);
+       elm_object_part_content_set(layout, "rect", rect);
+       evas_object_size_hint_min_set(rect, 0, ELM_SCALE_SIZE(MSGC_RECIPIENT_DEFAULT_HEIGHT));
+
+       Evas_Object *mbe = __recipeint_mbe_create(rd, mode);
+       rd->mbe = mbe;
+       elm_object_focus_allow_set(mbe, EINA_FALSE);
+       elm_object_tree_focus_allow_set(mbe, EINA_TRUE);
+
+       rd->is_entry_activated = false;
+
+       elm_object_part_content_set(layout, "swl.mbe_scroll", rd->mbe);
+
+       if (mode == EDIT_RECIP_MODE) {
+               __recipeint_entry_create(rd);
+               D_MSG("### recipient entry : %p", rd->entry);
+               elm_object_part_content_set(layout, "swl.entry", rd->search_field);
+
+       /*      MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)rd->cd; */
+
+               Evas_Object *contact_btn = NULL;
+               Evas_Object *icon = NULL;
+
+               edje_object_signal_emit(_EDJ(rd->ly_to), "show.ct_button", "*");
+               contact_btn = elm_button_add(rd->parent);
+               rd->plus_btn_allowed = EINA_FALSE;
+
+               elm_object_theme_set(contact_btn, cd->th);
+               elm_object_style_set(contact_btn, "contact_button");
+
+               icon = elm_image_add(parent);
+               elm_image_file_set(icon, MSG_IMAGES_EDJ, MSGC_CONTACT_ICON);
+               elm_object_part_content_set(contact_btn, "button_center_part", icon);
+               elm_image_resizable_set(icon, EINA_TRUE, EINA_TRUE);
+               evas_object_color_set(icon, COLOR_BLUE);
+               elm_object_part_content_set(layout, "swl.contact_btn", contact_btn);
+
+               evas_object_smart_callback_add(contact_btn, "pressed", msg_ui_recipient_contact_btn_pressed_cb, rd->cd);
+               evas_object_smart_callback_add(contact_btn, "unpressed", msg_ui_recipient_contact_btn_unpressed_cb, rd->cd);
+               evas_object_smart_callback_add(contact_btn, "clicked", msg_ui_recipient_contact_btn_clicked_cb, rd->cd);
+
+               rd->contact_btn = contact_btn;
+
+               Evas_Object *plus_btn = elm_button_add(rd->parent);
+               elm_object_theme_set(plus_btn, cd->th);
+               elm_object_style_set(plus_btn, "plus_button");
+
+               icon = elm_image_add(parent);
+               elm_image_file_set(icon, MSG_IMAGES_EDJ, MSGC_ADD_PLUS_ICON);
+               elm_object_part_content_set(plus_btn, "button_center_part", icon);
+               elm_image_resizable_set(icon, EINA_TRUE, EINA_TRUE);
+               evas_object_color_set(icon, COLOR_BLUE);
+               evas_object_smart_callback_add(plus_btn, "pressed", msg_ui_recipient_plus_btn_pressed_cb, icon);
+               evas_object_smart_callback_add(plus_btn, "unpressed", msg_ui_recipient_plus_btn_unpressed_cb, icon);
+               evas_object_smart_callback_add(plus_btn, "clicked", msg_ui_recipient_plus_btn_clicked_cb, rd->cd);
+
+               rd->plus_btn = plus_btn;
+       }
+
+       D_LEAVE;
+       return layout;
+}
+
+static void __msg_ui_composer_recipient_layout_create(RECIPIENT_S *rd, RECIPIENT_MODE_E mode)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+       D_MSG_RETM_IF(rd->parent == NULL, "r->parent is NULL");
+
+       /*Create layout*/
+       Evas_Object *bx = NULL;
+       bx = elm_box_add(rd->parent);
+       evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(bx);
+
+       rd->bx_main = bx;
+
+       rd->ly_to = __msg_ui_composer_recipient_to_layout_create(rd, mode);
+       elm_box_pack_end(rd->bx_main, rd->ly_to);
+
+       evas_object_event_callback_add(rd->bx_main, EVAS_CALLBACK_RESIZE, msg_ui_recipient_resize_cb, rd);
+
+       D_LEAVE;
+}
+
+static RECIPIENT_ITEM_S *__msg_ui_composer_recipient_item_make(
+                                                                                       COMPOSER_RECP_ADDR_E type,
+                                                                                       int index,
+                                                                                       const char *display_name,
+                                                                                       const char *recipient,
+                                                                                       const char *image_path)
+{
+       RECIPIENT_ITEM_S *recipient_item = NULL;
+       RECIPIENT_ITEM_S r_item;
+
+       bzero(&r_item, sizeof(r_item));
+
+       r_item.type = type;
+       r_item.index = index;
+
+       if (recipient)
+               strncpy(r_item.recipient, recipient, sizeof(r_item.recipient) - 1);
+
+       if (display_name)
+               strncpy(r_item.display_name, display_name, sizeof(r_item.display_name) - 1);
+
+       if (image_path)
+               strncpy(r_item.image_path, image_path, sizeof(r_item.image_path) - 1);
+
+       recipient_item = calloc(1, sizeof(RECIPIENT_ITEM_S));
+       if (!recipient_item) {
+               D_EMSG("calloc is failed");
+               return NULL;
+       }
+
+       memcpy(recipient_item, &r_item, sizeof(RECIPIENT_ITEM_S));
+
+       D_MSG("---------- make item start----------");
+       D_MSG(">>type = %d", r_item.type);
+       D_MSG(">>index = %d", r_item.index);
+       D_SEC_MSG(">>displayname = %s", r_item.display_name);
+       D_SEC_MSG(">>recipient = %s", r_item.recipient);
+       D_SEC_MSG(">>image path = %s", r_item.image_path);
+
+       D_MSG("---------- make item end----------");
+
+       return recipient_item;
+}
+
+RECIPIENT_ITEM_S *msg_ui_composer_recipient_item_make_by_string(const char *str)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(str == NULL, NULL, "str is NULL");
+
+       COMPOSER_UTIL_ADDRTYPE_E type;
+       RECIPIENT_ITEM_S r_item;
+       RECIPIENT_ITEM_S *recipient_item = NULL;
+
+       bzero(&r_item, sizeof(r_item));
+
+       type = get_address_type(str);
+#ifdef _MSG_FEATURE_MMS_DISABLE
+       if (type == COMPOSER_UTIL_ADDRTYPE_NUMBER) {
+#else
+       if (type == COMPOSER_UTIL_ADDRTYPE_NUMBER || type == COMPOSER_UTIL_ADDRTYPE_EMAIL) {
+#endif
+               strncpy(r_item.recipient, str, sizeof(r_item.recipient)-1);
+               r_item.type = msg_ui_composer_recipient_type_get(r_item.recipient);
+               r_item.index = get_contact_index_by_recipient(str);
+               if (r_item.index <= 0 || get_contact_display_name_by_index(r_item.index, r_item.display_name, sizeof(r_item.display_name))) {
+                       strncpy(r_item.display_name, str, sizeof(r_item.display_name)-1);
+               }
+
+       } else {
+               /* contact name is not supported */
+               r_item.type = COMPOSER_RECP_ADDR_INVALID;
+               strncpy(r_item.recipient, str, sizeof(r_item.recipient)-1);
+               strncpy(r_item.display_name, str, sizeof(r_item.display_name)-1);
+       }
+
+       /*make recipient Item*/
+       recipient_item = __msg_ui_composer_recipient_item_make(r_item.type, r_item.index, r_item.display_name, r_item.recipient, NULL);
+       if (!recipient_item) {
+               D_EMSG("Fail of msg_ui_composer_recipient_item_make");
+               return NULL;
+       }
+
+       if (check_delimiter_character(recipient_item->display_name))
+               recipient_item->ignore_delimiter = true;
+
+       return recipient_item;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_duplicate_check(RECIPIENT_S *rd, const char *recipient)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(rd == NULL, COMPOSER_RETURN_FAIL, "rd is NULL");
+       D_MSG_RETVM_IF(recipient == NULL, COMPOSER_RETURN_FAIL, "recipient is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)rd->cd;
+       RECIPIENT_ITEM_S *recipient_item = NULL;
+       Elm_Object_Item *mbe_item = NULL;
+       COMPOSER_UTIL_ADDRTYPE_E inp_type;
+       COMPOSER_UTIL_ADDRTYPE_E tmp_type;
+       bool is_dup = FALSE;
+
+       inp_type = get_address_type(recipient);
+
+       mbe_item = elm_multibuttonentry_first_item_get(rd->mbe);
+       while (mbe_item) {
+               recipient_item = elm_object_item_data_get(mbe_item);
+
+               if (recipient_item) {
+                       tmp_type = get_address_type(recipient_item->recipient);
+
+                       if (inp_type == tmp_type) {
+                               if (inp_type == COMPOSER_UTIL_ADDRTYPE_NUMBER) {
+                                       if (is_duplicated_number(cd->number_min_match_digit, recipient, (const char *)recipient_item->recipient)) {
+                                               is_dup = TRUE;
+                                               break;
+                                       }
+                               } else if (inp_type == COMPOSER_UTIL_ADDRTYPE_EMAIL) {
+                                       if (!g_strcmp0(recipient_item->recipient, recipient)) {
+                                               is_dup = TRUE;
+                                               break;
+                                       }
+                               } else {
+                                       D_EMSG("Unknown type recipient TODO check recipient");
+                               }
+                       }
+               }
+
+               mbe_item = elm_multibuttonentry_item_next_get(mbe_item);
+       }
+
+       if (is_dup) {
+
+               D_SEC_MSG("Found dup recipient = [%s(%d)] with [%s(%d)]", recipient, strlen(recipient), recipient_item->recipient, strlen(recipient_item->recipient));
+
+               char *popup_str = _MSGSTR("IDS_MSGC_BODY_DUPLICATED_RECIPIENT");
+
+               if (cd->center_popup) {
+                       msg_ui_composer_destroy_popup(cd, cd->center_popup);
+                       cd->center_popup = NULL;
+               }
+
+               Evas_Object *popup = msg_ui_composer_create_text_btn_popup(cd, popup_str, 0, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+               elm_object_part_text_set(popup, "title,text", "");
+               cd->center_popup = popup;
+
+               return COMPOSER_RETURN_RECIPIENT_DUPLICATE;
+       }
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+int msg_ui_composer_recipient_count_get(RECIPIENT_S *rd)
+{
+       D_MSG_RETVM_IF(rd == NULL, 0, "recipient data is NULL");
+       D_MSG_RETVM_IF(rd->mbe == NULL, 0, "mbe is NULL");
+       int r_count = 0;
+       Elm_Object_Item *mbe_item;
+
+       mbe_item = elm_multibuttonentry_first_item_get(rd->mbe);
+       while (mbe_item) {
+               r_count++;
+               mbe_item = elm_multibuttonentry_item_next_get(mbe_item);
+       }
+
+       D_MSG("recipient count [%d]", r_count);
+       return r_count;
+}
+
+void msg_ui_composer_recipient_addr_type_set(RECIPIENT_S *rd, COMPOSER_RECP_ADDR_E type)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(rd == NULL, "recipient data is NULL");
+
+       rd->type = type;
+}
+
+COMPOSER_RECP_ADDR_E msg_ui_composer_recipient_addr_type_get(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       if (rd == NULL) {
+               D_MSG("There is no recipient area. Return COMPOSER_RECP_ADDR_NONE");
+               return COMPOSER_RECP_ADDR_NONE;
+       }
+
+       D_MSG("rd->type = [%d]", rd->type);
+       return rd->type;
+}
+
+COMPOSER_RECP_ADDR_E msg_ui_composer_recipient_type_get(const char *recipient)
+{
+       int len = 0;
+       COMPOSER_RECP_ADDR_E ret = COMPOSER_RECP_ADDR_INVALID;
+       COMPOSER_UTIL_ADDRTYPE_E type;
+
+       if (!recipient) {
+               D_PRINT("No Input recipient");
+               return ret;
+       }
+
+       len = strlen(recipient);
+       if (len == 0) {
+               D_PRINT("input recipient length is [%d]", len);
+               return ret;
+       }
+
+       type = get_address_type(recipient);
+       if (type == COMPOSER_UTIL_ADDRTYPE_NUMBER) {
+
+               if (len >= COMPOSER_RECIPIENT_PHONE_NUMBER_LEN_MIN
+                        && len <= COMPOSER_RECIPIENT_PHONE_NUMBER_LEN_MAX) {
+
+                       ret = COMPOSER_RECP_ADDR_VALID_NUMBER;
+               }
+
+       } else if (type == COMPOSER_UTIL_ADDRTYPE_EMAIL) {
+               if (len <= COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX) {
+
+                       ret = COMPOSER_RECP_ADDR_VALID_EMAIL;
+               }
+       }
+
+       return ret;
+}
+
+Eina_Bool msg_ui_composer_recipient_vaild_check(const char *recipient)
+{
+       D_ENTER;
+
+       int len = 0;
+       COMPOSER_UTIL_ADDRTYPE_E type;
+
+       if (!recipient) {
+               D_MSG("No Input recipient");
+               return EINA_FALSE;
+       }
+
+       type = get_address_type(recipient);
+       len = strlen(recipient);
+
+       if (len == 0) {
+               D_MSG("input recipient length is [%d]", len);
+               return EINA_FALSE;
+       }
+
+       if (type == COMPOSER_UTIL_ADDRTYPE_NUMBER) {
+               if (len > COMPOSER_RECIPIENT_PHONE_NUMBER_LEN_MAX) {
+                       D_MSG("NUMBER type recipient Too Long [%d]", len);
+                       return EINA_FALSE;
+               }
+
+               if (len < COMPOSER_RECIPIENT_PHONE_NUMBER_LEN_MIN) {
+                       D_MSG("NUMBER type recipient Too Short [%d]", len);
+                       return EINA_FALSE;
+               }
+       } else if (type == COMPOSER_UTIL_ADDRTYPE_EMAIL) {
+#ifdef _MSG_FEATURE_MMS_DISABLE
+               D_MSG("Email type is not supported", len);
+               return EINA_FALSE;
+#else
+               if (len > COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX) {
+                       D_MSG("Email type recipient Too Long [%d]", len);
+                       return EINA_FALSE;
+               }
+
+               if (len < COMPOSER_RECIPIENT_PHONE_NUMBER_LEN_MIN) {
+                       D_MSG("Email type recipient Too Short [%d]", len);
+                       return EINA_FALSE;
+               }
+#endif
+       } else {
+               D_MSG("Unknown type recipient[%d]", type);
+               return EINA_FALSE;
+       }
+
+       D_LEAVE;
+       return EINA_TRUE;
+}
+
+bool msg_ui_composer_recipient_is_mms(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, EINA_FALSE, "composer data is NULL");
+       RECIPIENT_ITEM_S *recipient_item = NULL;
+       Elm_Object_Item *mbe_item = NULL;
+       bool is_mms = false;
+       COMPOSER_UTIL_ADDRTYPE_E addrtype;
+       RECIPIENT_S *rd = cd->recipient;
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER) {
+               if (!rd) {
+                       D_EMSG("rd is NULL");
+                       return is_mms;
+               }
+
+               mbe_item = elm_multibuttonentry_first_item_get(rd->mbe);
+
+               while (mbe_item) {
+                       recipient_item = elm_object_item_data_get(mbe_item);
+
+                       if (recipient_item) {
+                               addrtype = get_address_type(recipient_item->recipient);
+
+                               if (addrtype == COMPOSER_UTIL_ADDRTYPE_EMAIL) {
+                                       is_mms = true;
+                                       break;
+                               }
+                       }
+
+                       mbe_item = elm_multibuttonentry_item_next_get(mbe_item);
+               }
+       } else if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               Eina_List *list = NULL;
+               RECIPIENT_ITEM_S *r_item = NULL;
+
+               EINA_LIST_FOREACH(cd->recipient_list, list, r_item) {
+                       if (r_item) {
+                               addrtype = get_address_type(r_item->recipient);
+
+                               if (addrtype == COMPOSER_UTIL_ADDRTYPE_EMAIL) {
+                                       cd->is_recipient_email = true;
+                                       is_mms = true;
+                                       break;
+                               }
+                       }
+               }
+       } else {
+               D_EMSG("Invalid composer ug mode = %d", cd->msg_ug_mode);
+       }
+
+       D_LEAVE;
+       return is_mms;
+}
+
+void msg_ui_composer_recipient_focus_set(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+       D_MSG_RETM_IF(rd->entry == NULL, "rd->entry is NULL");
+
+       if (check_condition_to_show_keypad(rd->cd) == true && check_condition_to_focus_entry(rd->cd) == true) {
+               MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)rd->cd;
+               if (cd->isMsgInternal) {
+                       msg_ui_composer_entry_input_panel_show(rd->entry);
+               } else {
+                       cd->show_keypad_on_launch = true;
+               }
+               elm_object_focus_set(rd->entry, EINA_TRUE);
+       }
+       D_LEAVE;
+}
+
+Evas_Object *msg_ui_composer_recipient_entry_get(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(rd == NULL, NULL, "rd is NULL");
+       D_MSG_RETVM_IF(rd->entry == NULL, NULL, "rd->entry is NULL");
+
+       return rd->entry;
+}
+
+void msg_ui_composer_recipient_expanded_set(RECIPIENT_S *rd, Eina_Bool expanded)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+
+       if (rd->mbe == NULL)
+               return;
+
+       elm_multibuttonentry_expanded_set(rd->mbe, expanded);
+       D_LEAVE;
+}
+
+Eina_List *msg_ui_composer_recipient_invalid_recipient_list_get(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(rd == NULL, NULL, "rd is NULL");
+       RECIPIENT_ITEM_S *r_item = NULL;
+       Elm_Object_Item *mbe_item = NULL;
+       Eina_List *invalid_list = NULL;
+
+       if (rd->mbe == NULL)
+               return NULL;
+
+       mbe_item = elm_multibuttonentry_first_item_get(rd->mbe);
+       while (mbe_item) {
+               r_item = elm_object_item_data_get(mbe_item);
+               if (!r_item) {
+                       D_EMSG("elm_multibuttonentry data is null");
+                       continue;
+               }
+
+               if (msg_ui_composer_recipient_vaild_check(r_item->recipient) == EINA_FALSE) {
+                       invalid_list = eina_list_append(invalid_list, r_item);
+               }
+
+               mbe_item = elm_multibuttonentry_item_next_get(mbe_item);
+       }
+
+       return invalid_list;
+}
+
+const char *msg_ui_composer_recipient_entry_text_get(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(rd == NULL, NULL, "recipient data is NULL");
+       D_MSG_RETVM_IF(rd->mbe == NULL, NULL, "mbe is NULL");
+
+       Evas_Object *entry = rd->entry;
+       if (entry == NULL)
+               return NULL;
+
+       const char *str = elm_entry_entry_get(entry);
+
+       D_SEC_MSG("string = %s", str);
+
+       D_LEAVE;
+       return str;
+}
+
+void msg_ui_composer_recipient_entry_text_set(RECIPIENT_S *rd, const char *str)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+
+       if (rd->entry == NULL)
+               return;
+
+       Evas_Object *entry = rd->entry;
+       elm_entry_entry_set(entry, str);
+       elm_entry_cursor_end_set(entry);
+
+       D_LEAVE;
+}
+
+RECIPIENT_S *msg_ui_composer_recipient_create(Evas_Object *p, RECIPIENT_MODE_E mode, void *data)
+{
+       D_ENTER;
+       RECIPIENT_S *rd;
+
+       rd = calloc(1, sizeof(RECIPIENT_S));
+       if (rd == NULL)
+               return NULL;
+
+       rd->parent = p;
+       rd->cd = data;
+       rd->mode = mode;
+
+       __msg_ui_composer_recipient_layout_create(rd, mode);
+
+       D_LEAVE;
+       return rd;
+}
+
+void msg_ui_composer_recipient_delete(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(rd == NULL, "rd is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)rd->cd;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       if (rd->notify_popup_idler) {
+               ecore_idler_del(rd->notify_popup_idler);
+               rd->notify_popup_idler = NULL;
+       }
+
+       if (rd->mbe_key_press_handler) {
+               ecore_event_handler_del(rd->mbe_key_press_handler);
+               rd->mbe_key_press_handler = NULL;
+       }
+
+       if (rd->resize_idler) {
+               ecore_idler_del(rd->resize_idler);
+               rd->resize_idler = NULL;
+       }
+
+       if (rd->entry_set_idler) {
+               ecore_idler_del(rd->entry_set_idler);
+               rd->entry_set_idler = NULL;
+       }
+
+       if (!cd->isclosed) {
+               /* change last focused entry to body entry */
+               Evas_Object *last_focused_entry = msg_ui_composer_last_focused_entry_get(cd);
+               if (rd->entry == last_focused_entry) {
+                       Evas_Object *body_entry = msg_ui_composer_last_body_entry_get(cd);
+                       msg_ui_composer_last_focused_entry_set(cd, body_entry);
+               }
+       }
+
+       MSGC_EVAS_OBJECT_DEL(rd->mbe);
+       MSGC_EVAS_OBJECT_DEL(rd->entry);
+       MSGC_EVAS_OBJECT_DEL(rd->contact_btn);
+       MSGC_EVAS_OBJECT_DEL(rd->plus_btn);
+       MSGC_EVAS_OBJECT_DEL(rd->ly_to);
+       MSGC_EVAS_OBJECT_DEL(rd->bx_main);
+
+#ifdef MSGC_SUPPORT_USE_OTHER_NUMBER
+       if (rd->change_number_popup) {
+               msg_ui_composer_destroy_popup(cd, rd->change_number_popup);
+               rd->change_number_popup = NULL;
+       }
+#endif
+
+       g_free(rd);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_recipient_clear(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(rd == NULL, "recipient data is NULL");
+       D_MSG_RETM_IF(rd->mbe == NULL, "Multibuttonentry is NULL");
+
+       RECIPIENT_ITEM_S *r_item = NULL;
+       Elm_Object_Item *mbe_item = NULL;
+
+       mbe_item = elm_multibuttonentry_first_item_get(rd->mbe);
+       while (mbe_item) {
+               r_item = elm_object_item_data_get(mbe_item);
+               if (r_item) {
+                       g_free(r_item);
+                       elm_object_item_data_set(mbe_item, NULL);
+               }
+
+               mbe_item = elm_multibuttonentry_item_next_get(mbe_item);
+       }
+
+       elm_multibuttonentry_clear(rd->mbe);
+
+#ifdef MSGC_SUPPORT_USE_OTHER_NUMBER
+       if (rd->change_number_popup) {
+               MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)rd->cd;
+               msg_ui_composer_destroy_popup(cd, rd->change_number_popup);
+               rd->change_number_popup = NULL;
+       }
+#endif
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_recipient_update(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(rd == NULL, "recipient data is NULL");
+       D_MSG_RETM_IF(rd->mbe == NULL, "MultiButtonEntry is NULL");
+
+       RECIPIENT_ITEM_S *r_item = NULL;
+       Elm_Object_Item *mbe_item = NULL;
+
+       mbe_item = elm_multibuttonentry_first_item_get(rd->mbe);
+       while (mbe_item) {
+               r_item = elm_object_item_data_get(mbe_item);
+               if (!r_item) {
+                       D_EMSG("elm_multibuttonentry data is null");
+                       mbe_item = elm_multibuttonentry_item_next_get(mbe_item);
+                       continue;
+               }
+
+               /* Check changed contact && change display name && recipient */
+               if (strlen(r_item->recipient) > 0) {
+
+                       bzero(r_item->display_name, sizeof(r_item->display_name));
+                       r_item->index = get_contact_index_by_recipient(r_item->recipient);
+
+                       if (r_item->index > 0) {
+                               if (get_contact_display_name_by_index(r_item->index, r_item->display_name, sizeof(r_item->display_name)-1) != COMPOSER_RETURN_SUCCESS) {
+                                       strncpy(r_item->display_name, r_item->recipient, sizeof(r_item->display_name)-1);
+                               }
+                       } else {
+                               strncpy(r_item->display_name, r_item->recipient, sizeof(r_item->display_name)-1);
+                       }
+                       elm_object_item_text_set(mbe_item, r_item->display_name);
+
+               } else if (strlen(r_item->display_name) > 0) {
+
+                       bzero(r_item->recipient, sizeof(r_item->recipient));
+                       r_item->index = get_contact_index_by_name(r_item->display_name);
+                       if (r_item->index > 0) {
+                               char tmp_display_name1[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX+1] = {0,};
+                               char tmp_display_name2[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX+1] = {0,};
+
+                               get_contact_display_name_by_index(r_item->index, tmp_display_name1, sizeof(tmp_display_name1)-1);
+                               D_SEC_MSG("display_name = %s, get contact displayname = %s", r_item->display_name, tmp_display_name1);
+                               remove_space(r_item->display_name, tmp_display_name2, sizeof(tmp_display_name2)-1);
+                               remove_space(tmp_display_name1, tmp_display_name1, sizeof(tmp_display_name1)-1);
+                               if (g_ascii_strncasecmp(tmp_display_name1, tmp_display_name2, strlen(tmp_display_name1)) == 0) {
+                                       get_contact_default_recipient_by_index(r_item->index, r_item->recipient , sizeof(r_item->recipient)-1);
+                                       r_item->type = msg_ui_composer_recipient_type_get(r_item->recipient);
+                               } else {
+                                       r_item->type = COMPOSER_RECP_ADDR_INVALID;
+                                       r_item->index = 0;
+                               }
+                       } else {
+                               D_SEC_EMSG("No contact id of %s", r_item->display_name);
+                       }
+               }
+
+               D_MSG("type [%d]", r_item->type);
+               D_MSG("index [%d]", r_item->index);
+               D_SEC_MSG("recipient [%s]", r_item->recipient);
+               D_SEC_MSG("display_name [%s]", r_item->display_name);
+
+               mbe_item = elm_multibuttonentry_item_next_get(mbe_item);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_recipient_update_recipient_height(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(rd == NULL, "recipient data is NULL");
+       D_MSG_RETM_IF(rd->cd == NULL, "Composer data is NULL");
+
+       /* Delete the idler callback first defore creating one mroe */
+       if (rd->resize_idler) {
+               ecore_idler_del(rd->resize_idler);
+               rd->resize_idler = NULL;
+       }
+
+       rd->resize_idler = ecore_idler_add(msg_ui_composer_recipient_ht_resize_idler, rd->cd);
+
+       return;
+}
+
+void msg_ui_composer_recipient_hide_mbe_and_update_entry(RECIPIENT_S *rd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(rd == NULL, "recipient data is NULL");
+       D_MSG_RETM_IF(rd->cd == NULL, "Composer data is NULL");
+
+       msg_ui_composer_show_hide_mbe(rd, false);
+
+       /* This means the string which will displayed in the TO entry is not
+        * the actual string entered by user, It is just like a guided string
+        * So that next when TO entry is focused the displayed string can be removed */
+       rd->was_entry_empty = true;
+
+       const Eina_List *list = elm_multibuttonentry_items_get(rd->mbe);
+
+       int count = eina_list_count(list);
+       D_MSG("Number of items in mbe is = %d", count);
+
+       if (count > 0) {
+               Elm_Object_Item *item = elm_multibuttonentry_first_item_get(rd->mbe);
+               const char *name = elm_object_item_text_get(item);
+               D_MSG("display_name = %s", name);
+
+               if (count > 1) {
+                       char display_name[DEF_BUF_LEN + 1] = {0,};
+                       char *str = "%s + %d";
+
+                       snprintf(display_name, sizeof(display_name), str, name, (count - 1));
+
+                       D_MSG("setting display_name = %s", display_name);
+                       elm_entry_entry_set(rd->entry, display_name);
+               } else {
+                       D_MSG("setting display_name = %s", name);
+                       elm_entry_entry_set(rd->entry, name);
+               }
+
+               msg_ui_composer_predictsearch_clear(rd->cd);
+       }
+       elm_object_signal_emit(rd->entry, "elm,state,clear,hidden", "");
+       D_MSG("rd->was_entry_empty = %d", rd->was_entry_empty);
+       return;
+}
+
+static Eina_Bool __msgc_recipient_entry_set_idler(void *data)
+{
+       D_ENTER;
+       RECIPIENT_S *rd = (RECIPIENT_S *)data;
+       D_MSG_RETVM_IF(rd == NULL, EINA_FALSE, "rd is NULL");
+
+       rd->entry_set_idler = NULL;
+
+       if (rd->was_entry_empty == false)
+               elm_entry_entry_set(rd->entry, "");
+
+       D_LEAVE;
+       return EINA_FALSE;
+}
+
+void msg_ui_composer_recipient_add_recipient_entry_to_mbe(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       RECIPIENT_S *rd = cd->recipient;
+       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+       if (false == elm_entry_is_empty(rd->entry)) {
+               char *recipient_str = NULL;
+
+               recipient_str = elm_entry_markup_to_utf8(elm_entry_entry_get(rd->entry));
+               if (recipient_str == NULL) {
+                       D_EMSG("Unable to get the stiring from entry");
+                       return;
+               }
+
+               D_MSG("recipient_str = %s, length = %d", recipient_str, strlen(recipient_str));
+
+               /* This is a syncronus api, this will internally call mbe_filter_cb()
+                * If the item is not valid then idler is created for displaying
+                * the invalid popup */
+
+               char *markup_str = elm_entry_utf8_to_markup(recipient_str);
+
+               elm_multibuttonentry_item_append(rd->mbe, markup_str, NULL, NULL);
+
+               MSG_FREE(markup_str);
+
+               /* String is successfully added */
+               if ((NULL == rd->notify_popup_idler) && (false == rd->is_required_address_popup)) {
+                       /* if entry is set as empty("") at here, entry changed_cb is called directly and plus icon is changed to contact_btn and accordingly entry focused_cb is called.
+                       So, in order to show keypad on focused_cb set entry as null in idler (valid recipient case). It delays calling entry focused_cb. Ex> add number on recipient > click plus btn */
+                       /*elm_entry_entry_set(rd->entry, "");*/
+                       if (rd->entry_set_idler) {
+                               ecore_idler_del(rd->entry_set_idler);
+                               rd->entry_set_idler = NULL;
+                       }
+                       rd->entry_set_idler = ecore_idler_add(__msgc_recipient_entry_set_idler, rd);
+               }
+
+               free(recipient_str);
+       }
+       D_LEAVE;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_append(RECIPIENT_S *rd, const char *recipient, int index)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(rd == NULL, COMPOSER_RETURN_FAIL, "recipient data is NULL");
+       D_MSG_RETVM_IF(rd->mbe == NULL, COMPOSER_RETURN_FAIL, "mbe is NULL");
+       D_MSG_RETVM_IF(recipient == NULL, COMPOSER_RETURN_FAIL, "recipient is NULL");
+       D_SEC_MSG("Recipient Append Parameter [recipient = %s, index = %d]", recipient, index);
+
+       RECIPIENT_ITEM_S *recipient_item = NULL;
+       COMPOSER_RECP_ADDR_E type;
+       int tmp_index;
+       char tmp_recipient[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX+1] = {0,};
+       char tmp_displayname[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX+1] = {0,};
+       bool ignore_delimiter = false;
+
+       /*Get recipient*/
+       strncpy(tmp_recipient, recipient, sizeof(tmp_recipient)-1);
+
+       /*get type*/
+       type = msg_ui_composer_recipient_type_get(tmp_recipient);
+
+       /*Get index*/
+       if (index > 0) {
+               tmp_index = index;
+       } else {
+               tmp_index = get_contact_index_by_recipient(tmp_recipient);
+       }
+
+       /*get display name*/
+       if (tmp_index > 0) {
+               if (get_contact_display_name_by_index(tmp_index, tmp_displayname, sizeof(tmp_displayname)) != COMPOSER_RETURN_SUCCESS) {
+                       strncpy(tmp_displayname, tmp_recipient, sizeof(tmp_displayname)-1);
+               } else {
+                       if (check_delimiter_character(tmp_displayname))
+                               ignore_delimiter = true;
+               }
+       } else {
+               strncpy(tmp_displayname, tmp_recipient, sizeof(tmp_displayname)-1);
+       }
+
+       /*make recipient item*/
+       recipient_item = __msg_ui_composer_recipient_item_make(type, tmp_index, tmp_displayname, tmp_recipient, NULL);
+       if (recipient_item == NULL) {
+               D_MSG("Fail of msg_ui_composer_recipient_item_make");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       if (ignore_delimiter)
+               recipient_item->ignore_delimiter = true;
+
+       /*append recipient item to mbe*/
+       char *markup_str = elm_entry_utf8_to_markup(recipient_item->display_name);
+
+       if (elm_multibuttonentry_item_append(rd->mbe, markup_str, NULL, recipient_item) == NULL) {
+               D_EMSG("error elm_multibuttonentry_item_add!!");
+               MSG_FREE(markup_str);
+
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       MSG_FREE(markup_str);
+
+       /* MBE should be shown only when entry is focus.
+        * When enter is pressed on recipient entry first we will add that
+        * number to mbe and then given focus to next entry, in this case if
+        * we show the MBE then it will case flicker effect. */
+       if (false == rd->is_entry_activated) {
+               if (msg_ui_composer_last_focus_is_recipient(rd->cd) == true) {
+                       msg_ui_composer_show_hide_mbe(rd, true);
+               } else {
+                       msg_ui_composer_show_hide_mbe(rd, false);
+               }
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+void msg_ui_composer_show_hide_mbe(RECIPIENT_S *rd, bool show)
+{
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)rd->cd;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+       Evas_Object *recipient_to_layout = NULL;
+       Evas_Object *background = NULL;
+
+       recipient_to_layout = elm_object_part_content_get(rd->ly_to, "img.recipient.main.bg_color");
+       background = elm_object_part_content_get(cd->content_layout, "swl.background.body");
+
+       if (show) {
+               edje_object_signal_emit(_EDJ(rd->ly_to), "show_to_mbe", "*");
+       } else {
+               edje_object_signal_emit(_EDJ(rd->ly_to), "hide_to_mbe", "*");
+       }
+
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_read_data(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "cd is NULL");
+       int r_count = 0;
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_SMS) {
+               if (msg_ui_composer_recipient_is_mms(cd) == true) {
+                       D_MSG("message is MMS");
+                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_CHANGED_MMS);
+                       cd->msg_type = COMPOSER_MSG_TYPE_MMS;
+               }
+       }
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               Eina_List *recipient_list = cd->recipient_list;
+
+               if (recipient_list) {
+                       int recipient_cnt = eina_list_count(recipient_list);
+                       int i = 0;
+                       RECIPIENT_ITEM_S *r_item = NULL;
+                       D_MSG("recipient_cnt = %d", recipient_cnt);
+
+                       for (i = 0; i < recipient_cnt; i++) {
+                               r_item = (RECIPIENT_ITEM_S *)eina_list_nth(recipient_list, i);
+                               if (r_item) {
+                                       D_SEC_MSG("r_item->recipient = %s", r_item->recipient);
+                                       if (msg_ui_composer_message_add_address(r_item->recipient) == COMPOSER_RETURN_SUCCESS)
+                                               r_count++;
+                               } else {
+                                       D_EMSG("r_item is null");
+                               }
+                       }
+               } else {
+                       D_EMSG("There is no recipient address");
+               }
+       } else {
+               RECIPIENT_S *rd = NULL;
+               RECIPIENT_ITEM_S *r_item = NULL;
+               Elm_Object_Item *mbe_item = NULL;
+
+               rd = cd->recipient;
+               if (!rd) {
+                       D_EMSG("rd is NULL");
+                       return COMPOSER_RETURN_FAIL;
+               }
+
+               if (rd->was_entry_empty == false)
+                       msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+
+               mbe_item = elm_multibuttonentry_first_item_get(rd->mbe);
+
+               const char *entry_str = msg_ui_composer_recipient_entry_text_get(cd->recipient);
+               if (!mbe_item && entry_str && strlen(entry_str)) {
+                       msg_ui_composer_message_add_address((char *)entry_str);
+                       return COMPOSER_RETURN_SUCCESS;
+               }
+
+               int recipient_cnt = msg_ui_composer_common_recipient_count_get(cd);
+               int i = 0;
+               D_MSG("recipient_cnt = %d, cd->recipient_max_count : %d", recipient_cnt, cd->recipient_max_count);
+
+               /* This is added when added recipient count is over than recipient_max_count.
+                       It can just save the max recipient list count. */
+               if (recipient_cnt > cd->recipient_max_count) {
+                       recipient_cnt = cd->recipient_max_count;
+               }
+
+               for (i = 0; i < recipient_cnt; i++) {
+                       if (mbe_item) {
+                               r_item = elm_object_item_data_get(mbe_item);
+                               if (r_item) {
+                                       D_SEC_MSG("[%s]", r_item->recipient);
+                                       if (msg_ui_composer_message_add_address(r_item->recipient) == COMPOSER_RETURN_SUCCESS)
+                                               r_count++;
+                               }
+                               mbe_item = elm_multibuttonentry_item_next_get(mbe_item);
+                       } else {
+                               D_EMSG("mbe_item is NULL.");
+                               break;
+                       }
+               }
+       }
+
+       if (r_count == 0)
+               return COMPOSER_RETURN_FAIL;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+char *msg_ui_composer_get_recipient_str(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       RECIPIENT_S *r = NULL;
+       RECIPIENT_ITEM_S *r_item = NULL;
+       Elm_Object_Item *mbe_item = NULL;
+       int r_count = 0;
+       char *recipient_str = NULL;
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_BUBBLE_COMPOSER) {
+               Eina_List *recipient_list = cd->recipient_list;
+
+               if (recipient_list) {
+                       int recipient_cnt = eina_list_count(recipient_list);
+                       int i = 0;
+                       RECIPIENT_ITEM_S *r_item = NULL;
+                       D_MSG("recipient_cnt = %d", recipient_cnt);
+
+                       if (recipient_cnt)
+                               recipient_str = (char *)calloc(recipient_cnt, COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX + 1);
+
+                       if (!recipient_str) {
+                               D_EMSG("calloc is failed");
+                               return NULL;
+                       }
+
+                       for (i = 0; i < recipient_cnt; i++) {
+                               r_item = (RECIPIENT_ITEM_S *)eina_list_nth(recipient_list, i);
+                               if (r_item) {
+                                       if (strlen(r_item->display_name)) {
+                                               strncat(recipient_str, r_item->display_name, sizeof(r_item->display_name));
+                                       } else {
+                                               strncat(recipient_str, r_item->recipient, sizeof(r_item->recipient));
+                                       }
+                                       strncat(recipient_str, ";", 1);
+
+                               } else {
+                                       D_EMSG("r_item is null");
+                               }
+                       }
+               } else {
+                       D_EMSG("There is no recipient address");
+               }
+       } else {
+               r = cd->recipient;
+               D_MSG_RETVM_IF(r == NULL, NULL, "rd is NULL");
+
+               int recipient_cnt = msg_ui_composer_recipient_count_get(r);
+               if (recipient_cnt)
+                       recipient_str = (char *)calloc(recipient_cnt, COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX + 1);
+
+               if (!recipient_str) {
+                       D_EMSG("calloc is failed");
+                       return NULL;
+               }
+
+               mbe_item = elm_multibuttonentry_first_item_get(r->mbe);
+               while (mbe_item) {
+                       r_item = elm_object_item_data_get(mbe_item);
+                       if (r_item) {
+                               if (r_count >= recipient_cnt) {
+                                       D_MSG("r_count is %d", r_count);
+                                       break;
+                               }
+
+                               if (strlen(r_item->display_name)) {
+                                       strncat(recipient_str, r_item->display_name, sizeof(r_item->display_name));
+                               } else {
+                                       strncat(recipient_str, r_item->recipient, sizeof(r_item->recipient));
+                               }
+                               strncat(recipient_str, ";", 1);
+                               r_count++;
+                       } else {
+                               D_EMSG("r_item is null");
+                       }
+
+                       mbe_item = elm_multibuttonentry_item_next_get(mbe_item);
+               }
+       }
+
+       if (recipient_str) {
+               D_SEC_MSG("recipient_str = (%s)", recipient_str);
+               int str_len = strlen(recipient_str);
+               if (str_len) {
+                       if (recipient_str[str_len - 1] == ';')
+                               recipient_str[str_len - 1] = '\0';
+               }
+       }
+
+       D_LEAVE;
+       return recipient_str;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_set_recipient_list(MSG_COMPOSER_VIEW_DATA_S *cd, msg_thread_id_t thread_id)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "cd is NULL");
+
+       /* set recipient list for bubble composer */
+       msg_struct_list_s addrList;
+       int i = 0;
+
+       memset(&addrList, 0x00, sizeof(msg_struct_list_s));
+
+       if (msg_get_address_list(cd->msg_handle, thread_id, &addrList) != COMPOSER_RETURN_SUCCESS)
+               return COMPOSER_RETURN_FAIL;
+
+       char address[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX + 1] = {0,};
+       char display_name[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX + 1] = {0,};
+
+       int address_len = sizeof(address);
+       int display_len = sizeof(display_name);
+
+       for (i = 0; i < addrList.nCount; i++) {
+               memset(address, 0, address_len);
+               memset(display_name, 0, display_len);
+
+               msg_get_str_value(addrList.msg_struct_info[i], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, address, COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX);
+               msg_get_str_value(addrList.msg_struct_info[i], MSG_ADDRESS_INFO_DISPLAYNAME_STR, display_name, COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX);
+
+               if (msg_ui_composer_recipient_add_recipient_list(cd, address, display_name, 0) != COMPOSER_RETURN_SUCCESS) {
+                       msg_release_list_struct(&addrList);
+                       return COMPOSER_RETURN_FAIL;
+               }
+       }
+
+       Eina_List *contact_list = NULL;
+       Eina_List *recipient_list = NULL;
+
+       char *r_item1 = NULL;
+       RECIPIENT_ITEM_S *r_item2 = NULL;
+
+       EINA_LIST_FOREACH(cd->recipient_list_from_contacts, contact_list, r_item1) {
+               EINA_LIST_FOREACH(cd->recipient_list, recipient_list, r_item2) {
+                       int len1 = strlen(r_item1);
+                       int len2 = strlen(r_item2->recipient);
+                       if (len1 > 10 && len2 > 10) {
+                               if (!strcmp(r_item1 + len1 - 10, r_item2->recipient + len2 - 10)) {
+                                       D_MSG(" r_item1 is %s and r_item2->recipient %s", r_item1, r_item2->recipient);
+                                       memset(r_item2->recipient, '\0', COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX+1);
+                                       strncpy(r_item2->recipient, r_item1, strlen(r_item1));
+                               }
+                       }
+               }
+       }
+
+       msg_release_list_struct(&addrList);
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_add_recipient_list(MSG_COMPOSER_VIEW_DATA_S *cd, const char *recipient, const char *display, int index)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "cd is NULL");
+       D_MSG_RETVM_IF(recipient == NULL, COMPOSER_RETURN_FAIL, "recipient is NULL");
+       D_MSG_RETVM_IF(!strlen(recipient), COMPOSER_RETURN_FAIL, "strlen(recipient) is 0");
+
+       RECIPIENT_ITEM_S *r_item = NULL;
+
+       r_item = (RECIPIENT_ITEM_S *)calloc(1, sizeof(RECIPIENT_ITEM_S));
+       if (!r_item) {
+               D_EMSG("calloc is failed");
+               return COMPOSER_RETURN_FAIL;
+       }
+       strncpy(r_item->recipient, recipient, sizeof(r_item->recipient)-1);
+
+       if (display && strlen(display))
+               strncpy(r_item->display_name, display, sizeof(r_item->display_name)-1);
+
+       if (index > 0)
+               r_item->index = index;
+
+       cd->recipient_list = eina_list_append(cd->recipient_list, r_item);
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_clear_recipient_list(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "cd is NULL");
+       if (cd->recipient_list == NULL) {
+               D_MSG("there is no recipient_list");
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       D_MSG("recipient_cnt = %d", eina_list_count(cd->recipient_list));
+
+       RECIPIENT_ITEM_S *r_item = NULL;
+
+       EINA_LIST_FREE(cd->recipient_list, r_item) {
+               if (r_item)
+                       g_free(r_item);
+               else
+                       D_EMSG("r_item is null");
+       }
+
+       char *address = NULL;
+       EINA_LIST_FREE(cd->recipient_list_from_contacts, address) {
+               if (address)
+                       free(address);
+       }
+
+       cd->recipient_list = NULL;
+       cd->recipient_list_from_contacts = NULL;
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_add_invalid_recipient_list(MSG_COMPOSER_VIEW_DATA_S *cd, const char *recipient)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "cd is NULL");
+       D_MSG_RETVM_IF(recipient == NULL, COMPOSER_RETURN_FAIL, "recipient is NULL");
+
+       cd->invalid_recipient_list = eina_list_append(cd->invalid_recipient_list, strdup(recipient));
+
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+void msg_ui_composer_recipient_clear_invalid_recipient_list(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "param is NULL");
+       if (cd->invalid_recipient_list == NULL) {
+               D_MSG("there is no recipient_list");
+               return;
+       }
+
+       char *address = NULL;
+       EINA_LIST_FREE(cd->invalid_recipient_list, address) {
+               if (address)
+                       free(address);
+       }
+
+       cd->invalid_recipient_list = NULL;
+}
+
+/* Notice: caller should free returned string */
+static char *__msgc_recipient_get_str_invalid_recipient(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       D_MSG_RETVM_IF(cd->invalid_recipient_list == NULL, NULL, "cd->invalid_recipient_list is NULL");
+       char *recipient_buf = NULL;
+
+       recipient_buf = (char *)calloc(DEF_BUF_LEN_1024 + 1, sizeof(char));
+
+       if (recipient_buf) {
+               char *new_line_char = "\n";
+               char *delimiter = ",";
+               char *offset = NULL;
+               int total_str_len = 0;
+               int recipient_len = 0;
+               int new_line_len = strlen(new_line_char);
+               int delimiter_len = strlen(delimiter);
+               int count = eina_list_count(cd->invalid_recipient_list);
+               int buf_len = DEF_BUF_LEN_1024 + 1; /* initializing it to the allocated size of recipient_buf */
+               int i = 0;
+
+               for (i = 0; i < count; i++) {
+                       char *recipient = (char *)eina_list_nth(cd->invalid_recipient_list, i);
+                       if (recipient) {
+                               recipient_len = strlen(recipient);
+                               /* check buf size in order to realloc memory */
+                               if ((total_str_len + recipient_len + new_line_len + delimiter_len) >= buf_len) {
+                                       char *new_buf = NULL;
+
+                                       buf_len = total_str_len + recipient_len + new_line_len + delimiter_len + 1;
+                                       new_buf = (char *)realloc(recipient_buf, buf_len * sizeof(char));
+                                       if (!new_buf) {
+                                               D_EMSG("realloc is failed");
+                                               free(recipient_buf);
+                                               return NULL;
+                                       } else {
+                                               D_MSG("new buf (%s)", new_buf);
+                                               recipient_buf = new_buf;
+                                       }
+                               }
+
+                               offset = recipient_buf + strlen(recipient_buf);
+                               g_utf8_strncpy(offset, recipient, g_utf8_strlen(recipient, -1));
+                               total_str_len += recipient_len;
+
+                               /* add new line except adding last recipient case */
+                               /* add delimiter except adding only one recipient and last recipient case */
+                               if ((i + 1) < count) {
+                                       offset = recipient_buf + strlen(recipient_buf);
+                                       g_utf8_strncpy(offset, delimiter, g_utf8_strlen(delimiter, -1));
+                                       total_str_len += delimiter_len;
+                                       offset += delimiter_len;
+                                       g_utf8_strncpy(offset, new_line_char, g_utf8_strlen(new_line_char, -1));
+                                       total_str_len += new_line_len;
+                               }
+
+                       } else {
+                               D_EMSG("recipient is NULL");
+                       }
+               }
+
+               D_SEC_MSG("recipient_buf(%s)", recipient_buf);
+       } else {
+               D_EMSG("calloc is failed");
+       }
+
+       D_LEAVE;
+       return recipient_buf;
+}
+
+/* Notice: caller should free returned string */
+char *msg_ui_composer_recipient_get_invalid_recipient_popup_str(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, NULL, "cd is NULL");
+       D_MSG_RETVM_IF(cd->invalid_recipient_list == NULL, NULL, "cd->invalid_recipient_list is NULL");
+
+       Evas_Object *recipient_entry = NULL;
+       RECIPIENT_S *rd = (RECIPIENT_S *)(cd->recipient);
+
+       D_MSG_RETVM_IF(rd == NULL, NULL, "Recipient data is NULL");
+
+       recipient_entry = rd->entry;
+
+       char *recipient_str = NULL;
+       char *popup_str = NULL;
+       char recipient_str_buf[COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX * 4 + 1] = {0,};
+
+       recipient_str = __msgc_recipient_get_str_invalid_recipient(cd);
+
+       /* free cd->invalid_recipient_list */
+       msg_ui_composer_recipient_clear_invalid_recipient_list(cd);
+
+       if (recipient_str) {
+               int recipient_char_len = g_utf8_strlen(recipient_str, -1);
+
+               if (recipient_char_len > COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX) {
+                       g_utf8_strncpy(recipient_str_buf, recipient_str, COMPOSER_RECIPIENT_ADDRESS_VAL_LEN_MAX);
+               } else {
+                       g_utf8_strncpy(recipient_str_buf, recipient_str, recipient_char_len);
+               }
+
+               if (recipient_entry) {
+                       elm_entry_entry_set(recipient_entry, recipient_str_buf);
+                       elm_entry_cursor_end_set(recipient_entry);
+               }
+
+               popup_str = "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID";
+
+               free(recipient_str);
+               recipient_str = NULL;
+       }
+
+       return popup_str;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_recipient_set_loaded_data(void *data, const char *recipient, int index)
+{
+       D_MSG_RETVM_IF(data == NULL, COMPOSER_RETURN_FAIL, "data is NULL");
+       D_MSG_RETVM_IF(recipient == NULL, COMPOSER_RETURN_FAIL, "recipient is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       if (msg_ui_composer_recipient_count_get(cd->recipient) >= cd->recipient_max_count)
+               return COMPOSER_RETURN_RECIPIENT_COUNTMAX;
+
+       if (msg_ui_composer_recipient_duplicate_check(cd->recipient, recipient) == COMPOSER_RETURN_RECIPIENT_DUPLICATE)
+               return COMPOSER_RETURN_RECIPIENT_DUPLICATE;
+
+       if (msg_ui_composer_recipient_vaild_check(recipient) == EINA_FALSE)
+               return COMPOSER_RETURN_RECIPIENT_INVALID;
+       else
+               return msg_ui_composer_recipient_append(cd->recipient, recipient, index);
+}
+
diff --git a/composer/src/ui-composer/msg-ui-composer-subject.c b/composer/src/ui-composer/msg-ui-composer-subject.c
new file mode 100755 (executable)
index 0000000..287dc1c
--- /dev/null
@@ -0,0 +1,522 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 <Elementary.h>
+#include "msg-ui-composer-subject.h"
+#include "msg-ui-composer-recipient.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-message.h"
+#include "msg-ui-composer-body.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-composer-attachment.h"
+#include "msg-ui-composer-main.h"      /*for page duration, it should be removed if more option concept is changed*/
+#include "msg-ui-composer-body-page.h"
+
+/* defines*/
+#define MSGC_SUBJECT_CHAR_MAX  40
+#define MSGC_SUBJECT_BYTE_MAX  0
+
+/* function definitions*/
+static void __msg_composer_subject_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 Invalid");
+
+       if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true) {
+               elm_entry_context_menu_disabled_set(obj, EINA_TRUE);
+       } else {
+               elm_entry_context_menu_disabled_set(obj, EINA_FALSE);
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_composer_subject_entry_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+
+               RECIPIENT_S *rd = cd->recipient;
+               D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+               if (false == rd->was_entry_empty)
+                       msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+
+               if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == false) {
+                       msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+                       msg_ui_composer_recipient_destroy_no_recipient_icon(cd->recipient);
+               }
+       }
+
+       if (elm_entry_input_panel_enabled_get(obj) == EINA_FALSE) {
+               if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == false) {
+                       msg_ui_composer_entry_input_panel_show(obj);
+               }
+       }
+
+       msg_ui_composer_body_input_field_focus_set(cd, false);
+       msg_ui_composer_body_media_layout_focus_hide(cd, COMPOSER_MEDIA_HIDE_ALL, -1);
+
+       msg_ui_composer_hide_attach_focus(cd);
+
+       D_LEAVE;
+}
+
+static void __msg_composer_subject_entry_changed_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 Invalid");
+
+       msg_ui_composer_message_type_check_and_change(cd);
+
+       if (msg_ui_composer_common_is_send_possible(cd)) {
+               msg_ui_composer_send_btn_disabled_set(cd, EINA_FALSE);
+               msg_ui_composer_body_update_send_btn_icon(cd, false);
+       } else {
+               msg_ui_composer_send_btn_disabled_set(cd, EINA_TRUE);
+               msg_ui_composer_body_update_send_btn_icon(cd, true);
+       }
+
+       msg_ui_composer_body_info_area_update(cd);
+
+       D_LEAVE;
+}
+
+static void __msg_composer_subject_entry_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG("FOCUS GET = %d", elm_object_focus_get(obj));
+
+       if (cd->isclosed) {
+               D_MSG("ug close case. return.");
+               return;
+       }
+
+       if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true) {
+               /* 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;
+       }
+
+       /* change body scroller size */
+       int keypad_h = msg_ui_composer_get_keypad_height(obj);
+       msg_ui_composer_change_body_scroll_size(cd, keypad_h);
+
+       msg_ui_composer_last_focused_entry_set(data, cd->sub_data.entry);
+       msg_ui_composer_body_media_layout_focus_hide(cd, COMPOSER_MEDIA_HIDE_ALL, -1);
+       msg_ui_composer_body_input_field_focus_set(cd, false);
+       D_LEAVE;
+}
+
+static void __msg_composer_subject_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 Invalid");
+
+
+       D_LEAVE;
+}
+
+static void __msg_composer_subject_entry_activated_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_body_focus_set(cd, 0);
+
+       D_LEAVE;
+}
+
+static void __msg_composer_subject_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_remove_subject(void *data)
+{
+       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_remove_subject_layout(cd);
+
+       if (!msg_ui_composer_common_is_send_possible(cd)) {
+               msg_ui_composer_send_btn_disabled_set(cd, EINA_TRUE);
+               msg_ui_composer_body_update_send_btn_icon(cd, true);
+       } else {
+               msg_ui_composer_send_btn_disabled_set(cd, EINA_FALSE);
+               msg_ui_composer_body_update_send_btn_icon(cd, false);
+               msg_ui_composer_body_info_area_update(cd);
+       }
+
+       if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true) {
+               if (msg_ui_composer_recipient_addr_type_get(cd->recipient) == COMPOSER_RECP_ADDR_INVALID) {
+                       msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID");
+               } else {
+                       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+               }
+       } else {
+               /* if added recipient is not invalid number, focus change to the first page of message body*/
+               MSG_COMPOSER_BODY_PAGE_S *first_page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(cd->body_data.page_list, 0);
+               if (first_page_data) {
+                       if (!elm_object_focus_get(first_page_data->entry)) {
+                               D_MSG("ENTRY FOCUS CHANGE");
+                               msg_ui_composer_last_focused_entry_set(cd, first_page_data->entry);
+                               cd->current_edit_entry = 0;
+
+                               elm_entry_cursor_end_set(first_page_data->entry);
+                               msg_ui_composer_last_focus_load(cd);
+                       }
+               }
+
+               if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+                       RECIPIENT_S *rd = cd->recipient;
+                       D_MSG_RETM_IF(rd == NULL, "Recipient Data is NULL");
+
+                       if (false == rd->was_entry_empty)
+                               msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+
+                       msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+                       msg_ui_composer_recipient_destroy_no_recipient_icon(cd->recipient);
+               }
+       }
+
+       msg_ui_composer_message_type_check_and_change(cd);
+
+       D_LEAVE;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_remove_subject_layout(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_NULL_POINTER, "Composer Data is Invalid");
+
+       if (cd->isSubject) {
+               if (cd->sub_data.entry) {
+                       Evas_Object *last_entry = msg_ui_composer_last_focused_entry_get(cd);
+                       if (last_entry && (last_entry == cd->sub_data.entry)) {
+                               msg_ui_composer_last_focused_entry_set(cd, NULL);
+                       }
+
+                       evas_object_smart_callback_del(cd->sub_data.entry, "changed", __msg_composer_subject_entry_changed_cb);
+                       evas_object_smart_callback_del(cd->sub_data.entry, "preedit,changed", __msg_composer_subject_entry_changed_cb);
+                       evas_object_smart_callback_del(cd->sub_data.entry, "focused", __msg_composer_subject_entry_focused_cb);
+                       evas_object_smart_callback_del(cd->sub_data.entry, "unfocused", __msg_composer_subject_entry_unfocused_cb);
+
+                       evas_object_del(cd->sub_data.entry);
+                       cd->sub_data.entry = NULL;
+               }
+
+               if (cd->sub_data.layout) {
+                       evas_object_del(cd->sub_data.layout);
+                       cd->sub_data.layout = NULL;
+               }
+
+               cd->isSubject = false;
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_subject_clear(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       return msg_ui_composer_remove_subject_layout(cd);
+}
+
+void msg_ui_composer_subject_focus_set(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+       SUBJECT_S *sd = &cd->sub_data;
+
+       if (cd->isSubject && sd->entry)
+               elm_object_focus_set(sd->entry, EINA_TRUE);
+       else
+               D_EMSG("sd->entry (%p)", sd->entry);
+
+       D_LEAVE;
+}
+
+Evas_Object *msg_ui_composer_create_subject_entry(Evas_Object *parent, MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+
+       Evas_Object *entry = NULL;
+       Ecore_IMF_Context *entry_ctx = NULL;
+       static Elm_Entry_Filter_Limit_Size limit_filter_data;
+
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer Data is Invalid");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "Parent Layout is Invalid");
+
+       entry = elm_entry_add(parent);
+       D_MSG_RETVM_IF(entry == NULL, NULL, "Fail to Create Entry");
+       elm_object_signal_emit(entry, "elm,action,hide,search_icon", "");
+       elm_entry_scrollable_set(entry, EINA_TRUE);
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+       evas_object_size_hint_weight_set(entry, 0.0, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(entry, 0.0, EVAS_HINT_FILL);
+
+       char guide_text_buf[DEF_BUF_LEN_S + 1] = {0,};
+       char font_style[DEF_BUF_LEN_S + 1] = {0,};
+       int font_size = msg_ui_composer_get_font_size(COMPOSER_TYPE_SUBJECT);
+       if (font_size > 0) {
+               font_size = (font_size <= 48 ? font_size : 48);
+               snprintf(font_style, sizeof(font_style), "DEFAULT='font_size=%d'", font_size);
+               snprintf(guide_text_buf, sizeof(guide_text_buf), "<font_size=%d>%s", font_size, _MSGSTR("IDS_MSGC_BODY_ENTER_SUBJECT"));
+       } else {
+               snprintf(guide_text_buf, sizeof(guide_text_buf), "<font_size=%d>%s", MSGC_SUBJECT_FONT_SIZE, _MSGSTR("IDS_MSGC_BODY_ENTER_SUBJECT"));
+               snprintf(font_style, sizeof(font_style), "DEFAULT='font_size=%d'", MSGC_SUBJECT_FONT_SIZE);
+       }
+       elm_object_part_text_set(entry, "elm.guide", guide_text_buf);
+       elm_entry_text_style_user_push(entry, font_style);
+
+       elm_entry_prediction_allow_set(entry, EINA_TRUE);
+       elm_entry_autocapital_type_set(entry, ELM_AUTOCAPITAL_TYPE_SENTENCE);
+       elm_entry_input_panel_return_key_type_set(entry, ELM_INPUT_PANEL_RETURN_KEY_TYPE_NEXT);
+
+       evas_object_show(entry);
+
+       /* add entry filter for changing text to UTF8 if it is markups */
+       limit_filter_data.max_char_count = MSGC_SUBJECT_CHAR_MAX;
+       limit_filter_data.max_byte_count = MSGC_SUBJECT_BYTE_MAX;
+       elm_entry_markup_filter_append(entry, msg_composer_entry_filter_remove_markup, cd);
+       elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data);
+
+       evas_object_smart_callback_add(entry, "changed", __msg_composer_subject_entry_changed_cb, cd);
+       evas_object_smart_callback_add(entry, "preedit,changed", __msg_composer_subject_entry_changed_cb, cd);
+       evas_object_smart_callback_add(entry, "focused", __msg_composer_subject_entry_focused_cb, cd);
+       evas_object_smart_callback_add(entry, "unfocused", __msg_composer_subject_entry_unfocused_cb, cd);
+       evas_object_smart_callback_add(entry, "press", __msg_composer_subject_entry_press_cb, cd);
+       evas_object_smart_callback_add(entry, "clicked", __msg_composer_subject_entry_clicked_cb, cd);
+       evas_object_smart_callback_add(entry, "activated", __msg_composer_subject_entry_activated_cb, cd);
+       evas_object_smart_callback_add(entry, "maxlength,reached", __msg_composer_subject_entry_maxlength_reached_cb, cd);
+
+       eext_entry_selection_back_event_allow_set(entry, EINA_TRUE);
+
+       /* keypad is manually controlled, so disabling the auto control of keypad */
+       elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
+
+       entry_ctx = elm_entry_imf_context_get(entry);
+       ecore_imf_context_input_panel_event_callback_add((Ecore_IMF_Context *)entry_ctx, ECORE_IMF_INPUT_PANEL_STATE_EVENT, msg_ui_composer_entry_imf_state_cb, cd);
+       ecore_imf_context_input_panel_event_callback_add((Ecore_IMF_Context *)entry_ctx, ECORE_IMF_INPUT_PANEL_GEOMETRY_EVENT, msg_ui_composer_entry_imf_resize_cb, cd);
+
+       cd->sub_data.entry = entry;
+
+       D_LEAVE;
+       return entry;
+}
+
+void msg_ui_composer_subject_apply_font_size(MSG_COMPOSER_VIEW_DATA_S *cd, const char *font_sytle)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       D_MSG_RETM_IF(font_sytle == NULL, "font_sytle is NULL");
+       D_MSG_RETM_IF(cd->isSubject == false, "subject not present");
+       if (cd->sub_data.entry) {
+               elm_entry_text_style_user_push(cd->sub_data.entry, font_sytle);
+               int font_size = msg_ui_composer_get_font_size(COMPOSER_TYPE_SUBJECT);
+               if (font_size > 0) {
+                       font_size = (font_size > 48 ? 48 : font_size);
+               } else {
+                       font_size = MSGC_SUBJECT_FONT_SIZE;
+               }
+               msg_ui_composer_entry_set_guide_text(cd->sub_data.entry, "IDS_MSGC_BODY_ENTER_SUBJECT");
+       }
+       D_LEAVE;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_add_subject(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       Evas_Object *sub_layout = NULL;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "Composer Data is Invalid");
+
+       sub_layout = msg_ui_composer_create_subject_layout(cd->body_main_layout, cd);
+       D_MSG_RETVM_IF(sub_layout == NULL, COMPOSER_RETURN_FAIL, "Fail to Create Subject Layout");
+
+       /* subject layout is packed on the body_main_box */
+       if (cd->body_main_box)
+               elm_box_pack_start(cd->body_main_box, sub_layout);
+
+       cd->isSubject = true;
+
+       if (!cd->isLoad) {
+               if (msg_ui_composer_recipient_check_showing_popup_condition(cd) == true) {
+                       if (msg_ui_composer_recipient_addr_type_get(cd->recipient) == COMPOSER_RECP_ADDR_INVALID)
+                               msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID");
+                       else {
+                               msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_COUNT_MAX);
+                       }
+               } else {
+                       /* if added recipient is not invalid number, change entry focus to the subject */
+                       msg_ui_composer_last_focused_entry_set(cd, cd->sub_data.entry);
+                       msg_ui_composer_last_focus_load(cd);
+
+                       msg_ui_composer_body_input_field_focus_set(cd, false);
+                       if (cd->loading_draft == false) {
+                               msg_ui_composer_entry_input_panel_show(cd->sub_data.entry);
+                       }
+
+                       if (cd->msg_ug_mode != MSG_UG_MODE_BUBBLE_COMPOSER) {
+
+                               RECIPIENT_S *rd = cd->recipient;
+                               D_MSG_RETVM_IF(rd == NULL, COMPOSER_RETURN_FAIL, "Recipient Data is NULL");
+
+                               if (false == rd->was_entry_empty)
+                                       msg_ui_composer_recipient_add_recipient_entry_to_mbe(cd);
+
+                               msg_ui_composer_recipient_hide_mbe_and_update_entry(cd->recipient);
+                               msg_ui_composer_recipient_destroy_no_recipient_icon(cd->recipient);
+                       }
+               }
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+Evas_Object *msg_ui_composer_create_subject_layout(Evas_Object *parent, MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+
+       Evas_Object *layout = NULL;
+       Evas_Object *entry = NULL;
+
+       D_MSG_RETVM_IF(cd == NULL, NULL, "Composer Data is Invalid");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "Parent Layout is Invalid");
+
+       layout = elm_layout_add(parent);
+       elm_layout_file_set(layout, msg_ui_composer_edj_get(cd), MSGC_EDJ_GRP_SUBJECT_FIELD);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       /* create subject entry */
+       entry = msg_ui_composer_create_subject_entry(layout, cd);
+       D_MSG_RETVM_IF(entry == NULL, NULL, "Fail to Create Subject Entry");
+
+       elm_object_part_content_set(layout, "swl.entry", entry);
+       cd->sub_data.layout = layout;
+
+       evas_object_show(layout);
+
+       D_LEAVE;
+       return layout;
+}
+
+bool msg_ui_composer_has_subject(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_MSG_RETVM_IF(cd == NULL, false, "param is NULL");
+
+       if (cd->isSubject) {
+               if (cd->sub_data.entry) {
+                       bool has_text = false;
+                       char *subject_text = elm_entry_markup_to_utf8(elm_entry_entry_get(cd->sub_data.entry));
+
+                       if (subject_text) {
+                               if (strlen(subject_text))
+                                       has_text = true;
+
+                               free(subject_text);
+                       }
+
+                       return has_text;
+               }
+       }
+
+       return false;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_read_subject(MSG_COMPOSER_VIEW_DATA_S *cd)
+{
+       D_ENTER;
+       const char *entry_text = NULL;
+       char *body_text = NULL;
+       int body_length = 0;
+
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_FAIL, "Composer Data is Invalid");
+       D_MSG_RETVM_IF(cd->isSubject == false, COMPOSER_RETURN_FAIL, "Subject is NOT Exist");
+       D_MSG_RETVM_IF(cd->sub_data.entry == NULL, COMPOSER_RETURN_FAIL, "Subject Entry is NOT Exist");
+
+       entry_text = elm_entry_entry_get(cd->sub_data.entry);
+       if (entry_text) {
+               body_text = elm_entry_markup_to_utf8(entry_text);
+               if (body_text) {
+                       body_length = strlen(body_text);
+                       if (body_length > 0) {
+                               msg_ui_composer_message_set_subject(body_text, body_length);
+                       } else {
+                               D_MSG("Subject Text is Empty");
+                       }
+
+                       g_free(body_text);
+               }
+       } else {
+               D_MSG("Subject Text is Empty");
+       }
+
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_subject_set_loaded_data(void *data, const char *subject)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETVM_IF(cd == NULL, COMPOSER_RETURN_NULL_POINTER, "Composer Data is Invalid");
+
+       char *markup_text = elm_entry_utf8_to_markup(subject);
+       if (!cd->isSubject && markup_text && strlen(markup_text) > 0) {
+               cd->isSubject = true;
+               if (msg_ui_composer_add_subject(cd) != COMPOSER_RETURN_SUCCESS) {
+                       if (markup_text)
+                               g_free(markup_text);
+                       return COMPOSER_RETURN_FAIL;
+               }
+       }
+
+       if (cd->sub_data.entry)
+               elm_entry_entry_set(cd->sub_data.entry, markup_text);
+
+       if (markup_text)
+               g_free(markup_text);
+       D_LEAVE;
+       return COMPOSER_RETURN_SUCCESS;
+}
+
diff --git a/composer/src/util/msg-ui-composer-util.c b/composer/src/util/msg-ui-composer-util.c
new file mode 100755 (executable)
index 0000000..8132f95
--- /dev/null
@@ -0,0 +1,1441 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#define _GNU_SOURCE
+
+#include <contacts.h>
+#include <image_util.h>
+#include <libexif/exif-data.h>
+#include <tapi_common.h>
+#include <TapiUtility.h>
+#include <TelPower.h>
+#include <ITapiModem.h>
+#include <app_preference.h>
+#include <utilX.h>
+#include <app_info.h>
+#include <app_manager.h>
+#include <string.h>
+
+#include "msg-ui-composer-data.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-message.h"
+#include "msg-ui-composer-common.h"
+#include "msg-file-util.h"
+
+#define EMAIL_ADDR_LEN_MAX 256
+#define ADDR_LEN_MIN 1
+
+/* information of exif value
+1 : top left
+2 : top right
+3 : bottom right
+4 : bottom left
+5 : left top
+6 : right top
+7 : right bottom
+8 : left bottom
+*/
+enum MSGC_EXIF_ORIENTATION {
+    MSGC_EXIF_NOT_AVAILABLE = 0,
+    MSGC_EXIF_NORMAL = 1,
+    MSGC_EXIF_HFLIP = 2,
+    MSGC_EXIF_ROT_180 = 3,
+    MSGC_EXIF_VFLIP = 4,
+    MSGC_EXIF_TRANSPOSE = 5,
+    MSGC_EXIF_ROT_90 = 6,
+    MSGC_EXIF_TRANSVERSE = 7,
+    MSGC_EXIF_ROT_270 = 8
+};
+
+COMPOSER_UTIL_ADDRTYPE_E get_address_type(const char *address)
+{
+       COMPOSER_UTIL_ADDRTYPE_E addrtype = COMPOSER_UTIL_ADDRTYPE_INVALID;
+
+       if (!address) {
+               D_EMSG("No input address");
+               return addrtype;
+       }
+
+       if (IsValidNumber(address) == EINA_TRUE) {
+               addrtype = COMPOSER_UTIL_ADDRTYPE_NUMBER;
+               D_SEC_MSG("It is number type[%s]", address);
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       } else if (IsVaildEmailAddress(address) == EINA_TRUE) {
+               addrtype = COMPOSER_UTIL_ADDRTYPE_EMAIL;
+               D_SEC_MSG("It is email type[%s]", address);
+#endif
+       } else {
+               D_SEC_MSG("It is not supported type[%s]", address);
+       }
+
+       return addrtype;
+}
+
+Eina_Bool IsMultipleNumber(int index)
+{
+       D_ENTER;
+       int ct_err = CONTACTS_ERROR_NONE;
+
+       contacts_list_h list = NULL;
+       contacts_query_h query = NULL;
+       contacts_filter_h filter = NULL;
+
+       int num_list_count = 0;
+       int email_list_count = 0;
+       int list_count;
+
+       contacts_query_create(_contacts_simple_contact._uri, &query);
+       contacts_filter_create(_contacts_simple_contact._uri, &filter);
+       contacts_filter_add_int(filter, _contacts_simple_contact.person_id, CONTACTS_MATCH_EQUAL, index);
+       contacts_query_set_filter(query, filter);
+
+       ct_err = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+
+       if (ct_err != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+               contacts_list_destroy(list, true);
+               return EINA_FALSE;
+       }
+
+       ct_err = contacts_list_get_count(list, &list_count);
+       D_MSG("list_count = %d", list_count);
+
+       while (CONTACTS_ERROR_NONE == ct_err) {
+               contacts_record_h ct_value = NULL;
+               contacts_list_h number_list = NULL;
+#ifndef _MSG_FEATURE_MMS_DISABLE
+               contacts_list_h email_list = NULL;
+#endif
+               int contact_id;
+
+               contacts_list_get_current_record_p(list, &ct_value);
+
+               if (ct_value) {
+                       contacts_record_get_int(ct_value, _contacts_simple_contact.id, &contact_id);
+
+                       if (contact_id > 0) {
+                               /* get number list count */
+                               contacts_query_create(_contacts_number._uri, &query);
+                               contacts_filter_create(_contacts_number._uri, &filter);
+                               contacts_filter_add_int(filter, _contacts_number.contact_id, CONTACTS_MATCH_EQUAL, contact_id);
+                               contacts_query_set_filter(query, filter);
+
+                               ct_err = contacts_db_get_records_with_query(query, 0, 0, &number_list);
+                               contacts_filter_destroy(filter);
+                               contacts_query_destroy(query);
+
+                               if (ct_err != CONTACTS_ERROR_NONE) {
+                                       D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+                                       ct_err = contacts_list_next(list);
+                                       contacts_list_destroy(number_list, true);
+                                       continue;
+                               }
+
+                               contacts_list_get_count(number_list, &num_list_count);
+                               contacts_list_destroy(number_list, true);
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+                               /* get mail list count */
+                               contacts_query_create(_contacts_email._uri, &query);
+                               contacts_filter_create(_contacts_email._uri, &filter);
+                               contacts_filter_add_int(filter, _contacts_email.contact_id, CONTACTS_MATCH_EQUAL, contact_id);
+                               contacts_query_set_filter(query, filter);
+
+                               ct_err = contacts_db_get_records_with_query(query, 0, 0, &email_list);
+                               contacts_filter_destroy(filter);
+                               contacts_query_destroy(query);
+
+                               if (ct_err != CONTACTS_ERROR_NONE) {
+                                       D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+                                       ct_err = contacts_list_next(list);
+                                       contacts_list_destroy(email_list, true);
+                                       continue;
+                               }
+
+                               contacts_list_get_count(email_list, &email_list_count);
+                               contacts_list_destroy(email_list, true);
+#endif
+                       } else {
+                               D_EMSG("Invalid contact_id = %d", contact_id);
+                       }
+               } else {
+                       D_EMSG("contacts_list_get_current_record_p is failed");
+               }
+
+               ct_err = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+
+       D_MSG("num_list_count = %d", num_list_count);
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       D_MSG("email_list_count = %d", email_list_count);
+#endif
+       D_LEAVE;
+       if (num_list_count + email_list_count > 1)
+               return EINA_TRUE;
+
+       return EINA_FALSE;
+}
+
+Eina_Bool IsValidNumber(const char *address)
+{
+       D_ENTER;
+
+       if (!address)
+               return EINA_FALSE;
+
+       int addrlen = strlen(address);
+
+       if (addrlen < ADDR_LEN_MIN) {
+               D_EMSG("Too short address");
+               return EINA_FALSE;
+       }
+
+       const char *oneChar = address;
+       int digitCount = 0;
+
+       if (*oneChar == '+')
+               ++oneChar;
+
+       if (!(*oneChar)) {
+               return EINA_FALSE;
+       }
+
+       while (*oneChar) {
+               if (!isdigit(*oneChar) && (*oneChar != '*') && (*oneChar != '#') && (*oneChar != '-'))
+                       return EINA_FALSE;
+
+               if (isdigit(*oneChar))
+                       ++digitCount;
+
+               ++oneChar;
+       }
+
+       if (!digitCount)
+               return EINA_FALSE;
+
+       return EINA_TRUE;
+}
+
+static bool _is_prefix_symbol(char symbol)
+{
+       switch (symbol) {
+               case '.':
+               case '_':
+               case '-':
+               case ':':
+               case '#':
+               case '!':
+               case '$':
+               case '%':
+               case '&':
+               case '*':
+               case '+':
+               case '/':
+               case '=':
+               case '?':
+               case '^':
+               case '`':
+               case '~':
+               case '{':
+               case '}':
+               case '(':
+               case ')':
+               case '|':
+               case '\'':
+                       return true;
+               default:
+                       return false;
+       }
+}
+
+static bool _is_suffix_symbol(char symbol)
+{
+       switch (symbol) {
+               case '.':
+               case '_':
+               case '-':
+               case ':':
+               case '[':
+               case ']':
+               case '(':
+               case ')':
+                       return true;
+               default:
+                       return false;
+       }
+}
+
+
+Eina_Bool IsVaildEmailAddress(const char *address)
+{
+       D_ENTER;
+
+       char *oneChar;
+       Eina_Bool isPrefixCorrect = EINA_FALSE;
+       Eina_Bool isSurfixCorrect = EINA_FALSE;
+       Eina_Bool isExistAt = EINA_FALSE;
+
+       int addrlen;
+
+       if (address == NULL) {
+               D_EMSG("Input address is NULL");
+               return EINA_FALSE;
+       }
+
+       oneChar = (char *)address;
+       addrlen = strlen(address);
+
+       if (addrlen == 0 || addrlen > EMAIL_ADDR_LEN_MAX)
+               return EINA_FALSE;
+
+       for (; *oneChar != '\0'; ++oneChar) {
+               if (isExistAt == EINA_FALSE) {
+                       if (isalnum(*oneChar) || _is_prefix_symbol(*oneChar)) {
+                               isPrefixCorrect = EINA_TRUE;
+                               continue;
+                       } else if (*oneChar == '@') {
+                               if (isPrefixCorrect == EINA_FALSE)
+                                       return EINA_FALSE;
+                               else
+                                       isExistAt = EINA_TRUE;
+                       } else {
+                               return EINA_FALSE;
+                       }
+               } else {
+                       if (isalnum(*oneChar) || _is_suffix_symbol(*oneChar)) {
+                               isSurfixCorrect = EINA_TRUE;
+                               continue;
+                       } else {
+                               return EINA_FALSE;
+                       }
+               }
+       }
+
+       D_LEAVE;
+       return (isPrefixCorrect && isSurfixCorrect && isExistAt);
+}
+
+bool is_duplicated_number(int min_match_digit, const char *number1, const char *number2)
+{
+       D_MSG_RETVM_IF(number1 == NULL, false, "number1 is NULL");
+       D_MSG_RETVM_IF(number2 == NULL, false, "number2 is NULL");
+       int len1 = 0;
+       int len2 = 0;
+       int matched = 0;
+       int minmatch_len = min_match_digit;
+
+       if ('\0' == *number1 || '\0' == *number2) {
+               D_EMSG("value of number1 or number2 is 0");
+               return false;
+       }
+
+       len1 = strlen(number1);
+       len2 = strlen(number2);
+
+       for (matched = 0; len1 > 0 && len2 > 0;) {
+               if (number1[len1-1] != number2[len2-1])
+                       break;
+               len1--;
+               len2--;
+               matched++;
+       }
+
+       /* full match */
+       if (len1 == 0 && len2 == 0)
+               return true;
+
+       /* one is substring of the other string */
+       if (matched >= minmatch_len && (len1 == 0 || len2 == 0))
+               return true;
+
+       /* 010xxxx case */
+       if (matched >= minmatch_len) {
+               if (len1 < len2) {
+                       if ((len1 == 1) && (number1[len1-1] == '0')) {
+                               return true;
+                       }
+               } else if (len1 > len2) {
+                       if ((len2 == 1) && (number2[len2-1] == '0')) {
+                               return true;
+                       }
+               }
+       }
+
+       return false;
+}
+
+int get_contact_index_by_recipient(const char *address)
+{
+       int index = -1;
+       int ct_err = CONTACTS_ERROR_NONE;
+       contacts_list_h list = NULL;
+       contacts_query_h query = NULL;
+       contacts_filter_h filter = NULL;
+
+       /* get number list first */
+       contacts_query_create(_contacts_person_number._uri, &query);
+       contacts_filter_create(_contacts_person_number._uri, &filter);
+       contacts_filter_add_str(filter, _contacts_person_number.number_filter, CONTACTS_MATCH_EXACTLY, address);
+       contacts_query_set_filter(query, filter);
+
+       ct_err = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+       filter = NULL;
+       query = NULL;
+
+       if (ct_err != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+               contacts_list_destroy(list, true);
+               return index;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_err) {
+               contacts_record_h ct_value = NULL;
+               contacts_list_get_current_record_p(list, &ct_value);
+
+               if (ct_value) {
+                       contacts_record_get_int(ct_value, _contacts_person_number.person_id, &index);
+                       if (index > 0) {
+                               contacts_list_destroy(list, true);
+                               return index;
+                       }
+               }
+
+               ct_err = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+       list = NULL;
+
+       /* get email list second */
+       contacts_query_create(_contacts_person_email._uri, &query);
+       contacts_filter_create(_contacts_person_email._uri, &filter);
+       contacts_filter_add_str(filter, _contacts_person_email.email, CONTACTS_MATCH_FULLSTRING, address);
+       contacts_query_set_filter(query, filter);
+
+       ct_err = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+
+       if (ct_err != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+               contacts_list_destroy(list, true);
+               return index;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_err) {
+               contacts_record_h ct_value = NULL;
+               contacts_list_get_current_record_p(list, &ct_value);
+
+               if (ct_value) {
+                       contacts_record_get_int(ct_value, _contacts_person_email.person_id, &index);
+                       if (index > 0) {
+                               contacts_list_destroy(list, true);
+                               return index;
+                       }
+               }
+
+               ct_err = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+
+       return index;
+}
+
+int get_contact_index_by_name(const char *display_name)
+{
+       int index = -1;
+       int ct_err;
+
+       contacts_list_h list = NULL;
+       contacts_query_h query = NULL;
+       contacts_filter_h filter = NULL;
+
+       /* get number list first */
+       contacts_query_create(_contacts_person._uri, &query);
+       contacts_filter_create(_contacts_person._uri, &filter);
+       contacts_filter_add_str(filter, _contacts_person.display_name, CONTACTS_MATCH_EXACTLY, display_name);
+       contacts_query_set_filter(query, filter);
+
+       ct_err = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+
+       if (ct_err != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+               contacts_list_destroy(list, true);
+               return index;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_err) {
+               contacts_record_h ct_value = NULL;
+               contacts_list_get_current_record_p(list, &ct_value);
+               if (ct_value) {
+                       contacts_record_get_int(ct_value, _contacts_person.id, &index);
+                       if (index > 0) {
+                               contacts_list_destroy(list, true);
+                               return index;
+                       }
+               }
+
+               ct_err = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+
+       return index;
+}
+
+int get_contact_display_name_by_index(int index, char *dest, int dest_size)
+{
+       D_MSG_RETVM_IF(dest == NULL, COMPOSER_RETURN_FAIL, "dest is NULL");
+
+       int ct_ret = CONTACTS_ERROR_NONE;
+       int ret = COMPOSER_RETURN_SUCCESS;
+       char *display = NULL;
+       contacts_record_h ct_value = NULL;
+
+       ct_ret = contacts_db_get_record(_contacts_person._uri, index, &ct_value);
+       if (ct_ret != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       contacts_record_get_str_p(ct_value, _contacts_person.display_name, &display);
+
+       if (!display) {
+               D_EMSG("display name is NULL");
+               ret = COMPOSER_RETURN_FAIL;
+       } else {
+               if (strlen(display)) {
+                       strncpy(dest, display, dest_size);
+               } else {
+                       ret = COMPOSER_RETURN_FAIL;
+               }
+       }
+
+       contacts_record_destroy(ct_value, true);
+
+       return ret;
+}
+
+int get_contact_default_number_by_index(int index, char *dest, int dest_size)
+{
+       D_MSG_RETVM_IF(dest == NULL, COMPOSER_RETURN_FAIL, "dest is NULL");
+
+       int ret = COMPOSER_RETURN_FAIL;
+       int ct_ret;
+       char *default_num = NULL;
+
+       contacts_list_h list = NULL;
+       contacts_query_h query = NULL;
+       contacts_filter_h filter = NULL;
+
+       /* get number list first */
+       contacts_query_create(_contacts_person_number._uri, &query);
+       contacts_filter_create(_contacts_person_number._uri, &filter);
+       contacts_filter_add_int(filter, _contacts_person_number.person_id, CONTACTS_MATCH_EXACTLY, index);
+       contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_AND);
+       contacts_filter_add_bool(filter, _contacts_person_number.is_primary_default, true);
+       contacts_query_set_filter(query, filter);
+
+       ct_ret = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+
+       if (ct_ret != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_ret);
+               contacts_list_destroy(list, true);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_ret) {
+               contacts_record_h ct_value = NULL;
+               contacts_list_get_current_record_p(list, &ct_value);
+               if (ct_value) {
+                       contacts_record_get_str_p(ct_value, _contacts_person_number.number, &default_num);
+
+                       if (default_num && *default_num) {
+                               strncpy(dest, default_num, dest_size);
+                               ret = COMPOSER_RETURN_SUCCESS;
+                               break;
+                       }
+               }
+
+               ct_ret = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+
+       return ret;
+}
+
+int get_contact_default_email_by_index(int index, char *dest, int dest_size)
+{
+       D_MSG_RETVM_IF(dest == NULL, COMPOSER_RETURN_FAIL, "dest is NULL");
+
+       int ret = COMPOSER_RETURN_FAIL;
+       int ct_ret;
+       char *default_num = NULL;
+
+       contacts_list_h list = NULL;
+       contacts_query_h query = NULL;
+       contacts_filter_h filter = NULL;
+
+       /* get number list first */
+       contacts_query_create(_contacts_person_email._uri, &query);
+       contacts_filter_create(_contacts_person_email._uri, &filter);
+       contacts_filter_add_int(filter, _contacts_person_email.person_id, CONTACTS_MATCH_EXACTLY, index);
+       contacts_filter_add_bool(filter, _contacts_person_email.is_primary_default, true);
+       contacts_query_set_filter(query, filter);
+
+       ct_ret = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+
+       if (ct_ret != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_ret);
+               contacts_list_destroy(list, true);
+               return COMPOSER_RETURN_FAIL;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_ret) {
+               contacts_record_h ct_value = NULL;
+               contacts_list_get_current_record_p(list, &ct_value);
+               if (ct_value) {
+                       contacts_record_get_str_p(ct_value, _contacts_person_email.email, &default_num);
+                       if (default_num && *default_num) {
+                               strncpy(dest, default_num, dest_size);
+                               ret = COMPOSER_RETURN_SUCCESS;
+                               break;
+                       }
+               }
+
+               ct_ret = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+
+       return ret;
+}
+
+int get_contact_default_recipient_by_index(int index, char *dest, int dest_size)
+{
+       int ret;
+       ret = get_contact_default_number_by_index(index, dest, dest_size);
+       if (!ret) {
+#ifdef _MSG_FEATURE_MMS_DISABLE
+               D_MSG("fail of getting default recipient");
+#else
+               ret = get_contact_default_email_by_index(index, dest, dest_size);
+               if (!ret) {
+                       D_MSG("fail of getting default recipient");
+               } else {
+                       D_SEC_MSG("get default email %s", dest);
+               }
+#endif
+       } else {
+               D_SEC_MSG("get default number %s", dest);
+       }
+       return ret;
+}
+
+bool msg_build_contactname_str_check(const char *filedir, const char *filename, int dup_index, char *filepath, int filepath_len)
+{
+       D_MSG_RETVM_IF(filedir == NULL, false, "file_dir is NULL");
+       D_MSG_RETVM_IF(filename == NULL, false, "filename is NULL");
+       D_MSG_RETVM_IF(filepath == NULL, false, "file_path is NULL");
+       D_MSG_RETVM_IF(dup_index < 0, false, "counter index < 0");
+       D_MSG_RETVM_IF(filepath_len < 0, false, "filepath_len < 0");
+
+       char counter_string[COMPOSER_ATTACHMENT_FILE_COPY_COUNTER_SIZE + 1] = {0,};
+       char temp_file_path[COMPOSER_FILEPATH_LEN_MAX + 1] = {0,};
+       char temp_file_name[COMPOSER_FILEPATH_LEN_MAX + 1] = {0,};
+       char temp_display_name[COMPOSER_FILENAME_LEN_MAX + 1] = {0,};
+       glong utf8_display_name_len = 0;
+
+       /*initializing the output buffer*/
+       memset(filepath, 0x00, filepath_len);
+
+       if (0 == dup_index)
+               snprintf(temp_file_path, sizeof(temp_file_path), "%s%s.vcf", filedir, filename);
+       else {
+               snprintf(counter_string, sizeof(counter_string), "_%02d", dup_index);
+               snprintf(temp_file_name, sizeof(temp_file_name), "%s%s.vcf", filename, counter_string);
+
+               utf8_display_name_len = g_utf8_strlen(temp_file_name, -1);
+               D_MSG("display name length = %d", utf8_display_name_len);
+
+               /* Here "-4" is for .vcf extension */
+               if (utf8_display_name_len > (COMPOSER_FILENAME_LEN_MAX - 4 - strlen(counter_string)))
+                       g_utf8_strncpy(temp_display_name, filename, (COMPOSER_FILENAME_LEN_MAX - 4 - strlen(counter_string)));
+               else
+                       snprintf(temp_display_name, sizeof(temp_display_name), "%s", filename);
+
+               snprintf(temp_file_path, sizeof(temp_file_path), "%s%s%s.vcf", filedir, temp_display_name, counter_string);
+       }
+
+       int max_filepath = strlen(temp_file_path);
+       filepath_len = (max_filepath > filepath_len) ? filepath_len : max_filepath;
+
+       /*updating the ouput filepath buffer before return.*/
+       strncpy(filepath, temp_file_path, filepath_len);
+
+       if (msg_file_exists(temp_file_path))
+               return true;
+       else
+               return false;
+}
+
+void msg_composer_remove_file(const char *path)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(path == NULL, "path is NULL");
+
+       msg_file_remove(path);
+}
+
+char *msg_composer_create_working_dir(void)
+{
+       D_ENTER;
+       char *base_dir = MSGC_UI_DATA_PATH;
+       char working_path[DEF_PATH_MAX + 1] = {0,};
+       int i = 0;
+
+       /*Create base dir*/
+       if (msg_file_exists(base_dir) == EINA_FALSE) {
+               if (msg_file_mkdir(base_dir) == EINA_FALSE) {
+                       D_EMSG("error mkdir: %s", strerror(errno));
+                       return NULL;
+               }
+       }
+
+       /*Create work dir*/
+       do {
+               bzero(working_path, DEF_PATH_MAX);
+               snprintf(working_path, sizeof(working_path), "%s/composer_%d/", base_dir, i);
+               if (msg_file_exists(working_path) == EINA_FALSE) {
+                       if (msg_file_mkdir(working_path) == EINA_FALSE) {
+                               D_EMSG("error mkdir: %s", strerror(errno));
+                               return NULL;
+                       } else {
+                               D_SEC_MSG("Success to create working path = %s", working_path);
+                               return strdup(working_path);
+                       }
+                       break;
+               }
+               i++;
+       } while (i < 255);
+
+       return NULL;
+}
+
+void msg_composer_destroy_working_dir(const char *path)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(path == NULL, "path is NULL");
+
+       msg_file_recursive_rm(path);
+}
+
+bool msg_composer_get_mms_alert(bool *mms_alert)
+{
+       D_MSG_RETVM_IF(mms_alert == NULL, false, "param is NULL");
+
+       if (preference_get_boolean(KEY_MSG_APP_MMS_ALERT, mms_alert) < 0) {
+               D_EMSG("preference_get_boolean(KEY_MSG_APP_MMS_ALERT) is failed !!");
+               return false;
+       } else {
+               D_MSG("mms_alert = %d", *mms_alert);
+       }
+
+       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, COMPOSER_UTIL_LIST_TYPE_E type, bool *is_sound_and_shot)
+{
+       D_ENTER;
+
+       Eina_List *e_list = NULL;
+       char *p = NULL;
+       char *copy_string = NULL;
+       char *save_p = NULL;
+       char *normalized_number = NULL;
+
+       if (!ori_string) {
+               D_EMSG("Input string is NULL");
+               return NULL;
+       }
+
+       copy_string = MSG_STRDUP(ori_string);
+
+       if (copy_string) {
+               p = strtok_r(copy_string, sep, &save_p);
+
+               if (p)
+                       D_SEC_MSG("list item = %s", p);
+
+               while (p) {
+                       if ((type == COMPOSER_UTIL_LIST_TYPE_RECIPIENT) &&
+                               (get_address_type(p) != COMPOSER_UTIL_ADDRTYPE_EMAIL)) {
+                               normalized_number = msg_common_make_normalized_number(p);
+                               if (normalized_number) {
+                                       D_SEC_MSG("normalized_number = [%s]", normalized_number);
+                                       p = normalized_number;
+                               }
+                       } else if (type == COMPOSER_UTIL_LIST_TYPE_FILE) {
+                               if (is_sound_and_shot == NULL) {
+                                       D_EMSG("is_sound_and_shot is NULL");
+                               }
+                       }
+
+                       char *c = MSG_STRDUP(p);
+
+                       if (normalized_number) {
+                               free(normalized_number);
+                               normalized_number = NULL;
+                       }
+
+                       e_list = eina_list_append(e_list, c);
+
+                       p = strtok_r(NULL, sep, &save_p);
+
+                       if (p)
+                               D_SEC_MSG("list item = %s", p);
+               }
+
+               g_free(copy_string);
+       }
+
+       D_LEAVE;
+       return e_list;
+}
+
+void convert_ps_to_br(char *input)
+{
+       const char *char_ps = "<ps>";
+       char *ptr = NULL;
+
+       if (!input)
+               return;
+       while ((ptr = strstr(input, char_ps))) {
+               ptr[1] = 'b';
+               ptr[2] = 'r';
+       }
+
+       return;
+}
+
+void convert_CRLF_to_space(char *input)
+{
+       const char *char_crlf = "\n";
+       char *ptr = NULL;
+
+       if (!input)
+               return;
+
+       while ((ptr = strstr(input, char_crlf))) {
+               ptr[0] = ' ';
+       }
+
+       return;
+}
+
+int remove_space(const char *src, char *dest, int dest_size)
+{
+       int s_pos = 0;
+       int d_pos = 0;
+
+       if (NULL == src) {
+               D_MSG("The parameter(src) is NULL");
+               dest[d_pos] = '\0';
+               return d_pos;
+       }
+
+       while (src[s_pos] != 0) {
+               if (src[s_pos] == ' ') {
+                       s_pos++;
+                       continue;
+               }
+
+               memcpy(dest+d_pos, src+s_pos, 1);
+               d_pos++;
+               s_pos++;
+
+               if (d_pos >= dest_size - 1)
+                       break;
+       }
+
+       dest[d_pos] = '\0';
+       return d_pos;
+}
+
+bool check_delimiter_character(const char *address)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(address == NULL, false, "address is NULL");
+
+       int addrlen = strlen(address);
+       int i = 0;
+
+       for (; i < addrlen; ++i) {
+               if (address[i] == ',' || address[i] == ';')
+                       return true;
+       }
+
+       return false;
+}
+
+bool is_all_exception_characters(const char *address)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(address == NULL, false, "address is NULL");
+
+       int str_len = strlen(address);
+       int index = 0;
+       bool is_exception_case = false;
+
+       /* exception character is space(' ') or in case of japanese ise (0xe3 0x80 0x80) */
+       if (str_len >= 1) {
+               while (address[index] != '\0') {
+                       if (address[index] == ' ') {
+                               ++index;
+                       } else if (address[index] == 0xe3 && (index + 2 < str_len)) {
+                               if (address[index] == 0xe3  && address[index + 1] == 0x80 && address[index + 2] == 0x80) {
+                                       index += 3;
+                               } else {
+                                       break;
+                               }
+                       } else {
+                               break;
+                       }
+
+                       if (index > str_len)
+                               break;
+               }
+
+               if (index == str_len)
+                       is_exception_case = true;
+       }
+
+       return is_exception_case;
+}
+
+int jpeg_image_get_rotation(const char *src_file_path, int *rotation)
+{
+       D_ENTER;
+
+       if (msg_file_exists(src_file_path) == EINA_FALSE) {
+               D_SEC_EMSG("File is not existed = %s", src_file_path);
+               return COMPOSER_UTIL_RET_ERR;
+       }
+       D_MSG_RETVM_IF(rotation == NULL, COMPOSER_UTIL_RET_ERR, "rotation is NULL");
+
+       int ret = COMPOSER_UTIL_RET_SUCCESS;
+       ExifData *exif_data = NULL;
+
+       exif_data = exif_data_new_from_file(src_file_path);
+       if (exif_data) {
+               ExifEntry *exif_entry = NULL;
+               exif_entry = exif_data_get_entry(exif_data, EXIF_TAG_ORIENTATION);
+
+               if (exif_entry) {
+                       ExifByteOrder byte_order = exif_data_get_byte_order(exif_data);
+                       short exif_value = exif_get_short(exif_entry->data, byte_order);
+                       D_MSG("value = %d", exif_value);
+
+                       if (exif_value >= MSGC_EXIF_NOT_AVAILABLE && exif_value <= MSGC_EXIF_ROT_270) {
+                               *rotation = exif_value;
+                       } else {
+                               *rotation = 0;
+                       }
+               } else {
+                       D_EMSG("exif_entry is NULL");
+                       ret = COMPOSER_UTIL_RET_ERR;
+               }
+
+               exif_data_unref(exif_data);
+       } else {
+               D_MSG("There is no exif data");
+               ret = COMPOSER_UTIL_RET_ERR;
+       }
+
+       D_LEAVE;
+       return ret;
+}
+
+int jpeg_image_get_resolution(const char *src_file_path, int *dst_w, int *dst_h)
+{
+       D_ENTER;
+       if (msg_file_exists(src_file_path) == EINA_FALSE) {
+               D_SEC_EMSG("File is not existed = %s", src_file_path);
+               return COMPOSER_UTIL_RET_ERR;
+       }
+
+       if (dst_w == NULL || dst_h == NULL) {
+               D_SEC_EMSG("Parameter is Invalid dst_w = %p, dst_h = %p", dst_w, dst_h);
+               return COMPOSER_UTIL_RET_ERR;
+       }
+
+       int ret = IMAGE_UTIL_ERROR_NONE;
+
+       /*decode jpeg file*/
+       unsigned char *image_buffer = NULL;
+       unsigned int buffer_size = 0;
+
+       ret = image_util_decode_jpeg(src_file_path, IMAGE_UTIL_COLORSPACE_RGB888, &image_buffer, dst_w, dst_h, &buffer_size);
+       if (ret != IMAGE_UTIL_ERROR_NONE) {
+               D_EMSG("image_util_decode_jpeg is failed ret = %d", ret);
+               return COMPOSER_UTIL_RET_ERR;
+       }
+
+       if (image_buffer)
+               free(image_buffer);
+
+       D_MSG("Image Resolution is (%d x %d)", *dst_w, *dst_h);
+
+       D_LEAVE;
+       return COMPOSER_UTIL_RET_SUCCESS;
+}
+
+#define JPEG_HEADER_DATA_OFFSET 20
+int jpeg_image_change_image(const char *src_file_path, MSGC_UTIL_CHANGE_IMAGE_S *req, const char *dst_file_path)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(src_file_path == NULL, COMPOSER_UTIL_RET_ERR, "src_file_path is NULL");
+       D_MSG_RETVM_IF(dst_file_path == NULL, COMPOSER_UTIL_RET_ERR, "dst_file_path is NULL");
+       D_MSG_RETVM_IF(req == NULL, COMPOSER_UTIL_RET_ERR, "req is NULL");
+
+       int ret = IMAGE_UTIL_ERROR_NONE;
+       unsigned char *image_buffer = NULL;
+       int width = 0;
+       int height = 0;
+       unsigned int size = 0;
+       int quality = 0;
+       ExifData *exif_data = NULL;
+       unsigned char *exif_buff = NULL;
+       unsigned int exif_buff_len = 0;
+       unsigned char *jpeg_buff = NULL;
+       unsigned int jpeg_buff_len = 0;
+       FILE *image_file = NULL;
+       unsigned char exif_header[] = { 0xff, 0xd8, 0xff, 0xe1 };
+       unsigned int exif_header_len = sizeof(exif_header);
+
+       if (msg_file_exists(src_file_path) == EINA_FALSE) {
+               D_SEC_EMSG("File is not existed = %s", src_file_path);
+               return COMPOSER_UTIL_RET_ERR;
+       }
+
+       exif_data = exif_data_new_from_file(src_file_path);
+       if (!exif_data) {
+               D_SEC_EMSG("Can't get EXIF data from image!");
+               goto err_return;
+       }
+
+       exif_data_save_data(exif_data, &exif_buff, &exif_buff_len);
+       if (!exif_buff) {
+               D_SEC_EMSG("Can't save EXIF data to buffer!");
+               goto err_return;
+       }
+
+       /*decode jpeg file*/
+       ret = image_util_decode_jpeg(src_file_path, IMAGE_UTIL_COLORSPACE_RGB888, &image_buffer, &width, &height, &size);
+       if (ret != IMAGE_UTIL_ERROR_NONE) {
+               D_EMSG("image_util_decode_jpeg is failed ret = %d", ret);
+               goto err_return;
+       }
+
+       /* set quality */
+       if (req->type & MSGC_IMAGE_CHANGE_QUAILTY) {
+               D_MSG("MSGC_IMAGE_CHANGE_QUAILTY image(%d)", req->quality);
+               quality = req->quality;
+       } else {
+               quality = 90;
+       }
+
+       /* save image to memory*/
+       ret = image_util_encode_jpeg_to_memory(image_buffer, width, height, IMAGE_UTIL_COLORSPACE_RGB888, quality, &jpeg_buff, &jpeg_buff_len);
+       if (ret != IMAGE_UTIL_ERROR_NONE && !jpeg_buff) {
+               D_EMSG("image_util_encode_jpeg is failed ret = %d", ret);
+               goto err_return;
+       }
+
+       image_file = fopen(dst_file_path, "w");
+       if (!image_file) {
+               D_EMSG("Can't create file in %s", dst_file_path);
+               goto err_return;
+       }
+
+       /* Write EXIF header */
+       if (fwrite(exif_header, exif_header_len, 1, image_file) != 1) {
+               D_EMSG("Can't write to file %s", dst_file_path);
+               goto err_return;
+       }
+
+       /* Write EXIF block length in big-endian order */
+       if (fputc((exif_buff_len+2) >> 8, image_file) < 0) {
+               D_EMSG("Can't write to file %s", dst_file_path);
+               goto err_return;
+       }
+       if (fputc((exif_buff_len+2) & 0xff, image_file) < 0) {
+               D_EMSG("Can't write to file %s", dst_file_path);
+               goto err_return;
+       }
+
+       /* Write EXIF data block */
+       if (fwrite(exif_buff, exif_buff_len, 1, image_file) != 1) {
+               D_EMSG("Can't write to file %s", dst_file_path);
+               goto err_return;
+       }
+
+       /* Write JPEG image data, skipping the non-EXIF header */
+       if (fwrite(jpeg_buff+JPEG_HEADER_DATA_OFFSET, jpeg_buff_len-JPEG_HEADER_DATA_OFFSET, 1, image_file) != 1) {
+               D_EMSG("Can't write to file %s", dst_file_path);
+               goto err_return;
+       }
+
+       if (fclose(image_file)) {
+               D_EMSG("Can't close file in %s", dst_file_path);
+
+               /* Even if the call fails, the stream passed as parameter will no longer be associated with the file nor its buffers*/
+               image_file = NULL;
+               goto err_return;
+       }
+
+       if (image_buffer) {
+               free(image_buffer);
+               image_buffer = NULL;
+       }
+       free(exif_buff);
+       free(jpeg_buff);
+       exif_data_unref(exif_data);
+       D_LEAVE;
+       return COMPOSER_UTIL_RET_SUCCESS;
+
+err_return:
+       if (image_buffer) {
+               free(image_buffer);
+               image_buffer = NULL;
+       }
+       if (image_file) {
+               fclose(image_file);
+       }
+       free(exif_buff);
+       free(jpeg_buff);
+       exif_data_unref(exif_data);
+       return COMPOSER_UTIL_RET_ERR;
+}
+
+COMPOSER_UTIL_RETURN_E msg_composer_is_allowed_creation_mode(const char *file_path, COMPOSER_MEDIA_TYPE_E media_type, int creation_mode, int composer_mode)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(file_path == NULL, COMPOSER_UTIL_RET_ERR, "file_path is NULL");
+
+       char *ext = msg_composer_get_file_ext(file_path);
+       int dst_w = 0;
+       int dst_h = 0;
+
+       if (media_type == COMPOSER_MEDIA_TYPE_IMAGE) {
+               if ((strcasecmp(ext, "jpg") != 0) && (strcasecmp(ext, "jpeg") != 0)
+                       && (strcasecmp(ext, "gif") != 0) && (strcasecmp(ext, "wbmp") != 0)) {
+                               return COMPOSER_UTIL_RET_NOT_ALLOWED;
+               } else {
+                       /* Check resoluton*/
+                       int restrict_w = 0;
+                       int restrict_h = 0;
+
+                       jpeg_image_get_resolution(file_path, &dst_w, &dst_h);
+
+                       if (dst_w > dst_h) {
+                               restrict_w = MSGC_RESTRICT_MAX_IMG_W;
+                               restrict_h = MSGC_RESTRICT_MAX_IMG_H;
+                       } else {
+                               restrict_w = MSGC_RESTRICT_MAX_IMG_H;
+                               restrict_h = MSGC_RESTRICT_MAX_IMG_W;
+                       }
+
+                       D_MSG("composer_mode (%d)", composer_mode);
+
+                       if (dst_w > restrict_w || dst_h > restrict_h) {
+                               if (creation_mode == MSG_CREATION_MODE_WARNING) {
+                                       return COMPOSER_UTIL_RET_ALLOWED;
+                               } else if (creation_mode == MSG_CREATION_MODE_RESTRICTED) {
+                                       return COMPOSER_UTIL_RET_NOT_ALLOWED;
+                               } else {
+                                       return COMPOSER_UTIL_RET_ALLOWED_WITH_RESIZE;
+                               }
+                       }
+               }
+       } else if (media_type == COMPOSER_MEDIA_TYPE_VIDEO) {
+               if ((strcasecmp(ext, "3gp") != 0) && (strcasecmp(ext, "3gpp") != 0)) {
+                       return COMPOSER_UTIL_RET_NOT_ALLOWED;
+               }
+       } else if (media_type == COMPOSER_MEDIA_TYPE_AUDIO) {
+               if ((strcasecmp(ext, "amr") != 0) && (strcasecmp(ext, "mid") != 0) && (strcasecmp(ext, "midi") != 0)) {
+                       return COMPOSER_UTIL_RET_NOT_ALLOWED;
+               }
+       } else {
+               D_MSG("It check only Image, Video, Audio type, media_type[%d] is not need to check", media_type);
+       }
+
+       D_LEAVE;
+       return COMPOSER_UTIL_RET_ALLOWED;
+}
+
+/* Note : params input, searchword should be utf8 characters */
+char *search_markup_keyword(const char *input, char *searchword)
+{
+       D_MSG_RETVM_IF(input == NULL, NULL, "input is NULL");
+       D_MSG_RETVM_IF(searchword == NULL, NULL, "searchword is NULL");
+
+       char *found = (char *)strcasestr(input, searchword);
+       if (found == NULL)
+               return NULL;
+
+       int diff = found - input;
+       char *first_str = g_strndup(input, diff);
+
+       char *markup_first = elm_entry_utf8_to_markup(first_str);
+       char *markup_searchword = elm_entry_utf8_to_markup(searchword);
+       char *markup_last = elm_entry_utf8_to_markup(input + diff + strlen(searchword));
+
+       char *string = g_strconcat(markup_first, "<match>", markup_searchword, "</match>", markup_last, NULL);
+
+       MSG_FREE(markup_first);
+       MSG_FREE(markup_searchword);
+       MSG_FREE(markup_last);
+       g_free(first_str);
+
+       return string;
+}
+
+bool is_web_uri(const char *uri)
+{
+       D_MSG_RETVM_IF(uri == NULL, false, "uri is NULL");
+
+       static const char *web_protocal_name[] = {
+               "http://",
+               "https://",
+               "ftp://",
+               NULL,
+       };
+
+       int i = 0;
+       while (web_protocal_name[i] != NULL) {
+               if (strncmp(uri, web_protocal_name[i], strlen(web_protocal_name[i])) == 0) {
+                       D_SEC_MSG("uri %s is web uri", uri);
+                       return true;
+               }
+
+               i++;
+       }
+
+       D_SEC_MSG("Not web uri. %s", uri);
+       return false;
+}
+
+unsigned int msg_ui_composer_convert_atoh(const char *string)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(string == NULL, 0, "string is NULL");
+       unsigned int value = 0;
+       unsigned int digit = 0;
+       char c;
+
+       while ((c = *string++) != '\0') {
+               if (c >= '0' && c <= '9')
+                       digit = (unsigned int) (c - '0');
+               else if (c >= 'a' && c <= 'f')
+                       digit = (unsigned int) (c - 'a') + 10;
+               else if (c >= 'A' && c <= 'F')
+                       digit = (unsigned int) (c - 'A') + 10;
+               else
+                       break;
+
+               value = (value << 4) + digit;
+       }
+
+       return value;
+}
+
+#ifdef MSG_CONVERT_LOG
+void msg_util_dump_text_to_hex(const unsigned char *pText, int length)
+{
+       D_MSG("=======================================");
+       D_MSG("   Dump Text To Hex - Length :%d\n", length);
+       D_MSG("=======================================");
+
+       int i = 0;
+       for (i = 0; i < length; i++) {
+               D_MSG("[%02x]", pText[i]);
+       }
+
+       D_MSG("=======================================");
+}
+#endif
+
+COMPOSER_TEXT_EXCEPTION_CHAR_E msg_composer_check_exception_char_from_utf8(int encode_mode, const unsigned char *msg_text)
+{
+       D_MSG_RETVM_IF(msg_text == NULL, false, "msg_text is NULL");
+       COMPOSER_TEXT_EXCEPTION_CHAR_E result = COMPOSER_TEXT_HAS_NO_EXCEPTION_CHAR;
+       int ucs2Length = 0;
+       int textSize = strlen((char *)msg_text);
+       int bufSize = textSize * 4;
+       int remainedBuffer = bufSize;
+       unsigned char decodeData[bufSize];
+       unsigned char *temp = (unsigned char *)decodeData;
+       GIConv cd;
+       int err = 0;
+       int i = 0;
+#ifdef MSG_CONVERT_LOG
+       int srcLen = textSize;
+       const unsigned char *pTempSrcText = msg_text;
+       const unsigned char *pTempDestText = decodeData;
+#endif
+
+       memset(decodeData, 0x00, sizeof(decodeData));
+
+       cd = g_iconv_open("UCS-4BE", "UTF8");
+
+       if (cd > 0)
+               err = g_iconv(cd, (char **)&msg_text, (gsize*)&textSize, (char **)&temp, (gsize*)&remainedBuffer);
+
+       if (err < 0) {
+               D_EMSG("Error in g_iconv(%d)", err);
+               ucs2Length = -1;
+       } else {
+               ucs2Length = bufSize - remainedBuffer;
+       }
+
+#ifdef MSG_CONVERT_LOG
+       D_MSG("########## Dump UTF8 -> UCS4");
+       msg_util_dump_text_to_hex((unsigned char *)pTempSrcText, srcLen);
+       msg_util_dump_text_to_hex((unsigned char *)pTempDestText, ucs2Length);
+#endif
+
+       for (i = 0; i < ucs2Length; i++) {
+               unsigned int value = 0;
+               unsigned char byte1 = 0;
+               unsigned char byte2 = 0;
+               unsigned char byte3 = 0;
+               unsigned char byte4 = 0;
+
+               byte1 = decodeData[i++];
+               value = (byte1 << 24) & 0xFF000000;
+               byte2 = decodeData[i++];
+               value = value | ((byte2 << 16) & 0xFF0000);
+               byte3 = decodeData[i++];
+               value = value | ((byte3 << 8) & 0xFF00);
+               byte4 = decodeData[i];
+               value = value | byte4;
+
+#ifdef MSG_CONVERT_LOG
+               D_MSG("value = [%08x]", value);
+#endif
+               /* When Emot Icons Entered. it should not be converted to MMS, So disable the check for Emot Icons*/
+#ifdef _CONVERT_SMS_TO_MMS_IF_EMOTICON_PRESENT
+               if ((value >= 0x1F600 && value <= 0x1F64F) || /* Emoticons */
+                       (value >= 0x1F680 && value <= 0x1F6FF) || /*Transport and Map Symbols*/
+                       (value >= 0x1F300 && value <= 0x1F5FF) || /*Miscellaneous Symbols and Pictographs*/
+                       (value >= 0x2600 && value <= 0x26FF)) { /* Miscellaneous Symbols */
+                       result = COMPOSER_TEXT_HAS_EMOTICON;
+                       D_MSG("emoticon character");
+                       break;
+               }
+#endif
+               if (encode_mode == MSG_ENCODE_GSM7BIT) {
+                       if ((value >= 0xAC00 && value <= 0xD7AF) || /*korean*/
+                               (value >= 0x1100 && value <= 0x11FF) ||
+                               (value >= 0x3130 && value <= 0x318F) ||
+                               (value >= 0xFF00 && value <= 0xFFEF)) {
+                               result = COMPOSER_TEXT_HAS_KOREAN;
+                       }
+               }
+       }
+
+       g_iconv_close(cd);
+
+       return result;
+}
+
+Eina_Bool msg_ui_composer_ignore_hw_back_events_timer_cb(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       cd->ignore_hw_back_events_timer = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+bool msg_ui_composer_check_pkg_existence(const char *pkgname)
+{
+       D_MSG_RETVM_IF(pkgname == NULL, false, "pkgname is NULL");
+       app_info_filter_h filter = NULL;
+       int pkg_count = 0;
+       bool ret = false;
+
+       if (app_info_filter_create(&filter) != APP_MANAGER_ERROR_NONE) {
+               D_EMSG("app_info_filter_create is failed");
+               return ret;
+       }
+
+       if (app_info_filter_add_string(filter, PACKAGE_INFO_PROP_APP_ID, pkgname) != APP_MANAGER_ERROR_NONE) {
+               D_EMSG("app_info_filter_add_string is failed");
+               goto out;
+       }
+
+       if (app_info_filter_count_appinfo(filter, &pkg_count) != APP_MANAGER_ERROR_NONE) {
+               D_EMSG("app_info_filter_count_appinfo is failed");
+               goto out;
+       }
+
+       if (pkg_count >= 1)
+               ret = true;
+ out:
+       if (app_info_filter_destroy(filter) != APP_MANAGER_ERROR_NONE)
+               D_EMSG("app_info_filter_destroy failed");
+
+       return ret;
+}
+
diff --git a/composer/src/util/msg-ui-composer-util.h b/composer/src/util/msg-ui-composer-util.h
new file mode 100755 (executable)
index 0000000..e2ca0c0
--- /dev/null
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_COMPOSER_UTIL_H__
+#define __MSG_COMPOSER_UTIL_H__
+#include "msg-ui-composer-data.h"
+#include <glib-object.h>
+#include <glib.h>
+#include <ui-gadget-module.h>
+#include "msg-ui-util.h"
+#include <Elementary.h>
+
+#define MSG_STRDUP(src) (NULL != src) ? strdup(src) : NULL
+
+#define MSGC_EVAS_OBJECT_DEL(src) do {\
+       if (src) {\
+               evas_object_del(src);\
+               src = NULL;\
+       }\
+} while(0)
+
+#define MSGC_IMAGE_CHANGE_RESIZE (0x0001)
+#define MSGC_IMAGE_CHANGE_ROTATION (0x0010)
+#define MSGC_IMAGE_CHANGE_QUAILTY (0x0100)
+
+typedef enum {
+       COMPOSER_UTIL_ADDRTYPE_INVALID,
+       COMPOSER_UTIL_ADDRTYPE_NUMBER,
+       COMPOSER_UTIL_ADDRTYPE_EMAIL,
+       COMPOSER_UTIL_ADDRTYPE_MAX,
+} COMPOSER_UTIL_ADDRTYPE_E;
+
+typedef enum {
+       COMPOSER_UTIL_RET_SUCCESS                               = 0,
+       COMPOSER_UTIL_RET_ERR                                   = -1,
+       COMPOSER_UTIL_RET_ALLOWED                               = -2,
+       COMPOSER_UTIL_RET_ALLOWED_WITH_RESIZE   = -3,
+       COMPOSER_UTIL_RET_NOT_ALLOWED                   = -4,
+} COMPOSER_UTIL_RETURN_E;
+
+typedef enum {
+       COMPOSER_UTIL_LIST_TYPE_RECIPIENT,
+       COMPOSER_UTIL_LIST_TYPE_FILE,
+} COMPOSER_UTIL_LIST_TYPE_E;
+
+
+/******************************
+ * structures
+ *******************************/
+typedef struct _MSGC_UTIL_CHANGE_IMAGE_S {
+       int type;
+       int dest_width;
+       int dest_height;
+       int rotation;
+       int quality;
+} MSGC_UTIL_CHANGE_IMAGE_S;
+
+COMPOSER_UTIL_ADDRTYPE_E get_address_type(const char *address);
+Eina_Bool IsMultipleNumber(int index);
+Eina_Bool IsValidNumber(const char *address);
+Eina_Bool IsVaildEmailAddress(const char *address);
+bool is_duplicated_number(int min_match_digit, const char *number1, const char *number2);
+
+int get_contact_index_by_recipient(const char *phone_number);
+int get_contact_index_by_name(const char *phone_number);
+int get_contact_display_name_by_index(int index, char *dest, int dest_size);
+int get_contact_default_recipient_by_index(int index, char *dest, int dest_size);
+int get_contact_default_number_by_index(int index, char *dest, int dest_size);
+int get_contact_default_email_by_index(int index, char *dest, int dest_size);
+bool msg_composer_get_vcf_file_by_index(int index, const char *file_dir, char *dest_file_path, int dest_path_size);
+bool msg_composer_get_vcf_file_by_index_list(int *index_list, int list_cnt, const char *file_dir, char *dest_file_path, int dest_path_size);
+
+void msg_composer_remove_file(const char *path);
+char *msg_composer_create_working_dir(void);
+void msg_composer_destroy_working_dir(const char *path);
+
+bool msg_composer_get_mms_alert(bool *mms_alert);
+bool msg_composer_set_flight_mode(void *handle, int type, void *callback, void *user_data);
+
+void convert_ps_to_br(char *input);
+void convert_CRLF_to_space(char *input);
+
+Eina_List *make_tokenize_list(const char *ori_string, const char *sep, COMPOSER_UTIL_LIST_TYPE_E type, bool *is_sound_and_shot);
+int remove_space(const char *src, char *dest, int dest_size);
+bool check_delimiter_character(const char *address);
+bool is_all_exception_characters(const char *address);
+
+int jpeg_image_get_rotation(const char *src_file_path, int *rotation);
+int jpeg_image_get_resolution(const char *src_file_path, int *dst_w, int *dst_h);
+int jpeg_image_change_image(const char *src_file_path, MSGC_UTIL_CHANGE_IMAGE_S *req, const char *dst_file_path);
+bool image_is_soundscene(const char *file);
+
+COMPOSER_UTIL_RETURN_E msg_composer_is_allowed_creation_mode(const char *file_path, COMPOSER_MEDIA_TYPE_E media_type, int creation_mode, int composer_mode);
+
+char *search_markup_keyword(const char *input, char *searchword);
+bool is_web_uri(const char *uri);
+
+unsigned int msg_ui_composer_convert_atoh(const char *string);
+COMPOSER_TEXT_EXCEPTION_CHAR_E msg_composer_check_exception_char_from_utf8(int encode_mode, const unsigned char *msg_text);
+Eina_Bool msg_ui_composer_ignore_hw_back_events_timer_cb(void *data);
+bool msg_build_contactname_str_check(const char *filedir, const char *filename, int dup_index, char *filepath, int filepath_len);
+
+bool msg_ui_composer_check_pkg_existence(const char *pkgname);
+
+#endif /*__MSG_COMPOSER_UTIL_H__*/
diff --git a/dialog/CMakeLists.txt b/dialog/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..d940b09
--- /dev/null
@@ -0,0 +1,47 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(message C)
+
+SET(MESSAGE_DIALOG message-dialog)
+SET(SRCS ./message-dialog.c)
+SET(CMAKE_SKIP_BUILD_RPATH TRUE)
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+       SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_COMMON_DIR}
+                               ${CMAKE_SOURCE_DIALOG_DIR}
+                               /usr/include/msg-service/
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED elementary dlog capi-appfw-application)
+
+FOREACH(flag ${pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fpie")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+       MESSAGE("add -DTARGET")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+ADD_DEFINITIONS("-DDEBUG")
+ADD_DEFINITIONS("-DDEBUG_ON")
+ADD_DEFINITIONS("-DLCD_TYPE_WVGA")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+
+ADD_EXECUTABLE(${MESSAGE_DIALOG} ${SRCS})
+TARGET_LINK_LIBRARIES(${MESSAGE_DIALOG} ${pkgs_LDFLAGS})
+
+INSTALL(TARGETS ${MESSAGE_DIALOG} DESTINATION bin)
+
+# i18n
+#ADD_SUBDIRECTORY(po)
diff --git a/dialog/message-dialog.c b/dialog/message-dialog.c
new file mode 100755 (executable)
index 0000000..8c2f60b
--- /dev/null
@@ -0,0 +1,414 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "message-dialog.h"
+#include "app_control.h"
+
+
+#define KEY_PHONE "XF86Phone"
+
+static void __msg_ui_dialog_popup_right_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_dialog_always_ask_left_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static int __msg_ui_dialog_create_always_ask_popup(void *data);
+
+static void __msg_ui_dialog_rotation_changed_cb(void *data, Evas_Object *obj, void *event);
+static void __msg_ui_dialog_win_del(void *data, Evas_Object *obj, void *event);
+static Evas_Object *__msg_ui_dialog_create_win(const char *name);
+
+
+void msg_ui_dialog_exit(void *data)
+{
+       D_ENTER;
+
+       struct appdata *ad = data;
+
+       if (ad->msg) {
+               g_free(ad->msg);
+               ad->msg = NULL;
+       }
+
+       if (ad->url) {
+               g_free(ad->url);
+               ad->url = NULL;
+       }
+
+       if (ad->sender) {
+               g_free(ad->sender);
+               ad->sender = NULL;
+       }
+
+       if (ad->popup != NULL) {
+               evas_object_del(ad->popup);
+               ad->popup = NULL;
+       }
+
+       if (ad->main_window != NULL) {
+               evas_object_del(ad->main_window);
+               ad->main_window = NULL;
+       }
+
+       elm_exit();
+}
+
+static Eina_Bool __msg_ui_dialog_keydown_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       if (data == NULL) {
+               D_EMSG("data is null, calling elm_exit...\n");
+               elm_exit();
+               return EINA_FALSE;
+       }
+
+       struct appdata *ad = data;
+       int i;
+       int count = 0;
+       Ecore_Event_Key *ev = event;
+
+       D_MSG("KEY = %s\n", ev->keyname);
+
+       if ((!strcmp(ev->keyname, KEY_END)) || (!strcmp(ev->keyname, KEY_PHONE))) {
+               D_MSG("keyname = %s ...calling elm_exit...\n", ev->keyname);
+               if (ad->popup_list == NULL) {
+                       msg_ui_dialog_exit(ad);
+                       return EINA_FALSE;
+               }
+
+               if (ad->popup_list) {
+                       count = eina_list_count(ad->popup_list);
+                       D_MSG("popup list count = %d", count);
+/*If popup count is more than one On back key press, Topmost popup will be deleted otherwise on home key
+press all the popup should be deleted and app should terminate*/
+                       if (count > 1 && (!strcmp(ev->keyname, KEY_END))) {
+                               Evas_Object *popup = (Evas_Object *)eina_list_data_get(eina_list_last(ad->popup_list));
+                               if (popup != NULL) {
+                                       ad->popup_list = eina_list_remove(ad->popup_list, popup);
+                                       evas_object_del(popup);
+                                       popup = NULL;
+                               }
+                       } else {
+                               if (count > 0) {
+                                       for (i = 0; i < count; i++) {
+                                               D_MSG("count = %d", count);
+                                               Evas_Object *list_popup = (Evas_Object *) eina_list_nth(ad->popup_list, i);
+                                               if (list_popup != NULL) {
+                                                       D_MSG("Deleting list_popup [%d]", i);
+                                                       evas_object_del(list_popup);
+                                                       list_popup = NULL;
+                                               }
+                                       }
+                               }
+                               msg_ui_dialog_exit(ad);
+                               return EINA_FALSE;
+                       }
+               }
+       }
+
+       return EINA_TRUE;
+}
+
+static void __msg_ui_dialog_popup_right_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(!data, "data is NULL!!");
+
+       struct appdata *ad = data;
+       Evas_Object *popup = (Evas_Object *)evas_object_data_get(obj, "data");
+
+       if (ad->popup_list) {
+               D_MSG("popup list count = %d", eina_list_count(ad->popup_list));
+               if (eina_list_count(ad->popup_list) > 1) {
+                       ad->popup_list = eina_list_remove(ad->popup_list, popup);
+                       if (popup != NULL) {
+                               evas_object_del(popup);
+                               popup = NULL;
+                       }
+               } else {
+                       ad->popup = popup;
+                       msg_ui_dialog_exit(ad);
+               }
+       } else {
+               D_EMSG("popup_list is not exist");
+       }
+
+
+}
+
+static void __msg_ui_dialog_always_ask_left_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(!data, "data is NULL!!");
+
+       struct appdata *ad = data;
+       app_control_h svc_h;
+       int ret = APP_CONTROL_ERROR_NONE;
+
+       ret = app_control_create(&svc_h);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_create() is failed : %d", ret);
+               return;
+       }
+
+       ret = app_control_set_operation(svc_h, APP_CONTROL_OPERATION_VIEW);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_set_operation() is failed : %d", ret);
+               goto DESTROY;
+       }
+
+       ret = app_control_set_uri(svc_h, ad->url);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_set_uri() is failed : %d", ret);
+               goto DESTROY;
+       }
+
+       ret = app_control_send_launch_request(svc_h, NULL, NULL);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               D_EMSG("app_control_send_launch_request() is failed : %d", ret);
+       }
+
+DESTROY:
+       ret = app_control_destroy(svc_h);
+       D_MSG("app_control_destroy() returns : %d", ret);
+
+       msg_ui_dialog_exit(ad);
+}
+
+static int __msg_ui_dialog_create_always_ask_popup(void *data)
+{
+       D_ENTER;
+
+       struct appdata *ad = data;
+       char display_msg[DEF_BUF_LEN] = { 0, };
+       char question_msg[DEF_BUF_LEN] = { 0, };
+       Evas_Object *btn1;
+       Evas_Object *btn2;
+
+       const char *str = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q");
+       snprintf(question_msg, sizeof(question_msg), str, ad->url);
+
+       snprintf(display_msg, sizeof(display_msg), "%s", question_msg);
+
+       Evas_Object *popup;
+       popup = elm_popup_add(ad->main_window);
+       if (popup == NULL) {
+               D_EMSG("Cannot add popup object !!");
+               return MSG_UI_RET_ERR;
+       }
+
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSGF_BODY_PUSH_MESSAGES");
+
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_text_set(popup, display_msg);
+
+       btn1 = elm_button_add(popup);
+       elm_object_style_set(btn1, "popup");
+       elm_object_domain_translatable_text_set(btn1, MESSAGE_PKGNAME, "IDS_MSG_BODY_YES");
+       elm_object_part_content_set(popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", __msg_ui_dialog_always_ask_left_btn_cb, ad);
+
+       btn2 = elm_button_add(popup);
+       elm_object_style_set(btn2, "popup");
+       elm_object_domain_translatable_text_set(btn2, MESSAGE_PKGNAME, "IDS_MSG_SK_NO_ABB");
+       elm_object_part_content_set(popup, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", __msg_ui_dialog_popup_right_btn_cb, ad);
+
+       evas_object_data_set(btn2, "data", popup);
+       ad->popup_list = eina_list_append(ad->popup_list, popup);
+
+       evas_object_show(popup);
+
+       D_LEAVE;
+
+       return MSG_UI_RET_SUCCESS;
+}
+
+static void __msg_ui_dialog_rotation_changed_cb(void *data, Evas_Object *obj, void *event)
+{
+       struct appdata *ad = data;
+
+       if (ad == NULL || ad->main_window == NULL)
+               return;
+
+       int changed_rotation = elm_win_rotation_get(obj);
+
+       if (changed_rotation != ad->cur_rotation) {
+               D_MSG("current rotation [%d], changed rotation [%d]", ad->cur_rotation, changed_rotation);
+               ad->cur_rotation = changed_rotation;
+       }
+}
+
+static void __msg_ui_dialog_win_del(void *data, Evas_Object *obj, void *event)
+{
+       D_ENTER;
+
+       elm_exit();
+}
+
+static Evas_Object *__msg_ui_dialog_create_win(const char *name)
+{
+       Evas_Object *eo = NULL;
+       int w, h;
+
+       eo = elm_win_add(NULL, name, ELM_WIN_DIALOG_BASIC);
+       if (eo) {
+               elm_win_alpha_set(eo, EINA_TRUE);
+               elm_win_title_set(eo, name);
+               elm_win_raise(eo);
+               evas_object_smart_callback_add(eo, "delete,request", __msg_ui_dialog_win_del, NULL);
+               ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+               evas_object_resize(eo, w, h);
+               evas_object_show(eo);
+       }
+
+       return eo;
+}
+
+static bool app_create(void *data)
+{
+       D_ENTER;
+
+       struct appdata *ad = data;
+
+       /* init internationalization */
+       if (bindtextdomain(MESSAGE_PKGNAME, LOCALEDIR) == NULL) {
+               D_EMSG("bindtextdomain() is failed !!");
+               return FALSE;
+       }
+
+       if (textdomain(MESSAGE_PKGNAME) == NULL) {
+               D_EMSG("textdomain() is failed !!");
+               return FALSE;
+       }
+
+       /* Create main window */
+       ad->main_window = __msg_ui_dialog_create_win(PACKAGE);
+       if (ad->main_window == NULL) {
+               D_EMSG("__msg_ui_dialog_create_win() is failed !!");
+               return FALSE;
+       }
+
+       if (elm_win_wm_rotation_supported_get(ad->main_window)) {
+               int rotation[4] = {0, 90, 180, 270};
+               elm_win_wm_rotation_available_rotations_set(ad->main_window, rotation, 4);
+               ad->cur_rotation = elm_win_rotation_get(ad->main_window);
+               D_MSG("current rotation %d", ad->cur_rotation);
+               evas_object_smart_callback_add(ad->main_window, "wm,rotation,changed", __msg_ui_dialog_rotation_changed_cb, ad);
+       }
+       ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, __msg_ui_dialog_keydown_cb, ad);
+       return TRUE;
+}
+
+static void app_terminate(void *data)
+{
+       D_ENTER;
+       struct appdata *ad = data;
+
+       if (ad->main_window) {
+               evas_object_del(ad->main_window);
+               ad->main_window = NULL;
+    }
+}
+
+static void app_pause(void *data)
+{
+       D_ENTER;
+}
+
+static void app_resume(void *data)
+{
+       D_ENTER;
+}
+
+static void app_service(app_control_h service, void *data)
+{
+       D_ENTER;
+
+       struct appdata *ad = data;
+       char *strMode = NULL;
+       int mode = 0;
+
+       app_control_get_extra_data(service, MSG_BUNDLE_KEY_MODE, &strMode);
+       D_MSG("strMode : %s", strMode);
+       if (strMode != NULL) {
+               if (strcmp(strMode, "WAP_PUSH_SL") == 0) {
+                       char *strText = NULL;
+                       char *strUrl = NULL;
+                       char *strAddress = NULL;
+
+                       mode = MSG_UI_DIALOG_MODE_WAP_PUSH_SL;
+
+                       app_control_get_extra_data(service, "url", &strUrl);
+                       if (strUrl != NULL) {
+                               D_SEC_MSG("strUrl : %s", strUrl);
+                               ad->url = strdup(strUrl);
+                               free(strUrl);
+                       }
+
+                       app_control_get_extra_data(service, "address", &strAddress);
+                       if (strAddress != NULL) {
+                               D_SEC_MSG("strAddress : %s", strAddress);
+                               ad->sender = strdup(strAddress);
+                               free(strAddress);
+                       }
+
+                       app_control_get_extra_data(service, "text", &strText);
+                       if (strText != NULL) {
+                               D_SEC_MSG("strText : %s", strText);
+                               ad->msg = strdup(strText);
+                               free(strText);
+                       }
+               } else {
+                       D_EMSG("Invalid mode !!");
+                       free(strMode);
+                       return;
+               }
+
+               free(strMode);
+               ad->dialog_mode = mode;
+       }
+
+       if (ad->dialog_mode == MSG_UI_DIALOG_MODE_WAP_PUSH_SL) {
+               if (__msg_ui_dialog_create_always_ask_popup(ad) < 0) {
+                       D_EMSG("__msg_ui_dialog_create_always_ask_popup() is failed !!");
+                       return;
+               }
+       } else {
+               D_EMSG("Invalid mode : %d", mode);
+       }
+}
+
+__EXPORT_API__ int main(int argc, char **argv)
+{
+       D_ENTER;
+
+       msg_common_init_default_preference();
+
+       struct appdata ad;
+       memset(&ad, 0x0, sizeof(struct appdata));
+
+       ui_app_lifecycle_callback_s event_callback = {0,};
+
+       event_callback.create = app_create;
+       event_callback.terminate = app_terminate;
+       event_callback.pause = app_pause;
+       event_callback.resume = app_resume;
+       event_callback.app_control = app_service;
+
+       return ui_app_main(argc, argv, &event_callback, &ad);
+}
diff --git a/dialog/message-dialog.h b/dialog/message-dialog.h
new file mode 100755 (executable)
index 0000000..a2fd465
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_message_dialog_H_
+#define __DEF_message_dialog_H_
+
+#include <stdio.h>
+#include <glib.h>
+#include <Elementary.h>
+#include <app.h>
+#include <utilX.h>
+#include <Ecore_X.h>
+#include "msg-ui-util.h"
+
+
+#define PACKAGE "message_dialog" /* for i18n */
+
+
+typedef enum {
+               MSG_UI_DIALOG_MODE_WAP_PUSH_SL,
+
+               MSG_UI_DIALOG_MODE_MAX
+
+} MSG_UI_DIALOG_MODE;
+
+struct appdata {
+       Evas_Object *main_window;
+       Evas_Object *popup;
+       Eina_List *popup_list;
+
+       /* argument */
+       MSG_UI_DIALOG_MODE dialog_mode;
+       char *url;
+       char *msg;
+       char *sender;
+       int cur_rotation;
+
+};
+
+void msg_ui_dialog_exit(void *data);
+int main(int argc, char **argv);
+
+#endif /* __DEF_message_dialog_H_ */
+
diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..69cbfaf
--- /dev/null
@@ -0,0 +1,108 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(message C)
+
+SET(SRCS
+       message.c
+       ${CMAKE_SOURCE_THREAD_DIR}/src/msg-ui-thread-main.c
+       ${CMAKE_SOURCE_THREAD_DIR}/src/msg-ui-thread-list.c
+       ${CMAKE_SOURCE_THREAD_DIR}/src/msg-ui-thread-callback.c
+       ${CMAKE_SOURCE_THREAD_DIR}/src/msg-ui-thread-util.c
+)
+
+SET(THREAD_GENLIST  thread_genlist)
+SET(THREAD_GENLIST_MACRO  thread_genlist_macro)
+
+SET(CMAKE_SKIP_BUILD_RPATH TRUE)
+SET(CMAKE_INSTALL_RPATH "${LIBDIR}")
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+       SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+INCLUDE_DIRECTORIES(
+       ${CMAKE_SOURCE_COMMON_DIR}
+       ${CMAKE_SOURCE_MAIN_DIR}
+       ${CMAKE_SOURCE_THREAD_DIR}/include
+)
+
+FOREACH(flag ${pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fpie")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+       MESSAGE("add -DTARGET")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+ADD_DEFINITIONS("-DDEBUG")
+ADD_DEFINITIONS("-DDEBUG_ON")
+ADD_DEFINITIONS("-DLCD_TYPE_WVGA")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${CMAKE_LDFLAGS} msg-common)
+
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/message.manifest.in ${CMAKE_BINARY_DIR}/${PKGNAME}.manifest)
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/message.xml.in ${PKGNAME}.xml)
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/message.efl.in ${PKGNAME}.efl)
+
+#Install desktop file & icon.
+INSTALL(TARGETS message DESTINATION bin)
+INSTALL(FILES ${PKGNAME}.xml DESTINATION /usr/share/packages)
+INSTALL(FILES ${CMAKE_SOURCE_COMMON_DIR}/data/icons/${PKGNAME}.png DESTINATION ${ICONDIR})
+INSTALL(FILES ${CMAKE_SOURCE_COMMON_DIR}/data/icons/${PKGNAME}.png DESTINATION /usr/share/icons/default/small)
+INSTALL(FILES ${CMAKE_SOURCE_COMMON_DIR}/data/icons/noti_emergency_mode.png DESTINATION ${ICONDIR})
+INSTALL(FILES ${CMAKE_SOURCE_COMMON_DIR}/data/icons/status_bar_message.png DESTINATION ${ICONDIR})
+INSTALL(FILES ${CMAKE_SOURCE_COMMON_DIR}/data/icons/status_bar_cancel_message.png DESTINATION ${ICONDIR})
+INSTALL(FILES ${CMAKE_SOURCE_COMMON_DIR}/data/icons/status_bar_delivery_report_message.png DESTINATION ${ICONDIR})
+INSTALL(FILES ${CMAKE_SOURCE_COMMON_DIR}/data/icons/status_bar_read_report_message.png DESTINATION ${ICONDIR})
+INSTALL(FILES ${CMAKE_SOURCE_COMMON_DIR}/data/icons/status_bar_voicemail.png DESTINATION ${ICONDIR})
+INSTALL(FILES ${CMAKE_SOURCE_COMMON_DIR}/data/icons/status_bar_sim_card_full.png DESTINATION ${ICONDIR})
+INSTALL(DIRECTORY ${CMAKE_SOURCE_COMMON_DIR}/data/images/ DESTINATION ${IMGDIR} FILES_MATCHING PATTERN "*.png")
+INSTALL(DIRECTORY ${CMAKE_SOURCE_COMMON_DIR}/data/images/ DESTINATION ${IMGDIR} FILES_MATCHING PATTERN "*.PNG")
+INSTALL(DIRECTORY ${CMAKE_SOURCE_COMMON_DIR}/data/sound/ DESTINATION ${SNDDIR} FILES_MATCHING PATTERN "*.wav")
+INSTALL(DIRECTORY DESTINATION ${DATADIR})
+INSTALL(FILES ${PKGNAME}.efl DESTINATION /etc/smack/accesses.d/)
+
+#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 -no-save ${EDJE_CC_DEFINITIONS} -id ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image -sd ${CMAKE_SOURCE_COMMON_DIR}/data/sound
+                ${CMAKE_SOURCE_THREAD_DIR}/theme/${THREAD_GENLIST}.edc ${CMAKE_SOURCE_THREAD_DIR}/theme/${THREAD_GENLIST}.edj
+                DEPENDS ${CMAKE_SOURCE_THREAD_DIR}/theme/${THREAD_GENLIST}.edc
+)
+
+ADD_CUSTOM_TARGET(${THREAD_GENLIST_MACRO}.edj
+                COMMAND edje_cc -no-save ${EDJE_CC_DEFINITIONS} -id ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image -sd ${CMAKE_SOURCE_COMMON_DIR}/data/sound
+                ${CMAKE_SOURCE_THREAD_DIR}/theme/${THREAD_GENLIST_MACRO}.edc ${CMAKE_SOURCE_THREAD_DIR}/theme/${THREAD_GENLIST_MACRO}.edj
+                DEPENDS ${CMAKE_SOURCE_THREAD_DIR}/theme/${THREAD_GENLIST_MACRO}.edc
+)
+
+ADD_DEPENDENCIES(${PROJECT_NAME} ${THREAD_GENLIST}.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} ${THREAD_GENLIST_MACRO}.edj)
+
+INSTALL(FILES ${CMAKE_SOURCE_THREAD_DIR}/theme/${THREAD_GENLIST}.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_SOURCE_THREAD_DIR}/theme/${THREAD_GENLIST_MACRO}.edj DESTINATION ${EDJDIR})
+
+# fake edj
+ADD_CUSTOM_TARGET(${PKGNAME}-portrait.edj
+                COMMAND edje_cc -no-save ${EDJE_CC_DEFINITIONS}
+                ${CMAKE_SOURCE_MAIN_DIR}/${PKGNAME}-portrait.edc ${CMAKE_BINARY_DIR}/${PKGNAME}-portrait.edj
+                DEPENDS ${CMAKE_SOURCE_MAIN_DIR}/${PKGNAME}-portrait.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} ${PKGNAME}-portrait.edj)
+
+INSTALL(FILES ${CMAKE_BINARY_DIR}/${PKGNAME}-portrait.edj DESTINATION ${PREFIX}/shared/res)
+
+# i18n
+ADD_SUBDIRECTORY(po)
+
diff --git a/main/message.c b/main/message.c
new file mode 100755 (executable)
index 0000000..4f1d2ff
--- /dev/null
@@ -0,0 +1,1904 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "message.h"
+#include <app.h>
+#include <Ecore_X.h>
+#include <ui-gadget.h>
+#include <ui-gadget-module.h>
+#include <sound_manager.h>
+#include <contacts.h>
+
+#include "msg-ui-thread-main.h"
+#include "msg-ui-common-utility.h"
+
+extern int ug_create_cb(void (*create_cb)(char*, char*, char*, void*), void *user_data);
+
+static void __msg_ui_popup_warning(Evas_Object *parent, const char *msg);
+static app_control_h __get_service_with_msg_id(struct appdata *ad, app_control_h service);
+
+void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+void result_cb(ui_gadget_h ug, app_control_h result, void *priv);
+void destroy_cb(ui_gadget_h ug, void *priv);
+
+void viewer_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+void viewer_destroy_cb(ui_gadget_h ug, void *priv);
+
+struct appdata *gAppData = NULL;
+
+static int __is_relaunch = 0;
+
+static void msg_ui_sim_msg_list_ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!ug, "ug is NULL");
+       D_MSG_RETM_IF(!priv, "priv is NULL");
+
+       Evas_Object *base = NULL;
+
+       base = ug_get_layout(ug);
+       if (!base) {
+               ug_destroy(ug);
+               return;
+       }
+
+       switch (mode) {
+               case UG_MODE_FULLVIEW:
+                       evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_show(base);
+                       break;
+               case UG_MODE_FRAMEVIEW:
+               default:
+                       break;
+       }
+}
+
+static void msg_ui_sim_msg_list_ug_destroy_cb(ui_gadget_h ug, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!ug, "ug is NULL");
+       D_MSG_RETM_IF(!priv, "priv is NULL");
+
+       struct appdata *ad = (struct appdata *)priv;
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)ad->thread_data;
+
+       if (ug == ad->setting_ug) {
+               ug_destroy(ug);
+               ad->setting_ug = NULL;
+       }
+
+       if (!ad->thread_data) {
+               ui_app_exit();
+       }
+
+       /* recover focus moving of caller ug. it is added for screen reader */
+
+       if (pData && pData->layout_main) {
+               elm_object_tree_focus_allow_set(pData->layout_main, EINA_TRUE);
+       }
+
+       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+       if (pListData && pListData->composer_btn && pListData->search_mode != THREAD_SEARCH_ON) {
+               msg_ui_thread_show_composer_btn(pListData);
+       }
+
+       D_LEAVE;
+}
+static void win_del(void *data, Evas_Object *obj, void *event)
+{
+       elm_exit();
+}
+
+static void main_quit_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       elm_exit();
+}
+
+static void lang_changed(app_event_info_h event_info, void *data)
+{
+       D_ENTER;
+       struct appdata *ad = data;
+
+       char *language_set = NULL;
+       system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &language_set);
+
+       if (language_set) {
+               elm_language_set(language_set);
+               free(language_set);
+               language_set = NULL;
+       }
+
+       ug_send_event(UG_EVENT_LANG_CHANGE);
+       msg_ui_thread_lang_changed(ad->thread_data);
+}
+
+static void low_battery_cb(app_event_info_h event_info, void *data)
+{
+       D_ENTER;
+
+       ug_send_event(UG_EVENT_LOW_BATTERY);
+}
+
+static void region_changed_cb(app_event_info_h event_info, void *data)
+{
+       D_ENTER;
+       struct appdata *ad = data;
+
+       ug_send_event(UG_EVENT_REGION_CHANGE);
+       msg_ui_thread_region_changed(ad->thread_data);
+}
+
+static void rotation_changed_cb(void *data, Evas_Object *obj, void *event)
+{
+       D_ENTER;
+
+       struct appdata *ad = data;
+       int rot = THREAD_ROTATE_ANGLE_UNKNOWN;
+
+       int changed_rotation = elm_win_rotation_get(obj);
+
+       if (changed_rotation != ad->cur_rotation) {
+               D_MSG("current rotation [%d], changed rotation [%d]", ad->cur_rotation, changed_rotation);
+               ad->cur_rotation = changed_rotation;
+
+               switch (changed_rotation) {
+                       case 0:
+                               rot = THREAD_ROTATE_ANGLE_PORTRAIT;
+                               ug_send_event(UG_EVENT_ROTATE_PORTRAIT);
+                               break;
+                       case 90:
+                               rot = THREAD_ROTATE_ANGLE_LANDSCAPE_UPSIDEDOWN;
+                               ug_send_event(UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN);
+                               break;
+                       case 180:
+                               rot = THREAD_ROTATE_ANGLE_PORTRAIT_UPSIDEDOWN;
+                               ug_send_event(UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN);
+                               break;
+                       case 270:
+                               rot = THREAD_ROTATE_ANGLE_LANDSCAPE;
+                               ug_send_event(UG_EVENT_ROTATE_LANDSCAPE);
+                               break;
+                       default:
+                               rot = THREAD_ROTATE_ANGLE_UNKNOWN;
+                               break;
+               }
+       }
+
+       if (rot >= 0)
+               msg_ui_thread_rotation_set(ad->thread_data, rot);
+}
+
+static void _block_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       evas_object_del(obj);
+       elm_exit();
+}
+
+static void _back_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       evas_object_del(obj);
+       elm_exit();
+}
+
+static void __msg_ui_popup_warning(Evas_Object *parent, const char *msg)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ASSERT, parent == NULL || msg == NULL);
+
+       Evas_Object *layout, *pu;
+
+       evas_object_show(parent);
+
+       layout = elm_layout_add(parent);
+       elm_layout_theme_set(layout, "layout", "application", "default");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(parent, layout);
+       evas_object_show(layout);
+
+       pu = elm_popup_add(layout);
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ASSERT, pu == NULL, "Cannot add popup object\n");
+
+       elm_popup_align_set(pu, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(pu, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_smart_callback_add(pu , "block,clicked", _block_clicked_cb, NULL);
+       eext_object_event_callback_add(pu, EEXT_CALLBACK_BACK, _back_clicked_cb, NULL);
+
+       elm_object_text_set(pu, msg);
+       elm_popup_timeout_set(pu, 2);
+       evas_object_smart_callback_add(pu, "timeout", main_quit_cb, NULL);
+       evas_object_show(pu);
+
+       D_LEAVE;
+}
+
+static app_control_h __get_service_app_svc_op(const char *operation, app_control_h service)
+{
+       if (service == NULL || operation == NULL)
+               return NULL;
+
+       char **recipient = NULL;
+       int number_of_recipients = 0;
+       app_control_h svc_handle = NULL;
+
+       D_MSG("operation = [%s]", operation);
+       if (g_strcmp0(operation, APP_CONTROL_OPERATION_DEFAULT) == 0) {
+               char *key_type = NULL;
+
+               app_control_get_extra_data(service, MSG_BUNDLE_KEY_TYPE, &key_type);
+               if (key_type) {
+                       if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_COMPOSE) == 0) {
+                               char *is_only_composer = NULL;
+                               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                       D_EMSG("app_control_create() is failed !!");
+                                       free(key_type);
+                                       return NULL;
+                               }
+
+                               app_control_get_extra_data_array(service, APP_CONTROL_DATA_TO, &recipient, &number_of_recipients);
+                               if (recipient) {
+                                       int i = 0;
+                                       for (i = 0; i < number_of_recipients; i++) {
+                                               D_SEC_MSG("RECIPIENT = [%s]", recipient[i]);
+
+                                               char *normalized_number = msg_common_make_normalized_number(recipient[i]);
+
+                                               if (normalized_number) {
+                                                       D_SEC_MSG("normalized_number = [%s]", normalized_number);
+                                                       recipient[i] = normalized_number;
+                                               }
+
+                                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TO, recipient[i]);
+
+                                               msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+                                               msg_thread_id_t thread_id = 0;
+
+                                               if (msgInfo) {
+                                                       msg_list_handle_t addr_list = NULL;
+                                                       msg_struct_t tmpAddr = NULL;
+
+                                                       if (msg_list_add_item(msgInfo, MSG_MESSAGE_ADDR_LIST_HND, &tmpAddr) == MSG_SUCCESS) {
+                                                               if (msg_common_is_valid_phone_number(recipient[i]))
+                                                                       msg_set_int_value(tmpAddr, MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_PLMN);
+                                                               else if (msg_common_is_valid_email_addr(recipient[i]))
+                                                                       msg_set_int_value(tmpAddr, MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_EMAIL);
+
+                                                               msg_set_int_value(tmpAddr, MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO);
+                                                               msg_set_str_value(tmpAddr, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, recipient[i], strlen(recipient[i]));
+                                                       }
+
+                                                       msg_get_list_handle(msgInfo, MSG_MESSAGE_ADDR_LIST_HND, (void **)&addr_list);
+                                                       if (addr_list)
+                                                               msg_get_thread_id_by_address2(gAppData->msgHandle, addr_list, &thread_id);
+                                                       else
+                                                               D_EMSG("addr_list is NULL");
+
+                                                       if (thread_id) {
+                                                               char buf_thread[DEF_BUF_LEN_S] = {0,};
+                                                               snprintf(buf_thread, sizeof(buf_thread), "%d", thread_id);
+                                                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf_thread);
+                                                       }
+
+                                                       msg_release_struct(&msgInfo);
+                                                       }
+                                               }
+                                       free(recipient);
+                               }
+
+
+                               /* add only composer mode */
+                               app_control_get_extra_data(service, MSG_BUNDLE_KEY_COMPOSER_ONLY, &is_only_composer);
+
+                               if (is_only_composer) {
+                                       if (!g_strcmp0(is_only_composer, MSG_BUNDLE_VALUE_YES)) {
+                                               char buf_only_composer[DEF_BUF_LEN_S] = {0,};
+                                               snprintf(buf_only_composer, sizeof(buf_only_composer), "%s", is_only_composer);
+                                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_COMPOSER_ONLY, buf_only_composer);
+                                       }
+
+                                       free(is_only_composer);
+                               }
+                       } else if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_SEND_FAILED_MSG) == 0) {
+                               /* Don't create svc_handle to show thread list view */
+                               D_MSG("send failed msg case. It will show thread list view");
+                       } else if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_NEW_MSG) == 0) {
+                               svc_handle = __get_service_with_msg_id(gAppData, service);
+
+                               char *buf = NULL;
+                               int storge_id = 0;
+                               char *lock_screen = NULL;
+
+                               app_control_get_extra_data(service, "CALLER", &lock_screen);
+                               if (lock_screen != NULL) {
+                                       if (g_strcmp0(lock_screen, "lock_screen") == 0) {
+                                               app_control_add_extra_data(svc_handle, "CALLER", "lock_screen");
+                                       }
+                                       MSG_FREE(lock_screen);
+                               }
+
+                               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_STORAGE_ID, &buf);
+                               if (buf != NULL) {
+                                       storge_id = atoi(buf);
+                                       free(buf);
+                                       buf = NULL;
+                               }
+
+                               if (storge_id != MSG_STORAGE_SIM) {
+                                       msg_struct_t sort_rule_t = msg_create_struct(MSG_STRUCT_SORT_RULE);
+                                       msg_struct_list_s peerList;
+                                       int i = 0;
+                                       int unread_thread_count = 0;
+                                       bool oneThread = true;
+
+                                       msg_set_int_value(sort_rule_t, MSG_SORT_RULE_SORT_TYPE_INT, MSG_SORT_BY_READ_STATUS);
+                                       msg_set_bool_value(sort_rule_t, MSG_SORT_RULE_ACSCEND_BOOL, false);
+
+                                       msg_get_thread_view_list(gAppData->msgHandle, sort_rule_t, &peerList);
+                                       msg_release_struct(&sort_rule_t);
+
+                                       /* 130325 - Todo. it should be fixed. launching performance. */
+                                       for (i = 0; i <= peerList.nCount - 1; i++) {
+                                               int unreadCnt = 0;
+
+                                               msg_get_int_value(peerList.msg_struct_info[i], MSG_THREAD_UNREAD_COUNT_INT, &unreadCnt);
+
+                                               if (unreadCnt > 0)
+                                                       unread_thread_count++;
+
+                                               if (unread_thread_count > 1) {
+                                                       oneThread = false;
+                                                       break;
+                                               }
+                                       }
+                                       msg_release_list_struct(&peerList);
+
+                                       D_MSG("unread_thread_count:%d", unread_thread_count);
+
+                                       if (oneThread == false) {
+                                               app_control_destroy(svc_handle);
+                                               svc_handle = NULL;
+                                       }
+                               }
+                       } else if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_MSG_ID) == 0) {
+                               svc_handle = __get_service_with_msg_id(gAppData, service);
+                       } else if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_REPLY) == 0) {
+                               svc_handle = __get_service_with_msg_id(gAppData, service);
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TYPE, MSG_BUNDLE_VALUE_REPLY);
+                       }  else {
+                               D_EMSG("Not supported type [%s]", key_type);
+                       }
+
+                       free(key_type);
+               }
+       }
+
+       D_LEAVE;
+       return svc_handle;
+}
+
+static app_control_h __get_service_with_msg_id(struct appdata *ad, app_control_h service)
+{
+       D_ENTER;
+
+       app_control_h svc_handle = NULL;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return NULL;
+       }
+
+       int msg_id = 0;
+       char *msg_id_str = NULL;
+       app_control_get_extra_data(service, MSG_BUNDLE_KEY_MSG_ID, &msg_id_str);
+
+       if (!msg_id_str) {
+               app_control_destroy(svc_handle);
+               return NULL;
+       }
+
+       msg_id = atoi(msg_id_str);
+       free(msg_id_str);
+
+       if (msg_id <= 0) {
+               app_control_destroy(svc_handle);
+               return NULL;
+       }
+
+       msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+       msg_error_t err = MSG_SUCCESS;
+
+       int thread_id = 0;
+       int contact_id = 0;
+       int storage_id = 0;
+       int folder_id = 0;
+       char buf_thread[DEF_BUF_LEN_S] = {0,};
+       char buf_storage[DEF_BUF_LEN_S] = {0,};
+       char buf_contact[DEF_BUF_LEN_S] = {0,};
+       char buf_folder[DEF_BUF_LEN_S] = {0,};
+
+       msg_list_handle_t addr_list = NULL;
+       char strNumber[DEF_THREAD_ADDR_LEN + 1] = {0,};
+       char strName[DEF_THREAD_NAME_LEN + 1] = {0,};
+
+       err = msg_get_message(ad->msgHandle, (msg_message_id_t)msg_id, msgInfo, sendOpt);
+
+       if (err != MSG_SUCCESS) {
+               D_EMSG("fail to msg_get_message : err = %d", err);
+               app_control_destroy(svc_handle);
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               return NULL;
+       }
+
+       msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, &thread_id);
+       snprintf(buf_thread, sizeof(buf_thread), "%d", thread_id);
+
+       msg_get_int_value(msgInfo, MSG_MESSAGE_STORAGE_ID_INT, &storage_id);
+       snprintf(buf_storage, sizeof(buf_storage), "%d", storage_id);
+
+       msg_get_int_value(msgInfo, MSG_MESSAGE_FOLDER_ID_INT, &folder_id);
+       snprintf(buf_folder, sizeof(buf_folder), "%d", folder_id);
+
+       msg_get_list_handle(msgInfo, MSG_MESSAGE_ADDR_LIST_HND, (void **)&addr_list);
+
+       msg_struct_t addr_info = NULL;
+       addr_info = (msg_struct_t)msg_list_nth_data(addr_list, 0);
+
+       msg_get_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, strNumber, DEF_THREAD_ADDR_LEN);
+       msg_get_str_value(addr_info, MSG_ADDRESS_INFO_DISPLAYNAME_STR, strName, DEF_THREAD_NAME_LEN);
+       msg_get_int_value(addr_info, MSG_ADDRESS_INFO_CONTACT_ID_INT, &contact_id);
+       snprintf(buf_contact, sizeof(buf_contact), "%d", contact_id);
+
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf_thread);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_NAME, strName);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ADDRESS, strNumber);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_CONTACT_ID, buf_contact);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_STORAGE_ID, buf_storage);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FOLDER_ID, buf_folder);
+
+       msg_release_struct(&msgInfo);
+       msg_release_struct(&sendOpt);
+
+       D_LEAVE;
+       return svc_handle;
+}
+
+static Evas_Object *__msg_ui_create_win(const char *name)
+{
+       D_MSG_RETVM_IF(!name, NULL, "name is NULL.");
+
+       Evas_Object *win = NULL;
+       int w = 0, h = 0;
+
+       win = elm_win_add(NULL, name, ELM_WIN_BASIC);
+
+       elm_win_title_set(win, name);
+       evas_object_smart_callback_add(win, "delete,request", win_del, NULL);
+
+       elm_win_screen_size_get(win, NULL, NULL, &w, &h);
+       evas_object_resize(win, w, h);
+       elm_win_conformant_set(win, EINA_TRUE);
+
+       return win;
+}
+
+static Evas_Object *__msg_ui_create_bg(Evas_Object *parent)
+{
+       D_MSG_RETVM_IF(!parent, NULL, "parent is NULL.");
+
+       Evas_Object *bg = NULL;
+
+       bg = elm_bg_add(parent);
+
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_part_content_set(parent, "elm.swallow.bg", bg);
+       elm_win_resize_object_add(parent, bg);
+       evas_object_show(bg);
+
+       return bg;
+}
+
+static Evas_Object *__msg_ui_create_conformant(Evas_Object *parent)
+{
+       D_MSG_RETVM_IF(!parent, NULL, "parent is NULL.");
+
+       Evas_Object *conformant = NULL;
+
+       conformant = elm_conformant_add(parent);
+       evas_object_size_hint_weight_set(conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(parent, conformant);
+       evas_object_show(conformant);
+
+       return conformant;
+}
+
+static void create_cb(char *ug, char* mem, char* parent, void* user_data)
+{
+       D_WMSG("ug : %s, mem : %s, parent : %s, data : %p", ug, mem, parent, user_data);
+}
+
+void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       D_ENTER;
+
+       Evas_Object *base;
+
+       if (!ug || !priv)
+               return;
+
+       base = ug_get_layout(ug);
+       if (!base) {
+               msg_ui_destroy_composer_ug(ug, false);
+               return;
+       }
+
+       switch (mode) {
+               case UG_MODE_FULLVIEW:
+                       ug_disable_effect(ug);
+                       evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_show(base);
+                       break;
+               case UG_MODE_FRAMEVIEW:
+               default:
+                       break;
+       }
+
+       D_LEAVE;
+}
+
+static void end_cb(ui_gadget_h ug, void *priv)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !ug || !priv);
+
+       struct appdata *ad = priv;
+
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)ad->thread_data;
+
+       if (pData == NULL) {
+               return;
+       }
+       /* Register callback to apply time change. */
+       if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED , msg_ui_thread_timezone_change_cb, (void *)pData) < 0) {
+               D_EMSG("Fail to register SYSTEM_SETTINGS_KEY_TIME_CHANGED key");
+       }
+
+       if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, msg_ui_thread_timezone_change_cb, (void *)pData) < 0) {
+               D_EMSG("Fail to register system_settings time format");
+       }
+       msg_ui_thread_timezone_change_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, (void *)pData);
+       D_LEAVE;
+}
+
+void result_cb(ui_gadget_h ug, app_control_h result, void *priv)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !ug || !priv);
+
+       struct appdata *ad = priv;
+
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)ad->thread_data;
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+       char *buf = NULL;
+       char *str_result = NULL;
+       int list_idx = 0;
+
+       app_control_get_extra_data(result, MSG_BUNDLE_KEY_RESULT, &str_result);
+       if (pData == NULL) {
+               free(str_result);
+               return;
+       }
+
+       D_IMSG("%s", str_result);
+
+       if (!g_strcmp0(str_result, MSG_BUNDLE_VALUE_DEL_ALL)) {
+               pListData = msg_ui_thread_get_current_list();
+               if (pListData == NULL && gAppData->composer_data == NULL) {
+                       free(str_result);
+                       elm_exit();
+                       return;
+               }
+       } else if (!g_strcmp0(str_result, MSG_BUNDLE_VALUE_KEYPAD_SHOW)) {
+               pData->keypadIsShown = true;
+       } else if (!g_strcmp0(str_result, MSG_BUNDLE_VALUE_KEYPAD_HIDE)) {
+               pData->keypadIsShown = false;
+       }
+
+       for (list_idx = MSG_THREAD_LIST_MAX_COUNT-1; list_idx >= 0; list_idx--) {
+               if (pData->list_data[list_idx] != NULL)
+                       pListData = pData->list_data[list_idx];
+               else
+                       continue;
+
+               if (!g_strcmp0(str_result, MSG_BUNDLE_VALUE_DEL_ALL)) {
+                       int del_id = 0;
+
+                       app_control_get_extra_data(result, MSG_BUNDLE_KEY_MSG_ID, &buf);
+                       if (buf) {
+                               if (pListData->app_data_type != THREAD_LIST_APP_DATA_CONV) {
+                                       del_id = atoi(buf);
+                                       msg_ui_thread_list_msg_item_delete(pListData, del_id);
+                               }
+                               free(buf);
+                               buf = NULL;
+                       }
+
+                       app_control_get_extra_data(result, MSG_BUNDLE_KEY_THREAD_ID, &buf);
+                       if (buf) {
+                               if (pListData->app_data_type != THREAD_LIST_APP_DATA_MSG) {
+                                       del_id = atoi(buf);
+                                       msg_ui_thread_list_item_delete(pListData, del_id);
+                               }
+                               free(buf);
+                               buf = NULL;
+                       }
+
+                       if (pListData == msg_ui_thread_get_current_list()) {
+                               Evas_Object *obj = NULL;
+
+                               if (pListData->search_mode == THREAD_SEARCH_ON) {
+                                       obj = elm_object_part_content_get(pListData->content_ly, "search_list");
+                               } else {
+                                       obj = elm_object_part_content_get(pListData->content_ly, "thread_list");
+                               }
+                               elm_object_focus_set(obj, EINA_TRUE);
+                       }
+
+                       if (pListData->sel_gen_item)
+                               elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+                       pListData->sel_gen_item = NULL;
+                       pListData->sel_thread_id = 0;
+                       pListData->sel_msg_id = 0;
+               } else if (!g_strcmp0(str_result, MSG_BUNDLE_VALUE_DEL_BUBBLE)) {
+                       app_control_get_extra_data(result, MSG_BUNDLE_KEY_THREAD_ID, &buf);
+                       if (buf) {
+                               if (pListData->app_data_type != THREAD_LIST_APP_DATA_MSG) {
+                                       int thread_id = 0;
+                                       thread_id = atoi(buf);
+                                       if (msg_ui_thread_list_item_update(pListData, thread_id) == EINA_FALSE)
+                                               msg_ui_thread_list_item_delete(pListData, thread_id);
+                               }
+                               free(buf);
+                               buf = NULL;
+                       }
+               } else if (!g_strcmp0(str_result, MSG_BUNDLE_VALUE_MODE_CHANGE)) {
+                       app_control_get_extra_data(result, MSG_BUNDLE_KEY_MODE, &buf);
+
+                       if (buf && g_strcmp0(buf, MSG_BUNDLE_VALUE_COMPOSE) == 0) {
+                               if (pListData == msg_ui_thread_get_current_list()) {
+                                       ugdata *composer_data = NULL;
+                                       composer_data = msg_ui_get_composer_ug_data(ug);
+                                       if (composer_data) {
+                                               if (composer_data->sel_gen_item && composer_data->sel_gen_item == pListData->sel_gen_item) {
+                                                       if (pListData->list_type == THREAD_NORMAL_LIST_TYPE)
+                                                               msg_ui_thread_list_item_update(pListData, pListData->sel_thread_id);
+                                                       else
+                                                               msg_ui_thread_list_msg_item_update(pListData, pListData->sel_msg_id);
+                                               }
+
+                                               composer_data->ug_type = MSG_COMPOSER_UG_TYPE_COMPOSER;
+                                               composer_data->sel_gen_item = NULL;
+                                               composer_data->sel_thread_id = 0;
+                                               composer_data->sel_msg_id = 0;
+                                       }
+
+                                       if (pListData->sel_gen_item)
+                                               elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+                                       pListData->sel_gen_item = NULL;
+                                       pListData->sel_thread_id = 0;
+                                       pListData->sel_msg_id = 0;
+                               }
+
+                               free(buf);
+                               buf = NULL;
+                       } else if (buf && g_strcmp0(buf, MSG_BUNDLE_VALUE_BUBBLE) == 0) {
+                               free(buf);
+                               buf = NULL;
+
+                               int thread_id = 0;
+                               int msg_id = 0;
+                               Elm_Object_Item *gen_item = NULL;
+                               PMSG_APP_THREAD_CONV_DATA_S item_data = NULL;
+
+                               app_control_get_extra_data(result, MSG_BUNDLE_KEY_THREAD_ID, &buf);
+                               if (buf) {
+                                       if (pListData == msg_ui_thread_get_current_list()) {
+                                               thread_id = atoi(buf);
+                                               gen_item = elm_genlist_first_item_get(pListData->genlist);
+
+                                               /* Update genlist item */
+                                               while (gen_item) {
+                                                       item_data = (PMSG_APP_THREAD_CONV_DATA_S) elm_object_item_data_get(gen_item);
+                                                       if (item_data) {
+                                                               if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                                                                       if (item_data->thread_id == thread_id)
+                                                                               break;
+                                                               } else {
+                                                                       PMSG_APP_THREAD_MSG_DATA_S msg_data = (PMSG_APP_THREAD_MSG_DATA_S) elm_object_item_data_get(gen_item);
+                                                                       msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+                                                                       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+                                                                       msg_error_t err = MSG_SUCCESS;
+                                                                       int tmp_tid = 0;
+
+                                                                       err = msg_get_message(pData->msgHandle, msg_data->msg_id, msgInfo, sendOpt);
+
+                                                                       if (err != MSG_SUCCESS) {
+                                                                               msg_release_struct(&msgInfo);
+                                                                               msg_release_struct(&sendOpt);
+                                                                               D_EMSG("error : msg_id : %d, error : %d", msg_data->msg_id, err);
+
+                                                                               if (str_result)
+                                                                                       free(str_result);
+                                                                               free(buf);
+                                                                               return;
+                                                                       }
+
+                                                                       msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, &tmp_tid);
+
+                                                                       msg_release_struct(&msgInfo);
+                                                                       msg_release_struct(&sendOpt);
+
+
+                                                                       if (tmp_tid == thread_id) {
+                                                                               msg_id = msg_data->msg_id;
+                                                                               break;
+                                                                       }
+                                                               }
+                                                       }
+                                                       gen_item = elm_genlist_item_next_get(gen_item);
+                                               }
+
+                                               ugdata *composer_data = NULL;
+                                               composer_data = msg_ui_get_composer_ug_data(ug);
+                                               if (composer_data) {
+                                                       composer_data->ug_type = MSG_COMPOSER_UG_TYPE_VIEWER;
+                                                       composer_data->sel_gen_item = gen_item;
+                                                       if (pListData->list_type == THREAD_NORMAL_LIST_TYPE)
+                                                               composer_data->sel_thread_id = thread_id;
+                                                       else
+                                                               composer_data->sel_msg_id = msg_id;
+                                               }
+
+                                               if (gen_item) {
+                                                       pListData->sel_gen_item = gen_item;
+                                                       if (pListData->list_type == THREAD_NORMAL_LIST_TYPE)
+                                                               pListData->sel_thread_id = thread_id;
+                                                       else
+                                                               pListData->sel_msg_id = msg_id;
+                                               }
+                                       }
+
+                                       free(buf);
+                                       buf = NULL;
+                               }
+                       }
+               } else {
+                       int update_id = 0;
+
+                       app_control_get_extra_data(result, MSG_BUNDLE_KEY_MSG_ID, &buf);
+                       if (buf) {
+                               if (pListData->app_data_type != THREAD_LIST_APP_DATA_CONV) {
+                                       update_id = atoi(buf);
+                                       if (msg_ui_thread_list_msg_item_update(pListData, update_id) == EINA_FALSE)
+                                               msg_ui_thread_list_msg_item_delete(pListData, update_id);
+                               }
+                               free(buf);
+                               buf = NULL;
+                       }
+
+                       app_control_get_extra_data(result, MSG_BUNDLE_KEY_THREAD_ID, &buf);
+                       if (buf) {
+                               if (pListData->app_data_type != THREAD_LIST_APP_DATA_MSG) {
+                                       update_id = atoi(buf);
+                                       if (msg_ui_thread_list_item_update(pListData, update_id) == EINA_FALSE)
+                                               msg_ui_thread_list_item_delete(pListData, update_id);
+                               }
+                               free(buf);
+                               buf = NULL;
+                       }
+               }
+       }
+
+       if (str_result)
+               free(str_result);
+
+       D_LEAVE;
+}
+
+void destroy_cb(ui_gadget_h ug, void *priv)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !ug || !priv);
+
+       struct appdata *ad = (struct appdata *)priv;
+       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+
+       if (ad->layout_main) {
+               if (pListData == NULL) {
+                       msg_ui_destroy_composer_ug(ug, false);
+                       elm_exit();
+                       return;
+               }
+
+               msg_ui_destroy_composer_ug(ug, false);
+       } else {
+               msg_ui_destroy_composer_ug(ug, false);
+               elm_exit();
+       }
+}
+
+int msg_ui_load_composer_ug(app_control_h svc_handle, MessageComposerUgType ug_type, bool isListItem)
+{
+       D_ENTER;
+
+       if (!gAppData)
+               return MSG_UI_RET_ERR;
+
+       ugdata *composer_data = NULL;
+       ui_gadget_h ug_h = NULL;
+       bool bReset = false;
+       ugdata *exist_data = gAppData->composer_data;
+       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)gAppData->thread_data;
+
+       if (ug_type == MSG_COMPOSER_UG_TYPE_VIEWER) {
+               while (exist_data) {
+                       if (exist_data->ug_type == MSG_COMPOSER_UG_TYPE_VIEWER) {
+                               bReset = true;
+                               break;
+                       }
+                       exist_data = exist_data->next_ug;
+               }
+
+               if (exist_data && bReset) {
+                       ug_send_message(exist_data->ug_h, svc_handle);
+                       ug_h = exist_data->ug_h;
+               } else {
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, MSG_BUNDLE_VALUE_INTERNAL);
+                       ug_h = ug_create(NULL, MSG_COMPOSER_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &gAppData->composer_cbs);
+               }
+       } else {
+               if (exist_data) {
+                       if (exist_data->ug_h) {
+                               D_IMSG("Composer UG already exists");
+                               return MSG_UI_RET_SUCCESS;
+                       }
+               }
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, MSG_BUNDLE_VALUE_INTERNAL);
+               ug_h = ug_create(NULL, MSG_COMPOSER_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &gAppData->composer_cbs);
+       }
+
+       if (!ug_h)
+               return MSG_UI_RET_ERR;
+
+       if (pListData)
+               msg_ui_thread_destroy_popup(pListData);
+
+       if (bReset == false) {
+               composer_data = (ugdata *)calloc(1, sizeof(ugdata));
+               composer_data->ug_h = ug_h;
+               composer_data->ug_type = ug_type;
+
+               exist_data = gAppData->composer_data;
+               if (exist_data) {
+                       while (exist_data) {
+                               if (exist_data->next_ug == NULL) {
+                                       exist_data->next_ug = composer_data;
+                                       composer_data->prev_ug = exist_data;
+                                       break;
+                               }
+                               exist_data = exist_data->next_ug;
+                       }
+               } else {
+                       gAppData->composer_data = composer_data;
+               }
+
+               if (pListData && isListItem) {
+                       composer_data->sel_gen_item = pListData->sel_gen_item;
+                       composer_data->sel_thread_id = pListData->sel_thread_id;
+                       composer_data->sel_msg_id = pListData->sel_msg_id;
+               }
+       } else if (exist_data && pListData && isListItem) {
+               exist_data->sel_gen_item = pListData->sel_gen_item;
+               exist_data->sel_thread_id = pListData->sel_thread_id;
+               exist_data->sel_msg_id = pListData->sel_msg_id;
+       }
+
+       /* prevent focus moving to caller ug. it is added for screen reader */
+       elm_object_tree_focus_allow_set(pData->layout_main, EINA_FALSE);
+
+       D_LEAVE;
+       return MSG_UI_RET_SUCCESS;
+}
+
+Evas_Object *msg_ui_get_main_layout(void)
+{
+       D_ENTER;
+
+       if (!gAppData)
+               return NULL;
+
+       return gAppData->layout_main;
+}
+
+ugdata *msg_ui_get_composer_ug_data(ui_gadget_h ug)
+{
+       ugdata *composer_data = NULL;
+
+       if (!gAppData || !gAppData->composer_data)
+               return NULL;
+
+       composer_data = gAppData->composer_data;
+       while (composer_data) {
+               if (composer_data->ug_h == ug)
+                       return composer_data;
+
+               composer_data = composer_data->next_ug;
+       }
+
+       return NULL;
+}
+
+ugdata *msg_ui_get_composer_ug_data_by_id(int app_data_type, int sel_id)
+{
+       ugdata *composer_data = NULL;
+
+       if (!gAppData || !gAppData->composer_data)
+               return NULL;
+
+       composer_data = gAppData->composer_data;
+       while (composer_data) {
+               if (app_data_type == THREAD_LIST_APP_DATA_CONV && composer_data->sel_thread_id == sel_id)
+                       return composer_data;
+               else if (app_data_type == THREAD_LIST_APP_DATA_MSG && composer_data->sel_msg_id == sel_id)
+                       return composer_data;
+
+               composer_data = composer_data->next_ug;
+       }
+
+       return NULL;
+}
+
+Evas_Object *msg_ui_get_composer_ug_layout(int ug_type)
+{
+       ugdata *composer_data = NULL;
+       Evas_Object *layout = NULL;
+
+       if (!gAppData || !gAppData->composer_data)
+               return NULL;
+
+       composer_data = gAppData->composer_data;
+       while (composer_data) {
+               if (composer_data->ug_type == ug_type) {
+                       layout = (Evas_Object *)ug_get_layout(composer_data->ug_h);
+                       break;
+               }
+               composer_data = composer_data->next_ug;
+       }
+
+       return layout;
+}
+
+void msg_ui_destroy_composer_ug(ui_gadget_h ug, bool bDeleteAll)
+{
+       D_ENTER;
+       ugdata *composer_data = NULL;
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)gAppData->thread_data;
+       int ug_type = msg_ui_get_composer_ug_type(ug);
+       bool ug_destroyed = false;
+
+       pListData = msg_ui_thread_get_current_list();
+
+       composer_data = gAppData->composer_data;
+       if (bDeleteAll) {
+               while (composer_data) {
+                       ugdata *delete_data = NULL;
+
+                       if (composer_data->ug_h) {
+                               ug_destroy(composer_data->ug_h);
+                               ug_destroyed = true;
+                       }
+
+                       delete_data = composer_data;
+                       composer_data = composer_data->next_ug;
+                       if (delete_data)
+                               free(delete_data);
+               }
+
+               gAppData->composer_data = NULL;
+
+               if (pData) {
+                       /* recover focus moving of caller ug. it is added for screen reader */
+                       if (pData->layout_main)
+                               elm_object_tree_focus_allow_set(pData->layout_main, EINA_TRUE);
+               }
+
+               if (pListData) {
+                       if (pListData->sel_gen_item)
+                               elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+                       pListData->sel_gen_item = NULL;
+                       pListData->sel_thread_id = 0;
+                       pListData->sel_msg_id = 0;
+               }
+       } else {
+               while (composer_data) {
+                       if (ug == NULL)
+                               break;
+
+                       if (ug == composer_data->ug_h) {
+                               ug_destroy(ug);
+                               ug_destroyed = true;
+
+                               if (pData) {
+                                       /* recover focus moving of caller ug. it is added for screen reader */
+                                       if (pData->layout_main)
+                                               elm_object_tree_focus_allow_set(pData->layout_main, EINA_TRUE);
+                               }
+
+                               if (pListData) {
+                                       if (pListData->sel_gen_item && (pListData->sel_gen_item == composer_data->sel_gen_item)) {
+                                               if (pListData->sel_thread_id > 0) {
+                                                       int thread_id = pListData->sel_thread_id;
+
+                                                       pListData->sel_thread_id = 0;
+                                                       if (msg_ui_thread_list_item_update(pListData, thread_id) == EINA_FALSE)
+                                                               msg_ui_thread_list_item_delete(pListData, thread_id);
+                                               }
+
+                                               if (pListData->sel_msg_id > 0) {
+                                                       int msg_id = pListData->sel_msg_id;
+
+                                                       pListData->sel_msg_id = 0;
+
+                                                       {
+                                                               if (msg_ui_thread_list_msg_item_update(pListData, msg_id) == EINA_FALSE)
+                                                                       msg_ui_thread_list_msg_item_delete(pListData, msg_id);
+                                                       }
+                                               }
+
+                                               elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+                                               pListData->sel_gen_item = NULL;
+
+                                               if (pData && pData->keypadIsShown == true) {
+                                                       pData->keypadIsShown = false;
+                                               }
+                                       }
+
+                                       if (pListData == msg_ui_thread_get_current_list()) {
+                                               Evas_Object *obj = NULL;
+
+                                               if (pListData->search_mode == THREAD_SEARCH_ON) {
+                                                       obj = elm_object_part_content_get(pListData->content_ly, "search_list");
+                                               } else {
+                                                       obj = elm_object_part_content_get(pListData->content_ly, "thread_list");
+                                               }
+                                               elm_object_focus_set(obj, EINA_TRUE);
+                                       }
+                               }
+
+                               if (composer_data->prev_ug) {
+                                       if (composer_data->next_ug)
+                                               composer_data->prev_ug->next_ug = composer_data->next_ug;
+                                       else
+                                               composer_data->prev_ug->next_ug = NULL;
+                               } else {
+                                       gAppData->composer_data = NULL;
+                               }
+                               free(composer_data);
+                               break;
+                       }
+                       composer_data = composer_data->next_ug;
+               }
+       }
+
+       if (pData && ug_destroyed == true) {
+               if (ug_type == MSG_COMPOSER_UG_TYPE_VIEWER) {
+                       if (pListData)
+                               msg_ui_thread_set_title_status(pListData);
+               }
+
+/* create composer btn while returning from composer. */
+               if (pListData && pListData->composer_btn && pListData->search_mode != THREAD_SEARCH_ON) {
+                       msg_ui_thread_show_composer_btn(pListData);
+               }
+       }
+
+       if (pListData && pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH) {
+               msg_ui_thread_search_list_load(pListData);
+       }
+}
+
+int msg_ui_get_composer_ug_type(ui_gadget_h ug)
+{
+       ugdata *composer_data = NULL;
+       int ug_type = MSG_COMPOSER_UG_TYPE_NONE;
+
+       if (!gAppData || !gAppData->composer_data || !ug)
+               return MSG_COMPOSER_UG_TYPE_NONE;
+
+       composer_data = gAppData->composer_data;
+       while (composer_data) {
+               if (composer_data->ug_h == ug) {
+                       ug_type = composer_data->ug_type;
+                       break;
+               }
+               composer_data = composer_data->next_ug;
+       }
+
+       return ug_type;
+}
+
+void viewer_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !ug || !priv);
+
+       Evas_Object *base;
+
+       base = ug_get_layout(ug);
+       if (!base) {
+               ug_destroy(ug);
+               return;
+       }
+
+       switch (mode) {
+               case UG_MODE_FULLVIEW:
+                       ug_disable_effect(ug);
+                       evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_show(base);
+                       break;
+               case UG_MODE_FRAMEVIEW:
+               default:
+                       break;
+       }
+}
+
+void viewer_destroy_cb(ui_gadget_h ug, void *priv)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !ug || !priv);
+
+       struct appdata *ad = (struct appdata *)priv;
+
+       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+
+       ug_destroy(ug);
+       ad->viewer_ug = NULL;
+
+       if (pData == NULL) {
+               elm_exit();
+               return;
+       }
+
+       /* recover focus moving of caller ug. it is added for screen reader */
+       if (pData->layout_main)
+               elm_object_tree_focus_allow_set(pData->layout_main, EINA_TRUE);
+
+       if (pListData) {
+               if (ug == pListData->loaded_ug) {
+                       ug_destroy(ug);
+
+                       pListData->loaded_ug = NULL;
+                       pListData->loaded_ug_type = THREAD_UG_TYPE_NONE;
+               }
+
+               if (pListData->sel_msg_id) {
+                       if (msg_ui_thread_list_msg_item_update(pListData, pListData->sel_msg_id) == EINA_FALSE)
+                               msg_ui_thread_list_msg_item_delete(pListData, pListData->sel_msg_id);
+
+                       if (pListData->sel_gen_item)
+                               elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+                       pListData->sel_gen_item = NULL;
+                       pListData->sel_msg_id = 0;
+               }
+       } else {
+               elm_exit();
+       }
+}
+
+static void *msg_ui_get_launch_list_thread(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, NULL, "data is NULL!!");
+
+       msg_error_t err = MSG_SUCCESS;
+       msg_handle_t msgHandle = NULL;
+
+       struct appdata *ad = data;
+
+       err = msg_open_msg_handle(&msgHandle);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_close_msg_handle return error [%d]", err);
+               return NULL;
+       }
+
+       msg_struct_t sort_rule_t = msg_create_struct(MSG_STRUCT_SORT_RULE);
+
+       if (ad->launch_list == NULL) {
+               ad->launch_list = (msg_struct_list_s *)malloc(sizeof(msg_struct_list_s));
+               memset(ad->launch_list, 0x00, sizeof(msg_struct_list_s));
+       }
+
+       msg_set_int_value(sort_rule_t, MSG_SORT_RULE_SORT_TYPE_INT, MSG_SORT_BY_THREAD_DATE);
+       msg_set_bool_value(sort_rule_t, MSG_SORT_RULE_ACSCEND_BOOL, false);
+
+       err = msg_get_thread_view_list(msgHandle, sort_rule_t, ad->launch_list);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_thread_view_list return error [%d]", err);
+
+               free(ad->launch_list);
+               ad->launch_list = NULL;
+       }
+
+       msg_release_struct(&sort_rule_t);
+
+       err = msg_close_msg_handle(&msgHandle);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_close_msg_handle return error [%d]", err);
+       }
+
+       D_LEAVE;
+       return NULL;
+}
+
+bool msg_ui_get_launch_list(msg_struct_list_s *list)
+{
+       if (gAppData->launch_thread) {
+               pthread_join(gAppData->launch_thread, NULL);
+               gAppData->launch_thread = 0;
+       }
+
+       if (gAppData->launch_list == NULL)
+               return FALSE;
+
+       if (list)
+               memcpy(list, gAppData->launch_list, sizeof(msg_struct_list_s));
+       return TRUE;
+}
+
+void msg_ui_remove_launch_list(void)
+{
+       D_ENTER;
+
+       if (gAppData->launch_list == NULL)
+               return;
+
+       msg_release_list_struct(gAppData->launch_list);
+       free(gAppData->launch_list);
+       gAppData->launch_list = NULL;
+}
+
+static bool app_create(void *data)
+{
+       /* return TRUE : success, return FALSE : not to run main loop */
+
+       D_ENTER;
+
+       D_MSG_RETVM_IF(!data, MSG_UI_RET_ERR, "data is NULL!!");
+
+       elm_app_base_scale_set(2.6);
+       elm_config_preferred_engine_set("opengl_x11");
+
+       bindtextdomain("message", LOCALEDIR);
+
+       struct appdata *ad = data;
+       /* sound_manager_error_e snd_err = SOUND_MANAGER_ERROR_NONE; */
+       contacts_error_e ct_err = CONTACTS_ERROR_NONE;
+
+       __is_relaunch = 0;
+
+       if (pthread_create(&ad->launch_thread, NULL, msg_ui_get_launch_list_thread, ad)) {
+               D_EMSG("Fail to create a thread.");
+               return FALSE;
+       }
+
+       char *language_set = NULL;
+       system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &language_set);
+
+       if (language_set) {
+               elm_language_set(language_set);
+               free(language_set);
+               language_set = NULL;
+       }
+       /* create window */
+       ad->win_main = __msg_ui_create_win(MESSAGE_PKGNAME);
+
+       D_MSG_RETVM_IF(!ad->win_main, FALSE, "__msg_ui_create_win() is failed !!");
+
+       /* create bg */
+       ad->bg = __msg_ui_create_bg(ad->win_main);
+       D_MSG_RETVM_IF(!ad->bg, FALSE, "__msg_ui_create_bg() is failed !!");
+
+       /* create conformant */
+       ad->conform = __msg_ui_create_conformant(ad->win_main);
+       D_MSG_RETVM_IF(!ad->conform, FALSE, "__msg_ui_create_conformant() is failed !!");
+
+       /*snd_err = sound_manager_set_session_type(SOUND_SESSION_TYPE_MEDIA);
+       if (snd_err != SOUND_MANAGER_ERROR_NONE)
+               D_EMSG("sound_manager_set_session_type is failed, snd_err = [%d]", snd_err);*/
+
+       ct_err = contacts_connect();
+       if (ct_err != CONTACTS_ERROR_NONE)
+               D_EMSG("contacts_connect failed : ct_err = [%d]", ct_err);
+
+       UG_INIT_EFL(ad->win_main, UG_OPT_INDICATOR_ENABLE);
+       elm_win_indicator_mode_set(ad->win_main, ELM_WIN_INDICATOR_SHOW);
+       elm_win_indicator_opacity_set(ad->win_main, ELM_WIN_INDICATOR_OPAQUE);
+
+       if (elm_win_wm_rotation_supported_get(ad->win_main)) {
+               int rotation[4] = {0, 90, 180, 270};
+               elm_win_wm_rotation_available_rotations_set(ad->win_main, rotation, 4);
+               ad->cur_rotation = elm_win_rotation_get(ad->win_main);
+               D_MSG("current rotation %d", ad->cur_rotation);
+               evas_object_smart_callback_add(ad->win_main, "wm,rotation,changed", rotation_changed_cb, ad);
+       }
+
+       ug_create_cb(create_cb, ad);
+
+       memset(&ad->composer_cbs, 0x0, sizeof(struct ug_cbs));
+       ad->composer_cbs.layout_cb = layout_cb;
+       ad->composer_cbs.destroy_cb = destroy_cb;
+       ad->composer_cbs.result_cb = result_cb;
+       ad->composer_cbs.end_cb = end_cb;
+       ad->composer_cbs.priv = (void *)ad;
+
+       memset(&ad->viewer_cbs, 0x0, sizeof(struct ug_cbs));
+       ad->viewer_cbs.layout_cb = viewer_layout_cb;
+       ad->viewer_cbs.destroy_cb = viewer_destroy_cb;
+       ad->viewer_cbs.result_cb = NULL;
+       ad->viewer_cbs.end_cb = NULL;
+       ad->viewer_cbs.priv = (void *)ad;
+
+       gAppData = ad; /* Set global app data pointer; */
+
+       D_LEAVE;
+       return TRUE;
+}
+
+static void app_terminate(void *data)
+{
+       D_ENTER;
+
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !data, "data is null");
+
+       struct appdata *ad = data;
+       msg_error_t     err;
+       contacts_error_e ct_err = CONTACTS_ERROR_NONE;
+
+       msg_ui_destroy_composer_ug(NULL, true);
+       if (ad->viewer_ug) {
+               ug_destroy(ad->viewer_ug);
+               ad->viewer_ug = NULL;
+       }
+
+       if (ad->setting_ug) {
+               ug_destroy(ad->setting_ug);
+               ad->setting_ug = NULL;
+       }
+       ug_destroy_all();
+
+       memset(&ad->composer_cbs, 0x0, sizeof(struct ug_cbs));
+       memset(&ad->viewer_cbs, 0x0, sizeof(struct ug_cbs));
+
+       ct_err = contacts_disconnect();
+       if (ct_err != CONTACTS_ERROR_NONE)
+               D_EMSG("contacts_disconnect failed : ct_err = [%d]", ct_err);
+
+       if (ad->thread_data) {
+               msg_ui_thread_deinit_thread_data(ad->thread_data);
+               free(ad->thread_data);
+               ad->thread_data = NULL;
+       }
+
+       ug_create_cb(NULL, NULL);
+       msg_common_delete_last_date_format();
+
+       if (ad->msgHandle) {
+               err = msg_close_msg_handle(&ad->msgHandle);
+               if (err != MSG_SUCCESS)
+                       D_EMSG("msg_close_msg_handle error, ret = [%d]", err);
+
+               ad->msgHandle = NULL;
+       }
+
+       if (ad->launch_thread) {
+               int ret = 0;
+
+               D_MSG("msg_ui_get_launch_list_thread is alive. Cancel it ... ");
+               ret = pthread_cancel(ad->launch_thread);
+               if (ret != 0) {
+                       D_MSG("pthread_cancel() fail.(%d)", ret);
+                       return;
+               }
+
+               D_MSG("wait to join thread ... ");
+               ret = pthread_join(ad->launch_thread, NULL);
+               if (ret != 0) {
+                       D_MSG("pthread_join fail.(%d)", ret);
+               }
+               D_MSG("msg_ui_get_launch_list_thread is cancelled.");
+       }
+
+       if (ad->win_main) {
+               evas_object_del(ad->win_main);
+               ad->win_main = NULL;
+       }
+       D_LEAVE;
+}
+
+static void app_pause(void *data)
+{
+       D_ENTER;
+
+       msg_ui_thread_set_app_state(MSG_UI_STATE_PAUSE);
+       ug_pause();
+
+       D_LEAVE;
+}
+
+static void app_resume(void *data)
+{
+       D_ENTER;
+       msg_ui_thread_set_app_state(MSG_UI_STATE_RUNNING);
+
+       ug_resume();
+       D_LEAVE;
+}
+
+static void app_service(app_control_h service, void *data)
+{
+       D_ENTER;
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !data, "data is NULL");
+
+       struct appdata *ad = data;
+       app_control_h svc_handle = NULL;
+       msg_error_t err = MSG_SUCCESS;
+       msg_handle_t msgHandle = NULL;
+       bool show_list = false;
+       char *operation = NULL;
+
+       int storge_id = 0;
+       PMSG_THREAD_DATA pData = NULL;
+       char *key_type = NULL;
+
+       if (!ad->msgHandle) {
+               err = msg_open_msg_handle(&msgHandle);
+               if (err != MSG_SUCCESS) {
+                       char buf[DEF_BUF_LEN+1] = {0,};
+
+                       D_EMSG("msg_open_msg_handle failed, Error=[%d]\n", err);
+                       snprintf(buf, sizeof(buf), "%s %s", dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_MESSAGE"), dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_INTIALISING"));
+                       __msg_ui_popup_warning(ad->win_main,  buf);
+                       return;
+               }
+               ad->msgHandle = msgHandle;
+       }
+
+       if (service) {
+               /* get service operation */
+               app_control_get_operation(service, &operation);
+               D_MSG("thread operation : %s", operation);
+
+               if ((operation && strcmp(operation, APP_CONTROL_OPERATION_MAIN) == 0) && (__is_relaunch == 1)) {
+                       D_MSG("App relaunch case by app_service call");
+
+                       /* it will call app resume callback */
+                       elm_win_activate(ad->win_main);
+                       /* It is resume case. Therefore, we should execute the resume codes. */
+                       {
+                               msg_ui_thread_set_app_state(MSG_UI_STATE_RUNNING);
+
+                               ug_resume();
+                       }
+
+                       free(operation);
+                       return;
+               }
+
+               __is_relaunch = 1;
+
+               /* get operation key type */
+               app_control_get_extra_data(service, MSG_BUNDLE_KEY_TYPE, &key_type);
+               if (operation) {
+                       svc_handle = __get_service_app_svc_op(operation, service);
+               } else {
+                       if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_COMPOSE) == 0) {
+                               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                       D_EMSG("app_control_create() is failed !!");
+                               } else {
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, MSG_BUNDLE_VALUE_INTERNAL);
+                               }
+                       } else if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_NEW_MSG) == 0) {
+                               svc_handle = __get_service_with_msg_id(ad, service);
+                       } else if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_MSG_ID) == 0) {
+                               svc_handle = __get_service_with_msg_id(ad, service);
+                       } else if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_REPLY) == 0) {
+                               svc_handle = __get_service_with_msg_id(ad, service);
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TYPE, MSG_BUNDLE_VALUE_REPLY);
+                       } else {
+                               D_EMSG("Not supported type [%s]", key_type);
+                       }
+               }
+
+               if (!svc_handle) {
+                       show_list = true;
+               } else {
+                       if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_NEW_MSG) == 0 || g_strcmp0(key_type, MSG_BUNDLE_VALUE_SEND_FAILED_MSG) == 0) {
+                               show_list = true;
+                       } else if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_MSG_ID) == 0 || g_strcmp0(key_type, MSG_BUNDLE_VALUE_REPLY) == 0 || g_strcmp0(key_type, MSG_BUNDLE_VALUE_COMPOSE) == 0) {
+                               char *buf = NULL;
+
+                               app_control_get_extra_data(service, MSG_BUNDLE_KEY_SHOW_LIST, &buf);
+                               if (g_strcmp0(buf, MSG_BUNDLE_VALUE_LIST_SHOW) == 0) {
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, MSG_BUNDLE_VALUE_INTERNAL);
+                                       show_list = true;
+                               }
+
+                               if (buf) {
+                                       free(buf);
+                                       buf = NULL;
+                               }
+                       }
+
+                       /* add emergency mode bundle */
+                       char *emergency_mode = NULL;
+                       app_control_get_extra_data(service, MSG_BUNDLE_KEY_EMERGENCY_MODE, &emergency_mode);
+                       if (emergency_mode) {
+                               D_IMSG("emergency_mode [%s]", emergency_mode);
+                               if (g_strcmp0(emergency_mode, MSG_BUNDLE_VALUE_YES) == 0) {
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_EMERGENCY_MODE, MSG_BUNDLE_VALUE_YES);
+                               }
+                               free(emergency_mode);
+                       }
+               }
+       } else {
+               show_list = true;
+       }
+
+       if (ad->viewer_ug) {
+               ug_destroy(ad->viewer_ug);
+               ad->viewer_ug = NULL;
+       }
+
+       if (ad->setting_ug) {
+               ug_destroy(ad->setting_ug);
+               ad->setting_ug = NULL;
+       }
+
+       if (ad->composer_data) {
+               ugdata *composer_data = ad->composer_data;
+
+               while (composer_data) {
+                       app_control_h composer_svc_handle = NULL;
+                       if (app_control_create(&composer_svc_handle) < 0 || composer_svc_handle == NULL) {
+                               D_EMSG("app_control_create() is failed !!");
+                       } else {
+                               D_MSG("send message to composer ug");
+                               /** Creating an ug, right after destroying same ug, on_create callback of the new ug is called before on_destroy cb of the old one.
+                                         This order of calling the callback can make some issue on composer side.
+                                         Avoiding this issue, MSG_BUNDLE_KEY_DESTROY and MSG_BUNDLE_KEY_UNGRAB_KEY is used.
+                               */
+                               app_control_add_extra_data(composer_svc_handle, MSG_BUNDLE_KEY_DESTROY, MSG_BUNDLE_VALUE_YES);
+                               app_control_add_extra_data(composer_svc_handle, MSG_BUNDLE_KEY_CHECK_CALLEE, MSG_BUNDLE_VALUE_YES);
+                               ug_send_message(composer_data->ug_h, composer_svc_handle);
+                               app_control_destroy(composer_svc_handle);
+                       }
+                       composer_data = composer_data->next_ug;
+               }
+               msg_ui_destroy_composer_ug(NULL, true);
+       }
+
+       if (service) {
+               char *val = NULL;
+               /* For SIM message list view */
+               app_control_get_extra_data(service, MSG_BUNDLE_VALUE_SIM_LIST_SHOW, &val);
+               D_MSG("thread MSG_BUNDLE_VALUE_SIM_LIST_SHOW : %s", val);
+               if (val != NULL) {
+                       if (g_strcmp0(val, MSG_BUNDLE_VALUE_SIM_SETTING) == 0) {
+                               struct ug_cbs cbs;
+                               app_control_h setting_ug_svc_handle = NULL;
+
+                               cbs.layout_cb = msg_ui_sim_msg_list_ug_layout_cb;
+                               cbs.destroy_cb = msg_ui_sim_msg_list_ug_destroy_cb;
+                               cbs.result_cb = NULL;
+                               cbs.end_cb = NULL;
+                               cbs.priv = (void *)ad;
+
+                               if (app_control_create(&setting_ug_svc_handle) < 0 || setting_ug_svc_handle == NULL) {
+                                       D_EMSG("service_create() is failed !!");
+                                       memset(&cbs, 0x0, sizeof(struct ug_cbs));
+                               } else {
+                                       /* app_control_add_extra_data(setting_ug_svc_handle, MSG_BUNDLE_VALUE_SIM_LIST_SHOW, MSG_BUNDLE_VALUE_SIM_SETTING); */
+                                       app_control_add_extra_data(setting_ug_svc_handle, MSG_BUNDLE_KEY_TYPE, MSG_BUNDLE_VALUE_SIM_SETTING);
+                                       ad->setting_ug = ug_create(NULL, MSG_SETTING_UG_NAME, UG_MODE_FULLVIEW, setting_ug_svc_handle, &cbs);
+                                       app_control_destroy(setting_ug_svc_handle);
+                               }
+
+                               if (!ad->thread_data) {
+                                       if (ad->win_main) {
+                                               evas_object_show(ad->win_main);
+                                               elm_win_activate(ad->win_main);
+                                       }
+
+                                       if (key_type)
+                                               free(key_type);
+
+                                       if (operation)
+                                               free(operation);
+
+                                       if (svc_handle)
+                                               app_control_destroy(svc_handle);
+
+                                       free(val);
+                                       return;
+                               }
+                       }
+
+                       free(val);
+                       val = NULL;
+               }
+       }
+
+       if (show_list) {
+               D_MSG("show mailbox list");
+
+               if (!ad->thread_data)
+                       ad->thread_data = msg_ui_thread_init_thread_data(ad);
+               pData = (PMSG_THREAD_DATA)ad->thread_data;
+
+               if (!ad->layout_main) {
+                       ad->layout_main = msg_ui_thread_create_layout_main(ad->thread_data);
+                       evas_object_size_hint_weight_set(ad->layout_main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       elm_object_content_set(ad->conform, ad->layout_main);
+
+                       msg_ui_thread_load_thread_view(ad->thread_data, service);
+               } else {
+                       msg_ui_thread_set_app_state(MSG_UI_STATE_RUNNING);
+                       msg_ui_thread_reset_thread_view(ad->thread_data, service);
+
+                       if (ad->setting_ug) {
+                               PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+                               if (pListData && pListData->composer_btn) {
+                                       if (evas_object_visible_get(pListData->composer_btn))
+                                               msg_ui_thread_hide_composer_btn((PMSG_THREAD_DATA)ad->thread_data);
+                               }
+                       }
+               }
+       } else {
+               if (ad->layout_main) {
+                       int i = 0;
+
+                       pData = (PMSG_THREAD_DATA)ad->thread_data;
+                       if (pData) {
+                               for (i = MSG_THREAD_LIST_MAX_COUNT-1; i >= 0; i--) {
+                                       if (pData->list_data[i] != NULL) {
+                                               elm_object_item_del(elm_naviframe_top_item_get(pData->navi_frame));
+                                               msg_ui_thread_destroy_thread_list_data(pData->list_data[i]);
+                                       }
+                               }
+                       }
+                       evas_object_del(ad->layout_main);
+                       ad->layout_main = NULL;
+               }
+
+               if (ad->thread_data) {
+                       msg_ui_thread_deinit_thread_data(ad->thread_data);
+                       free(ad->thread_data);
+                       ad->thread_data = NULL;
+               }
+
+               if (ad->msgHandle) {
+                       err = msg_close_msg_handle(&ad->msgHandle);
+                       if (err != MSG_SUCCESS)
+                               D_EMSG("msg_close_msg_handle error, ret = [%d]", err);
+
+                       ad->msgHandle = NULL;
+               }
+               pData = NULL;
+       }
+
+       if (svc_handle) {
+               MessageComposerUgType ug_type = MSG_COMPOSER_UG_TYPE_NONE;
+
+               if (operation != NULL) {
+                       if (g_strcmp0(operation, APP_CONTROL_OPERATION_DEFAULT) == 0) {
+                               if (key_type) {
+                                       if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_NEW_MSG) == 0 || g_strcmp0(key_type, MSG_BUNDLE_VALUE_MSG_ID) == 0 || g_strcmp0(key_type, MSG_BUNDLE_VALUE_REPLY) == 0) {
+                                               char *buf = NULL;
+
+                                               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_STORAGE_ID, &buf);
+                                               if (buf != NULL) {
+                                                       storge_id = atoi(buf);
+                                                       free(buf);
+                                                       buf = NULL;
+                                               }
+
+                                               if (storge_id == MSG_STORAGE_SIM) {
+                                                       /*sim message viewer*/
+                                                       D_MSG("show sim message or CB message viewer");
+
+                                                       int msg_id = 0;
+                                                       char *buf = NULL;
+                                                       app_control_h viewer_handle = NULL;
+                                                       char msgid[10] = {0,};
+
+                                                       app_control_get_extra_data(service, MSG_BUNDLE_KEY_MSG_ID, &buf);
+                                                       if (buf != NULL) {
+                                                               msg_id = atoi(buf);
+                                                               free(buf);
+                                                               buf = NULL;
+                                                       }
+
+                                                       if (app_control_create(&viewer_handle) < 0 || viewer_handle == NULL) {
+                                                               D_EMSG("app_control_create() is failed !!");
+                                                       } else {
+                                                               snprintf(msgid, sizeof(msgid), "%d", msg_id);
+                                                               app_control_add_extra_data(viewer_handle, MSG_BUNDLE_KEY_MSG_ID, msgid);
+                                                               app_control_add_extra_data(viewer_handle, MSG_BUNDLE_KEY_INDICATOR_MODE, MSG_BUNDLE_VALUE_INDICATOR);
+
+                                                               if (storge_id == MSG_STORAGE_SIM) {
+                                                                       if (ad->layout_main)
+                                                                               msg_ui_thread_load_message_box(THREAD_SIM_LIST_TYPE);
+                                                                       app_control_add_extra_data(viewer_handle, MSG_BUNDLE_KEY_VIEWER_INTERNAL_CALLER, MSG_BUNDLE_VALUE_SIM_MSG);
+                                                               }
+
+                                                               ad->viewer_ug = ug_create(NULL, MSG_VIEWER_UG_NAME, UG_MODE_FULLVIEW, viewer_handle, &ad->viewer_cbs);
+                                                               if (ad->viewer_ug == NULL) {
+                                                                       D_EMSG("Failed to load viewer");
+                                                               } else {
+                                                                       if (ad->msgHandle)
+                                                                               msg_update_read_status(ad->msgHandle, msg_id, true);
+                                                               }
+
+                                                               app_control_destroy(viewer_handle);
+
+                                                               if (ad->viewer_ug && ad->layout_main) {
+                                                                       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+
+                                                                       if (pData) {
+                                                                               /* prevent focus moving to caller ug. it is added for screen reader */
+                                                                               elm_object_tree_focus_allow_set(pData->layout_main, EINA_FALSE);
+                                                                       }
+
+                                                                       if (pListData) {
+                                                                               pListData->loaded_ug = ad->viewer_ug;
+                                                                               pListData->loaded_ug_type = THREAD_UG_TYPE_VIEWER;
+                                                                               pListData->sel_msg_id = msg_id;
+                                                                               pListData->sel_thread_id = 0;
+                                                                               pListData->sel_gen_item = msg_ui_thread_selected_gen_item_by_id(pListData, THREAD_LIST_APP_DATA_MSG, pListData->sel_msg_id);
+                                                                               if (pListData->sel_gen_item) {
+                                                                                       elm_genlist_item_selected_set(pListData->sel_gen_item, true);
+                                                                                       elm_genlist_item_item_class_update(pListData->sel_gen_item, &pListData->itc_msg);
+                                                                                       elm_genlist_item_update(pListData->sel_gen_item);
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               } else {
+                                                       ug_type = MSG_COMPOSER_UG_TYPE_VIEWER;
+                                               }
+                                       } else if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_COMPOSE) == 0) {
+                                               char *buf = NULL;
+                                               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, &buf);
+                                               if (buf != NULL) {
+                                                       int thread_id = 0;
+                                                       thread_id = atoi(buf);
+
+                                                       if (thread_id > 0)
+                                                               ug_type = MSG_COMPOSER_UG_TYPE_VIEWER;
+                                                       else
+                                                               ug_type = MSG_COMPOSER_UG_TYPE_COMPOSER;
+
+                                                       free(buf);
+                                                       buf = NULL;
+                                               } else {
+                                                       ug_type = MSG_COMPOSER_UG_TYPE_COMPOSER;
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               if (ug_type != MSG_COMPOSER_UG_TYPE_NONE && ad->viewer_ug == NULL) {
+                       ugdata *composer_data = NULL;
+
+                       composer_data = (ugdata *)calloc(1, sizeof(ugdata));
+                       composer_data->ug_h = ug_create(NULL, MSG_COMPOSER_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &ad->composer_cbs);
+                       composer_data->ug_type = ug_type;
+                       ad->composer_data = composer_data;
+
+                       if (ug_type == MSG_COMPOSER_UG_TYPE_VIEWER && ad->layout_main) {
+                               PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+
+                               if (pListData) {
+                                       int thread_id = 0;
+                                       char *buf = NULL;
+
+                                       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, &buf);
+                                       if (buf != NULL) {
+                                               thread_id = atoi(buf);
+                                               free(buf);
+                                               buf = NULL;
+                                       }
+
+                                       if (thread_id > 0) {
+                                               pListData->sel_thread_id = thread_id;
+                                               pListData->sel_msg_id = 0;
+                                               pListData->sel_gen_item = msg_ui_thread_selected_gen_item_by_id(pListData, THREAD_LIST_APP_DATA_CONV, pListData->sel_thread_id);
+                                               if (pListData->sel_gen_item) {
+                                                       elm_genlist_item_selected_set(pListData->sel_gen_item, true);
+                                                       elm_genlist_item_update(pListData->sel_gen_item);
+                                               }
+                                               composer_data->sel_gen_item = pListData->sel_gen_item;
+                                               composer_data->sel_thread_id = pListData->sel_thread_id;
+                                       }
+                               }
+                       }
+               }
+       }
+
+       if (key_type)
+               free(key_type);
+
+       if (operation)
+               free(operation);
+
+       if (svc_handle)
+               app_control_destroy(svc_handle);
+
+       if (ad->win_main) {
+               evas_object_show(ad->win_main);
+               elm_win_activate(ad->win_main);
+       }
+
+       if (ad->layout_main == NULL && ad->composer_data == NULL && ad->viewer_ug == NULL)
+               elm_exit();
+
+       D_LEAVE;
+}
+
+__EXPORT_API__ int main(int argc, char *argv[])
+{
+       D_ENTER;
+
+       msg_common_init_default_preference();
+
+       struct appdata ad;
+       memset(&ad, 0x0, sizeof(struct appdata));
+
+       ui_app_lifecycle_callback_s event_callback = {0,};
+       app_event_handler_h handlers[3] = {NULL, };
+
+       event_callback.create = app_create;
+       event_callback.terminate = app_terminate;
+       event_callback.pause = app_pause;
+       event_callback.resume = app_resume;
+       event_callback.app_control = app_service;
+
+       ui_app_add_event_handler(&handlers[0], APP_EVENT_LOW_BATTERY, low_battery_cb, &ad);
+       ui_app_add_event_handler(&handlers[1], APP_EVENT_LANGUAGE_CHANGED, lang_changed, &ad);
+       ui_app_add_event_handler(&handlers[2], APP_EVENT_REGION_FORMAT_CHANGED, region_changed_cb, &ad);
+
+       D_LEAVE;
+       return ui_app_main(argc, argv, &event_callback, &ad);
+}
diff --git a/main/message.h b/main/message.h
new file mode 100755 (executable)
index 0000000..86d9d8c
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_message_H_
+#define __DEF_message_H_
+
+#include <stdio.h>
+#include <glib.h>
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+
+#include <libintl.h>
+#include <bundle.h>
+#include <app.h>
+#include <Ecore.h>
+#include <Elementary.h>
+#include <ui-gadget-module.h>
+#include <utilX.h>
+#include "msg-ui-util.h"
+
+#define POPUP_DELAY (1)
+#define DEF_NUM_LEN    (64)
+
+#define MSG_UI_CAPTURE_IMAGE   "org.tizen.message"
+
+typedef enum {
+       MSG_COMPOSER_UG_TYPE_NONE = 0,
+       MSG_COMPOSER_UG_TYPE_COMPOSER,
+       MSG_COMPOSER_UG_TYPE_VIEWER,
+} MessageComposerUgType;
+
+typedef struct _ugdata
+{
+       ui_gadget_h ug_h;
+       MessageComposerUgType ug_type;
+       Elm_Object_Item *sel_gen_item;
+       int sel_thread_id;
+       int sel_msg_id;
+
+       struct _ugdata *prev_ug;
+       struct _ugdata *next_ug;
+}ugdata;
+
+struct appdata
+{
+       Evas_Object *win_main;
+       Evas_Object *conform;
+       Evas_Object *bg;
+       Evas_Object *layout_main;
+
+       ugdata *composer_data;
+       struct ug_cbs composer_cbs;
+
+       ui_gadget_h viewer_ug;
+       struct ug_cbs viewer_cbs;
+
+       int cur_rotation;
+       msg_handle_t msgHandle;
+       void *thread_data;
+       ui_gadget_h setting_ug;
+
+       pthread_t launch_thread;
+       msg_struct_list_s *launch_list;
+};
+
+int msg_ui_load_composer_ug(app_control_h svc_handle, MessageComposerUgType ug_type, bool isListItem);
+Evas_Object *msg_ui_get_main_layout(void);
+ugdata *msg_ui_get_composer_ug_data(ui_gadget_h ug);
+ugdata *msg_ui_get_composer_ug_data_by_id(int app_data_type, int sel_id);
+Evas_Object *msg_ui_get_composer_ug_layout(int ug_type);
+void msg_ui_destroy_composer_ug(ui_gadget_h ug, bool bDeleteAll);
+int msg_ui_get_composer_ug_type(ui_gadget_h ug);
+bool msg_ui_get_launch_list(msg_struct_list_s *list);
+void msg_ui_remove_launch_list(void);
+
+
+#endif /* __DEF_message_H__ */
+
+
diff --git a/main/org.tizen.message-portrait.edc b/main/org.tizen.message-portrait.edc
new file mode 100755 (executable)
index 0000000..2d6dd39
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+collections {
+       group {
+               name: "effect";
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color_class: "B0211";
+                               }
+                       }
+                       part {
+                               name: "indicator";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel2.relative: 1.0 0.0;
+                                       align: 0.5 0.0;
+                                       min: 0 36;
+                                       fixed: 0 1;
+                                       color_class: "B011";
+                               }
+                       }
+               }
+       }
+}
diff --git a/main/po/CMakeLists.txt b/main/po/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..2d0a3eb
--- /dev/null
@@ -0,0 +1,97 @@
+# for i18n
+
+SET(POFILES
+ar.po
+as.po
+az.po
+bg.po
+bn.po
+ca.po
+cs.po
+da.po
+de.po
+el_GR.po
+en.po
+en_PH.po
+en_US.po
+es_ES.po
+es_US.po
+et.po
+eu.po
+fa.po
+fi.po
+fr.po
+fr_CA.po
+ga.po
+gl.po
+gu.po
+hi.po
+hr.po
+hu.po
+hy.po
+id.po
+is.po
+it_IT.po
+ja_JP.po
+ka.po
+kk.po
+km.po
+kn.po
+ko_KR.po
+lo.po
+lt.po
+lv.po
+mk.po
+ml.po
+mr.po
+ms.po
+my_MM.po
+nb.po
+ne.po
+nl.po
+or.po
+pa.po
+pl.po
+pt_BR.po
+pt_PT.po
+ro.po
+ru_RU.po
+si.po
+sk.po
+sl.po
+sr.po
+sv.po
+ta.po
+te.po
+th.po
+tl.po
+tr_TR.po
+uk.po
+ur.po
+uz.po
+vi.po
+zh_CN.po
+zh_HK.po
+zh_TW.po
+)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+       SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+       MESSAGE("PO: ${pofile}")
+       GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+       GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+       SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+       ADD_CUSTOM_COMMAND(
+                       OUTPUT ${moFile}
+                       COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+                       DEPENDS ${absPofile}
+       )
+       INSTALL(FILES ${moFile}
+                       DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+       SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/main/po/ar.po b/main/po/ar.po
new file mode 100644 (file)
index 0000000..10a7e71
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "منزل"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "تم إلغاء تفعيل تجوال البيانات. قم بتفعيل بيانات التجوال، ثم أعد المحاولة."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "رسالة جديدة"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "إلغاء"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "تم"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "غير معروف"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "الجوال"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "تم إلغاء تفعيل بيانات الهاتف المحمول. قم بتفعيل بيانات الهاتف المحمول، ثم أعد المحاولة."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "إرسال"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "نوع الوسائط غير مدعوم."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "يتعذر إرسال الرسائل أثناء استخدام وضع الطيران. قم بإلغاء تفعيل وضع الطيران، ثم أعد المحاولة."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "غير قابل لتحويل هذا الملف. تم قفل تحويل هذا الملف"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "ما من مساحة كافية على وحدة تخزين الجهاز. انتقل إلى الضبط > الطاقة ووحدة التخزين > وحدة التخزين، ثم احذف بعض الملفات وحاول مرة أخرى."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "النص في الأعلى"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "النص بالأسفل"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "تحديد مخطط"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "تتعذر إضافة محتوى."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "تمت جدولة الرسالة المطلوب إرسالها إلى %s. هل تريد الإرسال الآن؟"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "تم الوصول إلى الحد الأقصى لحجم الرسائل."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "البطارية ضعيفة."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "‏‫يجب أن تكون المدة %d ثوان على الأقل‬."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "جار إلغاء تفعيل وضع الطيران..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "تم النسخ إلى بطاقة SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "تم الإلغاء."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "استخدام معلومات جهة اتصال أخرى"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "إرسال عبر"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "صورة"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "البريد الإلكتروني"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "استبدال"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "عرض"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "حذف"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "تشغيل"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "إلى"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "إلغاء الرسالة"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "لائحة المستقبلون"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "معاينة"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "مدة الشريحة %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "انتظر حتى تتم إضافة العناصر إلى عرض الشرائح."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "يتعذر إرسال الرسالة."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "تحديد نغمة رنين"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "سيتم إرسال تقرير القراءة."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "غير مطلوب"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "تم بلوغ الحد الأقصى لعدد المستلمين (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "أدخل الموضوع."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "مستلم مكرر."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "تحويل"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "يتعذر الحفظ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "يتعذر البحث عن الموقع."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "لا يمكن المسح."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "يتعذر النسخ."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "بعض الأحرف قد تكون فقدت. متابعة؟"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "لم يتم إدخال بطاقة SIM."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "فشل الحفظ."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "تم الحفظ في ملفاتي."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "فشل استرداد الرسالة"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "نوع المحتوى مقيد. إرفاق على أية حال؟"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "قيد الاستعادة..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "تم رفضها."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "تقرير القراءة"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "لا يوجد رقم"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "لا يوجد ملحقات"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "رسائل جديدة"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "تم نسخ الرسالة من بطاقة SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "الحد الأقصى للمستلمين هو %d. قد يتم فقد بعض المستلمين."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "تم تجاوز الحد الأقصى لعدد المرفقات (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "تم الوصول إلى أقصى عدد من الحروف."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "جاري..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "جاري البدء..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "إذا كنت لا ترغب في استبدال الملف، فقم بإعادة تسميته."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "تحتوي هذه الرسالة على ملف ملحق غير ظاهر."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "تحتوي هذه الرسالة على ملفات ملحقة غير ظاهرة."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "اسم الملف موجود مسبقا."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "جاري المسح..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "تم النسخ إلى الحافظة."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "التحويل إلى رسالة نصية..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "التحويل إلى رسالة الوسائط المتعددة..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "حظر %s؟"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "أنت على وشك تسجيل الدخول (%s). متابعة"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "رسالة نصية"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "الموضوع:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "المرسل عبر البريد الالكتروني"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "مرسل"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "اختيار"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "حفظ الملحقات"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "حفظ"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "حذف"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "تثبيت"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "تحويل"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "تعديل الرسالة"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "مسح؟"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "حذف الرسائل"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "تحديد رسائل"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "حفظ الكل"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "تفاصيل الرسالة"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "تنتهي الصلاحية في: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "بحث متقدم"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "حفظ جميع المرفقات"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "غير معروف"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "إلى:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "رسائل نصية"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "ذاكرة SIM ممتلئة. احذف بعض العناصر."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "الضبط"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "مرسلة:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "تم الطلب."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "المستقبلون"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "مستقبلة:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "تم الاستلام."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "تقرير القراءة"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "رسائل الدفع"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d رسالة (رسائل)"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d محادثة (محادثات)"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "آخر"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "لا يوجد موضوع"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "لا يوجد اسم"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "إعلام برسالة وسائط متعددة"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "رسالة وسائط"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "ك.ب"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "المقروءة"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "تم رفض الرسالة."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "رسالة وسائط"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "حجم الرسالة"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "خيارات الرسائل"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "تم توصيل الرسالة"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "رسالة"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "أنا"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "تم تجاوز الحد الأقصى لعدد المرفقات (%1$s). ستتم إضافة أول %2$s فقط."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "ليس مستلمًا صالحًا."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "من"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "من:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "انتهت المدة"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "فشل الإرسال."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "تقرير التوصيل"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "رسائل CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "نسخ النص"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "رسائل CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "الكل"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "رسالة واحدة"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "محادثة واحدة"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "طلب تقرير قراءة لكل رسالة ترسلها"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "طلب تقرير تسليم لكل رسالة ترسلها"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "زر الراديو"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "زر التشغيل/إيقاف التشغيل"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "القائمة القابلة للتوسيع"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "استرداد رسائل MMS بشكل تلقائي"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "تتعذّر معاينة الملف. إن نوع الملف غير مدعوم."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "تتعذر إضافة بعض المستلمين. أعداد غير صالحة."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "تتعذر إضافة مستلم. عدد غير صالح."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "تتعذر إضافة مستلمين. أعداد غير صالحة."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "تتعذّر إضافة المرفق. تم بلوغ الحد الأقصى لعدد المرفقات (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "هذا الرقم غير صالح."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "تم نسخ الرسائل المحددة إلى الجهاز المحمول."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "تم نقل %d من الرسائل إلى قائمة الرسائل."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "العدد الذي تمت إزالته من قائمة حظر‬‬‬ الرسائل."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "العدد الذي تمت إضافته إلى قائمة حظر الرسائل."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "تم نسخ الرسالة إلى بطاقة SIM ‏%s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "تم تجاوز الحد الأقصى لعدد الأحرف."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "تم تجاوز الحد الأقصى لحجم الرسالة (%s كيلوبايت). جارٍ تغيير حجم المرفقات..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "تم إدخال حرف غير صالح"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "أضف المستلمين."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "تم نقل رسالة واحدة إلى قائمة الرسائل."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "الرسائل النصية"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "الصوت"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "رسائل الوسائط المتعددة"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "ما من رسائل على بطاقة SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "وضع الإدخال"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "استرداد تلقائي أثناء التجوال"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "استرداد تلقائي"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "إرسال الآن"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "لا"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "حدد وضع إدخال لإنشاء الرسائل."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "لا شيء"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "قم بإدارة الرسائل المخزنة على بطاقة SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "سيتم تجاهل رسالتك. لم يتم تحديد أي مستلم."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "يتعذر إرسال رسالة مجدولة. حدد موعدا آخر."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "يتعذر التشغيل أثناء المكالمة."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "يتعذر إرفاق ملف. حجم الملف كبير للغاية. حاول الإرسال عبر البريد الإلكتروني أو البلوتوث أو Wi-Fi، أو ما إلى ذلك"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "لإرسال رسالة الوسائط المتعددة هذه، سيتصل الجهاز بشبكة هاتف محمول مختلفة. سيؤدي ذلك إلى قطع اتصال جهازك بشبكة الهاتف المحمول الحالية."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "لتنزيل رسالة الوسائط المتعددة هذه، سيتصل الجهاز بشبكة محمول مختلفة. سيؤدي ذلك إلى قطع اتصال الجهاز بشبكة المحمول الحالية."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "ستتم إعادة إرسال هذه الرسالة."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "سيتم حذف %d رسائل."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "سيتم حذف %d من المحادثات."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "لا توجد قوالب بهذه القائمة"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "الرسائل الواردة فقط"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "تضمين النص الأصلي في الرسالة الصادرة"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "يجب أن تكون المدة أقل من %d ثوان."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "تم المسح."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "سيتم حذف رسالة واحدة."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "سيتم حذف محادثة واحدة."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "عرض التفاصيل"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "عرض تفاصيل جهة الاتصال"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "عرض كعرض شرائح"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "الفيديو"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "تحديث جهة الاتصال"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "الرمز الموحد"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "نص"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "التقاط صورة"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "الضبط"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "البحث"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "حفظ المرفقات"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "إعادة الإرسال"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "رد"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "إزالة من قائمة الحظر"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "تسجيل فيديو"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "تسجيل ملف الصوت"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "رد سريع"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "لاشيء"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "إجراء مكالمة صوتية"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "الصور"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "أبجدية GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "تصدير إلى ذاكرة الجهاز"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "تعديل"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "حذف الرسالة"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "حذف المحادثة"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "مسح"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "إفتراضي"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "إنشاء جهة اتصال"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "نسخ إلى بطاقة SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "نسخ إلى الجهاز"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "نسخ النص"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "نسخ"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "نسخ احتياطي"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "تلقائي"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "ملفات الصوت"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "المرفق"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "إضافة إلى جهات الاتصال"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "إضافة إلى قائمة الحظر"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "إضافة مستلمين"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "بحث"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "لم يتم العثور على أي نتيجة"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "لا توجد ردود سريعة"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "لم يتم حظر أي عبارات"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "ما من رسائل على بطاقة SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "ما من رسائل"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "ما من أرقام محظورة"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "الاهتزاز"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "رقم غير معروف"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "رقم هاتف مركز الرسائل النصية"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "تحديد الكل"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "التنبيهات"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "ترجمة"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "الرسائل النصية"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "تبديل شبكة المحمول"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "مركز الرسائل النصية"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "الضبط"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "تحديد مستلم"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "تم تحديد %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "ما من رسائل على بطاقة SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "الرسائل"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "وضع الإدخال"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "حجم الملف كبير للغاية"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "فشل إرسال الرسالة"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "تجاهل الرسالة"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "حذف"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "إنشاء"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "انتباه"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "إضافة محتوى"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "تبديل"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "حفظ"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "إعادة الإرسال"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "حذف"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "موافق"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "تنزيل"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "تجاهل"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "حذف"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "إلغاء"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "إلغاء"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "جهات الاتصال"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "لقد حددت ملف صوت ولقطة. بيانات الصوت غير معتمدة لرسائل MMS؛ وبالتالي فسيتم إرفاق الصورة فقط."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "نعم"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "جارٍ انتظار الإرسال..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "يتعذر إرسال هذه الرسالة. أدخل بطاقة SIM وحاول مرة أخرى."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "النوع:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "لاستخدام أنواع الوسائط المقيدة، قم بتغيير إعداد وضع إنشاء رسائل الوسائط المتعددة."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "وقت الإرسال:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "وقت التلقي:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "مربع التحديد"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "الحالة:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "تم الإرسال"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "جارٍ الإرسال..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "فشل الإرسال"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "ثواني"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "قم باسترداد الرسائل تلقائياً أثناء التجوال."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "قم باسترداد الرسائل تلقائياً."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "تقرير بالقراءة: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "شخص آخر"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "رسالة"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "مذكرة"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "فشل الإرسال"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "إدخال نص"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "مسودة"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "تقرير التسليم: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "رسالة الشبكة"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "التقويم"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ستظهر الرسائل هنا بعد إرسالها أو استلامها."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ستظهر هنا الردود السريعة بعد إنشائها."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "بعد نسخ الرسائل إلى بطاقة SIM، ستظهر هنا."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ستظهر العبارات هنا بعد إضافتها."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ستظهر الأرقام هنا بعد إضافتها إلى قائمة حظر الرسائل."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "حذف"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "جاري التحميل ..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "إشعارات"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "أنا"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "إرسال"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "إرسال"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "إرسال"
+
diff --git a/main/po/as.po b/main/po/as.po
new file mode 100644 (file)
index 0000000..e3866ae
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "গৃহ"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "ডাটা ৰোমিং অক্ষম হৈছে৷ ডাটা ৰোমিং সক্ষম কৰক আৰু পুনৰ চেষ্টা কৰক৷"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "নতুন মেচেজ"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "বাতিল কৰক"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "সম্পন্ন"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "অজ্ঞাত"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "ম'বাইল"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "ম'বাইল ডাটা অক্ষম কৰা হৈছে৷ ম'বাইল ডাটা সক্ষম কৰক আৰু পুনৰ চেষ্টা কৰক৷"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "প্ৰেৰণ কৰক"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "অসমৰ্থিত মেডিয়া প্ৰকাৰ৷"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "ফ্লাইট ম'ডত থকাৰ সময়ত মেচেজ প্ৰেৰণ কৰিবলৈ অক্ষম৷ ফ্লাইট ম'ড অক্ষম কৰক আৰু পুনৰ চেষ্টা কৰক৷"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "অগ্ৰসৰ কৰিবলৈ অক্ষম৷\nফাইল অগ্ৰসৰ লক হৈ আছে"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "আপোনাৰ ডিভাইচ সংগ্ৰহত পৰ্যাপ্ত স্থান নাই৷ ছেটিংছ > পাৱাৰ আৰু সংগ্ৰহণ > সংগ্ৰহণলৈ যাওক, তাৰপিছত কিছুমান ফাইল বিলোপ কৰক আৰু পুনঃচেষ্টা কৰক৷"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "ওপৰত পাঠ্য"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "তলত পাঠ্য"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "লেআউট চয়ন কৰক"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "সমল যোগ কৰিবলৈ অক্ষম৷"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "তালিকাভুক্ত মেচেজ %s-লৈ প্ৰেৰণ কৰিব লাগে৷ এতিয়া প্ৰেৰণ কৰিবনে?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "সৰ্বাধিক মেচেজ আকাৰ পোৱা গৈছে৷"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "নিম্ন বেটাৰী৷"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "ম্যাদ কমেও %d ছেকেণ্ডত হ'ব লাগিব৷"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "ফ্লাইট ম'ড অক্ষম হৈছে..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM কাৰ্ডলৈ প্ৰতিলিপি হৈছে৷"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "বাতিল হৈছে৷"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "অন্য সম্পৰ্ক তথ্য ব্যৱহাৰ কৰক"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "হৈ প্ৰেৰণ কৰক"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "প্ৰতিচ্ছবি"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ইমেইল"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "স্থানান্তৰ কৰক"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "দৰ্শন কৰক"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "আঁতৰাওক"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "চলাওক"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "প্ৰতি"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "মেচেজ বাতিল কৰক"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "প্ৰাপ্তকৰ্তা সূচী"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "পূৰ্বলোকন"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "শ্লাইড %d/%d ৰ সময় অৱধি"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "আইটেম শ্লাইডশ্ব'লৈ যোগ হোৱাৰ সময়ত অপেক্ষা কৰক৷"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "মেচেজ প্ৰেৰণ কৰিবলৈ অক্ষম৷"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "ৰিংট'ন চয়ন কৰক"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "পঢ়া প্ৰতিবেদন প্ৰেৰণ কৰা হ'ব৷"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "অনুৰোধিত নহয়"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "প্ৰাপ্তকৰ্তাৰ সৰ্বাধিক সংখ্যা (%d) ত উপনীত হৈছে৷"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "বিষয় প্ৰৱিষ্ট কৰক৷"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "নকল প্ৰাপ্তকৰ্তা৷"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "অগ্ৰসৰ"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "সংৰক্ষণ কৰিবলৈ অক্ষম৷"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "অৱস্থান পাবলৈ অক্ষম৷"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "বিলোপ কৰিবলৈ অক্ষম৷"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "প্ৰতিলিপি কৰিবলৈ অক্ষম৷"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "কিছু বৰ্ণ হেৰুৱাব পাৰে৷ জাৰী ৰাখিবনে?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM আন্তঃসংযোগ হোৱা নাই৷"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "সংৰক্ষণ বিফল হৈছে৷"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "মাই ফাইলচত সংৰক্ষিত৷"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "পুনৰোদ্ধাৰ হৈ থকা মেচেজ বিফল হৈছে"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "অৱৰোধিত সমলৰ প্ৰকাৰ৷ যিকি নহওক সংলগ্ন কৰিবনে?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "পুনসঞ্চয় কৰি থকা হৈছে..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "বৰ্জন হৈছে৷"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "ৰিপৰ্ট পঢ়ক"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "নম্বৰ নাই"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "সংলগ্নসমূহ নাই"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "নতুন মেচেজ"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM কাৰ্ডৰ পৰা বাৰ্তা প্ৰতিলিপি হৈছে কৰা হৈছে৷"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "প্ৰাপ্তকৰ্তাৰ সৰ্বাধিক নম্বৰ %d৷ কিছু প্ৰাপ্তকৰ্তা হেৰুৱাব পাৰে"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "সংলগ্নৰ (%s) সৰ্বাধিক সংখ্যা অতিক্ৰম কৰিছে৷"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "বৰ্ণৰ সৰ্বাধিক সংখ্যাত উপনীত হৈছে৷"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "চলি আছে..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "আৰম্ভ কৰি আছে..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "যদি আপুনি ফাইল সলনি কৰিব নিবিচাৰে, ইয়াক পুনঃনাম কৰক৷"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "এই মেচেজটোৰ লগত সন্নিবিষ্ট কৰা ফাইল এটা আছে যাক দেখুওৱা হোৱা নাই৷"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "এই মেচেজত প্ৰদৰ্শন নকৰা সংলগ্ন ফাইল আছে৷"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ফাইল নাম ইতিমধ্যে মজুত আছে৷"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "বিলোপ হৈ আছে..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "ক্লিপবৰ্ডলৈ প্ৰতিলিপি হৈছে৷"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "পাঠ মেচেজলৈ ৰূপান্তৰ কৰি আছে..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "মাল্টিমিডিয়া মেচেজলৈ ৰূপান্তৰ কৰি আছে..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%sক অৱৰোধ কৰিবনে?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "আপুনি (%s) অনলাইন হৈছে৷ জাৰী ৰাখিবনে?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "পাঠ মেচেজ"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "বিষয়:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ইমেইল হৈ প্ৰেৰণ কৰক"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "প্ৰেৰক"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "চয়ন কৰক"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "সংলগ্ন সংৰক্ষণ কৰক"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "সংৰক্ষণ কৰক"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "আঁতৰাওক"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "ইনষ্টল"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "অগ্ৰসৰ কৰক"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "মেচেজ সম্পাদনা কৰক"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "বিলোপ কৰিবনে?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "মেচেজ বিলোপ কৰক"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "মেচেজসমূহ চয়ন কৰক"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "সকলো সংৰক্ষণ কৰক"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "মেচেজ বিশদ-বিৱৰণ"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "সময় উকলি যাব: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "অগ্ৰণী অনুসন্ধান"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "সকলো সংলগ্ন সংৰক্ষণ কৰক"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "অজ্ঞাত"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "প্ৰতি:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "পাঠ মেচেজ"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM মেম'ৰি সম্পূৰ্ণ৷ কিছু আইটেম বিলোপ কৰক।"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "ছেটিংছ"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "প্ৰেৰিত:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "অনুৰোধ কৰা৷"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "প্ৰাপ্তকৰ্তাসমূহ"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "প্ৰাপ্ত কৰিছে:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "প্ৰাপ্ত কৰিছে৷"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "ৰিপৰ্ট পঢ়ক"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "পুচ মেচেজ"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d টা মেচেজ"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d টা কথোপকথন"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "অন্য"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "বিষয় নাই"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "নাম নাই"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "মাল্টিমিডিয়া মেচেজৰ নিৰ্দেশনা"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "মাল্টিমিডিয়া মেচেজ"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "পঢ়ক"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "মেছেজ বৰ্জন কৰা হৈছে৷"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "মেছেজ আকাৰ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "মেচেজ বিকল্পসমূহ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "মেছেজ বিতৰণ কৰা হৈছে"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "মেচেজ"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "মোক"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "সৰ্বাধিক সংখ্যক সংলগ্ন (%1$s) পাৰ কৰিছে৷ কেৱল প্ৰথম %2$s যোগ কৰা হ'ব"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "অমান্য প্ৰাপ্তকৰ্তা৷"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "পৰা"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "পৰা:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "অৱসান হৈছে"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "প্ৰেৰণ কৰি থকা বিফল হৈছে৷"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "ডেলিভাৰী প্ৰতিবেদন"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "চিপি মেচেজ"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "পাঠ প্রতিলিপি কৰক"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB মেচেজ"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "সকলো"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 টা মেচেজ"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 টা কথোপকথন"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "আপুনি প্ৰেৰণ কৰা প্ৰতিটো মেচেজৰ বাবে এটা পঠন ৰিপৰ্টৰ বাবে অনুৰোধ জনাওক৷"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "আপুনি প্ৰেৰণ কৰা প্ৰতিটো মেচেজৰ বাবে এটা ডেলিভাৰী ৰিপৰ্টৰ বাবে অনুৰোধ জনাওক৷"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "ৰেডিঅ' বুটাম"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "অন/অফ বুটাম"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "বিস্তাৰণযোগ্য সূচী"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "স্বযংক্ৰিয়ভাৱে পুনৰুদ্ধাৰ MMS মেচেজসমূহ৷"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ফাইল পূৰ্বলোকন কৰিবলৈ অক্ষম৷ অসমৰ্থিত ফাইলৰ প্ৰকাৰ৷"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "কিছুমান প্ৰাপ্তকর্তা যোগ কৰিবলৈ অক্ষম৷ নম্বৰসমূহ মান্য নহয়৷"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "প্ৰাপ্তকর্তা যোগ কৰিবলৈ অক্ষম৷ নম্বৰ মান্য নহয়৷"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "প্ৰাপ্তকর্তাসকল যোগ কৰিবলৈ অক্ষম৷ নম্বৰসমূহ মান্য নহয়৷"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "সংলগ্ন যোগ কৰিবলৈ অক্ষম৷ সংলগ্নসমূহৰ সৰ্বাধিক নম্বৰ (%d)-ত উপনীত হৈছে৷"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "এই নম্বৰটো মান্য নহয়৷"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "চয়নিত মেচেজসমূহ ম'বাইল ডিভাইচলৈ প্ৰতিলিপি হৈছে৷"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "মেচেজ সূচীলৈ %d টা মেচেজ লৈ যোৱা হৈছে৷"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "মেচেজ অৱৰোধ সূচীৰ পৰা নম্বৰ আঁতৰোৱা হৈছে৷"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "মেচেজ অৱৰোধ সূচীলৈ নম্বৰ যোগ হৈছে৷"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "মেচেজ %s SIM কাৰ্ডলৈ প্ৰতিলিপি হৈছে৷"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "সৰ্বাধিক সংখ্যা বৰ্ণত অতিক্ৰম কৰিছে৷"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "সৰ্বাধিক মেচেজৰ আকাৰ (%s) অতিক্ৰম কৰিছে৷ সংলগ্নসমূহ পুনঃআকাৰ কৰি আছে..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "অমান্য বৰ্ণ প্ৰৱিষ্ট কৰা হৈছে"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "প্ৰাপ্তকর্তাসকল যোগ কৰক৷"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "মেচেজ সূচীলৈ 1 টা মেচেজ লৈ যোৱা হৈছে৷"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "পাঠ মেচেজসমূহ"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ধ্বনি"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "মাল্টিমিডিয়া মেচেজসমূহ"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM কাৰ্ডত মেচেজসমূহ"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "ইনপুট ম'ড"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "ৰোমিংৰ সময়ত স্বয়ং পুনৰুদ্ধাৰ"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "স্বয়ং পুনৰুদ্ধাৰ"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "প্ৰেৰণ"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "নহয়"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "মেচেজসমূহ ৰচনা কৰিবলৈ এটা ইনপুট ম'ড চয়ন কৰক৷"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "একো নাই"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "আপোনাৰ SIM কার্ডত সংগৃহীত মেচেজসমূহ পৰিচালনা কৰক৷"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "আপোনাৰ মেচেজ পৰিত্যাগ কৰা হ'ব৷ কোনো প্ৰাপ্তকাৰীক চয়ন কৰা নাই৷"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "অনুসূচীত মেচেজ প্ৰেৰণ কৰিবলৈ অক্ষম৷ অন্য সময় ছেট কৰক।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "কল কৰি থকাৰ সময়ত প্লে কৰিবলৈ অক্ষম৷"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ফাইল সংলগ্ন কৰিবলৈ অক্ষম৷ ফাইলৰ আকাৰ অতি ডাঙৰ৷ ইমেইল, ব্লুটুথ, Wi-Fi, আদিৰ দ্বাৰা প্ৰেৰণ কৰিবলৈ চেষ্টা কৰক৷"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "এই মাল্টিমিডিয়া মেচেজটো প্ৰেৰণ কৰিবলৈ, ডিভাইচটো এটা পৃথক ম'বাইল নেটৱৰ্কলৈ সংযোগ হ'ব৷ ই আপোনাৰ সাম্প্ৰতিক ম'বাইল নেটৱৰ্কৰ পৰা আপোনাৰ ডিভাইচটো সংযোগহীন কৰিব৷"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "এই মাল্টিমিডিয়া মেচেজ ডাউনলোড কৰিবলৈ, ডিভাইচটো এটা পৃথক ম'বাইল নেটৱৰ্কলৈ সংযোগ হ'ব৷ ই আপোনাৰ ডিভাইচক আপোনাৰ সাম্প্ৰতিক ম'বাইল নেটৱৰ্কৰ পৰা সংযোগহীন কৰিব৷"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "এই মেচেজ পুনঃপ্ৰেৰণ কৰা হ'ব৷"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d টা মেচেজ বিলোপ কৰা হ'ব৷"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d কথোপকথনসমূহ বিলোপ কৰা হ'ব৷"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "এই তালিকাখনত কোনো টেমপ্লেট নাই"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "কেৱল মাত্ৰ ইনকামিং মেচেজসমূহ"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "আউটগয়িং মেচেজত মূল পাঠ অন্তৰ্ভুক্ত কৰক"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "ব্যৱধান %d ছেকেণ্ডতকৈ চমু হ'বই লাগিব৷"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "বিলোপ হৈছে৷"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 টা মেচেজ বিলোপ কৰিব লাগিব৷"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 টা কথোপকথন বিলোপ কৰা হ'ব৷"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "বিশদ-বিৱৰণ দৰ্শন কৰক"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "সম্পৰ্ক বিৱৰণসমূহ দৰ্শন কৰক"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "শ্লাইডশ্ব' ৰূপে দৰ্শন কৰক"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "ভিডিঅ'সমূহ"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "সম্পৰ্ক আপডেট কৰক"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "ইউনিকোড"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "পাঠ"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "ছবি তোলক"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "ছেটিংছ"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "অনুসন্ধান কৰক"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "সংলগ্ন সংৰক্ষণ কৰক"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "পুনঃপ্ৰেৰণ কৰক"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "উত্তৰ দিয়ক"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "অৱৰোধ সূচীৰ পৰা আঁতৰাওক"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "ভিডিঅ' ৰেকৰ্ড কৰক"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "অডিঅ' ফাইল ৰেকৰ্ড কৰক"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "দ্ৰুত সঁহাৰি"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "একো নাই"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "মাত কল কৰক"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "প্ৰতিচ্ছবি"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM বৰ্ণ"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "ডিভাইচ মেম'ৰিলৈ ৰপ্তানি কৰক"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "সম্পাদনা কৰক"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "মেচেজ বিলোপ কৰক"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "কথোপকথন বিলোপ কৰক"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "বিলোপ কৰক"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "ডিফ'ল্ট"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "সম্পর্ক সৃষ্টি কৰক"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM কাৰ্ডলৈ প্ৰতিলিপি কৰক"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "ডিভাইচলৈ প্ৰতিলিপি কৰক"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "পাঠ প্রতিলিপি কৰক"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "প্ৰতিলিপি"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "বেক আপ লওক"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "স্বয়ংক্ৰিয়"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "অডিঅ' ফাইলসমূহ"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "সংলগ্ন"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "সম্পর্কসমূহত যোগ কৰক"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "অৱৰোধ সূচীলৈ যোগ কৰক"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "প্ৰাপ্তকর্তাসকল যোগ কৰক"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "অনুসন্ধান"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "কোনো ফলাফল পোৱা নগ'ল"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "দ্ৰুত সঁহাৰি নাই"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "কোনো বাক্যাংশ অৱৰোধিত কৰা নাই"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM কাৰ্ডত কোনো মেচেজ নাই"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "মেচেজ নাই"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "কোনো অৱৰোধিত নম্বৰ নাই"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "ভাইব্ৰেশ্বন"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "অজ্ঞাত নম্বৰ"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "পাঠ মেচেজ কেন্দ্ৰ নম্বৰ"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "সকলো চয়ন কৰক"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "এলাৰ্টসমূহ"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "অনুবাদ"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "পাঠ মেচেজসমূহ"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "ম'বাইল নেটৱৰ্ক সলনা-সলনি কৰক"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS কেন্দ্ৰ"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "ছেটিংছ"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "প্ৰাপ্তকৰ্তা চয়ন কৰক"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d টা চয়নিত"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM কাৰ্ডত মেচেজসমূহ"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "মেচেজ"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ইনপুট ম'ড"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ফাইলৰ আকাৰ অতি ডাঙৰ"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "মেচেজ প্ৰেৰণ কৰাত বিফল হৈছে"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "মেছেজ পৰিত্যাগ কৰিবনে?"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "বিলোপ কৰক"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "সৃষ্টি কৰক"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "মনোযোগ"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "সমল যোগ কৰক"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "সলনি কৰক"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "সংৰক্ষণ কৰক"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "পুনঃপ্ৰেৰণ"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "আঁতৰাওক"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ঠিক"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ডাউনলোড"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "পৰিত্যাগ"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "বিলোপ কৰক"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "বাতিল"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "বাতিল"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "সম্পর্কসমূহ"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "আপুনি এটা চাউন্ড এন্ড শ্বট ফাইল চয়ন কৰিছে৷ ধ্বনি ডাটা MMS সমৰ্থিত নোহোৱাৰ বাবে, কেৱল মাত্ৰ চিত্ৰখন সংলগ্ন কৰা হ'ব।"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "হয়"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "প্ৰেৰণ কৰিবলৈ অপেক্ষাৰত..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "এই মেচেজ প্ৰেৰণ কৰাত অক্ষম৷ আপোনাৰ SIM কাৰ্ড আন্তঃসংযোগ কৰক আৰু পুনৰাই চেষ্টা কৰক৷"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "প্ৰকাৰ:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "প্ৰতিবন্ধিত মিডিয়া প্ৰকাৰ ব্যৱহাৰ কৰিবলৈ, আপোনাৰ MMS সৃষ্টিকাৰী ম'ড ছেটিংছ পৰিৱৰ্তন কৰক৷"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "প্ৰেৰিত সময়:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "প্ৰাপ্ত কৰা সময়:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "টিক বাকচ"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "স্থিতি:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "প্ৰেৰিত"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "প্ৰেৰণ কৰি আছে..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "প্ৰেৰণ কৰা বিফল হৈছে"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "ছেক"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "ৰোমিংৰ সময়ত মেচেজসমূহ স্বয়ংক্ৰিয়ভাৱে পুনৰুদ্ধাৰ কৰে৷"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "মেচেজসমূহ স্বয়ংক্ৰিয়ভাৱে পুনৰুদ্ধাৰ কৰে৷"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "ৰিপৰ্ট পঢ়ক: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "অন্য ব্যক্তি"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "মেচেজ"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "মেমো"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "বিফল হৈছে"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "পাঠ প্ৰৱিষ্ট কৰক"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "ড্ৰাফ্ট"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "ডেলিভাৰী প্ৰতিবেদন: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "চিবি মেচেজ"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "কেলেণ্ডাৰ"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "আপুনি মেচেজসমূহ প্ৰেৰণ বা প্ৰাপ্ত কৰাৰ পিছত, সেইবিলাক ইয়াত দেখুৱাব৷"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "আপুনি ক্ষিপ্ৰ সঁহাৰিসমূহ সৃষ্টি কৰাৰ পিছ্ত, সেইবিলাক ইয়াত দেখুওৱা হ'ব৷"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "আপুনি SIM কাৰ্ডলৈ মেচেজসমূহ প্ৰতিলিপি কৰাৰ পিছত, সেইবিলাক ইয়াত দেখুওৱা হ'ব৷"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "আপুনি বাক্যাংশ যোগ কৰাৰ পিছত, সেইবিলাক ইয়াত দেখুওৱা হ'ব৷"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "আপুনি মেচেজ অৱৰোধ সূচীলৈ নম্বৰসমূহ যোগ কৰাৰ পিছত, সেইবিলাক ইয়াত দেখুওৱা হ'ব৷"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "বিলোপ কৰক"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "লোড হৈ আছে..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "অধিসূচনাসমূহ"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "মোক"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "প্ৰে."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "প্ৰেৰণ"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "প্ৰে."
+
diff --git a/main/po/az.po b/main/po/az.po
new file mode 100644 (file)
index 0000000..ed61907
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Ev"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Verilənlər rouminqi qeyri-aktiv edilib. Verilənlər rouminqini aktivləşdirin və yenidən cəhd edin."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Yeni mesaj"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "LƏĞV ET"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "HAZIR"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Naməlum"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobil məlumatlar qeyri-aktiv edilib. Mobil məlumatları aktivləşdirin və yenidən cəhd edin."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "GÖNDƏR"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Dəstəklənməyən media növü."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Uçuş rejimində mesaj göndərmək mümkün deyil. Uçuş rejimini qeyri-aktiv et və yenidən cəhd et."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Göndərmək mümkün deyil.\nGöndərmə əməliyyatı blokirovkadadır."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Cihazınızın yaddaşında kifayət qədər yer yoxdur. Parametrlər > Enerji və yaddaş > Yaddaş seçin və bir neçə faylı silərək yenidən cəhd edin."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Mətn yuxarıda"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Mətn aşağıda"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Tərtibat seçin"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Məzmun əlavə etmək mümkün deyil."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Mesajın %s-a göndərilməsi planlaşdırılıb. İndi göndərilsin?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Mesaj ölçüsü maksimuma çatıb."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Batareya zəifdir."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Müddət minimum %d saniyə olmalıdır."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Uçuş rejimi qeyri aktiv edilir..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM karta köçürüldü."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Ləğv edildi."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Dgr kntkt mlm.ist. et"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Göndərmə vasitəsi"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Şəkil"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Elektron poçtlar"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Əvəz et"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Bax"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Sil"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Səsləndir"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Kimə"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Mesajı ləğv et"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Qəbul edənlərin siyahısı"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Nəzər yetirmə"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Slayd üçün müddət %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Elementlər slayd nümayişinə əlavə edilərkən gözləyin."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Mesaj göndərmək mümkün deyil."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Zəng melodiyası seçin"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Oxunma hesabatı göndəriləcək."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Təklif edilməyib"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Qəbul edənlərin sayı maksimuma (%d) çatıb."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Movzunu daxil et."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Duplikat qəbul edən."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Ötür"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Saxlamaq mümkün deyil."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Yeri tapmaq mümkün deyil."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Silmək mümkün deyil."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Surətini köçürmək mümkün deyildir."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Bəzi simvollar itə bilər.\nDavam etsin?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM daxil edilməyib."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Yaddaşa yazmaq mümkün olmadı."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Fayllarımda saxlandı."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Mesajın bərpa edilməsi mümkün olmadı"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Məhdudlaşdırılmış məzmun növü. İstənilən halda əlavə edilsin?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Bərpa edilir..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "İmtina edildi."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Oxunma hesabatı"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Nömrə yoxdur"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Əlavələr yoxdur"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Yeni mesaj"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Mesaj SIM kartdan köçürüldü."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Qəbul edənlərin maksimum sayı %d-dir. Qəbul edənlərin bəziləri itirilə bilər."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Əlavələrin sayı maksimumu (%s) keçmişdir."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Simvol sayı maksimuma çatıb."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "İşlənilir..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "İlkin vəziyyətə gətirilmə"
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Faylı əvəz etmək istəmirsinizsə, onun adını dəyişin."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Bu mesaj göstərilməyən əlavə edilmiş fayldan ibarətdir."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Bu mesaja göstərilməyən əlavə edilmiş fayllar daxildir."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Artıq var."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Silinmə"
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Mübadilə buferinə köçürüldü."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Mətn mesaja çevrilir..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Multimedia mesajına çevrilir..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s bloklansın?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Siz şəbəkəyə qoşulmaq üzrəsiniz(%s). Davam edilsin?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Mətn mesajı"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Mövzu:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "E-poçt ilə göndərən"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Göndərən"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Seç"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Əlavəni saxla"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Yaddaşa yaz"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Sil"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Yüklə"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Ötürün"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Mesajı redaktə et"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Silinsin?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Mesajları silin"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Mesajları seç"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Hamısını yaddaşa yaz"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Mesaj təfərrüatları"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Tamamlanır: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Təkmil axtarış"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Bütün əlav yad sax"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Naməlum"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Kimə:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Mətn mesajları"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM yaddaşı doludur. Bəzi elementləri sil."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Parametrlər"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Göndərilmişdir:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Tələb edildi."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Qəbul edənlər"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Qəbul edildi:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Qəbul edildi."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Oxunma hesabatı"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Puş mesajları"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d mesaj"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d söhbət"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Başqa"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Mövzu yoxdur"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Ad yoxdur"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Multimedia mesajı bildirişi"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimediya mesajı"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Oxu"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Mesajdan imtina edildi."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Mesajın ölçüsü"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Mesaj seçimləri"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Mesaj çatdırılmışdır"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Mesaj"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Mən"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Qoşmaların sayı maksimumu (%1$s) keçib. Yalnız ilk %2$s əlavə ediləcək."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Qəbuledən səhvdir."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Kimdən"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Kimdən:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Etibarlılıq tarixi artıq keçmişdir"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Göndərmək mümkün olmadı."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Çatdırılma haqqında hesabat"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP mesajları"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Mətnin surətini çıxar"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB mesajları"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Hamısını"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 mesaj"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 söhbət"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Göndərdiyiniz hər mesaj üçün oxunma hesabatı üçün təklif edin."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Göndərdiyiniz hər mesaj üçün çatdırılma hesabatı üçün təklif edin."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Radio düyməsi"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Yandır/söndür düyməsi"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Genişlənən siyahı"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS mesajlarını avtomatik əldə et."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Fayla ilkin baxış olmadı. Dəstəklənməyən fayl növü."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Bəzi qəbul edənləri əlavə etmək mümkün olmadı. Nömrələr etibarlı deyil."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Qəbul edən əlavə etmək mümkün olmadı. Nömrə etibarlı deyil."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Qəbul edənləri əlavə etmək mümkün olmadı. Nömrələr etibarlı deyil."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Qoşma əlavə etmək mümkün deyil. Qoşmaların sayı maksimuma (%d) çatıb."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Bu nömrə etibarlı deyil."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Seçilmiş mesajlar mobil cihaza kopyalandı."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d mesaj mesaj siyahısına köçürüldü."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Nömrə mesaj blok siyahısından silindi."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Nömrə mesaj blok siyahısına əlavə edildi."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Mesaj %s SIM karta kopyalandı."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Simvolların sayı maksimumu keçmişdir."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Mesaj ölçüsü maksimumu (%s) keçmişdir. Qoşmaların ölçüsü dəyişilir..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Səhv simvol daxil edilib"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Qəbul edənləri əlavə et."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 mesaj mesajlar siyahısına köçürüldü."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Mətn mesajları"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Səs"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimedia mesajları"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM kartdakı mesajlar"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Daxiletmə rejimi"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Rouminq zamanı avtomat çıxarma"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Avtomatik çıxarma"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "İndi gndr"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Xeyr"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Mesaj yazmaq üçün daxiletmə rejimini seçin."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Yoxdur"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "SIM kartınızda saxlanan mesajları idarə edin."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Sizin mesajınız ləğv ediləcəkdir. Heç bir alıcı seçilmədi."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Planlaşdırılmış mesajı göndərmək mümkün deyil. Başqa bir vaxtı qur."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Zəng zamanı səsləndirmək olmur."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Faylı qoşmaq mümkün deyil. Faylın ölçüsü çox böyükdür. E-poçt, Bluetooth, Wi-Fi və s. ilə göndərməyə cəhd et."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Bu multimedia mesajını göndərmək üçün cihaz fərqli mobil şəbəkəyə qoşulacaqdır. Bu, sizin cihazınızı hazırki mobil şəbəkədən ayıracaq."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Bu multimedia mesajını yükləmək üçün cihaz fərqli mobil şəbəkəyə qoşulacaq. Bu, sizin cihazınızı hazırki mobil şəbəkədən ayıracaq."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Bu mesaj yenidən göndəriləcək."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d mesaj silinəcək."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d söhbət silinəcək."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Siyahıda şablon yoxdur"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Yalnız gələn mesajlar"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "İlkin mətni çıxan mesaja daxil edin"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Müddət %d saniyədən az olmalıdır."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Silindi."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 mesaj silinəcək."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 kontakt silinəcək."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Detallara bax"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Kontakt təfərrüatlarına bax"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Slayd nümayiş kimi bax"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Kontaktı yenilə"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Yunikod"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Mətn"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Şəkil çək"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Parametrlər"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Axtar"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Qoşmaları saxla"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Yenidən göndər"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Cavab ver"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Blok siyahısından silin"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Video yaz"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Audio fayl yaz"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Çevik cavab"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Yoxdur"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Səsli zəng et"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Təsvirlər"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM əlifba"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Cihaz yaddaşına ixrac et"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Redaktə et"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Mesajı sil"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Söhbəti sil"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "İlkin təyin olunan"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Kontakt yarat"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM karta kopyala"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Cihaza köçür"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Mətnin surətini çıxar"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Köçür"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Ehtiyat nüsxə çıxar"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Avtomatik"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Audio fayllar"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Qoşma"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Kontaktlara əlavə et"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Blok siyahısına əlavə et"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Qəbul edənləri əlavə et"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Axtar"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Nəticə tapılmadı"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Cəld cavab yoxdur"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Heç bir ifadə bloklanmayıb"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM kartda mesaj yoxdur"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Mesaj yoxdur"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Bloklanmış nömrə yoxdur"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibrasiya"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Naməlum nömrə"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Mətn mesaj mərkəzinin nömrəsi"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Hamısını seç"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Siqnallar"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Tərcümə edin"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Mətn mesajları"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Mobil şəbəkəni keçir"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS mərkəzi"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Parametrlər"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Qəbul edəni seç"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seçilmişdir"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM kartdakı mesajlar"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Mesajlar"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Daxiletmə rejimi"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Fayl ölçüsü çox boyükdür"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Mesaj göndərmək olmadı"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Mesajı ləğv et"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Sil"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Yarat"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Diqqət"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Məzmun əlavə et"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Keçir"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Yaddaşda saxla"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Yenidən göndər"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Sil"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Yüklə"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Ləğv et"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Sil"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Ləğv et"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Ləğv et"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Əlaqələr"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Siz səs və şəkil faylını seçmisiniz. Səs məlumatları MMS tərəfindən dəstəklənmir və yalnız şəkil əlavə ediləcək"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Bəli"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Göndərilməsi gözlənilir..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Bu mesajı göndərmək mümkün deyil. SIM kartı daxil edin və yenidən cəhd edin"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tipi:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Məhdud media növündən istifadə etmək üçün MMS yaratma rejimi parametrini dəyişin."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Göndərilmə vaxtı:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Qəbul edilmə vaxtı:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Qeyd xanası"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Vəziyyət:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Göndərildi"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Göndərilir..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Göndərmə uğursuz oldu"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "san"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Rouminq zamanı mesajları avtomatik çıxar."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Mesajları avtomatik çıxar."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Oxunma hesabatı: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Digər şəxs"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Mesaj"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Yaddaş"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Alınmadı"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Mətni daxil edin"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Qaralama"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Çatdırılma hesabatı: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB mesajı"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Təqvim"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Mesajları aldıqdan və ya göndərdikdən sonra, onlar burada göstəriləcəkdir."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Cəld cavablar yaratdıqdan sonra onlar burada görünəcək."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Mesajları SIM karta kopyaladıqdan sonra onlar burada görünəcək."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "İfadələri əlavə etdikdən sonra onlar burada görünəcək."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Mesaj blok siyahısına nömrələr əlavə etdikdən sonra onlar burada görünəcək."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "SİL"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Yüklənir..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Bildiriş səsi"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Mən"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Gönd"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Göndər"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "GÖND"
+
diff --git a/main/po/bg.po b/main/po/bg.po
new file mode 100644 (file)
index 0000000..bbefc1a
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Дом"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Данните в роуминг са деактивирани. Активирайте данните в роуминг и опитайте отново."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Ново съобщение"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ОТКАЗ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Няма информация"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Мобилен"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Мобилните данни са деактивирани. Активирайте мобилните данни и опитайте отново."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ИЗПРАЩАНЕ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Неподдържан тип носител."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Не може да се изпращат съобщения, докато сте в режим Полет. Деактивирайте режим Полет и опитайте отново."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Препращането е невъзможно. Файлът е защитен от препращане."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Няма достатъчно място в паметта на устройството ви. Отидете в Настройки > Захранване и памет > Памет, след което изтрийте някои файлове и опитайте отново."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Текст отгоре"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Текст отдолу"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Избор на оформление"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Невъзможно добавяне на съдържание."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Съобщението по график ще бъде изпратено до %s. Изпращане сега?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Достигнат е максималният размер на съобщение."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Изтощена батерия."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Продължителността трябва да е поне %d секунди."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Деактивиране на режим полет..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Копирано в SIM картата."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Отменено."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Изп. др. данни за кон."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Изпращане чрез"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Изображение"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Email"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Замяна"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Преглед"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Премаxване"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Изпълняване"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "До"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Отмяна на съобщение"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Списък на получатели"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Преглед"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Продължителност за слайда %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Изчакайте, докато елементите бъдат добавени към слайдшоуто."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Не може да се изпрати съобщението."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Избор на тон на звънене"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Ще бъде изпратен отчет за прочитане."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Не е поискан"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Достигнат е максималният брой получатели (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Въведете тема."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Повтарящ се получател."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Препр"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Не може да запази."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Не може да се намери местоположение."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Невъзможно изтриване."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Не може да се копира."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Някои символи може да се загубят.\nПродължение?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM не е поставена."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Запазването е неуспешно."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Записан в Моите файлове."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Неуспешно изтегляне на съобщение"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Ограничен тип съдържание. Да се прикачи ли все пак?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Възстановяване..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Отхвърлен."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Отчет за прочетени"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Няма номер"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Няма прикачени файлове"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Нови съобщения"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Съобщението е копирано от SIM картата."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Максималният брой получатели е %d. Някои получатели може да се изгубят."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Максималният брой на прикачените файлове (%s) е надхвърлен."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Достигнат максимален брой знаци."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "В процес на..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Инициализиране..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Ако не искате да замените файла, преименувайте го."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Това съобщение включва прикачени файлове, които не са показани."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Това съобщение включва прикачени файлове, които не са показани."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Името на файл вече съществува."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Изтриване..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Копирано в системния буфер."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Конвертиране в текстово съобщение..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Преобразуване в мултимедийно съобщение..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Блокиране на %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Ще преминете в състояние „онлайн“(%s). Продължаване?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Текстово съобщение"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Тема:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Изпращач чрез email"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Подател"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Избор"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Запис на приложения файл"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Запис"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Премаxване"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Инсталиране"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Препращане"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Редактиране на съобщение"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Изтриване?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Изтриване на съобщения"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Избор на съобщения"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Запис на всичко"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Данни за съобщение"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Срокът изтича: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Разширено търсене"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Зап. вс. прик. файл."
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Няма информация"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "До:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Текстови съобщения"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Паметта на SIM картата е пълна. Изтрийте някои елементи."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Изпратен:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Поискано."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Получатели"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Получено:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Получени."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Отчет за прочетени"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push съобщения"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d съобщ."
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d разговора"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Друго"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Няма тема"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Без име"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Уведомяване за мултимедийно съобщение"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Мултимедийно съобщение"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Прочетете"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Съобщението е отхвърлено."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Размер на съобщението"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Опции за съобщения"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Съобщението е доставено"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Съобщение"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Мен"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Максималният брой на прикачените файлове (%1$s) е надхвърлен. Само първите %2$s ще бъдат добавени."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Невалиден получател."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "От"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "От:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "С изтекъл срок"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Неуспешно изпращане."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Отчет за доставка"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP съобщения"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Копиране текст"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Циркулярни съобщения"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Всички"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 съобщение"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 разговор"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Изискване на отчет за прочитане за всяко изпратено съобщение"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Изискване на отчет за доставка за всяко изпратено съобщение"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Радио бутон"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Бутон Вкл./изкл"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Разгъваем списък"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Автоматично извличане на MMS съобщения"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Файлът не може да се визуализира. Неподдържан тип файл."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Някои получатели не може да се добавят. Номерата не са валидни."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Не може да се добави получател. Номерът не е валиден."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Не може да се добавят получатели. Номерата не са валидни."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Не могат да се добавят прикачени файлове. Достигнат е максималният брой прикачени файлове (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Този номер не е валиден."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Избраните съобщения са копирани на мобилното устройство."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d съобщения са преместени към списъка със съобщения."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Номерът е премахнат от списъка за блокиране на съобщения."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Номерът е добавен към списъка за блокиране на съобщения."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Съобщението е копирано в SIM карта %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Максималният брой знаци е надвишен."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Максималният размер на съобщение е (%s) е надвишен. Преоразмеряване на прикачените файлове..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Въведен е невалиден знак."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Добавете получатели."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 съобщение е преместено в списъка със съобщения."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Текстови съобщения"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Звук"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Мултимедийни съобщения"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Съобщения на SIM картата"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Режим на въвеждане"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Автоматично извличане в роуминг"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Автоматично извличане"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Изп. сега"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Не"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Изберете режим на въвеждане за съставяне на съобщения."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Няма"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Управлявайте съобщенията, съхранявани на SIM картата."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Съобщението ви ще бъде отхвърлено. Не са избрани получатели."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Съобщението по разписание не може да се изпрати. Задайте друг час."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Не може да се възпроизведе по време на разговор."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Файлът не може да се прикачи. Размерът на файла е твърде голям. Опитайте да го изпратите по Имейл, Bluetooth, Wi-Fi и т. н."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "За да изпратите това мултимедийно съобщение, устройството ще се свърже към друга мобилна мрежа. Това ще изключи устройството ви от текущата мобилна мрежа."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "За да изтеглите това мултимедийно съобщение, устройството ще се свърже към друга мобилна мрежа. Това ще изключи устройството ви от текущата мобилна мрежа."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Това съобщение ще бъде изпратено отново."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d съобщения ще бъдат изтрити."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d разговора ще бъдат изтрити."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Няма шаблони в списъка"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Само входящи съобщения"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Включи оригиналния текст в изходящото съобщение"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Продължителността трябва да е по-малка от %d секунди."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Изтрито."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 съобщение ще бъде изтрито."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 разговор ще бъде изтрит."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Преглед на детайли"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Преглед на детайли за контакт"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Преглед като слайдшоу"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Видеоклипове"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Актуализиране на контакт"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Текст"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Направи снимка"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Търсене"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Записване на приложени файлове"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Изпрати отново"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Отговор"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Премах. от списъка с блокирани"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Запис на видео"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Записване на аудиофайл"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Бърз отговор"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Няма"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Извършване на гласово повикване"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Изображения"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM азбука"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Експортиране в памет на устройство"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Редактиране"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Изтриване на съобщение"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Изтриване на разговор"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Изтриване"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "По подразбиране"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Създаване на контакт"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Копиране в SIM картата"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Копиране в устройството"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Копиране текст"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Копиране"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Архивиране"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Автоматично"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Аудиофайлове"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Прикачен файл"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Добавяне в указателя"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Доб. в списъка с блокирани"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Добавяне на получатели"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Търсене"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Няма намерени резултати"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Няма бързи отговори"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Няма блокирани фрази"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Няма съобщения в SIM картата"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Няма съобщения"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Няма блокирани номера"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Вибрация"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Непознат номер"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Номер център за текстови съоб."
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Избор на всичко"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Предупреждения"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Преведете"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Текстови съобщения"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Превключване на мобилна мрежа"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS център"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Избор получател"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d избрани"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Съобщения на SIM картата"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Съобщения"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Режим на въвеждане"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Р-рът на файла е твърде голям"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Неуспешно пращане на съобщение"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Отмяна на съобщението"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Изтрий"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Създаване"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Внимание"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Добавяне на съдържание"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Превключване"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Запис"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Изпращане пак"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Премаxни"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Изтегляне"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Отхвърляне"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Изтриване"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Отказ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Отказ"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Контакти"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Избрали сте файл на звук и снимка. Данните за звук не се поддържат за MMS, така че ще бъде прикачена само снимката."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Да"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Изчакване за изпращане..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Това съобщение не може да се изпрати. Поставете SIM картата си и опитайте отново."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Тип:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "За да използвате ограничените типове медия, сменете настройката си на режим за създаване на MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Час на изпращане:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Час на получаване:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Поле за отметка"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Статут:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Изпратено"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Изпращ..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Изпращането неуспешно"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "сек"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Извличайте съобщения автоматично в роуминг."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Извличайте съобщения автоматично."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Отчет за прочитане: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Друг човек"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Съобщение"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Записка"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Неуспешно"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Въведете текст"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Чернова"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Отчет доставяне: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Инф. съобщение"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Календар"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "След като изпратите или получите съобщения, те ще се покажат тук."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "След като създадете бързи отговори, те ще се покажат тук."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "След като копирате съобщения на SIM картата, те ще се покажат тук."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "След като добавите фрази, те ще се покажат тук."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "След като добавите номера към списъка за блокиране на съобщения, те ще се покажат тук."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ИЗТРИВАНЕ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Зареждане"
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Уведомления"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Мен"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Изпр."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Изпр."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ИЗПР."
+
diff --git a/main/po/bn.po b/main/po/bn.po
new file mode 100644 (file)
index 0000000..9f1cd11
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "হোম"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "তথ্য রোমিং অক্ষম আছে৷ তথ্য রোমিং সক্ষম করুন এবং আবার চেষ্টা করুন৷"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "নতুন বার্তা"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "বাতিল"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "সম্পন্ন"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "অজানা"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "মোবাইল"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "মোবাইল তথ্য অক্ষম আছে৷ মোবাইল তথ্য সক্ষম করুন এবং আবার চেষ্টা করুন৷"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "পাঠান"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "অসমর্থিত মিডিয়া প্রকার।"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "বিমান মোডে বার্তাগুলি প্রেরণ করতে ব্যর্থ৷ বিমান মোডটি অক্ষম করে আবার চেষ্টা করুন"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "অগ্রচালিত করতে অসমর্থ৷\n ফাইলটি অগ্রসরমান লকড"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "আপনার ডিভাইসের সঞ্চয়স্থানে পর্যাপ্ত স্থান নেই। সেটিংস > পাওয়ার এবং সঞ্চয়স্থান > সঞ্চয়স্থান - এ গিয়ে কিছু ফাইল মুছে দিয়ে আবার চেষ্টা করুন।"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "পাঠ্য শীর্ষে"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "পাঠ্য নিচে"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "বিন্যাস নির্বাচন করুন"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "এই কন্টেন্ট আড করতে অসমর্থ।"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "বার্তাটি %s-এ পাঠানোর জন্য নির্ধারিত৷ এখনই পাঠাবেন?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "সর্বাধিক বার্তা আকারে পৌঁছেছে।"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "ব্যাটারি কম।"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "সময়কাল অন্তত %d সেকেন্ডের হতে হবে।"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "বিমান মোড অক্ষম করা হচ্ছে..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM কার্ডে অনুলিপি হয়েছে।"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "বাতিল হয়েছে।"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "অন্য পরিচিতির তথ্য ব্যবহ্যার করুন"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "এর মাধ্যমে পাঠান"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "চিত্র"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ইমেল"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "প্রতিস্থাপন"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "দেখুন"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "অপসারণ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "প্লে"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "প্রতি"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "বার্তা বাতিল করুন"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "প্রাপক তালিকা"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "পূর্বরূপ"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "%d/%d স্লাইডের সময়কাল"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "স্লাইডশোতে আইটেমগুলি যোগ করার সময় অপেক্ষা করুন।"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "বার্তা পাঠাতে অক্ষম।"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "রিংটোন নির্বাচন করুন"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "পড়ার রিপোর্ট পাঠানো হবে।"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "অনুরোধ করা হয়নি"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "প্রাপক সর্বাধিক সংখ্যায় (%d) পৌঁছেছে।"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "বিষয় লিখুন।"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "প্রাপক সদৃশ হয়েছে।"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "অগ্র"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "সংরক্ষণ করতে অক্ষম।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "অবস্থান খুঁজতে অক্ষম।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "মুছতে অক্ষম।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "অনুলিপি করতে অক্ষম।"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "কিছু অক্ষর হারিয়ে যেতে পারে৷\nচালু রাখবেন?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM ঢোকানো নেই।"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "সংরক্ষণ ব্যর্থ।"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "আমার ফাইলগুলিতে সংরক্ষিত।"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "বার্তা পুনপ্রাপ্তি ব্যর্থ"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "সীমাবদ্ধ সামগ্রীর প্রকার। তাসত্ত্বেও সংযুক্ত করবেন?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "পুনরুদ্ধার হচ্ছে..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "প্রত্যাখাত।"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "পঠন প্রতিবেদন"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "কোনও সংখ্যা নেই"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "কোনো সংযুক্তি নেই"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "নতুন বার্তাগুলি"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM কার্ড থেকে বার্তার অনুলিপি হয়েছে।"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "প্রাপকের সর্বাধিক সংখ্যা হল %d। কিছু প্রাপক হারিয়ে যেতে পারে"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "সংযুক্তির সর্বাধিক সংখ্যা (%s) অতিক্রান্ত।"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "অক্ষরের সর্বাধিক সংখ্যায় পৌঁছেছে।"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "প্রক্রিয়ারত..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "আরম্ভ হচ্ছে...."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "আপনি ফাইলটি প্রতিস্থাপন না করতে চাইলে, অনুগ্রহ করে পুনঃনামকরণ করুন।"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "এই বার্তায় একটি না দেখানো সংযুক্ত ফাইল রয়েছে।"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "এই বার্তায় অন্তর্ভুক্ত থাকা সংযুক্ত ফাইল প্রদর্শিত হচ্ছে না।"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ফাইল নাম ইতিমধ্যে বিদ্যমান।"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "মোছা হচ্ছে...."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "ক্লিপবোর্ডে অনুলিপি করা হয়েছে।"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "পাঠ্য বার্তায় রূপান্তরিত করা হচ্ছে..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "মাল্টিমিডিয়া বার্তায় রূপান্তরিত হচ্ছে..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s-কে অবরোধ করবেন?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "আপনি প্রায় অনলাইনে (%s) যাওয়ার জন্যে প্রস্তুত । চালিয়ে যাবেন ?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "পাঠ্য বার্তা"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "বিষয়:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ইমেলের মাধ্যমে পাঠান"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "প্রেরক"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "নির্বাচন করুন"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "সংযুক্তি সংরক্ষণ করুন"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "সংরক্ষণ"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "অপসারণ"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "ইনস্টল"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "অগ্রবর্তী"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "বার্তা সম্পাদনা করুন"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "মুছবেন?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "বার্তাগুলি মুছুন"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "বার্তাগুলি নির্বাচন করুন"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "সমস্ত সংরক্ষণ করুন"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "বার্তার বিশদ"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "সময় সমাপ্তি: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "অগ্রণী অনুসন্ধান"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "সমস্ত সংযুক্তি সংরক্ষণ করুন"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "অজানা"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "প্রতি:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "পাঠ্য বার্তাগুলি"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM মেমোরি পূর্ণ। কিছু আইটেম মুছুন।"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "সেটিংস"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "প্রেরিত:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "অনুরোধ করা হয়েছে।"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "প্রাপকগুলি"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "গৃহীত:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "প্রাপ্ত।"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "পঠন প্রতিবেদন"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "পুশ বার্তাগুলি"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d বার্তা"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%dটি কথোপকথন"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "অন্যান্য"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "কোনও বিষয় নেই"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "কোনও নাম নেই"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "মাল্টিমিডিয়া বার্তা বিজ্ঞপ্তি"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "মাল্টিমিডিয়া বার্তা"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "পঠিত"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "বার্তা অস্বীকৃত হয়েছে।"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "বার্তার আকার"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "বার্তার বিকল্পগুলি"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "বার্তা পাঠানো হয়েছিল"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "বার্তা"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "আমি"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "সংযুক্তির সর্বাধিক সংখ্যা (%1$s) অতিক্রান্ত। শুধুমাত্র প্রথম %2$sটি যোগ করা হবে।"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "অবৈধ প্রাপক।"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "থেকে"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "থেকে:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "মেয়াদ শেষ হয়েছে"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "পাঠানো ব্যর্থ হয়েছে।"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "ডেলিভারি রিপোর্ট"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP বার্তাগুলি"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "পাঠ্য অনুলিপি করুন"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB বার্তাসমূহ"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "সমস্ত"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1টি বার্তা"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1টি কথোপকথন"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "আপনার পাঠানো প্রতিটি বার্তার পড়ার একটি রিপোর্টের জন্য অনুরোধ করুন।"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "আপনার পাঠানো প্রতিটি বার্তার একটি ডেলিভারি রিপোর্টের জন্য অনুরোধ করুন।"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "রেডিও বাটন"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "চালু করুন/বন্ধ করুন বোতাম"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "প্রসারিত তালিকা"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS বার্তাগুলি স্বয়ংক্রিয়ভাবে পুনরুদ্ধার করুন।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ফাইল পূর্বরূপ করতে অক্ষম। অসমর্থিত ফাইলের ধরণ।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "কিছু প্রাপককে যোগ করতে অক্ষম। নম্বরগুলি বৈধ নয়।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "প্রাপক যোগ করতে অক্ষম। নম্বর বৈধ নয়।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "প্রাপকদের যোগ করতে অক্ষম। নম্বরগুলি বৈধ নয়।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "সংযুক্তি যোগ করতে অক্ষম। সংযুক্তিগুলির সর্বাধিক সংখ্যায় (%dটি) পৌঁছেছে।"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "এই নম্বরটি বৈধ নয়।"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "নির্বাচিত বার্তাগুলি মোবাইল ডিভাইসে অনুলিপি হয়েছে।"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "বার্তা তালিকায় %dটি বার্তা সরানো হয়েছে।"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "বার্তা অবরোধ তালিকা থেকে নম্বর অপসারিত হয়েছে।"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "বার্তা অবরোধ তালিকাতে নম্বর যুক্ত হয়েছে।"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "%s SIM কার্ডে বার্তা অনুলিপি হয়েছে।"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "অক্ষরের সর্বাধিক সংখ্যা অতিক্রান্ত।"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "সর্বাধিক বার্তা আকার (%s) অতিক্রম করে গেছে। সংযুক্তিগুলি পুনরায় আকার দেওয়া হচ্ছে..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "অবৈধ অক্ষর লেখা হয়েছে"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "প্রাপকদের যোগ করুন।"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1টি বার্তা, বার্তা তালিকায় সরানো হয়েছে।"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "পাঠ্য বার্তাগুলি"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ধ্বনি"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "মাল্টিমিডিয়া বার্তাগুলি"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM কার্ডে বার্তাগুলি"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "ইনপুট মোড"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "রোমিং চলাকালীন স্বতঃ পুনরুদ্ধার করুন"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "স্বতঃ পুনরুদ্ধার"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "এখন পাঠান"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "না"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "বার্তাগুলি রচনার জন্য একটি ইনপুট মোড নির্বাচন করুন।"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "কিছু না"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "আপনার SIM কার্ডে সঞ্চিত বার্তাগুলি পরিচালনা করুন।"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "আপনার বার্তা প্রত্যাখ্যাত হবে৷ কোনও প্রাপক নির্বাচিত হয়নি৷"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "নির্ধারিত বার্তা পাঠাতে অক্ষম। অন্য কোনও সময় সেট করুন।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "কল করার সময় প্লে করতে অক্ষম।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ফাইল সংযুক্ত করতে অক্ষম। ফাইলের আকার অত্যন্ত বড়। ইমেল, ব্লুটুথ, Wi-Fi ইত্যাদির মাধ্যমে পাঠানোর চেষ্টা করুন।"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "এই মাল্টিমিডিয়া বার্তাটি পাঠাতে ডিভাইসটি একটি পৃথক মোবাইল নেটওয়ার্কে সংযোগ করবে। এটি আপনার বর্তমান মোবাইল নেটওয়ার্ক থেকে আপনার ডিভাইসটি সংযোগ বিচ্ছিন্ন করবে।"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "এই মাল্টিমিডিয়া বার্তা ডাউনলোড করতে ডিভাইসটি একটি ভিন্ন মোবাইল নেটওয়ার্কে সংযোগ হবে। এটি আপনার ডিভাইসকে আপনার বর্তমান মোবাইল নেটওয়ার্ক থেকে সংযোগ বিচ্ছিন্ন করবে।"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "এই বার্তাটি আবার পাঠানো হবে।"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%dটি বার্তা মোছা হবে।"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%dটি কথোপকথন মোছা হবে।"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "তালিকায় কোনও টেমপ্লেট নেই"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "কেবল আগত বার্তাগুলি"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "বহির্গামী বার্তায় মূল পাঠ্য অন্তর্ভুক্ত করুন"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "সময়্কাল অবশ্যই %d সেকেন্ডের কম হবে।"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "মোছা হয়েছে।"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1টি বার্তা মোছা হবে।"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1টি কথোপকথন মোছা হবে।"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "বিশদ দেখুন"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "পরিচিতির বিশদ দেখুন"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "স্লাইডশো হিসাবে দেখুন"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "ভিডিওগুলি"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "পরিচিতি আপডেট করুন"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "ইউনিকোড"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "পাঠ্য"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "ছবি তুলুন"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "সেটিংস"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "অনুসন্ধান করুন"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "সংযুক্তিগুলি সংরক্ষণ করুন"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "পুনরায় পাঠান"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "প্রত্যুত্তর"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "অবরোধের তালিকা থেকে অপসারণ করুন"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "ভিডিও রেকর্ড করুন"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "অডিও ফাইল রেকর্ড করুন"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "দ্রুত প্রতিক্রিয়া"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "কিছু না"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "ভয়েস কল করুন"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "চিত্রগুলি"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM বর্ণমালা"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "ডিভাইস মেমোরিতে রপ্তানী"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "সম্পাদনা করুন"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "বার্তা মুছুন"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "কথোপকথন মুছুন"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "মুছুন"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "ডিফল্ট"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "পরিচিতি তৈরী করুন"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM কার্ডে অনুলিপি করুন"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "ডিভাইসে অনুলিপি করুন"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "পাঠ্য অনুলিপি করুন"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "অনুলিপি করুন"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "ব্যাক আপ নিন"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "স্বয়ংক্রিয়"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "অডিও ফাইলগুলি"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "সংযুক্তি"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "পরিচিতিগুলিতে যোগ করুন"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "অবরোধের তালিকাটিতে যোগ করুন"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "প্রাপকদের যোগ করুন"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "অনুসন্ধান করুন"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "কোনও ফলাফল পাওয়া যায়নি"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "কোনও দ্রুত প্রতিক্রিয়া নেই"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "কোনও বাক্যাংশ অবরোধ করা হয়নি"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM কার্ডে কোনও বার্তা নেই"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "কোনও বার্তা নেই"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "কোনও অবরুদ্ধ নম্বর নেই"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "কম্পন"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "অজানা নম্বর"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "পাঠ্য বার্তা কেন্দ্রের নম্বর"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "সব নির্বাচন"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "সতর্কতা"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "অনুবাদ"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "পাঠ্য বার্তাগুলি"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "মোবাইল নেটওয়ার্কে স্যুইচ করুন"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS কেন্দ্র"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "সেটিংস"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "প্রাপক নির্বাচন"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%dটি নির্বাচিত"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM কার্ডে বার্তাগুলি"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "বার্তা"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ইনপুট মোড"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ফাইলের আকার অত্যন্ত বৃহৎ"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "বার্তা পাঠাতে ব্যর্থ হয়েছে"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "বার্তা পরিত্যাগ"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "মুছুন"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "তৈরি করুন"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "সজাগ হন"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "সামগ্রী যোগ করুন"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "স্যুইচ করুন"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "সংরক্ষণ"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "পুনরায় পাঠান"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "অপসারণ"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ওকে"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ডাউনলোড"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "পরিত্যাগ"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "মুছুন"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "বাতিল"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "বাতিল"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "পরিচিতিগুলি"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "আপনি একটি ধ্বনি ও শট ফাইল নির্বাচন করেছেন৷ MMS-এর জন্য ধ্বনি তথ্য সমর্থিত নয় ফলে কেবলমাত্র ছবি সংযুক্ত হবে৷"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "হ্যাঁ"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "পাঠানোর জন্য অপেক্ষারত..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "এই বার্তা পাঠাতে অক্ষম৷ আপনার SIM কার্ডটি ঢোকান ও আবার চেষ্টা করুন৷"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "প্রকার:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "সীমাবদ্ধ মিডিয়া ধরণগুলি ব্যবহার করতে MMS সৃজন মোড সেটিংটি পরিবর্তন করুন।"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "যে সময়ে পাঠানো হয়েছে:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "যে সময়ে প্রাপ্ত হয়েছে:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "টিক বাক্স"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "স্থিতি:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "পাঠানো হয়েছে"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "পাঠানো হচ্ছে..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "পাঠানো ব্যর্থ হয়েছে"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "সেকেন্ড"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "রোমিংয়ে থাকাকালীন স্বয়ংক্রিয়ভাবে বার্তাগুলি পুনরুদ্ধার করুন।"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "স্বয়ংক্রিয়ভাবে বার্তাগুলি পুনরুদ্ধার করুন।"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "পঠন রিপোর্ট: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "অন্য ব্যক্তি"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "বার্তা"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "মেমো"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "ব্যর্থ"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "পাঠ্য লিখুন"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "ড্রাফ্ট"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "ডেলিভারী রিপোর্ট: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB বার্তা"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "ক্যালেন্ডার"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "আপনি বার্তাগুলি পাঠানো বা গ্রহণ করার পরে তা এখানে দেখানো হবে।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "আপনি দ্রুত প্রতিক্রিয়াগুলি তৈরি করার পরে সেগুলি এখানে দেখানো হবে।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "আপনি বার্তাগুলি SIM কার্ডে অনুলিপি করার পরে সেগুলি এখানে দেখানো হবে।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "আপনি বাক্যাংশগুলি যোগ করার পরে এগুলি এখানে দেখানো হবে।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "আপনি বার্তা প্রত্যাখানের তালিকাটিতে নম্বরগুলি যোগ করার পরে সেগুলি এখানে প্রদর্শিত হবে।"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "মুছুন"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "লোড হচ্ছে..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "বিজ্ঞপ্তিগুলি"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "আমি"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "পাঠান"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "পাঠান"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "পাঠান"
+
diff --git a/main/po/ca.po b/main/po/ca.po
new file mode 100644 (file)
index 0000000..82b05c7
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Casa"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "La itinerància de dades està deshabilitada. Habiliti-la i torni-ho a intentar."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nou missatge"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL·LAR"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "REALITZAT"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconegut"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mòbil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Les dades mòbils estan deshabilitades. Habiliti-les i torni-ho a intentar."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ENVIAR"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "No s'admet aquest tipus de mitjà"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "No es poden enviar missatges durant el mode Vol. Deshabiliti el mode Vol i torni-ho a intentar."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "No es pot reenviar.\nEl fitxer està bloquejat per a reenviaments"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "No hi ha prou espai a l'emmagatzematge del seu dispositiu. Vagi a Ajustaments > Energia i emmagatzematge > Emmagatzematge i esborri alguns fitxers i torni-ho a intentar."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Text a la part superior"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Text a la part inferior"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Seleccionar disseny"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "No es pot afegir contingut"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Missatge programat per enviar-se a %s. Enviar ara?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "S'ha assolit la mida màxima de missatge"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Bateria baixa"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "La durada ha de ser d'almenys %d segons"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Deshabilitant mode Vol..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copiat a targeta SIM"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Cancel·lat"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Util info altres cont"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Enviar mitjançant"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Imatge"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Correu electrònic"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Substituir"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Veure"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Elimina"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Reproduir"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "A"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Cancel·lar missatge"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Llista destinataris"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Vista prèvia"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Durada de la diapositiva %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Esperi mentre s'afegeixen elements a la presentació de diapositives"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "No es pot enviar el missatge"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Seleccionar melodia"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "S'enviarà un informe de lectura"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "No sol·licitat"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "S'ha assolit el nombre màxim de destinataris (%d)"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Introduir assumpte"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Destinatari duplicat"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Reenv"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "No es poden desar"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "No es pot trobar la ubicació"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "No es pot esborrar"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "No es pot copiar"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Es poden perdre alguns caràcters.\nVol continuar?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "No s'ha inserit SIM"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Error en desar"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Desat a Els meus fitxers"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Error en recuperar missatge"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Tipus de contingut restringit. Adjuntar igualment?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Restaurant..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rebutjat"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Informe de lectura"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Sense número"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Sense adjunts"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nous missatges"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "S'ha copiat el missatge de la targeta SIM"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "El nombre màxim de destinataris es %d. Es poden perdre alguns recipients."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "S'ha excedit el nombre màxim de fitxers adjunts (%s)"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "S'ha assolit el nombre màxim de caràcters"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "En curs..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Inicialitzant..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Si no vol substituir el fitxer, canviï-li el nom"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Aquest missatge inclou un fitxer adjunt que no es mostra"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Aquest missatge inclou fitxers adjunts que no es mostren"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "El nom de fitxer ja existeix"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Esborrant..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "S'ha copiat al porta-retalls"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Convertint a missatge de text..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "S'està convertint a missatge multimèdia..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Bloquejar %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Està a punt de connectar-se (%s). Vol continuar?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Missatge de text"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Assumpte:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Enviar mitjançant correu electrònic"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Remitent"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Desar annex"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Desar"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Elimina"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instal·lar"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Endavant"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Editar missatge"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Esborrar?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Esborrar missatges"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Seleccionar missatges"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Desar-ho tot"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Detalls del missatge"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Caduca: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Cerca avançada"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Desar tots fitx adj"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Desconegut"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "A:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Missatges de text"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Memòria SIM plena. Esborri'n alguns elements."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Ajustaments"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Enviat:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Sol·licitat"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Destinataris"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Rebut:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Rebut"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Informe de lectura"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Missatges Push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d missatges"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d converses"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Altres"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Sense assumpte"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Sense nom"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Notificació de missatge multimèdia"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Missatge multimèdia"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Llegir"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Missatge rebutjat"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Mida del missatge"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Opcions de missatge"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Missatge entregat"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Missatge"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Jo"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "S'ha superat el nombre màxim de fitxers adjunts (%1$s). Només s'afegiran els primers %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Destinatari no vàlid"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "De:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Caducat"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Error en enviar"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Informe de lliurament"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Missatges CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copiar text"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Missatges CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Tot"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 missatge"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversa"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Sol·licitar un informe de lectura per cada missatge que enviï"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Sol·licitar un informe d'enviament per cada missatge que enviï"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Botó de ràdio"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Botó activat/desactivat"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Llista ampliable"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Recuperar missatges MMS automàticament"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "No es pot previsualitzar el fitxer. Tipus de fitxer no compatible."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "No es poden afegir alguns destinataris. Números no vàlids."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "No es pot afegir el destinatari. Número no vàlid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "No es poden afegir destinataris. Números no vàlids."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "No es poden afegir més fitxers adjunts. S'ha assolit el nombre màxim de fitxers adjunts (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Aquest número no és vàlid."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Els missatges seleccionats s'han copiat al dispositiu mòbil."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d missatges moguts a la llista de missatges."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "S'ha eliminat el número de la llista de bloqueig de missatges."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Número afegit a llista de bloqueig de missatges."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Missatge copiat a la targeta SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "S'ha excedit el nombre màxim de caràcters."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "S'ha excedit la mida màxima de missatge (%s). Canviant la mida dels fitxers adjunts..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "S'ha introduït un caràcter no vàlid."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Afegir destinataris."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 missatge mogut a la llista de missatges."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Missatges de text"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "So"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Missatges multimèdia"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Missatges a la targeta SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Mode d'entrada"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Recup automàtic en itinerància"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Recuperar automàticament"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Env ara"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "No"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Seleccioni un mode d'introducció per redactar missatges."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Cap"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Gestioni els missatges emmagatzemats a la targeta SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "El seu missatge es descartarà. No s'han seleccionat destinataris."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "No es pot enviar el missatge programat. Defineixi una altra hora."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "No es pot reproduir durant la trucada"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "No es pot adjuntar el fitxer. La mida del fitxer és massa gran. Intenti l'enviament mitjançant Correu electrònic, Bluetooth, Wi-Fi, etc."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Per enviar aquest missatge multimèdia, el dispositiu es connectarà a una xarxa mòbil diferent. Aquesta acció desconnectarà el dispositiu de qualsevol xarxa mòbil."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Per descarregar aquest missatge multimèdia, el dispositiu es connectarà a una xarxa mòbil diferent. Aquesta acció desconnectarà el dispositiu de qualsevol xarxa mòbil."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Es reenviarà aquest missatge."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "S'esborraran %d missatges"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "S'esborraran %d converses."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Sense plantilles a la llista"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Només missatges d'entrada"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Incloure el text original al missatge de sortida"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "La durada ha de ser inferior a %d segons"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Esborrat"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "S'esborrarà 1 missatge"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "S'esborrarà 1 conversa."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Veure detalls"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Veure detalls contacte"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Veure com a presentació diapos"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Actualitzar contacte"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Text"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Fer foto"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Ajustaments"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Cercar"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Desar fitxers adjunts"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Reenviar"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Respondre"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Eliminar de la llista bloqueig"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Gravar vídeo"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Gravar fitxer d'àudio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Resposta ràpida"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Cap"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Realitzar trucada de veu"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Imatges"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alfabet GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Exportació al dispositiu de memòria"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Editar"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Esborrar missatge"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Esborrar conversa"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Predeterminat"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Crear contacte"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copiar a targeta SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copiar al dispositiu"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copiar text"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copiar"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Còpia de seguretat"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automàtica"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Fitxers d'àudio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Fitxer adjunt"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Afegir a Contactes"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Afegir a llista de bloqueig"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Afegir destinataris"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Cercar"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "No s'han trobat resultats"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Sense respostes ràpides"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Sense frases bloquejades"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Cap missatge a la targeta SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "No hi ha cap missatge"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "No hi ha números bloquejats"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibració"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Número desconegut"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Número centre missatges text"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Seleccionar tot"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Avisos"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Traduir"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Missatges de text"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Canviar xarxa mòbil"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Centre SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Ajustaments"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Seleccionar destinatari"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seleccionats"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Missatges a la targeta SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Missatges"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Mode d'entrada"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Mida de fitxer massa gran"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Error en enviar un missatge"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Descartar missatge"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Crear"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Atenció"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Afegir contingut"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Canviar"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Desar"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Reenviar"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "Acceptar"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Descarreg"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Descartar"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Esborrar"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Cancel·lar"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Cancel·lar"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contactes"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Ha seleccionat un fitxer de Sound & shot. Les dades de so no són compatibles amb MMS, de manera que només s'adjuntarà la foto."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Sí"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Esperant per enviar..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "No es pot enviar aquest missatge. Insereixi la seva targeta SIM i torni-ho a intentar."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tipus:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Per utilitzar tipus de mitjans restringits, canviï l'ajustament de mode de creació MMS"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Hora d'enviament:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Hora de rebuda:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Quadre de verificació"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Estat:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Enviat"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Enviant..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Error d'enviament"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "seg"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Recuperi missatges automàticament en itinerància."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Recuperar missatges automàticament."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Informe de lectura: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Una altra persona"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Missatge"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memoràndum"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Error"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Introduir text"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Esborrany"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Informe de lliurament: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Missatge CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendari"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Després d'enviar o rebre missatges, es mostraran aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Després de crear respostes ràpides, es mostraran aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Després de copiar missatges a la targeta SIM, es mostraran aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Després d'afegir frases, es mostraran aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Després d'afegir números a la llista de bloqueig de missatges, es mostraran aquí."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ESBORRAR"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Carregant..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notificacions"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Jo"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Env"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Env"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ENV"
+
diff --git a/main/po/cs.po b/main/po/cs.po
new file mode 100644 (file)
index 0000000..23c6880
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Domů"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Datový roaming je vypnutý. Zapněte datový roaming a opakujte akci."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nová zpráva"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ZRUŠIT"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "HOTOVO"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Neznámé"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilní data jsou vypnutá. Zapněte mobilní data a opakujte akci."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ODESLAT"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Nepodporovaný typ média."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "V režimu Letadlo není možné odesílat zprávy. Vypněte režim Letadlo a opakujte akci."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Nelze předat dál.\nSoubor je zamknut proti předávání dál."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "V paměti zařízení není dostatek volného místa. Přejděte na Nastavení > Úspora energie a úložiště > Úložiště, odstraňte některé soubory a opakujte akci."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Text nahoře"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Text dole"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Vybrat rozložení"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Obsah nelze přidat."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Odeslání zprávy je naplánováno na %s. Chcete ji odeslat nyní?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Bylo dosaženo maximální velikosti zprávy."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Vybitá baterie."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Doba trvání musí být alespoň %d sekund."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Zakazování režimu Letadlo..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Zkopírována na SIM kartu."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Zrušeno."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Použít jiné kont. info"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Odeslat přes"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Obrázek"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Nahradit"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Zobrazit"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Odstranit"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Přehrát"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Do"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Zrušit zprávu"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Seznam příjemců"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Náhled"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Interval zobrazení snímku %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Počkejte, až budou položky přidány do prezentace."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Nelze uložit zprávu."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Vybrat vyzváněcí tón"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Bude odeslána zpráva o přečtení."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Nepožadováno"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Bylo dosaženo maximálního počtu příjemců (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Zadat předmět."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Duplicitní příjemce."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Před."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Nelze uložit."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Místo nebylo nalezeno."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Nelze odstranit."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Nelze zkopírovat."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Některé znaky mohou být ztraceny.\nPokračovat?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM karta není vložena."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Uložení se nezdařilo."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Uloženo do Mých souborů."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Načtení zprávy se nezdařilo"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Zakázaný typ obsahu. Opravdu ho chcete připojit?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Obnovení..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Odmítnuto."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Zpráva o přečtení"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Žádné číslo"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Bez příloh"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nové zprávy"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Zpráva byla zkopírována ze SIM karty."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maximální počet příjemců je %d. Může dojít ke ztrátě některých příjemců."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Byl překročen maximální počet příloh (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Bylo dosaženo maximálního počtu znaků."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Provádění..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Probíhá inicializace..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Pokud nechcete soubor nahradit, přejmenujte ho."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Tato zpráva obsahuje soubor, který není uveden."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Tato zpráva zahrnuje připojené soubory, které nejsou zobrazeny."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Název souboru již existuje."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Odstraňování..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Zkopírováno do schránky."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Probíhá převod na SMS zprávu..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Probíhá převod na MMS zprávu..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Blokovat %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Chystáte se přejít do režimu online (%s). Chcete pokračovat?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Předmět:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Odesílateli pomocí e-mailu"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Odesílatel"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Vybrat"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Uložit přílohu"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Uložit"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Odstranit"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instalovat"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Předat"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Upravit zprávu"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Odstranit?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Odstranit zprávy"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Vyberte zprávy"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Uložit vše"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Podrobnosti zprávy"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Platnost do: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Rozšířené hledání"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Ul. všechny přílohy"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Neznámé"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Komu:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Paměť SIM karty je plná. Odstraňte některé položky."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Nastavení"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Odesláno:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Požadavek na odpověď/potvrzení."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Příjemci"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Přijato:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Přijato."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Zpráva o přečtení"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Zprávy push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d zpráv"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d konverzací"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Jiné"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Bez předmětu"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Žádný název"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Oznámení MMS zprávy"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimediální zpráva."
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "kB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Číst"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Zpráva odmítnuta."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Velikost zprávy"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Možnosti zprávy"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Zpráva byla doručena"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Zpráva"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Já"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Byl překročen maximální počet příloh (%1$s). Bude přidáno pouze prvních %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Neplatný příjemce."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Od"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Od:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Platnost vypršela"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Odeslání se nezdařilo."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Potvrzení o doručení"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Zprávy CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopírovat text"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB zprávy"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Vše"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 zpráva"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 konverzace"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Požadovat zprávu o přečtení pro každou odeslanou zprávu."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Požadovat zprávu o doručení pro každou odeslanou zprávu."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Přepínač"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Vypínač"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Rozbalitelný seznam"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Automaticky načíst MMS zprávy."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Náhled soubor se nepodařilo zobrazit. Nepodporovaný typ souboru."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Některé příjemce se nepodařilo přidat. Čísla nejsou platná."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Příjemce se nepodařilo přidat. Číslo není platné."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Příjemce se nepodařilo přidat. Čísla nejsou platná."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Přílohu se nepodařilo přidat. Bylo dosaženo maximálního počtu příloh (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Toto číslo není platné."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Vybrané zprávy budou zkopírovány do mobilního zařízení."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "Do seznamu zpráv bylo přesunuto %d zpráv."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Číslo bylo odebráno ze seznamu blokovaných zpráv."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Číslo bylo přidáno do seznamu blokovaných zpráv."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Zpráva byla zkopírována na SIM kartu %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Byl překročen maximální počet znaků."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Byla překročena maximální velikost zprávy (%s). Probíhá změna velikosti příloh..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Byl zadán neplatný znak."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Přidejte příjemce."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "Do seznamu zpráv byla přesunuta 1 zpráva."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Textové zprávy"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Zvuk"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimediální zprávy"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Zprávy na SIM kartě"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Režim zadávání"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Automaticky načíst při roamingu"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Automaticky načíst"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Odeslat"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Ne"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Vyberte režim zadávání pro vytváření zpráv."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Žádný"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Můžete spravovat zprávy uložené na SIM kartě."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Zpráva bude zrušena. Nebyli vybráni žádní příjemci."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Naplánovanou zprávu nelze odeslat. Nastavte jiný čas."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Nelze přehrát během hovoru."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Soubor nelze připojit. Soubor je příliš velký. Odešlete soubor prostřednictvím E-mailu, Bluetooth, Wi-Fi atd."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Aby bylo možné odeslat tuto multimediální zprávu, zařízení se připojí k jiné mobilní síti. Tím se zařízení odpojí od aktuální mobilní sítě."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Aby bylo možné stáhnout tuto multimediální zprávu, zařízení se připojí k jiné mobilní síti. Tím se zařízení odpojí od aktuální mobilní sítě."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Zpráva bude znovu odeslána."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d zpráv bude odstraněno."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Bude odstraněno %d konverzací."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "V seznamu nejsou žádné šablony"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Pouze pro příchozí zprávy"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Zahrnout do odchozí zprávy původní text"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Doba trvání musí být kratší než %d sekund."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Odstraněno."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 zpráva bude odstraněna."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Bude odstraněna 1 konverzace."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Zobrazit detaily"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Zobrazit detaily kontaktu"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Zobrazit jako prezentaci"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videa"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Aktualizovat kontakt"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Text"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Fotografovat"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Nastavení"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Hledat"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Uložit přílohy"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Odeslat znovu"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Odpovědět"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Odebrat ze seznamu blokovaných"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Nahrát videoklip"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Nahrát zvukový soubor"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Rychlá odezva"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Žádná"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Zahájit hlasový hovor"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Obrázky"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Abeceda GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Export do paměti zařízení"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Upravit"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Odstranit zprávu"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Odstranit konverzaci"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Výchozí"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Vytvořit kontakt"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopírovat na SIM kartu"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopírovat do zařízení"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopírovat text"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopírovat"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Zálohovat"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automaticky"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Zvukové soubory"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Příloha"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Přidat do Kontaktů"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Přidat do seznamu blokovaných"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Přidat příjemce"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Hledat"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Nebylo nic nalezeno"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Žádné rychlé odezvy"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Nejsou blokovány žádné fráze"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM karta neobsahuje žádné zprávy"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Žádné zprávy"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Žádná blokovaná čísla"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibrace"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Neznámé číslo"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Číslo střediska text. zpráv"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Vybrat vše"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Upozornění"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Přeložit"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Textové zprávy"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Přepnout mobilní síť"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Střed. SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Nastavení"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Vybrat příjemce"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Vybráno %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Zprávy na SIM kartě"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Zprávy"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Režim zadávání"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Soubor je příliš velký"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Nepodařilo se odeslat zprávu"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Zrušit zprávu"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Vytvořit"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Pozor"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Přidat obsah"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Přepnout"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Uložit"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Odeslat znovu"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Odebrat"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Stáhnout"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Zrušit"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Odstranit"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Zrušit"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Storno"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kontakty"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Vybrali jste soubor zvuk a foto. Zvuková data nejsou pro MMS zprávy podporována, proto bude připojen pouze obrázek."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Ano"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Čekání na odeslání..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Zprávu se nepodařilo odeslat. Vložte SIM kartu a opakujte akci."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Typ:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Chcete-li použít omezení typů média, změňte nastavení režimu vytváření MMS zpráv."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Čas odeslání:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Čas přijetí:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Zaškrtávací políčko"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Stav:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Odeslané"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Odesíl..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Odeslání se nezdařilo"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "s"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Automaticky načítá zprávy při roamingu."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Automaticky načítá zprávy."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Zpráva o přečtení: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Jiná osoba"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Zpráva"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Poznámka"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Chyba"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Zadejte text"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Koncept"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Zpráva o doručení: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB zpráva"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalendář"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Až odešlete nebo přijmete zprávy, zobrazí se zde."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Až vytvoříte rychlé odpovědi, zobrazí se zde."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Až zkopírujete zprávy na SIM kartu, zobrazí se zde."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Až přidáte fráze, zobrazí se zde."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Až přidáte čísla do seznamu blokovaných zpráv, zobrazí se zde."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ODSTRANIT"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Nahrávám..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Oznámení"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Já"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Odes"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Odes."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "OD."
+
diff --git a/main/po/da.po b/main/po/da.po
new file mode 100644 (file)
index 0000000..fd103e1
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Hjem"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Dataroaming er deaktiveret. Aktivér dataroaming, og prøv igen."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Ny meddelelse"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULLER"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "UDFØRT"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Ukendt"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile data er deaktiveret. Aktivér mobile data, og prøv igen."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "SEND"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Medietype understøttes ikke."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Kan sende beskeder under Flytilstand. Deaktiver Flytilstand, og prøv igen."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Kan ikke videresende.\nFilen er låst mod videresendelse"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Der er ikke tilstrækkelig ledig plads på din enheds lager. Gå til Indstillinger > Strøm og lager > Lagring, slet nogle filer, og prøv igen."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Tekst øverst"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Tekst for neden"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Vælg layout"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Kan ikke tilføje indhold."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Besked planlagt til afsendelse til %s. Send nu?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Maksimal meddelelsesstørrelse nået."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Lavt batteriniveau."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Varigheden skal være på mindst %d sekunder."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Deaktiverer Flytilstand ..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Kopieret til SIM-kort."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Annulleret."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Brug andre kontaktopl."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Send via"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Billede"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Erstat"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Vis"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Fjern"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Afspil"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Til"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Annullér meddelelse"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Modtagerliste"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Forhåndsvisning"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Varighed for dias %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Vent, mens elementer føjes til diasshow."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Kunne ikke sende besked."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Vælg ringetone"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Læst-rapport bliver sendt."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Ikke anmodet"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Det maksimale antal modtagere (%d) er nået."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Angiv emne."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Kopierede modtagere."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Vid.send"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Kan ikke gemme."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Kan ikke finde placering."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Kunne ikke slette."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Kan ikke kopiere."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Nogle tegn går muligvis tabt.\nFortsæt?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM-kort er ikke indsat."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Kunne ikke gemme."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Gemt i Mine filer."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Hentning af meddelelse mislykkedes"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Begrænset indholdstype. Vedhæft alligevel?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Gendanner..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Afvist."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Læsningsrapport"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Intet nummer"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Ingen vedhæftede filer"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nye meddelelser"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Besked kopieret fra SIM-kort."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Det maksimale antal modtagere er %d. Nogle modtagere kan gå tabt."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Det maksimale antal vedhæftede filer (%s) er overskredet."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Det maksimale antal tegn er nået."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "I gang..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Initialiserer..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Hvis du ikke vil erstatte filen, skal du omdøbe den."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Denne meddelelse indeholder en vedhæftet fil, som ikke vises."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Denne besked indeholder vedhæftede filer, der ikke vises."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Filnavnet findes allerede."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Sletter ..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Kopieret til udklipsholder."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Konverterer til sms..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Konverterer til mms-besked ..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Blokér %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Du er ved at gå online (%s). Vil du fortsætte?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Sms"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Emne:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Afsender via e-mail"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Afsender"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Vælg"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Gem vedhæftning"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Gem"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Fjern"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Installér"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Videresend"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Redigér meddelelse"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Slet?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Slet meddelelser"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Vælg meddelelser"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Gem alle"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Beskeddetaljer"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Udløber: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Avanceret søgning"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Gem alle vedhæftnin."
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Ukendt"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Til:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Sms-beskeder"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM-hukommelse fyldt. Slet nogle elementer."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Indstillinger"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Sendt:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Anmodet."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Modtagere"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Modtaget:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Modtaget."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Læsningsrapport"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push-beskeder"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d meddelelser"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d samtaler"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Anden"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Intet emne"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Intet navn"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Besked om multimediemeddelelse"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimediemeddelelse"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Læs"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Beskeden blev afvist."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "Mms"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Meddelelsesstørrelse"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Beskedindstillinger"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Meddelelsen er leveret"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Besked"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Mig"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Maks. antal vedhæftninger (%1$s) overskredet. Kun de første %2$s bliver tilføjet."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Ugyldig modtager."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Fra"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Fra:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Udløbet"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Afsendelse mislykkedes."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Leveringsrapport"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP-meddelelser"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopiér tekst"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Gruppemeddelelser"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Alle"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 besked"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 samtale"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Anmod om en læserapport for hver besked, du sender."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Anmod om en leveringsrapport for hver besked, du sender."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Radioknap"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Tænd/sluk-knap"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Liste, der kan udvides"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Henter mms-beskeder automatisk."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Kan ikke vise filen. Filtypen understøttes ikke."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Kan ikke tilføje visse modtagere. Numrene er ikke gyldige."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Kan ikke tilføje modtageren. Nummeret er ikke gyldigt."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Kan ikke tilføje modtagerne. Numrene er ikke gyldige."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Kan ikke tilføje vedhæftet fil. Det maksimale antal vedhæftede filer (%d) er nået."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Dette nummer er ugyldigt."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Valgte beskeder er kopieret til mobilenhed."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d beskeder er flyttet til beskedlisten."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Nummer fjernet fra listen over blokerede beskeder."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Nummeret blev føjet til listen over blokerede beskeder."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Beskeden er kopieret til SIM-kortet %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Maksimale antal tegn overskredet."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Maksimal beskedstørrelse (%s) overskredet. Ændrer vedhæftede filers størrelse ..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Ugyldigt tegn er indtastet."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Tilføj modtagere."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 besked er blevet flyttet til beskedlisten."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Sms-beskeder"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Lyd"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Mms-beskeder"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Beskeder på SIM-kort"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Indtastningsmetode"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Hent automatisk under roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Automatisk hentning"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Send nu"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Nej"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Vælg en indtastningstilstand til skrivning af beskeder."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Ingen"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Administrer de beskeder, som er gemt på dit SIM-kort."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Din besked bliver kasseret. Der er ikke valgt nogen modtagere."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Planlagt meddelelse blev ikke sendt. Indstil et andet tidspunkt."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Kunne ikke afspille under samtale."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Kunne ikke vedhæfte filen. Filstørrelsen er for stor. Prøv at sende via e-mail, Bluetooth, Wi-Fi, osv."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Enheden er nødt til at skifte til et andet mobilt netværk for at sende denne mms. Dette vil afbryde din enheds forbindelse til dit nuværende mobile netværk."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Enheden er nødt til at skifte til et andet mobilt netværk for at downloade denne mms. Dette vil afbryde din enheds forbindelse til dit nuværende mobile netværk."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Denne besked vil blive sendt igen."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d beskeder slettes."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d samtaler vil blive slettet."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Ingen skabeloner på liste"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Kun indgående meddelelser"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Medtag oprindelig tekst i udgående meddelelse"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Varighed skal være kortere end %d sekunder."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Slettet."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 besked vil blive slettet."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Der vil blive slettet 1 samtale."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Se detaljer"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Se kontaktdetaljer"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Se som diasshow"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Opdater kontakt"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Tekst"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Tag billede"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Indstillinger"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Søg"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Gem vedhæftninger"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Send igen"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Svar"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Fjern fra blokeringsliste"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Optag video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Optag lydfil"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Hurtigt svar"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Ingen"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Foretag stemmeopkald"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Billeder"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM-alfabet"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Eksportér til enhedshukommelse"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Redigér"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Slet meddelelse"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Slet samtale"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Slet"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Standard"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Opret kontakt"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopier til SIM-kort"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopier til enhed"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopiér tekst"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopiér"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Sikkerhedskopiér"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatisk"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Lydfiler"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Vedhæftning"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Føj til kontakter"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Føj til blokeringsliste"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Tilføj modtagere"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Søg"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Ingen resultater"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Ingen hurtige svar"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Ingen udtryk blokeret"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Ingen beskeder på SIM-kort"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Ingen beskeder"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Ingen blokerede numre"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibration"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Ukendt nummer"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Nummer til sms-center"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Vælg alle"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Varsler"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Oversæt"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Sms-beskeder"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Skift mobilt netværk"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Sms-center"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Indstillinger"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Vælg modtagere"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d valgt"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Beskeder på SIM-kort"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Beskeder"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Indtastningsmetode"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Filstørrelse for stor"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Kunne ikke sende beskeden"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Annullér besked"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Slet"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Opret"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Bemærk!"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Tilføj indhold"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Skift"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Gem"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Send igen"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Fjern"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Overfør"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Fjern"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Slet"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Annullér"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Annullér"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kontakter"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Du har valgt en Lyd & billede-fil. Lyddata understøttes ikke for mms, så kun billedet vedhæftes."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Ja"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Venter på at sende ..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Kunne ikke sende besked. Indsæt dit SIM-kort, og prøv igen."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Type:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "For at bruge begrænsede medietyper skal du ændre indstillinger for oprettelse af mms."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Tidspunkt for afsendelse:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Tidspunkt for modtagelse:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Afkrydsningsfelt"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Sendt"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Sender ..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Afsendelsen mislykkedes"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sek."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Hent beskeder automatisk under brug af roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Hent beskeder automatisk."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Læserapport: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Anden person"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Besked"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Notat"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Mislyk."
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Indtast tekst"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Kladde"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Leveringsrapport: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Gruppemeddelelse"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalender"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har sendt eller modtaget beskeder, vil de blive vist her."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har oprettet hurtige svar, vil de blive vist her."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har kopieret beskeder til SIM-kortet, vil de blive vist her."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du tilføjer udtryk, vises de her."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du føjer numre til din liste over blokerede beskeder, vises de her."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "SLET"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Indlæser data ..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Meddelelser"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Mig"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Send"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Send"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "SEND"
+
diff --git a/main/po/de.po b/main/po/de.po
new file mode 100644 (file)
index 0000000..88269c6
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Privat"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Das Daten-Roaming ist deaktiviert. Aktivieren Sie das Roaming wieder und versuchen Sie es dann erneut."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Neue Nachricht"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ABBRECHEN"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "FERTIG"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Unbekannt"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile Daten sind deaktiviert. Aktivieren Sie mobile Daten und versuchen Sie es dann erneut."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "SENDEN"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Nicht unterstützter Medientyp"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Im Offline-Modus können keine Nachrichten gesendet werden. Deaktivieren Sie den Offline-Modus und versuchen Sie es erneut."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Weiterleiten nicht möglich.\nDatei ist für Weiterleitung gesperrt"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Es ist nicht genügend Gerätespeicher frei. Wechseln Sie zu „Einstellungen > Energie und Speicher > Speicher“, löschen Sie Dateien und versuchen Sie es dann erneut."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Text oben"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Text unten"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Layout auswählen"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Inhalt kann nicht hinzugefügt werden"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Geplante Nachricht konnte nicht an %s gesendet werden. Jetzt senden?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Maximale Nachrichtgröße erreicht"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Akku fast leer"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Dauer muss mindestens %d Sekunden betragen."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Offline-Modus wird deaktiviert..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Auf SIM-Karte kopiert."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Abgebrochen"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Andere Kontaktinfos verw."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Senden per"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Bilder"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-Mail"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Ersetzen"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Anzeigen"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Entfernen"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Wiedergabe"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "An"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Nachricht stornieren"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Empfängerliste"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Vorschau"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Foliendauer: %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Warten Sie, während Elemente der Diashow hinzugefügt werden."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Nachricht kann nicht gesendet werden"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Klingelton auswählen"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Lesebericht wird gesendet"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Nicht angefragt"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Maximale Anzahl an Empfängern (%d) erreicht"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Betreff eingeben"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Doppelter Empfänger"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Weiterl."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Speichern nicht möglich"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Standort kann nicht gefunden werden"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Kann nicht gelöscht werden"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Kopieren nicht möglich"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Einige Zeichen gehen u. U. verloren\nFortsetzen?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM nicht eingelegt"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Speichern fehlgeschlagen"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "In „Eigene Dateien“ gespeichert."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Abrufen der Nachricht fehlgeschlagen"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Eingeschränkter Inhaltstyp. Trotzdem anhängen?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Wiederherstellung wird durchgeführt..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Abgelehnt"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Lesebericht"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Keine Nummer"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Keine Anhänge"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Neue Nachrichten"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Nachricht von SIM-Karte kopiert"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maximale Anzahl an Empfängern ist %d. Einige Empfänger gehen möglicherweise verloren"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Maximale Anzahl von Anhängen (%s) überschritten"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Maximal zulässige Zeichenanzahl erreicht."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Wird ausgeführt..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Wird initialisiert..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Falls Sie die Datei nicht ersetzen möchten, benennen Sie sie um"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Diese Nachricht enthält angehängte Dateien, die nicht angezeigt werden."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Diese Nachricht umfasst angehängte, nicht angezeigte Dateien"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Dateiname wird bereits verwendet"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Löschen..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "In Zwischenablage kopiert"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "In SMS konvertieren..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "In MMS konvertieren..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s sperren?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Sie sind im Begriff Online zu gehen (%s). Fortfahren?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Betreff:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Empfänger per E-Mail"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Absender"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Auswählen"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Anhang speichern"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Speichern"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Entfernen"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Installieren"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Weiterleiten"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Nachricht bearbeiten"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Löschen?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Nachrichten löschen"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Nachrichten auswählen"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Alle speichern"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Nachrichtendetails"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Läuft ab: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Erweiterte Suche"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Alle Anhänge speich."
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Unbekannt"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "An:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM-Speicher voll. Einige Elemente löschen."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Einstellungen"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Gesendet:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Angefordert"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Empfänger"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Empfangen:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Empfangen"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Lesebericht"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "WAP-Push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d Nachrichten"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d Konversationen"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Andere"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Kein Betreff"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Kein Name"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "MMS-Benachrichtigung"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Lesen"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Nachricht abgewiesen"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Nachrichtengröße"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Nachrichtenoptionen"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Nachricht zugestellt"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Nachricht"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Ich"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Maximale Anzahl an Anhängen (%1$s) erreicht. Nur die ersten %2$s werden angehängt."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Ungültiger Empfänger"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Von"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Von:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Abgelaufen"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Senden fehlgeschlagen"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Zustellbericht"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP-Nachrichten"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Text kopieren"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB-Nachrichten"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Alle"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 Nachricht"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 Konversation"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Lesebericht für jede gesendete Nachricht anfordern"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Zustellbericht für jede gesendete Nachricht anfordern"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Optionsfeld"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Ein/Aus-Taste"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Erweiterbare Liste"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS-Nachrichten automatisch abrufen"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Dateivorschau nicht möglich. Der Dateityp wird nicht unterstützt."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Einige Empfänger können nicht hinzugefügt werden. Die Nummern sind ungültig."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Empfänger kann nicht hinzugefügt werden. Die Nummer ist ungültig."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Empfänger können nicht hinzugefügt werden. Die Nummern sind ungültig."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Anhang kann nicht hinzugefügt werden. Maximale Anzahl an Anhängen (%d) erreicht."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Diese Nummer ist ungültig."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Ausgewählte Nachrichten wurden auf das Mobilgerät kopiert."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d Nachrichten auf die Nachrichtenliste verschoben."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Nummer aus der Nachrichtensperrliste entfernt."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Nummer zur Nachrichtensperrliste hinzugefügt."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Nachricht auf %s-SIM-Karte kopiert."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Maximale Anzahl von Zeichen überschritten."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Maximale Nachrichtengröße (%s) überschritten. Größe der Anhänge wird angepasst..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Ungültiges Zeichen eingegeben"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Fügen Sie Empfänger hinzu."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 Nachricht auf die Nachrichtenliste verschoben."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Ton"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "MMS"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Nachrichten auf SIM-Karte"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Eingabemodus"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Beim Roaming autom. abrufen"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Automatisch abrufen"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Senden"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Nein"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Eingabemodus zum Erstellen einer Nachricht auswählen."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Keine"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Nachrichten verwalten, die auf Ihrer SIM-Karte gespeichert sind."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Ihre Nachricht wird verworfen. Es wurden keine Empfänger ausgewählt."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Geplante Nachricht kann nicht gesendet werden. Andere Zeit festlegen."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Wiedergabe während Anruf nicht möglich"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Datei kann nicht angehängt werden. Dateigröße zu groß. Per E-Mail, Bluetooth, WLAN etc. senden."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Das Gerät stellt eine Verbindung mit einem anderen Mobilnetz her, um diese Multimedia-Nachricht zu senden. Dazu wird die Verbindung des Geräts mit dem aktuellen Mobilnetz getrennt."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Das Gerät stellt eine Verbindung mit einem anderen Mobilnetz her, um diese Multimedianachricht herunterzuladen. Dazu wird die Verbindung des Geräts mit dem aktuellen Mobilnetz getrennt."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Diese Nachricht wird erneut gesendet."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d Nachrichten werden gelöscht."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d Konversationen werden gelöscht."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Keine Vorlagen in der Liste"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Nur eingehende Nachrichten"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Ursprünglichen Nachrichtentext in ausgehende Nachricht einfügen"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Länge muss weniger als %d Sekunden betragen."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Gelöscht"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 Nachricht wird gelöscht."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 Konversation wird gelöscht."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Details"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Kontaktdet. anz."
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Als Diashow anzeigen"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Kontakt aktualisieren"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Text"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Foto aufnehmen"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Einstellungen"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Suche"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Anhänge speichern"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Erneut senden"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Antworten"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Aus Sperrliste entfernen"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Video aufnehmen"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Audiodatei aufnehmen"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Schnellantwort"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Ohne"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Sprachanruf tätigen"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Eigene Bilder"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM-Alphabet"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Auf Gerätespeicher exportieren"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Bearbeiten"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Nachricht löschen"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Unterhaltung löschen"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Standard"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Neuer Kontakt"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Auf SIM-Karte kopieren"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Auf Gerät kopieren"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Text kopieren"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopieren"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Sichern"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatisch"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Audiodateien"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Anhang"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Zu Kontakten hzfg."
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Zur Sperrliste hinzufügen"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Empfänger hinzufügen"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Suche"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Keine Ergebnisse"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Keine Schnellantworten"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Keine gesperrten Ausdrücke"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Keine Nachrichten auf SIM-Karte"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Keine Nachrichten"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Keine gesperrten Nummern"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibration"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Unbekannte Nummer"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Nummer der SMS-Zentrale"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Alle auswählen"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Benachrichtigungen"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Übersetzen"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "SMS"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Wechseln von Mobilnetz"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS-Zentrale"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Einstellungen"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Empfänger auswählen"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Auswahl von %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Nachrichten auf SIM-Karte"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Nachrichten"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Eingabemodus"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Datei zu groß"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Nachricht senden nicht möglich"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Nachricht verwerfen"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Erstellen"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Information"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Hinzufügen von Inhalt"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Wechseln"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Speichern"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Erneut senden"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Entfernen"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Download"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Verwerfen"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Löschen"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Abbrechen"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Abbrechen"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kontakte"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Sie haben eine Sound & Shot-Datei ausgewählt. Tondaten werden bei MMS nicht unterstützt. Es wird nur das Bild angehängt."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Ja"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Warten auf Senden..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Nachricht kann nicht gesendet werden. Legen Sie Ihre SIM-Karte ein und versuchen Sie es erneut."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Typ:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Für die Verwendung eingeschränkter Medientypen müssen Sie Ihre Einstellung für den MMS-Erstellungsmodus ändern."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Versendet am:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Erhalten am:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Kontrollkästchen"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Gesendet"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Senden..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Senden fehlgeschlagen"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "Sek."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Nachrichten während des Roamings automatisch abrufen."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Nachrichten automatisch abrufen."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Lesebericht: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Andere Person"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Nachricht"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Fehler"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Text eingeben"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Entwurf"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Zustellbericht: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB-Nachricht"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalender"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nachdem Sie Nachrichten gesendet oder empfangen haben, werden diese hier angezeigt."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nachdem Sie Schnellantworten erstellt haben, werden diese hier angezeigt."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nachdem Sie Nachrichten auf die SIM-Karte kopiert haben, werden diese hier angezeigt."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nachdem Sie Ausdrücke hinzugefügt haben, werden sie hier angezeigt."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nachdem Sie der Nachrichtensperrliste Nummern hinzugefügt haben, werden sie hier angezeigt."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "LÖSCHEN"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Lädt..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Benachrichtigungen"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Ich"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Senden"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Senden"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "SENDEN"
+
diff --git a/main/po/el_GR.po b/main/po/el_GR.po
new file mode 100644 (file)
index 0000000..975de18
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Σπίτι"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Η περιαγωγή δεδομένων είναι απενεργοποιημένη. Ενεργοποιήστε την περιαγωγή δεδομένων και προσπαθήστε ξανά."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Νέο μήνυμα"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ΑΚΥΡΟ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ΤΕΛΟΣ"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Άγνωστο"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Κινητό"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Τα δεδομένα κινητής τηλεφωνίας είναι απενεργοποιημένα. Ενεργοποιήστε τα δεδομένα κιν. τηλεφ. και δοκιμάστε ξανά."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ΑΠΟΣΤΟΛΗ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Μη υποστηριζόμενος τύπος μέσου."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Δεν είναι δυνατή η αποστολή μηνυμάτων, όσο είναι ενεργοποιημένη η λειτουργία πτήσης. Απενεργοποιήστε τη λειτουργία πτήσης και δοκιμάστε ξανά."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Δεν είναι δυνατή η προώθηση. Το αρχείο έχει προστασία κατά της προώθησης."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Ο χώρος αποθήκευσης της συσκευής σας δεν επαρκεί. Μεταβείτε στις Ρυθμίσεις > Ενέργεια και χώρος αποθήκευσης > Χώρος αποθήκευσης και, στη συνέχεια, διαγράψτε ορισμένα αρχεία και δοκιμάστε ξανά."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Κείμενο στο επάνω μέρος"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Κείμενο στο κάτω μέρος"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Επιλογή διάταξης"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Αδύνατη η προσθήκη περιεχομένου."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Το μήνυμα έχει προγραμματιστεί να αποσταλεί στο χρήστη %s. Να γίνει τώρα η αποστολή;"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Συμπληρώθηκε το μέγιστο όριο μεγέθους μηνύματος."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Χαμηλή μπαταρία."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Η διάρκεια πρέπει να είναι τουλάχιστον %d δευτερόλεπτα."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Λειτ.πτήσης απενερ..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Αντιγράφηκε στην κάρτα SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Ακυρώθηκε."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Χρ. στοιχ. άλλης επαφ."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Αποστολή μέσω"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Εικόνα"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Email"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Αντικατάσταση"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Προβολή"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Κατάργηση"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Αναπαραγωγή"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Προς"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Ακύρωση μηνύματος"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Λίστα παραληπτών"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Προεπισκόπηση"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Διάρκεια διαφάνειας %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Περιμένετε όσο γίνεται προσθήκη στοιχείων στην παρουσίαση."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Δεν είναι δυνατή η αποστολή μηνύματος."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Επιλογή ήχου κλήσης"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Θα αποσταλεί μια αναφορά ανάγνωσης."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Δεν ζητήθηκε"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Συμπληρώθηκε ο μέγιστος αριθμός παραληπτών (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Εισαγωγή θέματος."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Διπλότυπος παραλήπτης."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Προώθ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Αδύνατη αποθήκευση."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Δεν είναι δυνατή η εύρεση τοποθεσίας."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Δεν είναι δυνατή η διαγραφή."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Δεν είναι δυνατή η αντιγραφή."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Μερικοί χαρακτήρες μπορεί να χαθούν\nΣυνέχεια;"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "Δεν έχει τοποθετηθεί SIM."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Αποτυχία αποθήκευσης."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Αποθηκεύτηκε στο φάκελο «Τα αρχεία μου»."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Αποτυχία ανάκτησης μηνύματος"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Απαγορευμένος τύπος περιεχομένου. Να γίνει επισύναψη;"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Επαναφορά..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Απόρριψη."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Αναφορά ανάγνωσης"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Κανένας αριθμός"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Χωρίς συνημμένα"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Νέα μηνύματα"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Το μήνυμα αντιγράφηκε από την κάρτα SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Ο μέγιστος αριθμός των παραληπτών είναι %d. Ορισμένοι παραλήπτες μπορεί να χαθούν."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Έγινε υπέρβαση του μέγιστου αριθμού συνημμένων (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Ο μέγιστος αριθμός χαρακτήρων συμπληρώθηκε."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Σε εξέλιξη..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Προετοιμασία..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Εάν δεν θέλετε να αντικαταστήσετε το αρχείο, μετονομάστε το."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Αυτό το μήνυμα περιέχει ένα συνημμένο αρχείο που δεν εμφανίζεται."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Αυτό το μήνυμα περιέχει μερικά συνημμένα που δεν εμφανίζονται."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Το όνομα αρχείου υπάρχει ήδη."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Διαγραφή..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Αντιγράφηκε στο πρόχειρο."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Μετατροπή σε μήνυμα κειμένου..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Μετατροπή σε μήνυμα πολυμέσων..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Αποκλεισμός του %s;"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Πρόκειται να συνδεθείτε (%s). Συνέχεια;"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Θέμα:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Αποστολέας μέσω email"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Αποστολέας"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Επιλογή"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Αποθήκευση συνημμένου"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Αποθήκευση"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Κατάργηση"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Εγκατάσταση"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Προώθηση"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Επεξεργασία μηνύματος"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Διαγραφή;"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Διαγραφή μηνυμάτων"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Επιλέξτε μηνύματα"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Αποθήκευση όλων"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Στοιχεία μηνύματος"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Λήξη: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Σύνθετη αναζήτηση"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Αποθ.όλων των συνημ."
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Άγνωστο"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Προς:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Η μνήμη SIM είναι πλήρης. Διαγράψτε κάποια στοιχεία."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Ρυθμίσεις"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Εστάλη:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Έγινε αίτημα."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Παραλήπτες"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Ελήφθη:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Ελήφθη."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Αναφορά ανάγνωσης"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Μηνύματα Push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d μηνύματα"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d συνομιλίες"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Άλλο"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Χωρίς θέμα"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Κανένα όνομα"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Ειδοποίηση μηνύματος πολυμέσων"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Ανάγνωση"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Το μήνυμα απορρίφθηκε."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Μέγεθος μηνύματος"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Επιλογές μηνύματος"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Το μήνυμα παραδόθηκε"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Μήνυμα"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Εγώ"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Υπέρβαση μέγιστου αριθμού συνημμένων (%1$s). Θα γίνει προσθήκη μόνο των πρώτων %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Μη έγκυρος παραλήπτης."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Από"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Από:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Έληξε"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Αποτυχία αποστολής."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Αναφορά παράδοσης"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Μηνύματα CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Αντιγραφή κειμένου"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Μηνύματα εκπομπής κυψέλης"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Όλα"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 μήνυμα"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 συνομιλία"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Αίτηση αναφοράς ανάγνωσης για κάθε απεσταλμένο μήνυμα."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Αίτηση αναφοράς παράδοσης για κάθε απεσταλμένο μήνυμα."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Κουμπί επιλογής"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Κουμπί ενεργοποίησης/ενεργοποίησης"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Λίστα προς ανάπτυξη"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Αυτόματη ανάκτηση μηνυμάτων MMS."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Δεν είναι δυνατή η προεπισκόπηση του αρχείου. Ο τύπος αρχείου δεν υποστηρίζεται."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Δεν είναι δυνατή η προσθήκη ορισμένων παραληπτών. Οι αριθμοί δεν είναι έγκυροι."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Δεν είναι δυνατή η προσθήκη του παραλήπτη. Ο αριθμός δεν είναι έγκυρος."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Δεν είναι δυνατή η προσθήκη των παραληπτών. Οι αριθμοί δεν είναι έγκυροι."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Δεν ήταν δυνατή η προσθήκη συνημμένου. Συμπληρώθηκε ο μέγιστος αριθμός συνημμένων (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Ο αριθμός δεν είναι έγκυρος."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Τα επιλεγμένα μηνύματα θα αντιγραφούν στην κινητή συσκευή."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d μηνύματα μετακινήθηκαν στη λίστα μηνυμάτων."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Ο αριθμός καταργήθηκε από τη λίστα αποκλεισμού μηνυμάτων."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Ο αριθμός προστέθηκε στη λίστα αποκλεισμού μηνυμάτων."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Το μήνυμα αντιγράφηκε στην κάρτα SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Έγινε υπέρβαση του μέγιστου αριθμού χαρακτήρων."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Έγινε υπέρβαση του μέγιστου μεγέθους μηνύματος (%s). Αλλαγή μεγέθους συνημμένων..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Πληκτρολογήθηκε μη έγκυρος χαρακτήρας."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Να γίνει προσθήκη παραληπτών."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 μήνυμα μετακινήθηκε στη λίστα μηνυμάτων."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Μηνύματα κειμένου"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Ήχος"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Μηνύματα πολυμέσων"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Μηνύματα στην κάρτα SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Λειτουργία εισαγωγής"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Αυτ. ανάκτηση κατά την περιαγ."
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Αυτόματη ανάκτηση"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Αποστολή"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Όχι"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Επιλέξτε μια λειτουργία εισαγωγής για τη σύνταξη μηνυμάτων."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Καμία"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Να γίνεται διαχείριση των μηνυμάτων που είναι αποθηκευμένα στην κάρτα SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Το μήνυμά σας θα απορριφθεί. Δεν έχουν επιλεγεί παραλήπτες."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Δεν είναι δυνατή η αποστολή του προγραμματισμένου μηνύματος. Ορίστε άλλη ώρα."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Δεν είναι δυνατή η αναπαραγωγή παιχνιδιού κατά την κλήση."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Δεν ήταν δυνατή η επισύναψη του αρχείου. Το αρχείο είναι πολύ μεγάλο. Δοκιμάστε να το στείλετε μέσω Email, Bluetooth, Wi-Fi κλπ."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Για την αποστολή αυτού του μηνύματος πολυμέσων, η συσκευή θα συνδεθεί σε διαφορετικό δίκτυο κινητής τηλεφωνίας. Η ενέργεια θα αποσυνδέσει τη συσκευή από το τρέχον δίκτυο κινητής τηλεφωνίας."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Για τη λήψη αυτού του μηνύματος πολυμέσων, η συσκευή θα συνδεθεί σε διαφορετικό δίκτυο κινητής τηλεφωνίας. Η ενέργεια θα αποσυνδέσει τη συσκευή από το τρέχον δίκτυο κινητής τηλεφωνίας."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Αυτό το μήνυμα θα σταλεί ξανά."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "Θα διαγραφούν %d μηνύματα."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Θα διαγραφούν %d συνομιλίες."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Δεν υπάρχουν πρότυπα στη λίστα"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Εισερχόμενα μηνύματα μόνο"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Συμπερίληψη αρχικού κειμένου στο εξερχόμενο μήνυμα"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Η διάρκεια πρέπει να είναι μικρότερη από %d δευτερόλεπτα."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Διαγράφηκε."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "Θα διαγραφεί 1 μήνυμα."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 συνομιλία θα διαγραφεί."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Προβολή πληροφοριών"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Προβολή επαφής"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Προβολή ως παρουσίαση"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Βίντεο"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Ενημέρωση επαφής"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Κείμενο"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Λήψη φωτογραφίας"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Ρυθμίσεις"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Αναζήτηση"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Αποθήκευση συνημμένων"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Επανάληψη αποστολής"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Απάντηση"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Κατάργηση από τη λίστα αποκλ."
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Εγγραφή βίντεο"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Αρχείο\nηχογράφησης"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Γρήγορη απάντηση"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Κανένα"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Πραγματοποίηση φωνητικής κλήσης"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Εικόνες"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Αλφάβητο GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Εξαγωγή στη μνήμη συσκευής"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Επεξεργασία"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Διαγραφή μηνύματος"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Διαγραφή συζήτησης"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Προεπιλογή"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Δημιουργία επαφής"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Αντιγραφή στην κάρτα SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Αντιγραφή στη συσκευή"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Αντιγραφή κειμένου"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Αντιγραφή"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Δημιουργία αντιγράφων ασφαλείας"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Αυτόματα"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Αρχεία ήχου"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Συνημμένο"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Προσθήκη στις Επαφές"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Προσθήκη στη λίστα αποκλ."
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Προσθήκη παραληπτών"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Αναζήτηση"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Δεν βρέθηκαν αποτελέσματα"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Καμία γρήγορη απάντηση"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Δεν υπάρχουν αποκλεισμένες φράσεις"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Δεν υπάρχουν μηνύματα στην κάρτα SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Κανένα μήνυμα"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Δεν υπάρχουν αποκλεισμένοι αριθμοί"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Δόνηση"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Άγνωστος αριθμός"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Αρ. κέντρου μηνυμάτων κειμένου"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Επιλογή όλων"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Ειδοποιήσεις"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Μετάφραση"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Μηνύματα κειμένου"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Αλλαγή δικτύου κινητής τηλεφ."
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Κέντρο SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Ρυθμίσεις"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Επιλογή παραλήπτη"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Επιλέχθηκαν %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Μηνύματα στην κάρτα SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Μηνύματα"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Λειτουργία εισαγωγής"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Πολύ μεγάλο μέγεθος αρχείου"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Η αποστολή μηνύματος απέτυχε"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Απόρριψη μηνύματος"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Δημιουργία"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Προσοχή"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Προσθήκη περιεχομένου"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Εναλλαγή"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Αποθήκευση"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Αποστολή ξανά"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Κατάργηση"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Λήψη"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Απόρριψη"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Διαγραφή"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Ακύρωση"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Ακύρωση"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Επαφές"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Επιλέξατε ένα αρχείο ήχου και λήψης. Τα δεδομένα ήχου δεν υποστηρίζονται για μηνύματα MMS και επομένως θα γίνει επισύναψη μόνο της εικόνας."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Ναι"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Αναμονή για αποστολή..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Δεν είναι δυνατή η αποστολή αυτού του μηνύματος. Τοποθετήστε την κάρτα SIM και δοκιμάστε ξανά."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Τύπος:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Για τη χρήση περιορισμένων τύπων πολυμέσων, αλλάξτε τη ρύθμιση της λειτουργίας δημιουργίας MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Ώρα αποστολής:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Ώρα λήψης:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Πλαίσιο επιλογής"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Κατάσταση:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Στάλθηκε"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Αποστ..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Η αποστολή απέτυχε"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "δευτ."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Να γίνεται αυτόματη ανάκτηση μηνυμάτων κατά την περιαγωγή."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Να γίνεται αυτόματη ανάκτηση μηνυμάτων."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Αναφορά ανάγνωσης: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Άλλο άτομο"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Μήνυμα"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Σημείωση"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Απέτυχε"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Εισαγωγή κειμένου"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Πρόχειρο"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Αναφορά παράδοσης: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Μήνυμα CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Ημερολόγιο"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Μετά την αποστολή ή λήψη μηνυμάτων, τα μηνύματα θα εμφανιστούν εδώ."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Μετά τη δημιουργία γρήγορων απαντήσεων, οι γρήγορες απαντήσεις θα εμφανίζονται εδώ."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Μετά την αντιγραφή μηνυμάτων στην κάρτα SIM, τα μηνύματα θα εμφανίζονται εδώ."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Οι φράσεις που θα προσθέσετε, θα εμφανιστούν εδώ."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Αφού προσθέσετε αριθμούς στη λίστα απόρριψης μηνυμάτων, οι αριθμοί θα εμφανίζονται εδώ."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ΔΙΑΓΡΑΦΗ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Φόρτωση..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Ειδοποιήσεις"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Εγώ"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Απστ"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Αποσ."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ΑΠΟ."
+
diff --git a/main/po/en.po b/main/po/en.po
new file mode 100644 (file)
index 0000000..f692c52
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Home"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Data roaming is disabled. Enable data roaming and try again."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "New message"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobile"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile data is disabled. Enable mobile data and try again."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "SEND"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Unsupported media type."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Unable to send messages while in Flight mode. Disable Flight mode and try again."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Unable to forward.\nFile is forward locked."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "There is not enough space in your device storage. Go to Settings > Power and storage > Storage, then delete some files and try again."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Text at top"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Text at bottom"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Select layout"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Unable to add content."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Message scheduled to be sent to %s. Send now?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Maximum message size reached."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Low battery."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Duration must be at least %d seconds."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Disabling Flight mode..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copied to SIM card."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Cancelled."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Use other contact info"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Send via"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Image"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Email"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Replace"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "View"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Remove"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Play"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "To"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Cancel message"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Recipient list"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Preview"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Duration for slide %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Wait while items are added to slideshow."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Unable to send message."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Select ringtone"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Read report will be sent."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Not requested"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Maximum number of recipients (%d) reached."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Enter subject."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Duplicated recipient."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Fwd"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Unable to save."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Unable to find location."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Unable to delete."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Unable to copy."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Some characters may be lost. Continue?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM not inserted."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Saving failed."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Saved in My Files."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Retrieving message failed"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Restricted content type. Attach anyway?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Restoring..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rejected."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Read report"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "No number"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "No attachments"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "New messages"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Message copied from SIM card."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maximum number of recipients is %d. Some recipients may be lost."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Maximum number of attachments (%s) exceeded."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "In progress..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Initialising..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "If you don't want to replace the file, rename it."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "This message includes an attached file not shown."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "This message includes attached files not shown."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "File name already exists."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Deleting..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Copied to clipboard."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Converting to text message..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Converting to multimedia message..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Block %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "You are about to go online(%s). Continue?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Text message"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Subject:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Send via Email"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Sender"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Select"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Save attachment"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Save"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Remove"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Install"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Forward"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Edit message"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Delete?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Delete messages"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Select messages"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Save all"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Message details"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Expires: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Advanced search"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Save all attachments"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "To:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Text messages"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM memory full. Delete some items."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Sent:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Requested."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Recipients"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Received:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Received."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Read report"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push messages"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d messages"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d conversations"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Other"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "No subject"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "No name"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Multimedia message notification"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimedia message"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Read"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Message rejected."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Message size"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Message options"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Message delivered."
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Me"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Maximum number of attachments (%1$s) exceeded. Only first %2$s will be added."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Invalid recipient."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "From"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "From:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Expired"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Sending failed."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Delivery report"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP messages"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copy text"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB messages"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "All"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversation"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Request a read report for each message you send."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Request a delivery report for each message you send."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Radio button"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "On/off button"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Expandable list"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Automatically retrieve MMS messages."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Unable to preview file. Unsupported file type."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Unable to add some recipients. Numbers not valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Unable to add recipient. Number not valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Unable to add recipients. Numbers not valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Unable to add attachment. Maximum number of attachments (%d) reached."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "This number is not valid."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Selected messages copied to mobile device."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d messages moved to message list."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Number removed from message block list."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Number added to message block list."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Message copied to %s SIM card."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Maximum number of characters exceeded."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Maximum message size (%s) exceeded. Resizing attachments..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Invalid character entered."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Add recipients."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 message moved to message list."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Text messages"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Sound"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimedia messages"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Messages on SIM card"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Input mode"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Auto retrieve while roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Auto retrieve"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Send now"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "No"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Select an input mode for composing messages."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "None"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Manage the messages stored on your SIM card."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Your message will be discarded. No recipients have been selected."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Unable to send scheduled message. Set another time."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Unable to play during call."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Unable to attach file. File size too large. Try sending via Email, Bluetooth, Wi-Fi, etc."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "To send this multimedia message, the device will connect to a different mobile network. This will disconnect your device from your current mobile network."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "To download this multimedia message, the device will connect to a different mobile network. This will disconnect your device from your current mobile network."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "This message will be resent."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d messages will be deleted."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d conversations will be deleted."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "No templates in list"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Incoming messages only"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Include original text in outgoing message"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Duration must be shorter than %d seconds."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Deleted."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 message will be deleted."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 conversation will be deleted."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "View details"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "View contact details"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "View as slideshow"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Update contact"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Text"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Take picture"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Search"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Save attachments"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Resend"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Reply"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Remove from block list"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Record video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Record audio file"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Quick response"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "None"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Make voice call"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Images"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM alphabet"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Export to device memory"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Edit"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Delete message"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Delete conversation"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Default"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Create contact"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copy to SIM card"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copy to device"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copy text"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copy"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Back up"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatic"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Audio files"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Attachment"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Add to Contacts"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Add to block list"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Add recipients"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Search"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "No results found"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "No quick responses"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "No phrases blocked"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "No messages on SIM card"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "No messages"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "No blocked numbers"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibration"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Unknown number"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Text message centre number"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alerts"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Translate"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Text messages"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Switch mobile network"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS centre"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Select recipient"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d selected"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Messages on SIM card"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Messages"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Input mode"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "File size too large"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Failed to send message"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Discard message"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Delete"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Create"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Attention"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Add content"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Switch"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Save"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Resend"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Remove"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Download"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Discard"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Delete"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Cancel"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contacts"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "You have selected a sound & shot file. Sound data is not supported for MMS so only the picture will be attached."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Yes"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Waiting to send..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Unable to send this message. Insert your SIM card and try again."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Type:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "To use restricted media types, change your MMS creation mode setting."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Time sent:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Time received:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Tick box"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Sent"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Sending..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Sending failed"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "secs"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Retrieve messages automatically while roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Retrieve messages automatically."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Read report: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Other person"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Failed"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Enter text"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Draft"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Delivery report: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB message"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendar"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you send or receive messages, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you create quick responses, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you copy messages to the SIM card, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you add phrases, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you add numbers to the message block list, they will be shown here."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "DELETE"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Loading..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notifications"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Me"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Send"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Send"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "SEND"
+
diff --git a/main/po/en_PH.po b/main/po/en_PH.po
new file mode 100644 (file)
index 0000000..03b7c58
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Home"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Data roaming is disabled. Enable data roaming and try again"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "New message"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobile"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile data is disabled. Enable mobile data and try again"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "SEND"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Unsupported media type"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Unable to send messages while in Flight mode. Disable Flight mode and try again"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Unable to forward.\nFile is forward locked"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "There is not enough space in your device storage. Go to Settings > Power and storage > Storage, then delete some files and try again."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Text on top"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Text on bottom"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Select layout"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Unable to add content."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Message scheduled to be sent to %s. Send now?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Maximum message size reached."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Low battery."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Duration must be at least %d seconds."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Disabling Flight mode..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copied to SIM card."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Canceled."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Use other contact info"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Send via"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Image"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Email"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Replace"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "View"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Remove"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Play"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "To"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Cancel message"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Recipient list"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Preview"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Duration for slide %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Wait while items are added to slideshow."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Unable to send message."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Select ringtone"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Read report will be sent."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Not requested"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Maximum number of recipients (%d) reached."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Enter subject."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Duplicated recipient."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Fwd"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Unable to save."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Unable to find location."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Unable to delete."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Unable to copy."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Some characters may be lost. Continue?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM not inserted."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Saving failed."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Saved in My Files."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Retrieving message failed"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Restricted content type. Attach anyway?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Restoring..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rejected."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Read report"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "No number"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "No attachments"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "New messages"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Message copied from SIM card."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maximum number of recipients is %d. Some recipients may be lost"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Maximum number of attachments (%s) exceeded."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "In progress..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Initializing..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "If you don't want to replace the file, please rename it."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "This message includes an attached file not shown."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "This message includes attached files not shown."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "File name already exists."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Deleting..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Copied to clipboard."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Converting to text message..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Converting to multimedia message..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Block %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "You are about to go online(%s). Continue?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Text message"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Subject:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Send via Email"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Sender"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Select"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Save attachment"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Save"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Remove"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Install"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Forward"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Edit message"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Delete?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Delete messages"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Select messages"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Save all"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Message details"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Expires: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Advanced search"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Save all attachments"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "To:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Text messages"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM memory full. Delete some items"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Sent:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Requested."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Recipients"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Received:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Received."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Read report"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push messages"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d messages"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d conversations"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Other"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "No subject"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "No name"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Multimedia message notification"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimedia message"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Read"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Message rejected."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Message size"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Message options"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Message delivered"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Me"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Maximum number of attachments (%1$s) exceeded. Only first %2$s will be added"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Invalid recipient."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "From"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "From:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Expired"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Sending failed."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Delivery report"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP messages"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copy text"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB messages"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "All"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversation"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Request a read report for each message you send."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Request a delivery report for each message you send."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Radio button"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "On/off button"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Expandable list"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Automatically retrieve MMS messages."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Unable to preview file. Unsupported file type."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Unable to add some recipients. Numbers not valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Unable to add recipient. Number not valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Unable to add recipients. Numbers not valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Unable to add attachment. Maximum number of attachments (%d) reached."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "This number is not valid."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Selected messages copied to mobile device."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d messages moved to message list."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Number removed from message block list."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Number added to message block list."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Message copied to %s SIM card."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Maximum number of characters exceeded."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Maximum message size (%s) exceeded. Resizing attachments..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Character entered is invalid."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Add recipients."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 message moved to message list."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Text messages"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Sound"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimedia messages"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Messages on SIM card"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Input mode"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Auto retrieve while roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Auto retrieve"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Send now"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "No"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Select an input mode for composing messages."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "None"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Manage the messages stored on your SIM card."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Your message will be discarded. No recipients have been selected."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Unable to send scheduled message. Set another time"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Unable to play during call."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Unable to attach file. File size too large. Try sending via Email, Bluetooth, Wi-Fi, etc."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "To send this multimedia message, the device will connect to a different mobile network. This will disconnect your device from your current mobile network."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "To download this multimedia message, the device will connect to a different mobile network. This will disconnect your device from your current mobile network."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "This message will be resent."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d messages will be deleted."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d conversations will be deleted."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "No templates in list"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Incoming messages only"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Include original text in outgoing message"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Duration must be shorter than %d seconds."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Deleted."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 message will be deleted."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 conversation will be deleted"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "View details"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "View contact details"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "View as slideshow"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Update contact"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Text"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Take picture"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Search"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Save attachments"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Resend"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Reply"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Remove from block list"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Record video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Record audio file"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Quick response"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "None"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Make voice call"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Images"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM alphabet"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Export to device memory"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Edit"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Delete message"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Delete conversation"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Default"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Create contact"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copy to SIM card"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copy to device"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copy text"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copy"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Back up"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatic"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Audio files"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Attachment"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Add to Contacts"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Add to block list"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Add recipients"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Search"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "No results found"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "No quick responses"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "No phrases blocked"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "No messages on SIM card"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "No messages"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "No blocked numbers"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibration"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Unknown number"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Text message center number"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alerts"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Translate"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Text messages"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Switch mobile network"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS center"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Select recipient"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d selected"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Messages on SIM card"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Messages"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Input mode"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "File size too large"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Failed to send message"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Discard message"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Delete"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Create"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Attention"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Add content"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Switch"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Save"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Resend"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Remove"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Download"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Discard"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Delete"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Cancel"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contacts"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "You have selected a sound & shot file. Sound data is not supported for MMS so only the picture will be attached."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Yes"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Waiting to send..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Unable to send this message. Insert your SIM card and try again."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Type:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "To use restricted media types, change your MMS creation mode setting."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Time sent:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Time received:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Tick box"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Sent"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Sending..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Sending failed"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "secs"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Retrieve messages automatically while roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Retrieve messages automatically."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Read report: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Other person"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Failed"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Enter text"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Draft"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Delivery report: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB message"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendar"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you send or receive messages, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you create quick responses, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you copy messages to the SIM card, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you add phrases, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you add numbers to the message block list, they will be shown here."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "DELETE"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Loading..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notifications"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Me"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Send"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Send"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "SEND"
+
diff --git a/main/po/en_US.po b/main/po/en_US.po
new file mode 100644 (file)
index 0000000..1f1ec7c
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Home"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Data roaming is turned off. Turn on data roaming and try again."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "New message"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "DONE"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobile"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobile data is turned off. Turn on mobile data and try again."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "SEND"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Unsupported media type"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Unable to send messages while in Airplane mode. Disable Airplane mode and try again."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Unable to forward.\nFile is forward locked."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "There is not enough space in your device storage. Go to Settings > Power and storage > Storage, then delete some files and try again."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Text at top"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Text at bottom"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Select layout"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Unable to add content."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Message scheduled to be sent to %s. Send now?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Maximum message size reached."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Low battery."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Duration must be at least %d seconds."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Turning off Airplane mode..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copied to SIM card."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Canceled."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Use other contact info"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Send via"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Image"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Email"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Replace"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "View"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Remove"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Play"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "To"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Cancel message"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Recipient list"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Preview"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Duration for slide %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Wait while items are added to slideshow."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Unable to send message."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Select ringtone"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Read report will be sent."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Not requested"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Maximum number of recipients (%d) reached."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Enter subject"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Duplicated recipient."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Fwd"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Unable to save."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Unable to find location."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Unable to delete."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Unable to copy."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Some characters may be lost. Continue?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM not inserted."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Saving failed."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Saved in My Files."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Retrieving message failed"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Restricted content type. Attach anyway?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Restoring..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rejected."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Read report"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "No number"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "No attachments"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "New messages"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Message copied from SIM card."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maximum number of recipients is %d. Some recipients may be lost."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Maximum number of attachments (%s) exceeded."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Maximum number of characters reached."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "In progress..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Initializing..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "If you don't want to replace the file, rename it."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "This message includes an attached file not shown."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "This message includes attached files not shown."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "File name already exists."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Deleting..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Copied to clipboard."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Converting to text message..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Converting to multimedia message..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Block %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "You are about to go online(%s). Continue?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Text message"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Subject:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Send via Email"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Sender"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Select"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Save attachment"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Save"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Remove"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Install"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Forward"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Edit message"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Delete?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Delete messages"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Select messages"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Save all"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Message details"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Expires: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Advanced search"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Save all attachments"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "To:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Text messages"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM memory full. Delete some items."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Sent:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Requested."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Recipients"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Received:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Received"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Read report"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push messages"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d messages"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d conversations"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Other"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "No subject"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "No name"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Multimedia message notification"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimedia message"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Read"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Message rejected."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Message size"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Message options"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Message delivered"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Me"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Maximum number of attachments (%1$s) exceeded. Only first %2$s will be added."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Invalid recipient."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "From"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "From:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Expired"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Sending failed"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Delivery report"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP messages"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copy text"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB messages"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "All"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversation"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Request a read report for each message you send."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Request a delivery report for each message you send."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Radio button"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "On/off button"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Expandable list"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Automatically retrieve multimedia messages."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Unable to preview file. Unsupported file type."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Unable to add some recipients. Numbers not valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Unable to add recipient. Number not valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Unable to add recipients. Numbers not valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Unable to add attachment. Maximum number of attachments (%d) reached."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "This number is not valid."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Selected messages copied to mobile device."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d messages moved to message list."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Number removed from message block list."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Number added to message block list."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Message copied to %s SIM card."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Maximum number of characters exceeded."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Maximum message size (%s) exceeded. Resizing attachments..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Character entered is invalid."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Add recipients."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 message moved to message list."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Text messages"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Sound"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimedia messages"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Messages on SIM card"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Input mode"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Auto retrieve while roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Auto retrieve"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Send now"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "No"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Select an input mode for composing messages."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "None"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Manage the messages stored on your SIM card."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Your message will be discarded. No recipients have been selected."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Unable to send scheduled message. Set another time."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Unable to play during call."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Unable to attach file. File size too large. Try sending via Email, Bluetooth, Wi-Fi, etc."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "To send this multimedia message, the device will connect to a different mobile network. This will disconnect your device from your current mobile network."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "To download this multimedia message, the device will connect to a different mobile network. This will disconnect your device from your current mobile network."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "This message will be resent."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d messages will be deleted."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d conversations will be deleted."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "No templates in list"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Incoming messages only"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Include original text in outgoing message"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Duration must be shorter than %d seconds."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Deleted."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 message will be deleted."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 conversation will be deleted."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "View details"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "View contact details"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "View as slideshow"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Update contact"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Text"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Take picture"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Search"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Save attachments"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Resend"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Reply"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Remove from block list"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Record video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Record audio file"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Quick response"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "None"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Make voice call"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Images"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM alphabet"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Export to device memory"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Edit"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Delete message"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Delete conversation"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Default"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Create contact"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copy to SIM card"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copy to device"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copy text"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copy"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Back up"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatic"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Audio files"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Attachment"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Add to Contacts"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Add to block list"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Add recipients"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Search"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "No results found"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "No quick responses"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "No phrases blocked"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "No messages on SIM card"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "No messages"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "No blocked numbers"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibration"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Unknown number"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Text message center number"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alerts"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Translate"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Text messages"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Switch mobile network"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS center"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Select recipient"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d selected"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Messages on SIM card"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Messages"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Input mode"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "File size too large"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Failed to send message"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Discard message"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Delete"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Create"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Attention"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Add content"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Switch"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Save"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Resend"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Remove"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Download"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Discard"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Delete"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Cancel"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contacts"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "You have selected a sound & shot file. Sound data is not supported for multimedia messages so only the picture will be attached."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Yes"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Waiting to send..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Unable to send this message. Insert your SIM card and try again."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Type:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "To use restricted media types, change your multimedia message creation mode setting."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Time sent:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Time received:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Check box"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Sent"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Sending..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Sending failed"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "secs"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Retrieve messages automatically while roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Retrieve messages automatically."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Read report: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Other person"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Failed"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Enter text"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Draft"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Delivery report: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB message"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendar"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you send or receive messages, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you create quick responses, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you copy messages to the SIM card, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you add phrases, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you add numbers to the message block list, they will be shown here."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "DELETE"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Loading..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notifications"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Me"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Send"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Send"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "SEND"
+
diff --git a/main/po/es_ES.po b/main/po/es_ES.po
new file mode 100644 (file)
index 0000000..195cb92
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Casa"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "La intinerancia de datos está desactivada. Actívela e inténtelo de nuevo."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Mensaje nuevo"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "HECHO"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Móvil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Los datos móviles están desactivados. Actívelos e inténtelo de nuevo."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ENVIAR"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Tipo multimedia no admitido"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "No se pueden enviar mensajes durante el modo Vuelo. Desactive el modo Vuelo y vuelva a intentarlo."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "No se puede reenviar.\nEl archivo está bloqueado contra reenvíos"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "No queda espacio suficiente en el almacenamiento del dispositivo. Vaya a Ajustes > Alimentación y almacenamiento > Almacenamiento y, a continuación, elimine algunos archivos e inténtelo de nuevo."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Texto en la parte superior"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Texto en la parte inferior"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Seleccionar diseño"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "No se puede añadir contenido"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Mensaje programado para enviarse a %s. ¿Enviar ahora?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Tamaño máximo de mensaje alcanzado"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Batería baja"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "La duración debe ser de al menos %d segundos"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Desactivando modo Avión..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copiado a tarjeta SIM"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Cancelado"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Usar info otros contac"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Enviar por"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Imagen"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Correo electrónico"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Reemplazar"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Ver"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Eliminar"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Reproducir"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Para"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Cancelar mensaje"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Lista de destinatarios"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Vista previa"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Duración de la presentación de diapositiva %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Espere mientras se añaden elementos a la presentación de diapositivas"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Imposible enviar mensaje"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Seleccionar melodía"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Se enviará informe de lectura"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "No solicitado"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Alcanzado el número máximo de destinatarios (%d)"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Introducir asunto"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Destinatario duplicado"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Reenv."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "No se puede guardar"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "No se puede encontrar ubicación"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "No se puede eliminar"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "No se puede copiar"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Podrían perderse algunos caracteres.\n¿Continuar?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM no insertada"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Error al guardar"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Guardado en Mis archivos"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Error al recuperar mensaje"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Tipo de contenido restringido. ¿Adjuntar de todas formas?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Restaurando..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rechazado"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Informe de lectura"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Sin número"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Sin archivos adjuntos"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Mensajes nuevos"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Mensaje copiado desde la tarjeta SIM"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "El número máximo de destinatarios es %d. Podrían perderse algunos destinatarios."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Se ha superado el número máximo de adjuntos (%s)"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Alcanzado el número máximo de caracteres"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "En curso..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Inicializando..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Si no desea sustituir el archivo, cámbiele el nombre"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Este mensaje incluye un archivo adjunto que no se muestra"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Este mensaje incluye archivos adjuntos que no se muestran"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "El nombre del archivo ya existe"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Eliminando..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Copiado al portapapeles"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Convirtiendo a mensaje de texto..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Convirtiendo a mensaje multimedia..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "¿Bloquear %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Está a punto de conectarse(%s). ¿Continuar?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Mensaje de texto"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Asunto:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Enviar por correo electrónico"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Remitente"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Guardar adjunto"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Guardar"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Eliminar"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instalar"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Reenviar"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Editar mensaje"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "¿Eliminar?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Eliminar mensajes"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Seleccionar mensajes"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Guardar todo"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Detalles de mensaje"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Caduca el: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Búsqueda avanzada"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Guardar todos adjunt"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Para:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Mensajes de texto"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Memoria de SIM llena. Elimine algunos elementos."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Enviado:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Solicitado"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Destinatarios"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Recibido:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Recibido"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Informe de lectura"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Mensajes push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d mensajes"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d conversaciones"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Otro"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Sin asunto"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Sin nombre"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Notificación de mensaje multimedia"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Mensaje multimedia"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Leer"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Mensaje rechazado"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Tamaño de mensaje"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Opciones de mensaje"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Mensaje entregado"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Mensajes"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Yo"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Se ha superado el número máximo de adjuntos (%1$s). Sólo se añadirán los primeros %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Destinatario no válido"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "De:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Caducado"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Error al enviar"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Informe de entrega"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Mensajes de CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copiar texto"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Mensajes de CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Todo"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 mensaje"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversación"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Solicitar un informe de lectura para cada mensaje que envíe"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Solicitar un informe de entrega para cada mensaje que envíe"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Botón de opción"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Botón activar/desactivar"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Lista ampliable"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Recuperar mensajes MMS automáticamente"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "No se puede previsualizar el archivo. Tipo de archivo no compatible."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "No se pueden añadir algunos destinatarios. Los números no son válidos."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "No se puede añadir el destinatario. El número no es válido."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "No se pueden añadir destinatarios. Los números no son válidos."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "No se pueden añadir archivos adjuntos. Se ha alcanzado el número máximo de adjuntos (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Este número no es válido."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Los mensajes seleccionados se han copiado en el dispositivo móvil."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "Se han movido %d mensajes a la lista de mensajes."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Número eliminado de la lista de bloqueo de mensajes."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Número añadido a la lista de bloqueo de mensajes."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Mensaje copiado a la tarjeta SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Número máximo de caracteres superado."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Se ha superado el tamaño máximo del mensaje (%s). Cambiando el tamaño de los archivos adjuntos..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Se ha introducido un carácter no válido."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Añada destinatarios."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "Se ha movido 1 mensaje a la lista de mensajes."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Mensajes de texto"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Sonido"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Mensajes multimedia"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Mensajes en la tarjeta SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Modo de entrada"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Recuperac autom en itinerancia"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Recuperación automática"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Env ahora"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "No"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Seleccione un modo de entrada para redactar mensajes."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Ninguna"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Gestionar los mensajes almacenados en la tarjeta SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Su mensaje se descartará. No se han seleccionado destinatarios."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "No se puede enviar el mensaje programado. Defina otra hora."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "No se puede reproducir durante la llamada"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "No se puede adjuntar el archivo. El tamaño del archivo es demasiado grande. Intente enviarlo por Correo electrónico, Bluetooth, Wi-Fi, etc."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Para enviar este mensaje multimedia, el dispositivo se conectará a una red móvil diferente. Esta acción desconectará su dispositivo de su red móvil actual."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Para descargar este mensaje multimedia, el dispositivo se conectará a una red móvil diferente. Esta acción desconectará su dispositivo de la red móvil actual."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Se reenviará este mensaje."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "Se han eliminado %d mensajes"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Se eliminarán %d conversaciones."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Ninguna plantilla en la lista"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Solo mensajes entrantes"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Incluir texto de original en el mensaje saliente"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "La duración debe ser inferior a %d segundos"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Eliminado"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "Se eliminará 1 mensaje"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Se eliminará 1 conversación."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Ver detalles"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Ver detalles del contacto"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Ver como present diapositivas"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Actualizar contacto"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Texto"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Hacer foto"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Guardar archivos adjuntos"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Volver a enviar"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Responder"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Quitar de la lista de bloqueo"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Grabar vídeo"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Grabar archivo de audio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Quick reply"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Ninguno"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Hacer una llamada de voz"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Imágenes"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alfabeto GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Exportar al dispositivo de memoria"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Editar"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Eliminar mensaje"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Eliminar conversación"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Predeterminado"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Crear contacto"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copiar a tarjeta SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copiar al dispositivo"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copiar texto"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copiar"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Copia de seguridad"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automático"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Archivos de audio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Adjunto"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Añadir a Contactos"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Añadir a lista de bloqueo"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Añadir destinatarios"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "No se han encontrado result"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Sin respuestas rápidas"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "No hay frases bloqueadas"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "No hay mensajes en la tarjeta SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Sin mensajes"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "No hay números bloqueados"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibración"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Número desconocido"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Número centro mensaje texto"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Seleccionar todo"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alertas"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Traducir"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Mensajes de texto"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Cambiar red móvil"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Centro SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Seleccionar destinatario"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seleccionado(s)"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Mensajes en la tarjeta SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Mensajes"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Modo de introducción"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Archivo demasiado grande"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Error al enviar mensaje"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Descartar mensaje"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Crear"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Atención"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Añadir contenido"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Cambiar"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Guardar"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Reenviar"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Descargar"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Descartar"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Cancelar"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Cancelar"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contactos"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Ha seleccionado un archivo de sound & shot. Los datos de sonido no son compatibles con MMS, de modo que solo se adjuntará la foto."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Sí"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Esperando envío..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "No se puede enviar este mensaje. Inserte su tarjeta SIM y vuelva a intentarlo."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tipo:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Para usar tipos de archivo multimedia restringidos, cambie el ajuste de modo de creación MMS"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Hora de envío:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Hora de recibo:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Casilla de verificación"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Estado"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Enviado"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Env..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Error de envío"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "seg"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Recupera mensajes automáticamente durante la itinerancia."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Recupera mensajes automáticamente."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Informe de lectura: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Otra persona"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Mensajes"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Nota"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Error"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Introducir texto"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Borrador"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Informe de entrega: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Mensaje de CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendario"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de enviar o recibir mensajes, se mostrarán aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de crear quick responses, se mostrarán aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de copiar mensajes en la tarjeta SIM, se mostrarán aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de añadir frases, se mostrarán aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de añadir números a la lista de bloqueo de mensajes, aparecerán aquí."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Cargando..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notificaciones"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Yo"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Enviar"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Env"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ENVIAR"
+
diff --git a/main/po/es_US.po b/main/po/es_US.po
new file mode 100644 (file)
index 0000000..44084e6
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Privado"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Roaming de datos desactivado. Active el roaming de datos e inténtelo de nuevo."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nuevo mensaje"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "REALIZADO"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Móvil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Dato móviles desactivados. Active los datos móviles e inténtelo de nuevo."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ENVIAR"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Tipo de medio no compatible."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "No es posible enviar mensajes mientras está en perfil Fuera de línea. Desactive el perfil Fuera de línea e inténtelo de nuevo."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "No se puede reenviar.\nEl archivo está bloqueado contra reenvíos"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "No hay espacio suficiente en el almacenamiento del dispositivo. Vaya a Ajustes > Batería y almacenamiento > Almacenamiento, elimine algunos archivos e inténtelo de nuevo."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Texto en la parte superior"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Texto en la parte inferior"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Seleccionar diseño"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "No es posible añadir contenido."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "El mensaje está programado para enviarse a %s. ¿Enviar ahora?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Se ha alcanzado el tamaño máximo de mensaje."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Batería baja."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "La duración debe ser de al menos %d segundos."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Desactivando Perfil Fuera de línea..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copiado a tarjeta SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Cancelado."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Usar inf. de otro con."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Enviar vía"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Imagen"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Correo"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Sustituir"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Ver"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Eliminar"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Reproducir"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "A"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Cancelar mensaje"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Lista de destinatarios"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Vista previa"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Duración de diapositiva %d%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Espere mientras se añaden elementos a la presentación de diapositivas."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "No es posible enviar mensaje."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Seleccionar tono"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Se enviará informe de lectura."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "No solicitado"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Se alcanzó el número máximo de destinatarios (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Introducir asunto."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Destinatario duplicado."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Reenviar"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "No es posible guardar."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "No es posible encontrar ubicación."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "No puede eliminar."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "No es posible copiar."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Podrían perderse algunos caracteres.\n¿Continuar?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "Tarjeta SIM no insertada."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Error al guardar."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Guardado en Mis archivos."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Error al recuperar mensaje"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Tipo de contenido restringido. ¿Adjuntar de todas formas?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Restaurando…"
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rechazado."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Informe de lectura"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Sin número"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Sin archivos adjuntos"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nuevos mensajes"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Mensaje copiado desde la tarjeta SIM"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "El número máximo de destinatarios es %d. Podrían perderse algunos destinatarios."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Se ha alcanzado el número máximo de archivos adjuntos (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Se ha alcanzado el número máximo de caracteres."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Procesando..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Inicializando..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Si no desea sustituir el archivo, renómbrelo."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Este mensaje incluye algunos archivos adjuntos que no se muestran."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Este mensaje incluye archivos adjuntos que no se muestran."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Nombre de archivo ya existe."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Eliminando..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Copiado al portapapeles."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Cambiando a mensaje de texto..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Cambiando a mensaje multimedia..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "¿Bloquear %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Usted está por conectarse(%s). ¿Continuar?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Mensaje de texto"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Asunto:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Remitente vía correo"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Remitente"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Guardar adjunto"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Guardar"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Eliminar"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instalar"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Reenviar"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Editar mensaje"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "¿Eliminar?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Eliminar mensajes"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Seleccionar mensajes"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Guardar todo"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Detalles del mensaje"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Caduca el: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Búsqueda avanzada"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Guardar todos adj."
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "A:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Mensajes de texto"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Memoria de tarjeta SIM llena. Elimine algunos elementos."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Enviado:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Solicitado."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Destinatarios"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Recibido:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Recibido."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Informe de lectura"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Mensajes WAP PUSH"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d mensajes"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d conversaciones"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Otro"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Sin asunto"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Sin nombre"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Notificación de mensaje multimedia"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Mensaje multimedia"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Leídos"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Mensaje rechazado."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "Mensaje multimedia"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Tamaño del mensaje"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Opciones de mensaje"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Mensaje entregado"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Mensaje"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Yo"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Se ha alcanzado el número máximo de adjuntos (%1$s). Sólo se añadirán los primeros %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Destinatario no válido."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "De:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Agotada"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Error al enviar."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Informe de entrega"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Mensajes de CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copiar texto"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Mensajes de canales de información"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Todo"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 mensaje"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversación"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Solicitar un informe de lectura por cada mensaje que envía."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Solicitar un informe de entrega por cada mensaje que envía."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Botón de encendido"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Botón de encendido/apagado"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Lista desplegable"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Recuperar mensajes multimedia automáticamente."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "No es posible obtener una vista previa del archivo. Tipo de archivo no compatible."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "No es posible añadir algunos destinatarios. Los números no son válidos."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "No es posible añadir destinatario. El número no es válido."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "No es posible añadir destinatarios. Los números no son válidos."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "No se pueden añadir archivos adjuntos. Se ha alcanzado el número máximo de adjuntos (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Este número no es válido."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Los mensajes seleccionados se han copiado en el dispositivo móvil."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "Se movieron %d mensajes a la lista de mensajes."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Se eliminó el número de la lista de bloqueo de mensajes."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Se añadió el número a la lista de bloqueo de mensajes."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Se copió el mensaje a la tarjeta SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Número máximo de caracteres superado."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Se superó el tamaño máximo del mensaje (%s). Cambiando tamaño de adjuntos..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Se introdujo un carácter no válido."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Añada destinatarios."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "Se movió 1 mensaje a la lista de mensajes."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Mensajes de texto"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Sonido"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Mensajes multimedia"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Mensajes en la tarjeta SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Método de entrada"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Actualización auto. en roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Recuperación automática"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Enviar"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "No"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Seleccione un modo de entrada para redactar mensajes."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Ninguna"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Administrar los mensajes almacenados en la tarjeta SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Su mensaje se descartará. No se han seleccionado destinatarios."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "No es posible enviar el mensaje programado. Seleccione otra hora."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "No es posible reproducir durante la llamada."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "No es posible adjuntar el archivo. El archivo es demasiado grande. Intente enviar por Correo, Bluetooth, Wi-Fi, etc."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Para enviar este mensaje multimedia, el dispositivo se conectará a otra red móvil. Esto hará que el dispositivo se desconecte de la red móvil actual."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Para descargar este mensaje multimedia, el dispositivo se conectará a otra red móvil. Esto hará que el dispositivo se desconecte de la red móvil actual."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Se volverá a enviar este mensaje."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "Se eliminarán %d mensajes."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Se eliminarán %d conversaciones."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "No hay plantillas en la lista"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Sólo mensajes entrantes"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Incluir el texto original en el mensaje saliente"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "La duración debe ser menor a %d segundos."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Eliminado."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "Se eliminará 1 mensaje."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Se eliminará 1 conversación."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Ver detalles"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Ver detalles de contacto"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Ver como presentación"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videos"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Actualizar contacto"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Texto"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Capturar imagen"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Guardar adjuntos"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Volver a enviar"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Responder"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Eliminar de lista de bloqueo"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Grabar video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Grabar archivo de audio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Respuesta rápida"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Ninguno"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Hacer llamada de voz"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Imágenes"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alfabeto GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Exportar a la memoria del dispositivo"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Editar"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Eliminar mensaje"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Eliminar conversación"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Predeterminado"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Crear contacto"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copiar en la tarjeta SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copiar a dispositivo"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copiar texto"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copiar"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Copia de seguridad"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automático"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Archivos de audio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Adjunto"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Añadir a contactos"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Añadir a lista de bloqueados"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Añadir destinatarios"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Sin resultados encontrados"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "No hay respuestas rápidas"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "No hay frases bloqueadas"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "No hay mensajes en la tarjeta SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "No hay mensajes"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "No hay números bloqueados"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibración"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Número desconocido"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Núm. centro de mens. de texto"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Todo"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alertas"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Traducir"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Mensajes de texto"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Cambiar red móvil"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Cent. mens."
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Seleccionar destinatario"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seleccionado(s)"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Mensajes en la tarjeta SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Mensajes"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Método de entrada"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Archivo demasiado grande"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Error al enviar mensaje"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Descartar mensaje"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Crear"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Atención"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Añadir contenido"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Cambiar"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Guardar"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Volver a env."
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "Aceptar"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Descargar"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Descartar"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Cancelar"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Cancelar"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contactos"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Seleccionó un archivo de sonido y captura. Los datos de sonido no son compatibles con mensajes multimedia así que sólo se adjuntará la imagen."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Sí"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Esperando para enviar..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "No se puede enviar este mensaje. Inserte su tarjeta SIM e inténtelo de nuevo."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tipo:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Para utilizar los tipos de multimedia restringida, cambie su configuración de modo de creación de mensajes multimedia."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Hora de envío:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Hora de recepción:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Casilla de verificación"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Estado:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Enviado"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Enviando..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Error de envío"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "seg."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Recupera mensajes automáticamente durante el roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Recupera mensajes automáticamente."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Informe de lectura: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Otra persona"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Mensaje"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Nota"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Error"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Introducir texto"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Borrador"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Informe de entrega: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Mensaje de CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendario"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Los mensajes enviados o recibidos se mostrarán aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de crear respuestas rápidas, estas se mostrarán aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de copiar mensajes en la tarjeta SIM, estos se mostrarán aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de añadir frases, se mostrarán aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de añadir números a la lista de bloqueo de mensajes, aparecerán aquí."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Cargando..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notificaciones"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Yo"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Enviar"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Env."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ENV."
+
diff --git a/main/po/et.po b/main/po/et.po
new file mode 100644 (file)
index 0000000..25e5220
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Kodu"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Andmerändlus on desaktiveeritud. Aktiveerige andmerändlus ja proovige uuesti."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Uus sõnum"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "TÜHISTA"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "VALMIS"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Tundmatu"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobiil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobiilne andmeside on desaktiveeritud. Aktiveerige mobiilne andmeside ja proovige uuesti."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "SAADA"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Toetuseta meediatüüp."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Lennurežiimis ei saa sõnumeid saata. Desaktiveerige lennurežiim ja proovige uuesti."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Ei saa edastada.\nFailil on edastamislukk."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Seadme mälus pole piisavalt ruumi. Avage menüü Seaded > Toide ja mälu > Mälu, seejärel kustutage mõned failid ja proovige uuesti."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Tekst üleval"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Tekst all"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Vali paigutus"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Ei saa lisada sisu."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Sõnumi saatmine ajastatud: %s. Kas saata kohe?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Maksimaalne sõnumi suurus on saavutatud."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Aku on peaaegu tühi."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Kestus peab olema vahemalt %d sekundit."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Lennurežiimi desaktiveerimine..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Kopeeritud SIM-kaardile."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Tühistatud."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Kas. muud kon.-teavet"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Saatmisviis"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Pilt"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-post"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Asenda"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Kuva"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Eemalda"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Esita"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Saaja"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Tühista sõnum"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Adressaadiloend"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Eelvaade"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Slaidi kestus %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Oodake, kuni uksused on slaidiseansile lisatud."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Sõnumit ei saa saata."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Vali helin"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Lugemisraport saadetakse."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Pole taotletud"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Maksimaalne adressaatide arv (%d) on saavutatud."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Sisestage teema."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Mitu adressaati."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Edasta"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Ei saa salvestada."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Asukohta ei leita."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Ei saa kustutada."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Ei saa kopeerida."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Osa märkidest võib kaduda. Kas jätkata?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM-kaart ei ole sisestatud."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Salvestamine nurjus."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Salvestatud Minu failidesse."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Sõnumi laadimine nurjus"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Piiratud sisutüüp. Kas manustada ikkagi?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Taastamine..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Keeldutud."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Loe raportit"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Number puudub"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Manuseid ei ole"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Uued sõnumid"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Sõnum on SIM-kaardilt kopeeritud."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Adressaatide maksimaalne arv on %d. Mõned adressaadid võivad kaduda."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Maksimaalne arv manuseid (%s) on ületatud."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Lubatud arv märke on täis."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Saatmine..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Lähtestamine..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Kui te ei soovi faili asendada, nimetage see umber."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Sellel sonumil on manusfaile, mida ei naidata."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "See sonum sisaldab manustatud faile, mida ei naidata."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Failinimi on juba olemas."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Kustutamine..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Kopeeritud lõikelauale."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Tekstsõnumiks teisendamine..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Multimeediumsõnumiks teisendamine..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Kas blokeerida sõber %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Hakkate minema Internetti (%s). Kas jätkata?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Tekstsõnum"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Teema:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Saatja e-postiga"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Saatja"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Vali"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Salvesta manus"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Salvesta"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Eemalda"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Installi"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Edasta"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Muuda sõnumit"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Kustutada?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Kustuta sõnumid"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Vali sõnumid"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Salvesta kõik"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Sõnumi üksikasjad"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Aegub: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Täpsem otsing"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Salv. kõik manused"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Tundmatu"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Saaja:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Tekstsõnumid"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM-kaardi mälu on täis. Kustutage mõned üksused."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Seaded"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Saadetud:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Taotletud."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Adressaadid"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Vastuvõetud:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Vastu võetud."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Loe raportit"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Kommertsteated"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d sõnumit"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d vestlust"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Muu"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Teema puudub"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Nimi puudub"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Multimeediumsõnumi teavitus"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimeediumsõnum"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "kB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Loe"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Sõnumist keelduti."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Sõnumi maht"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Sõnumi valikud"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Sõnum on kohale toimetatud"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Sõnum"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Mina"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Maksimaalne manuste arv (%1$s) on ületatud. Lisatakse ainult %2$s esimest."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Vale adressaat."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Saatja"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Saatja:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Aegunud"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Saatmine nurjus."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Kohaletoimetamisraport"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP-sõnumid"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopeeri tekst"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Võrguteabesõnumid"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Kõik"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 vestlus"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Taotle lugemisraportit igale saadetud sonumile."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Taotle kohaletoimetamisraportit igale saadetud sonumile."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Raadio nupp"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Sisse-/väljalülitamise nupp"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Laiendatav loend"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Lae MMS-sonumid automaatselt."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Faili ei saa eelvaates kuvada. Mittetoetatud failitüüp."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Osasid adressaate ei saa lisada. Numbrid on kehtetud."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Adressaati ei saa lisada. Number on kehtetu."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Adressaate ei saa lisada. Numbrid on kehtetud."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Manust ei saa lisada. Manuste maksimaalne arv (%d) on saavutatud."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "See number ei kehti."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Valitud sõnumid on kopeeritud mobiilsideseadmesse."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d sõnumit on teisaldatud sõnumiloendisse."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Number on eemaldatud sõnumite blokeeritute loendist."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Number on lisatud sõnumite blokeeritute loendisse."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Sõnum on kopeeritud SIM-kaardile %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Tähemärkide maksimaalne arv on ületatud."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Sõnumi maksimaalne suurus (%s) on ületatud. Manusfailide suuruse muutmine..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Sisestati vale tähemärk"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Saate lisada adressaadid."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 sõnum teisaldati sõnumiloendisse."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Tekstsõnumid"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Heli"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimeediumsõnumid"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM-kaardil olevad sõnumid"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Sisestusrežiim"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Autom. laadimine rändluse ajal"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Automaatne laadimine"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Saada"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Ei"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Valige sisestusrežiim sõnumite koostamiseks."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Puudub"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Saate hallata oma SIM-kaardile salvestatud sõnumeid."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Teie sõnumist loobutakse. Ühtegi adressaati pole valitud."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Ajastatud sõnumit ei saa saata. Määrake teine aeg."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Kõne ajal ei saa esitada."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Faili ei saa manustada. Fail on liiga suur. Proovige saata e-kirja, Bluetooth-ühenduse, Wi-Fi jne kaudu."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Selle multimeediumsõnumi saatmiseks loob seade ühenduse teise mobiilsidevõrguga. Sellega katkestatakse teie seadme ühendus teie hetkel kasutatava mobiilsidevõrguga."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Selle multimeediumsõnumi allalaadimiseks loob seade ühenduse teise mobiilsidevõrguga. Sellega katkestatakse teie seadme ühendus teie hetkel kasutatava mobiilsidevõrguga."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "See sõnum saadetakse uuesti."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d sonumit kustutatakse."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d vestlust kustutatakse."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Loendis ei ole malle"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Ainult saabuvad sõnumid"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Kaasa algne tekst väljuvale sõnumile"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Kestus peab olema luhem kui %d sekundit."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Kustutatud."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 sonum kustutatakse."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 kontakt kustutatakse."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Kuva üksikasjad"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Kuva kontakti üksikasjad"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Kuva slaidiseansina"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videod"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Värskenda kontakti"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Tekst"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Pildista"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Seaded"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Otsi"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Salvesta manused"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Saada uuesti"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Vasta"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Eemalda blokeeritute loendist"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Salvesta video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Salvesta\nhelifail"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Kiirvastus"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Puudub"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Tee häälkõne"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Pildid"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM-märgistik"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Ekspordi seadme mällu"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Muuda"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Kustuta sõnum"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Kustuta vestlus"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Vaikimisi"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Loo kontakt"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopeeri SIM-kaardile"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopeeri seadmesse"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopeeri tekst"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopeeri"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Varunda"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automaatne"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Helifailid"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Manus"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Lisa kontaktidesse"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Lisa blokeeritute loendisse"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Lisa adressaadid"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Otsi"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Tulemusi ei leitud"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Kiirvastuseid ei ole"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Blokeeritud fraase pole"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM-kaardil pole sõnumeid"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Sõnumeid pole"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Blokeeritud numbreid pole"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Värin"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Tundmatu number"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Tekstsõnumikeskuse number"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Vali kõik"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Märguanded"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Tõlgi"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Tekstsõnumid"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Mobiilsidevõrgu vahetamine"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS-keskus"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Seaded"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Vali adressaat"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d on valitud"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM-kaardil olevad sõnumid"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Sõnumid"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Sisestusrežiim"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Fail on liiga suur"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Sõnumi saatmine nurjus"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Loobu sõnumist"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Loomine"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Tähelepanu!"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Sisu lisamine"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Vaheta"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Salvesta"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Saada uuesti"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Eemalda"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Lae alla"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Loobu"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Kustuta"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Tühista"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Tühista"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kontaktid"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Olete valinud režiimis Heli ja võte loodud faili. MMS ei toeta heliandmeid, seega manusena lisatakse ainult pilt."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Jah"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Saatmine on ootel..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Seda sõnumit ei saa saata. Paigaldage SIM-kaart ja proovige uuesti."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tüüp:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Piiratud meediumitüüpide kasutamiseks muutke oma MMS-i loomisrežiimi seadet."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Saatmise aeg:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Vastuvõtmise aeg:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Märkeruut"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Olek:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Saadetud"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Saatm..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Saatmine nurjus"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sek."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Sõnumeid laaditakse rändluse ajal automaatselt."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Sõnumeid laaditakse automaatselt."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Lugemisraport: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Teine inimene"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Sõnum"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Nurjus"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Sisestage tekst"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Mustand"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Saateraport: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Võrguteabesõnumid"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalender"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Sõnumid kuvatakse siin pärast nende saatmist või vastuvõtmist."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kiirvastused kuvatakse siin pärast nende loomist."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Sõnumid kuvatakse siin pärast nende kopeerimist SIM-kaardile."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Fraasid kuvatakse siin pärast nende lisamist."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Numbrid kuvatakse siin pärast nende lisamist sõnumite blokeeritute loendisse."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "KUSTUTA"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Laadimine..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Teavitused"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Mina"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Saa."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Saada"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "SAADA"
+
diff --git a/main/po/eu.po b/main/po/eu.po
new file mode 100644 (file)
index 0000000..ece7609
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Etxea"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Datu ibiltaritza desgaituta dago. Gaitu datu ibiltaritza eta saiatu berriro."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Mezu berria"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "UTZI"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "EGINA"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Ezezaguna"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mugikorra"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Datu mugikorrak desgaituta daude. Gaitu datu mugikorrak eta saiatu berriro."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "BIDALI"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Media mota ez bateragarria"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Ezin izan dira mezuak bidali Hegaldi moduan. Ezgaitu Hegaldi modua eta saiatu berriz."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Ezin da birbidali.\nFitxategi birbidaltzea blokeatuta dago"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Ez dago nahikoa espazio gailuaren biltegian. Joan Ezarpenak > Bateria eta biltegia > Biltegia aukerara, ezabatu fitxategi batzuk eta saiatu berriz."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Testua goran"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Testua behean"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Aukeratu diseinua"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Ezin da edukia gehitu"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Programatutako mezua %s-(e)ri bidaliko zaio. Bidali orain?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Mezuaren tamaina maximora iritsi zara"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Bateria gutxi"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Iraupenak gutxienez %d segundo izan behar ditu"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Hegaldi modua desgaitzen..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM txartelean kopiatuta"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Ezeztatua"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Erabili beste kontaktuen info."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Honen bidez bidali"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Irudia"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Helbide elektronikoa"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Ordezkatu"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Ikusi"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Kendu"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Erreproduzitu"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Hartzailea"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Utzi mezua"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Hartzaile zerrenda"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Aurrebista"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Diapositibaren iraupena %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Itxaron elementuak diaporamara gehitzen diren bitartean"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Ezin da mezua bidali"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Aukeratu dei tonua"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Irakurritze-txostena bidaliko da"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Ez eskatua"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Gehienezko hartzaile kopurura (%d) iritsi zara"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Gaia idatzi"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Hartzaile bikoiztua"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Birbidali"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Ezin da gorde"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Ezin da kokapena aurkitu"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Ezin da ezabatu"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Ezin da kopiatu"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Baliteke karaktere batzuk galtzea.\nJarraitu?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM ez da sartu"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Errorea gordetzerakoan"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Nire fitxategietan gordeta"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Mezua berreskuratzeak huts egin du"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Eduki mota mugatua. Erantsi hala ere?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Berrezartzen..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Ezetsita"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Irakurketa txostena"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Zenbakirik gabe"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Ez dago eranskinik"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Mezu berriak"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Mezua SIM txarteletik kopiatu da"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Hartzaileen kopurua gehienez %d da. Litekeena da hainbat galtzea."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Eranskinen gehienezko kopurua (%s) gainditu duzu"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Gehienezko karaktere kopurura heldu zara"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Abian..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Abiarazten..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Ez baduzu fitxategia ordezkatu nahi, aldatu izena"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Mezu honek erakusten ez den fitxategi bat dauka"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Mezu honi erantsitako fitxategiak ez dira erakutsi"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Fitxategiaren izena dagoeneko bada"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Ezabatzen..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Arbelera kopiatu da"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Testu mezu bihurtzen..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Multimedia mezu bihurtzen..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s blokeatu?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Linean egoteko abian zaude (%s). Jarraitu?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Testu mezua"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Gaia:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Posta elektroniko bidezko bidaltzailea"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Igorlea"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Aukeratu"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Eranskina gorde"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Gorde"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Kendu"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instalatu"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Birbidali"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Mezua editatu"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Ezabatu?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Ezabatu mezuak"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Aukeratu mezuak"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Denak gorde"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Mezuari buruzko xehetasunak"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Iraungitzea: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Bilaketa aurreratua"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Gorde eranskin denak"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Ezezaguna"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Nori:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Testu mezuak"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM memoria beteta. Ezabatu elementu batzuk."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Ezarpenak"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Bidalia:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Eskatuta"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Hartzaileak"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Jasoa:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Jasota"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Irakurketa txostena"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Difusio mezuak"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d mezu"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d hizketaldi"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Besterik"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Gairik gabe"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Izenik gabe"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Multimedia mezuaren jakinarazpena"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimedia mezua"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Irakurri"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Mezua ukatu egin da"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Mezu tamaina"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Mezu aukerak"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Mezua bidali da"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Mezua"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Nik\r "
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Eranskinen gehienezko kopurua (%1$s) gainditu duzu. Lehenengo %2$s-ak soilik gehituko dira."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Hartzaile baliogabea"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Nork"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Igorlea:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Iraungia"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Bidaltzerakoan akatsa"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Banaketa txostena"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP mezuak"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopiatu testua"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB mezuak"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Guztiak"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "Mezu 1"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "Hizketaldi 1"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Eskatu irakurketa txostena bidaltzen duzun mezu bakoitzarekin"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Eskatu bidalketa txostena bidaltzen duzun mezu bakoitzarekin"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Irratiaren botoia"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Pizteko/itzaltzeko botoia"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Zerrenda zabalgarria"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Berreskuratu MMS mezuak automatikoki"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Ezin da fitxategiaren aurrebista ikusi. Fitxategi mota hau ez da onartzen."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Ezin dira hainbat hartzaile gehitu. Zenbakiak baliogabeak dira."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Ezin da hartzailea gehitu. Zenbakia baliogabea da."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Ezin dira hartzaileak gehitu. Zenbakiak baliogabeak dira."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Ezin da eranskina gehitu. Eranskinen gehieneko kopurura (%d) iritsi zara."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Zenbaki honek ez du balio."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Hautatutako mezuak gailu mugikorrean kopiatuko dira."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d mezu zerrendara mugitu dira."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Zenbakia mezuen blokeo zerrendatik kendu da."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Zenbakia mezuen blokeo zerrendara gehitu da."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Mezua %s SIM txartelean kopiatu da."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Gehieneko karaktere kopurua gainditu da."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Mezuen gehieneko neurria (%s) gainditu duzu. Eranskinen neurria aldatzen..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Karaktere baliogabea sartu duzu."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Gehitu hartzaileak."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "Mezu 1 mezu zerrendara mugitu da."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Testu mezuak"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Soinua"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimedia mezuak"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM txarteleko mezuak"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Sarrera modua"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Berreskuratu aut. ibiltaritzan"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Berreskuratu automatikoki"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Bid. or."
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Ez"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Hautatu mezuak idazteko sarrera modua."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Bat ere ez"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Kudeatu SIM txartelean gordetako mezuak."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Zure mezua baztertuko da. Ez da hartzailerik hautatu."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Ezin da programatutako mezua bidali. Ezarri beste ordu bat."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Ezin da deian zehar erreproduzitu"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Ezin izan da fitxategia atxiki. Handiegia da. Saiatu posta elektroniko, Bluetooth, Wi-Fi, eta abarren bidez bidaltzen"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Multimedia mezu hau bidaltzeko, gailua beste sare mugikor batera konektatuko da. Horrek gailua sare mugikor honetatik deskonektatuko du."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Multimedia mezu hau deskargatzeko, gailua beste sare mugikor batera konektatuko da. Horrek gailua sare mugikor honetatik deskonektatuko du."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Mezu hau berriz erabiliko da."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d mezu ezabatuko dira"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d hizketaldi ezabatuko dira."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Txantiloirik ez zerrendan"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Sarrera mezuak soilik"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Txertatu jatorrizko testua irteera mezuan"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Iraupena %d segundokoa baino laburragoa izan behar da"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Ezabatua"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "Mezu 1 ezabatuko da"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Hizketaldi 1 ezabatuko da."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Ikusi xehetasunak"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Ikusi kontaktu xehetasunak"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Ikusi diaporama bezala"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Bideoak"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Eguneratu kontaktua"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Testua"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Atera argazkia"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Ezarpenak"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Bilatu"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Gorde eranskinak"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Birbidali"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Erantzun"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Kendu blokeo zerrendatik"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Grabatu bideoa"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Grabatu audio fitxategia"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Erantzun azkarra"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Bat ere ez"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Egin ahots deia"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Irudiak"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM alfabetoa"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Esportatu gailuaren memoriara"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Editatu"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Ezabatu mezua"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Ezabatu elkarrizketa"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Lehenetsia"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Sortu kontaktua"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopiatu SIM txartelean"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopiatu gailura"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopiatu testua"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopiatu"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Babes kopia"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatikoa"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Audio fitxategiak"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Eranskina"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Gehitu Kontaktuetara"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Gehitu blokeo zerrendara"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Gehitu hartzaileak"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Bilatu"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Ez da emaitzarik aurkitu"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Erantzun azkarrik ez"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Ez dago blokeatutako esaldirik"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Ez dago mezurik SIM txartelean"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Ez dago mezurik"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Ez dago blokeatutako zenbakirik"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Bibrazioa"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Zenbaki ezezaguna"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Testu mezu zentroko zenbakia"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Hautatu denak"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alertak"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Itzuli"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Testu mezuak"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Aldatu sare mugikorra"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS zentroa"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Ezarpenak"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Aukeratu hartzailea"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d hautatuta"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM txarteleko mezuak"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Mezuak"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Sarrera modua"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Fitxategia handiegia da"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Ezin da mezua bidali"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Baztertu mezua"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Sortu"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Oharra"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Gehitu edukia"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Aldatu"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Gorde"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Birbidali"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Kendu"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "Ados"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Deskargatu"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Baztertu"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Ezabatu"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Utzi"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Utzi"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kontaktuak"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Sound & shot fitxategia hautatu duzu. MMS-ek ez dituzte soinu datuak onartzen; beraz, argazkia soilik erantsiko da."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Bai"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Bidaltzeko zain..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Ezin da mezu hau bidali. Txertatu zure SIM txartela eta saiatu berriz."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Mota:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Mugatutako multimedia mota erabiltzeko, aldatu zure MMS sorrera moduaren ezarpena"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Bidalketa ordua:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Jasotze ordua:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Markatze laukia"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Egoera:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Bidalita"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Bidaltzen"
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Bidalketak huts egin du"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "seg"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Berreskuratu mezuak automatikoki ibiltaritzan."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Berreskuratu mezuak automatikoki."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Irakurketa txostena: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Beste pertsona bat"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Mezua"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memoranduma"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Hutsa"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Adierazi testua"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Zirrib."
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Bidalketa txostena: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB mezua"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Egutegia"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Mezuak bidali edo jaso ondoren, hemen erakutsiko dira."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Erantzun azkarrak sortu ondoren, hemen erakutsiko dira."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Mezuak SIM txartelean kopiatu ondoren, hemen erakutsiko dira."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Esaldiak gehitu ondoren, hemen erakutsiko dira."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Mezuen blokeo zerrendara zenbakiak gehitu ondoren, hemen erakutsiko dira."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "EZABATU"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Kargatzen..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Jakinarazpenak"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Nik\r "
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Bidali"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Bid."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "BID."
+
diff --git a/main/po/fa.po b/main/po/fa.po
new file mode 100644 (file)
index 0000000..5604366
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "منزل"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "رومینگ داده غیرفعال است. رومینگ داده را فعال کرده و دوباره امتحان کنید."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "پيام جديد"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "لغو"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "انجام شد"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "ناشناس"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "موبايل"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "داده تلفن همراه غیرفعال است. داده تلفن همراه را فعال کرده و دوباره امتحان کنید."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ارسال"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "رسانه اشتباه است."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "هنگامی که حالت پرواز را فعال کرده اید ارسال پیام ممکن نیست. حالت پرواز را غیرفعال کرده و دوباره امتحان کنید."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Unable to forward.\nFile is forward locked"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "فضای کافی در محل ذخیره دستگاهتان وجود ندارد. به تنظیمات > نیرو و محل ذخیره > محل ذخیره بروید، چند فایل را حذف کرده و دوباره امتحان کنید."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "متن در بالا"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "متن در پایین"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "انتخاب صفحه آرایی"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "افزودن محتوا ممکن نیست."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "پیام، برای ارسال به %s تنظیم شده است. اکنون ارسال شود؟"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "اندازه پیام به حداکثر مجاز رسیده است."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "باطری ضعيف است."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "مدت زمان باید حداقل %d ثانیه باشد."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "درحال غیرفعال کردن حالت پرواز..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "در سیم کارت کپی شد."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "لغو شد."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "استفاده از اطلاعات تماس دیگر"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "ارسال با"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "تصوير"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ایمیل"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "جایگزینی"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "نمايش"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "حذف"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "پخش"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "به"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "لغو پیام"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "فهرست گيرنده"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "پیش نمایش"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "مدت زمان اسلاید %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "صبر کنید تا موارد به نمایش اسلاید اضافه شوند."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "ارسال پیام ممکن نیست."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "انتخاب آهنگ زنگ"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "گزراش خواندن ارسال می‌شود."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "درخواست نشده است"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "تعداد گیرندگان (%d) به حداکثر مقدار خود رسیده است."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "عنوان را وارد کنيد."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "گیرنده تکراری است."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "هدایت"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "ذخیره ممکن نیست."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "یافتن مکان امکان پذیر نیست."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "حذف ممکن نیست."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "کپی ممکن نیست."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "امکان از دست رفتن بعضی از کاراکترها وجود دارد.ادامه؟"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "سیم وارد نشده است."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "ذخیره سازی ناموفق بود."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "در فایل‌های من ذخیره شد."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "بازیابی پیام انجام نشد"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "نوع محتوا محدود شده است. با این حال پیوست شود؟"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "در حال بازیابی..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "رد شد."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "گزارش خواندن"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "بدون شماره"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "بدون پیوست"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "پیام جدید"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "پیام از سیم کارت کپی شد."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "حداکثر تعداد مجاز گیرندگان، %d است. برخی از گیرندگان حذف می شوند."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "از حداکثر تعداد مجاز پیوست ها (%s) فراتر رفته‌اید."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "تعداد کاراکترها به حداکثر رسیده است."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "در جریان..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "آماده سازی لیست"
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "اگر نمی خواهید فایل جایگزین شود، نام آن را تغییر دهید."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "این پیام شامل یک فایل پیوستی نشان داده نشد."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "این پیام شامل فایلهای پیوستی نشان داده نشد."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "نام فایل از قبل وجود دارد."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "در حال حذف..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "در کلیپ بورد کپی شد."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "تبدیل به پیام متنی..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "تبدیل به پیام چندرسانه ای..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s مسدود شود؟"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "شما در حال آنلاین شدن هستید(%s).ادامه؟"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "پیام متنی"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "موضوع:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ارسال کننده از طریق ایمیل"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "ارسال کننده"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "انتخاب"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "ذخیره پیوست"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "ثبت"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "حذف"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "نصب"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "هدایت"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "تصحیح پیام"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "حذف شود؟"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "حذف پیام ها"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "انتخاب پیام ها"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "ذخیره همه"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "جزئیات پیام"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "تاریخ انقضا: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "جستجوی پیشرفته"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "ذخیره همه پیوست ها"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "ناشناس"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "گیرنده:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "پیام متنی"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "حافظه سیم پر است. برخی از موارد را حذف کنید."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "تنظيمات"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "ارسال شده:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "درخواست شد."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "گيرندگان"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "دریافت شده:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "دریافت شد."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "گزارش خواندن"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "پيام وپ"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d پیام"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d گفتگو"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "متفرقه"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "بدون موضوع"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "بدون نام"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "اعلان پیام چندرسانه ای"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "پیام چندرسانه ای"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "کیلوبایت"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "خواندن"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "رد شد."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "پیام چندرسانه ای"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "سايز پيام"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "امکانات پیام"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "ارسال شد"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "پيام"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "من"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "تعداد پیوست ها (%1$s) به حداکثر رسیده است. ابتدا %2$s اول اضافه خواهد شد."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "گیرنده نامعتبر است."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "از"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "از:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "اتمام اعتبار"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "ارسال انجام نشد."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "گزارش تحویل"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "پیام های CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "کپی متن"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "پیام پخش سلولی"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "همه"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 پیام"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 گفتگو"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "درخواست گزارش خواندن برای هر پیامی که ارسال می کنید"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "درخواست گزارش تحویل برای هر پیامی که ارسال می کنید"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "دکمه رادیویی"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "دکمه روشن/خاموش"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "لیست قابل گسترش"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "بازیابی پیام های چندرسانه ای به طور خودکار"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "پیش‌نمایش فایل ممکن نیست. نوع فایل پشتیبانی نمی‌شود."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "افزودن برخی از گیرندگان ممکن نیست. شماره‌ها معتبر نیستند."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "افزودن گیرنده ممکن نیست. شماره معتبر نیست."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "افزودن گیرندگان ممکن نیست. شماره‌ها معتبر نیستند."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "افزودن پیوست ممکن نیست. تعداد پیوست‌ها به حداکثر (‎%d) رسیده است."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "شماره معتبر نیست."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "پیام‌های انتخابی به دستگاه تلفن همراه کپی شد."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "‎%d پیام به فهرست پیام‌ها انتقال یافت."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "شماره از فهرست انسداد پیام حذف شد."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "شماره به فهرست انسداد پیام اضافه شد."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "پیام در ‎%s سیم‌کارت کپی شد."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "تعداد نویسه‌ها از حداکثر مجاز فراتر رفته است."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "اندازه پیام از حداکثر مجاز (‎%s) بیشتر است. در حال تغییر اندازه پیوست‌ها..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "نویسه نامعتبر وارد شد"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "گیرندگان را اضافه کنید."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "۱ پیام به لیست پیام‌ها انتقال یافت."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "پیام‌های متنی"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "صدا"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "پیام‌های چندرسانه‌ای"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "پیامی روی سیم‌کارت وجود ندارد"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "حالت ورودی"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "بازیابی خودکار هنگام رومینگ"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "بازيابی خودکار"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "ارسال حالا"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "خیر"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "حالت ورودی را برای ایجاد پیام انتخاب کنید."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "هیچکدام"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "پیام‌های ذخیره شده در سیم‌کارت را مدیریت کنید."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "پیام شما کنار گذاشته خواهد شد. هیچ گیرنده‌ای انتخاب نشده است."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "پیام زمان بندی شده ارسال نمی‌شود. یک زمان دیگر تنظیم کنید."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "پخش در حین تماس ممکن نیست."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "نمی توانید فایل را پیوست کنید. اندازه فایل بسیار بزرگ است. سعی کنید از طریق ایمیل، بلوتوث، Wi-Fi, و غیره ارسال کنید."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "برای ارسال این پیام چندرسانه‌ای، دستگاه به شبکه تلفن همراه دیگری متصل خواهد شد. این کار اتصال دستگاه شما را با شبکه تلفن همراه کنونی قطع می‌کند."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "برای دانلود کردن این پیام چندرسانه‌ای، دستگاه به شبکه تلفن همراه دیگری متصل خواهد شد. این کار اتصال دستگاه شما را با شبکه تلفن همراه کنونی قطع می‌کند."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "این پیام دوباره ارسال خواهد شد."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d پیامها حذف می‌شوند."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d گفتگو حذف خواهد شد"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "الگویی در لیست موجود نیست"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "فقط پیام های ورودی"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "شامل متن اصلی پیام خروجی"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "مدت باید کمتر از %d ثانیه باشد."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "حذف شد."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 پیام حذف می‌شود."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "۱ مکالمه حذف خواهد شد."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "مشاهده جزئیات"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "مشاهده جزئیات مخاطب"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "مشاهده به صورت نمایش اسلاید"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "فیلمها"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "به‌روزرسانی مخاطب"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "یونیکد"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "متن"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "عکس گرفتن"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "تنظيمات"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "جستجو"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "ذخیره پیوست ها"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "ارسال"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "پاسخ"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "حذف از فهرست مسدود"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "ضبط ویدیو"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "ضبط فایل صوتی"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "پاسخ سریع"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "هيچيک"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "برقراری تماس صوتی"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "تصاوير"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "الفبای GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "صادر کردن به حافظه دستگاه"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "ویرایش"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "حذف پیام"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "حذف مکالمه"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "حذف"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "پيش فرض"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "ایجاد مخاطب"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "کپی کردن در سیم‌کارت"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "کپی در دستگاه"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "کپی متن"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "کپی"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "پشتیبان گیری"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "خودکار"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "فایل‌های صوتی"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "پیوست"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "افزودن به مخاطبین"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "افزودن به لیست مسدود"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "افزودن گیرندگان"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "جستجو"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "نتیجه‌ای یافت نشد"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "پاسخ سریع وجود ندارد"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "هیچ عبارتی مسدود نشده است"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "پیامی روی سیم کارت وجود ندارد"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "پیامی وجود ندارد"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "شماره مسدودی وجود ندارد"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "لرزاننده"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "شماره ناشناس"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "شماره مرکز پیام متنی"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "انتخاب همه"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "هشدارها"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "ترجمه"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "پیام‌های متنی"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "تغییر شبکه تلفن همراه"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "مرکز پیامک"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "تنظيمات"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "انتخاب گیرنده"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "‎%d انتخاب شد"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "پیامی روی سیم‌کارت وجود ندارد"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "پيام ها"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "حالت ورودی"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "اندازه فایل بسیار بزرگ است"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "ارسال پیام ناموفق بود"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "کنار گذاشتن پیام"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "حذف"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "ایجاد کردن"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "توجه"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "افزدون محتوا"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "تغییر وضعیت"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "ذخیره"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "ارسال مجدد"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "حذف"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "تأیید"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "دانلود"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "کنارگذاشتن"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "حذف"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "لغو"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "لغو کردن"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "مخاطبين"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "شما یک فایل صدا و یک تصویر انتخاب کرده اید. اطلاعات صدا برای پیام چندرسانه ای قابل پشتیبانی نیست و بنابراین تنها تصویر پیوست خواهد شد."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "بلی"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "انتظار برای ارسال..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "این پیام ارسال نمی شود. سیم کارت خود را وارد کرده و دوباره امتحان کنید."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "نوع:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "برای استفاده از انواع رسانه محدود شده، تنظیم حالت ایجاد MMS خود را تغییر دهید."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "زمان ارسال:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "زمان دریافت:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "کادر انتخاب"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "وضعیت:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "ارسال شد"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "ارسال..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "ارسال ناموفق بود"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "ثانيه"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "هنگام رومینگ، پیام‌ها را به طور خودکار بازیابی کنید."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "پیام‌ها را به طور خودکار بازیابی کنید."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "گزارش خواندن: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "فرد دیگر"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "پيام"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "یادداشت"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "ناموفق"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "وارد کردن متن"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "پیش‌نویس"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "گزارش تحویل: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "پیام CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "تقویم"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "پس از اینکه پیام‌ها را ارسال یا دریافت کردید، اینجا نمایش داده می‌شوند."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "پس از اینکه پاسخ‌های سریع را ایجاد کردید، اینجا نمایش داده می‌شوند."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "پس از کپی کردن پیام‌ها در سیم‌کارت، اینجا نمایش داده می‌شوند."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "پس از اینکه عبارات را اضافه کردید، اینجا نمایش داده می‌شوند."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "پس از اینکه شماره‌ها را به فهرست رد پیام اضافه کردید، اینجا نمایش داده می‌شوند."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "حذف"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "در حال دانلود..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "اعلانها"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "من"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "ارسال"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "ارسال"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ارسال"
+
diff --git a/main/po/fi.po b/main/po/fi.po
new file mode 100644 (file)
index 0000000..f40796b
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Koti"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Dataverkkovierailu on poistettu käytöstä. Ota dataverkkovierailu käyttöön ja yritä uudelleen."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Uusi viesti"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "PERUUTA"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "VALMIS"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Tuntematon"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Matkapuhelin"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobiilidata on poistettu käytöstä. Ota mobiilidata käyttöön ja yritä uudelleen."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "LÄHETÄ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Mediatyyppiä ei tueta."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Viestejä ei voi lähettää lentotilassa. Poista lentotila käytöstä ja yritä uudelleen."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Ei voi lähettää edelleen.\nTiedoston edelleenlähetys on estetty"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Laitteen muistissa ei ole tarpeeksi tilaa. Valitse Asetukset > Virta ja tallennus > Tallennus, poista joitain tiedostoja ja yritä uudelleen."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Teksti ylös"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Teksti alas"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Valitse asettelu"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Sisältöä ei voi lisätä."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Viesti on ajoitettu lähetettäväksi vastaanottajalle %s. Lähetetäänkö nyt?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Viestin enimmäiskoko on saavutettu."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Akku on loppumassa."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Keston on oltava vähintään %d sekuntia."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Lentotila poistetaan käytöstä..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Kopioitu SIM-kortille."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Peruutettu."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Käytä muita yht.tiet."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Lähetä käyttäen"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Kuva"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Sähköposti"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Korvaa"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Näytä"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Poista"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Toista"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Vastaanottaja"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Peruuta viesti"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Vastaanottajalista"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Esikatselu"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Dian %d/%d kesto"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Odota, kunnes kohteet on lisätty kuvaesitykseen."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Viestiä ei voi lähettää."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Valitse soittoääni"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Lukuraportti lähetetään."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Ei pyydetty"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Vastaanottajien enimmäismäärä (%d) on saavutettu."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Anna aihe."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Vastaanottaja esiintyy kahdesti."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Siir."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Tallennus epäonnistui."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Sijaintia ei löydy."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Ei voi poistaa."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Ei voi kopioida."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Joitakin merkkejä voi kadota.\nJatketaanko?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM-korttia ei ole asetettu."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Tallentaminen epäonnistui."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Tallennettu Omat tiedostot -kansioon."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Viestin nouto epäonnistui"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Rajoitettu sisältötyyppi. Liitetäänkö silti?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Palautetaan..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Hylätty."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Lukuraportti"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Ei numeroa"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Ei liitteitä"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Uudet viestit"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Viesti on kopioitu SIM-kortilta."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Vastaanottajien enimmäismäärä on %d. Jotkin vastaanottajat voivat kadota."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Liitteiden enimmäismäärä (%s) on ylitetty."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Merkkien enimmäismäärä saavutettu."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Kesken..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Valmistellaan..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Jos et halua korvata tiedostoa, nimeä se uudelleen."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Tähän viestiin sisältyy liitetiedosto, jota ei näytetä."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Tähän viestiin sisältyy liitetiedostoja, joita ei näytetä."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Tiedostonimi on jo käytössä."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Poistetaan..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Kopioitu leikepöydälle."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Muunnetaan tekstiviestiksi..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Muunnetaan multimediaviestiksi..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Estetäänkö %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Olet siirtymässä online-tilaan (%s). Jatketaanko?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Tekstiviesti"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Aihe:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Lähettäjä sähköpostiviestinä"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Lähettäjä"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Valitse"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Tallenna liite"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Tallenna"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Poista"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Asenna"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Lähetä edelleen"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Muokkaa viestiä"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Poistetaanko?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Poista viestit"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Valitse viestit"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Tallenna kaikki"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Viestin tiedot"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Vanhentuu: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Tarkennettu haku"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Tall. kaikki liitt."
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Tuntematon"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Saaja:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Tekstiviestit"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM-muisti täynnä. Poista joitain kohteita."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Asetukset"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Lähetetty:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Pyydetty."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Vastaanottajat"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Vastaanotettu:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Vastaanotettu."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Lukuraportti"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Palveluviestit"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d viestiä"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d keskustelua"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Muu"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Ei aihetta"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Ei nimeä"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Multimediaviesti-ilmoitus"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimediaviesti"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "kt"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Lue"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Viesti hylätty."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "Multimediaviesti"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Viestin koko"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Viestivaihtoehdot"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Viesti toimitettu"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Viesti"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Minä"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Liitteiden enimmäismäärä (%1$s) on ylitetty. Vain ensimmäiset %2$s liitettä lisätään."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Virheellinen vast.ottaja"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Lähettäjä"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Lähettäjä:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Vanhentunut"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Lähetys epäonnistui."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Toimitusraportti"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP-viestit"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopioi teksti"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB-viestit"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Kaikki"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 viesti"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 keskustelu"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Pyydä jokaisesta lähetetystä viestistä lukuraportti."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Pyydä jokaisesta lähetetystä viestistä toimitusraportti."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Valintanappi"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Virtapainike"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Laajennettava luettelo"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Hae multimediaviestit automaattisesti."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Tiedostoa ei voi esikatsella. Tiedostotyyppiä ei tueta."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Joitakin vastaanottajia ei voi lisätä. Numerot eivät kelpaa."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Vastaanottajaa ei voi lisätä. Numero ei kelpaa."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Vastaanottajia ei voi lisätä. Numerot eivät kelpaa."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Liitettä ei voi lisätä. Liitteiden enimmäismäärä (%d) on saavutettu."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Tämä numero ei kelpaa."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Valitut viestit kopioidaan mobiililaitteeseen."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d viestiä siirretty viestiluetteloon."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Numero poistettu viestien estoluettelosta."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Numero lisätty viestien estoluetteloon."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Viesti kopioitu SIM-kortille %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Merkkien enimmäismäärä on ylitetty."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Viestin enimmäiskoko (%s) on ylitetty. Muutetaan liitteiden kokoa..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Annettu virheellinen merkki."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Lisää vastaanottajia."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 viesti siirretty viestiluetteloon."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Tekstiviestit"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Ääni"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimediaviestit"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM-kortilla olevat viestit"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Syöttötila"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Hae autom. verkkovier. aikana"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Hae automaattisesti"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Läh. nyt"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Ei"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Valitse syöttötila viestien kirjoittamista varten."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Ei mitään"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Hallitse SIM-kortille tallennettuja viestejä."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Viesti hylätään. Vastaanottajia ei ole valittu."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Ajoitettua viestiä ei voi lähettää. Määritä toinen aika."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Puhelun aikana ei voi toistaa."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Tiedostoa ei voi liittää. Tiedostokoko on liian iso. Yritä lähettää esimerkiksi sähköpostitse, Bluetoothilla tai Wi-Fi-yhteyden välityksellä."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Laite muodostaa yhteyden toiseen matkapuhelinverkkoon tämän multimediaviestin lähettämistä varten. Laitteen yhteys nykyiseen matkapuhelinverkkoon katkaistaan."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Laite muodostaa yhteyden toiseen matkapuhelinverkkoon tämän multimediaviestin lataamista varten. Laitteen yhteys nykyiseen matkapuhelinverkkoon katkaistaan."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Tämä viesti lähetetään uudelleen."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d viestiä poistetaan."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d keskustelua poistetaan."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Luettelossa ei ole malleja"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Vain saapuvat viestit"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Sisällytä alkuperäinen teksti lähtevään viestiin"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Keston on oltava vähemmän kuin %d sekuntia."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Poistettu."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 viesti poistetaan."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 keskustelu poistetaan."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Näytä tiedot"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Näytä yhteystiedot"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Näytä diaesityksenä"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videot"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Päivitä yhteystieto"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode-merkistö"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Teksti"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Ota kuva"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Asetukset"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Hae"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Tallenna liitteet"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Lähetä uudelleen"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Vastaa"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Poista estoluettelosta"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Tallenna video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Tallenna äänitiedosto"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Pikavastaus"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Ei mitään"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Soita äänipuhelu"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Kuvat"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM-merkistö"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Vie laitteen muistiin"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Muokkaa"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Poista viesti"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Poista keskustelu"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Poista"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Oletus"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Luo yhteystieto"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopioi SIM-kortille"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopioi laitteeseen"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopioi teksti"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopioi"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Varmuuskopioi"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automaattinen"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Äänitiedostot"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Liite"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Lisää yhteystietoihin"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Lisää estoluetteloon"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Lisää vastaanottajia"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Hae"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Tuloksia ei löytynyt"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Pikavastauksia ei ole"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Estettyjä ilmauksia ei ole"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM-kortilla ei ole viestejä"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Ei viestejä"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Estettyjä numeroita ei ole"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Värinä"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Tuntematon numero"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Tekstiviestikeskuksen numero"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Valitse kaikki"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Hälytykset"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Käännä"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Tekstiviestit"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Vaihda matkapuhelinverkko"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Tekstiv.keskus"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Asetukset"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Valitse vastaanottaja"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d valittu"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM-kortilla olevat viestit"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Viestit"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Syöttötila"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Tiedostokoko on liian suuri"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Viestin lähetys epäonnistui"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Hylkää viesti"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Poista"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Luo"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Huomio"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Lisää sisältöä"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Vaihda"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Tallenna"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Lähetä uud."
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Poista"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Lataa"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Hylkää"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Poista"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Peruuta"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Peruuta"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Yhteys-\ntiedot"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Olet valinnut ääni ja kuva -tiedoston. Multimediaviestit eivät tue äänitietoja, joten vain kuva lisätään."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Kyllä"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Odotetaan lähettämistä..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Tätä viestiä ei voi lähettää. Aseta SIM-kortti ja yritä uudelleen."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tyyppi:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Muuta multimediaviestien luontitilan asetusta, jos haluat käyttää rajoitettuja mediatyyppejä."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Lähetysaika:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Vastaanottoaika:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Valintaruutu"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Tila:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Lähetetty"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Lähetys..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Lähetys epäonnistui"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "s"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Hae viestit automaattisesti verkkovierailun aikana."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Hae viestit automaattisesti."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Lukuraportti: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Muu henkilö"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Viesti"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Muistio"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Epäonn."
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Anna teksti"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Luonnos"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Toimitusraportti: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Tiedoteviesti"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalenteri"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kun olet lähettänyt tai vastaanottanut viestejä, ne näytetään täällä."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kun olet luonut pikavastauksia, ne näytetään täällä."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kun olet kopioinut viestit SIM-kortille, ne näytetään täällä."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kun olet lisännyt ilmaukset, ne näytetään täällä."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kun olet lisännyt numeroita viestien estoluetteloon, ne näytetään täällä."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "POISTA"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Ladataan..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Ilmoitukset"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Minä"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Läh."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Lähetä"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "LÄHETÄ"
+
diff --git a/main/po/fr.po b/main/po/fr.po
new file mode 100644 (file)
index 0000000..78de393
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Domicile"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "L'itinérance des données est désactivée. Activez l'itinérance des données et réessayez."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nouveau message"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULER"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobile"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Les données mobiles sont désactivées. Activez les données mobiles et réessayez."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ENVOYER"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Type de support non pris en charge"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Impossible d'envoyer des messages en mode Hors-ligne. Désactivez le mode Hors-ligne et réessayez."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Transfert impossible.\nLe transfert du fichier est interdit"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Espace insuffisant sur votre appareil. Accédez à Paramètres > Alimentation et stockage > Stockage, supprimez des fichiers, puis réessayez."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Texte au premier plan"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Texte en bas"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Sélectionner une mise en forme"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Impossible d'ajouter du contenu."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Message devant être envoyé à %s. Envoyer maintenant ?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Taille maximum de message atteinte"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Batterie faible"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "La durée est d'au moins %d secondes."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Désactivation du mode Hors-ligne..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copié vers la carte SIM"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Annulé"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Util autr. infos cont."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Envoyer via"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Image"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Email"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Remplacer"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Afficher"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Supprimer"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Lire"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "A"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Annuler le message"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Liste des destinataires"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Aperçu"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Durée de la diapositive %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Veuillez patienter pendant l'ajout des éléments au diaporama."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Impossible d'envoyer le message."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Sélectionner sonnerie"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Une confirmation de lecture sera envoyée."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Non demandé"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Nombre maximum de destinataires (%d) atteint"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Saisir un objet"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Destinataire en double"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Transf."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Enregistrement impossible"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Localisation introuvable"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Suppression impossible"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Copie impossible"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Certains caractères risquent d'être perdus. Continuer ?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "Carte SIM non insérée"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Échec de l'enregistrement."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Enregistré dans Mes fichiers"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Échec de la récupération du message"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Type de contenu restreint. Joindre quand même ?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Restauration..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rejeté"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Confirmation de lecture"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Aucun numéro"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Pas de pièce jointe"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nouveaux messages"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Message copié à partir de la carte SIM"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Le nombre maximum de destinataires est %d. Certains destinataires peuvent être perdus."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Nombre maximum de pièces jointes (%s) dépassé"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Nb max de caractères atteint"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "En cours..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Initialisation en cours..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Si vous ne souhaitez pas remplacer le fichier, renommez-le."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Ce message comporte une pièce jointe non affichée."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Ce message inclut les fichiers joints non affichés."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Nom de fichier déjà utilisé."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Suppression..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Copié dans le Presse-papier"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Conversion en SMS..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Conversion en MMS..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Bloquer %s ?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Connexion imminente (%s). Continuer ?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Objet :"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Expéditeur par e-mail"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Expéditeur"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Sélectionner"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Enregistrer la pièce jointe"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Enregistrer"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Supprimer"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Installer"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Transférer"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Modifier le message"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Supprimer ?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Supprimer les messages"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Sélectionner des messages"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Tout enreg."
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Détails du message"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Expiration : %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Recherche avancée"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Enregistrer ttes PJ"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "À :"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Carte SIM saturée. Supprimez certains éléments."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Paramètres"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Envoyé :"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "En attente"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Destinataires"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Reçu :"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Reçu(s)"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Confirmation de lecture"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Messages Push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d messages"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d conversations"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Autre"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Aucun objet"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Aucun nom"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Notification de message MMS"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "Ko"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Lire"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Message rejeté"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Taille message"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Options de message"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Message remis"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Moi"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Nombre maximum de pièces jointes (%1$s) dépassé. Seuls les premiers %2$s seront ajoutés."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Destinataire non valide"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "De :"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "La date a expiré."
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Échec de l'envoi."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Accusé de réception"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Messages CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copier le texte"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Messages de diffusion"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Tout"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversation"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Demander une confirmation de lecture pour chaque message envoyé."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Demander un accusé de réception pour chaque message envoyé."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Touche radio"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Bouton d'activation/désactivation"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Liste déroulante"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Récupérer automatiquement les messages MMS."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Impossible de visualiser le fichier. Type de fichier non pris en charge."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Impossible d'ajouter des destinataires. Leurs numéros ne sont pas valides."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Impossible d'ajouter le destinataire. Son numéro n'est pas valide."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Impossible d'ajouter les destinataires. Leurs numéros ne sont pas valides."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Impossible d'ajouter la pièce jointe. Nombre maximum de pièces jointes (%d) atteint."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Ce numéro n'est pas valide."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Messages sélectionnés copiés vers l'appareil mobile."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d messages ont été déplacés dans la liste des messages."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Le numéro a été supprimé de la liste des messages bloqués."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Le numéro a été ajouté à la liste des messages bloqués."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Le message a été copié sur la carte SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Le nombre maximal de caractères a été dépassé."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "La taille de message maximale (%s) a été dépassée. Redimensionnement des pièces jointes..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Le caractère saisi n'est pas valide."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Ajouter destinataires."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 message a été déplacé dans la liste des messages."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Son"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "MMS"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Messages sur la carte SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Mode de saisie"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Récup. automatiq. en itinérance"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Récupération automatique"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Envoyer"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Non"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Sélectionnez le mode de saisie pour rédiger les messages."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Aucune"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Gérez les messages stockés sur votre carte SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Votre message va être annulé. Aucun destinataire n'a été sélectionné."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Impossible d'envoyer un message programmé. Définissez un autre horaire."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Lecture impossible pendant un appel"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Impossible de joindre le fichier. Fichier trop volumineux. Essayez de l'envoyer par e-mail, Bluetooth, Wi-Fi, etc."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Pour envoyer ce MMS, l'appareil va se connecter à un autre réseau mobile. Votre appareil va donc être déconnecté du réseau mobile actuel."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Pour télécharger ce MMS, l'appareil va se connecter à un autre réseau mobile. Votre appareil va donc être déconnecté du réseau mobile actuel."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Ce message sera renvoyé."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d messages seront supprimés."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d conversations seront supprimées."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Aucun modèle dans la liste"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Messages entrants uniquement"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Inclure le texte d'origine dans le message sortant"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "La durée doit être inférieure à %d secondes."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Supprimé"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 message sera supprimé."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 conversation va être supprimée."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Afficher les détails"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Afficher détails du contact"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Afficher en tant que diaporama"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Vidéos"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Mettre à jour le contact"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Texte"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Photographier"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Paramètres"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Rechercher"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Enregistrer les pièces jointes"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Renvoyer"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Répondre"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Supprimer de la liste bloquée"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Enregistrer une vidéo"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Enregistrer un fichier audio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Réponse rapide"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Aucun(e)"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Effectuer un appel vocal"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Images"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alphabet GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Exporter vers la mémoire du périphérique"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Modifier"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Supprimer le message"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Supprimer la conversation"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Par défaut"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Créer un contact"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copier sur la carte SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copier sur l'appareil"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copier le texte"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copier"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Sauvegarder"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatique"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Fichiers audio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Pièce jointe"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Ajouter aux contacts"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Ajouter à la liste bloquée"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Ajouter des destinataires"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Rechercher"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Aucun résultat trouvé"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Aucune réponse rapide"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Aucune phrase bloquée"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Aucun message sur la carte SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Aucun message"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Aucun numéro bloqué"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibreur"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Numéro inconnu"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Numéro du centre SMS"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Sélectionner tout"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alertes"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Traduire"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "SMS"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Changer de réseau mobile"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Centre SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Paramètres"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Sélectionner un destinataire"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Sélection : %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Messages sur la carte SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Messages"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Mode de saisie"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Fichier trop volumineux"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Imp. d'envoyer le message"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Ignorer le message"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Créer"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Attention"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Ajouter du contenu"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Changer"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Enregistrer"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Renvoyer"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Supprimer"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Télécharg."
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Ignorer"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Supprimer"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Annuler"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Annuler"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contacts"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Vous avez sélectionné un fichier Son & prise. Les données audio n'étant pas prises en charge pour les MMS, seule la photo sera jointe."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Oui"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "En attente d'envoi..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Impossible d'envoyer ce message. Insérez votre carte SIM, puis réessayez."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Type :"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Pour utiliser des types de médias restreints, modifiez le paramètre du mode de création MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Heure de l'envoi :"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Heure de réception :"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Cocher la case"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Statut :"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Envoyé"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Envoi..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Échec de l'envoi"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sec"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Récupérez automatiquement les messages en itinérance."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Récupérez automatiquement les messages."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Confirmation de lecture : %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Autre personne"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Mémo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Échec"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Entrez du texte"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Brouillon"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Accusé de réception : %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Message CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendrier"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les messages envoyés ou reçus seront affichés ici."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les réponses rapides créées seront affichées ici."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les messages copiés sur la carte SIM seront affichés ici."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Après avoir ajouté des phrases, elles seront affichées ici."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Après avoir ajouté des numéros à votre liste de blocage des messages, ils seront affichés ici."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "SUPPRIMER"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Chargement en cours."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notifications"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Moi"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Envoyer"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Envoi"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ENV."
+
diff --git a/main/po/fr_CA.po b/main/po/fr_CA.po
new file mode 100644 (file)
index 0000000..db55d34
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Domicile"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "L'itinérance des données est désactivée. Activez l'itinérance des données et réessayez."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nouveau message"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULER"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobile"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Les données mobiles sont désactivées. Activez les données mobiles et réessayez."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ENVOYER"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Type de média non pris en charge"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Impossible d'envoyer des messages en mode Hors-ligne. Désactivez le mode Hors-ligne et réessayez."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Transfert impossible. Le fichier est verrouillé pour le transfert."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Espace insuffisant sur votre appareil. Accédez à Paramètres > Alimentation et stockage > Stockage, supprimez des fichiers, puis réessayez."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Texte en haut de page"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Texte en bas de page"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Sélectionner mise en page"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Impossible d'ajouter du contenu."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Message devant être envoyé à %s. Envoyer maintenant ?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Taille maximum de message atteinte."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Pile faible"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "La durée doit être d'au moins %d secondes."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Désactivation du mode Hors-ligne..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copié sur la carte SIM"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Annulé."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Util autr. infos cont."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Envoyer via"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Image"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Courriel"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Remplacer"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Afficher"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Supprimer"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Lire"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "À"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Annuler le message"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Liste des destinataires"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Aperçu"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Durée de la diapositive %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Veuillez patienter pendant l'ajout des éléments au diaporama."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Impossible d'envoyer le message."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Sélectionner une sonnerie"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Une confirmation de lecture sera envoyée."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Non demandé"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Nombre maximum de destinataires (%d) atteint."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Saisissez l'objet."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Destinataire en double."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Transf."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Enregistrement impossible."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Localisation introuvable."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Suppression impossible."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Copie impossible."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Certains caractères risquent d'être perdus\nContinuer ?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "Carte SIM non insérée."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Échec de l'enregistrement."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Enregistré dans Mes fichiers."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Échec de la récupération du message"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Type de contenu restreint. Joindre quand même?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Restauration..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rejeté."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Confirmation de lecture"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Aucun numéro"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Aucune pièce jointe"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nouveaux messages"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Message copié à partir de la carte SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Le nombre maximum de destinataires est %d. Certains destinataires peuvent être perdus."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Nombre maximum de pièces jointes (%s) dépassé."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Nb max de caractères atteint."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "En cours..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Initialisation en cours..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Si vous ne souhaitez pas remplacer le fichier, renommez-le."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Ce message comporte une pièce jointe non affichée."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Ce message inclut les fichiers joints non affichés."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Nom de fichier déjà utilisé."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Suppression ..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Copié dans le presse-papier"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Conversion en message texte..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Conversion en message multimédia..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Voulez-vous vraiment bloquer le contact %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Connexion imminente (%s). Continuer ?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Message texte"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Objet :"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Expéditeur par courriel"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Expéditeur"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Sélectionner"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Enregistrer la pièce jointe"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Enregistrer"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Supprimer"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Installer"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Transférer"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Modifier le message"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Supprimer ?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Supprimer les messages"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Sélectionner des messages"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Tout enregistrer"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Détails des messages"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Expiration : %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Recherche avancée"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Enregistrer ttes PJ"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "À :"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Messages texte"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Carte SIM saturée. Supprimez certains éléments."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Réglages"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Envoyé :"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Demandé"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Destinataires"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Reçu :"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Reçu"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Confirmation de lecture"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Messages Push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d messages"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d conversations"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Autre"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Aucun objet"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Aucun nom"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Notification de message multimédia"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Message multimédia"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "Ko"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Lu"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Message refusé"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Taille message"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Options de message"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Message remis"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Moi"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Nombre maximum de pièces jointes (%1$s) dépassé. Seuls les %2$s premiers seront ajoutés."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Destinataire non valide."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "De :"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Expiré"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Échec de l'envoi."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Rapport de remise"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Messages du fournisseur"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copier le texte"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Messages de diffusion"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Tous"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversation"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Demander une confirmation de lecture pour chaque message envoyé."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Demander un accusé de réception pour chaque message envoyé."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Bouton radio"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Bouton d'activation/désactivation"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Liste déroulante"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Récupérer automatiquement les messages MMS."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Impossible de visualiser le fichier. Type de fichier non pris en charge."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Impossible d'ajouter des destinataires. Leurs numéros ne sont pas valides."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Impossible d'ajouter le destinataire. Son numéro n'est pas valide."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Impossible d'ajouter les destinataires. Leurs numéros ne sont pas valides."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Impossible d'ajouter la pièce jointe. Nombre maximum de pièces jointes (%d) atteint."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Ce numéro n'est pas valide."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Messages sélectionnés copiés vers l'appareil mobile."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d messages ont été déplacés dans la liste des messages."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Le numéro a été supprimé de la liste des messages bloqués."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Le numéro a été ajouté à la liste des messages bloqués."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Le message a été copié sur la carte SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Le nombre maximal de caractères a été dépassé."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "La taille de message maximale (%s) a été dépassée. Redimensionnement des pièces jointes..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Un caractère non valide a été saisi."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Ajouter destinataires."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 message a été déplacé dans la liste des messages."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Son"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "MMS"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Messages sur la carte SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Mode de saisie"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Récup. automatiq. en itinérance"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Récupération automatique"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Envoyer"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Non"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Sélectionnez le mode de saisie pour rédiger les messages."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Aucune"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Gérez les messages stockés sur votre carte SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Votre message va être annulé. Aucun destinataire n'a été sélectionné."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Impossible d'envoyer un message programmé. Définissez un autre horaire."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Impossible de lire le message pendant un appel."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Impossible de joindre le fichier. Fichier trop volumineux. Essayez de l'envoyer par courriel, Bluetooth, Wifi, etc."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Pour envoyer ce MMS, l'appareil va se connecter à un autre réseau mobile. Votre appareil va donc être déconnecté du réseau mobile actuel."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Pour télécharger ce MMS, l'appareil va se connecter à un autre réseau mobile. Votre appareil va donc être déconnecté du réseau mobile actuel."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Ce message sera renvoyé."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d messages seront supprimés."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d conversations seront supprimées."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Aucun modèle dans la liste"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Messages entrants uniquement"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Inclure le texte d'origine dans le message sortant"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "La durée doit être inférieure à %d secondes."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Supprimé."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 message sera supprimé."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 conversation va être supprimée."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Afficher les détails"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Afficher détails du contact"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Afficher en tant que diaporama"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Vidéos"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Mettre à jour le contact"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Texte"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Photographier"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Réglages"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Rechercher"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Enregistrer les pièces jointes"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Renvoyer"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Répondre"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Supprimer de la liste des contacts bloqués"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Enregistrer une vidéo"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Enregistrer un fichier audio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Réponse rapide"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Aucun"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Effectuer un appel vocal"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Images"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alphabet GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Exporter vers la mémoire du périphérique"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Modifier"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Supprimer le message"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Supprimer la conversation"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Par défaut"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Créer un contact"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copier sur la carte SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copier sur l'appareil"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copier le texte"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copier"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Sauvegarder"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatique"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Fichiers audio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Pièce jointe"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Ajouter aux contacts"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Ajouter à la liste des contacts bloqués"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Ajouter des destinataires"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Rechercher"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Aucun résultat trouvé"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Aucune réponse rapide"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Aucune phrase bloquée"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Aucun message sur la carte SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Aucun message"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Aucun numéro bloqué"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibration"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Numéro inconnu"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Numéro du centre SMS"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Sélectionner tout"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alertes"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Traduire"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "SMS"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Changer de réseau mobile"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Centre SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Réglages"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Sélectionner un destinataire"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Sélection : %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Messages sur la carte SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Messagerie"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Mode de saisie"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Fichier trop volumineux"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Imp. d'envoyer le message"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Ignorer le message"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Créer"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Attention"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Ajouter du contenu"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Changer"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Enregistrer"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Renvoyer"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Supprimer"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Télécharg."
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Ignorer"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Supprimer"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Annuler"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Annuler"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contacts"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Vous avez sélectionné un fichier Son & prise. Les données audios n'étant pas prises en charge pour les MMS, seule la photo sera jointe."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Oui"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "En attente d'envoi..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Impossible d'envoyer ce message. Insérez votre carte SIM, puis réessayez."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Type :"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Pour utiliser des types de médias restreints, modifiez le paramètre du mode de création MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Heure de l'envoi :"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Heure de réception :"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Cocher la case"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "État :"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Envoyé"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Envoi..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Échec de l'envoi"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "s"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Récupérez automatiquement les messages en itinérance."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Récupérez automatiquement les messages."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Confirmation de lecture : %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Autre personne"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Mémo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Échec"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Entrez du texte"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Brouillon"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Accusé de réception : %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Message de diffusion"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendrier"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les messages envoyés ou reçus seront affichés ici."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les réponses rapides créées seront affichées ici."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les messages copiés sur la carte SIM seront affichés ici."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Après avoir ajouté des phrases, elles seront affichées ici."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Après avoir ajouté des numéros à votre liste de blocage des messages, ils seront affichés ici."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "SUPPRIMER"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Chargement..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notifications"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Moi"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Envoyer"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Envoi"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ENV."
+
diff --git a/main/po/ga.po b/main/po/ga.po
new file mode 100644 (file)
index 0000000..517e8bd
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Baile"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Tá fánaíocht sonraí díchumasaithe. Cumasaigh fánaíocht sonraí agus triail arís é."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Teachtaireacht nua"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "CUIR AR CEAL"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "DÉANTA"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Anaithnid"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Fón Póca"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Tá sonraí móibíleacha díchumasaithe. Cumasaigh sonraí móibíleacha agus triail arís é."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "SEOL"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Cineál meán gan tacú."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Ní féidir teachtaireachtaí a sheoladh nuair atá tú i mód Eitilte. Díchumasaigh mód Eitilte agus triail arís é."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Ní féidir seoladh ar aghaidh.\nTá seoladh ar aghaidh an chomhaid glasáilte"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Níl go leor spáis i stóras do ghléis. Gabh chuig Socruithe > Cumhacht agus stóras > Stóras, ansin scrios roinnt comhad agus triail arís."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Téacs ar bharr"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Téacs ag an mbun"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Roghnaigh leagan amach"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Ní féidir inneachar a chur leis."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Tá an teachtaireacht sceidealta le seoladh chuig %s. Seol anois?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Uasmhéid na teachtaireachta bainte amach."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Ceallra lag."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Ní mór fad ama a bheith %d soicind ar a laghad"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Mód eitilte á dhíchumasú..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Cóipeáilte chuig cárta SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Curtha ar ceal."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Úsáid fais. teag. eile"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Seol le"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Íomhá"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "R-phost"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Ionadaigh"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Amharc air"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Bain"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Seinn"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Chuig"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Cuir teachtaireacht ar ceal"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Liosta faighteoirí"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Réamhamharc"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Fad ama don sleamhnán %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Fan go fóill agus míreanna á gcur leis an taispeántas sleamhnán"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Ní féidir teachtaireacht a sheoladh."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Roghnaigh clingthon"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Seolfar admháil léite"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Neamhiarrtha"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Uaslíon na bhfaighteoirí (%d) bainte amach."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Iontráil ábhar"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Faighteoir dúbláilte."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Ar agh."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Ní féidir sábháil."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Ní féidir an suíomh a aimsiú."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Ní féidir scriosadh."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Ní féidir cóipeáil."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Seans go gcaillfí roinnt carachtar.\nAr aghaidh?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "Níl SIM ionsáite."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Theip ar shábháil."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Sábháilte i Mo Chomhaid."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Theip ar aisghabháil teachtaireachta"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Cineál inneachair atá srianta. Ceangail ar aon nós?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Ag cur ar ais..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Diúltaithe."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Admháil léite"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Níl uimhir ann"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Níl ceangaltáin ann"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Teachtaireachtaí nua"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Cóipeáladh teachtaireacht ón gcárta SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Is %d uaslíon na bhfaighteoirí. Seans go gcaillfí roinnt faighteoirí."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Uaslíon na gceangaltán (%s) sáraithe."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Uaslíon na gcarachtar bainte amach."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Ar bun..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Ag túsú..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Mura mian leat an comhad a ionadú, déan é a athainmniú"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Leis an teachtaireacht seo tá comhad ceangailte nach bhfuil ar taispeáint"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Leis an teachtaireacht seo tá comhaid cheangailte nach bhfuil ar taispeáint"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Comhadainm ann cheana"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Ag scriosadh..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Cóipeáilte chuig gearrthaisce."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Ag tiontú chuig teachtaireacht téacs..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Ag tiontú chuig teachtaireacht ilmheán..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Cuir bac ar %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Tá tú ar tí dul ar líne(%s). Ar aghaidh?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Teachtaireacht téacs"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Ábhar:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Seoltóir le R-phost"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Seoltóir"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Roghnaigh"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Sábháil ceangaltán"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Sábháil"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Bain"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Suiteáil"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Seol ar aghaidh"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Cuir teachtaireacht in eagar"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Scrios?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Scrios teachtaireachtaí"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Roghnaigh teachtaireachtaí"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Sábháil gach"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Sonraí na teachtaireachta"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "As feidhm: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Cuardach casta"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Sábh. gach ceangaltán"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Anaithnid"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Chuig:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Teachtaireachtaí téacs"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Cuimhne SIM lán. Scrios roinnt míreanna."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Socruithe"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "A seoladh:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Iarrtha."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Faighteoirí"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "A fuarthas:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Faighte."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Admháil léite"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Brútheachtaireachtaí"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d teachtaireacht"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d comhrá"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Eile"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Níl ábhar ann"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Níl ainm ann"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Fógra faoi theachtaireacht ilmheán"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Teachtaireacht ilmheán"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Léigh"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Teachtaireacht diúltaithe."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Méid na teachtaireachta"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Roghanna teachtaireachta"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Teachtaireacht seachadta"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Teachtaireacht"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Mise"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Uaslíon na gceangaltán (%1$s) sáraithe. Ní chuirfear leis ach an chéad %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Faighteoir neamhbhailí."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Ó"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Ó:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Imithe as feidhm"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Theip ar sheoladh."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Admháil seachadta"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Teachtaireachtaí CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Cóipeáil téacs"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Teachtaireachtaí CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Gach"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 teachtaireacht"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 chomhrá"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Iarr admháil léite do gach teachtaireacht a sheolfaidh tú"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Iarr admháil seachadta do gach teachtaireacht a sheolfaidh tú"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Cnaipe Raidió"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Cnaipe Air/As"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Liosta in-forleathnaithe"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Aimsigh teachtaireachtaí MMS go huathoibríoch"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Réamhamharc ar an gcomhad dodhéanta. Cineál comhaid gan tacú."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Ní féidir roinnt faighteoirí a chur leis. Níl na huimhreacha bailí."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Ní féidir faighteoir a chur leis. Níl an uimhir bailí."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Ní féidir faighteoirí a chur leis. Níl na huimhreacha bailí."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Ní féidir ceangaltán a chur leis. Uaslíon na gceangaltán (%d) bainte amach."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Níl an uimhir seo bailí."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Teachtaireachtaí roghnaithe cóipeáilte chuig an ngléas móibíleach."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d teachtaireacht bogtha chuig an liosta teachtaireachtaí."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Uimhir bainte ón liosta bactha teachtaireachtaí."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Uimhir curtha leis an liosta bactha teachtaireachtaí."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Teachtaireacht cóipeáilte chuig cárta SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Uaslíon na gcarachtar sáraithe."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Uasmhéid na teachtaireachta (%s) sáraithe. Ceangaltáin á n-athmhéidniú..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Iontráladh carachtar neamhbhailí."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Cuir faighteoirí leis."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 teachtaireacht bogtha chuig an liosta teachtaireachtaí."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Teachtaireachtaí téacs"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Fuaim"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Teachtaireachtaí ilmheán"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Tchtaí ar an gcárta SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Mód ionchuir"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Uath-aisghabháil le linn fán."
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Uath-aisghabháil"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Seol anois"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Ná déan"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Roghnaigh mód ionchuir le teachtaireachtaí a chumadh."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Dada"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Bainistigh na teachtaireachtaí atá stóráilte ar do chárta SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Cuileálfar do theachtaireacht. Níor roghnaíodh faighteoir."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Ní féidir teachtaireacht sceidealta a sheoladh. Socraigh am eile."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Ní féidir seinm le linn glao."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Ní féidir an comhad a chur i gceangal. Tá méid an chomhaid rómhór. Triail é a sheoladh le r-phost, Bluetooth, Wi-Fi, srl."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Leis an teachtaireacht ilmheán seo a sheoladh, nascfar an gléas le líonra móibíleach eile. Dínascfar do ghléas ó do líonra móibíleach reatha leis seo."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Leis an teachtaireacht ilmheán seo a íoslódáil, nascfar an gléas le líonra móibíleach eile. Dínascfar do ghléas ó do líonra móibíleach reatha leis seo."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Seolfar an teachtaireacht seo arís."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "Scriosfar %d teachtaireacht"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Scriosfar %d comhrá."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Liosta teimpléad folamh"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Teachtaireachtaí isteach amháin"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Áirigh an téacs bunaidh i dteachtaireachtaí amach"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Ní mór fad ama bheith níos giorra ná %d soicind"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Scriosta."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "Scriosfar 1 teachtaireacht"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Scriosfar 1 chomhrá."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Amharc ar shonraí"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Amharc ar shonraí teagmhála"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Amh. air mar thais. sleamhnán"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Físeáin"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Nuashonraigh teagmhálaí"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Téacs"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Glac pictiúr"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Socruithe"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Cuardaigh"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Sábháil ceangaltáin"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Seol arís"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Freagair"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Bain ón liosta bactha"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Taifead físeán"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Taifead comhad fuaime"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Mearfhreagairt"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Dada"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Cuir glao gutha"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Íomhánna"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Aibítir GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Easpórtáil chuig cuimhne an ghléis"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Cuir in eagar"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Scrios teachtaireacht"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Scrios comhrá"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Réamhshocrú"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Cruthaigh teagmhálaí"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Cóipeáil chuig cárta SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Cóipeáil chuig gléas"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Cóipeáil téacs"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Cóipeáil"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Déan cóip chúltaca"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Uathoibríoch"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Comhaid fuaime"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Ceangaltán"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Cuir le Teagmhálaithe"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Cuir le liosta bactha"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Cuir faighteoirí leis"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Cuardaigh"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Níor aimsíodh torthaí"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Níl mearfhreagairtí ann"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Níl bac ar aon fhrása"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Níl teachtaireachtaí ann ar an gcárta SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Níl teachtaireachtaí ann"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Níl uimhreacha bactha ann"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Crith"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Uimhir anaithnid"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Uimhir an ionaid tchtaí. téacs"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Roghnaigh gach"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Foláirimh"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Cuir aistriúchán air"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Teachtaireachtaí téacs"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Aistrigh líonra móibíleach"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Ionad SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Socruithe"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Roghnaigh faighteoir"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d roghnaithe"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Tchtaí ar an gcárta SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Teachtaireachtaí"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Mód ionchuir"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Méid an chomhaid rómhór"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Theip ar sheoladh na tchta."
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Cuileáil teachtaireacht"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Cruthaigh"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Aire"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Cuir inneachar leis"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Aistriú"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Sábháil"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Seol arís"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Bain"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Íoslódáil"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Cuileáil"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Scrios"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Cuir ar ceal"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Cuir ar ceal"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Teag\nmhálaithe"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Roghnaigh tú comhad fuaime & seat. Níl tacú ann do shonraí fuaime in MMS, mar sin ní cheanglófar ach an pictiúr."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Déan é"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Fanacht le seoladh..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Ní féidir an teachtaireacht seo a sheoladh. Ionsáigh do chárta SIM agus triail arís."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Cineál:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Le húsáid a bhaint as cineálacha meáin srianta, athraigh do shocrú um modh cruthaithe MMS"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Am seolta:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Am fála:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Ticbhosca"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Stádas:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Seolta"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Seoladh..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Theip ar sheoladh"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "soic"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Aisghabh teachtaireachtaí go huathoibríoch le linn fánaíocht."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Aisghabh teachtaireachtaí go huathoibríoch."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Tuairisc léite: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Duine eile"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Teachtaireacht"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Meabhrán"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Theip air"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Iontráil téacs"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Dréacht"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Tuairisc seachadta: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Teachtaireacht CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Féilire"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tar éis duit teachtaireachtaí a sheoladh nó a fháil, taispeánfar anseo iad."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tar éis duit mearfhreagairtí a chruthú, taispeánfar anseo iad."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tar éis duit teachtaireachtaí a chóipeáil chuig an gcárta SIM, taispeánfar anseo iad."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tar éis duit frásaí a chur leis, taispeánfar anseo iad."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tar éis duit uimhreacha a chur leis an liosta bactha teachtaireachtaí, taispeánfar anseo iad."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "SCRIOS"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Ag lódáil..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Fógraí"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Mise"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Seol"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Seol"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "SEOL"
+
diff --git a/main/po/gl.po b/main/po/gl.po
new file mode 100644 (file)
index 0000000..e616b16
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Particular"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "A itinerancia de datos está desactivada. Activa a itinerancia de datos e téntao de novo."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nova mensaxe"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "FEITO"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Descoñecido"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Móbil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "A itinerancia de datos móbiles está desactivada. Activa a itinerancia de datos móbiles e téntao de novo."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ENVIAR"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Tipo multimedia non admitido"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Non se pode enviar mensaxes no modo de Avión. Desactiva o modo de Avión e téntao de novo."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Non se pode reenviar.\nO arquivo está bloqueado contra reenvíos"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Non hai espazo suficiente no almacenamento do teu dispositivo. Vai a Axustes > Alimentación e almacenamento > Almacenamento e, a continuación, elimina algúns arquivos e téntao de novo."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Texto na parte superior"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Texto na parte inferior"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Seleccionar deseño"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Non se pode engadir o contido"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Mensaxe programada para enviarse a %s. Desexas enviala agora?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Acadouse o tamaño máximo da mensaxe"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Batería baixa"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "A duración ten que ser polo menos de %d segundos"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Desactivando o modo de avión..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copiada á tarxeta SIM"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Cancelada"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Usar outra info. cont."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Enviar por"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Imaxe"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Correo electrónico"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Substituír"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Ver"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Eliminar"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Reproducir"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Para"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Cancelar mensaxe"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Lista de destinatarios"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Vista previa"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Duración da diapositiva %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Agarda mentres se engaden elementos á presentación de diapositivas"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Non se pode enviar a mensaxe"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Seleccionar melodía"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Enviarase informe de lectura"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Non solicitado"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Alcanzouse o número máximo de destinatarios (%d)"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Introducir asunto"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Destinatario duplicado"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Reenv"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Non se pode gardar"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Non se pode atopar a localización"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Non se pode eliminar"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Non se pode copiar"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Algúns caracteres poden perderse.\nContinuar?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM non inserida"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Erro ao gardar"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Gardado en Os meus arquivos"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Erro ao recuperar a mensaxe"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Tipo de contido restrinxido. Achegar de todas formas?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Restaurando..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rexeitada"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Informe de lectura"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Sen número"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Non hai adxuntos"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Novas mensaxes"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Mensaxe copiada da tarxeta SIM"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "O número máximo de destinatarios é %d. É posible que se perdan algúns destinatarios."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Superouse o número máximo de adxuntos (%s)"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Número máximo de caracteres alcanzado"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "En curso..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Inicializando..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Se non queres cambiar o arquivo, ponlle outro nome"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Esta mensaxe inclúe un arquivo adxunto non mostrado"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Esta mensaxe inclúe arquivos adxuntos que non aparecen"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "O nome do arquivo xa existe"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Eliminando..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Copiado no portapapeis"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Convertendo a mensaxe de texto..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Convertendo a mensaxe multimedia..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Bloquear a %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Está a punto de conectarse (%s). Continuar?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Mensaxe de texto"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Asunto:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Remitente a través de correo electrónico"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Remitente"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Gardar adxunto"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Gardar"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Eliminar"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instalar"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Reenviar"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Editar mensaxe"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Eliminar?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Eliminar mensaxes"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Seleccionar mensaxes"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Gardar todo"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Detalles da mensaxe"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Caduca: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Busca avanzada"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Gardar todos adxunt."
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Descoñecido"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "A:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Mensaxes de texto"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Memoria SIM chea. Elimina algúns elementos."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Axustes"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Enviada:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Solicitado"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Destinatarios"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Recibida:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Recibido"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Informe de lectura"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Mensaxes push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d mensaxes"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d conversas"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Outro"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Sen asunto"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Sen nome"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Notificación de mensaxe multimedia"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Mensaxe multimedia"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Ler"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Mensaxe rexeitada"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Tamaño da mensaxe"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Opcións de mensaxe"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Mensaxe entregada"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Mensaxe"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Eu"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Superouse o número máximo de documentos achegados (%1$s). Só se engadirán os primeiros %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Destinatario non válido"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "De:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Caducada"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Erro de envío"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Informe de entrega"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Mensaxes CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copiar texto"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Mensaxes CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Todas"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 mensaxe"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversa"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Solicitar un informe de lectura para cada mensaxe que envíes"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Solicitar un informe de entrega para cada mensaxe que envíes"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Botón de radio"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Botón de activación/desactivación"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Lista ampliable"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Recuperar automaticamente as mensaxes MMS"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Non se pode previsualizar o arquivo. Non se admite este tipo de arquivo."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Non se poden engadir algúns destinatarios. Os números non son válidos."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Non se pode engadir o destinatario. O número non é válido."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Non se poden engadir destinatarios. Os números non son válidos."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Non se poden engadir adxuntos. Alcanzouse o número máximo de adxuntos (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Este número non é válido."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Mensaxes seleccionadas copiadas ao dispositivo móbil."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "Movéronse %d mensaxes á lista de mensaxes."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Número eliminado da lista de bloqueo de mensaxes."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Número engadido á lista de bloqueo de mensaxes."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Mensaxe copiada á tarxeta SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Superouse o número máximo de carácteres."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Superouse o tamaño máximo da mensaxe (%s). Cambiando o tamaño dos anexos..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Introduciuse un carácter non válido."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Engade destinatarios."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 mensaxe movida á lista de mensaxes."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Mensaxes de texto"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Son"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Mensaxes multimedia"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Mensaxes na tarxeta SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Modo de entrada"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Recuperar auto. en itinerancia"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Recuperación automática"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Env. ago."
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Non"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Selecciona un modo de entrada para redactar mensaxes."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Ningún"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Xestiona as mensaxes almacenadas na túa tarxeta SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Descartarase a túa mensaxe porque non se seleccionaron destinatarios."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Non se pode enviar a mensaxe programada. Establece outra hora."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Non se pode reproducir durante a chamada"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Non se pode achegar o arquivo. O tamaño do arquivo é demasiado grande. Tenta envialo por correo electrónico, Bluetooth, Wi-Fi, etc."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Para enviar esta mensaxe multimedia, o dispositivo conectarase a unha rede móbil diferente. Isto desconectará o teu dispositivo da rede móbil actual."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Para descargar esta mensaxe multimedia, o dispositivo conectarase a unha rede móbil diferente. Isto desconectará o teu dispositivo da rede móbil actual."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Esta mensaxe reenviarase."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "Eliminaranse %d mensaxes"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Eliminaranse %d conversas."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Ningún modelo na lista"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Só mensaxes entrantes"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Incluír texto orixinal na mensaxe saínte"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "A duración debe ser inferior a %d segundos"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Eliminado"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "Eliminarase 1 mensaxe"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Eliminarase 1 conversa."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Ver detalles"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Ver detalles de contacto"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Ver como presentación diapos."
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Actualizar contacto"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Texto"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Facer foto"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Axustes"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Gardar adxuntos"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Reenviar"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Responder"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Eliminar da lista de bloqueo"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Gravar vídeo"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Gravar arquivo de audio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Resposta rápida"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Ningún"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Realizar chamada de voz"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Imaxes"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alfabeto GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Exportar á memoria do dispositivo"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Editar"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Eliminar mensaxe"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Eliminar conversa"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Predeterminada"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Crear contacto"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copiar na tarxeta SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copiar no dispositivo"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copiar texto"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copiar"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Copia de seguridade"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automático"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Arquivos de son"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Adxunto"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Engadir a Contactos"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Engadir á lista de bloqueo"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Engadir destinatarios"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Non se atoparon resultados"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Non hai respostas rápidas"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Non hai ningunha frase bloqueada"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Non hai ningunha mensaxe na tarxeta SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Non hai mensaxes"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Ningún número bloqueado"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibración"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Número descoñecido"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Número centro mensaxes texto"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Seleccionar todo"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alertas"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Traducir"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Mensaxes de texto"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Cambiar rede móbil"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Centro SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Axustes"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Seleccionar destinatario"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seleccionado(s)"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Mensaxes na tarxeta SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Mensaxes"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Modo de entrada"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Tamañ.arquivo demasiado grande"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Non se puido enviar a mensaxe"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Descartar mensaxe"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Crear"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Atención"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Engadir contido"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Cambiar"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Gardar"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Reenviar"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "Aceptar"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Descargar"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Descartar"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Cancelar"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Cancelar"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contactos"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Seleccionaches un arquivo de sound & shot. Os datos de son non se admiten nas MMS polo que só se achegará a imaxe."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Si"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Esperando para enviar..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Non se pode enviar esta mensaxe. Insire a túa tarxeta SIM e téntao de novo."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tipo"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Para usar tipos de arquivos multimedia restrinxidos, cambiar o axuste do teu modo de creación de MMS"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Tempo do envío:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Hora da recepción:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Caixa de verificación"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Estado:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Enviadas"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Envia. ..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Erro no envío"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "seg"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Recupera mensaxes automaticamente durante itinerancia."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Recupera mensaxes automaticamente."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Informe de lectura: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Outra persoa"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Mensaxe"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Erro"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Inserir texto"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Borrador"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Informe de entrega: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Mensaxe CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendario"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Despois de enviar ou recibir mensaxes, estas amosaranse aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Despois de crear respostas rápidas, estas amosaranse aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Despois de copiar mensaxes na tarxeta SIM, estas amosaranse aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Despois de engadir frases, estas amosaranse aquí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Despois de engadir números á lista de bloqueo de mensaxes, amosaranse aquí."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Cargando..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notificacións"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Eu"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Env."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Envi."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ENV."
+
diff --git a/main/po/gu.po b/main/po/gu.po
new file mode 100644 (file)
index 0000000..a434ba5
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "હોમ"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "ડેટા રોમિંગ અક્ષમ છે. ડેટા રોમિંગને સક્ષમ કરો અને ફરી પ્રયાસ કરો."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "નવો સંદેશ"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "રદ કરો"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "પૂર્ણ થયું"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "અજ્ઞાત"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "મોબાઇલ"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "મોબાઇલ ડેટા અક્ષમ છે. મોબાઇલ ડેટાને સક્ષમ કરો અને ફરી પ્રયાસ કરો."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "મોકલો"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Exchange ActiveSync calendar added."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "ઉડાણ મોડમાં સંદેશાઓ મોકલવામાં અસમર્થ. ઉડાણ મોડને અક્ષમ કરો અને ફરી પ્રયાસ કરો."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "ઉમેરવા અસમર્થ.\n ફાઇલ આગળ કરવું લોક્ડ છે."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "તમારા ઉપકરણ સંગ્રહણમાં પર્યાપ્ત જગ્યા નથી. સેટિંગ્સ > પાવર અને સંગ્રહ > સંગ્રહ પર જાઓ, પછી કેટલીક ફાઇલ્સ કાઢી નાખો અને ફરી પ્રયાસ કરો."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "ઉપરનો ટેક્સ્ટ"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "નીચેનો ટેક્સ્ટ"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "રૂપરેખા પસંદ કરો"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "સામગ્રી જોડવામાં અક્ષમ."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "%s ને સંદેશ મોકલવાનો સમયનિશ્ચિત થયેલો છે. હવે મોકલો?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "મહત્તમ સંદેશ કદ પર પહોંચ્યા."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "બેટરી ઓછી."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "સમયગાળો ઓછામાં ઓછી %d સેકંડ્સ હોવી જોઈએ."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "ફ્લાઇટ મોડ નિષ્ક્રિય કરે છે..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM કાર્ડમાં નકલ કરાઇ."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "રદ કર્યુ."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "અન્ય સંપર્ક માહિતીનો ઉપયોગ કરો"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "દ્વારા મોકલો"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "છબી"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ઇમેલ"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "બદલવું"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "જુઓ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "દૂર કરો"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "ચલાવો"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "પ્રતિ"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "સંદેશ રદ કરો"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "પ્રાપ્તકર્તાની યાદી"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "પૂર્વદર્શન"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "%d/%d સ્લાઇડની અવધિ"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "સ્લાઇડોમાં વસ્તુઓ ઉમેરાય ત્યારે સમય રાહ જુઓ."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "સંદેશ મોકલવામાં અક્ષમ."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "રિંગટોન પસંદ કરો"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "વાંચન અહેવાલ મોકલવામાં આવશે."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "વિનંતી કરાઇ નથી"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "પ્રાપ્તકર્તાઓની મહત્તમ સંખ્યાએ (%d) પહોંચ્યા."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "વિષય દાખલ કરો"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "બનાવટી મેળવનાર."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "આ. મોકલો"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "બચાવ કરવા અસમર્થ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "સ્થાન શોધવામાં અસમર્થ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "કાઢી નાખવામાં અસક્ષમ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "કૉપિ કરવામાં અક્ષમ."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "કેટલાક વર્ણો ખોવાઈ શકે છે.\nચાલુ રાખીએ?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM સામેલ કરેલી નથી."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "સાચવવું નિષ્ફળ."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "મારી ફાઇલોમાં સાચવ્યું."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "સંદેશા પાછા મેળવવામાં નિષ્ફળતા"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "પ્રતિબંધિત સામગ્રી પ્રકાર. કોઈ પણ રીતે જોડવું છે?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "પુન:સ્થાપિત કરે છે..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "રદ કર્યુ."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "અહેવાલ વાંચો"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "નંબર નથી"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "કોઈ જોડાણો નથી"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "નવા સંદેશાઓ"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM કાર્ડમાંથી સંદેશ નકલ કર્યો."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "પ્રાપ્તકર્તાઓની મહત્તમ સંખ્યા %d છે. અમુક પ્રાપ્તકર્તાઓ ખોવાઈ શકે છે"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "જોડાણોની અધિકતમ સંખ્યા (%s) વટાવી."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "વર્ણોની મહત્તમ સંખ્યાએ પહોંચ્યા."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "પ્રગતિ પર..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "શરૂ કરે છે..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "જો તમે ફાઇલ બદલવા ન માંગો છો, તો કૃપયા નામ બદલો."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "આ સંદેશમાં ફાઇલ જોડેલી છે જે દેખાતી નથી."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "આ સંદેશમાં ફાઇલો જોડેલી છે જે દેખાતી નથી."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ફાઇલ નામ અગાઉથી અસ્તિત્વમાં છે."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "ભૂસાઇ રહ્યું છે..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "ક્લિપબોર્ડ પર નકલ કરેલું છે."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "ટેક્સ્ટ સંદેશમાં બદલે છે..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "મલ્ટિમીડિયા સંદેશમાં બદલે છે..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s અવરોધ કરીએ?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "તમે ઓનલાઇન થવામાં છો (%s). ચાલુ રાખીએ?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "ટેકસ્ટ સંદેશ"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "વિષય:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Email દ્વારા પ્રેષકને"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "મોકલનાર"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "પસંદ કરો"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "જોડાણ સાચવો"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "સાચવો"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "દૂર કરો"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "સ્થાપો"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "ફોર્વર્ડ કરો"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "સંદેશ સંપાદિત કરો"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "કાઢી નાખવું?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "સંદેશાઓ હટાવો"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "સંદેશા પસંદ કરો"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "બધું સાચવો"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "સંદેશ વિગતો"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "સમાપ્ત થાય છે: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "પ્રગત શોધ"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "બધા સંલગ્નકો સાચવો"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "અજ્ઞાત"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "પ્રતિ:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "ટેકસ્ટ સંદેશાઓ"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM સ્મૃતિ પૂર્ણ. કેટલીક વસ્તુ હટાવો."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "સેટિંગ્સ"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "મોકલેલ:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "વિનંતી કરેલ."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "પ્રાપ્તકર્તાઓ"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "પ્રાપ્ત:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "સ્વીકારાઇ ગયું."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "અહેવાલ વાંચો"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "પુશ સંદેશાઓ"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d વાતચીતો"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "બીજા"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "વિષય નથી"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "નામ નથી"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "મલ્ટીમીડિયા સંદેશ સૂચના"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "મલ્ટીમીડિયા સંદેશ"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "વાંચો"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "સંદેશ નકાર્યો."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "સંદેશ કદ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "સંદેશ વિકલ્પો"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "સંદેશ વિતરિત"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "સંદેશ"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "સ્વયં"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "ટાંચની અધિકતમ સંખ્યા (%1$s) વટાવી. ફક્ત પહેલાં %2$s ઉમેરવામાં આવશે."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "અમાન્ય પ્રાપ્તકર્તા."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "અહીંથી"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "દ્વારા:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "ખતમ"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "મોકલવું નિષ્ફળ."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "પહોંચ્યાનો અહેવાલ"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP સંદેશાઓ"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "ટેક્સ્ટ કૉપિ કરો"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB સંદેશાઓ"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "બધા"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 સંદેશ"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 વાતચીત"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "તમે મોકલો તે દરેક સંદેશ માટે વાંચન અહેવાલની વિનંતી કરો."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "તમે મોકલો તે દરેક સંદેશ માટે પહોચ્યાંનો અહેવાલની વિનંતી કરો."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "રેડિયો બટન"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ચાલુ/બંધ બટન"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "વિસ્તૃત કરવા યોગ્ય યાદી"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS સંદેશા આપમેળે પ્રાપ્ત કરો."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ફાઇલનું પૂર્વાદર્શન કરવામાં અસમર્થ. અસમર્થિત ફાઇલ પ્રકાર."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "કેટલાક પ્રાપ્તકર્તાઓ ઉમેરવામાં અસમર્થ. નંબરો માન્ય નથી."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "પ્રાપ્તકર્તા ઉમેરવામાં અસમર્થ. નંબર માન્ય નથી."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "પ્રાપ્તકર્તાઓ ઉમેરવામાં અસમર્થ. નંબરો માન્ય નથી."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "સંલગ્ન ઉમેરવામાં અસમર્થ. સંલગ્નોની મહત્તમ સંખ્યા (%d) પર પહોંચી ગયા છો."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "આ નંબર માન્ય નથી."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "પસંદ કરેલ સંદેશાની મોબાઇલ ઉપકરણ પર કૉપિ કરી."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d સંદેશાને સંદેશ યાદી પર ખસેડ્યો."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "નંબરને સંદેશ અવરોધિત યાદીમાંથી દૂર કર્યો."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "નંબરને સંદેશ અવરોધિત યાદીમાં ઉમેર્યો."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "સંદેશની %s SIM કાર્ડ પર કૉપિ કરી."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "વર્ણોની મહત્તમ સંખ્યા વટાવી."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "મહત્તમ સંદેશા કદ (%s) વટાવ્યું. સંલગ્નોનું કદ બદલી રહ્યાં છે..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "અમાન્ય અક્ષર દાખલ કર્યો"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "પ્રાપ્તકર્તાઓ ઉમેરો."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 સંદેશને સંદેશ યાદીમાં ખસેડવામાં આવેલ છે."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "ટેક્સ્ટ સંદેશા"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ધ્વનિ"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "મલ્ટિમીડિયા સંદેશા"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM કાર્ડ પરના સંદેશા"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "ઇનપુટ મોડ"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "રોમિંગ દરમ્યાન સ્વતઃ પુનઃપ્રાપ્ત કરો"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "સ્વતઃ પુનઃપ્રાપ્ત કરો"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "હવે મોકલો"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "ના"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "સંદેશાની રચના કરવા એક ઇનપુટ મોડ પસંદ કરો."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "કોઈ નહીં"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "તમારા SIM કાર્ડ પર સંગ્રહિત સંદેશાને સંચાલિત કરો."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "તમારા સંદેશને કાઢી નાખવામાં આવશે. કોઈપણ પ્રાપ્તકર્તાઓને પસંદ કરવામાં આવ્યા નથી."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "અનુસૂચિ કરેલા સંદેશ મોકલવામાં અસમર્થ. અન્ય સમય ગોઠવો."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "કૉલ દરમ્યાન ચલાવવામાં અક્ષમ."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ફાઇલ જોડવામાં અસમર્થ. ફાઇલ કદ ખૂબ મોટું છે. ઇમેલ, બ્લ્યુટુથ, Wi-Fi વગેરે દ્વારા મોકલવાનો પ્રયાસ કરો."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "આ મલ્ટિમીડિયા સંદેશા મોકલવા માટે, ઉપકરણો ભિન્ન મોબાઇલ નેટવર્કથી જોડાશે. આ તમારા ઉપકરણને વર્તમાન મોબાઇલ નેટવર્કથી ડિસ્કનેક્ટ કરશે."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "આ મલ્ટિમીડિયા સંદેશ ડાઉનલોડ કરવા માટે, ઉપકરણને ભિન્ન મોબાઇલ નેટવર્કથી જોડાશે. આ તમારા ઉપકરણને તમારા વર્તમાન મોબાઇલ નેટવર્કથી ડિસ્કનેક્ટ કરશે."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "આ સંદેશ ફરીથી મોકલવામાં આવશે."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d સંદેશા હટાવવામાં આવશે."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d વાતચીતોને હટાવવામાં આવશે."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "યાદીમાં કોઈ ટેમ્પ્લેટ નથી"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "ફક્ત ઇનકમિંગ સંદેશા"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "આઉટગોઇંગ સંદેશમાં મૂળ ટેક્સ્ટ દાખલ કરો"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "સમયગાળો %d સેકંડ્સ કરતા ટૂંકી હોવી જોઇએ."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "હટાવેલ."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 સંદેશને હટાવવામાં આવશે"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 વાતચીતને હટાવવામાં આવશે."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "વિગતો જુઓ"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "સંપર્ક વિગત જુઓ"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "સ્લાઇડશો તરીકે જુઓ"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "વિડિયોઝ"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "સંપર્ક અપડેટ કરો"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "યુનિકોડ"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "ટેક્સ્ટ"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "ચિત્ર લો"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "સેટિંગ્સ"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "શોધો"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "જોડાણો સાચવો"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "ફરી મોકલો"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "પ્રત્યુત્તર"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "અવરોધિત યાદીમાંથી દૂર કરો"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "વિડિયો રેકોર્ડ કરો"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "ઓડિયો ફાઇલ રેકોર્ડ કરો"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "ઝડપી પ્રતિસાદ"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "એકેય નહિ"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "અવાજ કૉલ કરો"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "છબીઓ"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM આલ્ફાબેટ"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "સાધન સ્મૃતિમાં નિકાસ કરો"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "સંપાદિત કરો"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "સંદેશો હટાવો"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "વાતચીત હટાવો"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "કાઢી નાખો"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "મૂળભૂત"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "સંપર્ક બનાવો"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM કાર્ડમાં કૉપિ કરો"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "ઉપકરણમાં કૉપિ કરો"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "ટેક્સ્ટ કૉપિ કરો"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "કૉપિ કરો"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "બેક અપ લો"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "સ્વયંચાલિત"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "ઓડિયો ફાઇલ્સ"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "સંલગ્નક"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "સંપર્કોમાં ઉમેરો"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "અવરોધિત યાદીમાં ઉમેરો"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "પ્રાપ્તકર્તાઓ ઉમેરો"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "શોધો"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "કોઈ પરિણામો મળ્યા નથી"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "કોઈ ઝડપી પ્રતિસાદ નથી"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "કોઈ ફ્રેસીસ અવરોધિત કરેલ નથી"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM કાર્ડ પર કોઈ સંદેશા નથી"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "કોઈ સંદેશા નથી"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "કોઈ અવરોધિત કરેલ નંબરો નથી"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "કંપન"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "અજ્ઞાત નંબર"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "ટેક્સ્ટ સંદેશ કેન્દ્ર નંબર"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "બધું પસંદ કરો"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "ચેતવણીઓ"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "ભાષાંતર કરો"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "ટેક્સ્ટ સંદેશા"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "મોબાઇલ નેટવર્ક પર સ્વિચ કરો"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS કેન્દ્ર"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "સેટિંગ્સ"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "પ્રાપ્તકર્તા પસંદ કરો"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d પસંદ કર્યુ"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM કાર્ડ પરના સંદેશા"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "સંદેશા"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ઇનપુટ મોડ"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ફાઇલનું કદ ખૂબ મોટું છે"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "સંદેશ મોકલવામાં નિષ્ફળ"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "સંદેશ હટાવો"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "હટાવો"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "બનાવો"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "સાવધાન"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "સામગ્રી ઉમેરો"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "સ્વિચ કરો"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "સાચવો"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "ફરી મોકલો"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "કાઢી નાખો"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ઓકે"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ડાઉનલોડ કરો"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "કાઢી નાખો"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "હટાવો"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "રદ કરો"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "રદ કરો"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "સંપર્કો"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "તમે ધ્વનિ & શોટ્સ ફાઈલ પસંદ કરેલી છે. ધ્વનિ ડેટા MMS માટે સમર્થિત નથી તેથી ફક્ત ચિત્ર જોડવામાં આવશે."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "હા"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "પ્રતીક્ષા કરવા મોકલો..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "આ સંદેશ મોકલવામાં અસમર્થ. તમારું SIM કાર્ડ નાંખો અને ફરી પ્રયાસ કરો."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "પ્રકાર:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "પ્રતિબંધિત મીડિયા મોડનો ઉપયોગ કરવા માટે, તમારી MMS રચના મોડ સેટિંગ બદલો."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "મોકલ્યાનો સમય:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "પ્રાપ્ય થયાનો સમય:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "ટિક બોક્સ"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "સ્થિતિ:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "મોકલ્યું"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "મોકલી રહ્યાં છે..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "મોકલવાનું નિષ્ફળ થયું"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "સેકંડ"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "રોમિંગ દરમ્યાન સંદેશાને સ્વચાલિત રીતે પુનઃપ્રાપ્ત કરો."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "સંદેશાને સ્વચાલિત રીતે પુનઃપ્રાપ્ત કરો."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "અહેવાલ વાંચો: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "અન્ય વ્યક્તિ"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "સંદેશ"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "મેમો"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "નિષ્ફળ"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "ટેક્સ્ટ દાખલ કરો"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "ડ્રાફ્ટ"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "પહોચ્યાંનો અહેવાલ: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB સંદેશ"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "કૅલેન્ડર"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "તમે સંદેશા મોકલી અથવા પ્રાપ્ત કરી લો, પછી તે અહિંયા બતાવવામાં આવશે."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "તમે ઝડપી પ્રતિક્રિયાઓ બનાવી લો પછી, તે અહિંયા બતાવવામાં આવશે."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "તમે SIM કાર્ડ પર સંદેશાને કૉપિ કરી લો, પછી તે અહિંયા બતાવવામાં આવશે."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "તમે ફ્રેસીસ ઉમેરો પછી, તેઓને અહિંયા દર્શાવવામાં આવશે."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "તમે સંદેશ અવરોધિત યાદીમાં નંબરો ઉમેરી લો, પછી તે અહિંયા બતાવવામાં આવશે."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "હટાવો"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "લોડિંગ..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "સૂચનાઓ"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "સ્વયં"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "મોકલો"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "મોકલો"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "મોકલો"
+
diff --git a/main/po/hi.po b/main/po/hi.po
new file mode 100644 (file)
index 0000000..f0ad638
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "घर"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "डाटा रोमिंग अक्षम है। डाटा रोमिंग सक्षम करें और फिर से प्रयास करें।"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "नया सन्देश"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "रद्द करें"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "पूर्ण"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "मोबाइल"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "मोबाइल डाटा अक्षम है। मोबाइल डाटा सक्षम करें और फिर से प्रयास करें।"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "भेजें"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "असमर्थित मीडिया प्रकार।"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "फ़्लाइट मोड के दौरान संदेश भेजने में अक्षम। फ़्लाइट मोड अक्षम करें और फिर से प्रयास करें।"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "आगे भेजने में असमर्थ।\n फाइल अग्रेषण लॉक है।"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "आपके डिवाइस स्टोरेज में पर्याप्त स्थान नहीं है। सेटिंग्स > पॉवर और संग्रहण > संग्रहण पर जाएँ, फिर कुछ फाइलें हटाएँ और फिर से प्रयास करें।"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "शीर्ष पर टेक्‍स्‍ट"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "तल पर टेक्स्ट"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "लेआउट चुनें"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "विषय वस्तु जोड़ने में अक्षम।"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "सन्देश को %s पर भेजा जाना निर्धारित किया गया है। अभी भेजें?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "सन्देश अधिकतम आकार तक पहुँच गया।"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "बैटरी कम है।"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "अवधि कम से कम %d सेकंडों का होना चाहिए"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "फ्लाइट मोड अक्षम किया जा रहा है..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM कार्ड में कॉपी किया गया।"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "रद्द हुआ।"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "अन्य संपर्क सूचना उपयोग करें"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "इसके द्वारा भेजें"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "छवि"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ईमेल"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "बदलें"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "देखें"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "हटायें"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "चलाएँ"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "को"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "सन्देश रद्द करें"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "प्राप्तकर्ता सूची"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "पूर्वावलोकन"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "स्लाइड अवधि %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "स्लाइडशो में मदें जोड़ते समय कृपया प्रतीक्षा करें।"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "सन्देश भेजने में असमर्थ।"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "रिंगटोन चुने"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "पढ़ने की रिपोर्ट भेजी जाएगी।"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "अनुरोध नहीं है"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "प्राप्तकर्ताओं की अधिकतम संख्या (%d) तक पहुँच गया।"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "विषय प्रविष्ट करें।"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "डुप्लीकेट किया गया प्राप्तकर्ता।"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "आगे"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "सुरक्षित करने में असमर्थ।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "स्थान ढूँढने में असमर्थ।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "हटाने में असमर्थ।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "कॉपी करने में असमर्थ।"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "कुछ वर्ण खो सकते हैं।\nजारी रखें?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM नहीं डाली गई।"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "सुरक्षित करना विफल।"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "मेरी फ़ाइलों में सुरक्षित किया।"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "सन्देश पुनः प्राप्त करना असफल"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "प्रतिबंधित सामग्री प्रकार। फिर भी संलग्न करें?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "रीस्‍टोर हो रहा है..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "अस्‍वीकृत।"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "पढ़ने की रिपोर्ट"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "कोई नंबर नहीं"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "कोई संलग्नक नहीं"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "नये सन्देश"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM कार्ड से सन्देश कॉपी किया गया।"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "प्राप्तकर्ताओं की अधिकतम संख्या है %d। कुछ प्राप्तकर्ता शायद गुम हो जाएँगे"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "संलग्नकों (%s) की अधिकतम संख्या पार हुई।"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "वर्णो की संख्‍या अधिकतम पहुँची।"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "प्रगति पर..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "शुरू हो रहा है..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "यदि आप फ़ाइल बदलना नहीं चाहते, नाम बदलें"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "इस सन्देश में अदृश्य संलग्न फाइल शामिल हैं।"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "इस सन्देश में अप्रदर्शित संलग्न की गई फाइलें शामिल हैं।"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "फाइल का नाम पहले से ही मौजूद।"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "हटाया जा रहा है..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "क्लिपबोर्ड में कॉपी किया गया।"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "टेक्स्ट सन्देश में रूपांतर हो रहा है..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "मल्टीमीडिया सन्देश में रूपांतर हो रहा है..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s ब्लाक करें?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "आप ऑनलाइन (%s) होने जा रहें हैं। जारी रखें?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "टेक्स्ट सन्देश"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "विषय:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ईमेल द्वारा भेजें"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "प्रेषक"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "चुनें"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "संलग्नक सुरक्षित करें"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "सुरक्षित"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "हटायें"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "स्थापित करें"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "आगे भेजें"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "सन्देश संपादित करें"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "हटाएँ?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "सन्देश हटाएँ"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "संदेश चुनें"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "सभी सुरक्षित करें"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "सन्देश विवरण"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "समय सीमा समाप्ति: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "उन्नत खोज"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "सभी अनुलग्नकों को सुरक्षित करें"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "को:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "टेक्स्ट सन्देश"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM मेमोरी पूरी भर गई। कुछ मदें हटाएँ।"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "भेजा गया:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "अनुरोध किया गया।"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "प्राप्तकर्ता"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "प्राप्‍त:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "प्राप्त हुआ।"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "पढ़ने की रिपोर्ट"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "पुश सन्देश"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d सन्देश"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d वार्तालाप"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "अन्य"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "कोई विषय नहीं"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "नाम नहीं"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "मल्टीमीडिया सन्देश अधिसूचना"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "मल्टीमीडिया सन्देश"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "पढ़ें"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "सन्देश अस्वीकृत।"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "सन्देश आकार"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "सन्देश विकल्प"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "सन्देश वितरित हुआ"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "सन्देश"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "मेरा"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "संलग्नकों (%1$s) की अधिकतम संख्या पार हुई। केवल पहले %2$s जोड़े जाएँगे।"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "अमान्य प्राप्तकर्ता।"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "से"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "से:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "समाप्त"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "भेजना विफल हुआ।"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "वितरण रिपोर्ट"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP संदेशों"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "टेक्‍स्‍ट कॉपी करें"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB सन्देश"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "सभी"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 सन्देश"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 वार्तालाप"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "आपके द्वारा भेजे गए प्रत्येक संदेश के लिए पठन रिपोर्ट का अनुरोध करें।"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "आपके द्वारा भेजे गए प्रत्येक संदेश के लिए वितरण रिपोर्ट का अनुरोध करें।"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "रेडियो बटन"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "चालू/बंद बटन"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "विस्तार करने योग्य सूची"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS संदेशों को स्वचालित रूप से पुनः प्राप्त करना"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "फाइल का पूर्वावलोकन करने में असमर्थ। असमर्थित फाइल प्रकार।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "कुछ प्राप्तकर्ताओं को जोड़ने में असमर्थ। नंबर्स मान्य नहीं हैं।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "प्राप्तकर्ता जोड़ने में असमर्थ। नंबर मान्य नहीं है।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "प्राप्तकर्ताओं को जोड़ने में असमर्थ। नंबर्स मान्य नहीं हैं।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "संलग्नक जोड़ने में असमर्थ। संलग्नकों की अधिकतम संख्या (%d) तक पहुँच गई है।"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "यह नंबर मान्य नहीं है।"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "चयनित सन्देश, मोबाइल डिवाइस में कॉपी किए गए।"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d सन्देश, सन्देश सूची में ले जाए गए।"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "नंबर सन्देश अवरुद्ध सूची से निकाला गया।"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "नंबर सन्देश अवरुद्ध सूची में जोड़ा गया।"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "सन्देश %s SIM कार्ड में कॉपी किया गया।"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "वर्णों की अधिकतम संख्या पार हुई।"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "अधिकतम सन्देश आकार (%s) पार कर गया है। संलग्नकों का आकार बदला जा रहा है..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "अमान्य वर्ण प्रविष्ट किया गया"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "प्राप्तकर्ताओं को जोड़ें।"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 सन्देश, सन्देश सूची में ले जाया गया।"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "टेक्स्ट सन्देश"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ध्वनि"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "मल्टीमीडिया सन्देश"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM कार्ड के सन्देश"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "इनपुट मोड"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "रोमिंग में स्वतः पुनर्प्राप्ति"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "स्वतः पुनर्प्राप्ति"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "अभी भेजें"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "नहीं"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "सन्देश लिखने के लिए एक इनपुट मोड चुनें।"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "कुछ नहीं"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "आपके SIM कार्ड पर संग्रहीत सन्देश प्रबंधित करें।"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "आपका संदेश निरस्त कर दिया जाएगा। कोई प्राप्तकर्ता चयनित नहीं हैं।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "अनुसूचित सन्देश भेजने में असमर्थ। दूसरा समय सेट करें।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "कॉल के दौरान चलाने में असमर्थ।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "फाइल संलग्न करने में असमर्थ। फाइल आकार बहुत बड़ा है। ईमेल, ब्लूटूथ, Wi-Fi, इत्यादि के माध्यम से भेजने का प्रयास करें।"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "यह मल्टीमीडिया सन्देश भेजने के लिए, डिवाइस किसी भिन्न मोबाइल नेटवर्क से कनेक्ट होगा। ऐसा करने से आपका डिवाइस आपके वर्तमान मोबाइल नेटवर्क से डिस्कनेक्ट हो जाएगा।"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "यह मल्टीमीडिया सन्देश डाउनलोड करने के लिए, डिवाइस किसी भिन्न मोबाइल नेटवर्क से कनेक्ट हो जाएगा। यह आपके डिवाइस को आपके वर्तमान मोबाइल नेटवर्क से डिस्कनेक्ट कर देगा।"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "यह सन्देश फिर से भेजा जाएगा।"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d सन्देशों को हटाया जाएगा।"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d वार्तालाप हटाए जाएँगे।"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "सूची में टेम्पलेट्स नहीं"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "केवल आने वाले सन्देश"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "जाने वाले सन्देश में मूल टेक्स्ट शामिल करें"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "अवधि %d सेकंड से कम होना आवश्‍यक है।"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "हटाया।"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 सन्देश हटाया जाएगा।"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 वार्तालाप हटाया जाएगा।"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "विवरण देखें"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "संपर्क विवरण देखें"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "स्लाइडशो के रूप में देखें"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "वीडियो"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "संपर्क अपडेट करें"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "यूनिकोड"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "टेक्स्ट"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "तस्वीर लें"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "खोजें"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "अनुलग्नक सुरक्षित करें"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "पुन: भेजें"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "जवाब दें"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "अवरुद्ध सूची से निकालें"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "वीडियो रिकॉर्ड करें"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "ऑडियो फाइल रिकॉर्ड करें"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "शीघ्र उत्तर"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "कुछ नहीं"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "वॉइस कॉल करें"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "छवियाँ"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM अक्षर"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "डिवाइस मेमोरी पर निर्यात करें"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "संपादित करें"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "सन्देश हटाएँ"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "वार्तालाप हटाएँ"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "डिफॉल्ट"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "संपर्क बनाएँ"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM कार्ड पर कॉपी करें"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "डिवाइस में कॉपी करें"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "टेक्‍स्‍ट कॉपी करें"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "कॉपी करें"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "बैकअप लें"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "स्वचालित"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "ऑडियो फाइलें"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "अनुलग्नक"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "संपर्क में जोड़ें"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "अवरुद्ध सूची में जोड़ें"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "प्राप्तकर्ताओं को जोड़ें"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "खोजें"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "कोई परिणाम नहीं मिला"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "कोई शीघ्र जवाब नहीं"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "कोई अवरुद्ध किए गए वाक्यांश नहीं हैं"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM कार्ड पर कोई सन्देश नहीं हैं"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "कोई सन्देश नहीं हैं"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "कोई अवरुद्ध नंबर नहीं"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "कंपन"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "अज्ञात नंबर"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "टेक्‍स्‍ट सन्देश केन्द्र नंबर"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "सभी चुनें"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "सतर्क"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "अनुवाद करें"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "टेक्स्ट सन्देश"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "मोबाइल नेटवर्क स्विच करें"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS केन्द्र"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "प्राप्‍तकर्ता चुनें"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d चयनित"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM कार्ड के सन्देश"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "सन्देश"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "इनपुट मोड"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "फाइल आकार बहुत बड़ा है"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "सन्देश भेजने में विफल"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "सन्देश निरस्त करें"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "बनाएँ"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "ध्यान दें"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "सामग्री जोड़ें"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "स्विच करें"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "सुरक्षित"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "पुनः भेजें"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "निकालें"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ओके"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "डाउनलोड"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "निरस्त करें"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "हटाएँ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "रद्द करें"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "रद्द करें"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "संपर्क"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "आपने किसी साउंड और शॉट फाइल का चयन किया है। MMS के लिए ध्वनि डाटा समर्थित नहीं है इसलिए केवल तस्वीर संलग्न की जाएगी।"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "हाँ"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "भेजने के प्रतीक्षा कर रहा है..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "यह सन्देश भेजने में अक्षम। आपका SIM कार्ड प्रविष्ट करें और फिर से प्रयास करें।"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "प्रकार:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "प्रतिबंधित मीडिया प्रकार उपयोग करने के लिए, अपनी MMS निर्माण मोड सेटिंग बदलें।"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "भेजने का समय:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "प्राप्ति का समय:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "टिक बॉक्स"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "स्थिति:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "भेजा गया"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "भेज रहा है..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "भेजना विफल हुआ"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "सेकंड"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "रोमिंग के दौरान स्वचालित रूप से सन्देश पुनर्प्राप्त करें।"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "स्वचालित रूप से सन्देश पुनर्प्राप्त करें।"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "रिपोर्ट पढ़ें: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "अन्य व्यक्ति"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "सन्देश"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "मेमो"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "विफल"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "टेक्स्ट प्रविष्ट करें"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "ड्राफ्ट"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "वितरण रिपोर्ट: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB सन्देश"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "कैलेंडर"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "आपके द्वारा सन्देश भेजने या प्राप्त करने के बाद, वे यहां दिखाए जाएँगे।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "आपके द्वारा शीघ्र जवाब बनाने के बाद, वे यहां दिखाए देंगे।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "आपके द्वारा सन्देशों को SIM कार्ड में कॉपी करने के बाद, वे यहां दिखाई देंगे।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "आपके द्वारा वाक्यांश जोड़ने के बाद, वे यहाँ दिखाई देंगे।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "आपके द्वारा सन्देश अवरुद्ध सूची में नंबर्स जोड़ने के बाद, वे यहाँ दिखाई देंगे।"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "हटाएँ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "लोड हो रहा है..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "अधिसूचनाएँ"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "मेरा"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "भेजे"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "भेजें"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "भेजे"
+
diff --git a/main/po/hr.po b/main/po/hr.po
new file mode 100644 (file)
index 0000000..85bc851
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Kuća"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Podatkovni roaming je isključen. Uključite podatkovni roaming i pokušajte ponovno."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nova poruka"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ODUSTANI"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "GOTOVO"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobitel"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilni podaci su isključeni. Uključite mobilne podatke i pokušajte ponovno."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "POŠALJI"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Nepodržani mediji."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Nemoguće slati poruke u profilu Bez mreže. Isključite profil Bez mreže i ponovite."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Prosljeđivanje nemoguće\nDatoteka zaključana za prosljeđivanje."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Nema dovoljno prostora u memoriji uređaja. Idite na Postavke > Baterija i memorija > Memorija, zatim izbrišite neke datoteke i pokušajte ponovno."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Tekst na vrh"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Tekst na dnu"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Odaberite izgled"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Nemoguće dodati."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Poruka zakazana za slanje na %s. Poslati sad?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Maks. veličina poruke."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Baterija skoro prazna."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Duljina mora biti bar %d sek."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Isključivanje načina rada u zrakoplovu..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Kopirano na SIM karticu."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Prekinuto."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Kor. dru. kontak. pod."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Pošalji putem"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Slika"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Email"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Zamijeni"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Prikaz"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Ukloni"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Reproduciraj"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Za"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Poništi poruku"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Popis primatelja"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Pregled"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Trajanje stranice %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Pričekajte dok se stavke dodaju u prezentaciju."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Nemoguće poslati poruku."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Odaberite ton zvona"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Slanje izvještaja o čitanju"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Nije zatraženo"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Maksimalni broj primatelja (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Unesite naslov."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Primatelji su duplicirani."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Proslij."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Spremanje nemoguće."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Nemoguće pronaći lokaciju."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Brisanje nemoguće."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Nemoguće kopirati."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Neki znakovi bi mogli biti obrisani.\nNastaviti?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "Umetnite SIM karticu."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Spremanje neuspješno."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Spremljeno u Moje datoteke."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Preuzimanje poruke neuspješno"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Ograničena vrsta sadržaja. Svejedno dodati?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Vraćanje..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Odbačeno."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Izvještaj o čitanju"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Nema broja"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Bez privitaka"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nove poruke"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Poruka kopirana sa SIM kartice."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maks. broj primatelja je %d. Neki primatelji će biti obrisani."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Maks. broj privitaka (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Maks. broj znakova."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "U tijeku..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Pokretanje..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Ako ne želite zamijeniti datoteku, preimenujte je."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Poruka sadrži privitak koji nije prikazan."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Poruka sadrži privitke koji nisu prikazani."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Ime datoteke već postoji."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Brisanje..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Kopirano u međuspremnik."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Promjena u SMS..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Promjena u MMS..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Blokirati %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Spajanje na internet (%s). Nastaviti?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Naslov:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Šalji putem email poruke"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Pošiljatelj"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Odaberi"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Spremi privitak"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Spremi"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Ukloni"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instalirati"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Proslijedi"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Uredi poruku"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Obrisati?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Obriši poruke"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Odaberite poruke"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Spremi sve"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Detalji poruke"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Istek: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Napredno pretraživanje"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Spremi sve privitke"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "To:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS poruke"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM memorija puna. Obrišite neke stavke."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Postavke"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Poslano:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Zatraženo."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Primatelji"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Primljeno:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Primljeno."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Izvještaj o čitanju"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push poruke"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d poruka"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d razgovora"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Ostalo"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Bez naslova"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Nema imena"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "MMS obavijest"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Čitaj"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Poruka odbijena."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Veličina poruke"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Opcije poruka"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Poruka isporučena"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Poruka"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Ja"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Maks. broj privitaka (%1$s) premašen. Dodat će se samo prvih %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Neispravan primatelj."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Od"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Šalje:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Isteklo"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Slanje neuspješno."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Izvješće o isporuci"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP poruke"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopiraj tekst"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB poruke"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Sve"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 poruka"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 razgovor"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Zahtjev izvješća o pročitanosti za sve poslane poruke."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Zahtjev izvješća o isporuci za sve poslane poruke."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Tipka za radio"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Gumb za uključivanje/isključivanje"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Popis koji se može proširiti"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Automatski preuzmi MMS poruke."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Pregled datoteke nije moguć. Vrsta datoteke nije podržana."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Nije moguće dodati neke primatelje. Brojevi nisu valjani."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Nije moguće dodati primatelja. Broj nije valjan."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Nije moguće dodati primatelje. Brojevi nisu valjani."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Nije moguće dodati privitak. Dosegnut je maksimalni broj privitaka (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Broj nije valjan."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Odabrane su poruke kopirane na mobilni uređaj."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "Broj poruka premještenih u popis poruka: %d."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Broj uklonjen s popisa za blokiranje poruka."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Broj dodan na popis za blokiranje poruka."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Poruka kopirana na SIM karticu %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Maksimalni broj znakova premašen."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Premašena maksimalna veličina poruke (%s). Promjena veličine privitaka..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Unesen je neispravan znak."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Dodajte primatelje."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 poruka premještena u popis poruka."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Tekstualne poruke"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Zvuk"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimedijske poruke"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Poruke na SIM kartici"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Način unosa"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Automatska preuzim. u roamingu"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Automatsko preuzimanje"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Šalji sad"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Ne"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Odaberite način unosa za sastavljanje poruka."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Nema"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Upravljajte porukama pohranjenim na SIM kartici."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Poruka će biti odbačena. Nisu odabrani primatelji."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Nije moguće poslati zakazanu poruku. Postavite drugo vrijeme."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Nemoguće reprod. tijekom poziva."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Nemoguće priložiti datoteku. Datoteka je prevelika. Pokušajte poslati putem emaila, Bluetootha, Wi-Fi itd."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Za slanje ove multimedijske poruke uređaj će se povezati na drugu mobilnu mrežu. Zbog toga vaš uređaj više neće biti povezan s trenutnom mobilnom mrežom."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Za preuzimanje ove multimedijske poruke uređaj će se povezati na drugu mobilnu mrežu. To će odspojiti vaš uređaj s trenutne mobilne mreže."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Ova će se poruka ponovo poslati."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d poruka će se obrisati."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d razgovora će biti obrisano."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Nema obrazaca na popisu"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Samo dolazne poruke"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Ubaci originalni tekst u odlaznoj poruci"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Trajanje mora biti kraće od %d sek."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Obrisano."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 poruka bit će obrisana."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Izbrisat će se 1 razgovor."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Prikaz detalja"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Prikaz detalja kontakta"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Prikaži kao prezentaciju"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Aktualiziraj kontakt"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Tekst"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Fotografiraj"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Postavke"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Traži"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Spremi privitke"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Ponovno šalji"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Odgovori"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Ukloni s popisa za blokiranje"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Snimi videozapis"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Snimi audiodatoteke"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Brzi odgovor"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Ništa"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Uputi glasovni poziv"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Slike"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM abeceda"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Izvoz u memoriju uređaja"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Uredi"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Obriši poruku"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Izbriši razgovor"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Zadano"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Kreiraj kontakt"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopiraj na SIM karticu"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopiraj na uređaj"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopiraj tekst"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopija"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Izradi sigurnosnu kopiju"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatski"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Audiodatoteke"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Privitak"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Dodaj u Imenik"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Dodaj na popis za blokiranje"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Dodaj primatelje"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Traži"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Nema rezultata"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Nema brzih odgovora"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Nema blokiranih fraza"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Nema poruka na SIM kartici"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Nema poruka"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Nema blokiranih brojeva"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibracija"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Nepoznati broj"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Broj centra za SMS poruke"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Odaberi sve"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Upozorenja"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Prijevod"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Tekstualne poruke"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Promjena mobilne mreže"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS centar"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Postavke"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Odaberite primatelja"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d odabrano"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Poruke na SIM kartici"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Poruke"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Način unosa"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Prevelika veličina datoteke"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Neuspješno slanje poruke"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Odbaci poruku"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Nova"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Pozor"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Dodavanje sadržaja"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Promijeni"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Spremi"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Ponovo pošalji"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Ukloni"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "U redu"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Preuzmi"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Odbaci"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Izbriši"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Prekid"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Prekid"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Imenik"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Odabrali ste datoteku zvuk & snimka. MMS ne podržava podatke o zvuku pa je samo slika dodana u privitku."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Da"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Čekanje za slanje..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Nemoguće poslati poruku. Umetnite SIM karticu i pokušajte ponovno."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Vrsta:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Kako biste koristili ograničene vrste medija, promijenite postavke načina sastavljanja MMS poruka."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Vrijeme slanja:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Vrijeme primitka:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Potvrdni okvir"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Poslano"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Slanje..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Slanje nije uspjelo"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sek"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Automatski preuzmite poruke u roamingu."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Automatski preuzmite poruke."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Izvješće o pročitanosti: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Druga osoba"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Poruka"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Zapis"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Pogreška"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Upišite tekst"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Skica"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Izvješće o isporuci: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB poruka"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalendar"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nakon što pošaljete ili primite poruke, prikazat će se ovdje."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nakon što ih stvorite, brzi odgovori prikazat će se ovdje."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nakon što ih kopirate na SIM karticu, poruke će se prikazati ovdje."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Fraze će se prikazati ovdje nakon što ih dodate."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nakon što dodate brojeve na popis za blokiranje poruka, prikazat će se ovdje."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "IZBRIŠI"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Učitavanje..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Obavijesti"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Ja"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Šalji"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Šalji"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ŠALJI"
+
diff --git a/main/po/hu.po b/main/po/hu.po
new file mode 100644 (file)
index 0000000..6aab977
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Otthoni"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Az adatroaming le van tiltva. Engedélyezze az adatroamingot, és próbálja újra."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Új üzenet"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "MÉGSE"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "KÉSZ"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Ismeretlen"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "A mobil internetkapcsolat le van tiltva. Engedélyezze a mobil internetkapcsolatot, és próbálja újra."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "KÜLDÉS"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Nem támogatott médiatípus"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Repülő üzemmódban nem lehet üzenetet küldeni. Kapcsolja ki a Repülő üzemmódot, és próbálja újra."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Nem lehet továbbküldeni. A fájl védett a továbbküldés ellen."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Nincs elég hely az eszköz tárhelyén. Válassza a Beállítások > Energia és tárhely > Tárhely pontot, töröljön fájlokat, majd próbálja újra."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Szöveg felülre"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Szöveg alul"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Elrendezés kiválasztása"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "A tartalom nem adható hozzá."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Be van ütemezve az üzenet küldése %s felhasználónak. Elküldi most?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Elérte a maximális üzenetméretet."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Az akkumulátor lemerült."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Az időtartamnak legalább %d másodpercnek kell lennie."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Repülő üzemmód kikapcsolása..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM kártyára másolva."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Megszakítva."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Más kapcs.info. haszn."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Küldés"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Kép"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Csere"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Megtekint"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Eltávolít"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Lejátszás"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Címzett"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Üzenet visszavonása"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Címzettlista"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Előnézet"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "%d./%d dia időtartama"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Várja meg a tételek hozzáadását a diabemutatóhoz."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Nem lehet elküldeni az üzenetet."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Csengőhang kiválasztása"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "A készülék olvasási jelentést fog küldeni."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Nem kérték"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Elérte a címzettek maximális számát (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Írja be a tárgyat."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Kétszer előforduló címzett"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Tov.k."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Nem menthető."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Nem található a hely."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Nem törölhető."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Nem lehet átmásolni."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Bizonyos karakterek elveszhetnek.\nFolytatja?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "Nincs behelyezve SIM."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "A mentés nem sikerült."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Mentve a Saját fájlok közé."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Üzenet fogadása sikertelen"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Korlátozott típusú tartalom. Így is kívánja csatolni?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Visszaállítás..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Elutasítva."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Olvasási jelentés"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Nincs szám"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Nincs melléklet"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Új üzenet"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Üzenet átmásolva a SIM kártyáról."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "A címzettek maximális száma %d. Néhány címzett elveszhet."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Túllépte a mellékletek maximális számát (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Nincs hely több karakternek."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Folyamatban..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Inicializálás..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Ha nem szeretné lecserélni a fájlt, nevezze át."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Ez az üzenet nem megjeleníthető mellékletet tartalmaz."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Ez az üzenet megjelenítetlen csatolt fájlokat tartalmaz."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Ez a fájlnév már létezik."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Törlés..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "A vágólapra másolva."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Átalakítás szöveges üzenetté..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Átalakítás multimédia üzenetté..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Letiltja %s felhasználót?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Kapcsolódni készül (%s). Folytatja?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Szöveges üzenet"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Tárgy:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Küldőnek e-mailben"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Küldő"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Választ"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Melléklet mentése"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Ment"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Eltávolít"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Telepít"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Továbbküldés"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Üzenet szerkesztése"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Törli?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Üzenetek törlése"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Üzenetek kiválasztása"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Összes mentése"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Üzenet részletei"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Elévül: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Speciális keresés"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Ö. melléklet mentése"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Ismeretlen"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Címzett:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Szöveges üzenetek"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "A SIM kártya megtelt. Töröljön néhány tételt."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Beállítások"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Elküldve:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Kérés"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Címzettek"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Fogadva:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Fogadva."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Olvasási jelentés"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push üzenetek"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d üzenet"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d beszélgetés"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Egyéb"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Üres tárgymező"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Nincs név"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Multimédia üzenet jelzése"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimédia üzenet"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Olvas"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Az üzenet elutasítva."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Üzenet mérete"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Üzenetopciók"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Az üzenet kézbesítve"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Üzenet"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Én"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Túllépte a mellékletek maximális számát (%1$s). Csak az első %2$s lesz hozzáadva."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Érvénytelen címzett"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Feladó"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Feladó:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Lejárt"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "A küldés sikertelen."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Kézbesítési jelentés"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Tartalomszolgáltatási üzenetek"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Szöveg másolása"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Hírüzenetek"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Mind"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 üzenet"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 beszélgetés"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Olvasási jelentés kérése minden elküldött üzenetnél"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Kézbesítési jelentés kérése minden elküldött üzenetnél"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Választógomb"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Be-ki gomb"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Kibontható lista"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS üzenetek automatikus letöltése"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Nem jeleníthető meg a fájl előnézete. Az alkalmazás nem támogatja ezt a fájltípust."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Néhány címzettet nem lehet hozzáadni. Nem érvényes a számuk."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Nem lehet hozzáadni a címzettet. Nem érvényes a száma."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Nem lehet hozzáadni a címzetteket. Nem érvényes a számuk."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Nem lehet több mellékletet hozzáadni. Elérte a mellékletek maximális számát (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "A szám nem érvényes."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "A mobileszközre másolta a kijelölt üzeneteket."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d üzenetet áthelyezett az üzenetlistára."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Eltávolította a számot az üzenetblokkolási listáról."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Felvette a számot az üzenetblokkolási listára."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Átmásolta az üzenetet a(z) %s SIM kártyára."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Túllépte a karakterek maximális számát."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Túllépte a maximális üzenetméretet (%s). Mellékletek átméretezése..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Érvénytelen karaktert vitt be."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Adjon hozzá címzetteket."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 üzenetet áthelyezett az üzenetlistára."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Szöveges üzenetek"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Hang"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimédiás üzenetek"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Üzenetek a SIM kártyán"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Beviteli mód"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Automatikus letöltés roamingban"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Automatikus letöltés"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Küldés"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Nem"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Beviteli módot választhat az üzenetíráshoz."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Nincs"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Kezelheti a SIM kártyán tárolt üzeneteket."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Az üzenet el lesz vetve. Nem választott ki érvényes címzettet."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Nem lehet elküldeni az ütemezett üzenetet. Más időt állítson be."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Hívás közben nem lehet lejátszani."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "A fájl nem csatolható. Túl nagy a fájl. Próbálja e-mailben, Bluetooth-on, Wi-Fi-n stb. küldeni"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Az eszköz egy másik mobilhálózathoz kapcsolódik a multimédiás üzenet elküldéséhez. Így megszakad a kapcsolata a jelenlegi mobilhálózattal."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Az eszköz egy másik mobilhálózathoz kapcsolódik a multimédiás üzenet letöltéséhez. Így megszakad az eszköz kapcsolata a jelenlegi mobilhálózattal."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Az eszköz újraküldi az üzenetet."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d üzenetet törölni fog."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Törölni fog %d beszélgetést."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "A lista nem tartalmaz sablont"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Csak a bejövő üzenetek"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Eredeti szöveg hozzávétele a kimenő üzenethez"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Az időtartamnak rövidebbnek kell lennie %d másodpercnél."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Törölve."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "Törölni fog 1 üzenetet."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Töröl 1 beszélgetést."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Részletek megtekintése"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Névadatok megtekintése"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Megtekintés diavetítésként"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videók"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Névjegy frissítése"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Ékezetes"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Szöveg"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Kép készítése"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Beállítások"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Keresés"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Mellékletek mentése"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Újraküldés"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Válasz"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Eltávolítás a tiltólistáról"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Videofelvétel"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Hangfájl rögzítése"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Gyors válasz"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Nincs"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Hanghívás indítása"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Képek"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Ékezet nélkül"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Exportálás a memóriájába"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Szerkeszt"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Üzenet törlése"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Beszélgetés törlése"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Töröl"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Alapértelmezett"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Névjegy létrehozása"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Másolás a SIM kártyára"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Másolás az eszközre"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Szöveg másolása"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Másolás"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Biztonsági mentés"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatikus"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Hangfájlok"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Melléklet"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Felvétel a Névjegyzékbe"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Hozzáadás a tiltólistához"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Címzettek hozzáadása"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Keresés"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Nincs találat"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Nincs gyors válasz"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Nincsenek blokkolt szavak"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Nincs üzenet a SIM kártyán"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Nincs üzenet"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Nincs blokkolt szám"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Rezgés"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Ismeretlen szám"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Szövegesüzenet-központ száma"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Összes kijelölése"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Jelzések"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Fordítás"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Szöveges üzenetek"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Mobilhálózat-váltás"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS-központ"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Beállítások"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Címzett kiválasztása"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d kijelölve"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Üzenetek a SIM kártyán"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Üzenetek"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Beviteli mód"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "A fájl túl nagy méretű"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Nem sik. elküldeni az üzenetet"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Üzenet elvetése"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Törlés"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Létrehozás"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Figyelem"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Tartalom hozzáadása"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Váltás"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Mentés"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Újraküldés"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Eltávolít"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Letöltés"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Elvetés"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Törlés"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Mégse"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Mégse"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Névjegyzék"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Hangosképfájlt választott ki. Mivel az MMS nem támogatja hangadatokat, csak a kép lesz csatolva."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Igen"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Várakozás a küldésre..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Nem sikerült elküldeni az üzenetet. Helyezze be a SIM kártyát, és próbálja újra."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Típus:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Korlátozott médiatípusok használatához módosítsa az MMS-létrehozási mód beállítását."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Küldés időpontja:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Fogadás időpontja:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Jelölőnégyzet"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Állapot:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Elküldve"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Küldés..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Sikertelen küldés"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "mp"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Roaming közben automatikusan letölti az üzeneteket."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Automatikusan letölti az üzeneteket."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Olvasási jelentés: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Más személy"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Üzenet"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Jegyzet"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Hiba"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Szöveg bevitele"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Piszkozat"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Kézbesítési jelentés: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Hírüzenet"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Naptár"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Itt jelennek majd meg az elküldött és fogadott üzenetek."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Itt jelennek majd meg a létrehozott gyors válaszok."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Itt jelennek majd meg a SIM kártyára másolt üzenetek."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Itt jelennek majd meg a hozzáadott szavak."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Itt jelennek majd meg az üzenetblokkolási listához adott számok."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "TÖRLÉS"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Betöltés..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Értesítések"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Én"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Küld"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Küld"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "KÜLD"
+
diff --git a/main/po/hy.po b/main/po/hy.po
new file mode 100644 (file)
index 0000000..6d62ebd
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Տուն"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Տվյալների ռոումինգը կասեցված է: Ընձեռեք տվյալների ռոումինգ և նորից փորձեք:"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "նոր հաղորդագրություն"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ԴԱԴԱՐԵՑՆԵԼ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ԱՐՎԱԾ"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Անհայտ"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Բջջային"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Շարժական տվյալները կասեցված են: Ընձեռեք շարժական տվյալները և նորից փորձեք:"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ՈՒՂԱՐԿԵԼ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Չհամապատասխանող մեդիայի տեսակ:"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Անհնար է հաղորդագրություններ ուղարկել Թռիչքային ռեժիմում: Կասեցրեք Թռիչքային ռեժիմը և նորից փորձեք:"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Անհնար է վերահասցեավորել:\nՖայլը արգելափակված է վերահասցեավորումից:"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Ձեր սարքի պահոցում բավարար տեղ չկա: Գնացեք Դրվածքներ > Էներգիա և պահոց > Պահոց, հետո վերացրեք որոշ ֆայլեր և նորից փորձեք:"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Տեքստը վերևում"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Գրվածքը ստորև է"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Ընտրել դասավորություն"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Անհնար է բովանդակություն ավելացնել:"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Պլանավորված է հաղորդագրությունն ուղարկել %sին. ուղարկե՞լ հիմա:"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Հասել է հաղորդագրության առավելագույն չափին:"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Մարտկոցի լիցքը թույլ է:"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Տևողությունը պետք է լինի առնվազն %d վայրկյան:"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Թռիչքային ռեժիմը կասեցվում է..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Պատճենվել է SIM քարտի մեջ:"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Չեղարկված է:"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Օգտ. այլ կոնտ. տվյլներ"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Ուղարկել ... միջոցով"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Պատկեր"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Էլ.փոստ"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Փոխարինել"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Դիտել"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Հեռացնել"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Նվագել"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Ում"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Դադարեցնել հաղորդագրությունը"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Ստացողների ցանկ"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Դիտել"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Սլայդի տևողությունը %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Սպասեք, մինչև տարրերն ավելացվում են սլայդերի ցուցադրմանը:"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Հնարավոր չէ ուղարկել հաղորդագրությունը:"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Ընտրե՛ք զանգերանգը"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Ընթերցման հաղորդումը կուղարկվի:"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Չի պահանջվել"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Հասել է հասցեատերերի առավելագույն քանակին (%d):"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Մուտքագրեք թեման:"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Կրկնակված հասցեատեր:"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Առաջ"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Անհնար է պահել:"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Անհնար է տեղը գտնել:"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Անհար է ջնջել:"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Հնարավոր չէ պատճենել:"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Որոշ նշաններ կարող են կորչել:\nՇարունակե՞լ:"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM-ը տեղադրված չէ:"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Պահպանումը ձախողվեց:"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Պահպանվել է Իմ Ֆայլերում:"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Հաղորդագրության ստացումը ձախողվեց"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Սահմանափակ տիպի բովանդակություն. կցե՞լ ամեն դեպքում:"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Վերականգնումն ընթացքում է..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Մերժված է:"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Ընթերցման հաշվետվություն"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Համար չկա"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Ներդիր չկա"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "նոր հաղորդագրություններ"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Հաղորդագրությունը պատճենվեց SIM քարտից:"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Ստացողների առավելագույն քանակը %d է: Որոշ ստացողներ գուցե կորչեն:"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Կցուրդների առավելագույն քանակը (%s) գերազանցվել է:"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Հասել եք նիշերի առավելագույն քանակին:"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Ընթացքում է..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Գործարկում..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Եթե չեք ուզում փոխարինել ֆայլը, այն վերանվանեք:"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Այս հաղորդագրությունը պարունակում է կցված ֆայլ, որը չի ցուցադրվում:"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Այս հաղորդագրությունը ներառում է չպատկերված կից ֆայլեր:"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Ֆայլի անունն արդեն գոյություն ունի:"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Ջնջվում է..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Պատճենվել է գզրոցի մեջ:"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Փոխարկվում է տեքստային հաղորդագրության..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Փոխարկվում է մուլտիմեդիա հաղորդագրության..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Արգելափակե՞լ %sին:"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Դուք կմիանաք ցանցին(%s): Շարունակե՞լ"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Տեքստային հաղորդագրություն"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Թեմա՝"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Էլ. փոստի միջոցով ուղարկող"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Ուղարկող"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Ընտրել"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Պահպանել կիցը"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Պահպանել"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Հեռացնել"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Տեղադրել"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Վերահասցեավորել"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Խմբագրել հաղորդագրությունը"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Ջնջե՞լ"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Վերացնել հաղորդագրություններ"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Ընտրել ուղերձներ"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Պահպանել բոլորը"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Հաղորդագրության մանրամասներ"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Սպառված է. %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Ընդլայնված որոնում"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Պհպ. բոլոր կցուրդներ"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Անհայտ"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Ում՝"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Տեքստային հաղորդագրություններ"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM հիշողությունը լիքն է. վերացնել որոշ տարրեր:"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Պարամետրեր"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Ուղարկված՝"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Պահանջված:"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Ստացողներ"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Ստացված."
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Ստացված է:"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Ընթերցման հաշվետվություն"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push հաղորդագրություններ"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d հղրդ."
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d խոսակցություն"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Այլ"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Թեմա չկա"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Անուն չկա"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Մուլտիմեդիա հաղորդագրության ծանուցում"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Մուլտիմեդիա հաղորդագրություն"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "ԿԲ"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Ընթերցել"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Հաղորդագրությունը մերժված է:"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Հաղորդագրության չափը"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Հաղորդագրության ընտրանքներ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Հաղորդագրությունը առաքված է"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Հաղորդագրություն"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Իմ կողմից"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Կցուրդների առավելագույն քանակը (%1$s) գերազանցվել է: Կավելացվի միայն առաջին %2$s-ը:"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Անվավեր հասցեատեր:"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Ումից"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Ումից՝"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Սպառվել է"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Ուղարկումը ձախողվեց:"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Առաքման զեկույց"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP հաղորդագրություններ"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Պատճենել տեքստը"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "ԲՀ հաղորդագրություններ"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Բոլոր"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 հաղորդագրություն"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 խոսակցություն"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Ընթերցման մասին հաղորդում պահանջել Ձեր ուղարկած յուրաքանչյուր հաղորդագրության համար:"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Առաքման մասին հաղորդում պահանջել Ձեր ուղարկած յուրաքանչյուր հաղորդագրության համար:"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Ռադիոկոճակ"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Միացնել/անջատել կոճակ"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Ընդլայնելի ցուցակ"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Ինքնաբերաբար առբերել MMS հաղորդագրություններ:"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Անհնար է նախադիտել ֆայլը. ֆայլի չապահովված տիպ:"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Անհնար է որոշ հասցեատերեր ավելացնել. համարները վավերական չեն:"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Անհնար է ավելացնել հասցեատեր. համարը վավերական չէ:"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Անհնար է ավելացնել հասցեատերեր. համարները վավերական չեն:"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Անհնար է կցուրդ ավելացնել: Հասել է կցուրդների առավելագույն քանակին (%d):"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Այս համարը վավեր չէ:"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Ընտրված հաղորդագրությունները պատճենվեցին շարժական սարքում:"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d հաղորդագրություն տեղափոխվեց դեպի հաղորդագրությունների ցանկը:"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Համարը հեռացվեց հաղորդագրությունների արգելափակման ցուցակից:"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Համարն ավելացվեց հաղորդագրությունների արգելափակման ցուցակին:"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Հաղորդագրությունը պատճենվեց %s SIM քարտի մեջ:"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Նիշերի առավելագույն քանակը գերազանցվել է:"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Հաղորդագրության առավելագույն չափը (%s) գերազանցվել է: Կցուրդների չափերը փոխվում են..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Անվավեր նիշ է մուտքագրվել"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Ավելացրեք հասցեատերեր:"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 հաղորդագրություն տեղափոխվեց դեպի հաղորդագրությունների ցանկը:"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Տեքստային հաղորդագրություններ"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Հնչյուն"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Մուլտիմեդիա հաղորդագրություններ"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Հաղորդգրություններ՝ SIM քարտում"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Ներածման ռեժիմ"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Ինքնառբերել ռոումինգի ժամանակ"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Ինքնառբերում"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Ուղ. հիմա"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Ոչ"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Ընտրել ներածման ռեժիմ՝ հաղորդագրություններ ստեղծելու համար:"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Ոչ մի"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Կառավարեք SIM քարտում պահվող հաղորդագրությունները:"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Ձեր հաղորդագրությունը դեն կնետվի. ոչ մի հասցեատեր չի ընտրվել:"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Անհնար է պլանավորված հաղորդագրություն ուղարկել: Դրեք այլ ժամ:"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Անհնար է վերարտադրել կանչի ընթացքում:"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Անհնար է ֆայլը կցել: ֆայլի չափը շատ մեծ է: Փորձեք ուղարկել Էլ. փոստով, Bluetooth-ով, Wi-Fi-ով և այլն:"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Այս մուլտիմեդիա հաղորդագրությունն ուղարկելու համար սարքը կմիանա ուրիշ շարժական կապի ցանցի: Դա սարքը կանջատի Ձեր ընթացիկ շարժական կապի ցանցից:"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Այս մուլտիմեդիա հաղորդագրությունը ներբեռնելու համար սարքը կմիանա ուրիշ շարժական կապի ցանցի: Դա սարքը կանջատի Ձեր ընթացիկ շարժական կապի ցանցից:"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Այս հաղորդագրությունը նորից կուղարկվի:"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d հաղորդագրություն կվերացվի:"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d խոսակցություններ կվերացվեն:"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Ցուցակում ձևանմուշներ չկան"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Միայն մտից հաղորդագրություններ"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Սկզբնական տեքստը ներառել ելից հաղորդագրության մեջ"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Տևողությունը պետք է լինի %d վայրկյանից կարճ:"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Ջնջված է:"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 հաղորդագրություն կվերացվի:"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 երգ կվերացվի:"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Դիտել մանրամասները"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Դիտել կոնտակտի տվյալները"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Դիտել որպես սլայդ. ցուցադրում"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Տեսահոլովակներ"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Թարմացնել կոնտակտը"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Տեքստ"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Լուսանկարել"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Պարամետրեր"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Որոնել"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Պահպանել կցուրդները"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Նորից ուղարկել"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Պատասխանել"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Հեռացնել արգելացուցակից"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Տեսագրել տեսանյութ"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Գրանցել\nձայնաֆայլ"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Արագ պատասխան"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Չկա"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Կատարել ձայնականչ"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Պատկերներ"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM այբուբեն"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Արտահանել դեպի սարքի հիշողություն"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Խմբագրել"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Վերացնել հաղորդագրությունը"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Վերացնել խոսակցություն"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Ջնջել"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Լռելյայն"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Ստեղծել կոնտկտ"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Պատճենել SIM քարտի մեջ"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Պատճենել սարքի մեջ"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Պատճենել տեքստը"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Պատճենել"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Կրկնօրինակել"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Ավտոմատ"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Ձայնային ֆայլեր"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Կցուրդ"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Ավելացնել Կոնտակտներին"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Ավլցնել արգլփկ. ցանկին"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Ավելացնել հասցեատերեր"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Որոնել"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Արդյունքներ չեն գտնվել"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Արագ պատասխաններ չկան"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Արգելափակված արտահայտություններ չկան"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Հաղորդագրություններ չկան SIM քարտում"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Նոր հաղորդագր-ր չկան"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Արգելափակված համարներ չկան"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Թրթռում"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Անհայտ համար"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Տեքստ. հղգրթյան կենտրոնի համար"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Ընտրել բոլորը"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Զգուշացումներ"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Թարգմանել"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Տեքստային հաղորդագրություններ"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Փոխել շարժական կապի ցանցը"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS կենտրոն"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Պարամետրեր"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Ընտրել հասցեատեր"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d ընտրված"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Հաղորդագրթյուններ՝ SIM քարտում"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Հղրդգրթ"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Ներմուծման ռեժիմ"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Ֆայլի չափը շատ մեծ է"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Չհաջողվեց ուղարկել հղրդգրթյուն"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Դեն նետել հաղորդագրությունը"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Վերացնել"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Ստեղծել"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Ուշադրություն"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Ավելացնել բովանդակություն"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Փոխել"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Պահպանել"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Նորից ուղարկել"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Հեռացնել"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Ներբեռնել"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Գցել"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Ջնջել"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Դադարեցնել"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Դադարեցնել"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Կոնտակտներ"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Դուք ընտրել եք «ձայն և նկար» ֆայլ: Ձայնային տվյալները չեն ապահովվում MMS-ի համար, ուստի միայն նկարը կկցվի"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Այո"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Սպասում է ուղարկմանը..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Անհնար է ուղարկել այս հաղորդագրությունը: Մտցրեք Ձեր SIM քարտը և նորից փորձեք"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Տեսակ"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Միջոցների սահմանափակված տեսակներ օգտագործելու համար փոխեք MMS-ի ստեղծման ռեժիմի դրվածքը:"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Ուղարկման ժամը՝"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Ստացման ժամը՝"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Նշասալիկ"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Կարգավիճակ՝"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Ուղարկված"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Ուղրկմ..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Չհաջողվեց ուղարկել"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "վրկ"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Ռոումինգի ժամանակ ինքնաբերաբար առբերել հաղորդագրություններ:"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Ինքնաբերաբար առբերել հաղորդագրություններ:"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Ընթերցման հաղորդում՝ %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Այլ անձ"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Հաղորդագրություն"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Հուշագիր"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Չհաջողվեց"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Մուտքագրել տեքստ"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Սևագիր"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Առաքման մասին հաղորդում՝ %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB հաղորդագրություն"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Օրացույց"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Հաղորդագրություններ ուղարկելուց կամ ստանալուց հետո դրանք կցուցադրվեն այստեղ:"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Արագ պատասխաններ ստեղծելուց հետո դրանք կցուցադրվեն այստեղ:"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "SIM քարտի մեջ հաղորդագրություններ պատճենելուց հետո դրանք կցուցադրվեն այստեղ:"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Արտահայտություններ ավելացնելուց հետո դրանք կցուցադրվեն այստեղ:"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Հաղորդագրությունների արգելափակման ցուցակին համարներ ավելացնելուց հետո դրանք կցուցադրվեն այստեղ:"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ՎԵՐԱՑՆԵԼ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Բեռնում է..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Ծանուցումներ"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Իմ կողմից"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Ուղրկլ"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Ուղ."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ՈՒՂ."
+
diff --git a/main/po/id.po b/main/po/id.po
new file mode 100644 (file)
index 0000000..0f9d716
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Home"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Roaming data dinonaktifkan. Aktifkan roaming data dan coba lagi."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Pesan baru"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "BATAL"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "SELESAI"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Tidak diketahui"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Ponsel"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Data seluler dinonaktifkan. Aktifkan data seluler dan coba lagi."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "KIRIM"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Tdk mendukung tipe Media."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Tidak dapat mengirim pesan saat mode Penerbangan aktif. Nonaktifkan mode Penerbangan dan coba lagi."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Tdk dapat utk diteruskan.\nFile diteruskan terkunci"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Ruang di penyimpanan perangkat tidak mencukupi. Buka Pengaturan > Daya dan penyimpanan > Penyimpanan, lalu hapus beberapa file dan coba lagi."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Teks di atas"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Teks di bagian bawah"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Pilih tata letak"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Tidak bisa menambah konten."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Pesan dijadwalkan untuk dikirim kepada %s. Kirim sekarang?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Ukuran pesan maksimum tercapai."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Batere melemah."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Durasi minimal harus %d detik."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Menonaktifkan Flight mode..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Disalin ke kartu SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Dibatalkan."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Pakai info kontak lain"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Kirim lewat"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Gambar"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Email"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Menggantikan"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Tampilkan"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Hapus"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Putar"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Ke"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Batalkan pesan"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Daftar penerima"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Tinjauan"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Durasi untuk slide %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Tunggu saat item ditambahkan ke tayangan slide."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Tidak bisa mengirim pesan."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Pilih nada dering"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Laporan terbaca akan dikirimkan."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Tidak diminta"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Jumlah maksimum penerima (%d) tercapai."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Masukan subyek."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Penerima digandakan."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Teruskn"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Tidak bisa menyimpan."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Tidak bisa menemukan lokasi."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Tdk dapat untuk hapus."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Tidak bisa menyalin."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Ada karakter yang mungkin hilang.\nLanjutkan?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM tidak disisipkan."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Penyimpanan gagal."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Disimpan dalam File Saya."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Penelusuran pesan gagal"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Tipe konten yang dibatasi. Tetap lampirkan?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Simpan ulang…"
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Ditolak."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Baca laporan"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Tanpa nomor"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Tdk ada lampiran"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Pesan baru"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Pesan disalin dari kartu SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Jumlah maksimum penerima adalah %d. Beberapa penerima mungkin hilang."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Jumlah maksimum lampiran (%s) terlampaui."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Jumlah maksimum karakter tercapai."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Dalam kemajuan..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Menginisialisasi..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Jika Anda tidak ingin mengganti file, ubah namanya."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Pesan ini terdapat lampiran file tak ditampilkan."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Pesan ini termasuk file terlampir yang tidak diperlihatkan."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Nama file sudah ada."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Menghapus…"
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Disalin ke clipboard."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Mengkonversi ke pesan teks..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Mengkonversi ke pesan multimedia..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Blokir %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Anda akan online (%s). Lanjutkan?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Pesan teks"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Subjek:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Pengirim lewat email"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Pengirim"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Pilih"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Simpan lampiran"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Simpan"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Hapus"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instal"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Teruskan"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Edit pesan"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Hapus?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Hapus pesan"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Pilih pesan"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Simpan semua"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Detail pesan"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Berakhir: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Pencarian lanjutan"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Simpan smua lampiran"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Tidak diketahui"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Ke:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Pesan teks"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Memori SIM penuh. Hapus beberapa item."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Pengaturan"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Terkirim:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Diminta."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Penerima"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Diterima:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Diterima."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Baca laporan"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Pesan push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d pesan"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d percakapan"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Lain"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Tanpa subjek"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Tanpa nama"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Notifikasi pesan multimedia"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Pesan multimedia"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Baca"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Pesan ditolak."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Ukuran pesan"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Opsi pesan"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Pesan dikirim"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Pesan"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Saya"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Jumlah maksimum lampiran (%1$s) terlampaui. Hanya %2$s pertama yang akan ditambahkan."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Penerima tidak berlaku."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Dari"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Dari:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Habis waktu"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Pengiriman gagal."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Laporan pengiriman"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Pesan CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Salin teks"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Pesan CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Semua"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 percakapan"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Minta laporan dibaca untuk tiap pesan yang Anda kirim."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Minta laporan pengiriman untuk tiap pesan yang Anda kirim."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Tombol radio"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Tombol hidup/mati"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Daftar yang dapat diperluas"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Ambil pesan MMS secara otomatis."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Tidak dapat melihat pratinjau file. Tipe file tidak didukung."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Tidak dapat menambah beberapa penerima. Nomor tidak valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Tidak dapat menambah penerima. Nomor tidak valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Tidak dapat menambah penerima. Nomor tidak valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Tidak dapat menambahkan lampiran. Jumlah maksimum lampiran (%d) tercapai."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Nomor ini tidak valid."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Pesan yang dipilih disalin ke perangkat seluler."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d pesan dipindahkan ke daftar pesan."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Nomor dihapus dari daftar blokir pesan."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Nomor ditambahkan ke daftar blokir pesan."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Pesan disalin ke kartu SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Jumlah maksimum karakter terlampaui."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Ukuran maksimum pesan (%s) terlampaui. Mengubah ukuran lampiran..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Karakter tidak valid dimasukkan"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Tambah penerima."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 pesan dipindahkan ke daftar pesan."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Pesan teks"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Suara"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Pesan multimedia"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Pesan di kartu SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Mode input"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Ambil otomatis saat roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Ambil otomatis"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Kirim skr"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Tidak"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Pilih mode input untuk menulis pesan."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Tak ada"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Kelola pesan yang disimpan di kartu SIM Anda."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Pesan Anda akan dibuang. Tidak ada penerima yang dipilih."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Tidak dapat mengirim pesan yang dijadwalkan. Atur waktu lain."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Tidak bisa memutar selama panggilan."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Tidak dapat melampirkan file. Ukuran file terlalu besar. Coba kirim melalui Email, Bluetooth, Wi-Fi, dll."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Untuk mengirim pesan multimedia ini, perangkat akan menyambung ke jaringan seluler yang berbeda. Hal ini akan memutuskan perangkat dari jaringan seluler saat ini."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Untuk mengunduh pesan multimedia ini, perangkat akan tersambung ke jaringan seluler yang berbeda. Hal ini akan memutuskan perangkat dari jaringan seluler saat ini."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Pesan ini akan dikirim ulang."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d pesan akan dihapus."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d percakapan akan dihapus."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Tidak ada pola di daftar"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Hanya pesan masuk"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Sertakan teks asli di pesan keluar"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Durasi harus lebih pendek dari %d detik."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Terhapus."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 pesan akan dihapus."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 percakapan akan dihapus."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Lihat perincian"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Lihat rincian kontak"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Lihat sebagai slideshow"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Perbarui kontak"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Teks"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Ambil gambar"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Pengaturan"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Cari"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Simpan lampiran"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Kirim Ulang"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Balas"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Hapus dari daftar blokir"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Rekam video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Rekam file audio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Respons cepat"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Tidak ada"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Buat panggilan suara"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Gambar"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alfabet GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Ekspor ke memori perangkat"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Ubah"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Hapus pesan"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Hapus percakapan"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Hapus"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Default"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Buat kontak"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Salin ke kartu SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Salin ke perangkat"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Salin teks"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Salin"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Cadangan"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Otomatis"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "File audio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Lampiran"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Tambah ke Kontak"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Tambah ke daftar blokir"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Tambahkan penerima"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Cari"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Tidak menemukan hasil"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Tidak ada respons cepat"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Tidak ada frasa yang diblokir"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Tidak ada pesan di kartu SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Tidak ada pesan"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Tidak ada nomor diblokir"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Getar"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Nomor tidak dikenal"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Nomor pusat pesan teks"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Pilih semua"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Peringatan"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Terjemahkan"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Pesan teks"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Alihkan jaringan seluler"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Pusat SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Pengaturan"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Pilih penerima"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d dipilih"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Pesan di kartu SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Pesan"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Mode input"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Ukuran file terlalu besar"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Gagal mengirim pesan"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Buang pesan"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Hapus"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Buat"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Perhatian"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Tambah konten"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Alihkan"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Simpan"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Kirim ulang"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Hapus"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Unduh"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Buang"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Hapus"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Batalkan"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Batal"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kontak"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Anda telah memilih file sound & shot. Data suara tidak didukung untuk MMS jadi hanya gambar yang akan dilampirkan."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Ya"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Menunggu untuk mengirim..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Tidak dapat mengirim pesan ini. Masukkan kartu SIM Anda dan coba lagi."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tipe:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Untuk menggunakan tipe media yang dibatasi, ubah pengaturan mode pembuatan MMS Anda."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Waktu dikirim:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Waktu diterima:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Kotak centang"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Terkirim"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Mengirim..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Pengiriman gagal"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "dtk"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Otomatis mengambil pesan saat roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Otomatis ambil pesan."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Laporan baca: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Lawan bicara"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Pesan"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Gagal"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Masukkan teks"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Draf"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Laporan pengiriman: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Pesan CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalender"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Setelah Anda mengirim atau menerima pesan, pesan akan ditampilkan di sini."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Setelah Anda membuat respons cepat, respons cepat akan ditampilkan di sini."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Setelah Anda menyalin pesan ke kartu SIM, pesan akan ditampilkan di sini."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Setelah Anda menambahkan frasa, frasa akan ditampilkan di sini."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Setelah Anda menambahkan nomor ke daftar blokir pesan, nomor akan ditampilkan di sini."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "HAPUS"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Meloading…"
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notifikasi"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Saya"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Krm"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Kirim"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "KRM"
+
diff --git a/main/po/is.po b/main/po/is.po
new file mode 100644 (file)
index 0000000..c91787f
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Heima"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Slökkt er á gagnareiki. Virkjaðu gagnareiki og reyndu aftur."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Ný boð"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "HÆTTA VIÐ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "LOKIÐ"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Óþekkt"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Farsími"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Slökkt er á farsímagögnum. Virkjaðu farsímagögn og reyndu aftur."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "SENDA"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Óstudd tegund miðils."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Ekki er hægt að senda skilaboð þegar flugstilling er virk. Slökktu á flugstillingu og reyndu aftur."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Ekki tókst að framsenda\nLokað er fyrir framsendingu skrárinnar"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Ekki er nægt rými í geymslu tækisins. Opnaðu Stillingar > Orka og geymsla > Geymsla til að eyða einhverjum skrám og reyndu svo aftur."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Texti efst"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Texti neðst"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Velja útlit"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Ekki tókst að bæta við innihaldi."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Skilaboð eru áætluð til sendingar til %s. Senda núna?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Hámarksstærð skilaboða er náð."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Rafhlaðan er að tæmast."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Tímalengdin þarf að vera minnst %d sekúndur."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Geri flugstillingu óvirka..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Afritað á SIM-kort."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Hætt við."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Nota aðr. tengil.uppl."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Senda með"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Mynd"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Tölvupóstur"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Skipta út"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Birta"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Fjarlægja"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Spila"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Til"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Hætta við skilaboð"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Viðtakendalisti"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Forskoða"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Tímalengd skyggnu %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Bíddu á meðan atriðum er bætt við skyggnusýningu."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Mistókst að senda skilaboð."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Velja hringitón"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Lestilkynning verður send."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Ekki beðið um"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Hámarksfjölda viðtakenda (%d) náð."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Slá inn efni."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Viðtakandi kemur tvisvar fyrir."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Frams."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Ekki er hægt að vista."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Finn ekki staðsetningu."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Það er ekki hægt að eyða."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Mistókst að afrita."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Sumir stafir gætu glatast.\nÁ að halda áfram?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "Það er ekkert SIM-kort til staðar."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Mistókst að vista."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Vistað í skránum þínum."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Mistókst að sækja skilaboð"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Takmarkað efnissnið. Hengja það samt við?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Endurbyggja"
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Hafnað."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Lestilkynning"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Númer vantar"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Engin viðhengi"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Ný skilaboð"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Skilaboð afrituð af SIM-korti."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Hámarksfjölda %d viðtakenda er náð. Ekki er víst að allir viðtakendur birtist."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Hámarksfjölda viðhengja (%s) er náð."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Hámarksfjölda stafa hefur verið náð."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Stendur yfir..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Verið er að frumstilla..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Ef þú vilt ekki skipta skránni út skaltu endurnefna hana."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Í þessum skilaboðum er viðhengi ekki sýnt."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Í þessum skilaboðum eru viðhengin ekki sýnd."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Sama skrárheiti er til fyrir."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Verið er að eyða..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Afritað á klemmuspjald."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Breyti í textaskilaboð..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Breyti í margmiðlunarskilaboð..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Loka á %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Þú ert að fara að tengjast (%s)? Viltu halda áfram?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Textaskilaboð"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Efni:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Sendanda með tölvupósti"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Sendandi"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Velja"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Vista viðhengi"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Vista"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Fjarlægja"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Setja upp"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Framsenda"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Breyta skilaboðum"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Á að eyða?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Eyða skilaboðum"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Velja skilaboð"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Vista allt"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Upplýsingar um skilaboð"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "„Rennur út: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Ítarleg leit"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Vista öll viðhengi"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Óþekkt"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Til:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Textaboð"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM-minnið er fullt. Eyddu einhverjum hlutum."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Stillingar"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Sent:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Beiðnin var send."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Viðtakendur"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Móttekið:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Móttekið."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Lestilkynning"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push-skilaboð"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d skilaboð"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d samtöl"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Annað"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Ekkert efni"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Ekkert heiti"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Tilkynning um margmiðlunarskilaboð"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Margmiðlun"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Lesa"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Boðum hafnað."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Stærð skilaboða"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Valkostir skilaboða"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Boð afhent"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Skilaboð"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Ég"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Hámarksfjölda skilaboða (%1$s) náð. Fyrstu %2$s verður eingöngu bætt við."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Ógildur viðtakandi."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Frá"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Frá:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Útrunnið"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Sending mistókst."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Skilatilkynning"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP-skilaboð"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Afrita texta"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Skilaboð frá endurvarpa"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Allt"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 skilaboð"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 samtal"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Biðja um lestilkynningu fyrir öll send skilaboð."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Biðja um skilatilkynningu fyrir öll send skilaboð."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Valhringur"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Hnappur til að kveikja og slökkva"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Stækkanlegur listi"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Sækja MMS-skilaboð sjálfkrafa."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Ekki er hægt að forskoða skrána. Skráargerðin er ekki studd."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Mistókst að bæta einhverjum viðtakendum við. Númer eru ekki gild."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Mistókst að bæta viðtakanda við. Númer er ekki gilt."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Mistókst að bæta viðtakendum við. Númer eru ekki gild."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Ekki er hægt að bæta viðhengi við. Hámarksfjölda viðhengja (%d) hefur verið náð."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Þetta númer er ógilt."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Valin skilaboð verða afrituð í fartæki."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d skilaboð færð á skilaboðalista."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Númer var fjarlægt af útilokunarlista skilaboða."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Númeri var bætt á útilokunarlista skilaboða."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Skilaboð afrituð yfir á SIM-kortið %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Hámarksfjölda stafa náð."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Hámarksstærð skeytis (%s) hefur verið náð. Breyti stærð viðhengja..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Ógildur stafur var sleginn inn."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Bættu við viðtakendum."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 skilaboð færð á skilaboðalista."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Textaskilaboð"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Hljóð"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Margmiðlunarskilaboð"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Skilaboð á SIM-korti"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Innsláttaraðferð"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Sækja sjálfkrafa í reiki"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Sækja sjálfkrafa"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Senda nú"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Nei"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Veldu innsláttaraðferð þegar skilaboð eru skrifuð."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Engin"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Vinna með skilaboð á SIM-korti."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Skilaboðunum verður fleygt. Engir viðtakendur voru valdir."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Mistókst að senda áætluð skilaboð. Veldu annan tíma."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Ekki er hægt að spila á meðan símtal stendur yfir."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Ekki er hægt að hengja skrána við, þar sem hún er of stór. Prófaðu að senda í tölvupósti, um Bluetooth, Wi-Fi o.s.frv."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Tækið mun tengjast öðru farsímakerfi til að senda þessi margmiðlunarskilaboð. Við það aftengist tækið frá núverandi farsímakerfi."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Tækið mun tengjast öðru farsímakerfi til að sækja þessi margmiðlunarskilaboð. Við það aftengist tækið frá núverandi farsímakerfi."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Þessi skilaboð verða endursend."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d skilaboðum verður eytt."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d samtölum verður eytt."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Engin sniðmát á lista"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Aðeins móttekin skilaboð"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Láta upprunalega textann fylgja sendum skilaboðum"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Lengdin verður að vera minni en %d sekúndur."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Eytt."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 skilaboðum verður eytt."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 samtali verður eytt."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Skoða upplýsingar"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Skoða samskiptaupplýsingar"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Skoða sem skyggnusýningu"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Myndskeið"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Uppfæra tengilið"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Texti"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Taka mynd"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Stillingar"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Leita"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Vista viðhengi"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Endursenda"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Svara"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Fjarlægja af bannlista"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Taka upp myndskeið"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Taka upp hljóðskrá"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Hraðsvar"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Ekkert"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Hringja símtal"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Myndir"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM-stafróf"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Flytja í minni tækis"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Breyta"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Eyða skilaboðum"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Eyða samtali"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Sjálfgefið"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Búa til tengilið"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Afrita yfir á SIM-kort"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Afrita í tæki"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Afrita texta"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Afrita"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Afrita"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Sjálfvirkt"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Hljóðskrár"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Viðhengi"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Bæta við tengiliði"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Bæta á bannlista"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Bæta viðtakendum við"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Leita"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Engar niðurstöður"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Engin snarsvör"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Engar útilokaðar setningar"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Engin skilaboð á SIM-korti"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Engin skilaboð"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Engin númer á bannlista"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Titringur"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Óþekkt númer"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Númer SMS-skilaboðamiðstöðvar"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Velja allt"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Áminningar"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Þýða"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Textaskilaboð"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Skipta um farsímakerfi"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS-miðstöð"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Stillingar"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Velja viðtakanda"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d valin"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Skilaboð á SIM-korti"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Skilaboð"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Innsláttaraðferð"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Skráin er of stór"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Mistókst að senda skilaboð"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Fleygja skilaboðum"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Búa til"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Athuga"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Bæta við efni"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Skipta"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Vista"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Endursenda"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Fjarlægja"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "Í lagi"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Sækja"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Fleygja"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Eyða"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Hætta v."
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Hætta við"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Tengiliðir"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Þú hefur valið skrá með hljóð og mynd. Hljóðgögn eru ekki studd í MMS-skilaboðum og því verður einungis myndin hengd við."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Já"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Bíð eftir að senda..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Ekki er hægt að senda þessi skilaboð. Settu SIM-kortið í og reyndu aftur."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tegund:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Til að nota megi takmarkaðar skráargerðir skaltu breyta stillingum á takmörkunum MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Sendingartími:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Tími móttöku:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Gátreitur"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Staða:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Sent"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Sendi..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Sending mistókst"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sek"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Sækja skilaboð sjálfkrafa í reiki."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Sækja skilaboð sjálfkrafa."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Lestilkynning: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Hinn aðilinn"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Skilaboð"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Minnisatriði"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Mistókst"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Sláðu inn texta"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Drög"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Skilatilkynning: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "HS-boð"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Dagatal"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Skilaboð birtast hér þegar þú hefur sent þau eða fengið."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Snarsvör birtast hér eftir að þau eru búin til."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Skilaboð birtast hér eftir að þú afritar þau yfir á SIM-kortið."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Setningar birtast hér eftir að þeim er bætt við."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Númer birtast hér eftir að þau eru sett á útilokunarlista skilaboða."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "EYÐA"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Hleð..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Tilkynningar"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Ég"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Sen."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Senda"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "SEN."
+
diff --git a/main/po/it.po b/main/po/it.po
new file mode 100644 (file)
index 0000000..f385253
--- /dev/null
@@ -0,0 +1,887 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Casa"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Roaming dati disattivato. Attivare il roaming dati e riprovare."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nuovo messaggio"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULLA"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "FATTO"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Sconosciuto"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Cellulare"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Connessione dati disattiva. Attivate la connessione dati e riprovate."
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Tipo di contenuto non supportato."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Impossibile inviare messaggi se la Modalità offline è attivata. Disattivate la Modalità offline e riprovate."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Impossibile inoltrare.\nFile bloccato per l'inoltro"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Spazio insufficiente sulla memoria del dispositivo. Andate in Impostazioni > Batteria e memoria > Memoria, quindi eliminate alcuni file e riprovate."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Testo in alto"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Testo in basso"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Seleziona aspetto"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Impossibile aggiungere contenuto."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Messaggio pianificato per l'invio a %s. Inviare adesso?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Raggiunte dimensioni massime del messaggio."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Batteria scarica."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "La durata deve essere di almeno %d secondi."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Disattivazione Modalità offline in corso..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copiato su scheda SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Annullato."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Usa altre info contatto"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Invia con"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Immagine"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Sostituisci"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Visualizza"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Rimuovi"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Riproduci"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "A"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Annulla messaggio"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Elenco destinatari"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Anteprima"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Data per slide %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Attendere durante l'aggiunta degli elementi alla presentazione."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Impossibile inviare messaggio."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Seleziona suoneria"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Sarà inviata una conferma della lettura."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Non richiesto"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Raggiunto numero massimo di destinatari (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Inserisci oggetto."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Destinatario duplicato."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Inoltra"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Impossibile salvare."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Impossibile trovare posizione."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Impossibile eliminare."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Impossibile copiare."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Alcuni caratteri potrebbero andare persi.\nContinuare?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM non inserita."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Errore durante il salvataggio."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Salvato in Archivio."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Impossibile recuperare messaggio"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Tipo di contenuto con restrizioni. Allegare comunque?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Ripristino..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rifiutata."
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Nessun numero"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Nessun allegato"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nuovi messaggi"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Messaggio copiato dalla scheda SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Il numero massimo di destinatari è %d. Alcuni destinatari potrebbero andare persi."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Superato numero massimo di allegati (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Raggiunto numero massimo di caratteri."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "In corso..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Inizializzazione..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Per non sostituire il file, rinominarlo."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Il messaggio contiene un file allegato non visualizzato."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Questo messaggio include file allegati non visualizzati."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Nome file già in uso."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Eliminazione..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Elemento copiato negli appunti"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Conversione in SMS..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Conversione in MMS..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Bloccare %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Connessione in corso(%s). Continuare?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Oggetto:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Mittente con e-mail"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Mittente"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Seleziona"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Salva allegato"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Salva"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Rimuovi"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Installa"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Inoltra"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Modifica messaggio"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Eliminare?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Elimina messaggi"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Seleziona messaggi"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Salva tutti"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Dettagli del messaggio"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Scade: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Ricerca avanzata"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Salva allegati"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Sconosciuto"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "A:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Memoria SIM piena. Elimina alcuni elementi."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Impostaz."
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Inviato:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Richiesto."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Destinatari"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Ricevuto:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Ricevuto."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Conferma lettura"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Messaggi Push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d messaggi"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d conversazioni"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Altri"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Nessun oggetto"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Nessun nome"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Notifica MMS"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Letto"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Dimensioni messaggio"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Opzioni messaggio"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Messaggio consegnato"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Messaggio"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Me stesso"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Superato numero massimo di allegati (%1$s). Solo i primi %2$s verranno aggiunti."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Destinatario non valido."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Da"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Da:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Scaduta"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Invio non riuscito."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Rapporto consegna"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Messaggi CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copia testo"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Messaggi CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Tutti/e"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 messaggio"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversazione"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Richiedi la conferma di lettura per ogni messaggio inviato."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Richiedi la conferma di consegna per ogni messaggio inviato."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Pulsante di opzione"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Pulsante Sì/No"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Elenco espandibile"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Recupera automaticamente i messaggi MMS."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Impossibile visualizzare in anteprima il file. Tipo di file non supportato."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Impossibile aggiungere alcuni destinatari. Numeri non validi."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Impossibile aggiungere destinatario. Numero non valido."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Impossibile aggiungere destinatari. Numeri non validi."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Impossibile aggiungere l'allegato. Il numero massimo di allegati (%d) è stato raggiunto."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Questo numero non è valido."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "I messaggi selezionati sono stati copiati sul dispositivo mobile."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d messaggi sono stati spostati nell'elenco messaggi."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Numero rimosso dall'elenco di blocco messaggi."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Numero aggiunto all'elenco di blocco messaggi."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Messaggio copiato sulla scheda SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Il numero massimo di caratteri è stato superato."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "La dimensione massima del messaggio (%s) è stata superata. Ridimensionamento degli allegati in corso..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "È stato inserito un carattere non valido."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Aggiungete dei destinatari."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 messaggio è stato spostato nell'elenco messaggi."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Messaggi di testo"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Suono"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Messaggi multimediali"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Messaggi sulla scheda SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Modalità di inserimento"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Recupero automatico in roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Recupero automatico"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Invia ora"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "No"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Selezionate una modalità di inserimento per comporre i messaggi."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Nessuna"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Gestite i messaggi memorizzati sulla scheda SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Il messaggio verrà annullato. Non è stato selezionato nessun destinatario."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Impossibile inviare messaggio programmato. Impostare un orario diverso."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Impossibile riprodurre durante una chiamata."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Impossibile allegare file. Dimensione file troppo grande. Provate a inviare con e-mail, Bluetooth, Wi-Fi ecc."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Per inviare questo messaggio multimediale, il dispositivo interromperà la connessione alla rete mobile corrente per connettersi a un'altra rete mobile."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Per scaricare questo messaggio multimediale, il dispositivo interromperà la connessione alla rete mobile corrente per connettersi a un'altra."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Questo messaggio verrà inviato di nuovo."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d messaggi verranno eliminati."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Verranno eliminate %d conversazioni."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Nessun modello in elenco"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Solo messaggi in arrivo"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Consente di includere il testo originale nel messaggio in uscita"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "La durata deve essere inferiore a %d secondi."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Eliminato/i."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 messaggio verrà eliminato."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Verrà eliminata 1 conversazione."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Dettagli"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Visualizza dettagli contatto"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Visualizza come presentazione"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Aggiorna contatto"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Testo"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Scatta una foto"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Impostaz."
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Cerca"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Salva allegati"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Invia nuovamente"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Rispondi"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Rimuovi da elenco bloccati"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Registra video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Registra file audio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Risposta rapida"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Nessuno"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Esegui chiamata vocale"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Immagini"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alfabeto GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Esporta su memoria dispositivo"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Modifica"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Elimina messaggio"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Elimina conversazione"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Predefinito"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Crea contatto"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copia nella scheda SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copia sul dispositivo"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copia testo"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copia"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Backup"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatica"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "File audio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Allegato"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Aggiungi alla Rubrica"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Aggiungi a elenco bloccati"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Cerca"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Nessun risultato trovato"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Nessuna risposta rapida"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Nessuna frase bloccata"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Nessun messaggio nella scheda SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Nessun messaggio"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Nessun numero bloccato"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibrazione"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Numero sconosciuto"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Numero centro messaggi testo"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Seleziona tutto"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Avvisi"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Traduci"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Messaggi di testo"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Passa a connessione dati"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Centro SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Impostaz."
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Seleziona destinatario"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d selezionati"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Messaggi sulla scheda SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Messaggi"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Modalità inserimento"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Dimensioni file eccessive"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Impossibile inviare messaggio"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Annulla messaggio"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Crea"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Attenzione"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Aggiungi contenuto"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Cambia"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Salva"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Invia di nuovo"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Rimuovi"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Download"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Ignora"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Elimina"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Annulla"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Annulla"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Rubrica"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Selezionato file Audio foto. I dati audio non sono supportati dal messaggio MMS; verrà allegata soltanto l'immagine."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Sì"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "In attesa di invio..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Impossibile inviare il messaggio. Inserite la scheda SIM e riprovate."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tipo:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Per utilizzare gli oggetti multimediali con restrizioni, modificare le impostazioni della modalità di creazione MMS."
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Casella di selezione"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Stato:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Inviato"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Invio..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Invio non riuscito"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sec"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Recuperate automaticamente i messaggi durante il roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Recuperate automaticamente i messaggi."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Rapporto di lettura: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Altra persona"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Messaggio"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Errore"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Inserite il testo"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Bozza"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Rapporto di consegna: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Messaggio CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendario"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "I messaggi verranno visualizzati qui dopo essere stati inviati o ricevuti."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Le risposte rapide verranno visualizzate qui dopo essere state create."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "I messaggi verranno visualizzati qui dopo essere stati copiati sulla scheda SIM."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Le frasi verranno visualizzate qui dopo essere state aggiunte."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "I numeri verranno visualizzati qui dopo essere stati aggiunti all'elenco di blocco messaggi."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINA"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Caricamento..."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "INVIA"
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Aggiungi destinatari"
+
diff --git a/main/po/it_IT.po b/main/po/it_IT.po
new file mode 100644 (file)
index 0000000..c96ced4
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Casa"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Roaming dati disattivato. Attivare il roaming dati e riprovare."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nuovo messaggio"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULLA"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "FATTO"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Sconosciuto"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Cellulare"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Connessione dati disattiva. Attivate la connessione dati e riprovate."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "INVIA"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Tipo di contenuto non supportato."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Impossibile inviare messaggi se la Modalità offline è attivata. Disattivate la Modalità offline e riprovate."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Impossibile inoltrare.\nFile bloccato per l'inoltro"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Spazio insufficiente sulla memoria del dispositivo. Andate in Impostazioni > Batteria e memoria > Memoria, quindi eliminate alcuni file e riprovate."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Testo in alto"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Testo in basso"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Seleziona aspetto"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Impossibile aggiungere contenuto."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Messaggio pianificato per l'invio a %s. Inviare adesso?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Raggiunte dimensioni massime del messaggio."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Batteria scarica."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "La durata deve essere di almeno %d secondi."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Disattivazione Modalità offline in corso..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copiato su scheda SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Annullato."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Usa altre info contatto"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Invia con"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Immagine"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Sostituisci"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Visualizza"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Rimuovi"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Riproduci"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "A"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Annulla messaggio"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Elenco destinatari"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Anteprima"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Data per slide %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Attendere durante l'aggiunta degli elementi alla presentazione."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Impossibile inviare messaggio."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Seleziona suoneria"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Sarà inviata una conferma della lettura."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Non richiesto"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Raggiunto numero massimo di destinatari (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Inserisci oggetto."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Destinatario duplicato."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Inoltra"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Impossibile salvare."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Impossibile trovare posizione."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Impossibile eliminare."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Impossibile copiare."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Alcuni caratteri potrebbero andare persi.\nContinuare?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM non inserita."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Errore durante il salvataggio."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Salvato in Archivio."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Impossibile recuperare messaggio"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Tipo di contenuto con restrizioni. Allegare comunque?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Ripristino..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rifiutata."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Conferma lettura"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Nessun numero"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Nessun allegato"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nuovi messaggi"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Messaggio copiato dalla scheda SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Il numero massimo di destinatari è %d. Alcuni destinatari potrebbero andare persi."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Superato numero massimo di allegati (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Raggiunto numero massimo di caratteri."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "In corso..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Inizializzazione..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Per non sostituire il file, rinominarlo."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Il messaggio contiene un file allegato non visualizzato."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Questo messaggio include file allegati non visualizzati."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Nome file già in uso."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Eliminazione..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Elemento copiato negli appunti"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Conversione in SMS..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Conversione in MMS..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Bloccare %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Connessione in corso(%s). Continuare?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Oggetto:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Mittente con e-mail"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Mittente"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Seleziona"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Salva allegato"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Salva"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Rimuovi"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Installa"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Inoltra"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Modifica messaggio"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Eliminare?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Elimina messaggi"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Seleziona messaggi"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Salva tutti"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Dettagli del messaggio"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Scade: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Ricerca avanzata"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Salva allegati"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Sconosciuto"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "A:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Memoria SIM piena. Elimina alcuni elementi."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Impostaz."
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Inviato:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Richiesto."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Destinatari"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Ricevuto:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Ricevuto."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Conferma lettura"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Messaggi Push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d messaggi"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d conversazioni"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Altri"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Nessun oggetto"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Nessun nome"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Notifica MMS"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Letto"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Messaggio rifiutato."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Dimensioni messaggio"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Opzioni messaggio"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Messaggio consegnato"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Messaggio"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Me stesso"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Superato numero massimo di allegati (%1$s). Solo i primi %2$s verranno aggiunti."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Destinatario non valido."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Da"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Da:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Scaduta"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Invio non riuscito."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Rapporto consegna"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Messaggi CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copia testo"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Messaggi CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Tutti/e"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 messaggio"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversazione"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Richiedi la conferma di lettura per ogni messaggio inviato."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Richiedi la conferma di consegna per ogni messaggio inviato."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Pulsante di opzione"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Pulsante Sì/No"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Elenco espandibile"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Recupera automaticamente i messaggi MMS."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Impossibile visualizzare in anteprima il file. Tipo di file non supportato."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Impossibile aggiungere alcuni destinatari. Numeri non validi."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Impossibile aggiungere destinatario. Numero non valido."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Impossibile aggiungere destinatari. Numeri non validi."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Impossibile aggiungere l'allegato. Il numero massimo di allegati (%d) è stato raggiunto."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Questo numero non è valido."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "I messaggi selezionati sono stati copiati sul dispositivo mobile."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d messaggi sono stati spostati nell'elenco messaggi."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Numero rimosso dall'elenco di blocco messaggi."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Numero aggiunto all'elenco di blocco messaggi."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Messaggio copiato sulla scheda SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Il numero massimo di caratteri è stato superato."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "La dimensione massima del messaggio (%s) è stata superata. Ridimensionamento degli allegati in corso..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "È stato inserito un carattere non valido."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Aggiungete dei destinatari."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 messaggio è stato spostato nell'elenco messaggi."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Messaggi di testo"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Suono"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Messaggi multimediali"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Messaggi sulla scheda SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Modalità di inserimento"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Recupero automatico in roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Recupero automatico"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Invia ora"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "No"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Selezionate una modalità di inserimento per comporre i messaggi."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Nessuna"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Gestite i messaggi memorizzati sulla scheda SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Il messaggio verrà annullato. Non è stato selezionato nessun destinatario."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Impossibile inviare messaggio programmato. Impostare un orario diverso."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Impossibile riprodurre durante una chiamata."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Impossibile allegare file. Dimensione file troppo grande. Provate a inviare con e-mail, Bluetooth, Wi-Fi ecc."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Per inviare questo messaggio multimediale, il dispositivo interromperà la connessione alla rete mobile corrente per connettersi a un'altra rete mobile."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Per scaricare questo messaggio multimediale, il dispositivo interromperà la connessione alla rete mobile corrente per connettersi a un'altra."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Questo messaggio verrà inviato di nuovo."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d messaggi verranno eliminati."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Verranno eliminate %d conversazioni."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Nessun modello in elenco"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Solo messaggi in arrivo"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Consente di includere il testo originale nel messaggio in uscita"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "La durata deve essere inferiore a %d secondi."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Eliminato/i."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 messaggio verrà eliminato."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Verrà eliminata 1 conversazione."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Dettagli"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Visualizza dettagli contatto"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Visualizza come presentazione"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Aggiorna contatto"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Testo"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Scatta una foto"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Impostaz."
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Cerca"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Salva allegati"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Invia nuovamente"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Rispondi"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Rimuovi da elenco bloccati"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Registra video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Registra file audio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Risposta rapida"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Nessuno"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Esegui chiamata vocale"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Immagini"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alfabeto GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Esporta su memoria dispositivo"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Modifica"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Elimina messaggio"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Elimina conversazione"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Predefinito"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Crea contatto"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copia nella scheda SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copia sul dispositivo"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copia testo"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copia"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Backup"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatica"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "File audio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Allegato"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Aggiungi alla Rubrica"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Aggiungi a elenco bloccati"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Aggiungi destinatari"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Cerca"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Nessun risultato trovato"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Nessuna risposta rapida"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Nessuna frase bloccata"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Nessun messaggio nella scheda SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Nessun messaggio"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Nessun numero bloccato"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibrazione"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Numero sconosciuto"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Numero centro messaggi testo"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Seleziona tutto"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Avvisi"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Traduci"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Messaggi di testo"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Passa a connessione dati"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Centro SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Impostaz."
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Seleziona destinatario"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d selezionati"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Messaggi sulla scheda SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Messaggi"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Modalità inserimento"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Dimensioni file eccessive"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Impossibile inviare messaggio"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Annulla messaggio"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Crea"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Attenzione"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Aggiungi contenuto"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Cambia"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Salva"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Invia di nuovo"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Rimuovi"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Download"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Ignora"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Elimina"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Annulla"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Annulla"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Rubrica"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Selezionato file Audio foto. I dati audio non sono supportati dal messaggio MMS; verrà allegata soltanto l'immagine."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Sì"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "In attesa di invio..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Impossibile inviare il messaggio. Inserite la scheda SIM e riprovate."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tipo:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Per utilizzare gli oggetti multimediali con restrizioni, modificare le impostazioni della modalità di creazione MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Ora di invio:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Ora di ricezione:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Casella di selezione"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Stato:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Inviato"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Invio..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Invio non riuscito"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sec"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Recuperate automaticamente i messaggi durante il roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Recuperate automaticamente i messaggi."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Rapporto di lettura: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Altra persona"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Messaggio"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Errore"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Inserite il testo"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Bozza"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Rapporto di consegna: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Messaggio CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendario"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "I messaggi verranno visualizzati qui dopo essere stati inviati o ricevuti."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Le risposte rapide verranno visualizzate qui dopo essere state create."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "I messaggi verranno visualizzati qui dopo essere stati copiati sulla scheda SIM."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Le frasi verranno visualizzate qui dopo essere state aggiunte."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "I numeri verranno visualizzati qui dopo essere stati aggiunti all'elenco di blocco messaggi."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINA"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Caricamento..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notifiche"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Me stesso"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Invia"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Invia"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "INVIA"
+
diff --git a/main/po/ja_JP.po b/main/po/ja_JP.po
new file mode 100644 (file)
index 0000000..c0a86df
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "自宅"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "データローミングが無効です。データローミングを有効にしてから、再度実行してください。"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "新しいメッセージ"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "キャンセル"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "完了"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "不明"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "携帯"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "モバイルデータが無効です。モバイルデータを有効にしてから、再度実行してください。"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "送信"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "未対応のメディアです。"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "機内モードのときは、メッセージを送信できません。機内モードを無効にし、再度お試しください。"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "転送できません。\nファイル転送はロックされています。"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "システムメモリ(本体)の空き容量が低下しています。[設定] > [電源とストレージ] > [ストレージ]に移動して不要なファイルを削除した後、再度実行してください。"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "テキスト位置(上)"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "テキスト位置(下)"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "レイアウトを選択"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "コンテンツを追加できません。"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "メッセージは%sに送信予約されています。今すぐ送信しますか?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "メッセージサイズが大きすぎます。"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "バッテリー残量が不足しています。"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "継続時間は%d秒以上である必要があります。"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "機内モードを無効にします..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIMカードにコピーしました。"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "キャンセルしました。"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "他の連絡先情報を使用"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "送信"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "画像"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Eメール"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "置き換え"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "表示"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "削除"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "再生"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "宛先"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "メッセージをキャンセル"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "宛先リスト"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "プレビュー"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "スライド%d/%dの期間"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "アイテムがスライドショーに追加されるまでしばらくお待ちください。"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "メッセージを送信できません。"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "通知音"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "既読通知が送信されます。"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "不要"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "宛先が最大件数(%d)に達しました。"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "件名を入力"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "宛先が重複しています。"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "転送"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "保存できません。"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "現在地を検索できません。"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "削除できません。"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "コピーできません。"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "部分的に内容が失われることがあります。続行しますか?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIMが挿入されていません。"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "保存に失敗しました。"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "マイファイルに保存されました。"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "メッセージの取得に失敗しました。"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "制限されたコンテンツタイプです。添付しますか?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "復元中..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "拒否しました。"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "既読確認"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "番号なし"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "添付ファイルがありません。"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "新着メッセージ"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "メッセージをSIMカードからコピーしました。"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "受信者の最大%d人まで可能です。一部の受信者を失われた可能性があります。"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "最大添付ファイル数(%s)を超えています。"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "最大文字数に達しました。"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "進行中..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "初期化中..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "ファイルを置き換えたくない場合は、名前を変更してください。"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "このメッセージには非表示の添付ファイルが含まれています。"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "このメッセージには非表示の添付ファイルが含まれています。"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ファイル名が既に登録されています。"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "削除中..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "クリップボードにコピーしました。"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "SMSに変換中..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "マルチメディアメッセージへ変換中..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%sをブロックしますか?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "オンラインしようとしています(%s)。続行しますか?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "件名:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Eメールで送信"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "送信者"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "選択"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "添付を保存"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "保存"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "削除"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "インストール"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "転送"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "メッセージを編集"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "削除しますか?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "メッセージを削除"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "メッセージを選択"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "全て保存"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "メッセージの詳細"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "有効期限: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "詳細検索"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "全添付ファイルを保存"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "不明"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "宛先:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIMのメモリがいっぱいです。不要なアイテムを削除してください。"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "送信日時:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "要求しました。"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "宛先"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "受信日時:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "受信完了"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "既読確認"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "プッシュメッセージ"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d件のメッセージ"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d件のスレッド"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "その他"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "件名なし"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "名前なし"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "MMS通知"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "マルチメディアメッセージ"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "既読"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "メッセージが拒否されました。"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "メッセージサイズ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "メッセージオプション"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "メッセージ​が​配信​されました"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "メッセージ"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "自分"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "添付ファイルは%1$s件までに制限されています。最初の%2$s件のみ追加されます。"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "無効な宛先です。"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "送信元"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "送信元:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "期限切れ"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "送信に失敗しました。"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "配信状態"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CPメッセージ"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "テキストをコピー"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CBメッセージ"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "全て"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1件のメッセージ"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1件のスレッド"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "送信するメッセージごとに既読確認を要求"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "送信するメッセージごとに配信確認を要求"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "ラジオボタン"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ON/OFFボタン"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "拡張できるリストです。"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMSメッセージを自動受信"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ファイルをプレビューすることができません。未対応のファイルです。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "一部の宛先を追加できません。番号が無効です。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "宛先を追加できません。番号が無効です。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "宛先を追加できません。番号が無効です。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "添付ファイルを追加できません。添付ファイルの最大件数(%d件)に達しました。"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "この番号は無効です。"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "選択したメッセージをモバイル端末にコピーしました。"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d件のメッセージをメッセージリストに移動しました。"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "メッセージブロックリストから番号を削除しました。"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "メッセージブロックリストに番号を追加しました。"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "メッセージを%sのSIMカードにコピーしました。"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "最大文字数に達しました。"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "メッセージの最大サイズ(%s)を超えました。添付ファイルのサイズを変更中..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "無効な文字が入力されました。"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "宛先を入力してください。"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1件のメッセージをメッセージリストに移動しました。"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "音"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "マルチメディアメッセージ"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIMカード内のSMS"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "入力モード"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "ローミング中に自動取得"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "自動取得"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "すぐに送信"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "いいえ"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "SMSを作成する際に使用する入力モードを選択"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "なし"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "SIMカードに保存されたSMSを管理"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "宛先が選択されていないため、メッセージが破棄されます。"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "予約メッセージを送信できません。他の時刻を設定してください。"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "通話中は再生できません。"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ファイルを添付できません。ファイルサイズが大きすぎます。Eメール、Bluetooth、Wi-Fi等で送信してください。"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "マルチメディアメッセージを送信するため、端末を他のモバイルネットワークに接続します。現在のモバイルネットワークとの接続は解除されます。"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "このマルチメディアメッセージをダウンロードするため、端末を他のモバイルネットワークに接続します。現在のモバイルネットワークとの接続は解除されます。"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "このメッセージを再送信します。"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d件のメッセージを削除します。"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d件のスレッドを削除します。"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "リストに定型文がありません。"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "受信メッセージのみ"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "送信メッセージにオリジナルテキストを含める"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "持続時間は%d秒未満にする必要があります。"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "削除しました。"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1件のメッセージを削除します。"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1件のスレッドを削除します。"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "詳細表示"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "連絡先の詳細を表示"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "スライドショーとして表示"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "動画"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "連絡先を更新"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "テキスト"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "写真を撮影"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "検索"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "添付ファイルを保存"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "再送信"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "返信"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "ブロックリストから削除"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "録画"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "録音ファイル"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "クイック返信"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "なし"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "音声通話をかける"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "画像"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSMアルファベット"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "本体メモリにエクスポート"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "編集"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "メッセージを削除"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "スレッドを削除"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "削除"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "標準"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "連絡先を作成"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIMカードにコピー"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "端末にコピー"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "テキストをコピー"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "コピー"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "バックアップ"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "自動"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "オーディオファイル"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "添付"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "連絡先に追加"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "ブロックリストに追加"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "宛先を追加"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "検索"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "検索結果がありません"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "クイック返信がありません"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "ブロックされたフレーズがありません"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIMカードにメッセージがありません"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "メッセージがありません"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "ブロックした番号はありません"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "バイブ"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "非通知番号"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "テキストメッセージセンター番号"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "全て選択"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "通知"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "翻訳"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "SMS"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "モバイルネットワークの切り替え"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMSセンター"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "受信者を選択"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d件選択"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIMカード内のSMS"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "メッセージ"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "入力モード"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ファイルサイズ超過"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "メッセージの送信に失敗"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "メッセージを破棄"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "削除"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "作成"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "注意"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "コンテンツを追加"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "切替"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "保存"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "再送信"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "削除"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ダウンロード"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "破棄"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "削除"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "キャンセル"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "キャンセル"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "連絡先"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "サウンド&ショットファイルが選択されました。サウンドデータはMMSに対応していないため、写真のみ添付されます。"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "はい"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "送信を待機中..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "メッセージを送信することができません。SIMカードを挿入し、再度実行してください。"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "タイプ:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "制限されたメディアタイプを使用するには、MMS作成モード設定を変更してください。"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "送信時刻:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "受信時刻:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "チェックボックス"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "ステータス:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "送信済み"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "送信中..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "送信失敗"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "秒"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "ローミング中にメッセージを自動取得"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "メッセージを自動取得"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "既読確認: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "相手"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "メッセージ"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "メモ"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "送信失敗"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "テキストを入力"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "下書き"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "配信確認: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CBメッセージ"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "カレンダー"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "メッセージを送受信すると、ここに表示されます。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "クイック返信を作成すると、ここに表示されます。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "メッセージをSIMカードにコピーすると、ここに表示されます。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "フレーズを追加すると、ここに表示されます。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "メッセージブロックリストに番号を追加すると、ここに表示されます。"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "削除"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "読み込み中..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "通知"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "自分"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "送信"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "送信"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "送信"
+
diff --git a/main/po/ka.po b/main/po/ka.po
new file mode 100644 (file)
index 0000000..0b8bd43
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "საწყისი გვერდი"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "მონაცემთა გადაცემა როუმინგის დროს გამორთულია. ჩართეთ მონაცემთა გადაცემა როუმინგის დროს და ისევ ცადეთ."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "ახალი შეტყობინება"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "გაუქმება"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "მზადაა"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "უცნობი"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "მობილური"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "მობილური მონაცემები გამორთულია. ჩართეთ მობილურ მონაცემთა გადაცემა და ისევ ცადეთ."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "გაგზავნა"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "მედიის ტიპი გაუთვალისწინებელია."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "წერილების გაგზავნა შეუძლებელია ფრენის რეჟიმში. გამორთეთ ფრენის რეჟიმი და ისევ ცადეთ."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "ვერ გადამისამართდება.\nფაილის გადამისამართება დაბლოკილია."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "მოწყობილობის მეხსიერებაში არ არის საკმარისი ადგილი. გახსენით პარამეტრები > ენერგია და საცავი > მეხსიერება და წაშალეთ ზოგიერთი ფაილი, შემდეგ კი ისევ სცადეთ."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "ტექსტი ზემოთ"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "ტექსტი ქვემოთ"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "განლაგების შერჩევა"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "შინაარსის დამატება შეუძლებელია."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "წერილი დანიშნულ დროს გაიგზავნება მიმღებთან „%s“. გაგზავნით ახლა?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "მიღწეულია წერილის მაქსიმალური ზომა."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "კვების ელემენტი იცლება."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "ხანგრძლივობა უნდა იყოს მინიმუმ %d წამი."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "ითიშება ფრენის რეჟიმი..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "ასლი გადაიწერა SIM ბარათზე."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "გაუქმებულია."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "შეცვალეთ საკონტ. ინფო"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "გააგზავნე"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "სურათი"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ელ-ფოსტა"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "შეცვლა"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "ნახვა"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "წაშლა"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "დაკვრა"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "ვის"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "წერილის გაუქმება"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "ადრესატების სია"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "გადახედვა"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "სლაიდის ხანგრძლივობაა %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "დაელოდეთ, სანამ ელემენტებო დაემატება სლაიდშოუს."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "წერილის გაგზავნა შეუძლებელია."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "ზარის მელოდიის არჩევა"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "წაკითხვის შესახებ შეტყობინება გაიგზავნება."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "არ არის მოთხოვნილი"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "მიღწეულია მიმღებთა მაქსიმალური რაოდენობა (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "ჩაწერეთ თემა."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "გამეორებული მიმღები."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "გადაგზ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "ვერ შეინახავთ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "ლოკაციის პოვნა შეუძლებელია."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "წაშლა შეუძლებელია."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "ვერ დაკოპირდება."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "ზოგიერთი სიმბოლო შეიძლება დაიკარგოს.\nგანაგრძობთ?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM არ დევს."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "ვერ შეინახა."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "შენახულია ჩემს ფაილებში."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "წერილის მიღება ვერ შესრულდა"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "შინაარსის ტიპი შეზღუდულია. მაინც მიამაგრებთ?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "აღდგენა..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "უარყოფილია."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "წაკითხვის რეპორტი"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "ნომერი არ არის"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "მიბმული ფაილების გარეშე"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "ახალი წერილები"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "წერილის დაკოპირდა SIM ბარათიდან."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "მიმღებთა მაქსიმალური რაოდენობაა %d. ზოგიერთი მიმღები შეიძლება დაიკარგოს."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "გადაჭარბებულია მიმაგრებული ფაილების მაქსიმალური რაოდენობა (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "მიმდინარეობს..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "ინიციალიზაცია..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "თუ არ გსურთ გადაეწეროს არსებულ ფაილს, შეცვალეთ სახელი."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "წერილზე მიმაგრებულია ფაილი, რომელიც არ ჩანს."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "ეს წერილი შეიცავს მიმაგრებულ ფაილებს, რომლებიც არ ჩანს."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ფაილის სახელი უკვე არსებობს."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "წაშლა..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "ასლი შენახულია ბუფერში."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "სრულდება ტექსტურ წერილად გადაკეთება..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "სრულდება მულტიმედიურ წერილად გადაკეთება..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "დაიბლოკოს %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "ონლაინზე გადასვლას აპირებთ(%s). განვაგრძო?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "ტექსტური შეტყობინება"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "თემა:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ელ.ფოსტით გაგზავნა"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "გამგზავნი"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "არჩევა"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "მიმაგრებული ფაილის შენახვა"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "შენახვა"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "წაშლა"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "დაინსტალირება"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "გადამისამართება"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "წერილის შესწორება"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "წაიშალოს?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "წერილების წაშლა"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "აირჩიეთ შეტყობინებები"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "ყველაფრის შენახვა"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "წერილის დეტალები"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "ვადა: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "გაფართოებული ძიება"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "დანართების შენახვა"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "უცნობი"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "ვის:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "ტექსტური შეტყობინებები"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM მეხსიერება გაივსო. წაშალეთ ზოგიერთი ელემენტი."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "პარამეტრები"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "გაგზავნილი:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "მოთხოვნილია."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "მიმღები"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "მიღებულია:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "მიღებულია."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "წაკითხვის რეპორტი"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "წერილების ლოდინი"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d წერილი"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d საუბარი"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "სხვა"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "არ არის თემა"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "უსახელო"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "მულტიმედიური წერილის შეტყობინება"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "მულტიმედიური შეტყობინება"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "წაკითხვა"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "წერილი უარყოფილია."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "წერილის ზომა"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "წერილის პარამეტრები"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "შეტყობინ. მივიდა"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "შეტყობინება"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "მე"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "გადაჭარბებულია მიმაგრებული ფაილების მაქსიმალური რაოდენობა (%1$s). მხოლოდ პირველი %2$s დაემატება."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "მიმღები არასწორია."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "საიდან"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "ვისგან:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "ვადა გაუვიდა"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "ვერ გაიგზავნა."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "მიტანის რეპორტი"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP წერილები"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "ტექსტის კოპირება"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB წერილები"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "ყველა"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 წერილი"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 საუბარი"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "მოითხოვეთ წაკითხვის შესახებ შეტყობინება, თქვენს მიერ გაგზავნილი ყოველი წერილისთვის."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "მოითხოვეთ წერილის მიტანის შესახებ შეტყობინება, თქვენს მიერ გაგზავნილი ყოველი წერილისთვის."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "მოსანიშნი წრე"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ჩართვა-გამორთვის ღილაკი"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "ჩამოსაშლელი სია"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS შეტყობინებების ავტომატური მიღება."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ფაილს ვერ გადახედავთ. ფაილის ტიპი გაუთვალისწინებელია."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "ზოგიერთი მიმღების დამატება შეუძლებელია. ნომრები არასწორია."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "მიმღების დამატება შეუძლებელია. ნომერი არასწორია."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "მიმღებთა დამატება შეუძლებელია. ნომრები არასწორია."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "დანართის დამატება შეუძლებელია. მიღწეულია დანართების მაქსიმალური რაოდენობა (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "ეს ნომერი არასწორია."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "შერჩეული შეტყობინებები დაკოპირდა მობილურ მოწყობილობაში."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d შეტყობინება გადავიდა შეტყობინებების სიაში."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "ნომერი წაიშალა შეტყობინებების დაბლოკვის სიიდან."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "ნომერი დაემატა დაბლოკილი ზარების სიაში."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "შეტყობინების ასლი გადაიწერა %s SIM ბარათზე."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "გადაჭარბებულია სიმბოლოების მაქსიმალური რაოდენობა."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "გადაჭარბებულია შეტყობინების მაქსიმალური ზომა (%s). იცვლება დანართების ზომა..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "შეყვანილია არასწორი სიმბოლო"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "მიმღებთა დამატება."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "შეტყობინებების სიაში გადავიდა 1 შეტყობინება."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "ტექსტური შეტყობინებები"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ხმა"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "მულტიმედიური შეტყობინებები"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "შეტყობინებები SIM ბარათზე"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "ტექსტის აკრეფის რეჟიმი"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "ავტომატური მიღება როუმინგში"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "ავტომატური მიღება"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "გაგზავნეთ"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "არა"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "აირჩიეთ ტესტის აკრეფის რეჟიმი შეტყობინების შესადგენად."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "არცერთი"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "დაალაგეთ SIM ბარათზე შენახული წერილები."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "თქვენი წერილი წაიშლება. მიმღები არ არის არჩეული."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "დაგეგმილი წერილის გაგზავნა შეუძლებელია. დააყენეთ სხვა დრო."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "ვერ დაუკრავთ ზარის დროს."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ფაილს ვერ მიამაგრებთ. ფაილის ზომა ძალზე დიდია. შეეცადეთ გაგზავნოთ ელფოსტით, Bluetooth-ით, Wi-Fi-ით და ა.შ."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "ამ მულტიმედიური შეტყობინების გასაგზავნად, მოწყობილობა დაუკავშირდება სხვა მობილურ ქსელს. ამით მოწყობილობა შეწყვეტს კავშირს მიმდინარე მობილურ ქსელთან."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "ამ მულტიმედიური შეტყობინების ჩამოსატვირთად, მოწყობილობა დაუკავშირდება სხვა მობილურ ქსელს. ამით მოწყობილობა შეწყვეტს კავშირს მიმდინარე მობილურ ქსელთან."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "ეს შეტყობინება თავიდან გაიგზავნება."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d წერილი წაიშლება."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d საუბარი წაიშლება."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "შაბლონები არ არის სიაში"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "მხოლოდ შემომავალი წერილები"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "თავდაპირველი ტექსტი დაემატოს გაგზავნილ წერილს"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "ხანგრძლივობა უნდა იყოს %d წამზე ნაკლები."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "წაშლილია."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "წაიშლება 1 წერილი."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 ელემენტი წაიშლება."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "დეტალების ნახვა"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "იხილეთ საკონტაქტო მონაცემები"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "ნახეთ სლაიდშოუს სახით"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "ვიდეოები"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "კონტაქტის განახლება"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "უნიკოდი"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "ტექსტი"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "სურათის გადაღება"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "პარამეტრები"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "ძებნა"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "დანართების შენახვა"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "ისევ გაგზავნა"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "პასუხი"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "დაბლოკილთა სიიდან ამოშლა"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "ვიდეოს ჩაწერა"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "აუდიოფაილის\nჩაწერა"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "სწრაფი პასუხი"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "არც ერთი"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "ხმოვანი ზარის განხორციელება"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "გამოსახულებები"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM-ანბანი"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "ექსპორტირება აპარატის მეხსიერებაში"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "შეცვლა"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "წერილის წაშლა"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "საუბრის წაშლა"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "ნაგულისხმევი"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "ახალი კონტაქტი"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "გადაწერეთ ასლი SIM ბარათზე"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "ასლის გადაწერა მოწყობილობაში"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "ტექსტის კოპირება"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "ასლი"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "დამარქაფება"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "ავტომატური"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "აუდიოფაილები"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "დანართი"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "კონტაქტებში დამატება"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "დაბლოკილთა სიაში დამატება"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "ადრესატების დამატება"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "ძებნა"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "შედეგები არ მოიძებნა"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "სწრაფი პასუხები არ არის"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "ფრაზები არ არის დაბლოკილი"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "შეტყობინებები არ არის SIM ბარათზე"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "შეტყობინებები არ არის"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "დაბლოკილი ნომრები არ არის"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "ვიბრაცია"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "უცნობი ნომერი"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "SMS ცენტრის ნომერი"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "ყველას არჩევა"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "სიგნალები"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "თარგმნა"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "ტექსტური შეტყობინებები"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "მობილური ქსელის გადართვა"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS ცენტრი"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "პარამეტრები"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "აირჩიეთ მიმღები"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d არჩეულია"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "შეტყობინებები SIM ბარათზე"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "შეტყობინებები"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ტექსტის აკრეფის რეჟიმი"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ფაილის ზომა ძალიან დიდია"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "შეტყობინება ვერ გაიგზავნა"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "წერილის წაშლა"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "შექმნა"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "ყურადღება"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "მასალის დამატება"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "გადართვა"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "შენახვა"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "ისევ გაგზავნა"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "წაშლა"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ჩამოტვირთ."
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "წაშლა"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "წაშლა"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "გაუქმება"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "გაუქმება"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "კონტაქტები"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "თქვენ არჩეული გაქვთ „ხმა და გადაღების“ ფაილი. ხმა არ მუშაობს MMS-ში და მიმაგრდება მხოლოდ სურათი"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "დიახ"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "ელოდება გაგზავნას..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "ეს წერილი ვერ იგზავნება. ჩადეთ SIM ბარათი და ისევ მოსინჯეთ"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "ტიპი:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "შეზღუდული მედიას ტიპების გამოსაყენებლად, შეცვალეთ MMS-ის შექმნის პარამეტრები."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "გაგზავნის დრო:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "მიღების დრო:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "მონიშნეთ უჯრა"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "სტატუსი:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "გაიგზავნა"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "იგზავნ..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "ვერ გაიგზავნა"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "წმ."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "ავტომატურად მიიღეთ შეტყობინებები როუმინგის დროს."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "მიიღეთ შეტყობინებები ავტომატურად."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "წაკითხვის შეტყობინება. %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "სხვა პიროვნება"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "შეტყობინება"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "სამახსოვრო"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "ჩაიშალა"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "შეიყვანეთ ტექსტი"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "მონახაზი"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "მიტანის შეტყობინება: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB შეტყობინება"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "კალენდარი"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "შეტყობინებების გაგზავნის ან მიღების შემდეგ, ისინი გამოჩნდება აქ."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "როდესაც სწრაფ პასუხებს შექმნით, ისინი გამოჩნდება აქ."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "სურათების ასლის SIM-ზე გადაწერის შემდეგ, ისინი გამოჩნდება აქ."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ფრაზების დამატების შემდეგ ისინი გამოჩნდება აქ."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "შეტყობინებების დაბლოკვის სიაში ნომრების დამატების შემდეგ, ისინი გამოჩნდება აქ."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "წაშლა"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "იტვირთება..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "შეტყობინებები"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "მე"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "გგზ."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "გაგზ."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "გგზ."
+
diff --git a/main/po/kk.po b/main/po/kk.po
new file mode 100644 (file)
index 0000000..749dbc3
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Үй парағы"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Деректер роумингі өшірілді. Деректер роумингін қосып, әрекетті қайталау."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Жаңа хабарлама"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "БАС ТАРТУ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ДАЙЫН"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Белгісіз"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Ұялы телефон"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Ұялы деректер өшірілді. Ұялы деректерді қосып, әрекетті қайталау."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ЖІБЕРУ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Қолданылмайтын медиа түрі."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Ұшу режимінде хабарлар жіберу мүмкін емес. Ұшу режимін өшіріп, әрекетті қайталаңыз."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Жіберілмей жатыр\nқайта жіберу бұғатталып қалды."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Құрылғы жадында бос орын жеткіліксіз. Параметрлер > Қуат пен сақтау орны > Сақтау орны бөліміне өтіп, кейбір файлдарды жойыңыз және әрекетті қайталңыз."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Мәтіндік"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Төменгі жағындағы мәтін"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Орнын таңдау"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Мазмұн қосуға болмайды."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Хабар %s тұлғасына жіберілетін болып белгіленді. Қазір жіберу керек пе?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Хабардың ең үлкен өлшеміне жетті."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Батареяның заряды  аз."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Ұзақтығы кемінде %d секунд болуы керек."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Ұшу режимі өшірілуде..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM картасына көшірілді."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Өзгертілді"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Басқа конт. ақп. пайд."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Бойынша жіберу"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Сурет"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Эл. пошта"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Ауыстыру"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Көрініс"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Жоғалту"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Ойнату"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Кімге"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Хабардан бас тарту"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Қабылдаушылар тізімі"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Алдын-ала көру"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "%d/%d слайдтың ұзақтығы"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Элементтер слайдшоуға қосылып жатқанда күте тұрыңыз."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Хабар жіберу мүмкін емес."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Қоңырау үнін таңдау"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Оқылғаны туралы есеп жіберіледі."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Сұралмаған"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Ең көп алушылар санына (%d) жетті."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Нысанды енгізу."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Қайталанатын алушы."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Жіб."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Сақтау мүмкін емес."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Орнын табу мүмкін емес."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Жою мүмкін емес."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Көшіру мүмкін емес."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Кейбір қаріптер жоғалуы мүмкін. Жалғастырасыз ба?  Кейбір қаріптер жоғалуы мүмкін. Жалғастырасыз ба?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM картасы салынған жоқ."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Сақтау сәтсіз."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "“Менің файлдарым” ішінде сақталды."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Хабарды шығару сәтсіз болды"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Шектелген мазмұн түрі. Бәрібір тіркеу керек пе?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Қалпына келтіру..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Қайтарылды"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Оқылғандығы туралы есеп"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Ондай нөмір жоқ"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Қосымшалар жоқ"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Жаңа хабарламалар"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Хабар SIM картасынан көшірілді."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Алушылардың ең көп саны – %d. Кейбір алушылардың жоғалуы мүмкін."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Тіркемелердің ең көп санынан (%s) асып кетті."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Таңбалардың ен көп саны артты."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Процесс үстінде..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Инизиализациалу"
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Егер файлды ауыстырғыңыз келмесе, оның атын өзгертіңіз."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Бұл хабарлама енгізу қосымша көрсетсыз файлдар."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Бұл хабарда көрсетілмеген тіркелген файлдар бар."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Бұл файл атауы бар."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Жойылуда..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Буферге көшірілді."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Мәтіндік хабарға түрлендірілуде..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Мультимедиалық хабарға түрлендірілуде..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s тыйым салу керек пе?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Сіз онлайн режиміне өтейін деп тұрсыз(%s). Жалғастыру керек пе?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Мәтінді хабарлама"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Тақырып :"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Жіберуші электрондық пошта арқылы"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Жіберуші"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Таңдау"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Қосымшаны сақтау"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Сақтау"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Жоғалту"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Орнату"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Қайта жіберу"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Хабарламаны өңдеу"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Өшіресіз бе?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Хабарларды жою"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Хабарларды таңдау"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Барлығын сақтау"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Хабар мәліметтері"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Мерзімі бітеді: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Қосымша іздеу"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Барл.тапс-рды сақтау"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Белгісіз"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Алушы:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Мәтінді хабарламалар"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM жады толы. Кейбір элементтерді жойыңыз."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Қондырғылар"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Жіберілді:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Сұралды"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Қабылдаушылар"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Қабылданды:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Қабылданған."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Оқылғандығы туралы есеп"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push-хабарлама"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d хабарлар"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d әңгімелесу"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Басқа"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Нысаны жоқ"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Ондай есім жоқ"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Мультимедиалық хабар туралы мәлімдеу"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Мультимедиалық хабарлама"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KБ"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Оқу"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Хабар шығарылды."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Хабарлама өлшемі"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Хабар опциялары"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Хабар жеткізілді"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Хабарлама"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Мен"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Ең көп тіркемелер санынан (%1$s) асып кетті. Тек бірінші %2$s қосылады."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Алушы қате."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Кімнен"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Кімге:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Мерзімі өтіп кеткен"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Жіберілген  үзіліп кеті."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Жеткізу жөніндегі есеп"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP хабарлары"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Мәтінді көшіру"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB хабарлары"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Барлығы"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 хабар"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 әңгімелесу"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Сіз жіберетін әрбір хабар үшін оқу есебін сұраңыз."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Сіз жіберетін әрбір хабар үшін жеткізу есебін сұраңыз."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Ауыстырғыш түйме"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Қосу/өшіру түймесі"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Кеңейтілмелі тізім"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS хабарларды автоматты шығару."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Файлды алдын ала көру мүмкін емес. Қолданылмайтын файл түрі."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Кейбір алушыларды қосу мүмкін емес. Нөмірлер жарамсыз."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Алушыны қосу мүмкін емес. Нөмір жарамсыз."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Алушыларды қосу мүмкін емес. Нөмірлер жарамсыз."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Тіркемені қосу мүмкін емес. Тіркемелердің ең көп санынан (%d) асып кетті."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Бұл нөмірі жарамсыз."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Таңдалған хабарлар ұялы құрылғыға көшірілді."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d хабар хабарлар тізіміне жылжытылды."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Нөмір хабар бұғаттау тізімінен жойылды."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Нөмір хабар бұғаттау тізіміне қосылды."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Хабар %s SIM картасына көшірілді."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Ең көп таңбалар санынан асып кетті."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Ең үлкен хабар өлшеміне (%s) жетті. Тіркемелер өлшемін өзгерту..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Қате таңба енгізілді"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Алушыларды қосу."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 хабар хабарлар тізіміне жылжытылды."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Мәтінді хабарлар"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Дыбыс"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Мультимедиа хабарлары"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM картасындағы хабарлар"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Енгізу режимі"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Роуминг кез-де автоматты шығару"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Автоматты шығару"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Қаз. жіб."
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Жоқ"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Хабар жазу үшін енгізу режимін таңдаңыз."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Жоқ"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "SIM картаңызға сақталған хабарларды басқарыңыз."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Хабар алынып тасталады. Таңдалған алушылар жоқ."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Жоспарланған хабарды жіберу мүмкін емес. Басқа уақытты орнатыңыз."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Сөйлесу барысында ойнатуға мүмкіндік жоқ."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Файлды тіркеу мүмкін емес. Файл өлшемі тым үлкен. Электрондық пошта, Bluetooth, Wi-Fi және т.б. арқылы жіберіп көріңіз."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Осы мультимедия хабарын жіберу үшін, құрылғы басқа ұялы желіге қосылады. Бұл құрылғыңызды ағымдағы ұялы желіден ажыратады."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Осы мультимедия хабарын жүктеу үшін, құрылғы басқа ұялы желіге қосылады. Бұл құрылғыңызды ағымдағы ұялы желіден ажыратады."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Бұл хабар қайта жіберіледі."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d хабар жойылады."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d сөйлесу жойылады."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Тізімде үлгілер жоқ"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Тек кіріс хабарлар"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Жіберілген хабарға бастапқы мәтінді қосу"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Ұзақтығы %d секундтан аспауы керек."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Жойылды"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 хабар жойылады."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 контакт жойылады."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Мәліметтерді көру"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Контакт мәліметтерін көрсету"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Слайдшоу ретінде көру"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Бейнежазбалар"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Контактіні жаңарту"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Юникод"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Мәтінді"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Суретке түсіру"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Қондырғылар"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Іздеу"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Тіркемелер сақтау"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Қайта жіберу"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Жауап"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Бұғаттау тізімінен жою"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Бейнені жазу"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Аудио файлды\nжазу"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Жылдам жауап"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Жоқ"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Дауыс қоңырауын жасау"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Суреттер"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM алфавиті"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Құрылғы жадына экспорттау"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Өзгерту"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Хабарды жою"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Әңгімені жою"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Жою"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Өздігінен"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Контакт жасау"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM картаға көшіру"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Құрылғыға көшіру"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Мәтінді көшіру"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Көшіру"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Сақтық көшірме жасау"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Автоматты түрде"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Аудио файлдар"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Тіркеме"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Контактілерге қосу"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Бұғаттау тізіміне қосу"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Алушыларды қосу"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Іздеу"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Нәтиже жоқ"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Жылдам жауаптар жоқ"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Сөз тіркестері бұғатталмаған"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM картасында хабарлар жоқ"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Хабарлар жоқ"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Бұғатталған нөмірлер жоқ"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Діріл"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Белгісіз нөмір"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Мәтін-к хабар орталы-ң нөмірі"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Барлығын таңдау"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Дабылдар"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Аудару"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Мәтінді хабарлар"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Ұялы желіні ауыстыру"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS орта-ғы"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Қондырғылар"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Алушы таңдау"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d таңдалды"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM картасындағы хабарлар"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Хабарламалар"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Енгізу режимі"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Файл өлшемі тым үлкен"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Хабар жіберу сәтсіз аяқталды"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Хабарды алып тастау"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Жою"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Жасау"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Назар аударыңыз"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Мазмұн қосу"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Ауыстыру"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Сақтау"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Қайта жіберу"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Жою"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Жүктеу"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Алып тас-у"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Жою"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Бас тарту"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Бас тарту"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Контактілер"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Дыбыс және кадр пакеті таңдалды. Дыбыс деректері MMS үшін қолданылмайды, суреттерді ғана тіркеуге болады"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Иә"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Жіберуді күтуде..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Бұл хабарды жіберу мүмкін емес. SIM картасын салып, әрекетті қайталаңыз"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Түрі:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Шектелген медиа файлдар түрлерін қолдану үшін MMS хабарын жасау режимінің параметрін өзгертіңіз."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Жіберілген уақыт:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Алынған уақыт:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Құсбелгі орны"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Статус:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Жіберілді"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Жіберу..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Жіберілмеді"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "сек"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Роуминг кезінде хабарларды автоматты түрде шығарыңыз."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Хабарларды автоматты түрде шығару."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Есепті оқыңыз: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Басқа адам"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Хабарлама"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Ескерту"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Сәтсіз"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Мәтінді енгізу"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Жоба"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Жеткізілім есебі: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Оператордың хабарламасы"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Күнтізбе"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Хабарларды жібергеннен не қабылдағаннан кейін олар осында көрсетіледі."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Жылдам жауаптарды жасағаннан кейін, олар осы жерде көрсетіледі."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Хабарларды SIM картасына көшіргеннен кейін, олар осы жерде көрсетіледі."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Сөз тіркестерін қосқаннан кейін олар осы жерде көрсетіледі."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Нөмірлерді хабарды бұғаттау тізіміне қосқаннан кейін, олар осы жерде көрсетіледі."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ЖОЮ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Жазылуда..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Хабарландырулар"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Мен"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Жіб."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Жіб-у"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ЖІБ."
+
diff --git a/main/po/km.po b/main/po/km.po
new file mode 100644 (file)
index 0000000..4a62747
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "ផ្ទះ"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "បាន​បិទ​ទិន្នន័យ​រ៉ូមីង។ បើកប្រើ​ទិន្នន័យ​រ៉ូមីង ហើយ​សាកល្បង​ម្ដងទៀត។"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "សារ​ថ្មី"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "បោះបង់"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "រួចរាល់"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "មិន​ស្គាល់"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "ចល័ត"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "បាន​បិទ​ទិន្នន័យ​ចល័ត។ បើកប្រើ​ទិន្នន័យ​ចល័ត ហើយ​សាកល្បង​ម្ដងទៀត។"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ផ្ញើ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "ប្រភេទ​មេឌៀ​មិន​ទទួល​ការគាំទ្រ។"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "មិន​អាច​ផ្ញើ​សារ​បាន ខណៈពេល​កំពុង​ស្ថិត​ក្នុង​ទម្រង់​យន្តហោះ។ បិទ​ទម្រង់​យន្តហោះ ហើយ​សាកល្បង​ម្ដងទៀត។"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "មិន​អាច​បញ្ជូន​បន្ត។\nឯកសារ​ជាប់​សោ​បញ្ជូន​បន្ត"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "មិនមាន​លំហ​គ្រប់គ្រាន់​ក្នុង​ឃ្លាំងផ្ទុក​នៃ​ឧបករណ៍​របស់​អ្នក។ ចូលទៅ ការកំណត់ > ថាមពល និង ឃ្លាំងផ្ទុក > ឃ្លាំងផ្ទុក រួច​លុប​ឯកសារ​ខ្លះ ហើយ​សាកល្បង​ម្ដងទៀត។"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "អត្ថបទ​នៅ​លើ"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "អត្ថបទ​នៅ​ខាង​ក្រោម"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "ជ្រើស​ប្លង់"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "មិន​អាច​ថែម​ខ្លឹមព័ត៌មាន។"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "បាន​ដាក់​កាលវិភាគ​ផ្ញើ​សារ​ទៅ %s។ ផ្ញើ​ឥឡូវ?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "បាន​ដល់​ទំហំ​សារ​អតិបរមា។"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "ថ្ម​ខ្សោយ។"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Duration must be at least %d seconds."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "កំពុង​បិទ​ទម្រង់​យន្តហោះ..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "បាន​ចម្លង​ទៅ​កាត SIM។"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "បាន​បោះបង់។"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "ប្រើព័ត៌មានទំនាក់ទំនងផ្សេងៗទៀត"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "ផ្ញើ​តាម"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "រូប"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "អ៊ីមែល"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "ជំនួស"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "បង្ហាញ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "លុប"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "ចាក់"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "ទៅ"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "បោះបង់​សារ"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "បញ្ជី​អ្នកទទួល"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "មើលសាក"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "ថិរវេលា​សម្រាប់​ស្លាយដ៍"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "រង់ចាំ​ខណៈពេល​ធាតុត្រូវ​បាន​ថែម​ទៅ​ការបញ្ចាំង​ស្លាយដ៍។"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "មិន​អាច​ផ្ញើ​សារ។"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "ជ្រើស​សំឡេង​រោទ៍"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "នឹង​ផ្ញើ​របាយការណ៍​បាន​អាន។"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "មិន​បាន​ស្នើ"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "បាន​ដល់​ចំនួន​អ្នកទទួល​អតិបរមា (%d)។"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "វាយបញ្ចូល​ប្រធានបទ។"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "អ្នកទទួល​ស្ទួន។"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "ប.ត"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "មិន​អាច​រក្សាទុក។"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "មិន​អាច​រក​ទីកន្លែង។"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "មិន​អាច​លុប។"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "មិន​អាច​ចម្លង។"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "តួ​អក្សរ​ខ្លះ​អាច​បាត់។\nបន្ត?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "មិន​បាន​បញ្ចូល SIM។"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "ការរក្សាទុក​បរាជ័យ។"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "បាន​រក្សាទុក​ក្នុង​ឯកសារ​ខ្ញុំ។"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "ការទៅ​យក​សារ​បរាជ័យ"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "ប្រភេទ​ខ្លឹមព័ត៌មាន​ដែល​បាន​កំហិត។ ភ្ជាប់​ទៀត?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "កំពុង​ស្ដារ..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "បាន​ច្រានចោល។"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "របាយការណ៍​អាន"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "គ្មាន​លេខ"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "គ្មាន​ឯកសារ​ភ្ជាប់"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "សារ​ថ្មីៗ"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "បាន​ចម្លង​សារ​ពី​កាត SIM។"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "ចំនួន​អ្នកទទួល​អតិបរមា​គឺ %d។ អ្នកទទួល​ខ្លះ​អាច​បាត់។"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "បាន​លើស​ចំនួន​អតិបរមា​នៃ​ឯកសារភ្ជាប់ (%s)។"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "បាន​ដល់​ចំនួន​តួអក្សរ​អតិបរមា។"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "កំពុង​ដំណើរការ..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "កំពុង​ចាប់​ផ្ដើម..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "បើ​អ្នក​មិន​ចង់​ជំនួស​ឯកសារ​នេះ​ទេ សូម​ប្តូរ​ឈ្មោះ​វា។"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "សារ​នេះ​មាន​ឯកសារ​ភ្ជាប់​មិន​បាន​បង្ហាញ។"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "សារ​នេះ​មាន​ឯកសារ​ភ្ជាប់​មិន​បាន​បង្ហាញ។"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ឈ្មោះ​ឯកសារ​មាន​ហើយ។"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "កំពុង​លុប..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "បាន​ចម្លង​ទៅ​ក្តារ​តម្បៀត​ខ្ទាស់។"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "កំពុង​បំលែង​ទៅ​សារ​អត្ថបទ..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "កំពុង​បំលែង​ទៅ​ជា​សារ​ពហុព័ត៌មាន..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "ខ្ទប់ %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "អ្នក​ហៀប​ទៅ​លើ​បណ្តាញ (%s)។ បន្ត?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "សារ​អត្ថបទ"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "ប្រធាន​បទ៖"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "អ្នកផ្ញើ​តាម​អ៊ីមែល"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "អ្នកផ្ញើ"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "ជ្រើស"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "រក្សា​ទុក​ឯកសារ​ភ្ជាប់"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "រក្សា​ទុក"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "លុប"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "ដំឡើង"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "បញ្ជូន​បន្ត"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "កែ​សារ"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "លុប?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "លុប​សារ"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "ជ្រើស​សារ"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "រក្សា​ទុក​ទាំង​អស់"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "លម្អិតអំពីសារ"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "“ផុត​កំណត់៖ %s”"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "ការស្វែងរកកម្រិតខ្ពស់"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "រក្សាទុក​ឯកសារភ្ជាប់​ទាំងអស់"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "មិន​ស្គាល់"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "ទៅ៖"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "សារ​អត្ថបទ"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "មេម៉ូរីរបស់ SIM ពេញ។ លុប​ធាតុ​ខ្លះ។"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "ការកំណត់"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "បាន​ផ្ញើ៖"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "បាន​ស្នើ។"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "អ្នកទទួល"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "បាន​ទទួល៖"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "បាន​ទទួល។"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "របាយការណ៍​អាន"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "សារ​រុញ"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d សារ"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d សន្ទនា"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "ដទៃ"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "គ្មាន​ប្រធាន​បទ"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "គ្មាន​ឈ្មោះ"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "ការជូន​ដំណឹង​សារ​ពហុព័ត៌មាន"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "សារ​ពហុ​ព័ត៌មាន"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "អាន"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "បាន​ច្រានចោល​សារ។"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "ទំហំ​សារ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "ជម្រើស​សារ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "បាន​ចែក​ចែក​សារ"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "សារ"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "ខ្ញុំ"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "បាន​លើស​ចំនួន​ឯកសារ​ភ្ជាប់​អតិបរមា (%1$s)។ នឹង​ថែម​តែ %2$s ដំបូង​ប៉ុណ្ណោះ។"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "អ្នកទទួល​អសុពលភាព។"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "ពី"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "ពី៖"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "បាន​ផុត​កំណត់"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "ការផ្ញើ​បាន​បរាជ័យ។"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "របាយការណ៍​ចែក​ចាយ"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "សារ CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "ចម្លង​អត្ថបទ"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "សារ CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "ទាំង​អស់"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 សន្ទនា"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ស្នើ​របាយការណ៍​អាន​សម្រាប់​សារ​នីមួយៗ​ដែល​អ្នក​ផ្ញើ។"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ស្នើ​របាយការណ៍​ចែកចាយ​សម្រាប់​សារ​នីមួយៗ​ដែល​អ្នក​ផ្ញើ។"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "ប៊ូតុង​វិទ្យុ"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ប៊ូតុង​បើក/​បិទ"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "បញ្ជី​ដែល​អាច​ពន្លា​បាន"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "ទៅយក​សារ MMS ដោយ​ស្វ័យប្រវត្តិ។"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "មិន​អាច​បង្ហាញ​ឯកសារ។ ប្រភេទ​ឯកសារ​មិន​ទទួល​ការគាំទ្រ។"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "មិន​អាច​ថែម​អ្នកទទួល​ខ្លះ។ លេខ​អសុពលភាព។"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "មិន​អាច​ថែម​អ្នកទទួល។ លេខ​អសុពលភាព។"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "មិន​អាច​ថែម​អ្នកទទួល។ លេខ​អសុពលភាព។"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "មិន​អាច​ថែម​ឯកសារភ្ជាប់។ បាន​ដល់​ចំនួន​អតិបរមា​នៃ​ឯកសារភ្ជាប់ (%d)។"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "លេខ​នេះ​អសុពលភាព។"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "បាន​ចម្លង​សារ​ដែល​បាន​ជ្រើស​ទៅ​ឧបករណ៍​ចល័ត។"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "បាន​ផ្លាស់ទី​សារ %d ទៅ​បញ្ជី​សារ។"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "បាន​លុប​លេខ​ពី​បញ្ជី​ខ្ទប់​សារ។"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "បាន​ថែម​លេខ​ទៅ​បញ្ជី​ខ្ទប់​សារ។"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "បាន​ចម្លង​សារ​ទៅ​កាត SIM %s។"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "បាន​លើស​ចំនួន​អតិបរមា​នៃ​តួអក្សរ។"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "បាន​លើស​ទំហំ​សារ​អតិបរមា (%s)។ កំពុង​ប្ដូរទំហំ​ឯកសារភ្ជាប់..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "បាន​វាយបញ្ចូល​តួអក្សរ​អសុពលភាព"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "ថែម​អ្នកទទួល។"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "បាន​ផ្លាស់ទី​សារ 1 ទៅ​បញ្ជី​សារ។"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "សារ​អត្ថបទ"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "សំឡេង"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "សារ​ពហុព័ត៌មាន"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "សារ​លើ​កាត SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "ទម្រង់​បញ្ចូល"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "ស្វ័យ​ទៅយក ខណៈពេល​កំពុង​រ៉ូមីង"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "ស្វ័យ​ទៅយក"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "ផ្ញើ​ឥឡូវ"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "ទេ"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "ជ្រើស​ទម្រង់​បញ្ចូល​សម្រាប់​ការតែង​សារ។"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "គ្មាន"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "គ្រប់គ្រង​សារ​ដែល​បាន​រក្សាទុក​លើ​កាត SIM របស់​អ្នក។"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "នឹង​ចោល​សារ​របស់​អ្នក។ មិន​បាន​ជ្រើស​អ្នកទទួល​ណា​ម្នាក់។"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "មិន​អាច​ផ្ញើ​សារ​ដែល​បាន​កំណត់​កាលវិភាគ។ កំណត់​ពេល​ផ្សេង។"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "មិន​អាច​ចាក់​ក្នុង​អំឡុងពេល​ហៅ។"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "មិន​អាច​ភ្ជាប់​ឯកសារ​បាន​ទេ។ ទំហំ​ឯកសារ​ធំ​ពេក។ សាកល្បង​ផ្ញើ​តាម​រយៈ​អ៊ីមែល, Bluetooth, Wi-Fi ។ល។"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "ដើម្បី​ផ្ញើ​សារ​ពហុព័ត៌មាន​នេះ ឧបករណ៍​នឹង​ភ្ជាប់​ទៅ​បណ្ដាញ​ចល័ត​ផ្សេង។ នេះ​នឹង​ផ្ដាច់​ឧបករណ៍​របស់​អ្នក​ពី​បណ្ដាញ​ចល័ត​បច្ចុប្បន្ន​របស់​អ្នក។"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "ដើម្បី​ទាញយក​សារ​ពហុព័ត៌មាន​នេះ ឧបករណ៍​នឹង​ភ្ជាប់​ទៅ​បណ្ដាញ​ចល័ត​ផ្សេង។ នេះ​នឹង​ផ្ដាច់​ឧបករណ៍​របស់​អ្នក​ពី​បណ្ដាញ​ចល័ត​បច្ចុប្បន្ន​របស់​អ្នក។"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "នឹង​ផ្ញើ​សារ​នេះ​ឡើងវិញ។"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "នឹង​លុប​សារ %d។"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "នឹង​លុប​សន្ទនា %d។"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "គ្មាន​ពុម្ព​គំរូ​ក្នុង​បញ្ជី"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "សារ​ចូល​ប៉ុណ្ណោះ"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "រួម​បញ្ចូល​អត្ថបទ​ដើម​ក្នុង​សារ​ចេញ"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "ថិរវេលា​ត្រូវតែ​ខ្លី​ជាង %d វិនាទី។"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "បាន​លុប។"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "សារ 1 ច្បាប់នឹងត្រូវគេ​លុបចោល។"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "នឹង​លុប​សន្ទនា 1។"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "បង្ហាញ​ព័ត៌មាន​លម្អិត"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "បង្ហាញ​ព័ត៌មាន​លម្អិត​ទំនាក់ទំនង"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "បង្ហាញ​ជា​ការបញ្ចាំង​ស្លាយដ៍"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "វីដេអូ"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "អាប់ដេត​ទំនាក់ទំនង"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "យូនីកូដ"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "អត្ថបទ"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "ថត​រូបភាព"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "ការកំណត់"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "ស្វែងរក"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "រក្សាទុក​ឯកសារ​ភ្ជាប់"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "ផ្ញើឡើងវិញ"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "ឆ្លើយតប"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "លុប​ពី​បញ្ជី​ខ្ទប់"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "ថតវីដេអូ"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "ថត​ឯកសារ​អូឌីយ៉ូ"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "ការឆ្លើយតប​រហ័ស"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "គ្មាន"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "ធ្វើ​ការហៅ​សំឡេង"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "រូប"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "អក្សរក្រម GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "នាំ​ចេញ​ទៅ​មេម៉ូរី​ឧបករណ៍"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "កែ"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "លុប​សារ"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "លុប​សន្ទនា"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "លុប"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "លំនាំ​ដើម"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "បង្កើត​ទំនាក់ទំនង"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "ចម្លង​ទៅ​កាត SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "ចម្លង​ទៅ​ឧបករណ៍"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "ចម្លង​អត្ថបទ"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "ចម្លង"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "ចម្លងទុក"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "ស្វ័យ​ប្រវត្តិ"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "ឯកសារ​អូឌីយ៉ូ"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "ឯកសារ​ភ្ជាប់"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "ថែម​ទៅ​ទំនាក់ទំនង"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "ថែម​ទៅ​បញ្ជី​ខ្ទប់"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "ថែម​អ្នកទទួល"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "ស្វែងរក"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "រក​មិនឃើញ​លទ្ធផល​ណា​មួយ"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "គ្មាន​ការឆ្លើយតប​រហ័ស"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "គ្មាន​ប្រយោគ​ត្រូវ​បាន​ខ្ទប់"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "គ្មាន​សារ​លើ​កាត SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "គ្មាន​សារ"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "គ្មាន​លេខ​ដែល​បាន​ខ្ទប់"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "រំញ័រ"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "លេខ​មិន​ស្គាល់"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "លេខ​មជ្ឈមណ្ឌល​សារ​អត្ថបទ"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "ជ្រើស​ទាំងអស់"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "ការប្រាប់ដំណឹង"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "បកប្រែ"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "សារ​អត្ថបទ"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "ប្ដូរ​បណ្ដាញ​ចល័ត"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "មជ្ឈមណ្ឌល SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "ការកំណត់"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "ជ្រើស​អ្នកទទួល"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "បាន​ជ្រើស %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "សារ​លើ​កាត SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "សារ"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ទម្រង់​បញ្ចូល"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ទំហំ​ឯកសារ​ធំ​ពេក"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ផ្ញើ​សារ"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "ចោល​សារ"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "លុប"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "បង្កើត"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "ប្រុងប្រយ័ត្ន"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "ថែម​ខ្លឹមព័ត៌មាន"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "ប្ដូរ"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "រក្សាទុក"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "ផ្ញើ​ម្ដងទៀត"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "លុបចេញ"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ព្រម"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ទាញយក"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "ចោល"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "លុប"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "បោះបង់"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "បោះ​បង់"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "ទំនាក់ទំនង"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "អ្នក​បាន​ជ្រើស​ឯកសារ​សំឡេង & រូបថត មួយ។ ទិន្នន័យ​សំឡេង​មិន​ទទួល​ការគាំទ្រ​សម្រាប់ MMS ដូច្នេះ​វា​នឹង​ភ្ជាប់​តែ​រូបភាព​ប៉ុណ្ណោះ។"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "បាទ/ចាស"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "កំពុង​រង់ចាំ​ផ្ញើ..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "មិន​អាច​ផ្ញើ​សារ​នេះ។ បញ្ចូល​កាត SIM របស់​អ្នក ហើយ​សាកល្បង​ម្ដងទៀត។"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "ប្រភេទ៖"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "ដើម្បី​ប្រើ​ប្រភេទ​កំហិត​មេឌៀ​បាន ចូរ​ប្ដូរ​ការ​កំណត់​ការ​បង្កើត MMS របស់​អ្នក។"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "ម៉ោង​បាន​ផ្ញើ៖"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "ម៉ោង​បាន​ទទួល៖"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "ប្រអប់​ធីក"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "ស្ថានភាព៖"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "បាន​ផ្ញើ"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "កំពុង​ផ្ញើ..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "ការផ្ញើ​បាន​បរាជ័យ"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "វិនាទី"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "ទៅយក​សារ​ដោយ​ស្វ័យប្រវត្តិ ខណៈពេល​រ៉ូមីង។"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "ទៅយក​សារ​ដោយ​ស្វ័យប្រវត្តិ។"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "របាយការណ៍​អាន៖ %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "មនុស្ស​ផ្សេង"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "សារ"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "មេម៉ូ"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "បាន​បរាជ័យ"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "វាយបញ្ចូល​អត្ថបទ"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "សារព្រាង"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "របាយការណ៍​ចែកចាយ៖ %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "សារ CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "ប្រតិទិន"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "បន្ទាប់​ពី​អ្នក​ផ្ញើ ឬ ទទួល​សារ ពួកវា​នឹង​បង្ហាញ​ឡើង​នៅ​ទីនេះ។"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "បន្ទាប់​ពី​អ្នក​បង្កើត​ការឆ្លើយតប​រហ័ស ពួកវា​នឹង​បង្ហាញ​ឡើង​នៅ​ទីនេះ។"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "បន្ទាប់​ពី​អ្នក​ចម្លង​សារ​ទៅ​កាត SIM ពួកវា​នឹង​បង្ហាញ​ឡើង​នៅ​ទីនេះ។"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "បន្ទាប់​ពី​អ្នក​ថែម​ប្រយោគ ពួកវា​នឹង​បង្ហាញ​ឡើង​នៅ​ទីនេះ។"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "បន្ទាប់​ពី​អ្នក​ថែម​លេខ​ទៅ​បញ្ជី​ខ្ទប់​សារ ពួកវា​នឹង​បង្ហាញ​ឡើង​នៅ​ទីនេះ។"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "លុប"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "កំពុង​ផ្ទុក..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "ការជូន​ដំណឹង"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "ខ្ញុំ"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "ផ្ញើ"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "ផ្ញើ"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ផ្ញើ"
+
diff --git a/main/po/kn.po b/main/po/kn.po
new file mode 100644 (file)
index 0000000..1bf0f1c
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "ಹೋಮ್"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "ಡೇಟಾ ರೋಮಿಂಗ್ ನಿಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ. ಡೇಟಾ ರೋಮಿಂಗ್ ಶಕ್ತಗೊಳಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "ಹೊಸ ಸಂದೇಶ"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ರದ್ದುಮಾಡಿ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ಮುಗಿದಿದೆ"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "ತಿಳಿಯದ"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "ಮೊಬೈಲ್"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "ಮೊಬೈಲ್ ಡೇಟಾ ನಿಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ. ಮೊಬೈಲ್ ಡೇಟಾ ಶಕ್ತಗೊಳಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ಕಳುಹಿಸಿ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "ಬೆಂಬಲವಿಲ್ಲದ ಮಿಡಿಯಾ ವಿಧ."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "ಫ್ಲೈಟ್ ಮೋಡ್‌ನಲ್ಲಿ ಇರುವಾಗ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸಲು ಅಸಮರ್ಥ. ಫ್ಲೈಟ್ ಮೋಡ್ ನಿಶಕ್ತಗೊಳಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "ಮುಂದೂಡಲು ಸಾಧ್ಯವಿಲ್ಲ. \nಫೈಲ್ ಫಾರ್ವರ್ಡ್ ಲಾಕ್ ಆಗಿದೆ"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "ನಿಮ್ಮ ಸಾಧನ ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಸಾಕಷ್ಟು ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ. ಸಂಯೋಜನೆಗಳು > ಪವರ್ ಮತ್ತು ಸಂಗ್ರಹಣೆ > ಸಂಗ್ರಹಣೆಗೆ ಹೋಗಿ, ನಂತರ ಕೆಲವು ಫೈಲ್‌ಗಳನ್ನು ಅಳಿಸಿ ಹಾಗೂ ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "ಮೇಲಿರುವ ಪಠ್ಯ"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "ತಳದ ಮೇಲಿನ ಪಠ್ಯ"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "ವಿನ್ಯಾಸ ಆರಿಸಿ"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "ಕಂಟೆಂಟ್ ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "ನಿಗದಿಗೊಳಿಸಿದ ಸಂದೇಶವನ್ನು %sಗೆ ಕಳುಹಿಸಲಾಗುವುದು. ಈಗ ಕಳುಹಿಸಲೇ?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "ಗರಿಷ್ಠ ಸಂದೇಶ ಗಾತ್ರ ತಲುಪಿದೆ."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "ಬ್ಯಾಟರಿ ಕಡಿಮೆಯಿದೆ."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "ಅವಧಿ ಕನಿಷ್ಠ %d ಸೆಕೆಂಡುಗಳಿರಬೇಕು."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "ಫ್ಲೈಟ್ ಮೋಡ್ ಅಶಕ್ತಗೊಳಿಸುತ್ತಿದೆ..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM ಕಾರ್ಡ್‌ಗೆ ನಕಲಿಸಲಾಗಿದೆ."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "ರದ್ದುಪಡಿಸಲಾಗಿದೆ."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "ಬೇರೆ ಸಂಪರ್ಕ ಮಾಹಿತಿಯನ್ನು ಬಳಕೆ ಮಾಡಿ"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "ಈ ಮೂಲಕ ಕಳುಹಿಸಿ"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "ಚಿತ್ರ"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ಇಮೇಲ್"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "ಸ್ಥಳಾಂತರಗೊಳಿಸು"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "ವೀಕ್ಷಿಸಿ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "ತೆಗೆಯಿರಿ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "ಪ್ಲೇ"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "ಇವರಿಗೆ"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "ಸಂದೇಶ ರದ್ದುಗೊಳಿಸಿ"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "ಸ್ವೀಕರಿಸುವವರ ಪಟ್ಟಿ"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "ಪೂರ್ವವೀಕ್ಷಣೆ"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "ಸ್ಲೈಡ್‌ಗಾಗಿ ಅವಧಿ %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "ಅಂಶಗಳನ್ನು ಸ್ಲೈಡ್‌ಶೋಗೆ ಸೇರಿಸುವಾಗ ನಿರೀಕ್ಷಿಸಿ."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "ಸಂದೇಶ ಕಳುಹಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "ರಿಂಗ್‌ಟೋನ್ ಆರಿಸಿ"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "ಓದಿದ ವರದಿ ಕಳುಹಿಸಲಾಗುವುದು."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "ಮನವಿ ಮಾಡಲಾಗಿಲ್ಲ"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "ಸ್ವೀಕೃತದಾರರ ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯು (%d) ತಲುಪಿದೆ."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "ವಿಷಯ ನಮೂದಿಸಿ."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "ನಕಲಿಯಾದ ಸ್ವೀಕೃತದಾರರು."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "ರವಾ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "ಉಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "ಸ್ಥಾನ ಹುಡುಕಲು ಅಸಮರ್ಥ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "ನಕಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "ಕೆಲವು ಅಕ್ಷರಗಳು ನಷ್ಟವಾಗಿರಬಹುದು.\nಮುಂದುವರಿಸುವುದೆ?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM ಸೇರಿಸಲಾಗಿಲ್ಲ."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "ಉಳಿಸುವಿಕೆ ವಿಫಲವಾಗಿದೆ."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "ನನ್ನ ಫೈಲ್‌ಗಳಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "ಕೈಬಿಡಲಾಗುತ್ತಿದೆ ಸಂದೇಶ ವಿಫಲವಾಗಿದೆ"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "ನಿರ್ಬಂಧಿತ ಒಳಾಂಶ ವಿಧ. ಹೇಗಿದ್ದರೂ ಲಗತ್ತಿಸುವುದೆ?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "ಮರುಸಂಗ್ರಹಿಸಲಾಗುತ್ತಿದೆ..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "ತಿರಸ್ಕರಿಸಲಾಗಿದೆ."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "ವರದಿ ಓದಿರಿ"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "ಯಾವುದೆ ಸಂಖ್ಯೆಯಿಲ್ಲ"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "ಜೋಡನೆಗಳಿಲ್ಲ"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "ಹೊಸ ಸಂದೇಶಗಳು"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM ಕಾರ್ಡ್‌ನಿಂದ ಸಂದೇಶ ನಕಲಿಸಿದೆ."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯ ಸ್ವೀಕೃತದಾರರು %d. ಕೆಲವು ಸ್ವೀಕೃತದಾರರು ನಷ್ಟವಾಗಬಹುದು"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "ಜೋಡಣೆಗಳ (%s) ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯನ್ನು ಮೀರಿದೆ."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "ಅಕ್ಷರಗಳ ಗರಿಷ್ಠ ಸಂಖ್ಯೆ ತಲುಪಿದೆ."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "ಪ್ರಗತಿಯಲ್ಲಿ..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "ಆರಂಭಗೊಳ್ಳುತ್ತಿದೆ..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "ನೀವು ಫೈಲ್‌ನ್ನು ಸ್ಥಾನಪಲ್ಲಟಗೊಳಿಸಲು ಬಯಸದಿದ್ದಲ್ಲಿ, ದಯವಿಟ್ಟು ಅದನ್ನು ಮರುಹೆಸರಿಸಿ."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "ಈ ಸಂದೇಶ ತೋರಿಸದೆ ಇರುವ ಲಗತ್ತಿಸಿದ ಫೈಲ್ ಒಳಗೊಂಡಿದೆ."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "ಈ ಸಂದೇಶ ತೋರಿಸದೆ ಇರುವ ಲಗತ್ತಿಸಿದ ಫೈಲ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ಫೈಲ್ ಹೆಸರು ಈಗಾಗಲೆ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "ಅಳಿಸಲಾಗುತ್ತಿದೆ..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿದೆ."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "ಪಠ್ಯ ಸಂದೇಶಕ್ಕೆ ಪರಿವರ್ತಿಸುತ್ತಿದೆ..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "ಮಲ್ಟಿಮೀಡಿಯಾ ಸಂದೇಶಕ್ಕೆ ಪರಿವರ್ತಿಸುತ್ತಿದೆ..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s ತಡೆಯುವುದೆ?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "ನೀವು ಇದೀಗ ಆನ್ ಲೈನಿಗೆ ಹೋಗಲಿದ್ದೀರಿ (%sಗಳು) ಮುಂದುವರಿಯಲೆ?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "ಪಠ್ಯ ಸಂದೇಶ"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "ವಿಷಯ:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ಇಮೇಲ್ ಮೂಲಕ ಕಳುಹಿಸಿ"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "ಕಳುಹಿಸುವವರು"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "ಆಯ್ಕೆ"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "ಲಗತ್ತು ಉಳಿಸಿ"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "ಉಳಿಸು"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "ತೆಗೆಯಿರಿ"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "ಸ್ಥಾಪಿಸು"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "ಫಾರ್ವರ್ಡ್‌"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "ಸಂದೇಶವನ್ನು ತಿದ್ದಿ"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "ಅಳಿಸಲೇ?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "ಸಂದೇಶಗಳನ್ನು ಅಳಿಸಿ"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "ಸಂದೇಶಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿ"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "ಎಲ್ಲಾ ಉಳಿಸಿ"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "ಸಂದೇಶ ವಿವರಗಳು"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "ಸಮಾಪ್ತವಾಗುವುದು: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "ಸುಧಾರಿತ ಶೋಧ"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "ಎಲ್ಲ ಲಗತ್ತುಗಳನ್ನು ಉಳಿಸಿ"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "ತಿಳಿಯದ"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "ಇವರಿಗೆ:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "ಪಠ್ಯ ಸಂದೇಶಗಳು"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM ಸ್ಮರಣೆ ಭರ್ತಿ. ಕೆಲವು ಅಂಶಗಳನ್ನು ಅಳಿಸಿ."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "ಸಂಯೋಜನೆಗಳು"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "ಕಳುಹಿಸಲಾಗಿದೆ:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "ವಿನಂತಿಸಲಾಗಿದೆ."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "ಸ್ವೀಕರ್ತರು"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "ಸ್ವೀಕರಿಸಿದ:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "ಸ್ವೀಕರಿಸಲಾಗಿದೆ."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "ವರದಿ ಓದಿರಿ"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "ತಳ್ಳುವ ಸಂದೇಶಗಳು"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d ಸಂದೇಶಗಳು"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d ಸಂಭಾಷಣೆಗಳು"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "ಇತರೆ"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "ಯಾವುದೆ ವಿಷಯ ಇಲ್ಲ"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "ಯಾವುದೆ ಹೆಸರಿಲ್ಲ"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "ಮಲ್ಟಿಮೀಡಿಯಾ ಸಂದೇಶದ ಪ್ರಕಟಣೆ"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "ಮಲ್ಟಿಮೀಡಿಯಾ ಸಂದೇಶ"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "ಓದಿ"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "ಸಂದೇಶವನ್ನು ತಿರಸ್ಕರಿಸಲಾಗಿದೆ."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "ಸಂದೇಶ ಗಾತ್ರ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "ಸಂದೇಶ ಆಯ್ಕೆಗಳು"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "ಸಂದೇಶ ಕಳುಹಿಸಲಾಗಿದೆ"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "ಸಂದೇಶ"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "ನಾನು"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "ಜೋಡಣೆಗಳ (%1$s) ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯನ್ನು ಮೀರಿದೆ. ಕೇವಲ ಮೊದಲ %2$s ಸೇರಿಸಲಾಗುವುದು."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "ಸಿಂಧುವಲ್ಲದ ಸ್ವೀಕೃತದಾರ."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "ಇಂದ"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "ಇಂದ:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "ಅವಧಿ ಮುಕ್ತಾಯಗೊಂಡಿದೆ"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "ಕಳುಹಿಸುತ್ತಿರುವುದು ವಿಫಲಗೊಂಡಿದೆ."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "ವಿತರಣೆ ವರಧಿ"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "ಸಿಪಿ ಸಂದೇಶಗಳು"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "ಪಠ್ಯವನ್ನು ನಕಲಿಸು"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB ಸಂದೇಶಗಳು"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "ಎಲ್ಲಾ"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 ಸಂದೇಶ"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 ಸಂಭಾಷಣೆ"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ನೀವು ಕಳುಹಿಸುವ ಪ್ರತಿ ಸಂದೇಶಕ್ಕೆ ಓದಿದ ವರದಿಯನ್ನು ವಿನಂತಿಸಿ."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ನೀವು ಕಳುಹಿಸುವ ಪ್ರತಿ ಸಂದೇಶಕ್ಕೆ ವಿತರಣೆ ವರದಿಗಾಗಿ ವಿನಂತಿಸಿ."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "ರೇಡಿಯೊ ಬಟನ್"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ಆನ್/ಆಫ್ ಬಟನ್"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "ವಿಸ್ತರಿಸಬಹುದಾದ ಪಟ್ಟಿ"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS ಸಂದೇಶಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಹಿಂಪಡೆಯಿರಿ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ಫೈಲ್ ಪೂರ್ವವೀಕ್ಷಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಬೆಂಬಲಿಸದ ಫೈಲ್ ಪ್ರಕಾರ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "ಕೆಲವು ಸ್ವೀಕೃತದಾರರನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಸಂಖ್ಯೆಗಳು ಮಾನ್ಯವಾಗಿಲ್ಲ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "ಸ್ವೀಕೃತದಾರನನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಸಂಖ್ಯೆ ಮಾನವಾಗಿಲ್ಲ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "ಸ್ವೀಕೃತದಾರರನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಸಂಖ್ಯೆಗಳು ಮಾನ್ಯವಾಗಿಲ್ಲ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "ಲಗತ್ತು ಸೇರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಲಗತ್ತುಗಳ ಗರಿಷ್ಠ ಮಿತಿ (%d) ತಲುಪಿದೆ."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "ಈ ಸಂಖ್ಯೆ ಮಾನ್ಯವಾಗಿಲ್ಲ."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "ಆಯ್ಕೆಮಾಡಿದ ಸಂದೇಶಗಳನ್ನು ಮೊಬೈಲ್ ಸಾಧನಕ್ಕೆ ನಕಲಿಸಲಾಗಿದೆ."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "ಸಂದೇಶ ಪಟ್ಟಿಗೆ %d ಸಂದೇಶಗಳನ್ನು ಚಲಿಸಲಾಗಿದೆ."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "ಸಂಖ್ಯೆಯನ್ನು ಸಂದೇಶ ನಿರ್ಬಂಧ ಪಟ್ಟಿಯಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "ಸಂಖ್ಯೆಯನ್ನು ಸಂದೇಶ ನಿರ್ಬಂಧ ಪಟ್ಟಿಗೆ ಸೇರಿಸಲಾಗಿದೆ."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "ಸಂದೇಶವನ್ನು %s SIM ಕಾರ್ಡ್‌ಗೆ ನಕಲಿಸಲಾಗಿದೆ."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "ಅಕ್ಷರಗಳು ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯನ್ನು ಮೀರಿದೆ."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "ಸಂದೇಶದ ಗರಿಷ್ಠ ಗಾತ್ರ (%s) ಮೀರಿದೆ. ಲಗತ್ತುಗಳನ್ನು ಮರುಗಾತ್ರಗೊಳಿಸಲಾಗುತ್ತಿದೆ..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "ಅಮಾನ್ಯ ಅಕ್ಷರ ನಮೂದಿಸಲಾಗಿದೆ"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "ಸ್ವೀಕೃತದಾರರನ್ನು ಸೇರಿಸಿ."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 ಸಂದೇಶವನ್ನು ಸಂದೇಶ ಪಟ್ಟಿಗೆ ಸರಿಸಲಾಗಿದೆ."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "ಪಠ್ಯ ಸಂದೇಶಗಳು"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ಶಬ್ದ"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "ಮಲ್ಟಿಮೀಡಿಯಾ ಸಂದೇಶಗಳು"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM ಕಾರ್ಡ್‌ನಲ್ಲಿ ಸಂದೇಶಗಳು"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "ಇನ್‌ಪುಟ್ ಮೋಡ್‌"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "ರೋಮಿಂಗ್‌ನಲ್ಲಿರುವಾಗ ಸ್ವಯಂ ಹಿಂಪಡೆಯಿರಿ"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "ಸ್ವಯಂ ಹಿಂಪಡೆಯಿರಿ"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "ಈಗ ಕಳುಹಿಸಿ"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "ಇಲ್ಲ"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "ಸಂದೇಶಗಳನ್ನು ರಚಿಸುವ ಸಲುವಾಗಿ ಇನ್‌ಪುಟ್‌ ಮೋಡ್ ಆಯ್ಕೆಮಾಡಿ."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "ಯಾವುದೂ ಇಲ್ಲ"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "ನಿಮ್ಮ SIM ಕಾರ್ಡ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿರುವ ಸಂದೇಶಗಳನ್ನು ನಿರ್ವಹಿಸಿ."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "ನಿಮ್ಮ ಸಂದೇಶವನ್ನು ತ್ಯಜಿಸಲಾಗುವುದು. ಯಾವುದೇ ಸ್ವೀಕೃತದಾರರನ್ನು ಆಯ್ಕೆಮಾಡಲಾಗಿಲ್ಲ."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "ಶೆಡ್ಯೂಲ್ ಆದ ಸಂದೇಶ ಕಳುಹಿಸಲು ಅಸಮರ್ಥ. ಇನ್ನೊಂದು ಸಮಯ ಹೊಂದಿಸಿ."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "ಕರೆಯ ಸಮಯದಲ್ಲಿ ಪ್ಲೇ ಮಾಡಲಾಗುತ್ತಿಲ್ಲ."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ಫೈಲ್ ಜೋಡಿಸಲು ಅಸಮರ್ಥ. ಫೈಲ್ ಗಾತ್ರ ತುಂಬಾ ದೊಡ್ಡದು. ಇಮೇಲ್, ಬ್ಲೂಟೂತ್‌, Wi-Fi ಇತ್ಯಾದಿಗಳ ಮೂಲಕ ಕಳುಹಿಸಲು ಯತ್ನಿಸಿ."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "ಈ ಮಲ್ಟಿಮೀಡಿಯಾ ಸಂದೇಶವನ್ನು ಕಳುಹಿಸಲು, ಸಾಧನವು ಬೇರೆ ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಗೊಳ್ಳುತ್ತದೆ. ಇದು ನಿಮ್ಮ ಸಾಧನವನ್ನು ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ನಿಂದ ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸುತ್ತದೆ."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "ಈ ಮಲ್ಟಿಮೀಡಿಯಾ ಸಂದೇಶವನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು, ಸಾಧನವು ಬೇರೆ ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಿಸುತ್ತದೆ. ಇದು ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ನಿಂದ ಸಾಧನದ ಸಂಪರ್ಕ ತೆಗೆಯುತ್ತದೆ."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "ಈ ಸಂದೇಶವನ್ನು ಮತ್ತೆ ಕಳುಹಿಸಲಾಗುವುದು."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d ಸಂದೇಶಗಳನ್ನು ಅಳಿಸಲಾಗುವುದು."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d ಸಂಭಾಷಣೆಗಳನ್ನು ಅಳಿಸಲಾಗುವುದು."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "ಪಟ್ಟಿಯಲ್ಲಿ ಟೆಂಪ್ಲೇಟ್‌ಗಳು ಇಲ್ಲ"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "ಒಳಬರುವ ಸಂದೇಶಗಳು ಮಾತ್ರ"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "ಹೊರಹೋಗುವ ಸಂದೇಶಗಳಲ್ಲಿ ಮೂಲ ಪಠ್ಯವನ್ನು ಸೇರಿಸಿ"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "ಕಾಲಾವಧಿಯು %d ಸೆಕೆಂಡುಗಳಿಗಿಂತ ಕಡಿಮೆ ಇರಬೇಕು."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "ತೆಗೆದುಹಾಕಲಾಗಿದೆ."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 ಸಂದೇಶವನ್ನು ಅಳಿಸಲಾಗುವುದು."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 ಸಂಭಾಷಣೆಯನ್ನು ಅಳಿಸಲಾಗುವುದು."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "ವಿವರಗಳನ್ನು ವೀಕ್ಷಿಸಿ"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "ಸಂಪರ್ಕ ವಿವರಗಳನ್ನು ವೀಕ್ಷಿಸಿ"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "ಸ್ಲೈಡ್‌ಶೋ ಎಂಬಂತೆ ವೀಕ್ಷಿಸಿ"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "ವೀಡಿಯೊಗಳು"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "ಸಂಪರ್ಕ ನವೀಕರಿಸಿ"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "ಯುನಿಕೋಡ್"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "ಪಠ್ಯ"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "ಚಿತ್ರ ತೆಗೆದುಕೊಳ್ಳಿ"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "ಸಂಯೋಜನೆಗಳು"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "ಹುಡುಕಿ"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "ಲಗತ್ತುಗಳನ್ನು ಉಳಿಸಿ"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "ಪುನಃ ಕಳುಹಿಸಿ"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "ಉತ್ತರಿಸಿ"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "ನಿರ್ಬಂಧ ಪಟ್ಟಿಯಿಂದ ತೆಗೆಯಿರಿ"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "ರೆಕಾರ್ಡ್ ವೀಡಿಯೊ"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "ಆಡಿಯೋ ಫೈಲ್ ರೆಕಾರ್ಡ್ ಮಾಡಿ"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "ಶೀಘ್ರ ಪ್ರತಿಕ್ರಿಯೆ"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "ಯಾವುದೂ ಇಲ್ಲ"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "ಧ್ವನಿ ಕರೆ ಮಾಡಿ"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "ಚಿತ್ರಗಳು"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM ವರ್ಣಮಾಲೆ"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "ಸಾಧನದ ಸ್ಮರಣೆಗೆ ರಫ್ತು ಮಾಡಿ"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "ತಿದ್ದಿ"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "ಸಂದೇಶ ಅಳಿಸಿ"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "ಸಂಭಾಷಣೆ ಅಳಿಸಿ"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "ಅಳಿಸು"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "ಡಿಫಾಲ್ಟ್"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "ಸಂಪರ್ಕ ರಚಿಸಿ"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM ಕಾರ್ಡ್‌ಗೆ ನಕಲಿಸಿ"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "ಸಾಧನಕ್ಕೆ ನಕಲಿಸಿ"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "ಪಠ್ಯವನ್ನು ನಕಲಿಸು"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "ನಕಲಿಸಿ"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "ಬ್ಯಾಕಪ್"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "ಸ್ವಯಂಚಾಲಿತವಾಗಿ"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "ಆಡಿಯೋ ಫೈಲ್‌ಗಳು"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "ಲಗತ್ತು"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸಿ"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "ನಿರ್ಬಂಧ ಪಟ್ಟಿಗೆ ಸೇರಿಸಿ"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "ಸ್ವೀಕೃತದಾರರನ್ನು ಸೇರಿಸಿ"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "ಹುಡುಕು"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "ಫಲಿತಾಂಶಗಳು ಕಂಡುಬಂದಿಲ್ಲ"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "ಯಾವುದೇ ತ್ವರಿತ ಪ್ರತಿಕ್ರಿಯೆಗಳಿಲ್ಲ"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "ಯಾವುದೇ ನುಡಿಗಟ್ಟುಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿಲ್ಲ"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM ಕಾರ್ಡ್‌ನಲ್ಲಿ ಸಂದೇಶಗಳಿಲ್ಲ"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "ಸಂದೇಶಗಳಿಲ್ಲ"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "ನಿರ್ಬಂಧಿಸಿದ ಸಂಖ್ಯೆಗಳಿಲ್ಲ"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "ಕಂಪನ"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "ಅಜ್ಞಾತ ಸಂಖ್ಯೆ"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "ಪಠ್ಯ ಸಂದೇಶ ಕೇಂದ್ರ ಸಂಖ್ಯೆ"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "ಎಲ್ಲ ಆರಿಸಿ"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "ಎಚ್ಚರಿಕೆಗಳು"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "ಭಾಷಾಂತರಿಸಿ"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "ಪಠ್ಯ ಸಂದೇಶಗಳು"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ ಬದಲಾಯಿಸಿ"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS ಕೇಂದ್ರ"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "ಸಂಯೋಜನೆಗಳು"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "ಸ್ವೀಕೃತದಾರರನ್ನು ಆರಿಸಿ"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d ಆಯ್ಕೆಮಾಡಿದೆ"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM ಕಾರ್ಡ್‌ನಲ್ಲಿ ಸಂದೇಶಗಳು"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "ಸಂದೇಶಗಳು"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ಇನ್‌ಪುಟ್ ಮೋಡ್‌"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ಫೈಲ್ ಗಾತ್ರ ತೀರಾ ದೊಡ್ಡದಾಗಿದೆ"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "ಸಂದೇಶವನ್ನು ಕಳುಹಿಸಲು ವಿಫಲವಾಗಿದೆ"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "ಸಂದೇಶವನ್ನು ತ್ಯಜಿಸಿ"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "ಅಳಿಸಿ"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "ರಚಿಸು"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "ಗಮನಿಸಿ"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "ಒಳಾಂಶ ಸೇರಿಸಿ"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "ಬದಲಿಸಿ"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "ಉಳಿಸಿ"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "ಮತ್ತೆಕಳುಹಿಸಿ"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "ತೆಗೆಯಿರಿ"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ಓಕೆ"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ಡೌನ್‌ಲೋಡ್"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "ತ್ಯಜಿಸಿ"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "ಅಳಿಸಿ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "ರದ್ದು"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "ರದ್ದು"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "ಸಂಪರ್ಕಗಳು"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "ನೀವು ಒಂದು ಶಬ್ದ & ಶಾಟ್‌ ಫೈಲ್ ಆಯ್ದುಕೊಂಡಿದ್ದೀರಿ. ಸೌಂಡ್ ಡೇಟಾವು MMSಗೆ ಬೆಂಬಲ ಹೊಂದಿಲ್ಲ ಆದ್ದರಿಂದ ಕೇವಲ ಚಿತ್ರವನ್ನು ಲಗತ್ತಿಸಲಾಗುವುದು."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "ಹೌದು"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "ಕಳುಹಿಸಲು ಕಾಯುತ್ತಿದೆ..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "ಈ ಸಂದೇಶ ಕಳುಹಿಸಲು ಅಸಮರ್ಥ. ನಿಮ್ಮ SIM ಕಾರ್ಡ್ ಸೇರಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "ವಿಧ:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "ನಿರ್ಬಂಧಿತ ಮಾಧ್ಯಮ ವಿಧಗಳ ಬಳಕೆಗಾಗಿ, ನಿಮ್ಮ MMSರಚನಾ ಮೋಡ್ ಸಂಯೋಜನೆ ಬದಲಿಸಿ."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "ಕಳುಹಿಸಿದ ಸಮಯ:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "ಸ್ವೀಕರಿಸಿದ ಸಮಯ:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "ಟಿಕ್ ಬಾಕ್ಸ್"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "ಸ್ಥಿತಿ:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "ಕಳುಹಿಸಿದೆ"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "ಕಳುಹಿಸುತ್ತಿದೆ..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "ಕಳುಹಿಸುವಿಕೆ ವಿಫಲವಾಗಿದೆ"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "ಸೆಕೆಂ."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "ರೋಮಿಂಗ್‌ನಲ್ಲಿರುವಾಗ ಸಂದೇಶಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಹಿಂಪಡೆಯಿರಿ."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "ಸಂದೇಶಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಹಿಂಪಡೆಯಿರಿ."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "ಓದಿದ ವರದಿ: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "ಬೇರೆ ವ್ಯಕ್ತಿಗಳು"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "ಸಂದೇಶ"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "ಮೆಮೊ"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "ವಿಫಲವಾಗಿದೆ"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "ಪಠ್ಯ ನಮೂದಿಸಿ"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "ಡ್ರಾಫ್ಟ್"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "ತಲುಪಿಸಿದ ವರದಿ: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB Message"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "ಕ್ಯಾಲೆಂಡರ್"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ನೀವು ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸಿದ ಅಥವಾ ಸ್ವೀಕರಿಸಿದ ನಂತರ, ಅವುಗಳನ್ನು ಇಲ್ಲಿ ತೋರಿಸಲಾಗುವುದು."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ನೀವು ತ್ವರಿತ ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ರಚಿಸಿದ ನಂತರ, ಅವುಗಳನ್ನು ಇಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತದೆ."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ನೀವು ಸಂದೇಶಗಳನ್ನು SIM ಕಾರ್ಡ್‌ಗೆ ನಕಲಿಸಿದ ನಂತರ, ಅವುಗಳನ್ನು ಇಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತದೆ."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ನೀವು ನುಡಿಗಟ್ಟುಗಳನ್ನು ಸೇರಿಸಿದ ನಂತರ, ಅವುಗಳನ್ನು ಇಲ್ಲಿ ತೋರಿಸಲಾಗುವುದು."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ಸಂದೇಶ ನಿರ್ಬಂಧ ಪಟ್ಟಿಗೆ ನೀವು ಸಂಖ್ಯೆಗಳನ್ನು ಸೇರಿಸಿದ ನಂತರ, ಅವುಗಳನ್ನು ಇಲ್ಲಿ ತೋರಿಸಲಾಗುವುದು."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ಅಳಿಸಿ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "ಲೋಡಿಂಗ್..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "ಪ್ರಕಟಣೆಗಳು"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "ನಾನು"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "ಕಳುಹಿಸಿ"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "ಕಳುಹಿಸು"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ಕಳು."
+
diff --git a/main/po/ko_KR.po b/main/po/ko_KR.po
new file mode 100644 (file)
index 0000000..a1e0c10
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "집"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "[데이터 로밍]이 해제된 상태입니다. [데이터 로밍]을 실행한 후 다시 시도하세요."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "새 메시지"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "취소"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "완료"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "알 수 없음"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "휴대폰"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "[모바일 데이터]가 해제된 상태입니다. [모바일 데이터]를 실행한 후 다시 시도하세요."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "보내기"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "지원되지 않는 미디어 방식입니다."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "[비행기 탑승 모드] 실행 중에는 메시지를 보낼 수 없습니다. [비행기 탑승 모드]를 해제한 후 다시 시도하세요."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "전달할 수 없습니다.\n전달 잠금이 설정된 상태입니다."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "디바이스에 저장공간이 부족합니다. [설정] > [전원 및 저장공간] > [저장공간]에서 일부 파일을 삭제한 후 다시 시도하세요."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "글자를 맨 위로"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "글자를 맨 아래로"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "레이아웃 선택"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "첨부할 수 없습니다."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "메시지를 %s에 보내도록 예약된 상태입니다. 지금 보낼까요?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "최대 메시지 크기에 도달하였습니다."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "배터리가 부족합니다."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "재생 시간은 최소 %d초 이상이어야 합니다."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "[비행기 탑승 모드] 해제 중..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM 카드에 복사하였습니다."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "취소하였습니다."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "다른 연락처 정보 사용"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "전송"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "이미지"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "이메일"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "대체"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "보기"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "제거"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "재생"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "받는 사람"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "메시지 취소"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "받는 사람 목록"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "미리보기"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "슬라이드 재생 시간 %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "파일이 슬라이드쇼에 추가되는 동안 기다려 주세요."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "메시지를 보낼 수 없습니다."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "벨소리 선택"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "받는 사람이 메시지를 읽었는지 알려줍니다."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "요청되지 않음"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "최대 받는 사람 수 %d명에 도달하였습니다."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "제목을 입력하세요."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "받는 사람이 중복됩니다."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "전달"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "저장할 수 없습니다."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "위치를 찾을 수 없습니다."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "삭제할 수 없습니다."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "복사할 수 없습니다."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "일부 글자가 지워질 수 있습니다. 계속할까요?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "삽입된 SIM 카드가 없습니다."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "저장하지 못하였습니다."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "[내 파일]에 저장하였습니다."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Retrieving message failed"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "제한된 컨텐츠 유형입니다. 그래도 첨부할까요?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "복구 중..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "거절하였습니다."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "읽음 확인"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "전화번호가 없습니다"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "첨부파일 없음"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "새 메시지"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM 카드에서 메시지를 복사하였습니다."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "최대 받는 사람 수는 %d명입니다. 그 이상을 추가하면 받는 사람 중 일부가 누락될 수 있습니다."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "최대 첨부파일 수(%s)를 초과하였습니다."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "최대 글자 수에 도달하였습니다."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "진행 중..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "초기화 중..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "파일 대체를 원하지 않으면 이름을 변경하세요."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "메시지에 숨겨진 첨부파일이 포함되어 있습니다."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "메시지에 숨겨진 첨부파일이 포함되어 있습니다."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "동일한 파일이 있습니다."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "삭제 중..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "클립보드에 복사하였습니다."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "문자 메시지로 전환 중..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "멀티미디어 메시지로 전환 중..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s 텍스트를 차단할까요?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "%s에 접속합니다. 계속할까요?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "문자 메시지"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "제목:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "이메일로 전송"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "보낸 사람"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "선택"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "첨부파일 저장"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "저장"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "제거"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "설치"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "전달"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "메시지 편집"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "삭제할까요?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "메시지 삭제"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "메시지 선택"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "모두 저장"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "메시지 상세정보"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "만료: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "고급 검색"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "첨부파일 모두 저장"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "알 수 없음"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "받은 사람:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "문자 메시지"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM 카드 저장공간을 모두 사용 중입니다. 일부 항목을 삭제하세요."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "설정"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "발신:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "요청하였습니다."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "받는 사람"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "수신:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "받았습니다."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "읽음 확인"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "푸시 메시지"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "메시지 %d개"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "대화 %d개"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "기타"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "제목 없음"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "이름이 없습니다"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "MMS 알림"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "멀티미디어 메시지"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "읽기"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "메시지를 거절하였습니다."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "메시지 크기"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "메시지 옵션"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Message delivered."
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "메시지"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "나"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "최대 첨부파일 수(%1$s)를 초과하였습니다. 먼저 선택한 %2$s개만 첨부됩니다."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "받는 사람이 바르지 않습니다."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "보낸 사람"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "발신:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "만료된 컨텐츠"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "보내지 못하였습니다."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "받음 확인"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP 메시지"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "글자 복사"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "방송 메시지"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "전체"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "메시지 1개"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "대화 1개"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "모든 보낸 메시지에 대해 읽음 확인을 요청합니다."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "모든 보낸 메시지에 대해 받음 확인을 요청합니다."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "라디오 버튼"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "사용 및 해제 버튼입니다."
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "확장할 수 있는 목록입니다."
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "자동으로 MMS 메시지를 가져옵니다."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "파일을 미리 볼 수 없습니다. 지원되지 않는 파일 형식입니다."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "번호가 바르지 않아 일부 받는 사람을 추가할 수 없습니다."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "번호가 바르지 않아 받는 사람을 추가할 수 없습니다."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "번호가 바르지 않아 받는 사람을 추가할 수 없습니다."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "최대 첨부파일 수(%d)에 도달하여 추가할 수 없습니다."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "번호가 바르지 않습니다."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "선택한 메시지를 모바일 디바이스에 복사하였습니다."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "메시지 %d개를 메시지 목록으로 이동하였습니다."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "메시지 차단 목록에서 번호를 제거하였습니다."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "메시지 차단 목록에 번호를 추가하였습니다."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "메시지를 %s SIM 카드로 복사하였습니다."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "최대 글자 수를 초과하였습니다."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "최대 메시지 크기(%s)를 초과하였습니다. 첨부파일 크기 조절 중..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "입력한 글자가 바르지 않습니다."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "받는 사람을 추가하세요."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "메시지 1개를 메시지 목록으로 이동하였습니다."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "문자 메시지"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "소리"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "멀티미디어 메시지"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM 카드 메시지"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "입력 모드"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "로밍 중 자동으로 가져오기"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "자동으로 가져오기"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "지금 보내기"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "아니요"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "메시지를 작성할 때 사용할 입력 모드를 선택합니다."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "설정 안 함"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "SIM 카드에 저장된 메시지를 관리합니다."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "받는 사람이 선택되지 않아 메시지를 취소합니다"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "예약 메시지를 보낼 수 없습니다. 다른 시간을 설정하세요."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "통화 중에는 재생할 수 없습니다."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "파일 크기가 너무 커서 첨부할 수 없습니다. 이메일, 블루투스 또는 Wi-Fi로 보내세요."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "이 멀티미디어 메시지를 보낼 수 있도록, 디바이스를 다른 모바일 네트워크에 연결합니다. 현재 연결된 모바일 네트워크와 디바이스의 연결이 해제됩니다."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "멀티미디어 메시지를 다운로드할 수 있도록, 디바이스를 다른 모바일 네트워크에 연결합니다. 현재 연결된 모바일 네트워크와 디바이스의 연결이 해제됩니다."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "이 메시지를 다시 보냅니다."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "메시지 %d개를 삭제합니다."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "대화 %d개를 삭제합니다."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "목록에 상용구가 없습니다"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "받는 메시지만"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "메시지 보낼 때 원문 포함"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "재생 시간은 %d초 미만으로 설정하세요."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "삭제하였습니다."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "메시지 1개를 삭제합니다."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "대화 1개를 삭제합니다."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "자세히 보기"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "연락처 상세 보기"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "슬라이드쇼로 보기"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "동영상"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "연락처 업데이트"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "유니코드"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "문자"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "사진 촬영"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "설정"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "검색"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "첨부파일 저장"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "다시 보내기"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "답장"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "차단 목록에서 이 번호 제거"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "동영상 촬영"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "오디오 녹음"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "빠른 답장 문구"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "설정 안 함"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "음성통화 걸기"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "이미지"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM 알파벳"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "디바이스 저장공간으로 내보내기"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "편집"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "메시지 삭제"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "대화 삭제"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "삭제"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "기본"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "새 연락처 추가"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM 카드에 복사"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "디바이스에 복사"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "글자 복사"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "복사"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "백업"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "자동"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "오디오"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "첨부파일"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "연락처에 추가"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "차단 목록에 이 번호 추가"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "받는 사람 추가"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "검색"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "검색 결과가 없습니다"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "빠른 답장 문구가 없습니다"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "차단된 문구가 없습니다"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM 카드에 메시지가 없습니다"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "메시지가 없습니다"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "차단된 번호가 없습니다"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "진동"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "번호정보 없음"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "문자 메시지 서버번호"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "모두 선택"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "알림"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "번역"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "문자 메시지"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "모바일 네트워크 전환"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "문자 메시지 서버"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "설정"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Select recipient"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d개 선택"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM 카드 메시지"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "메시지"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "입력 모드"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "파일 크기 초과"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "메시지 보내기 안 됨"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "작성 종료"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "삭제"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "추가"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "주의"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "컨텐츠 추가"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "전환"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "저장"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "다시 보내기"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "제거"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "확인"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "다운로드"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "저장 안 함"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "삭제"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "취소"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "취소"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "연락처"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "사운드&샷 파일을 선택하였습니다. MMS에서 소리 데이터가 지원되지 않아 사진만 첨부합니다."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "예"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "전송 대기 중..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "메시지를 보낼 수 없습니다. SIM 카드를 삽입한 후 다시 시도하세요."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "종류:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "제한된 미디어 형식을 사용하려면 MMS 작성 모드 설정을 변경하세요."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "보낸 시간:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "받은 시간:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "체크박스를 선택하세요"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "상태:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "전송 완료"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "보내는 중..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "전송 안 됨"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "초"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "로밍 중에 메시지를 자동으로 가져옵니다."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "메시지를 자동으로 가져옵니다."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "읽음 확인: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "상대방"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "메시지"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "메모"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "보내기 안 됨"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "글자 입력"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "임시 저장"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "받음 확인: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "방송 메시지"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "캘린더"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "메시지를 보내거나 받으면, 여기에 표시됩니다."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "빠른 답장 문구를 새로 추가하면, 여기에 표시됩니다."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "메시지를 SIM 카드에 복사하면, 여기에 표시됩니다."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "문구를 추가하면, 여기에 표시됩니다."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "메시지 차단 목록에 번호를 추가하면, 여기에 표시됩니다."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "삭제"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "로딩 중..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "알림"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "나"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "보내기"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "보내기"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "보내기"
+
diff --git a/main/po/lo.po b/main/po/lo.po
new file mode 100644 (file)
index 0000000..0a94747
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "ບ້ານ"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "ການໂຣມມິງຂໍ້ມູນຖືກປິດ. ເປີດໃຊ້ການໂຣມມິງຂໍ້ມູນ ແລະລອງໃໝ່ອີກ."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "ຂໍ້ຄວາມໃໝ່"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ຍົກເລີກ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ສໍາເລັດ"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "ບໍ່ຮູ້"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "ມືຖື"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "ຂໍ້ມູນໂທລະສັບມືຖືຖືກປິດໃຊ້ງານ. ເປີດໃຊ້ຂໍ້ມູນໂທລະສັບມືຖື ແລະລອງໃໝ່ອີກ."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ສົ່ງ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "ປະເພດຂອງສື່ບໍ່ເຂົ້າກັນໄດ້."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "ບໍ່ສາມາດສົ່ງຂໍ້ຄວາມໃນຂະນະທີ່ຢູ່ໃນໂໝດການບິນ. ປິດໃຊ້ໂໝດການບິນ ແລະລອງໃໝ່ອີກ."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "ບໍ່ສາມາດສົ່ງຕໍ່ໄປ.\nໄຟລ໌ຖືກລັອກກ່ອນແລ້ວ"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "ເນື້ອທີ່ຈັດເກັບບໍ່ພຽງພໍຢູ່ໃນອຸປະກອນຂອງທ່ານ. ໄປທີ່ການຕັ້ງຄ່າ > ໄຟ ແລະບ່ອນເກັບຂໍ້ມູນ, ຈາກນັ້ນລຶບບາງໄຟລ໌ ແລະລອງໃໝ່ອີກ."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "ຂໍ້ຄວາມຢູ່ດ້ານເທິງ"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "ຂໍ້ຄວາມຢູ່ດ້ານລຸ່ມ"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "ເລືອກແຜນຜັງ"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "ບໍ່ສາມາດເພີ່ມເນື້ອໃນໄດ້."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "ຂໍ້ຄວາມຖືກກໍານົດໃຫ້ສົ່ງຫາ %s. ສົ່ງດຽວນີ້ບໍ?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "ຮອດຂະໜາດຂໍ້ຄວາມສູງສຸດແລ້ວ."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "ແບັດເຕີຣີອ່ອນ."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Duration must be at least %d seconds."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "ກໍາລັງປິດໃຊ້ງານໂໝດການບິນ..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "ກັອບປີ້ໃສ່ແຜ່ນ SIM ແລ້ວ."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "ຍົກເລີກແລ້ວ."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "ໃຊ້ຂໍ້ມູນຜູ້ຕິດຕໍ່ອື່ນ"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "ສົ່ງຜ່ານ"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "ຮູບ"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ອີ​ເມ​ວ"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "ແທນທີ່"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "ເບິ່ງ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "ເອົາອອກ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "ຫຼິ້ນ"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "ຫາ"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "ຍົກເລີກຂໍ້ຄວາມ"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "ລາຍການຜູ້ຮັບ"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "ເບິ່ງກ່ອນ"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Duration for slide %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "ລໍຖ້າໃນຂະນະທີ່ລາຍການຕ່າງໆກໍາລັງຖືກເພີ່ມເຂົ້າໃສ່ໃນການເປີດສະໄລ້ໂຊ."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "ບໍ່ສາມາດສົ່ງຂໍ້ຄວາມໄດ້."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "ເລືອກສຽງເອີ້ນເຂົ້າ"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "ລາຍງານການອ່ານແລ້ວຈະຖືກສົ່ງ."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "ບໍ່ໄດ້ຂໍ"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "ຮອດຂີດສູງສຸດຂອງຈໍານວນຜູ້ຮັບ (%d) ແລ້ວ."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "ໃສ່ຫົວຂໍ້ເຂົ້າໄປ."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "ຊື່ຜູ້ຮັບຊໍ້າກັນ."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Fwd"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "ບໍ່ສາມາດບັນທຶກໄດ້."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "ບໍ່ສາມາດພົບສະຖານທີ່."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "ບໍ່ສາມາດລຶບໄດ້."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "ບໍ່ສາມາດກັອບປີ້ໄດ້."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "ອາດຈະເສຍຕົວອັກສອນບາງຕົວ. ດໍາເນີນການຕໍ່ບໍ?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM not inserted."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "ການບັນທຶກບໍ່ສໍາເລັດ."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "ບັນທຶກໄວ້ໃນໄຟລ໌ຂອງຂ້ອຍແລ້ວ."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "ກໍາລັງກູ້ເອົາຂໍ້ຄວາມກັບຄືນບໍ່ສໍາເລັດ"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "ປະເພດເນື້ອໃນຖືກຈໍາກັດ. ແນວໃດກໍ່ຄັດຕິດໃສ່ບໍ?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "ກໍາລັງເອົາກັບມາ..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "ປະຕິ​ເສດ​ແລ້ວ."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "ອ່ານລາຍງານ"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "ບໍ່ມີເບີ"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "ບໍ່ມີໄຟລ໌ຄັດຕິດ"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "ຂໍ້ຄວາມໃໝ່"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "ຂໍ້ຄວາມກັອບປີ້ມາຈາກແຜ່ນ SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maximum number of recipients is %d. Some recipients may be lost."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "ເກີນຈໍານວນໄຟລ໌ຄັດຕິດສູງສຸດ (%s) ແລ້ວ."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "ຮອດຈໍານວນຕົວອັກສອນສູງສຸດແລ້ວ."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "ຄືບໜ້າ..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "ກໍາລັງລິເລີ່ມ..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "If you don't want to replace the file, rename it."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "ຂໍ້ຄວາມນີ້ລວມມີໄຟລ໌ຄັດຕິດທີ່ບໍ່ໄດ້ສະແດງອອກ."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "ຂໍ້ຄວາມນີ້ລວມທັງໄຟລ໌ທີ່ໄດ້ຄັດຕິດທີ່ບໍ່ສະແດງ."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ຊື່​ໄຟ​ລມີ​ຢູ່​ແລ້ວ."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "ກຳລັງລຶບ..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "ກັອບປີ້ໃສ່ຄລິບບອດແລ້ວ."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "ກໍາລັງແປງເປັນຂໍ້ຄວາມຕົວໜັງສື..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "ກໍາລັງແປງເປັນຂໍ້ຄວາມສາລະພັດສື່..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "ບລັອກ %s ບໍ?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "ທ່ານຈະເຂົ້າໄປອອນໄລນ໌(%s). ດໍາເນີນການຕໍ່ບໍ?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "ຂໍ້ຄວາມ"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "ເລື່ອງ:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ສົ່ງຜ່ານທາງອີແມວ"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "ຜູ້ສົ່ງ"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "​ເລື​ອກ"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "ເກັບສິ່ງທີ່ແນບມາ"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "ບັນທຶກ"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "ເອົາອອກ"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "ຕິດຕັ້ງ"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "ສົ່ງຕໍ່"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "​ແກ້​ໄຂ​ຂໍ້​ຄວາມ"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "ລຶບບໍ?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "ລຶບຂໍ້ຄວາມ"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "ເລືອກຂໍ້ຄວາມ"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "ບັນທຶກທັງໝົດ"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "ລາຍລະອຽດຂອງຂໍ້ຄວາມ"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "ໝົດອາຍຸ: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "ການຄົ້ນຫາຂັ້ນສູງ"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "ບັນທຶກທຸກການຄັດຕິດ"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "ບໍ່ຮູ້"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "ເຖິງ:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "ຂໍ້ຄວາມ"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "ຄວາມຈໍາຂອງ SIM ເຕັມ. ລຶບບາງລາຍການອອກໄປ."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "ຕັ້ງຄ່າ"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "ສົ່ງແລ້ວ:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "ໄດ້ສະເໜີຂໍ."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "ຜູ້ຮັບ"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "ໄດ້ຮັບແລ້ວ:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "ຮັບແລ້ວ"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "ອ່ານລາຍງານ"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "ຂໍ້ຄວາມແບບ ພູຊ"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d ຂໍ້ຄວາມ"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d ການສົນທະນາ"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "ອື່ນໆ"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "ບໍ່ມີຫົວຂໍ້"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "ບໍ່ມີຊື່"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "ແຈ້ງເຈືອນຂໍ້ຄວາມມັລຕິມີເດຍ"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "ຂໍ້ຄວາມມັລຕິມີເດຍ"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "ອ່ານ"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "ຂໍ້ຄວາມຖືກປະຕິເສດ."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "ຂະໜາດຂໍ້ຄວາມ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "ຕົວເລືອກຂໍ້ຄວາມ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "ຂໍ້ຄວາມໄດ້ສົ່ງແລ້ວ"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "ຂໍ້ຄວາມ"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "ຂ້ອຍ"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "ຈໍານວນໄຟລ໌ຄັດຕິດສູງສຸດ (%1$s) ເກີນຂະໜາດແລ້ວ. ພຽງແຕ່ %2$s ທໍາອິດຈະຖືກເພີ່ມເຂົ້າ."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "ຜູ້ຮັບບໍ່ຖືກຕ້ອງ."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "ຈາກ"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "ຈາກ:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "ໝົດອາຍຸ"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "ການສົ່ງ​ລົ້ມ​ເຫຼວ."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "ລາຍງານ​ການ​ສົ່ງ"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "ຂໍ້ຄວາມ CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "ກັອບປີ້ຂໍ້ຄວາມ"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "ຂໍ້ຄວາມ CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "ທັງໝົດ"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 ຂໍ້ຄວາມ"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 ການສົນທະນາ"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ຂໍລາຍງານການອ່ານສໍາລັບແຕ່ລະຂໍ້ຄວາມທີ່ທ່ານສົ່ງ."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ສະເໜີຂໍລາຍງານການສົ່ງສໍາລັບແຕ່ລະຂໍ້ຄວາມທີ່ທ່ານສົ່ງ."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "ປຸ່ມວິທະຍຸ"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ປຸ່ມ ເປີດ/ປິດ"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "ລາຍການສາມາດຂະຫຍາຍໄດ້"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "ກູ້ເອົາຂໍ້ຄວາມ MMS ຄືນອັດຕະໂນມັດ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ເບິ່ງສາມາດເບິ່ງໄຟລ໌ຕົວຢ່າງໄດ້. ປະເພດໄຟລ໌ບໍ່ຮອງຮັບ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "ບໍ່ສາມາດເພີ່ມຜູ້ສົ່ງບາງຄົນໄດ້. ໝາຍເລກໃຊ້ບໍ່ໄດ້."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "ບໍ່ສາມາດເພີ່ມຜູ້ຮັບໄດ້. ໝາຍເລກໃຊ້ບໍ່ໄດ້."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "ບໍ່ສາມາດເພີ່ມຜູ້ຮັບໄດ້. ໝາຍເລກໃຊ້ບໍ່ໄດ້."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "ບໍ່ສາມາດເພີ່ມໄຟລ໌ຄັດຕິດໄດ້. ຮອດຈໍານວນໄຟລ໌ຄັດຕິດສູງສຸດ (%d) ແລ້ວ."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "ບໍ່ມີເລກໝາຍນີ້ຢູ່."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "ກັອບປີ້ອຸປະກອນທີ່ເລືອກໄວ້ໄປໃສ່ອຸປະກອນມືຖືແລ້ວ."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "ຍ້າຍ %d ຂໍ້ຄວາມໄປໃສ່ລາຍການຂໍ້ຄວາມແລ້ວ."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "ເອົາໝາຍເລກອອກຈາກລາຍການບລັອກຂໍ້ຄວາມແລ້ວ."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "ເພີ່ມໝາຍເລກໃສ່ລາຍການບລັອກຂໍ້ຄວາມແລ້ວ."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "ກັອບປີ້ຂໍ້ຄວາມໄປໃສ່ແຜ່ນ SIM %s ແລ້ວ."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "ເກີນຈໍານວນຕົວອັກສອນສູງສຸດແລ້ວ."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "ເກີນຂະໜາດຂໍ້ຄວາມສູງສຸດ (%s) ແລ້ວ. ກໍາລັງປ່ຽນຂະໜາດໄຟລ໌ຄັດຕິດ..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "ປ້ອນຕົວອັກສອນທີ່ໃຊ້ບໍ່ໄດ້ເຂົ້າໄປ"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "ເພີ່ມຜູ້ຮັບ."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "ຍ້າຍ 1 ຂໍ້ຄວາມໄປໃສ່ລາຍການຂໍ້ຄວາມແລ້ວ."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "ຂໍ້ຄວາມໜັງສື"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ສຽງ"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "ຂໍ້ຄວາມມັລຕິມີເດຍ"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "ຂໍ້ຄວາມຢູ່ເທິງແຜ່ນ SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "​ໂໝດປ້ອນເຂົ້າ"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "ເອົາກັບມາອັດຕະໂນມັດໃນຂະນະໂຣມມິງ"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "ເອົາກັບມາອັດຕະໂນມັດ"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "ສົ່ງດຽວນີ້"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "ບໍ່"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "ເລືອກໂໝດປ້ອນເຂົ້າສໍາລັບການຂຽນຂໍ້ຄວາມໃໝ່."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "ບໍ່ມີ"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "ຈັດການຂໍ້ຄວາມທີ່ໄດ້ເກັບໄວ້ຢູ່ໃນແຜ່ນ SIM ຂອງທ່ານ."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "ຂໍ້ຄວາມຂອງທ່ານຈະຖືກໂລະຖິ້ມ. ບໍ່ໄດ້ເລືອກຜູ້ຮັບໃດໄວ້."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "ບໍ່ສາມາດສົ່ງຂໍ້ຄວາມທີ່ກໍານົດໄວ້. ຕັ້ງເວລາອື່ນ."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "ບໍ່ສາມາດຫຼິ້ນລະຫວ່າງການໂທໄດ້."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ບໍ່ສາມາດແນບໄຟລ໌ໄດ້.ຂະໜາດໄຟລ໌ໃຫຍ່ເກີນໄປ. ລອງສົ່ງຜ່ານອີເມລ໌, ບລູທູດ, Wi-Fi, ອື່ນໆ."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "ເພື່ອສົ່ງຂໍ້ຄວາມມັລຕິມີເດຍນີ້, ອຸປະກອນຈະເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍມືຖືອື່ນ. ອັນນີ້ຈະຕັດເຊື່ອມຕໍ່ອຸປະກອນຂອງທ່ານຈາກເຄືອຂ່າຍມືຖືປະຈຸບັນຂອງທ່ານ."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "ເພື່ອດາວໂຫຼດຂໍ້ຄວາມມັລຕິມີເດຍນີ້, ອຸປະກອນຈະເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍມືຖືອື່ນ. ອັນນີ້ຈະຕັດເຊື່ອມຕໍ່ອຸປະກອນຂອງທ່ານຈາກເຄືອຂ່າຍມືຖືປະຈຸບັນຂອງທ່ານ."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "ຂໍ້ຄວາມນີ້ຈະຖືກສົ່ງຄືນໃໝ່."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d ຂໍ້ຄວາມທີ່ໄດ້ເລືອກໄວ້ຈະຖືກລຶບ."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "ການສົນທະນາ %d ບົດຈະຖືກລຶບ."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "ບໍ່ມີເທັມເພຣດຢູ່ໃນລາຍການ"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "ຂໍ້ຄວາມເຂົ້າມາເທົ່ານັ້ນ"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "ລວມຂໍ້ຄວາມເດີມໃສ່ໃນຂໍ້ຄວາມທີ່ອອກໄປ"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "ໄລຍະເວລາຈະຕ້ອງສັ້ນກວ່າ %d ວິນາທີ."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "ລຶບແລ້ວ"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 ຂໍ້ຄວາມຈະຖືກລຶບຖິ້ມ."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 ການສົນທະນາຈະຖືກລຶບ."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "ເບິ່ງລາຍລະອຽດ"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "ເບິ່ງລາຍລະອຽດລາຍຜູ້ຕິດຕໍ່"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "ເບິ່ງເປັນສະໄລດ໌ໂຊ"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "ວິດີໂອ"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "ອັບເດດຜູ້ຕິດຕໍ່"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "ຢູນີໂຄດ"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "ຂໍ້ຄວາມ"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "ຖ່າຍຮູບ"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "ຕັ້ງຄ່າ"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "ຄົ້ນຫາ"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "ບັນທຶກໄຟລ໌ຄັດຕິດ"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "ສົ່ງຄືນໃໝ່"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "ຕອບກັບ"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "ເອົາອອກໄປຈາກລາຍການບລັອກ"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "ບັນທຶກວິດີໂອ"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "ບັນທຶກໄຟລ໌ສຽງ"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "ການສະໜອງຕອບດ່ວນ"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "ບໍ່ມີ"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "ໂທດ້ວຍສຽງ"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "ຮູບພາບ"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "​ຕົວ​ອັກສອນ​ GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "ສົ່ງອອກໄປຫາຄວາມຈໍາເຄື່ອງ"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "​ແກ້​ໄຂ"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "ລຶບຂໍ້ຄວາມ"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "ລຶບການສົນທະນາ"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "ລຶບ"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "ຄ່າເລີ່ມຕົ້ນ"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "ສ້າງຜູ້ຕິດຕໍ່"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "ກັອບປີ້ໃສ່ແຜ່ນ SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "ກັອບປີ້ໄປຫາເຄື່ອງ"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "ກັອບປີ້ຂໍ້ຄວາມ"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "ກັອບປີ້"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "ສໍາຮອງ"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "ອັດຕະໂນມັດ"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "ໄຟລ໌ສຽງ"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "ໄຟລ໌ຄັດຕິດ"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "ເພີ່ມໃສ່ຜູ້ຕິດຕໍ່"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "ເພີ່ມໃສ່ລາຍການທີ່ບລັອກໄວ້"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "​ເພີ່​ມຜູ້​ຮັບ"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "ຄົ້ນຫາ"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "ບໍ່ພົບຜົນໄດ້ຮັບ"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "ບໍ່ມີການຕອບດ່ວນ"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "ບໍ່ມີວະລີຖືກບລັອກ"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "ບໍ່ມີຂໍ້ຄວາມຢູ່ເທິງແຜ່ນ SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "ບໍ່ມີຂໍ້ຄວາມ"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "ບໍ່ມີເບີທີ່ຖືກບລັອກໄວ້"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "ການສັ່ນ"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "ບໍ່ຮູ້ເລກໝາຍ"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "ເບີສູນຂໍ້ຄວາມ"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "ເລືອກທັງໝົດ"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "ການເຕືອນ"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "ແປພາສາ"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "ຂໍ້ຄວາມໜັງສື"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "ປ່ຽນເຄືອຂ່າຍມືຖື"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "ສູນ SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "ຕັ້ງຄ່າ"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "ເລືອກຜູ້ຮັບ"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "ເລືອກ %d ແລ້ວ"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "ຂໍ້ຄວາມຢູ່ເທິງແຜ່ນ SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "ຂໍ້ຄວາມ"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "​ໂໝດປ້ອນ​ຂໍ້ຄວາມ"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ຂະໜາດໄຟລ໌ໃຫຍ່ເກີນໄປ"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "ສົງຂໍ້ຄວາມບໍ່ສໍາເລັດ"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "ໂລະຂໍ້ຄວາມຖິ້ມ"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "ລຶບອອກ"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "ສ້າງ"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "ຂໍ້ຄວນຄຳນຶງ"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "ເພີ່ມເນື້ອໃນ"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "ສັບປ່ຽນ"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "ບັນທຶກ"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "ສົ່ງໃໝ່"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "ເອົາອອກໄປ"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ຕົກລົງ"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ດາວໂຫຼດ"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "ເອົາຖິ້ມ"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "ລຶບ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "ຍົກເລີກ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "ຍົກເລີກ"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "ຜູ້ຕິດຕໍ່"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "ທ່ານໄດ້ເລືອກໄຟລ໌ sound & shot. ຂໍ້ມູນສຽງບໍ່ໄດ້ຮັບການສະໜັບສະໜູນສໍາລັບ MMS ດັ່ງນັ້ນ ຈະມີພຽງແຕ່ຮູບທີ່ຈະຖືກຄັດຕິດໃສ່."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "ແມ່ນ"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "ກໍາລັງລໍຖ້າສົ່ງ..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "ບໍ່ສາມາດສົ່ງຂໍ້ຄວາມນີ້ໄດ້. ສອດແຜ່ນ SIM ຂອງທ່ານເຂົ້າໄປ ແລະລອງໃໝ່ອີກ."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "ປະເພດ:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "ເພື່ອໃຊ້ປະເພດມີເດຍທີ່ຈໍາກັດ, ປ່ຽນການຕັ້ງຄ່າໂໝດການສ້າງ MMS ຂອງທ່ານ."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "ເວລາທີ່ສົ່ງໄປ:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "ເວລາທີ່ໄດ້ຮັບ:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "ກ່ອງໃຫ້ໝາຍຕິກ"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "ສະຖານະ:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "ສົ່ງແລ້ວ"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "ກຳລັງສົ່ງ..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "ການສົ່ງບໍ່ສໍາເລັດ"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "ວິນາທີ"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "ເອົາຂໍ້ຄວາມກັບມາໂດຍອັດຕະໂນມັດ ໃນຂະນະໂຣມມິງ."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "ເອົາຂໍ້ຄວາມກັບມາໂດຍອັດຕະໂນມັດ."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "ລາຍງານການອ່ານ: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "ຄົນອື່ນ"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "ຂໍ້ຄວາມ"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "ບັນທຶກຄວາມຈໍາ"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "ບໍ່ສໍາເລັດ"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "ໃສ່ຂໍ້ຄວາມເຂົ້າໄປ"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "ຮ່າງ"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "ລາຍງານ​ການ​ສົ່ງ: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "ຂໍ້ຄວາມ CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "ປະຕິທິນ"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ຫຼັງຈາກທ່ານສົ່ງ ຫຼືຮັບຂໍ້ຄວາມ, ມັນຈະສະແດງຂຶ້ນມາທີ່ນີ້."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ຫຼັງຈາກທ່ານສ້າງການໂຕ້ຕອບດ່ວນ, ມັນຈະສະແດງຂຶ້ນມາທີ່ນີ້."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ຫຼັງຈາກທ່ານກັອບປີ້ຂໍ້ຄວາມໄປໃສ່ແຜ່ນ SIM ແລ້ວ, ມັນຈະສະແດງຂຶ້ນມາທີ່ນີ້."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ຫຼັງຈາກທ່ານເພີ່ມວະລີ, ມັນຈະສະແດງຂຶ້ນມາທີ່ນີ້."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ຫຼັງຈາກທ່ານເພີ່ມເບີໃສ່ລາຍການບລັອກຂໍ້ຄວາມແລ້ວ, ມັນຈະສະແດງຂຶ້ນມາທີ່ນີ້."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ລຶບ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "ກຳລັງໂຫຼດ..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "ແຈ້ງເຕືອນ"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "ຂ້ອຍ"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "ສົ່ງ"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "ສົ່ງ"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ສົ່ງ"
+
diff --git a/main/po/lt.po b/main/po/lt.po
new file mode 100644 (file)
index 0000000..2332c0e
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Namų"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Duomenų tarptinklinis ryšys išjungtas. Įjunkite duomenų tarptinklinį ryšį ir bandykite dar kartą."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nauja žinutė"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ATŠAUKTI"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ATLIKTA"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nežinomas"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobilusis"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobiliojo telefono duomenys išjungti. Įjunkite mobiliojo telefono duomenis ir bandykite dar kartą."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "SIŲSTI"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Nepalaikomas pramogos tipas."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Neįmanoma siųsti žinučių veikiant skrydžio režimui. Išjunkite skrydžio režimą ir bandykite dar kartą."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Persiųsti nepavyko.\nFailo persiuntimo galimybė užrakinta."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Įrenginio atmintyje nepakanka vietos. Eikite į skirtuką Nustatymai > Maitinimas ir saugykla > Saugykla, tada ištrinkite kelis failus ir bandykite dar kartą."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Tekstas viršuje"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Tekstas apatinėje ekrano eilutėje"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Pasirinkti išdėstymą"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Įtraukti turinio nepavyko."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Žinutė, kurią planuojama siųsti %s. Siųsti dabar?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Pasiektas didžiausias žinutės dydis."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Senka akumuliatorius!"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Trukmė – ne mažiau nei %d sek."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Išjungiamas skrydžio režimas..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Nukopijuota į SIM kortelę."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Atšaukta."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Naud. kitą kontak.inf."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Siųsti per"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Vaizdas"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "El. paštas"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Pakeisti"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Rodyti"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Šalinti"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Paleisti"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Kam"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Atšaukti žinutę"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Gavėjų sąrašas"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Peržiūra"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Skaidrės trukmė %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Palaukite, kol elementai bus įtraukti į skaidrių rodymą."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Negalima išsiųsti žinutės."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Skambėjimo tonas"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Bus išsiųsta ataskaita apie perskaitytą žinutę."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Neprašoma"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Pasiektas didžiausias gavėjų (%d) skaičius."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Įvesti temą."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Du tokie pat gavėjai."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Persiųs."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Neįmanoma įrašyti."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Neįmanoma rasti vietos."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Ištrinti nepavyko."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Negalima kopijuoti."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Kai kurie ženklai gali būti prarasti. Tęsti?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM neįdėta."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Išsaugoti nepavyko."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Išsaugota aplanke „Mano failai“."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Žinutės gauti nepavyko"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Apribotas turinio tipas. Vis tiek pridėti?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Atkuriama..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Atmesta."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Perskaitymo patvirtinimas"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Nėra numerio"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Priedų nėra"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Naujos žinutės"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Iš SIM kortelės nukopijuota žinutė."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Didžiausias gavėjų skaičius yra %d. Kai kurie gavėjai gali būti prarasti."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Viršytas didžiausias priedų (%s) skaičius."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Pasiektas didžiausias simbolių skaičius."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Vykdoma..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Inicijuojama..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Jei nenorite pakeisti failo, pervardykite jį."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Šioje žinutėje yra pridėtas, tačiau nerodomas failas."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Šioje žinutėje yra keli pridėti, tačiau nerodomi failai."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Failas tokiu pavadinimu jau yra."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Trinama..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Nukopijuota į iškarpinę."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Konvertuojama į teksto žinutę..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Konvertuojama į MMS žinutę..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Blokuoti %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Prisijungsite prie tinklo(%s). Tęsti?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Teksto žinutė"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Tema:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Siuntėjas el. paštu"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Siuntėjas"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Rinktis"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Išsaugoti priedą"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Išsaugoti"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Šalinti"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Įdiegti"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Persiųsti"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Redaguoti žinutę"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Ar trinti?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Panaikinti žinutes"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Pasirinkite žinutes"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Išsaugoti viską"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Žinutės informacija"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Baigiasi: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Išplėstinė paieška"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Išsaug. visus pried."
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Nežinomas"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Kam:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Teksto žinutės"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM atmintis pilna. Ištrinkite kelis elementus."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Nustatymai"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Išsiųsta:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Užklausta."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Gavėjai"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Gauta:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Gauta."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Perskaitymo patvirtinimas"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Naujienų žinutės"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d žinutės"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d pokalbiai (-ių)"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Kiti"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Nėra temos"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Nėra vardo"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "MMS žinutės pranešimas"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Daugialypė žinutė"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Skaityti"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Žinutė atmesta."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Žinutės dydis"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Žinutės parinktys"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Žinutė pristatyta"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Žinutė"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Aš"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Viršytas didžiausias priedų skaičius (%1$s). Bus pridėtas tik pirmasis %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Klaidingas gavėjas."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Nuo"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Nuo:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Galiojimas pasibaigęs"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Išsiųsti nepavyko."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Ataskaita apie pristatymą"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP žinutės"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopijuoti tekstą"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Tinklo žinutės"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Visos"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 pokalbis"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Reikalauti pranešimo apie kiekvieną perskaitytą jūsų siųstą žinutę."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Reikalauti pranešimo apie kiekvieną pristatytą jūsų siųstą žinutę."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Akutė"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Įjungimo / išjungimo mygtukas"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Išskleidžiamasis sąrašas"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Automatiškai gauti MMS žinutes."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Negalima peržiūrėti failo. Nepalaikomas failo tipas."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Neįmanoma pridėti kelių gavėjų. Numeriai neteisingi."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Neįmanoma pridėti gavėjo. Neteisingas numeris."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Neįmanoma pridėti gavėjų. Numeriai neteisingi."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Neįmanoma pridėti priedo. Pasiektas didžiausias priedų skaičius (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Šis numeris yra netinkamas."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Pasirinktos žinutės nukopijuotos į mobilųjį įrenginį."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "Perkelta žinučių į žinučių sąrašą: %d."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Numeris pašalintas iš žinučių blokavimo sąrašo."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Numeris pridėtas prie žinučių blokavimo sąrašo."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Žinutė nukopijuota į %s SIM kortelę."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Viršytas didžiausias simbolių skaičius."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Viršytas didžiausias žinutės dydis (%s). Keičiamas priedų dydis..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Įvestas neleistinas simbolis"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Pridėti gavėjų."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 žinutė perkelta į žinučių sąrašą."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Teksto žinutės"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Garsas"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimedijos žinutės"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM kortelėje esančios žinutės"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Įvesties režimas"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Autom. nauj. tarptink. ryšiu"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Automatinis gavimas"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Siųs.dbr."
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Ne"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Pasirinkti įvesties režimą, kad būtų galima kurti žinutes."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Nėra"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Tvarkyti SIM kortelėje išsaugotas žinutes."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Jūsų žinutė bus panaikinta. Nepasirinkti jokie gavėjai."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Neįmanoma išsiųsti suplanuotos žinutės. Nustatyti kitą laiką."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Negalima paleisti skambučio metu."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Neįmanoma pridėti failo. Failas per didelis. Pabandykite siųsti el. paštu, naudodami „Bluetooth“, „Wi-Fi“ ir t. t."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Kad būtų išsiųsta ši multimedijos žinutė, įrenginys prisijungs prie kito mobiliojo tinklo. Dėl to įrenginys atsijungs nuo dabartinio mobiliojo tinklo."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Kad būtų atsiųsta ši multimedijos žinutė, įrenginys prisijungs prie kito mobiliojo tinklo. Dėl to įrenginys atsijungs nuo dabartinio mobiliojo tinklo."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Ši žinutė bus išsiųsta pakartotinai."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "Bus ištrinta žinučių: %d."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Bus ištrinta pokalbių: %d."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Sąraše šablonų nėra"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Tik gaunami skambučiai"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Įterpkite originalų tekstą į siunčiamą žinutę"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Trukmė turi būti trumpesnė nei %d sek."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Ištrinta."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 žinutė bus ištrinta."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Bus ištrintas 1 adresatas."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Peržiūrėti išsamią informaciją"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Peržiūrėt adresato informaciją"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Peržiūrėti kaip skaidres"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Vaizdo įrašai"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Atnaujinti adresatą"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unikodas"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Tekstas"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Fotografuoti"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Nustatymai"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Paieška"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Išsaugoti priedus"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Persiųsti"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Atsakyti"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Pašalinti iš blokuojam. sąrašo"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Vaizdo įrašymas"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Įrašyti garso\nfailą"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Greitas atsakymas"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Nėra"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Atlikti balso skambutį"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Vaizdai"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM abėcėlė"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Eksportuoti į įrenginio atmintį"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Redaguoti"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Trinti žinutę"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Trinti pokalbį"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Numatytoji"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Kurti adresatą"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopijuoti į SIM kortelę"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopijuoti į įrenginį"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopijuoti tekstą"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopijuoti"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Kurti atsarginę kopiją"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatinis"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Garso failai"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Priedas"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Pridėti prie adresatų"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Pridėti prie blokuojam. sąrašo"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Pridėti gavėjų"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Ieškoti"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Rezultatų nerasta"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Nėra greitų atsakymų"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Nėra užblokuotų frazių"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM kortelėje žinučių nėra"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Žinučių nėra"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Užblokuotų numerių nėra"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibracija"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Nežinomas numeris"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Teksto žinučių centro numeris"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Rinktis viską"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Įspėjimai"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Versti"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Teksto žinutės"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Perjungti mobilųjį tinklą"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Žin.centras"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Nustatymai"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Pasirinkti gavėją"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Pasirinkta: %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM kortelėje esančios žinutės"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Žinutės"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Įvesties režimas"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Failas per didelis"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Nepavyko nusiųsti žinutės"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Panaikinti žinutę"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Kurti"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Dėmesio"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Pridėti turinio"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Įjungti"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Išsaugoti"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Persiųsti"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Šalinti"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "Gerai"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Atsisiųsti"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Panaikinti"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Trinti"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Atšaukti"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Atšaukti"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Adresatai"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Pasirinkote garso ir kadro failą. MMS garso duomenys nepalaikomi, todėl bus pridėta tik nuotrauka."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Taip"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Laukiama, kol išsiųs..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Šios žinutės neįmanoma išsiųsti. Įdėkite SIM kortelę ir bandykite dar kartą."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tipas:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Kad galėtumėte naudoti draudžiamus medijos tipus, pakeiskite MMS kūrimo režimo nustatymą."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Išsiuntimo laikas:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Gavimo laikas:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Pažymėti langelį"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Būsena:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Išsiųsta"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Siunč..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Nepavyko išsiųsti"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sek."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Automatiškai priimti žinutes naudojant tarptinklinį ryšį."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Automatiškai priimti žinutes."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Perskaitytas pranešimas: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Kitas asmuo"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Žinutė"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Įrašas"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Nepavyko"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Įvesti tekstą"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Juodrašt."
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Pristatymo pranešimas: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB pranešimas"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalendorius"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Išsiuntus žinučių arba jų gavus, jos bus rodomos čia."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kai sukursite greitų atsakymų, jie bus rodomi čia."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kai nukopijuosite žinutes į SIM kortelę, jos bus rodomos čia."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kai pridėsite frazes, jos bus rodomos čia."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kai pridėsite numerių prie žinučių blokavimo sąrašo, jie bus rodomi čia."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "IŠTRINTI"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Įkeliama..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Pranešimai"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Aš"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Siųsti"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Siųst"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "SIŲST"
+
diff --git a/main/po/lv.po b/main/po/lv.po
new file mode 100644 (file)
index 0000000..48823e4
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Mājas"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Datu viesabonēšana ir deaktivizēta. Aktivizējiet datu viesabonēšanu un mēģiniet vēlreiz."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Jauna ziņa"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ATCELT"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "GATAVS"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nezināms"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobilais"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilie dati ir deaktivizēti. Aktivizējiet mobilos datus un mēģiniet vēlreiz."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "SŪTĪT"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Neatbalstīts multivides veids."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Lidojuma režīmā ziņas nevar nosūtīt. Deaktivizējiet lidojuma režīmu un mēģiniet vēlreiz."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Nevar pārsūtīt.\nFails ir bloķēts pret pārsūtīšanu."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Ierīces krātuvē nepietiek vietas. Atveriet Iestatījumi > Enerģija un krātuve > Krātuve, izdzēsiet dažus failus un mēģiniet vēlreiz."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Teksts augšpusē"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Teksts apakšā"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Izkārtojuma izvēle"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Nevar pievienot saturu."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Ziņu plānots nosūtīt adresātam %s. Vai sūtīt tagad?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Sasniegts maksimālais ziņas lielums."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Akumulators gandrīz tukšs."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Ilgumam jābūt vismaz %d sekundes."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Deaktivizē lidojuma režīmu..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Kopēts uz SIM karti."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Atcelts."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Izm. citu kontaktinf."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Sūtīt, izmantojot"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Attēls"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-pasts"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Aizstāt"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Skatīt"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Noņemt"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Atskaņot"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Kam"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Atcelt ziņu"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Adresātu saraksts"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Priekšskatījums"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Slaida ilgums %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Uzgaidiet, kamēr objekti tiek pievienoti slaidrādei."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Nevar nosūtīt ziņu."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Zvana signāla izvēle"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Tiks nosūtīta lasīšanas atskaite."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Nav pieprasīts"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Sasniegts maksimālais adresātu skaits (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Ievadiet tēmu."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Adresāta dublikāts."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Pārsūt."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Nevar saglabāt."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Nevar atrast atrašanās vietu."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Nevar izdzēst."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Nevar kopēt."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Dažas rakstzīmes var būt zaudētas. Vai turpināt?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM karte nav ievietota."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Saglabāšana neizdevās."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Saglabāts mapē Mani faili."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Ziņas izguve neizdevās"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Ierobežota satura veids. Vai tomēr pievienot?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Atjauno..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Noraidīts."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Lasīšanas atskaite"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Nav numura"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Nav pielikumu"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Jaunas ziņas"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Ziņa nokopēta no SIM kartes."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maksimālais adresātu skaits ir %d. Iespējams, zaudēsit dažus adresātus."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Pārsniegts maksimālais pielikumu skaits (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Sasniegts maksimālais rakstzīmju skaits."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Notiek darbība..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Notiek inicializēšana..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Ja nevēlaties aizstāt failu, piešķiriet tam citu nosaukumu."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Šai ziņai ir pievienoti daži faili, kas netiek rādīti."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Šajā ziņā ir pievienoti faili, kurus nerāda."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Faila nosaukums jau pastāv."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Dzēš..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Kopēts starpliktuvē."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Notiek pārvēršana īsziņā..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Notiek pārvēršana multiziņā..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Vai bloķēt %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Jūs grasāties pāriet uz tiešsaistes(%s) režīmu. Vai turpināt?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Īsziņa"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Tēma:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Sūtītājam pa e-pastu"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Sūtītājs"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Izvēlēties"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Saglabāt pielikumu"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Saglabāt"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Noņemt"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instalēt"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Pārsūtīt"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Rediģēt ziņu"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Vai dzēst?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Dzēst ziņas"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Izvēlēties ziņas"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Saglabāt visu"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Ziņas dati"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Derīguma termiņš beidzas: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Papildu meklēšana"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Sagl. visus pielik."
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Nezināms"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Kam:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Īsziņas"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM atmiņa ir pilna. Izdzēsiet dažus objektus."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Iestatījumi"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Nosūtīta:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Pieprasīts."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Adresāti"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Saņemta:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Saņemts."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Lasīšanas atskaite"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Infoziņas"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d ziņas"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d sarunas"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Cita"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Nav tēmas"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Nav vārda"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Multiziņas paziņojums"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multiziņa"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Lasīt"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Ziņa noraidīta."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Ziņas lielums"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Ziņas iespējas"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Ziņa piegādāta"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Ziņa"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Mans"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Pārsniegts maksimālais pielikumu skaits (%1$s). Tiks pievienoti tikai pirmie %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Nederīgs adresāts."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "No"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "No:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Beidzies derīgums"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Neizdevās nosūtīt."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Piegādes atskaite"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP ziņas"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopēt tekstu"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Šūnu apraides ziņas"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Visas"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 ziņa"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 saruna"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Pieprasiet lasīšanas atskaiti katrai nosūtītajai ziņai."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Pieprasiet piegādes atskaiti katrai nosūtītajai ziņai."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Radiopoga"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Ieslēgšanas/izslēgšana poga"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Izvēršams saraksts"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Automātiski izgūt MMS ziņas."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Nevar priekšskatīt failu. Neatbalstīts faila veids."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Nevar pievienot dažus adresātus. Numuri nav derīgi."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Nevar pievienot adresātu. Numurs nav derīgs."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Nevar pievienot adresātus. Numuri nav derīgi."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Nevar pievienot pielikumu. Sasniegts maksimālais pielikumu skaits (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Šis numurs nav derīgs."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Izvēlētās ziņas ir kopētas uz mobilo ierīci."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d ziņas pārvietotas uz ziņu sarakstu."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Numurs ir noņemts no bloķēto ziņu saraksta."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Numurs ir pievienots bloķēto ziņu sarakstam."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Ziņa pārkopēta uz %s SIM karti."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Pārsniegts maksimālais rakstzīmju skaits."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Pārsniegts maksimālais ziņas lielums (%s). Maina pielikumu lielumu..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Ievadīta nederīga rakstzīme"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Pievienot adresātus."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 ziņa pārvietota uz ziņu sarakstu."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Īsziņas"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Skaņa"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multiziņas"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Ziņas SIM kartē"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Ievades režīms"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Izgūt aut. viesabonēšanas laikā"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Izgūt automātiski"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Sūtīt"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Nē"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Lai rakstītu ziņas, izvēlieties ievades režīmu."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Nav"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Pārvaldīt SIM kartē saglabātās ziņas."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Jūsu ziņa tiks atmesta. Nav izvēlēts neviens adresāts."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Nevar nosūtīt ieplānoto ziņu. Iestatiet citu laiku."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Sarunas laikā nevar veikt atskaņošanu."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Nevar pievienot failu. Fails ir par lielu. Mēģiniet sūtīt, izmantojot Bluetooth, Wi-Fi utt."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Lai nosūtītu šo multiziņu, ierīce tiks savienota ar citu mobilo tīklu. Tādējādi ierīce tiks atvienota no pašreizējā mobilā tīkla."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Lai lejupielādētu multiziņu, ierīce tiks savienota ar citu mobilo tīklu. Tādējādi ierīce tiks atvienota no pašreizējā mobilā tīkla."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Šī ziņa tiks sūtīta vēlreiz."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "Tiks izdzēstas %d ziņas."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d sarunas tiks izdzēstas."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Sarakstā nav nevienas veidnes"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Tikai ienākošās ziņas"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Izejošajā ziņā iekļaut oriģināla tekstu"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Ilgumam jābūt mazākam par %d sekundēm."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Izdzēsts."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "Tiks izdzēsta 1 ziņa."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Tiks izdzēsts 1 fails."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Skatīt datus"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Skatīt kontakta datus"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Skatīt kā slaidrādi"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Atjaunināt kontaktu"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unikods"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Teksts"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Fotografēt"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Iestatījumi"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Meklēt"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Saglabāt pielikumus"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Sūtīt vēlreiz"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Atbildēt"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Noņemt no bloķēto saraksta"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Ierakstīt videoklipu"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Ierakstīt audio failu"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Ātrā atbilde"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Nav"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Veikt balss zvanu"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Attēli"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM alfabēts"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Eksportēt uz ierīces atmiņu"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Rediģēt"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Dzēst ziņu"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Dzēst sarunu"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Noklusējums"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Izveidot kontaktu"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopēt SIM kartē"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopēt ierīcē"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopēt tekstu"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopēt"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Dublēt"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automātiski"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Audio faili"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Pielikums"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Pievienot kontaktiem"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Pievienot bloķēto sarakstam"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Pievienot adresātus"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Meklēt"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Nav atrasts neviens rezultāts"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Nav ātro atbilžu"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Nav bloķētu frāžu"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM kartē nav ziņu"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Nav ziņu"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Nav neviena bloķēta numura"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibrācija"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Nezināms numurs"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Īsziņu centra numurs"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Izvēlēties visu"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Brīdinājumu signāli"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Tulkot"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Īsziņas"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Pārslēgt mobilo tīklu"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS centrs"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Iestatījumi"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Adresāta izvēle"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Izvēlēti %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Ziņas SIM kartē"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Ziņas"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Ievades režīms"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Fails ir par lielu"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Neizdevās nosūtīt ziņu"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Atmest ziņu"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Izveidot"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Uzmanību"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Pievienot saturu"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Pārslēgties"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Saglabāt"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Sūtīt vēlreiz"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Noņemt"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "Labi"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Lejupiel."
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Atmest"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Dzēst"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Atcelt"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Atcelt"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kontakti"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Esat izvēlējies skaņas un attēla failu. Skaņas dati multiziņā netiek atbalstīti, tādēļ tiks pievienots tikai attēls."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Jā"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Gaida, lai nosūtītu..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Nevar nosūtīt šo ziņu. Ievietojiet SIM karti un mēģiniet vēlreiz."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Veids:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Lai izmantotu ierobežotas multivides veidus, mainiet multiziņas izveides režīma iestatījumu."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Nosūtīšanas laiks:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Saņemšanas laiks:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Izvēles rūtiņa"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Statuss:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Nosūtīts"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Sūta..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Sūtīšana neizdevās"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sek."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Automātiski izgūstiet ziņas viesabonēšanas laikā."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Izgūstiet ziņas automātiski."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Lasīšanas atskaite: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Cita persona"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Ziņa"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Piezīme"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Neizdevās"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Ievadiet tekstu"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Melnr."
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Piegādes atskaite: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Apraides ziņa"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalendārs"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kad būsit nosūtījis un saņēmis ziņas, tās tiks parādītas šeit."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Pēc ātro atbilžu izveides tās tiks parādītas šeit."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Pēc ziņu pārkopēšanas uz SIM karti tās tiks parādītas šeit."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Pēc frāžu pievienošanas tās tiks parādīti šeit."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kad būsit pievienojis numurus bloķēto ziņu sarakstam, tie tiks parādīti šeit."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "DZĒST"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Ielādē..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Paziņojumi"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Mans"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Sūt."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Sūtīt"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "SŪT."
+
diff --git a/main/po/mk.po b/main/po/mk.po
new file mode 100644 (file)
index 0000000..f796b20
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Дома"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Податочниот роаминг е исклучен. Вклучете податочен роаминг и обидете се повторно."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Нова порака"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ОТКАЖИ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Непознато"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Мобилен"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Мобилните податоци се исклучени. Вклучете мобилни податоци и обидете се повторно."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ПРАТИ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Неподдржан тип на медиум."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Не може да се праќаат пораки во режимот за летало. Исклучете го режимот за летало и обидете се повторно."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Не може да се препрати. Фајлот е заклучена за препраќање."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Нема доволно место во меморијата на уредот. Одете во Поставки > Енергија и меморија > Меморија, избришете некој фајл и обидете се повторно."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Текстот одозгора"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Текст одоздола"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Изберете изглед"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Не може да се додаде содржина."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Пораката е закажана за праќање на %s. Да се прати сега?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Достигната е максималната големина за порака."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Батеријата е празна."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Траењето мора да биде барем %d секунди."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Се исклучува режимот за летало..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Копирано на SIM-картичката."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Откажано."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Кор.др.инфо.за контакт"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Прати преку"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Слика"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Е-пошта"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Замени"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Прикажи"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Отстрани"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Емитувај"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "До"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Откажи порака"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Листа на приматели"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Прикажи"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Времетраење за слајд %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Почекајте додека се додаваат записи во слајдовите."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Не може да се прати пораката."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Избери ѕвонење"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Ќе се испрати извештај за прочитаност."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Не е побарано"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Достигнат е максималниот број приматели (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Внесете наслов."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Дуплиран примател."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Препр."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Не може да се меморира."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Не може да се најде локацијата."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Не може да се избрише."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Не може да се копира."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Некои знаци може да се изгубат.\nДа се продолжи?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "Не е вметнат SIM."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Неуспешно снимање."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Сочувано во Мои фајлови."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Неуспешно вчитување на пораките"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Ограничен вид содржина. Сепак приложи?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Се обновува..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Отфрлено."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Извештај за прочитаност"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Нема број"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Без прилози"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Нови пораки"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Пораката е ископирана од SIM-картичката."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Максимален број приматели е %d. Некои приматели може да се изгубат."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Надминат е максималниот број прилози (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Достигнат е максималниот број знаци."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Во тек..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Започнување..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Ако не сакате да се замени фајлот, преименувајте го."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Пораката содржи неприкажан приложен фајл."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Пораката содржи неприкажани приложени фајлови."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Името на фајлот веќе постои."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Се брише..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Ископирано во посредната меморија."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Се претвора во SMS..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Претворање во мултимедијална порака..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Блокирај %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Ќе бидете поврзани на Интернет (%s). Сепак продолжи?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Текст порака"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Наслов:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "На праќачот по email"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "На праќачот"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Избери"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Сочувај прилог"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Сочувај"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Отстрани"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Инсталирај"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Препрати"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Измени порака"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Да се избрише?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Избриши пораки"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Избери пораки"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Меморирај сè"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Детали за пораката"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Застарува: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Напредно пребарување"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Соч. ги сите прилози"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Непознато"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "До:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Текст пораки"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Меморијата на SIM-от е полна. Избришете некој запис."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Опции"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Пратено на:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Побарано."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Приматели"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Примено на:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Примено."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Извештај за прочитаност"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push пораки"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d пораки"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d разговори"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Друго"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Нема наслов"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Нема име"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Известување за мултимедијална порака"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Мултимед.порака"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Читање"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Пораката е одбиена."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Големина на пораката"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Опции за пораките"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Пораката е испорачана"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Порака"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Мене"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Надминат е максималниот број прилози (%1$s). Ќе се приложат само првите %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Неважечки примател."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Од"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Од:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Застарено"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Неуспешно праќање."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Извештај за испорака"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP-пораки"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Копирај текст"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Инфо-пораки"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Сите"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 порака"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 разговор"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Барај извештај за прочитаност за секоја пратена порака."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Барај извештај за испорака за секоја пратена порака."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Радио копче"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Копче вклучено/исклучено"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Листа што се проширува"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Автоматаско примање пораки MMS."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Не може да се прегледа фајлот. Неподдржан вид фајл."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Не може да се додадат некои приматели. Броевите не се важечки."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Не може да се додаде примател. Бројот не е важечки."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Не може да се додадат приматели. Броевите не се важечки."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Не може да се додадат уште прилози. Достигнат е максималниот број прилози (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Бројот е неважечки."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Избраните пораки се ископирани на мобилниот уред."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d пораки се преместени во листата пораки."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Бројот е отстранет од листата блокирани пораки."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Бројот е додаден во листата блокирани пораки."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Пораката е ископирана на SIM-картичката %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Надминат е максималниот број знаци."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Надмината е максималната големина за пораки (%s). Се менува големината на прилозите..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Внесен е неправилен знак."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Додај приматели."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 порака е преместена во листата пораки."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Текстуални пораки"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Звук"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Мултимедијални пораки"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Пораки на SIM-картичката"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Режим за внесување"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Автоматско преземање во роаминг"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Автоматско преземање"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Испрати"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Не"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Изберете режим за внесување за составување пораки."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Ништо"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Уредување на пораките зачувани на SIM-картичката."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Пораката ќе се отфрли. Не се избрани приматели."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Не може да се прати закажаната порака. Одредете друго време."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Не може да се пушти за време на разговор."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Не може да се приложи фајлот. Преголем е. Обидете се да го пратите преку Email, Bluetooth, Wi-Fi итн."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "За да ја пратите оваа мултимедијална порака, уредот ќе се поврзе со друга мобилна мрежа. Тоа ќе ја прекине врската на уредот со моменталната мобилна мрежа."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "За да ја преземете оваа мултимедијална порака, уредот ќе се поврзе со друга мобилна мрежа. Тоа ќе ја прекине врската на уредот со моменталната мобилна мрежа."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Пораката ќе се прати повторно."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d пораки ќе се избришат."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d разговори ќе се избришат."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Нема урнеци на листата"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Само дојдовни пораки"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Вклучи го оригиналниот текст во појдовната порака"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Траењето мора да биде пократко од %d секунди."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Избришано."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 порака ќе се избрише."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 разговор ќе се избрише."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Види детали"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Види детали за контакт"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Види како слајдови"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Видео-записи"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Ажурирај контакт"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Уникод"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Текст"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Сликај"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Опции"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Пребарување"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Сочувај прилози"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Прати повторно"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Одговори"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Отстрани од блокирани"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Сними видео"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Сними звучен фајл"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Брз одговор"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Ништо"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Упати гласовен повик"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Слики"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM alphabet"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Извези во меморијата на уредот"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Измени"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Избриши порака"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Избриши разговор"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Избриши"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Основно"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Направи контакт"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Копирај на SIM-картичка"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Копирај на уредот"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Копирај текст"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Копирај"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Резервна копија"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Автоматски"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Звучни фајлови"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Прилог"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Додај во Контакти"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Додај во Блокирани"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Додај приматели"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Пребарување"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Нема резултати"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Нема брзи одговори"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Нема блокирани фрази"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Нема пораки на SIM-картичката"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Нема пораки"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Нема блокирани броеви"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Вибрации"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Непознат број"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Број на цент. за текст.пораки"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Избери ги сите"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Известувања"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Преведи"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Текстуални пораки"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Смени мобилна мрежа"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS-центар"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Опции"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Изберете примател"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d избрани"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Пораки на SIM-картичката"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Пораки"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Режим за внесување"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Фајлот е преголем"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Неуспешно праќање порака"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Отфрли порака"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Избриши"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Направи"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Внимание"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Додај содржина"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Префрли"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Сочувај"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Прати повторно"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Отстрани"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Преземи"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Отфрли"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Избриши"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Откажи"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Откажи"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Контакти"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Избравте фајл за звук и слика. Звучните податоци не се поддржани за MMS, па ќе се приложи само сликата."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Да"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Се чека да се прати..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Не може да се прати поракава. Вметнете ја својата SIM-картичка и обидете се повторно."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Тип:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "За да користите ограничени видови медиуми, сменете ги поставки за правење MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Време на праќање:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Време на примање:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Квадрат за штиклирање"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Состојба:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Пратени"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Се праќа..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Неуспешно праќање"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "сек."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Преземај пораки автоматски во роаминг."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Преземај пораки автоматски."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Извештај за прочитаност: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Друго лице"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Порака"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Белешка"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Неуспешно"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Внесете текст"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Нацрт"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Извештај за испорака: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Инфо-порака"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Календар"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Откако ќе пратите или примите пораки, ќе се прикажат тука."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Откако ќе направите брзи одговори, ќе се прикажат тука."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Откако ќе ископирате пораки на SIM-картичката, ќе се прикажат тука."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Откако ќе додадете фрази, ќе се прикажат тука."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Откако ќе додадете броеви во листата за блокирање пораки, ќе се прикажат тука."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ИЗБРИШИ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Активирање..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Известувања"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Мене"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Исп."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Прати"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ПРАТИ"
+
diff --git a/main/po/ml.po b/main/po/ml.po
new file mode 100644 (file)
index 0000000..46ec0f3
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "ഹോം"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "ഡാറ്റ റോമിംഗ് അപ്രാപ്തമാക്കി. ഡാറ്റ റോമിംഗ് പ്രാപ്തമാക്കി വീണ്ടും ശ്രമിക്കുക."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "പുതിയ സന്ദേശം"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "റദ്ദാക്കുക"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ചെയ്‌തു"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "അജ്ഞാതം"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "മൊബൈല്‍"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "മൊബൈല്‍ ഡാറ്റ അപ്രാപ്തമാക്കി. മൊബൈല്‍ ഡാറ്റ പ്രാപ്തമാക്കി വീണ്ടും ശ്രമിക്കുക."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "അയയ്‌ക്കുക"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "പിന്തുണയ്ക്കാത്ത മീഡിയ തരം."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "ഫ്ലൈറ്റ് മോഡിലായിരിക്കുമ്പോള്‍ സന്ദേശങ്ങള്‍ അയയ്ക്കാനാവില്ല. ഫ്ലൈറ്റ് മോഡ് നിഷ്ക്രിയമാക്കി വീണ്ടും ശ്രമിക്കുക"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "ഫോര്‍വേഡ് ചെയ്യാന്‍ ആവുന്നില്ല.\n ഫയലിന് ഫോര്‍വേഡ് ചെയ്യല്‍ ലോക്കുചെയ്തിരിക്കുന്നു"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "നിങ്ങളുടെ ഉപകരണത്തിന്‍റെ സംഭരണത്തിൽ വേണ്ടത്ര ഇടമില്ല. ക്രമീകരണങ്ങൾ > പവറും സംഭരണവും > സംഭരണം എന്നതിലേക്ക് പോവുക, തുടർന്ന് ഏതാനും ഫയലുകൾ ഇല്ലാതാക്കി വീണ്ടും ശ്രമിക്കുക."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "ടെക്സ്റ്റ്‌ മുകളില്‍"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "ടെക്സ്റ്റ്‌ താഴെ"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "ലേഔട്ട് തിരഞ്ഞെടുക്കുക"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "ഉള്ളടക്കം ചേര്‍‌ക്കാനാവില്ല."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "%s-ലേക്ക് അയയ്ക്കാന്‍ സന്ദേശം ഷെഡ്യൂള്‍ ചെയ്യപ്പെട്ടിരിക്കുന്നു. ഇപ്പോള്‍ അയയ്ക്കണോ?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "പരമാവധി സന്ദേശ വലിപ്പം എത്തി."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "ലോ ബാറ്ററി."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "ദൈര്‍ഘ്യം കുറഞ്ഞത് %d സെക്കന്‍റ് ഉണ്ടായിരിക്കണം."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "ഫ്ലൈറ്റ് മോഡ് നിഷ്ക്രിയമാക്കുന്നു..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM കാര്‍‌ഡിലേക്ക് പകര്‍‌ത്തി."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "റദ്ദാക്കി."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "മറ്റ് കോണ്‍‌ടാക്ട് വിവരം ഉപയോഗിക്കുക"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "ഇതുവഴി അയ‌യ്‌ക്കുക"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "ഇമേജ്"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ഈമെയില്‍"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "പകരം വയ്‌ക്കുക"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "കാണുക"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "നീക്കംചെയ്യുക"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "പ്ലേ ചെയ്യുക"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "ടു"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "സന്ദേശം റദ്ദാക്കുക"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "സ്വീകര്‍ത്തൃ ലിസ്റ്റ്"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "പ്രിവ്യൂ"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "സ്ലൈഡ് %d/%d നായുള്ള ദൈര്‍ഘ്യം"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "സ്ലൈഡ്ഷോയിലേക്ക് ഇനങ്ങള്‍ ചേര്‍ക്കുമ്പോള്‍ കാത്തിരിക്കുക."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "സന്ദേശം അയയ്ക്കാന്‍ ആവുന്നില്ല."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "റിംഗ്ടോണ്‍ തിരഞ്ഞെടുക്കുക"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "വായനാ റിപ്പോര്‍ട്ട് അയക്കും."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "അഭ്യര്‍ത്ഥിച്ചിട്ടില്ല"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "ആകാവുന്ന സ്വീകര്‍ത്താക്കളുടെ പരമാവധി എണ്ണം (%d) തികഞ്ഞു."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "വിഷയം നല്‍കുക."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "സ്വീകര്‍ത്താവ് ആവര്‍ത്തിക്കുന്നു."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "ഫോര്‍വേ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "സംരക്ഷിക്കാന്‍ ആവുന്നില്ല."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "സ്ഥാനം കണ്ടെത്താന്‍ ആവുന്നില്ല."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "ഇല്ലാതാക്കാന്‍ സാധ്യമല്ല."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "പകര്‍ത്താനാവില്ല."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "ചില അക്ഷരങ്ങള്‍  നഷ്‌ടമായേക്കും.\nതുടരണോ?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM ഉള്‍ക്കൊള്ളിച്ചിട്ടില്ല."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "സംരക്ഷിക്കല്‍‌ പരാജയപ്പെട്ടു."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "എന്‍റെ ഫയലുകളില്‍‌ സംരക്ഷിച്ചു."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "സന്ദേശം വീണ്ടെടുക്കുന്നത് പരാജയപ്പെട്ടു"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "നിയന്ത്രിക്കപ്പെട്ട ഉള്ളടക്ക തരം. എതുവിധേനയും അറ്റാച്ച് ചെയ്യണമോ?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "പുനസംഭരിക്കുന്നു..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "നിരസിച്ചു."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "വായനാ റിപ്പോര്‍ട്ട്"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "നമ്പറില്ല"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "അറ്റാച്ച്‌മെന്‍റുകള്‍ ഇല്ല"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "പുതിയ സന്ദേശങ്ങള്‍"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM കാര്‍ഡില്‍ നിന്നും മെസ്സേജ് പകര്‍ത്തി."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "ആകാവുന്ന സ്വീകര്‍ത്താക്കളുടെ പരമാവധി എണ്ണം %d ആകുന്നു. ഏതാനും സ്വീകര്‍ത്താക്കളെ നഷ്ടമായേക്കാം"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "അറ്റാച്ച്മെന്‍റുകളുടെ പരമാവധി എണ്ണം (%s) കവിഞ്ഞു."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "അക്ഷരങ്ങളുടെ പരമാവധിയെണ്ണത്തിലെത്തി."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "പുരോഗമിക്കുന്നു..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "സമാരംഭിക്കുന്നു..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "ഫയല്‍ മാറ്റി വയ്ക്കാന്‍ നിങ്ങള്‍ ആഗ്രഹിക്കുന്നില്ലെങ്കില്‍, അതിന്‍റെ പേര് മാറ്റുക."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "ഈ സന്ദേശം ഉള്‍ക്കൊള്ളുന്ന അറ്റാച്ചുചെയ്‌ത ഒരു ഫയല്‍‌ കാണിച്ചിട്ടില്ല."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "ഈ സന്ദേശം  ഉള്‍ക്കൊള്ളുന്ന അറ്റാച്ചുചെയ്ത ഫയലുകള്‍  പ്രദര്‍ശിപ്പിച്ചിട്ടില്ല."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ഫയല്‍ നാമം ഇതിനകം നിലവിലുണ്ട്."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "ഇല്ലാതാക്കുന്നു..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "ക്ലിപ്ബോര്‍ഡിലേക്ക് പകര്‍ത്തി."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "ടെക്സ്റ്റ് സന്ദേശമായി പരിവര്‍ത്തനം ചെയ്യുന്നു..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "മള്‍ട്ടിമീഡിയാ സന്ദശമായി പരിവര്‍ത്തനം ചെയ്യുന്നു..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s തടയണമോ?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "നിങ്ങള്‍ ഓണ്‍‌‌ലൈനാകാന്‍‍(%s) പോവുകയാണ്. തുടരണോ?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "ടെക്സ്റ്റ്‌ സന്ദേശം"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "വിഷയം:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ഈമെയില്‍ വഴിയുള്ള പ്രേഷിതന്‍"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "പ്രേഷിതന്‍"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "തിരഞ്ഞെടുക്കുക"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "അറ്റാച്ചുമെന്‍റ് സംരക്ഷിക്കുക"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "സംരക്ഷിക്കുക"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "നീക്കംചെയ്യുക"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "ഇന്‍‌സ്റ്റാള്‍"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "ഫോര്‍വേഡുചെയ്യുക"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "സന്ദേശം എഡിറ്റ്‌ ചെയ്യുക"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "ഇല്ലാതാക്കണോ?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "സന്ദേശങ്ങള്‍ നീക്കം ചെയ്യുക"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "സന്ദേശങ്ങൾ തിരഞ്ഞെടുക്കുക"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "എല്ലാം സംരക്ഷിക്കുക"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "സന്ദേശ വിശദാംശങ്ങള്‍"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "കാലഹരണപ്പെടുന്നത്: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "വിപുലമായ തിരയല്‍"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "എല്ലാ അറ്റാച്ച്മെൻറുകളും സംരക്ഷിക്കുക"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "അജ്ഞാതം"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "To:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "ടെക്സ്റ്റ്‌ സന്ദേശങ്ങള്‍"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM മെമ്മറി നിറഞ്ഞു. ഏതാനും ഇനങ്ങള്‍ ഇല്ലാതാക്കുക."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "ക്രമീകരണങ്ങൾ"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "അയച്ചു:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "അഭ്യര്‍ത്ഥിച്ചു."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "സ്വീകര്‍ത്താക്കള്‍"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "സ്വീകരിച്ചു:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "സ്വീകരിച്ചു."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "വായനാ റിപ്പോര്‍ട്ട്"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "പുഷ് സന്ദേശങ്ങള്‍"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d  സന്ദേശങ്ങള്‍"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d സംഭാഷണം"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "മറ്റ്"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "വിഷയമില്ല"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "പേരില്ല"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "മള്‍ട്ടിമീഡിയ സന്ദേശ അറിയിപ്പ്"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "മള്‍ട്ടിമീഡിയാ സന്ദേശം"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "വായിക്കുക"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "സന്ദേശം നിരസിച്ചു."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "സന്ദേശം വലിപ്പം"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "സന്ദേശ ഓപ്‌ഷനുകള്‍‌"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "സന്ദേശം   കൈമാറി"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "സന്ദേശം"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "ഞാന്‍"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "അറ്റാച്ച്മെന്‍റുകള്‍ ആകാവുന്നതിന്‍റെ പരമാവധി എണ്ണം (%1$s) അതികരിച്ചു. ആദ്യത്തെ %2$s മാത്രം ചേര്‍ക്കുന്നു."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "അസാധുവായ സ്വീകര്‍ത്താ‍വ്."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "പ്രേഷിതന്‍‌"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "പ്രേഷിതന്‍:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "കാലഹരണപ്പെട്ടു"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "അയയ്ക്കല്‍ പരാജയപ്പെട്ടു."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "ഡെലിവറി റിപ്പോര്‍ട്ട്"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "സി പി സന്ദേശങ്ങള്‍"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "ടെക്സ്റ്റ്‌ പകര്‍‌ത്തുക"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB സന്ദേശങ്ങള്‍"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "എല്ലാം"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 സന്ദേശം"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 സംഭാഷണം"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "നിങ്ങള്‍ അയക്കുന്ന ഓരോ സന്ദേശത്തിനും വായനാ റിപ്പോര്‍ട്ട് അഭ്യര്‍ത്ഥിക്കുക."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "നിങ്ങള്‍ അയക്കുന്ന ഓരോ സന്ദേശത്തിനും ഒരു ഡെലിവറി റിപ്പോര്‍ട്ട് അഭ്യര്‍ത്ഥിക്കുക."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "റേഡിയോ ബട്ടണ്‍"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ഓണ്‍/ഓഫ് ബട്ടണ്‍"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "വിപുലീകരിക്കാവുന്ന ലിസ്റ്റ്"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS സന്ദേശങ്ങള്‍ യാന്ത്രികമായി വീണ്ടെടുക്കുക."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ഫയലിന്‍റെ പ്രിവ്യൂ കാണാനാവില്ല. പിന്തുണയ്‌ക്കാത്ത ഫയൽ തരം."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "ഏതാനും സ്വീകർത്താക്കളെ ചേർക്കാനാവില്ല. നമ്പറുകൾക്ക് സാധുതയില്ല."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "സ്വീകർത്താവിനെ ചേർക്കാനാവില്ല. നമ്പറിന് സാധുതയില്ല."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "സ്വീകർത്താക്കളെ ചേർക്കാനാവില്ല. നമ്പറുകൾക്ക് സാധുതയില്ല."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "അറ്റാച്ച്മെന്‍റ് ചേർക്കാനാവില്ല. അറ്റാച്ച്മെന്‍റുകളുടെ എണ്ണം പരമാവധിയിൽ (%d) എത്തി."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "ഈ നമ്പറിന് സാധുതയില്ല."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "തിരഞ്ഞെടുത്ത സന്ദേശങ്ങളെ മൊബൈൽ ഉപകരണത്തിലേക്ക് പകർത്തി."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "സന്ദേശ ലിസ്റ്റിലേക്ക് %d സന്ദേശങ്ങൾ നീക്കി."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "നമ്പറിനെ സന്ദേശം തടയൽ പട്ടികയിൽ നിന്ന് നീക്കംചെയ്തു."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "നമ്പറിനെ സന്ദേശം തടയൽ പട്ടികയിൽ ചേർത്തു."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "%s SIM കാർഡിലേക്ക് സന്ദേശം പകർത്തി."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "അക്ഷരങ്ങളുടെ പരമാവധി എണ്ണം കവിഞ്ഞു."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "പരമാവധി സന്ദേശ വലിപ്പം (%s) കവിഞ്ഞു. അറ്റാച്ചുമെന്‍റുകളുടെ വലുപ്പം മാറ്റുന്നു..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "അസാധുവായ അക്ഷരമാണ് നൽകിയത്"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "സ്വീകർത്താക്കളെ ചേർക്കുക."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 സന്ദേശം സന്ദേശ പട്ടികയിലേക്ക് നീക്കി."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "ടെക്സ്റ്റ്‌ സന്ദേശങ്ങൾ"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ശബ്ദം"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "മൾട്ടിമീഡിയ സന്ദേശങ്ങൾ"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM കാർഡിലെ സന്ദേശങ്ങൾ"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "ഇൻപുട്ട് മോഡ്"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "റോമിംഗിൽ സ്വയം വീണ്ടെടുക്കൽ"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "സ്വയം വീണ്ടെടുക്കൽ"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "ഇപ്പോള്‍ അയക്കുക"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "ഇല്ല"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "സന്ദേശങ്ങൾ രചിക്കുന്നതിനായി ഒരു ഇൻപുട്ട് മോഡ് തിരഞ്ഞെടുക്കുക."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "ഒന്നുമില്ല"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "നിങ്ങളുടെ SIM കാർഡിൽ സംഭരിച്ചിട്ടുള്ള സന്ദേശങ്ങളെ മാനേജ് ചെയ്യുക."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "നിങ്ങളുടെ സന്ദേശം ഉപേക്ഷിക്കപ്പെടും. സ്വീകർത്താക്കളെയൊന്നും തിരഞ്ഞെടുത്തിട്ടില്ല."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "ഷെഡ്യൂള്‍ ചെയ്ത മെസ്സേജ് അയക്കാനാവുന്നില്ല. മറ്റൊരു സമയം സജ്ജീകരിക്കുക."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "കോളിനിടെ പ്ലേചെയ്യാന്‍ ആവുന്നില്ല."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ഫയല്‍ അറ്റാച്ചുചെയ്യാനാകുന്നില്ല. ഫയല്‍ വലുപ്പം വളരെ വലുതാണ്. ഈമെയില്‍, ബ്ലൂടൂത്ത്, Wi-Fi മുതലായവ വഴി അയയ്ക്കാന്‍ ശ്രമിക്കുക."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "ഈ മൾട്ടിമീഡിയ സന്ദേശം അയയ്ക്കുന്നതിന്, ഉപകരണം മറ്റൊരു മൊബൈൽ നെറ്റ്‌വർക്കിൽ ബന്ധിപ്പിക്കും. നിലവിലെ മൊബൈൽ നെറ്റ്‌വർക്കിൽ നിന്ന് ഇത് നിങ്ങളുടെ ഉപകരണത്തെ വിച്ഛേദിക്കും."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "ഈ മൾട്ടിമീഡിയ സന്ദേശം ഡൗൺലോഡ് ചെയ്യുന്നതിന്, ഉപകരണം വ്യത്യസ്തമായ ഒരു നെറ്റ്‌വർക്കിലേക്ക് ബന്ധിപ്പിക്കും. ഇത് നിങ്ങളുടെ ഉപകരണത്തെ നിങ്ങളുടെ നിലവിലെ മൊബൈൽ നെറ്റ്‌വർക്കിൽ നിന്ന് വിച്ഛേദിക്കും."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "ഈ സന്ദേശം വീണ്ടും അയയ്ക്കപ്പെടും."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d മെസ്സേജുകള്‍ ഡിലീറ്റ് ചെയ്യപ്പെടും."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d സംഭാഷണങ്ങൾ ഇല്ലാതാക്കപ്പെടും."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "ലിസ്റ്റില്‍ ടെംപ്ലേറ്റുകള്‍ ഒന്നും ഇല്ല"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "ഇങ്ങോട്ടുള്ള സന്ദേശങ്ങള്‍ മാത്രം"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "പുറത്തേക്കുള്ള സന്ദേശത്തില്‍ അസല്‍ ടെക്സ്റ്റ് ഉള്‍പ്പെടുത്തുക"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "കാലയളവ് %d സെക്കന്‍റിലും കുറവായിരിക്കണം."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "ഇല്ലാതാക്കി."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 സന്ദേശം ഇല്ലാതാക്കപ്പെടും."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 സംഭാഷണം ഇല്ലാതാക്കപ്പെടും."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "വിശദാംശങ്ങള്‍ കാണുക"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "കോൺടാക്ട് വിശദാംശങ്ങൾ കാണുക"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "സ്ലൈഡ്‌ഷോ ആയി കാണുക"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "വീഡിയോകള്‍"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "കോൺടാക്ട് അപ്ഡേറ്റ് ചെയ്യുക"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "യൂണിക്കോഡ്"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "ടെക്സ്റ്റ്‌"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "ചിത്രമെടുക്കുക"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "ക്രമീകരണങ്ങൾ"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "തിരയുക"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "അറ്റാച്ച്മെന്റുകള്‍ സംരക്ഷിക്കുക"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "വീണ്ടും അയയ്ക്കുക"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "മറുപടി"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "തടയൽ പട്ടികയിൽ നിന്ന് നീക്കംചെയ്യുക"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "വീഡിയോ റെക്കോര്‍ഡ് ചെയ്യുക"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "ഓഡിയോ ഫയൽ റെക്കോർഡ് ചെയ്യുക"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "ത്വരിത പ്രതികരണം"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "ഒന്നുമില്ല"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "ശബ്ദ കോൾ നടത്തുക"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "ഇമേജുകള്‍"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM അക്ഷരമാല"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "ഉപകരണ മെമ്മറിയിലേക്ക് എക്സ്‌പോര്‍ട്ട് ചെയ്യുക"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "എഡിറ്റുചെയ്യുക"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "സന്ദേശം ഇല്ലാതാക്കുക"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "സംഭാഷണം ഇല്ലാതാക്കുക"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "ഇല്ലാതാക്കുക"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "സ്ഥിരസ്ഥിതി"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "കോണ്‍‌ടാക്ട് സൃഷ്‌ടിക്കുക"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM കാർഡിലേക്ക് പകർത്തുക"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "ഉപകരണത്തിലേക്ക് പകർത്തുക"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "ടെക്സ്റ്റ്‌ പകര്‍‌ത്തുക"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "പകര്‍ത്തുക"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "ബാക്കപ്പ് ചെയ്യുക"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "ഓട്ടോമാറ്റിക്"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "ഓഡിയോ ഫയലുകൾ"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "അറ്റാച്ചുമെന്റ്"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "സമ്പര്‍ക്കങ്ങളിലേക്ക് ചേര്‍ക്കുക"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "തടയൽ പട്ടികയിൽ ചേർക്കുക"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "സ്വീകർത്താക്കളെ ചേർക്കുക"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "തിരയുക"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "ഫലങ്ങളൊന്നും കണ്ടെത്തിയില്ല"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "ദ്രുത പ്രതികരണങ്ങൾ ഒന്നുമില്ല"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "പദങ്ങളെ ഒന്നും തടഞ്ഞിട്ടില്ല"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM കാര്‍ഡിൽ സന്ദേശങ്ങള്‍ ഒന്നുമില്ല"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "സന്ദേശങ്ങൾ ഒന്നുമില്ല"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "തടയപ്പെട്ട നമ്പറുകൾ ഒന്നുമില്ല"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "വൈബ്രേഷന്‍"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "അജ്ഞാത നമ്പര്‍"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "ടെക്സ്റ്റ് സന്ദേശ സെന്‍റർ നമ്പർ"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "എല്ലാം തിരഞ്ഞെടുക്കുക"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "അലേര്‍ട്ടുകള്‍"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "തര്‍ജ്ജമ ചെയ്യുക"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "ടെക്സ്റ്റ്‌ സന്ദേശങ്ങൾ"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "മൊബൈൽ നെറ്റ്‌വർക്ക് സ്വിച്ചുചെയ്യുക"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS കേന്ദ്രം"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "ക്രമീകരണങ്ങൾ"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "സ്വീകര്‍ത്താവിനെ തിരഞ്ഞെടുക്കുക"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d തിരഞ്ഞെടുത്തു"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM കാർഡിലെ സന്ദേശങ്ങൾ"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "സന്ദേശങ്ങള്‍"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ഇന്‍പുട്ട് മോഡ്"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ഫയൽ വലുപ്പം വളരെ വലുതാണ്"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "സന്ദേശം അയയ്ക്കുന്നത് പരാജയപ്പെട്ടു"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "സന്ദേശം ഉപേക്ഷിക്കുക"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "ഇല്ലാതാക്കുക"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "സൃഷ്ടിക്കുക"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "ശ്രദ്ധിക്കുക"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "ഉള്ളടക്കം ചേർക്കുക"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "സ്വിച്ചുചെയ്യുക"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "സംരക്ഷിക്കുക"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "വീണ്ടും അയയ്ക്കുക"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "നീക്കംചെയ്യുക"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ശരി"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ഡൗൺലോഡുചെയ്യുക"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "ഉപേക്ഷിക്കുക"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "ഇല്ലാതാക്കുക"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "റദ്ദാക്കുക"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "റദ്ദ്"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "കോൺടാക്ടുകള്‍"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "നിങ്ങള്‍ തിരഞ്ഞെടുത്ത സൗണ്ട് & ഷോട്ട് ഫയല്‍. ശബ്ദ ഡാറ്റ MMS-നെ പിന്തുണക്കുന്നില്ല അതിനാല്‍ ചിത്രം മാത്രം അറ്റാച്ച് ചെയ്യപ്പെടും"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "അതെ"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "അയയ്ക്കാനായി കാത്തിരിക്കുന്നു..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "ഈ സന്ദേശം അയയ്ക്കാനാവില്ല. നിങ്ങളുടെ SIM കാർഡ് ഇട്ട് വീണ്ടും ശ്രമിക്കുക."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "തരം:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "നിയന്ത്രിത മീഡിയ തരങ്ങള്‍ ഉപയോഗിക്കാന്‍ നിങ്ങളുടെ MMS ക്രിയേഷന്‍ മോഡ് ക്രമീകരണം മാറ്റുക."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "അയച്ച സമയം:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "സ്വീകരിച്ച സമയം:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "ടിക്ക് ബോക്സ്‌"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "സ്റ്റാറ്റസ്:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "അയച്ചു"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "അയയ്ക്കുന്നു..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "അയയ്ക്കൽ പരാജയപ്പെട്ടു"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "സെക്കന്‍റ്"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "റോമിംഗിലായിരിക്കുന്ന സമയത്ത് സന്ദേശങ്ങളെ ഓട്ടോമാറ്റിക്കായി വീണ്ടെടുക്കുക."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "സന്ദേശങ്ങളെ ഓട്ടോമാറ്റിക്കായി വീണ്ടെടുക്കുക."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "വായനാ റിപ്പോര്‍ട്ട്: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "മറ്റൊരു വ്യക്തി"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "സന്ദേശം"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "മെമ്മോ"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "പരാജയപ്പെട്ടവ"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "ടെക്സ്റ്റ് നൽകുക"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "ഡ്രാഫ്റ്റ്"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "ഡെലിവറി റിപ്പോര്‍ട്ട്: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB സന്ദേശം"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "കലണ്ടർ"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "നിങ്ങൾ സന്ദേശങ്ങൾ അയയ്ക്കുകയോ സ്വീകരിക്കുകയോ ചെയ്തുകഴിഞ്ഞാൽ, അവയെ ഇവിടെ കാണിക്കും."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ദ്രുത പ്രതികരണങ്ങളെ നിങ്ങൾ സൃഷ്ടിച്ചുകഴിഞ്ഞാൽ, അവയെ ഇവിടെ കാണിക്കും."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "SIM കാർഡിലേക്ക് നിങ്ങൾ കോൺടാക്ടുകളെ പകർത്തിക്കഴിഞ്ഞാൽ, അവയെ ഇവിടെ കാണിക്കും."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "പദങ്ങളെ നിങ്ങൾ ചേർത്തുകഴിഞ്ഞാൽ, അവയെ ഇവിടെ കാണിക്കും."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "സന്ദേശം നിരസിക്കൽ പട്ടികയിലേക്ക് നമ്പറുകളെ നിങ്ങൾ ചേർത്തുകഴിഞ്ഞാൽ, അവയെ ഇവിടെ കാണിക്കും."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ഇല്ലാതാക്കുക"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "ലോഡ്‌ ചെയ്യുന്നു..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "അറിയിപ്പുകള്‍"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "ഞാന്‍"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "അയയ്‌."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "അയയ്‌ക്കുക"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "അയയ്‌."
+
diff --git a/main/po/mr.po b/main/po/mr.po
new file mode 100644 (file)
index 0000000..60da5e9
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "निवास"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "डेटा रोमिंग अक्षम केले आहे. डेटा रोमिंग सक्षम करा आणि पुन्हा प्रयत्न करा."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "नवीन संदेश"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "रद्द करा"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "झाले"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "मोबाईल"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "मोबाइल डेटा अक्षम केला आहे. मोबाइल डेटा सक्षम करा आणि पु्न्हा प्रयत्न करा."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "पाठवा"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "असमर्थित मीडिया प्रकार."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "फ्लाइट मोड मध्ये असताना संदेश पाठवण्यात अक्षम. फ्लाइट मोड अक्षम करा आणि पुन्हा प्रयत्न करा"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "पुढे पाठवू शकत नाही. \n फाइल पुढे पाठवणे बंद आहे"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "तिथे आपल्‍या उपकरण संग्रहावर पुरेशी जागा नाही. सेटिंग्‍स > पॉवर आणि संग्रह > संग्रहावर जा, नंतर काही फाइल्‍स हटवा आणि पुन्‍हा प्रयत्‍न करा."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "शीर्षावरील मजकूर"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "तळाशी मजकूर"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "लेआऊट निवडा"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "वर्ण जोडण्यास असमर्थ."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "%s ला पाठविण्यासाठी क्रमित केलेला संदेश. आता पाठवायचे?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "संदेश चा अधिकतम आकार गाठला."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "बॅटरी कमी."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "कालावधी कमीत कमी %d सेकंद असणे आवश्यक आहे."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "फ्लाइट मोड अक्षम करत आहे..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM कार्ड मध्ये कॉपी केले."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "रद्द केले."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "दुसरी संपर्क माहिती वापरा"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "मार्गे पाठवा"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "प्रतिमा"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ईमेल"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "बदला"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "पहा"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "काढून टाका"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "चालू"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "प्रति"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "संदेश रद्द करा"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "प्राप्तकर्ता यादी"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "पूर्वावलोकन"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "स्लाइडचा कालावधी %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "आयटम्स स्लाइडशोमध्ये जोडले जाण्या पर्यंत प्रतीक्षा करा."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "संदेश पाठविण्यास अक्षम."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "रिंगटोन निवडा"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "रीड रिपोर्ट पाठवला जाईल."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "विनंती केले नाही."
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "प्राप्तकर्त्यांची अधिकतम संख्या (%d) गाठली."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "विषयाची नोंद करा."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "नकली प्राप्तकर्ता."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "अग्रेष."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "जतन करण्यास असमर्थ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "स्थान शोधण्यात अक्षम."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "काढून टाकण्यास असमर्थ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "कॉपी करण्यास अक्षम."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "काही वर्ण गमावू शकतात. सुरू ठेवायचे?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM समाविष्ट नाही."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "जतन करणे अयशस्वी."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "माझ्या फाइल्स मध्ये जतन."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "परत मिळवणारा संदेश अयशस्वी"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "निर्बंधित सामग्री प्रकार. तरीही संलग्न करायचे?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "पुन:संग्रहित करीत आहे..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "नकारलेले."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "अहवाल वाचा"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "नंबर नाही"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "संलग्नके नाही"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "नवीन संदेश"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM कार्डवरून संदेश कॉपी केला."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "प्राप्तकर्त्यांची अधिकतम संख्या %d आहे. काही प्राप्तकर्ते गमावू शकतात"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "(%s) जोडण्या अधिकतम संख्या ओलांडली."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "वर्णांच्या अधिकतम संख्येपर्यंत पोहोचले."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "प्रगतीवर..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "प्रारंभिकरण..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "आपणांस फाइल बदलायची नसल्यास, तिचे नाव बदला."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "या संदेश दिसणारी एखादी संलग्न फाईल समाविष्ट आहे."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "या संदेश दिसणार्‍या फाईली संलग्न केलेल्या आहेत."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "फाईलचे नाव यापूर्वीच अस्तित्वात आहे."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "काढले जात आहे..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "क्लिपबोर्डवर कॉपी केले."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "मजकूर संदेशामध्ये रूपांतर करत आहे.."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "मल्टीमीडिया संदेशामध्ये रूपांतर करत आहे..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s ब्लॉक करायचे?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "आता आपण ऑनलाईन जाणार आहात(%s) . चालू ठेवायचे का?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "मजकूर संदेश"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "विषय:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ईमेल द्वारे पाठवा"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "प्रेषक"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "निवडा"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "संलग्नक जतन करा"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "जतन करा"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "काढून टाका"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "इनस्टॉल"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "पुढे पाठवा"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "संदेश संपादित करा."
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "काढून टाकायचे?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "संदेश हटवा"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "संदेशांना निवडा"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "सर्व जतन करा."
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "संदेश तपशील"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "मुद्दत संपले : %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "प्रगत शोध"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "सर्व संलग्‍नके जतन करा"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "प्रति:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "मजकूर संदेश"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM मेमोरी भरली. काही आयटम्स हटवा."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "प्रेषित:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "विनंती केलेले."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "प्राप्तकर्ते"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "प्राप्त:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "मिळाले."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "अहवाल वाचा"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "पुश संदेश"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d संदेश"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d संभाषण"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "इतर"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "विषय नाही"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "नाव नाही"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "मल्टीमीडिया संदेश अधिसूचना."
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "मल्टिमीडिया संदेश"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "वाचा"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "नकारलेले संदेश."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "संदेश चा आकार"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "संदेश चा पर्याय"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "संदेश पाठवला"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "संदेश"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "मी"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "जोडण्या कमाल संख्या (%1$s) ओलांडली. केवळ प्रथम %2$s जोडल्या जातील."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "अग्राह्य प्राप्तकर्ता."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "पासून"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "वरुन:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "कालबाह्य"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "पाठवणे अयशस्वी."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "पोहचल्याचा अहवाल"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "सीपी संदेश"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "मजकूर कॉपी करा."
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB संदेश"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "सर्व"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 संदेश"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 संभाषण"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "आपण पाठवलेल्‍या प्रत्‍येक संदेशासाठी वाचलेल्‍या अहवालाची विनंती करा."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "आपण पाठवलेल्‍या प्रत्‍येक संदेशासाठी वितरण अहवालाची विनंती करा."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "रेडिओ बटण"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "चालू/बंद करा बटण"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "विस्‍तार योग्‍य यादी"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS संदेश स्‍वयंचलितपणे पुनर्प्राप्त करा."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "फाइलचे पूर्वावलोकन करण्यात अक्षम. असमर्थित फाइल प्रकार."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "काही प्राप्‍तकर्ते जोडण्‍यात अक्षम. क्रमांक वैध नाहीत."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "प्राप्‍तकर्ता जोडण्‍यात अक्षम. क्रमांक वैध नाही."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "प्राप्‍तकर्ते जोडण्‍यात अक्षम. क्रमांक वैध नाहीत."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "संलग्नक जोडण्यात अक्षम. संलग्नकांची कमाल संख्या (%d) गाठली."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "हा क्रमांक वैध नाही."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "निवडलेले संदेश मोबाईल उपकरणावर कॉपी केले."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d संदेश हे संदेश यादीवर हलवले."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "संदेश अवरोध यादीमधून क्रमांक काढून टाकला."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "संदेश अवरोध यादीमध्ये क्रमांक जोडला."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "संदेश %s SIM कार्डवर कॉपी केला."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "उपकरणांची अधिकतम संख्या ओलांडली."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "संदेशांचा कमाल आकार (%s) ओलांडला. संलग्नकांचा आकार बदलत आहे..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "अवैध वर्ण प्रविष्‍ट केले"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "प्राप्तकर्ते जोडा."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 संदेश हा संदेश यादीवर हलवला."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "मजकूर संदेश"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ध्वनी"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "मल्टिमिडिया संदेश"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM कार्डवर संदेश"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "निविष्ट मोड"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "रोमिंगमध्ये असताना स्‍वयं पुनर्प्राप्त"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "स्‍वयं पुनर्प्राप्त"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "आता पाठवा"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "नाही"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "संदेश तयार करण्यासाठी निविष्ट मोड निवडा."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "काहीही नाही."
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "आपल्या SIM कार्डवर संग्रहित संदेश व्यवस्थापित करा."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "आपला संदेश रद्द केला जाईल. कोणतेही प्राप्‍तकर्ते निवडले गेले नाहीत."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "शेड्यूल्ड संदेश पाठवण्यास अक्षम. दुसरी वेळ सेट करा."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "कॉल दरम्यान चालू करण्यास अक्षम."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "फाइल संलग्न करण्यात अक्षम. फाइल आकार बराच मोठा. ईमेल, ब्लुटूथ, Wi-Fi, इत्यादीने पाठवण्याचा प्रयत्न करा."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "हा मल्टिमिडिया संदेश पाठवण्यासाठी, उपकरण भिन्न मोबाईल नेटवर्कशी कनेक्ट करेल. हे आपल्या वर्तमान मोबाईल नेटवर्कमधून आपले उपकरण डिस्कनेक्ट करेल."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "हा मल्टिमिडिया संदेश डाउनलोड करण्यासाठी, उपकरण भिन्न मोबाईल नेटवर्कशी कनेक्ट होईल. हे आपले उपकरण वर्तमान मोबाईल नेटवर्कमधून डिस्कनेक्ट करेल."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "हा संदेश पुन्‍हा पाठविला जाईल."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d संदेश हटवले जातील."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d संभाषणे हटवण्‍यात येतील."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "यादीत टेम्पलेट्स नाही."
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "फक्‍त इनकमिंग संदेश"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "आउटगोइंग संदेशातील मूळ मजकूर सामील करा."
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "कालावधी %d सेकंदां पेक्षा कमी असायला हवा."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "काढून टाकले."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 संदेश हटवला जाईल."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 संभाषण हटवले जाईल."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "तपशील पहा"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "संपर्क तपशील पहा"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "स्‍लाइडशो म्‍हणून पाहा"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "व्हिडिओ"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "संपर्क अद्ययावत करा"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "यूनिकोड"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "मजकूर"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "फोटो काढा"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "शोधा"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "संलग्नके जतन करा"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "पुन्‍हा पाठवा"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "उत्तर द्या"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "अवरोध यादीमधून काढून टाका"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "व्हिडिओ रेकॉर्ड करा"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "ऑडिओ फाइल रेकॉर्ड करा"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "जलद प्रतिसाद"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "काहीही नाही"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "आवाज कॉल करा"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "प्रतिमा"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM अक्षर"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "उपकरण मेमरीमध्ये निर्यात करा"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "संपादित करा"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "संदेश हटवा"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "संभाषण हटवा"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "काढून टाका"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "डिफॉल्ट"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "संपर्क तयार करा"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM कार्डमध्ये कॉपी करा"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "उपकरणावर कॉपी करा"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "मजकूर कॉपी करा."
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "कॉपी करा"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "बॅक अप"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "स्वयंचलित"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "ऑडिओ फाइल्स"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "अटॅचमेंट्स"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "संपर्कांमध्‍ये जोडा"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "अवरोध यादीवर जोडा"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "प्राप्‍तकर्ते जोडा"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "शोधा"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "कोणतेही परिणाम आढळले नाही"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "कोणतेही त्वरित प्रतिसाद नाहीत"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "कोणतेही वाक्‍यांश अवरोधित केले नाहीत"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM कार्डवर कोणतेही संदेश नाहीत"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "कोणतेही संदेश नाहीत"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "कोणतेही अवरोधित क्रमांक नाहीत"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "कंपन"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "अज्ञात नंबर"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "मजकूर संदेश केंद्र क्रमांक"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "सर्व निवडा"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "चेतावन्या"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "भाषांतर करा"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "मजकूर संदेश"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "मोबाईल नेटवर्क स्विच करा"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS केंद्र"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "प्राप्तकर्ता निवडा"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d निवडलेले"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM कार्डवर संदेश"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "संदेश"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "निविष्ट मोड"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "फाइल आकार खूपच मोठा आहे"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "संदेश पाठविण्यात अयशस्वी"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "संदेश रद्द करा"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "हटवा"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "तयार करा"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "लक्ष द्या"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "सामग्री जोडा"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "स्विच"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "जतन करा"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "पुन्हा पाठवा"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "काढून टाका"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ठीक"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "डाउनलोड"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "टाकून द्या"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "हटवा"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "रद्द करा"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "रद्द करा"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "संपर्क"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "आपण अवाज आणि शॉट फाइल निवडली आहे. ध्‍वनी डेटा MMS साठी समर्थन करत नसल्‍यामुळे केवळ चित्र संलग्‍न केले जाईल."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "होय"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "पाठविण्‍यासाठी प्रतीक्षा करत आहे..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "हा संदश पाठवण्‍यामध्‍ये अक्षम. आपले SIM कार्ड समाविष्ट करा आणि पुन्हा प्रयत्न करा."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "प्रकार:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "प्रतिबंधित मीडिया प्रकार वापरण्‍यास, आपली MMS निर्माण मोड ससेटिंग बदला."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "पाठवलेली वेळ:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "प्राप्‍त केलेली वेळ:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "टिक बॉक्स"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "स्थिती:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "पाठवले"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "पाठवत आहे..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "पाठवणे अयशस्वी झाले"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "सेकंद"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "रोमिंगमध्ये असताना संदेश स्वयंचलितपणे पुनर्प्राप्‍त करा."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "संदेश स्वयंचलितपणे पुनर्प्राप्‍त करा."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "वृत्तांत वाचा: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "अन्‍य व्‍यक्ति"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "संदेश"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "मेमो"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "अयशस्‍वी झाले"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "मजकूर प्रविष्‍ट करा."
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "प्रारूप"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "वितरण वृत्‍तांत: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB संदेश"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "दिनदर्शिका"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "आपण संदेश पाठविल्‍यानंतर किंवा प्राप्‍त केल्‍यानंतर, ते इथे दर्शवले जातील."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "आपण त्‍वरित प्रतिसाद तयार केल्यानंतर, ते येथे दर्शवले जातील."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "आपण SIM कार्डवर संदेश कॉपी केल्‍यानंतर, ते येथे दर्शवले जातील."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "आपण वाक्यांश जोडल्यानंतर, ते येथे दर्शवले जातील."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "आपण संदेश अवरोध यादीवर क्रमांक जोडल्यानंतर, ते येथे दर्शवले जातील."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "हटवा"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "लोड होत आहे..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "अधिसूचना"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "मी"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "पाठवा"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "पाठवा"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "पाठवा"
+
diff --git a/main/po/ms.po b/main/po/ms.po
new file mode 100644 (file)
index 0000000..3e8b2ea
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Rumah"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Perayauan data dinyahaktifkan. Aktifkan data perayauan dan cuba lagi."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Mesej baru"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "BATAL"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "SELESAI"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Tidak diketahui"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mudah alih"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Data mudah alih dinyahaktifkan. Aktifkan data mudah alih dan cuba lagi."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "HANTAR"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Jenis media tidak disokongkan."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Tidak boleh menghantar mesej semasa dalam mod Penerbangan. Nyahaktifkan mod Penerbangan dan cuba lagi."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Tdk dpt memajukan.\nFail berkunci"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Tiada ruang yang mencukupi dalam storan peranti anda. Pergi ke Aturan > Kuasa dan storan > Storan, kemudian padamkan sesetengah fail dan cuba lagi."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Teks di atas"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Teks di bawah"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Pilih reka letak"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Tidak boleh menambah kandungan."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Mesej dijadualkan untuk dihantar kepada %s. Hantar sekarang?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Saiz maksimum mesej dicapai."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Kuasa bateri rendah."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Tempoh mesti sekurang-kurangnya %d saat."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Nyahaktif mod Penerbangan…"
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Disalin ke kad SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Dibatalkan."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Guna maklumt knln lain"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Hantar melalui"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Imej"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-mel"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Ganti"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Lihat"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Keluarkan"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Main"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Kpd"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Batal mesej"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Senarai penerima"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Pratonton"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Tempoh untuk slaid %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Tunggu semasa item ditambah ke paparan slaid."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Tidak boleh menghantar mesej."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Pilih nada dering"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Laporan baca akan dihantar."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Tidak diminta"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Bilangan maksimum penerima (%d) dicapai."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Masukkan subjek."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Penerima dipenduakan."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "K'mukakn"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Tdk dpt simpan."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Tidak boleh mencari lokasi."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Tidak dpt dipadamkan."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Tidak boleh salin."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Beberapa aksara mungkin hilang. Teruskan?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM tidak disisipkan."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Menyimpan gagal."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Disimpan dalam Fail Saya."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Mendapatkan semula mesej gagal"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Jenis kandungan dilarang. Lampir?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Memulih…"
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Ditolak."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Laporan baca"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Tiada nombor"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Tiada lampiran"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Mesej baru"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Mesej disalin dari kad SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Bilangan maksimum penerima ialah %d. Beberapa penerima mungkin hilang."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Bilangan maksimum lampiran (%s) telah dilangkaui."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Bilangan maksimum aksara dicapai."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Sedang berjalan..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Mengawali…"
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Jika anda tidak mahu mengganti fail, namakannya semula."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Mesej ini merangkumi fail lampiran yang tidak ditunjukkan."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Mesej ini termasuk fail lampiran yang tidak ditunjukkan."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Nama fail telah wujud."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Memadam…"
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Disalin ke papan klip."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Menukar kepada mesej teks..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Menukar kepada mesej multimedia..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Sekat %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Anda akan ke dalam talian (%s). Teruskan?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Mesej teks"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Subjek:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Kirim melalui e-mel"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Pengirim"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Pilih"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Simpan lampiran"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Simpan"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Keluarkan"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Pasang"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Majukan"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Sunting mesej"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Padam?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Padam mesej"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Pilih mesej"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Simpan semua"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Butiran mesej"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Tamat tempoh: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Carian lanjutan"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Simpan smua lampiran"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Tidak diketahui"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Kepada:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Mesej teks"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Memori SIM penuh. Padam beberapa item."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Aturan"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Dihantar:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Diminta."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Penerima"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Diterima:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Diterima."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Laporan baca"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Mesej tolakan"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d mesej"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d perbualan"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Lain"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Tiada subjek"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Tiada nama"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Pemberitahuan mesej multimedia"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Mesej multimedia"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Baca"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Mesej ditolak."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Saiz mesej"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Pilihan mesej"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Mesej diserahkan"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Mesej"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Saya"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Melebihi bilangan maksimum lampiran (%1$s). Hanya %2$s yang pertama akan ditambah."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Penerima tidak sah."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Daripada"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Daripada:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Telah tamat tempoh"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Penghantaran gagal."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Laporan penghantaran"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Mesej CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Salin teks"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Mesej CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Semua"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 perbualan"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Meminta laporan baca untuk setiap mesej yang anda hantar."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Meminta laporan penghantaran untuk setiap mesej yang anda hantar."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Butang radio"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Butang hidup/mati"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Senarai boleh kembang"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Dapatkan semula mesej MMS secara automatik."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Tidak dapat pratonton fail. Jenis fail tidak disokong."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Tidak dapat menambah beberapa penerima. Nombor tidak sah."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Tidak dapat menambah penerima. Nombor tidak sah."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Tidak dapat menambah penerima. Nombor tidak sah."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Tidak dapat menambah lampiran. Bilangan maksimum lampiran (%d) dicapai."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Nombor ini tidak sah."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Mesej yang dipilih disalin ke peranti mudah alih."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d mesej dialih ke senarai mesej."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Nombor dialih keluar dari senarai sekat mesej."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Nombor ditambah pada senarai sekat mesej."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Mesej disalin ke kad SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Melebihi bilangan maksimum aksara."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Saiz mesej (%s) melebihi maksimum. Mengubah saiz lampiran..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Aksara tidak dimasukkan"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Tambah penerima."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 mesej dialih ke senarai mesej."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Mesej teks"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Bunyi"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Mesej multimedia"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Mesej pada kad SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Mod input"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Dptkn smla auto ketika pryauan"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Dapatkan semula automatik"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Htr skg"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Tidak"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Pilih mod input untuk mengarang mesej."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Tiada"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Uruskan mesej yang disimpan pada kad SIM anda."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Mesej anda akan dibuang. Tiada penerima yang dipilih."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Tidak dapat menghantar mesej berjadual. Tetapkan masa yang lain."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Tdk dpt memainkan semasa panggilan."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Tidak dapat lampirkan fail. Saiz fail terlalu besar. Cuba menghantar melalui E-mel, Bluetooth, Wi-Fi, dll."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Untuk menghantar mesej multimedia, peranti akan bersambung ke rangkaian mudah alih yang berlainan. Ini akan menyahsambung peranti anda dari rangkaian mudah alih semasa."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Untuk memuat turun mesej multimedia ini, peranti akan bersambung ke rangkaian mudah alih yang berlainan. Ini akan menyahsambung peranti anda dari rangkaian mudah alih semasa anda."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Mesej ini akan dihantar semula."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d mesej akan dipadam."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d perbualan akan dipadam."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Tiada templat dalam senarai"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Mesej masuk sahaja"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Sertakan teks asal dalam mesej keluar"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Tempoh mestilah lebih pendek daripada %d saat."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Sudah dipadamkan."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 mesej akan dipadam."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 perbualan akan dipadam."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Lihat butiran"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Lihat butiran kenalan"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Lihat sbg persembahan slaid"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Kemas kini kenalan"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unikod"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Teks"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Ambil gambar"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Aturan"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Cari"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Simpan lampiran"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Hantar semula"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Balas"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Alih keluar drp senarai sekat"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Rakam video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Rakam fail audio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Sambutan pantas"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Tiada"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Buat panggilan suara"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Imej"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Abjad GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Export ke memori peranti"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Sunting"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Padam mesej"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Padam perbualan"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Padam"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Lalai"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Cipta kenalan"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Salin ke kad SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Salin ke peranti"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Salin teks"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Salin"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Sandarkan"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatik"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Fail audio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Lampiran"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Tambah ke Kenalan"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Tambah pada senarai sekat"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Tambah penerima"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Cari"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Tiada kptsn ditemui"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Tiada sambutan cepat"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Tiada ungkapan disekat"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Tiada mesej pada kad SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Tiada mesej"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Tiada nombor disekat"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Getaran"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Nombor tidak diketahui"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Nombor pusat mesej teks"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Pilih semua"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Peringatan"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Terjemahkan"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Mesej teks"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Tkr rngkaian mdh alih"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Pusat SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Aturan"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Pilih penerima"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d dipilih"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Mesej pada kad SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Mesej"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Mod input"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Saiz fail terlalu besar"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Gagal menghantar mesej"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Buang mesej"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Padam"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Cipta"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Perhatian"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Tambah kandungan"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Tukar"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Simpan"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Hantar semula"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Alih keluar"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Muat turun"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Buang"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Padam"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Batal"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Batal"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kenalan"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Anda telah memilih fail bunyi & tangkapan. Data bunyi tidak disokong untuk MMS maka hanya gambar yang akan dilampirkan."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Ya"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Menunggu untuk menghantar..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Tidak dapat menghantar mesej ini. Masukkan kad SIM anda dan cuba lagi."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Jenis:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Untuk menggunakan jenis media terhad, ubah aturan mod penciptaan MMS anda."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Masa dihantar:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Masa diterima:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Kotak tanda"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Dihantar"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Hantar..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Penghantaran gagal"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "saat"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Dapatkan semula mesej secara automatik ketika perayauan."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Dapatkan semula mesej secara automatik."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Laporan baca: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Individu lain"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Mesej"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Gagal"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Masukkan teks"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Draf"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Laporan penghantaran: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Mesej CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalendar"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Selepas anda menghantar atau menerima mesej, ia akan ditunjukkan di sini."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Selepas anda mencipta sambutan cepat, ia akan ditunjukkan di sini."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Selepas anda menyalin mesej ke kad SIM, ia akan ditunjukkan di sini."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Selepas anda menambah ungkapan, ia akan ditunjukkan di sini."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Selepas anda menambah nombor pada senarai sekat mesej, ia akan ditunjukkan di sini."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "PADAM"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Memuat…"
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Pemberitahuan"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Saya"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Hantar"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Hantr"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "HNTR"
+
diff --git a/main/po/my.po b/main/po/my.po
new file mode 100644 (file)
index 0000000..dfec092
--- /dev/null
@@ -0,0 +1,2247 @@
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "အခ်က္အလက္ျဖည့္သြင္းေနပါသည္…"
+
+msgid "IDS_COM_BODY_TEXT_FIELD_T_TTS"
+msgstr "Text field"
+
+msgid "IDS_COM_BODY_UNSUPPORTED_FORMAT"
+msgstr "လက္မခံႏုိင္ေသာ ဖြဲ႔စည္းစီစဥ္မႈ္။"
+
+msgid "IDS_MSGC_BODY_CB_ACTIVATION"
+msgstr "CB အသက္သြင္းျခင္း"
+
+msgid "IDS_MSGC_BODY_CELL_BROADCAST_HCB_SETTINGS"
+msgstr "ဆဲလ္ ထုတ္လႊင့္မႈ (CB) ဆက္တင္မ်ား"
+
+msgid "IDS_MSGC_BODY_DELETE_OLD_MESSAGES_WHEN_MAXIMUM_NUMBER_OF_MESSAGES_REACHED"
+msgstr "မက္ေဆ့ခ်္ အေရအတြက္ အမ်ားဆံုးသို႔ ေရာက္သည့္အခါ မက္ေဆ့ခ်္ အေစာင္းမ်ားဖ်က္ပစ္ပါ။"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "အေၾကာင္းအရာ ႐ုိက္သြင္းပါ"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "ဖတ္ၿပီးေၾကာင္း အစီရင္ခံစာကို ေပးပို႔မည္ ျဖစ္ပါသည္။"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "ဖုန္းေခၚသံေရြးခ်ယ္ပါ"
+
+msgid "IDS_MSGC_BODY_SPANISH"
+msgstr "စပိန္စကား"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "အရာမ်ားကို ဆလိုက္ရႈိးသို႔ ထပ္ထည့္ေနစဥ္ ေစာင့္ဆုိင္းပါ။"
+
+msgid "IDS_MSGC_BUTTON2_INSERT_SMILEY"
+msgstr "အျပံဳး ထည့္ပါ"
+
+msgid "IDS_MSGC_BUTTON_SCHEDULED"
+msgstr "အစီစဥ္တက်လုပ္သည္"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Duration for slide %d/%d"
+
+msgid "IDS_MSGC_HEADER_INSERT_EMOTICON"
+msgstr "အီမုိကြန္းထည့္ပါ"
+
+msgid "IDS_MSGC_HEADER_TEXTTEMPLATES"
+msgstr "စာသား ပုံစံမ်ား"
+
+msgid "IDS_MSGC_OPT_ATTACHMENTS"
+msgstr "ပူးတြဲပုိ႔လုိသည္မ်ား"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "မက္ေဆ့ခ်္ကို ပယ္ဖ်က္ပါ"
+
+msgid "IDS_MSGC_OPT_DELETE_OLD_MESSAGES"
+msgstr "မက္ေဆ့ခ်္အေဟာင္းမ်ားကို ဖ်က္ပစ္ပါ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "ဖြင့္ပါ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "ဖယ္ထုတ္ပါ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "ျမင္ကြင္း"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "အစားထုိးပါ"
+
+msgid "IDS_MSGC_OPT_PD_MESSAGES_PER_CONVERSATION"
+msgstr "စကားေျပာဆိုမႈတစ္ခုရွိ %d မက္ေဆ့ခ်္မ်ား။"
+
+msgid "IDS_MSGC_OPT_PREVIEW_MESSAGE"
+msgstr "မက္ေဆ့ခ်္ ၾကိဳတင္ၾကည့္ပါ"
+
+msgid "IDS_MSGC_OPT_S_PLANNER"
+msgstr "S Planner"
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM ကတ္ သို႔ ကူးထားသည္။"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "ေဒတာ လွည့္လည္ျခင္း ပိတ္ထားသည္။ ေဒတာ လွည့္လည္ျခင္း ဖြင့္ၿပီး ျပန္ၾကိဳးစားပါ။"
+
+msgid "IDS_MSGC_POP_DETECTING_CURRENT_LOCATION_ING"
+msgstr "လက္ရွိ တည္ေနရာကို ရွာေဖြျခင္း…"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "ပ်ံသန္းမႈအေနအထားကိုမရေအာင္လုပ္ထားသည္။"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Duration must be at least %d seconds."
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "အမ်ားဆံုးရွိႏိုင္သည့္ မက္ေဆ့ခ်္အရြယ္အစားသို႔ ေရာက္ရွိၿပီ ျဖစ္က ပါသည္။"
+
+msgid "IDS_MSGC_POP_MESSAGESENT"
+msgstr "မက္ေဆ့ခ်္ ပို႔ၿပီးၿပီီ။"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "%s သို႔ မက္ေဆ့ခ်္ ပို႔ရန္ စီစဥ္ထားသည္။ ယခုပို႔မည္လား?"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "မိုဘိုင္းေဒတာ အလုပ္မလုပ္ေစပါ။ မိုဘိုင္းေဒတာကို အလုပ္လုပ္ေစျပီး ထပ္ၾကိဳးစားပါ။"
+
+msgid "IDS_MSGC_POP_NOT_ENOUGH_MEMORY"
+msgstr "မွတ္ဥာဏ္လုံေလာက္ေအာင္ မရွိပါ"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "အဆင္အျပင္ေရြးခ်ယ္ပါ"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "ေအာက္ေျခရွိစာသား"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "ထိပ္ရွိစာသား"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "ပ်ံသန္း အေနအထားတြင္ မက္ေဆ့ခ်္မ်ား ပို႔မရပါ။ ပ်ံသန္း အေနအထား ပိတ္ၿပီး ျပန္ၾကိဳးစားပါ။"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "အေထာက္အပ့ံမေပးေသာ မီဒီယာအမ်ဳိးအစား္။"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "စကားေျပာဆိုျခင္း ၁"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "မက္ေဆ့ခ်္ ၁ ခု"
+
+msgid "IDS_MSGF_BODY_BACKGROUND"
+msgstr "ေနာက္ခံ"
+
+msgid "IDS_MSGF_BODY_BACKGROUND_PD"
+msgstr "ေနာက္ခံ %d"
+
+msgid "IDS_MSGF_BODY_BACKGROUND_STYLE"
+msgstr "ေနာက္ခံစတိုင္"
+
+msgid "IDS_MSGF_BODY_BUBBLE_STYLE"
+msgstr "ပူေဖါင္း စတိုင္"
+
+msgid "IDS_MSGF_BODY_CHANGE_TEXT_SIZE_USING_THE_VOLUME_KEY"
+msgstr "အသံအတိုးအက်ယ္ ခလုတ္ သံုး၍ စာသားဆိုက္ ျပင္ပါ။"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "စာသား ကူးပါ"
+
+msgid "IDS_MSGF_BODY_DELETE_THIS_PROTECTED_MESSAGE_Q"
+msgstr "ဤ ကာကြယ္ထားသည့္ မက္ေဆ့ခ်္ကို ဖ်က္လိုပါသလား?"
+
+msgid "IDS_MSGF_BODY_ENABLE_SPLIT_VIEW_ON_LANDSCAPE_SCREEN_ABB"
+msgstr "လဲလ်က္ ဖန္သားျပင္ေပၚတြင္ ခြဲထြက္ ျမင္ကြင္း ရေအာင္လုပ္ပါ။"
+
+msgid "IDS_MSGF_BODY_EVERY_10_MINUTES"
+msgstr "၁၀ မိနစ္တုိင္း"
+
+msgid "IDS_MSGF_BODY_EVERY_2_MINUTES"
+msgstr "၂ မိနစ္တုိင္း"
+
+msgid "IDS_MSGF_BODY_EVERY_5_MINUTES"
+msgstr "၅ မိနစ္တုိင္း"
+
+msgid "IDS_MSGF_BODY_EXPIRY_DATE"
+msgstr "ေနာက္ဆုံးသုံးရမည့္ေန႔စြဲ"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "မွ :"
+
+msgid "IDS_MSGF_BODY_GENERAL_SETTINGS"
+msgstr "အေထြေထြ သတ္မွတ္ခ်က္မ်ား"
+
+msgid "IDS_MSGF_BODY_HELLO"
+msgstr "ဟဲလို"
+
+msgid "IDS_MSGF_BODY_HI"
+msgstr "ဟိုင္း"
+
+msgid "IDS_MSGF_BODY_IMAGE"
+msgstr "႐ုပ္ပုံ"
+
+msgid "IDS_MSGF_BODY_INBOX_LOCKED_MESSAGES"
+msgstr "ေသာ့ခတ္ထားေသာ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "ပူးတြဲမႈ အမ်ားဆံုး အေရအတြက္ (%1$s) ထက္ ေက်ာ္သြားပါၿပီ။ ပထမဆံုး %2$s သာ ထည့္မည္။"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "ကြ်ႏု္ပ္"
+
+msgid "IDS_MSGF_BODY_MESSAGE_HAS_EXPIRED"
+msgstr "မက္ေဆ့ခ်္သက္တမ္းကုန္သြားၿပီျဖစ္ပါသည္။"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "မက္ေဆ့ခ်္အတြက္ ေရြးခ်ယ္ႏုိင္သည့္မ်ား"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "သတင္းစကားပယ္ခ်ၿပီး။"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "ဖတ္ပါ"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_LIMIT"
+msgstr "မာလ္တီမီဒီယာ မက္ေဆ့ခ်္ကန္႔သတ္ခ်က္"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "မာတီမီဒီယာမက္ေဆ့ခ်္သတိေပးခ်က္မ်ား"
+
+msgid "IDS_MSGF_BODY_NEW_VOICEMAIL"
+msgstr "အသံေမးလ္ အသစ္"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d စကားအျပန္အလွန္ေျပာဆိုမႈမ်ား"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "မက္ေဆ့ခ်္ %d"
+
+msgid "IDS_MSGF_BODY_PUSH_SETUP_PROMPT"
+msgstr "ခ်က္ခ်င္း"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "လက္ခံရရွိျပီး :"
+
+msgid "IDS_MSGF_BODY_RECEIVE_PUSH_MESSAGES_FROM_NETWORK_ABB"
+msgstr "တိုက္တြန္းေသာမက္ေဆ့ခ်္မ်ားကို ကြန္ယက္မွ လက္ခံရယူပါ။"
+
+msgid "IDS_MSGF_BODY_SCHEDULED_MESSAGES"
+msgstr "စီစဥ္ထားေသာ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "ပို႔ျပီး:"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM မယ္မိုရီျပည့္ျပီ။ အခ်ိဳ႕အရာတို႔ကိုဖ်က္ပါ။"
+
+msgid "IDS_MSGF_BODY_SOME_RECIPIENTS_HAVE_AN_INVALID_NUMBER_INVALID_RECIPIENTS_NOT_ADDED_N_INVALID_RECIPIENTS_C_PS"
+msgstr "လက္ခံရရွိသူ အခ်ဳိ႕တုိ႔၏ နံပါတ္ မမွန္။ မမွန္သည့္ လက္ခံရရွိသူမ်ားကုိ ထည့္မထား။  မမွန္သည့္ လက္ခံရရွိသူမ်ား: %s"
+
+msgid "IDS_MSGF_BODY_SPAM_SETTINGS"
+msgstr "ေၾကာ္ျငာ သတ္မွတ္ခ်က္မ်ား"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGE_LIMIT"
+msgstr "စာသားမက္ေဆ့ခ်္ ကန္႔သတ္ခ်က္"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "သုိ႔"
+
+msgid "IDS_MSGF_BODY_VOICEMAIL"
+msgstr "အသံေမးလ္"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "ပူးတြဲ အားလံုး သိမ္းဆည္းပါ"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "အဆင့္ျမင့္ ရွာျခင္း"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "သက္တမ္းကုန္မည့္ရက္: %s"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "မက္ေဆ့ခ်္အေသးစိတ္"
+
+msgid "IDS_MSGF_HEADER_NUMBER"
+msgstr "နံပါတ္"
+
+msgid "IDS_MSGF_HEADER_PAGE"
+msgstr "စာမ်က္ႏွာ"
+
+msgid "IDS_MSGF_HEADER_PUSH_MESSAGE_SETTINGS_ABB"
+msgstr "တိုက္တြန္းေသာမက္ေဆ့ခ်္ သတ္မွတ္ခ်က္မ်ား"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "မက္ေဆ့ခ်္မ်ား ​​ေရြးပါ"
+
+msgid "IDS_MSGF_HEADER_SELECT_THREADS"
+msgstr "သရတ္ဒ္မ်ား ေရြးပါ"
+
+msgid "IDS_MSGF_MBODY_SPLIT_VIEW"
+msgstr "ခြဲထား ရႈခင္း"
+
+msgid "IDS_MSGF_OPT_1DAY"
+msgstr "1 ရက္"
+
+msgid "IDS_MSGF_OPT_2DAYS"
+msgstr "၂ ရက္"
+
+msgid "IDS_MSGF_OPT_3DAY"
+msgstr "၃ ရက္"
+
+msgid "IDS_MSGF_OPT_ADDTOBOOKMARK"
+msgstr "စာညွပ္မ်ားသုိ႔ ထည့္ပါ"
+
+msgid "IDS_MSGF_OPT_BLOCK"
+msgstr "ပိတ္ဆုိ႔ပါ"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "မက္ေဆ့ခ်္မ်ား ဖ်က္ပစ္ပါ။"
+
+msgid "IDS_MSGF_OPT_DELETE_THREAD"
+msgstr "အမွ်င္ ဖ်က္ပစ္ပါ။"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "မက္ေဆ့ခ်္ တည္းျဖတ္ပါ"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "လက္ဆင့္ကမ္းေပးပုိ႔ပါ"
+
+msgid "IDS_MSGF_OPT_GOTOURL"
+msgstr "URL ဖြင့္ပါ"
+
+msgid "IDS_MSGF_OPT_LOCK"
+msgstr "ေသာ့"
+
+msgid "IDS_MSGF_OPT_LOCK_M_PROTECTION"
+msgstr "ေသာ့"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "ပူးတြဲပါမ်ားကုိ သိမ္းဆည္းပါ"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "ေပးပုိ႔သူ"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "ဘာသာရပ္"
+
+msgid "IDS_MSGF_POP_BLOCKNUMBERDUPLICATED"
+msgstr "ပံုတူလုပ္ထားျခင္း"
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s ပိတ္ပင္မည္လား?"
+
+msgid "IDS_MSGF_POP_CANCELLING_ING"
+msgstr "ပယ္ဖ်က္ေနပါသည္....."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "မာလ္တီမီဒီယာမက္ေဆ့ခ်္အျဖစ္သို႔ ေျပာင္းေနပါသည္"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "စာသားမက္ေဆ့ခ်္အျဖစ္သို႔ ေျပာင္းေနပါသည္"
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "ကလစ္ဘုတ္သို႔ မိတၱဴကူးၿပီးၿပီ"
+
+msgid "IDS_MSGF_POP_DELETE_PROTECTED_MESSAGE_Q"
+msgstr "ကာကြယ္ထားေသာ မက္ေဆ့ခ်္ ဖ်က္မည္လား?"
+
+msgid "IDS_MSGF_POP_DIAL_PS"
+msgstr "ေခၚရန္ %s"
+
+msgid "IDS_MSGF_POP_FDN_ENABLED_CANT_SEND_MSG"
+msgstr "Unable to send the message while Fixed dialling mode is enabled."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "If you don't want to replace the file, rename it."
+
+msgid "IDS_MSGF_POP_INDETERMINATE"
+msgstr "မေရရာ"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "လုပ္ေနဆဲ….."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "အမ်ားဆုံး အကၡရာအေရအတြက္သု႔ိေရာက္ပါၿပီ။"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "ပူးတြဲခ်က္ အမ်ားဆံုး အေရအတြက္ (%s) ေက်ာ္သြားပါၿပီ။"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_MESSAGES_PER_CONVERSATION_IS_PD"
+msgstr "စကားေျပာျခင္း တစ္ခုတြင္ မက္ေဆ့ခ်္မ်ား အမ်ားဆံုး အေရအတြက္မွာ %d ျဖစ္သည္။"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM ကတ္ မွ မက္ေဆ့ခ်္အား ကူးယူျပီးၿပီ။"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "မက္ေဆ့ခ်္အသစ္"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "မက္ေဆ့ခ်္ အသစ္မ်ား"
+
+msgid "IDS_MSGF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "မွတ္ဥာဏ္လံုေလာက္ေအာင္ မရွိပါ။ အခ်ိဳ႕အရာမ်ားကိုဖ်က္ပါ"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "ပူးတြဲပုိ႔လုိသည္မ်ား မရွိပါ"
+
+msgid "IDS_MSGF_POP_PROTECTION_REMOVED"
+msgstr "အကာအကွယ်အား ဖယ်ရားပြီးဖြစ်သည်။"
+
+msgid "IDS_MSGF_POP_PS_UNBLOCKED"
+msgstr "%s မပိတ္ဆို႕ေတာ့ပါ။"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "အစီရင္ခံစာ ဖတ္ပါ"
+
+msgid "IDS_MSGF_POP_REMOVING_ING"
+msgstr "ဖယ္ေနပါသည္..."
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "ျပန္ေဖၚထုတ္ေန…."
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "ကန္႔သတ္ထားေသာ အေၾကာင္းအရာ အမ်ိဳးအစား။ မည္သို႔ဆိုေစ ပူးတြဲမည္လား?"
+
+msgid "IDS_MSGF_POP_SENDING_MESSAGE_FAILED"
+msgstr "မက္ေဆ့ ပို႔ျခင္း မေအာင္ျမင္ပါ္။"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "အခ်ဳိ႕ေသာ အကၡရာမ်ား ဆံုးရံႈးသြားႏိုင္သည္။ ဆက္လက္လုပ္ေဆာင္လုိပါသလား?"
+
+msgid "IDS_MSGF_POP_TIME_AND_DATE"
+msgstr "အခ်ိန္ ႏွင့္ ေန႔စြဲ"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "ကူးယူ၍ မရပါ။"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "တည္ေနရာ ရွာ၍မရပါ။"
+
+msgid "IDS_MSGF_SK_RESTORE"
+msgstr "ျပန္ေဖၚ"
+
+msgid "IDS_MSGS_BODY_ALLOWS_YOU_TO_RECEIVE_CB_MESSAGES"
+msgstr "သင့္အား CB မက္ေဆ့ခ်္မ်ား လက္ခံခြင့္ျပဳပါမည္။"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS မက္ေဆ့ခ်္မ်ား အလိုအေလ်ာက္ ျပန္ရယူပါ။"
+
+msgid "IDS_MSGS_BODY_BUBBLE_PD"
+msgstr "ပူေဖာင္း %d ခု"
+
+msgid "IDS_MSGS_BODY_DOUBLE_TAP_TO_CLOSE_THE_LIST_T_TTS"
+msgstr "စာရင္း ပိတ္ရန္ ႏွစ္ခ်က္ ႏွိပ္ပါ။"
+
+msgid "IDS_MSGS_BODY_DOUBLE_TAP_TO_OPEN_THE_LIST_T_TTS"
+msgstr "စာရင္း ဖြင့္ရန္ ႏွစ္ခ်က္ ႏွိပ္ပါ။"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "တိုးခ်ဲ႕ႏိုင္ေသာ စာရင္း"
+
+msgid "IDS_MSGS_BODY_MINIMUM_NUMBER_OF_MESSAGES_PER_CONVERSATION_IS_PD"
+msgstr "စကားေျပာဆိုျခင္း တစ္ခုအတြက္ အနည္းဆံုး မက္ေဆ့ခ်္ အေရအတြက္သည္ %d ခု ျဖစ္သည္။"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ဖြင့္/ပိတ္ ခလုတ္"
+
+msgid "IDS_MSGS_BODY_PLAYS_SOUNDS_AND_SHOWS_AN_ICON_ON_THE_STATUS_BAR_WHEN_YOU_RECEIVE_MESSAGES"
+msgstr "မက္ေဆ့ခ်္မ်ား လက္ခံရသည့္အခါ အသံမ်ား ဖြင့္ၿပီး အေျခအေနဘားေပးတြင္ သေကၤတတစ္ခု ျပသည္။"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "သင္ပို႔ေသာ မက္ေဆ့ခ်္တိုင္းအတြက္ သယ္ပို႔မႈ အစီရင္ခံစာတစ္ေစာင္ ေတာင္းဆိုပါ။"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "သင္ပို႔ေသာ မက္ေဆ့ခ်္တိုင္းအတြက္ ဖတ္ၿပီး အစီရင္ခံစာတစ္ေစာင္ ေတာင္းဆိုပါ။"
+
+msgid "IDS_MSGS_BODY_SELECT_AN_MMS_CREATION_MODE_FOR_CREATING_YOUR_MESSAGES"
+msgstr "သင့္မက္ေဆ့ခ်္မ်ား ဖန္တီးျခင္းအတြက္ MMS ဖန္တီးျခင္း အေနအထား ေရြးပါ။"
+
+msgid "IDS_MSGS_BODY_SHOW_A_PREVIEW_OF_RECEIVED_MESSAGES_ON_THE_STATUS_BAR"
+msgstr "အေျခအေနျပဘား တြင္ လက္ခံရရွိသည့္ မက္ေဆ့ခ်္မ်ားအား ႀကိဳတင္ျပပါ။"
+
+msgid "IDS_MSGS_BODY_SIGNATURE_SETTINGS"
+msgstr "ဆာတီဖီကိတ္ ဆက္တင္မ်ား"
+
+msgid "IDS_MSGS_BODY_TAKE_A_PICTURE"
+msgstr "ဓါတ္ပံုတစ္ပံု ရုိက္ပါ။"
+
+msgid "IDS_MSGS_MBODY_DISPLAY"
+msgstr "ျပသမႈ"
+
+msgid "IDS_MSGS_MBODY_MMS_ALERT"
+msgstr "MMS သတိေပးခ်က္"
+
+msgid "IDS_MSGS_POP_NUMBER_WILL_BE_DELETED"
+msgstr "နံပါတ္မ်ား ဖ်က္ပစ္လိမ့္မည္။"
+
+msgid "IDS_MSG_BODY_1_NEW_MESSAGE"
+msgstr "မက္ေဆ့ အသစ္ ၁ ခု"
+
+msgid "IDS_MSG_BODY_ADD_NUMBERS_THAT_WILL_BE_BLOCKED_WHEN_THEY_SEND_YOU_A_MESSAGE"
+msgstr "၎တို႔ထံမွ မက္ေဆ့ခ်္ပို႔လာလွ်င္ ပိတ္ထားရမည့္ နံပါတ္မ်ားကိုထည့္ပါ။"
+
+msgid "IDS_MSG_BODY_ADD_PHRASES_THAT_WILL_CAUSE_MESSAGES_TO_BE_BLOCKED"
+msgstr "မက္ေဆ့မ်ားပိတ္ေစမည့္ စာသားမ်ားကိုထည့္ပါ။"
+
+msgid "IDS_MSG_BODY_ADD_SIGNATURE"
+msgstr "လက္မွတ္ ထည့္ပါ"
+
+msgid "IDS_MSG_BODY_ALERT_WHEN_MODE_CHANGES_TO_MMS"
+msgstr "MMS သို႔ အေနအထား ေျပာင္းပါက အသိေပးပါ။"
+
+msgid "IDS_MSG_BODY_BLOCK_MESSAGE_FROM_UNKNOWN_SENDER"
+msgstr "အမည္မသိ ေပးပို႔သူအား ပိတ္ပင္ထားပါ။"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "သယ္ပို႔မႈ အစီရင္ခံစာ : %s"
+
+msgid "IDS_MSG_BODY_DRAFT_MESSAGE_EXISTS"
+msgstr "Draft message exists."
+
+msgid "IDS_MSG_BODY_ENABLE_EMERGENCY_MODE_JPN_DCM"
+msgstr "Enable Emergency mode"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT"
+msgstr "စာသား ႐ုိက္သြင္းပါ"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "စာသား သြင္းပါ"
+
+msgid "IDS_MSG_BODY_ENTER_VALID_PHONE_NUMBER"
+msgstr "တရားဝင္သည့္ ဖုန္းနံပါတ္ ရိုက္ထည့္ပါ။"
+
+msgid "IDS_MSG_BODY_FAILED_MESSAGES_EXIST"
+msgstr "Failed messages exist."
+
+msgid "IDS_MSG_BODY_HOWS_IT_GOING_Q_M_TEXT_TEMPLATE"
+msgstr "အေျခအေန ဘယ္လိုလဲ?"
+
+msgid "IDS_MSG_BODY_ILL_TALK_TO_YOU_SOON_M_TEXT_TEMPLATE"
+msgstr "ကၽြန္ေတာ္ မၾကာခင္ ခင္ဗ်ားႏွင့္ စကားေျပာမယ္။"
+
+msgid "IDS_MSG_BODY_IM_LATE_BUT_ILL_BE_THERE_IN_MINUTES_M_TEXT_TEMPLATE"
+msgstr "ကၽြန္ေတာ္ ေနာက္က်ေနတယ္၊ ဒါေပမဲ့၊ မိနစ္ပိုင္းအတြင္း ေရာက္ေတာ့မယ္။"
+
+msgid "IDS_MSG_BODY_LOCKED_SCHEDULED_MESSAGE_WILL_BE_CANCELLED"
+msgstr "ေသာ့ခတ္စီစဥ္ၿပီး မဲဆဲဇ္ကို ဖ်က္သြားမည္။"
+
+msgid "IDS_MSG_BODY_MAD_M_EMOTICON"
+msgstr "စိတ္ဆိုးေနပါသည္"
+
+msgid "IDS_MSG_BODY_MAKE_SOUNDS_AND_SHOW_ICON_IN_STATUS_BAR_WHEN_YOU_RECEIVE_MESSAGES"
+msgstr "သင္သည္ မဲဆဲဇ္ ရသည့္ အခါမွာ အသံေပးၿပီး အေျချပ ဘားထဲတြင္ အိုက္ကြန္ကို ျပေပးသည္။"
+
+msgid "IDS_MSG_BODY_MANAGE_MESSAGES_STORED_ON_YOUR_SD_CARD"
+msgstr "SD ကတ္ ေပၚတြင္ သိမ္းထားသည့္ မက္ေဆ့ခ်္မ်ားကို စီမံပါ။"
+
+msgid "IDS_MSG_BODY_MANAGE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "သင့္ SIM ကတ္ေပၚ သိုေလွာင္ထားေသာ မက္ေဆ့ခ်္မ်ားကို စီမံပါ။"
+
+msgid "IDS_MSG_BODY_NO_NUMBERS_BLOCKED"
+msgstr "ပိတ္ပင္ထားသည့္ နံပါတ္ မရွိပါ။"
+
+msgid "IDS_MSG_BODY_NO_PHRASES_BLOCKED"
+msgstr "ပိတ္ထားသည့္ စကားစုမ်ား မရွိပါ။"
+
+msgid "IDS_MSG_BODY_NO_UNREAD_MESSAGES"
+msgstr "မဖတ္ရေသးေသာ မက္ေဆ့ခ်္ မရွိပါ"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "အျခားလူ"
+
+msgid "IDS_MSG_BODY_PD_NEW_MESSAGES"
+msgstr "မက္ေဆ့ခ်္ အသစ္ %d"
+
+msgid "IDS_MSG_BODY_PLEASE_CALL_ME_WHEN_YOU_GET_THIS_MESSAGE_M_TEXT_TEMPLATE"
+msgstr "ဤမဲဆဲဇ္ကို ရသည့္အခါမွာ ကၽြန္ေတာ့္ကို ဖုန္းဆက္ပါ။"
+
+msgid "IDS_MSG_BODY_PLEASE_HELP_ME"
+msgstr "ေက်းဇူးျပဳ၍ ကြ်ႏ္ုပ္ကို ကူညီပါ။"
+
+msgid "IDS_MSG_BODY_POKER_FACE_M_EMOTICON"
+msgstr "ပိုကာမ်က္ႏွာ"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "အစီရင္ခံစာ ဖတ္ပါ : %s"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sec"
+
+msgid "IDS_MSG_BODY_SHOW_A_PREVIEW_OF_RECEIVED_MESSAGES_ON_THE_STATUS_BAR_AND_LOCK_SCREEN"
+msgstr "လက္ခံရရွိေသာ မက္ေဆ့ခ်္မ်ားကို အေျခအေန ဘားေပၚႏွင့္ ေသာ့ ဖန္သားျပင္ေပၚတြင္ ၾကိဳတင္အသိေပးျခင္း တစ္ခု ျပပါ။"
+
+msgid "IDS_MSG_BODY_SIGNATURE_TEXT"
+msgstr "လက္မွတ္ စာသား"
+
+msgid "IDS_MSG_BODY_SMIRK_M_EMOTICON"
+msgstr "ေလွာင္ျပံဳး"
+
+msgid "IDS_MSG_BODY_SORRY_I_MISSED_YOUR_CALL_M_TEXT_TEMPLATE"
+msgstr "ေဆာရီးပဲ၊ ခင္ဗ်ာ ဖုန္းေခၚတာ ကၽြန္ေတာ္ လြတ္သြားတယ္။"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "အေျခအေန"
+
+msgid "IDS_MSG_BODY_SUB_HEADER"
+msgstr "ေခါင္းစီးခြဲ"
+
+msgid "IDS_MSG_BODY_TAP_A_MESSAGE_TO_VIEW_THE_FULL_CONVERSATION"
+msgstr "စကားေျပာျခင္း အျပည့္ ၾကည့္ရန္ မက္ေဆ့ခ်္တစ္ခု ႏွိပ္ပါ။"
+
+msgid "IDS_MSG_BODY_TAP_A_RECENT_MESSAGE_TO_CONTINUE_THE_CONVERSATION"
+msgstr "စကားေျပာျခင္း ဆက္လုပ္ရန္ လတ္တေလာ မက္ေဆ့ခ်္တစ္ခု ႏွိပ္ပါ။"
+
+msgid "IDS_MSG_BODY_TAP_A_THUMBNAIL_IN_A_MESSAGE_TO_VIEW_THE_ATTACHED_IMAGE_IN_FULL_SCREEN_WHILE_VIEWING_THE_IMAGE_TAP_PS_TO_SAVE_IT_TO_YOUR_DEVICE"
+msgstr "ပူးတြဲခ်က္ ပံုကို အျပည့္ၾကည့္ရန္ မက္ေဆ့ခ်္ တစ္ခုထဲရွိ နမူနာျပကြက္တစ္ခု ႏွိပ္ပါ။ ပံုကို ၾကည့္ေနစဥ္ ၎ကို သင့္ကိရိယာသို႔ သိမ္းရန္ %s ႏွိပ္ပါ။"
+
+msgid "IDS_MSG_BODY_TAP_PS"
+msgstr "%s ႏွိပ္ပါ။"
+
+msgid "IDS_MSG_BODY_TAP_PS_TO_SEND_YOUR_MESSAGE"
+msgstr "သင့္မက္ေဆ့ခ်္ ပို႔ရန္ %s ႏွိပ္ပါ။"
+
+msgid "IDS_MSG_BODY_TAP_THE_TEXT_BOX_TO_WRITE_YOUR_MESSAGE"
+msgstr "သင့္မက္ေဆ့ခ်္ ေရးရန္ စာသား အကြက္ကို ႏွိပ္ပါ။"
+
+msgid "IDS_MSG_BODY_TAP_THE_TYPE_OF_CONTENT_YOU_WANT_TO_ATTACH_AND_THEN_SELECT_THE_FILES_YOU_WANT_TO_SEND"
+msgstr "သင္ ပူးတြဲလိုသည့္ ပါဝင္မႈ အမ်ဳိ္းအစားကို ႏွိပ္ၿပီးေနာက္ သင္ ပို႔လိုသည့္ ဖိုင္မ်ားကို ေရြးပါ။"
+
+msgid "IDS_MSG_BODY_THE_NUMBER_HAS_BEEN_REMOVED_FROM_SPAM_NUMBERS"
+msgstr "နံပါတ္ကိုေၾကာျငာနံပါတ္မ်ားထဲမွ ျဖဳတ္ၿပီးပါၿပီ။"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "အမွတ္ျခစ္ရန္အတြက္"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "တားျမစ္ထားေသာ မီဒီယာပံုစံမ်ားကို အသံုးျပဳရန္အတြက္ သင့္ MMS ဖန္တီးမႈအေနအထားကို ေျပာင္းပါ။"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "အမ်ဳိးအစား"
+
+msgid "IDS_MSG_BODY_UNABLE_TO_OPEN_THIS_FILE_WHILE_EMERGENCY_MODE_IS_ENABLED"
+msgstr "အေရးေပၚ အေနအထားကုိ ဖြင့္ထားစဥ္ ဤဖုိင္ကုိ မဖြင့္ႏုိင္ပါ။"
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "ဤမက္ေဆ့ခ်္ကို ပို႔၍မရပါ။ သင့္ SIM ကတ္ ထည့္ၿပီး ျပန္ၾကိဳးစားပါ။"
+
+msgid "IDS_MSG_BODY_WHATS_THE_NUMBER_Q_M_TEXT_TEMPLATE"
+msgstr "နံပါတ္ ဘယ္ေလာက္နည္း?"
+
+msgid "IDS_MSG_BODY_WHATS_UP_Q_M_TEXT_TEMPLATE"
+msgstr "ဘယ္ႏွယ္လဲ?"
+
+msgid "IDS_MSG_BODY_WHEN_CAN_WE_MEET_Q_M_TEXT_TEMPLATE"
+msgstr "ကၽြန္ေတာ္တို႔ ဘယ္ေတာ့ ေတြ႔ႏိုင္လဲ?"
+
+msgid "IDS_MSG_BODY_WHERES_THE_MEETING_Q_M_TEXT_TEMPLATE"
+msgstr "အစည္းအေဝး ဘယ္မွာလဲ?"
+
+msgid "IDS_MSG_BODY_WHERE_ARE_YOU_Q_M_TEXT_TEMPLATE"
+msgstr "ခင္ဗ်ား ဘယ္မွာလဲ?"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "sound & shot ဖိုင္တစ္ခု ေရြးထားသည္။ အသံေဒတာက MMS အတြက္ ပံ့ပိုးမထား၍ ပံုကိုသာ ပူးတြဲလိမ့္မည္။"
+
+msgid "IDS_MSG_BUTTON_ENABLE_MOTION"
+msgstr "လႈပ္ရွားမႈကို ဖြင့္ပါ"
+
+msgid "IDS_MSG_HEADER_BACKUP"
+msgstr "အရန္"
+
+msgid "IDS_MSG_HEADER_CELL_BROADCAST_MESSAGES"
+msgstr "ဆဲလ္ ထုတ္လႊင့္ျခင္း မက္ေဆ့ခ်္"
+
+msgid "IDS_MSG_HEADER_CONTINUING_CONVERSATIONS_ABB"
+msgstr "စကားေျပာမ်ားကို ဆက္ေျပာျခင္း"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "မက္ေဆ့ခ်္မ်ားကို စြန္႔ပစ္ပါ"
+
+msgid "IDS_MSG_HEADER_DISPLAY"
+msgstr "ျပ႐ုပ္"
+
+msgid "IDS_MSG_HEADER_DOCOMO_PHONEBOOK_JPN_DCM"
+msgstr "docomo phonebook"
+
+msgid "IDS_MSG_HEADER_INVALID_RECIPIENT_ABB"
+msgstr "လက္ခံသူ အက်ဳံးမဝင္ပါ"
+
+msgid "IDS_MSG_HEADER_MANAGE_SD_CARD_MESSAGES"
+msgstr "SD ကတ္ မက္ေဆ့ခ်္မ်ားကို စီမံပါ"
+
+msgid "IDS_MSG_HEADER_MORE_INFO_ABB"
+msgstr "ေနာက္ထပ္ အခ်က္အလက္"
+
+msgid "IDS_MSG_HEADER_NOTIFICATION_SOUND"
+msgstr "အေၾကာင္းၾကားစာ အသံ"
+
+msgid "IDS_MSG_HEADER_NO_NETWORK_CONNECTION"
+msgstr "ကြန္ယက္ ခ်ိတ္ဆက္မႈ မရွိပါ"
+
+msgid "IDS_MSG_HEADER_REPEAT_MESSAGE_ALERT_ABB"
+msgstr "မက္ေဆ့ခ်္ သတိေပးခ်က္ ျပန္ေက်ာ့ပါ"
+
+msgid "IDS_MSG_HEADER_RESTRICTED_MEDIA_TYPE"
+msgstr "တားျမစ္ထားေသာ မီဒီယာပံုစံမ်ား"
+
+msgid "IDS_MSG_HEADER_SELECT_NUMBERS"
+msgstr "နံပါတ္မ်ား ေရြးပါ"
+
+msgid "IDS_MSG_HEADER_SELECT_PHRASES"
+msgstr "အသံုးအႏႈန္းမ်ားကို ေရြးပါ"
+
+msgid "IDS_MSG_HEADER_SELECT_TEMPLATES"
+msgstr "ပံုစံျပားမ်ား ေရြးပါ"
+
+msgid "IDS_MSG_HEADER_SENDING_FAILED_MESSAGE_ABB"
+msgstr "မေအာင္ျမင္သည့္ မက္ေဆ့ခ်္ကို ပို႔ျခင္း"
+
+msgid "IDS_MSG_HEADER_SENDING_MESSAGE_FAILED"
+msgstr "မက္ေဆ့ခ်္ ပို႔ျခင္း မေအာင္ျမင္ပါ"
+
+msgid "IDS_MSG_HEADER_SENDING_MULTIMEDIA_MESSAGES_ABB"
+msgstr "မာလ္တီမီဒီယာ မက္ေဆ့ခ်္မ်ား ပို႔ျခင္း"
+
+msgid "IDS_MSG_HEADER_SIM_CARD_FULL"
+msgstr "SIM ကတ္ ျပည့္ေနသည္"
+
+msgid "IDS_MSG_HEADER_SOUND_N_SHOT"
+msgstr "အသံ ႏွင့္ ရိုက္ခ်က္"
+
+msgid "IDS_MSG_HEADER_STARTING_CONVERSATIONS"
+msgstr "စကားေျပာျခင္းမ်ား စတင္ျခင္း"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "ဘာသာျပန္ပါ"
+
+msgid "IDS_MSG_HEADER_VIEWING_FULL_CONVERSATIONS_ABB"
+msgstr "စကားေျပာျခင္းမ်ား အျပည့္ ၾကည့္ျခင္း"
+
+msgid "IDS_MSG_ITAB_GENERAL"
+msgstr "အေထြေထြ"
+
+msgid "IDS_MSG_ITAB_MORE"
+msgstr "ေနာက္ထပ္"
+
+msgid "IDS_MSG_ITAB_SMS_MMS"
+msgstr "SMS/MMS"
+
+msgid "IDS_MSG_MBODY_ADD_TO_SPAM_PHRASES"
+msgstr "ေၾကာ္ျငာစကားစုမ်ားသို႔ထည့္ပါ"
+
+msgid "IDS_MSG_MBODY_BLOCK_UNKNOWN_SENDERS"
+msgstr "မသိေသာ ေပးပို႔သူကို တားဆီးထားပါ"
+
+msgid "IDS_MSG_MBODY_ENGLISH_HUNITED_KINGDOM"
+msgstr "အဂၤလိပ္(ယူႏိုက္တင္ ကင္းဒမ္း)"
+
+msgid "IDS_MSG_MBODY_POP_UP_DISPLAY"
+msgstr "ေပါ့-အပ္ ျပသမႈ"
+
+msgid "IDS_MSG_MBODY_SELECT_BACKGROUND"
+msgstr "ေနာက္ခံ ေရြးခ်ယ္ပါ"
+
+msgid "IDS_MSG_NPBODY_ENTER_MESSAGE"
+msgstr "မက္ေဆ့ခ်္ ထည့္ပါ"
+
+msgid "IDS_MSG_NPBODY_ENTER_RECIPIENTS"
+msgstr "လက္ခံသူမ်ား ထည့္ပါ"
+
+msgid "IDS_MSG_OPT_0_DAYS"
+msgstr "၀ ရက္"
+
+msgid "IDS_MSG_OPT_ADD_SLIDE"
+msgstr "ဆလိုက္ ထည့္ပါ"
+
+msgid "IDS_MSG_OPT_ADD_TO_SPAM_NUMBERS"
+msgstr "မလိုအပ္ေသာ နံပါတ္မ်ားသို႔ ထည့္ပါ"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "အရန္သိမ္းပါ"
+
+msgid "IDS_MSG_OPT_CANCEL_MESSAGES"
+msgstr "မက္ေဆ့ခ်္မ်ား ပယ္ဖ်က္ပါ"
+
+msgid "IDS_MSG_OPT_COPY_MESSAGE_TEXT"
+msgstr "မက္ေဆ့ခ်္စာသား ကူးယူပါ"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "မက္ေဆ့ခ်္ ဖ်က္ပစ္ပါ"
+
+msgid "IDS_MSG_OPT_ENGLISH_HUS_ABB"
+msgstr "အဂၤလိပ္ (US)"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "ဖုန္း၏ မယ္မိုရီသို႔ တင္ပို႔ပါ"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_SD_CARD"
+msgstr "SD ကဒ္သို႔ ထုတ္ပါ"
+
+msgid "IDS_MSG_OPT_FRENCH"
+msgstr "ျပင္သစ္"
+
+msgid "IDS_MSG_OPT_GERMAN"
+msgstr "ဂ်ာမန္"
+
+msgid "IDS_MSG_OPT_GIANT_M_TEXTSIZE"
+msgstr "အလြန္႔ အလြန္ၾကီးေသာ"
+
+msgid "IDS_MSG_OPT_HUGE"
+msgstr "အႀကီးဆံုး"
+
+msgid "IDS_MSG_OPT_ITALIAN"
+msgstr "အီတာလီယန္"
+
+msgid "IDS_MSG_OPT_JAPANESE"
+msgstr "ဂ်ပန္"
+
+msgid "IDS_MSG_OPT_KOREAN"
+msgstr "ကိုရီးယား"
+
+msgid "IDS_MSG_OPT_MEDIUM"
+msgstr "အလတ္"
+
+msgid "IDS_MSG_OPT_PORTUGUESE_HLATIN_AMERICA_ABB"
+msgstr "ေပၚတူကီ (လက္တင္ အေမရိက)"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_SPAM_NUMBERS"
+msgstr "စပမ္ နံပါတ္မ်ားထဲမွ ဖယ္ရွားပါ"
+
+msgid "IDS_MSG_OPT_REMOVE_SLIDE"
+msgstr "ဆလိုကကို ဖယ္ထုတ္ပါ"
+
+msgid "IDS_MSG_OPT_SAVE_TO_KEEPIT_ABB"
+msgstr "KeepIt သို႔ သိမ္းပါ"
+
+msgid "IDS_MSG_OPT_SCHEDULING"
+msgstr "စီစဥ္ျခင္း"
+
+msgid "IDS_MSG_OPT_SEND_EMAIL"
+msgstr "အီးေမးလ္ ပို႔ပါ"
+
+msgid "IDS_MSG_OPT_SEND_MESSAGE"
+msgstr "မက္ေဆ့ခ်္ ပို႔ပါ"
+
+msgid "IDS_MSG_OPT_SIMPLIFIED_CHINESE"
+msgstr "ရိုးရွင္းထားေသာ တရုပ္စကား"
+
+msgid "IDS_MSG_OPT_TEMPLATES"
+msgstr "ပံုစံမ်ား"
+
+msgid "IDS_MSG_OPT_UNLOCK_MESSAGE"
+msgstr "မက္ေဆ့ခ်္ေသာ့ဖြင့္ပါ"
+
+msgid "IDS_MSG_OPT_UNLOCK_MESSAGES"
+msgstr "မက္ေဆ့ခ်္မ်ား ေသာ့ဖြင့္ပါ"
+
+msgid "IDS_MSG_OPT_UNLOCK_M_PROTECTION"
+msgstr "ေသာ့ဖြင့္ပါ"
+
+msgid "IDS_MSG_OPT_USE_DEVICE_FONT_SIZES"
+msgstr "ကိရိယာ ေဖာင့္ဆိုက္မ်ား သံုးပါ"
+
+msgid "IDS_MSG_POP_ADD_TO_SPAM_NUMBERS_Q"
+msgstr "ေၾကာ္ျငာ နံပါတ္မ်ားသို႔ ထည့္မည္လား?"
+
+msgid "IDS_MSG_POP_DELETE_PD_MESSAGES_Q"
+msgstr "မက္ေဆ့ခ်္ %d ခုကို ဖ်က္ပစ္မလား?"
+
+msgid "IDS_MSG_POP_DELETE_PD_THREADS_Q"
+msgstr "ထရက္ယူနစ္ %d ခုကို ဖ်က္ပစ္မလား?"
+
+msgid "IDS_MSG_POP_DELETE_THIS_THREAD_Q"
+msgstr "ဤထရက္ကို ဖ်က္ပစ္မလား?"
+
+msgid "IDS_MSG_POP_DETECTED_IN_C_PS"
+msgstr "ရွာသိထားသည့္ ေနရာ : %s"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "ၾကခ်ိန္မွာ %d စကၠန္႔ထက္ နည္းရမည္။"
+
+msgid "IDS_MSG_POP_INCLUDE_LOCKED_MESSAGES"
+msgstr "ေသာ့ခတ္ထားသည့္ မက္ေဆ့ခ်္မ်ားလည္း ထည့္ပါ"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "အထြက္ မက္ေဆ့ခ်္တြင္ မူရင္း စာသား ပါပါေစ"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "အဝင္ မက္ေဆ့ခ်္မ်ားသာ"
+
+msgid "IDS_MSG_POP_LEAVE_THIS_MESSAGE_UNOPENED_Q"
+msgstr "ဤမက္ေဆ့ခ်္ကို မဖြင့္ပဲထားမလား?"
+
+msgid "IDS_MSG_POP_MESSAGES_THAT_CONTAIN_PS_WILL_BE_REPORTED_AS_SPAM"
+msgstr "%s ပါဝင္ေနသည့္ မက္ေဆ့ခ်္မ်ားအား ေၾကာ္ျငာ အျဖစ္ အစီရင္ခံမည္။"
+
+msgid "IDS_MSG_POP_MESSAGE_MUST_BE_SCHEDULED_TO_BE_SENT_WITHIN_A_YEAR_SET_AGAIN"
+msgstr "မက္ေဆ့ခ်္ကို တစ္ႏွစ္အတြင္း ပို႔ရန္ စီစဥ္ထားရမည္။ ထပ္မံ သတ္မွတ္ပါ။"
+
+msgid "IDS_MSG_POP_NO_RECIPIENTS_HAVE_BEEN_SELECTED_THIS_MESSAGE_WILL_BE_DISCARDED"
+msgstr "လက္ခံသူ တစ္ဦးကိုမွ ေရြးထားျခင္း မရွိပါ။ ဤမက္ေဆ့ခ်္ကို စြန္႔ပစ္ပါလိမ့္မည္။"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "စာရင္းထဲတြင္ ပံုစံျပားမ်ား မရွိပါ"
+
+msgid "IDS_MSG_POP_PS_HAS_BEEN_DETECTED"
+msgstr "%s ရွာသိထားသည္။"
+
+msgid "IDS_MSG_POP_SCHEDULED_MESSAGES_MUST_BE_SET_MORE_THAN_PD_MINUTES_BEFORE_SCHEDULED_TIME_SET_AGAIN"
+msgstr "စီစဥ္ထားေသာ မက္ေဆ့ခ်္မ်ားကို စီစဥ္ထားသည့္ အခ်ိန္ မတိုင္မီ %d မိနစ္ေက်ာ္ကတည္းက သတ္မွတ္ထားရမည္။ ထပ္မံ သတ္မွတ္ပါ။"
+
+msgid "IDS_MSG_POP_SCHEDULED_MESSAGE_CANCELLED"
+msgstr "ပို႔ရန္ စီစဥ္ထားသည့္ မက္ေဆ့ခ်္ကို ပယ္ဖ်က္လိုက္သည္။"
+
+msgid "IDS_MSG_POP_SELECTED_TEXT_TEMPLATE_WILL_BE_DELETED"
+msgstr "ေရြးခ်ယ္ထားေသာ စာသားနမူနာကို ဖ်က္ပစ္ပါမည္။"
+
+msgid "IDS_MSG_POP_SIGN_IN_TO_YOUR_SAMSUNG_ACCOUNT_TO_USE_S_TRANSLATOR"
+msgstr "S Translator သံုးရန္ သင့္ Samsung account သို႔ ဝင္ေရာက္ပါ။"
+
+msgid "IDS_MSG_POP_SPAM_MESSAGE_SETTINGS"
+msgstr "ေၾကာ္ျငာ မက္ေဆ့ခ်္ ဆက္တင္မ်ား"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_IS_SCHEDULED_TO_BE_SENT_AT_PS_TAP_OK_TO_SEND_NOW_INSTEAD"
+msgstr "ဤမက္ေဆ့ခ်္ကို %s တြင္ ပို႔ရန္ စီစဥ္ထားသည္။ ၎အစား ယၡဳပို႔ရန္ အိုေက ႏွိပ္ပါ။"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_DELETED_FROM_THE_SIM_CARD"
+msgstr "ဤမက္ေဆ့ခ်္ကို SIM ကတ္မွ ဖ်က္လိမ့္မည္။"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_NOT_BE_OPENED_DELETE_THIS_MESSAGE_Q"
+msgstr "ဤမက္ေဆ့ခ်္ ဖြင့္ရမည္ မဟုတ္ပါ။ ဤမက္ေဆ့ခ်္ကို ဖ်က္မလား?"
+
+msgid "IDS_MSG_POP_THIS_NUMBER_WILL_BE_ADDED_TO_YOUR_SPAM_NUMBERS"
+msgstr "ဤနံပါတ္ကို သင့္ မလိုအပ္ေသာနံပါတ္မ်ားထဲ ထည့္မည္။"
+
+msgid "IDS_MSG_POP_THIS_NUMBER_WILL_BE_DELETED"
+msgstr "ဤနံပါတ္အား ဖ်က္ပစ္လိမ့္မည္။"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ADD_THIS_RECIPIENT_THE_RECIPIENTS_NUMBER_IS_NOT_VALID"
+msgstr "ဤလက္ခံမည့္သူကို ထည့္မရပါ။ လက္ခံမည့္သူ၏ နံပါတ္ အက်ံဳးမဝင္ပါ။"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ဖိုင္ ပူးတြဲ၍ မရပါ။ ဖိုင္ဆိုက္ ၾကီးလြန္းသည္။ အီးေမးလ္၊ ဘလူးတုသ္၊ Wi-Fi စသည္တို႔မွတဆင့္ ပို႔ျခင္း စမ္းၾကည့္ပါ။"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_MESSAGE_IT_WILL_BE_SENT_WHEN_SERVICE_AVAILABLE"
+msgstr "မက္ေဆ့ကို ပို႔မရပါ။ ဝန္ေဆာင္မႈ ရႏိုင္လွ်င္ ၄င္းကိုပို႔မည္။"
+
+msgid "IDS_MSG_POP_UNABLE_TO_TRANSLATE_NO_TEXT_HAS_BEEN_DETECTED_TRANSLATION_WILL_BE_SKIPPED"
+msgstr "ဘာသာျပန္၍ မရႏိုင္ပါ။ စာသား ရွာမေတြ႔ပါ။ ဘာသာျပန္ျခင္းကို ေက်ာ္လိုက္မည္။"
+
+msgid "IDS_MSG_SBODY_CUSTOM_BACKGROUND"
+msgstr "စိတ္ၾကိဳက္ ေနာက္ခံ"
+
+msgid "IDS_MSG_SBODY_DEFAULT_NOTIFICATION_SOUND"
+msgstr "သတ္မွတ္ထားေသာအသိေပးခ်က္အသံ"
+
+msgid "IDS_MSG_SBODY_DISPLAY_NEW_MESSAGES_AS_POP_UPS"
+msgstr "မက္ေဆ့ခ်္အသစ္မ်ားကို ေပါ့-အပ္မ်ားအျဖစ္ ျပပါ။"
+
+msgid "IDS_MSG_SBODY_TAP_HERE_TO_ENABLE_EMERGENCY_MODE_TO_SAVE_BATTERY_POWER_JPN_DCM"
+msgstr "Tap here to enable Emergency mode to save battery power."
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "ယခု ပို႔ပါ"
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "အက်ဳံးမဝင္ေသာ အကၡရာမ်ား ၀င္ေနခဲ့ၿပီ"
+
+msgid "IDS_MSG_OPT_DURATION"
+msgstr "ၾကာျမင့္ခ်ိန္"
+
+msgid "IDS_COM_BODY_BUTTON_T_TTS"
+msgstr "ခလုတ္"
+
+msgid "IDS_COM_BODY_UNTICK_T_TTS"
+msgstr "Untick"
+
+msgid "IDS_COM_BODY_TICK_T_TTS"
+msgstr "ျခစ္ပါ"
+
+msgid "IDS_COM_SK_REFRESH"
+msgstr "ျပန္လည္ လန္ဆန္းေစျခင္း"
+
+msgid "IDS_MSGS_BODY_NOT_SELECTED_T_TTS"
+msgstr "ေရြးခ်ယ္မထားေသးပါ"
+
+msgid "IDS_MSG_POP_UNABLE_TO_RETRIEVE_CURRENT_LOCATION_TRY_AGAIN_LATER"
+msgstr "လက္ရွိ တည္ေနရာ ျပန္ရယူရန္ မရႏိုင္ပါ။ ေနာက္မွ ျပန္ၾကိဳးစားပါ။"
+
+msgid "IDS_MSG_BUTTON2_CREATE"
+msgstr "ဖန္တီးပါ"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "ကၽြႏ္ုပ္၏ ဖိုင္မ်ားထဲ သိမ္းထားသည္။"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "ေရဒီယို ခလုတ္"
+
+msgid "IDS_MSG_BODY_UNTICKED_T_TTS"
+msgstr "အျခစ္ျဖဳတ္ထားသည္"
+
+msgid "IDS_MSG_BODY_TICKED_T_TTS"
+msgstr "အမွန္ျခစ္ထားသည္"
+
+msgid "IDS_MSGC_POP_PASSWORD_MUST_BE_4_DIGITS_LONG"
+msgstr "စကား၀ွက္သည္ ဂဏန္း ၄ လုံးရွည္ရပါမည္။"
+
+msgid "IDS_MSG_POP_MESSAGE_DELETED"
+msgstr "သတင္းစကားဖ်က္ပစ္ၿပီးပါၿပီီ။"
+
+msgid "IDS_MSG_BUTTON_AGREE"
+msgstr "သေဘာတူညီ"
+
+msgid "IDS_MSG_BUTTON_DISAGREE"
+msgstr "သေဘာမတူ"
+
+msgid "IDS_MSG_BUTTON_COMPOSE"
+msgstr "စာစီပါ"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "ဖ်က္ပစ္ပါ"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "သတ္မွတ္ခ်က္မ်ား"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST"
+msgstr "ပိတ္ဆီးစာရင္းမွ ျဖဳတ္ပစ္ပါ"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "စာေ၀ၿပီးေၾကာင္းအစီရင္ခံစာ"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "အစီရင္ခံစာ ဖတ္ပါ"
+
+msgid "IDS_MSGF_BODY_MMSCREATIONMODE"
+msgstr "ဖန္တီးမႈအေနအထား"
+
+msgid "IDS_MSGC_HEADER_SCHEDULED_MESSAGE"
+msgstr "အစီစဥ္တက်လုပ္ထားေသာ မက္ေဆ့ခ်္"
+
+msgid "IDS_MSGF_BODY_SPAM_MESSAGES"
+msgstr "မလိုအပ္ေသာ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSGF_BODY_SIM_CARD_MESSAGES"
+msgstr "SIM card messages"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_OPEN"
+msgstr "ဖြင့္၍မရပါ။"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "ရက္လြန္သြားပါၿပီ"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE_SELECTED"
+msgstr "1 message selected."
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "အႀကိဳျမင္ကြင္း"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ဖုိင္အမည္ ရွိႏွင့္ၿပီးသား ျဖစ္ေနသည္။"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "မက္ေဆ့ခ်္ေပးပို႔၍မရပါ။"
+
+msgid "IDS_MSGF_BODY_CENTRE_PD"
+msgstr "Centre %d"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "ေပးပုိ႔ျခင္း မေအာင္ျမင္ပါ။"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "မွ"
+
+msgid "IDS_MSGF_BODY_MMSCCCREATIONMODEFREE"
+msgstr "အခမဲ့"
+
+msgid "IDS_MSGF_BODY_MMSCCCREATIONMODEWARNING"
+msgstr "သတိေပးခ်က္"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "တုိက္တြန္းသည့္ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "လက္ခံရရွိၿပီး"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "စာသား မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSGF_OPT_10SEC"
+msgstr "၁၀ စကၠန္႔"
+
+msgid "IDS_MSGF_OPT_2SEC"
+msgstr "၂ စကၠန္႔"
+
+msgid "IDS_MSGF_OPT_5SEC"
+msgstr "၅ စကၠန္႔"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "တပ္ဆင္ပါ"
+
+msgid "IDS_MSG_MBODY_USE_THE_VOLUME_KEY"
+msgstr "အသံအတိုးအက်ယ္ ခလုတ္ သံုးပါ"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "စာသားမက္ေဆ့ခ်္"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "မဲဆဲဇ္ ဆိုက္"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "ေမတၱာရပ္ခံၿပီး"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "ေမတၱာရပ္ခံထားျခင္းမရွိပါ"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Fwd"
+
+msgid "IDS_MSGF_SK3_UNREAD"
+msgstr "မဖတ္ရေသးေသာ"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "ထပ္ေနေသာလက္ခံမည့္သူ္။"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "အမ်ားဆံုး လက္ခံသူမ်ား အေရအတြက္ (%d) သို႔ ေရာက္ရွိပါၿပီ။"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "သုိ႔"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "မာလ္တီမီဒီယာမက္ေဆ့ခ်္"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "သင္ အြန္လိုင္း(%s) သြားေတာ့မည္။ ဆက္လုပ္ပါ?"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "မက်ဳံးမဝင္သည့္ လက္ခံသ။"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "ဖုန္းေခၚမႈအတြင္း ဖြင့္၍မရပါ။"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SAVE_WHILE_IN_MASS_STORAGE_MODE"
+msgstr "Unable to save while in Mass storage mode."
+
+msgid "IDS_MSGC_POP_SPACE_SELECTED"
+msgstr "ေရြးျပီးပါျပီ"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "ဖ်က္ပစ္မည္လား?"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "ဖ်က္ပစ္ၿပီးပါၿပီ"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "ပို႔ရန္ စီစဥ္ထားသည့္ မက္ေဆ့ခ်္ ပို႔မရပါ။ အျခားအခ်ိန္ သတ္မွတ္ပါ။"
+
+msgid "IDS_MSGC_OPT_DATE_AND_TIME"
+msgstr "ေန႔စြဲ ႏွင့္အခ်ိန္"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "လက္ခံမည့္သူ"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "မက္ေဆ့ခ်္"
+
+msgid "IDS_MSGF_BODY_SETTING_SOS_MSGREPEAT_ONCE"
+msgstr "တစ္ႀကိမ္"
+
+msgid "IDS_MSGF_BODY_SOSMSGSENDING_3TIMES"
+msgstr "၃ ႀကိမ္"
+
+msgid "IDS_MSGF_BODY_SOSMSGSENDING_5TIMES"
+msgstr "၅ ႀကိမ္"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM not inserted."
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "ပါဝင္မႈမ်ား ထည့္၍မရနိုင္ပါ။"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "လက္ခံသူ ေရြးပါ"
+
+msgid "IDS_MSGC_OPT2_DURATION_HPS_SEC_ABB"
+msgstr "အခ်ိန္အတိုင္းအတာ (%s စကၠန္႔)"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "အျခား"
+
+msgid "IDS_MSGF_OPT_SEND_EMAIL"
+msgstr "အီးေမးလ္ပုိ႔ပါ"
+
+msgid "IDS_MSGC_BUTTON2_SCHEDULED_N_MESSAGE"
+msgstr "စီစဥ္ထားသည့္\nမက္ေဆ့ခ်္"
+
+msgid "IDS_MSGC_BUTTON2_DURATION_N_HPD_SECS"
+msgstr "ၾကာခ်ိန္\n(%d စကၠန္႔)"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "အျခား အဆက္အသြယ္ အခ်က္အလက္ သံုးပါ"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "ႊဤမက္ေဆ့ခ်္တြင္ ေဖၚျပမထားေသာ ပူးတြဲဖုိင္တစ္ဖုိင္ ပါေနပါသည္။"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "ဤမက္ေဆ့ခ်္တြင္ ျပမထားေသာ ပူးတြဲဖုိင္မ်ား ပါ၀င္ေနပါသည္။"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "အားလုံးကုိ သိမ္းဆည္းပါ"
+
+msgid "IDS_MSG_BODY_DRAFT_MESSAGES"
+msgstr "မူၾကမ္း မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_BODY_MESSAGE_WILL_BE_RESTORED"
+msgstr "မက္ေဆ့ခ်္ကို ျပန္သြင္းမည္။"
+
+msgid "IDS_MSG_BODY_SCHEDULED_MESSAGE_WILL_BE_CANCELLED"
+msgstr "စီစဥ္ၿပီး မဲဆဲဇ္ကို ဖ်က္သြားမည္။"
+
+msgid "IDS_MSG_HEADER_UNABLE_TO_ADD"
+msgstr "ထည့္မရႏိုင္ပါ"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "ျပကၡဒိန္"
+
+msgid "IDS_MSG_BODY_MAPS_ABB"
+msgstr "ေျမပုံမ်ား"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "မီမို"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "အဆက္အသြယ္မ်ား"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "မသိေသာနံပါတ္"
+
+msgid "IDS_MSG_TPOP_QUICK_RESPONSE_ALREADY_EXISTS"
+msgstr "အျမန္ တုန္႕ျပန္မႈ ရွိၿပီးသားျဖစ္သည္။"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "ဤနံပါတ္ အက်ဳံးမ၀င္ပါ။"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ပယ္ဖ်က္ပါ"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ဖ်က္ပါ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ၿပီးၿပီ"
+
+msgid "IDS_MSG_BUTTON_CANCEL"
+msgstr "ပယ္ဖ်က္ပါ"
+
+msgid "IDS_MSG_BUTTON_DELETE"
+msgstr "ဖ်က္ပစ္ပါ"
+
+msgid "IDS_MSG_BUTTON_DONE"
+msgstr "ၿပီးပါၿပီ"
+
+msgid "IDS_MSG_HEADER_CREATE_ABB"
+msgstr "ဖန္တီးပါ"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB2"
+msgstr "%d ခု ေရြးထားသည္"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS စင္တာ"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "စာသား မက္ေဆ့ခ်္ စင္တာ၏ နံပါတ္"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "စကားေျပာျခင္းမ်ားကို ဖ်က္ပါ"
+
+msgid "IDS_MSG_POP_THIS_NUMBER_WILL_BE_ADDED_TO_THE_CALL_AND_MESSAGE_BLOCK_LISTS"
+msgstr "ဤနံပါတ္ကို ေခၚဆိုမႈႏွင့္ မက္ေဆ့ခ်္ ပိတ္ဆီးစာရင္းသို႔ ထည့္ပါလိမ့္မည္။"
+
+msgid "IDS_MSG_POP_THIS_NUMBER_WILL_BE_ADDED_TO_THE_MESSAGE_BLOCK_LIST"
+msgstr "ဤနံပါတ္ကို မက္ေဆ့ခ်္ ပိတ္ဆီးစာရင္းသို႔ ထည့္ပါလိမ့္မည္။"
+
+msgid "IDS_MSG_SBODY_ADD_NUMBERS_TO_THE_CALL_BLOCK_LIST_AUTOMATICALLY_WHEN_YOU_ADD_THEM_TO_THE_MESSAGE_BLOCK_LIST"
+msgstr "နံပါတ္မ်ားကို မက္ေဆ့ခ်္ ပိတ္ဆီးစာရင္းသို႔ သင္ ထည့္ေသာအခ်ိန္မွာ ၎တို႔ကို ဖုန္းေခၚဆိုမႈ ပိတ္ဆီးစာရင္းသို႔ အလိုအေလ်ာက္ ျဖည့္ထည့္ေစပါ။"
+
+msgid "IDS_MSG_TPOP_1_NUMBER_REMOVED"
+msgstr "နံပါတ္ ၁ ခုကို ဖယ္ထုတ္ၿပီးပါၿပီ။"
+
+msgid "IDS_MSG_TPOP_1_PHRASE_REMOVED"
+msgstr "စကားစု ၁ ခုကို ဖယ္ထုတ္ၿပီးပါၿပီ။"
+
+msgid "IDS_MSG_TPOP_ALL_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "မက္ေဆ့ခ်္စာရင္းသို႔ ေရႊ႕ထားေသာ မက္ေဆ့ခ်္အားလုံး။"
+
+msgid "IDS_MSG_TPOP_PD_NUMBERS_REMOVED"
+msgstr "နံပါတ္ %d ကို ဖယ္ထုတ္ၿပီးပါၿပီ။"
+
+msgid "IDS_MSG_TPOP_PD_PHRASES_REMOVED"
+msgstr "စကားစု %d ခုကို ဖယ္ထုတ္ၿပီးပါၿပီ။"
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "ပို႔ေပးရာတြင္ မေအာင္ျမင္ပါ"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS"
+msgstr "ပို႔ေနဆဲ..."
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "ပို႔ခဲ့ၿပီးၿပီ"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "ပို႔ရန္ ေစာင့္ေနဆဲ..."
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ေဒါင္းလုတ္လုပ္မည္လား"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "ဖယ္ရွားမလား"
+
+msgid "IDS_MSG_HEADER_EDIT_ABB2"
+msgstr "တည္းျဖတ္ျခင္း"
+
+msgid "IDS_MSG_HEADER_SELECT_SIM_CARD_TO_USE_ABB"
+msgstr "ဖုန္းေခၚရန္ SIM ကဒ္ ေရြးပါ"
+
+msgid "IDS_MSG_HEADER_SERVICE_LOADING_ABB"
+msgstr "ဝန္ေဆာင္မႈ ဖြင့္ေနသည္"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND"
+msgstr "ရလဒ္မ်ား မေတြ႔ပါ"
+
+msgid "IDS_MSG_OPT_ADD_TO_BOOKMARKS_ABB"
+msgstr "စာညွပ္မ်ားသုိ႔ ေပါင္းထည့္ပါ"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "မရွိ"
+
+msgid "IDS_MSG_OPT_PROMPT"
+msgstr "ခ်က္ခ်င္း"
+
+msgid "IDS_MSG_POP_THE_PREFERRED_SIM_CARD_FOR_SENDING_MULTIMEDIA_MESSAGES_IS_P1SS_TAP_OK_TO_SEND_THIS_MULTIMEDIA_MESSAGE_USING_THE_P2SS_SIM_CARD_ANYWAY"
+msgstr "မာတီမီဒီယာ မက္ေဆ့ခ်္ ပို႔ရန္ ပိုလိုလားေသာ SIM ကတ္မွာ %1$s ျဖစ္သည္။ ဤမာတီမီဒီယာ မက္ေဆ့ခ်္ကို ဘာပဲျဖစ္ျဖစ္ %2$s SIM ကတ္ကို သုံး၍ ပို႔ရန္ အိုေက ႏွိပ္ပါ။"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "မာတီမီဒီယာ မက္ေဆ့ခ်္ကို ပို႔ရန္၊ ကိရိယာက အျခား မိုဘိုင္းကြန္ရက္ တစ္ခုသို႔ ခ်ိတ္ဆက္ပါလိမ့္မည္။ ၎က သင့္ကိရိယာကို သင္၏ လက္ရွိ မိုဘိုင္းကြန္ရက္မွ ျဖဳတ္ပါလိမ့္မည္။"
+
+msgid "IDS_MSG_TMBODY_SERVICE_LOADING"
+msgstr "ဝန္ေဆာင္မႈ ဖြင့္ေနသည္"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "မက္ေဆ့ခ်္ ၁ ခုကို မက္ေဆ့ခ်္စာရင္းသို႔ ေရႊ႕ၿပီးပါၿပီ။"
+
+msgid "IDS_MSG_TPOP_1_QUICK_RESPONSE_DELETED"
+msgstr "အျမန္ ျပန္ၾကားခ်က္ ၁ ခုကို ဖ်က္ၿပီးပါၿပီ။"
+
+msgid "IDS_MSG_TPOP_ALL_QUICK_RESPONSES_DELETED"
+msgstr "အျမန္ ျပန္ၾကားခ်က္အားလုံးကို ဖ်က္ၿပီးပါၿပီ။"
+
+msgid "IDS_MSG_TPOP_FAILED_TO_RETRIEVE_MULTIMEDIA_MESSAGE"
+msgstr "မာတီမီဒီယာ မက္ေဆ့ခ်္ကို ျပန္ထုတ္ယူရန္ မေအာင္ျမင္ပါ။"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "အကၡရာ အမ်ားဆံုး အေရအတြက္ ေက်ာ္ေနသည္။"
+
+msgid "IDS_MSG_TPOP_PD_NEW_MESSAGES_RECEIVED"
+msgstr "မက္ေဆ့ခ်္ အသစ္ %d ေစာင္ လက္ခံရျပီး။"
+
+msgid "IDS_MSG_TPOP_PD_QUICK_RESPONSES_DELETED"
+msgstr "အျမန္ ျပန္ၾကားခ်က္ %d ခုကို ဖ်က္ၿပီးပါၿပီ။"
+
+msgid "IDS_MSG_BODY_EXPIRES_ON_C"
+msgstr "သက္တမ္းကုန္မည့္ရက္:"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "ကူးေျပာင္းပါ"
+
+msgid "IDS_MSG_OPT_COMPOSE_EMAIL_ABB"
+msgstr "အီးေမးလ္စာ ေရးပါ"
+
+msgid "IDS_MSG_TPOP_1_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "မက္ေဆ့ခ်္ ပိတ္ဆီးစာရင္းမွ ဖယ္ထုတ္ခဲ့ေသာ နံပါတ္ ၁ ခု။"
+
+msgid "IDS_MSG_TPOP_1_PHRASE_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "မက္ေဆ့ခ်္ ပိတ္ဆီးစာရင္းမွ ဖယ္ထုတ္ခဲ့ေသာ စကားရပ္ ၁ ခု။"
+
+msgid "IDS_MSG_TPOP_ALL_NUMBERS_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "မက္ေဆ့ခ်္ ပိတ္ဆီးစာရင္းမွ ဖယ္ထုတ္ခဲ့ေသာ နံပါတ္အားလုံး။"
+
+msgid "IDS_MSG_TPOP_ALL_PHRASES_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "မက္ေဆ့ခ်္ ပိတ္ဆီးစာရင္းမွ ဖယ္ထုတ္ခဲ့ေသာ စကားရပ္အားလုံး။"
+
+msgid "IDS_MSG_TPOP_PD_NUMBERS_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "မက္ေဆ့ခ်္ ပိတ္ဆီးစာရင္းမွ ဖယ္ထုတ္ထားေသာ နံပါတ္ %d ခု။"
+
+msgid "IDS_MSG_TPOP_PD_PHRASES_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "မက္ေဆ့ခ်္ ပိတ္ဆီးစာရင္းမွ ဖယ္ထုတ္ထားေသာ စကားရပ္ %d ခု။"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "အီးေမးလ္"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "႐ုပ္ပုံ"
+
+msgid "IDS_MSGC_OPT_OPEN"
+msgstr "ဖြင့္ပါ"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "ပယ္ဖ်က္ၿပီးၿပီ"
+
+msgid "IDS_MSGC_POP_DELETE_Q"
+msgstr "ဖ်က္ပစ္မည္လား?"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "ဘက္ထရီ နည္းေနပါသည္"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "အားလုံး"
+
+msgid "IDS_MSGF_BODY_HELP"
+msgstr "အကူအညီ"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "အမည္ မရွိပါ"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "ဖယ္ထုတ္ပါ"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "သိမ္းဆည္းပါ"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "ေရြးခ်ယ္ပါ"
+
+msgid "IDS_MSGF_OPT_SEND"
+msgstr "ပုိ႔ပါ"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "ဖ်က္ေနပါသည္…"
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "ျပန္လည္စတင္အသုံးျပဳႏုိင္ရန္ ရွင္းလင္းေနပါသည္.."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "ပယ္ခ်ၿပီးပါၿပီ"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "သိမ္းျခင္း မေအာင္ျမင္ပါ္။"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "ဖ်က္ပစ္၍မရပါ။"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "သိမ္းဆည္း၍မရပါ။"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "ဟုတ္ကဲ့"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "သတိ"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_OPT_LOCATION"
+msgstr "တည္ေနရာ"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "စာျပန္ပါ"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "မဟုတ္ပါ"
+
+msgid "IDS_MSG_BODY_RECIPIENTS"
+msgstr "လက္ခံမည့္သူ"
+
+msgid "IDS_MSG_MBODY_PRIMARY"
+msgstr "အဓိက"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "သင္သည္ စာသားမ်ားကို SIM ကတ္သို႔ထည့္ျပီးေနာက္ ၎တို႔ကို ဤေနရာတြင္ျပပါလိမ့္မည္။"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "သင္သည္ အလ်င္အျမန္တံု႔ျပန္ျခင္းကို လုပ္ေဆာင္ျပီးေနာက္ ၎တို႔ကို ဤေနရာတြင္ ျပပါလိမ့္မည္။"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_RECEIVE_BLOCKED_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "တားျမစ္ကန္႔သတ္ထားေသာ မက္ေဆ့မ်ား လက္ခံရၿပီးေနာက္ ၎တို႔ကို ဤေနရာတြင္ ျပပါလိမ့္မည္။"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB message"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "အၾကမ္း"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "မေအာင္ျမင္ပါ"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "မက္ေဆ့ခ်္"
+
+msgid "IDS_MSG_BODY_MULTIMEDIA_MESSAGE"
+msgstr "မာလ္တီမီဒီယာမက္ေဆ့ခ်္"
+
+msgid "IDS_MSG_BODY_NO_SUBJECT_M_MESSAGE_STATUS"
+msgstr "အေၾကာင္းအရာမရွိပါ"
+
+msgid "IDS_MSG_BODY_NUMBER_TO_BLOCK"
+msgstr "ပိတ္ဆီးရန္ နံပါတ္"
+
+msgid "IDS_MSG_BODY_READ_M_MESSAGE_STATUS"
+msgstr "ဖတ္ပါ"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "အျခားေဒသ ကြန္ယက္မ်ားကုိသံုးစဥ္ မက္ေဆ့ခ်္မ်ားကုိ အလုိလို ျပန္ထုတ္ယူပါ။"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "ပုိ႔ေနပါသည္..."
+
+msgid "IDS_MSG_BODY_TEXT_MESSAGES"
+msgstr "စာသား မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "လက္ခံခ်ိန္ :"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "ပုိ႔ခ်ိန္ :"
+
+msgid "IDS_MSG_BUTTON_DELIVERY_ABB"
+msgstr "ထုတ္ေပးပါ"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "ဖယ္ရွားပါ"
+
+msgid "IDS_MSG_BUTTON_EVENT"
+msgstr "အျဖစ္အပ်က္"
+
+msgid "IDS_MSG_BUTTON_FINANCE_ABB"
+msgstr "ဘ႑ာေငြ"
+
+msgid "IDS_MSG_BUTTON_NEXT_ABB3"
+msgstr "ေနာက္"
+
+msgid "IDS_MSG_BUTTON_PRIMARY_ABB"
+msgstr "အဓိက"
+
+msgid "IDS_MSG_BUTTON_PROMOTION_ABB"
+msgstr "ေလွ်ာ့ေစ်း"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "ျပန္ပို႔ပါ"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "သိမ္းပါ"
+
+msgid "IDS_MSG_HEADER_BLOCKED_MESSAGES_ABB"
+msgstr "ပိတ္ဆီးထားေသာ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_HEADER_BLOCKING_CRITERIA_ABB"
+msgstr "ပိတ္ဆီးထားေသာ စံညႊန္း"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "ဖန္တီးျခင္း"
+
+msgid "IDS_MSG_HEADER_DRAFT_MESSAGE_ABB"
+msgstr "အၾကမ္း မက္ေဆ့ခ်္"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "မက္ေဆ့ခ်ပ္ ပို႔ရန္ မေအာင္ျမင္ပါ"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ျဖည့္သြင္း အေနအထား"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM ကတ္ထဲရွိ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_HEADER_MESSAGE_CENTRE_ABB"
+msgstr "မက္ေဆ့ခ်္စင္တာ"
+
+msgid "IDS_MSG_HEADER_MESSAGE_DETAILS_ABB"
+msgstr "မက္ေဆ့ခ်္ အေသးစိတ္မ်ား"
+
+msgid "IDS_MSG_HEADER_MESSAGE_TONE_ABB"
+msgstr "မက္ေဆ့ခ်္အသံ"
+
+msgid "IDS_MSG_HEADER_MULTIMEDIA_MESSAGES_ABB"
+msgstr "ရုပ္စံု မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_HEADER_NO_SUBJECT"
+msgstr "အေၾကာင္းကိစၥ မရွိပါ"
+
+msgid "IDS_MSG_HEADER_PUSH_MESSAGES_ABB"
+msgstr "တုိက္တြန္းသည့္ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_HEADER_PUSH_MESSAGE_ABB"
+msgstr "ေမးလ္မွ အခမဲ့ျဖန္႔ေသာ ေၾကာ္ျငာ"
+
+msgid "IDS_MSG_HEADER_QUICK_RESPONSES"
+msgstr "အျမန္ တုန္႔ျပန္ခ်က္မ်ား"
+
+msgid "IDS_MSG_HEADER_RECEIVED_MESSAGE_ABB"
+msgstr "လက္ခံထားေသာ မက္ေဆ့ခ်္"
+
+msgid "IDS_MSG_HEADER_SAVE_ATTACHMENTS_ABB"
+msgstr "ပူးတြဲအရာမ်ားကို သိမ္းဆည္းပါ"
+
+msgid "IDS_MSG_HEADER_SENT_MESSAGE_ABB"
+msgstr "ပို႔ထားေသာ မက္ေဆ့ခ်္"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "မိုဘိုင္းကြန္ယက္ ကူးေျပာင္းပါ"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "စာသား မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_HEADER_UNABLE_TO_ADD_RECIPIENTS_ABB"
+msgstr "လက္ခံမည့္သူမ်ားကုိ ထည့္မရပါ"
+
+msgid "IDS_MSG_HEADER_UNABLE_TO_ADD_RECIPIENT_ABB"
+msgstr "လက္ခံမည့္သူကုိ ထည့္မရပါ"
+
+msgid "IDS_MSG_MBODY_CB_MESSAGES"
+msgstr "CB မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_MBODY_NEW_MESSAGES"
+msgstr "မက္ေဆ့ခ်္ အသစ္မ်ား"
+
+msgid "IDS_MSG_NPBODY_BLOCKED_PHRASES"
+msgstr "ပိတ္ဆီးထားသည့္ စကားစုမ်ား"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_MESSAGES"
+msgstr "တားျမစ္ကန္႔သတ္ထားေသာ မက္ေဆ့မ်ားမရွိပါ"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "ပိတ္ဆီးထားေသာ နံပါတ္မ်ား မရွိပါ"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM ကတ္ေပၚတြင္ မက္ေဆ့မ်ားမရွိပါ"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "မည္သည့္စကားစုကုိမွ် မပိတ္ထားပါ"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "အျမန္ တုန္႔ျပန္မႈမ်ား မရွိပါ"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "ရွာေဖြပါ"
+
+msgid "IDS_MSG_OPT_ADD"
+msgstr "ထပ္ထည့္ပါ"
+
+msgid "IDS_MSG_OPT_ALWAYS"
+msgstr "အၿမဲတမ္း"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "အလုိအေလ်ာက္"
+
+msgid "IDS_MSG_OPT_BLOCK_SETTINGS_ABB"
+msgstr "သတ္မွတ္ခ်က္မ်ားကို ပိတ္ဆီးပါ"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "ကူးပါ"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "ကိရိယာသို႔ ကူးပါ"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "အဆက္အသြယ္ကို ဖန္တီးပါ"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "တည္းျဖတ္"
+
+msgid "IDS_MSG_OPT_FORWARD"
+msgstr "ဆက္ပို႔ပါ"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM အကၡရာ"
+
+msgid "IDS_MSG_OPT_INCLUDE"
+msgstr "ပါဝင္ပါသည္"
+
+msgid "IDS_MSG_OPT_MATCH_EXACTLY_ABB"
+msgstr "အတိအက် ကိုက္ညီပါသည္"
+
+msgid "IDS_MSG_OPT_NEVER"
+msgstr "ဘယ္ေတာ့မွ"
+
+msgid "IDS_MSG_OPT_REMOVE"
+msgstr "ျဖဳတ္ပါ"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "ျပန္ပို႔ပါ"
+
+msgid "IDS_MSG_OPT_RESTORE"
+msgstr "ျပန္ေဖၚ"
+
+msgid "IDS_MSG_OPT_SAVE_ALL"
+msgstr "အားလုံးကုိ သိမ္းဆည္းပါ"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "ပူးတြဲခ်က္မ်ား သိမ္းပါ"
+
+msgid "IDS_MSG_OPT_START_WITH_ABB"
+msgstr "ျဖင့္ အစျပဳေသာ"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "ယူနီကုဒ္"
+
+msgid "IDS_MSG_OPT_UPDATE_EXISTING_CONTACT_ABB"
+msgstr "တည္ရွိဆဲ အဆက္အသြယ္ကို အပ္ဒိတ္လုပ္ပါ"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "ဓာတ္ပုံဆလိုက္ရႉိး အျဖစ္ ၾကည့္ုျခင္း"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "အဆက္အသြယ္၏ အေသးစိတ္မ်ားကို ၾကည့္ပါ"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "အေသးစိတ္မ်ား ၾကည့္ပါ"
+
+msgid "IDS_MSG_POP_SOME_RECIPIENTS_HAVE_INVALID_NUMBERS_INVALID_RECIPIENTS_HAVE_NOT_BEEN_ADDED_NINVALID_RECIPIENTS_C_PS"
+msgstr "အခ်ိဳ႕ေသာ လက္ခံမည့္သူမ်ားတြင္ မရွိသည့္ နံပါတ္မ်ား ရွိေနသည္။ မရွိေသာ လက္ခံသူမ်ားကုိ မထည့္ထားပါ။\nမရွိေသာ လက္ခံသူမ်ား : %s"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "ဤမက္ေဆ့ခ်္ကို ျပန္ပို႔ပါလိမ့္မည္။"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "ဤမီဒီယာမ်ိဳးစုံ မက္ေဆ့ခ်္ကို ေဒါင္းလုတ္လုပ္ရန္၊ ကိရိယာက အျခား မိုဘိုင္းကြန္ရက္ တစ္ခုသို႔ ခ်ိတ္ဆက္ပါလိမ့္မည္။ ၎က သင့္ကိရိယာကို သင္၏ လက္ရွိ မိုဘိုင္းကြန္ရက္သို႔ ခ်ိတ္ဆက္ေနသည္မွ ျဖတ္ပါလိမ့္မည္။"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ADD_THE_RECIPIENTS_NONE_OF_THE_RECIPIENTS_ARE_VALID"
+msgstr "လက္ခံသူမ်ားကုိ မထည့္ႏုိင္ပါ။ လက္ခံသူ တစ္ဦးမွ် အက်ဳံးမဝင္ပါ။"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "သင့္္မက္ေဆ့ခ်္ကို ဖ်က္ပါလိမ့္မည္။ လက္ခံသူ တစ္ဦးကိုမွ ေရြးထားျခင္း မရွိပါ။"
+
+msgid "IDS_MSG_SBODY_BLOCK_MESSAGES_FROM_UNKNOWN_SENDERS"
+msgstr "မသိေသာ ေပးပို႔သူမ်ားထံမွ မက္ေဆ့ခ်္မ်ား ပိတ္ဆီးပါ။"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "သင့္ SIM ကတ္တြင္ သုိေလွာင္ထားေသာ မက္ေဆ့ခ်္မ်ားကုိ စီမံပါ။"
+
+msgid "IDS_MSG_SBODY_MESSAGES_ABOUT_COLLECTIONS_RETURNS_AND_DELIVERIES"
+msgstr "စုစည္းမႈ၊ ျပန္ေပးမႈႏွင့္ ေပးပုိ႔မႈဆုိင္ရာ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "မက္ေဆ့ခ်္အသစ္ေရးရန္ ထည့္သြင္းမႈ အေနအထားကုိ ေရြးပါ။"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "အလိုလို ျပန္ရယူျခင္း"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "အျခားေဒသ ကြန္ယက္ကုိသံုးစဥ္ အလုိလုိ ျပန္ထုတ္ယူပါ"
+
+msgid "IDS_MSG_TMBODY_BLOCKED_MESSAGES"
+msgstr "ပိတ္ဆီးထားေသာ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_TMBODY_BLOCKING_CRITERIA"
+msgstr "ပိတ္ဆီးထားေသာ စံညႊန္း"
+
+msgid "IDS_MSG_TMBODY_BLOCK_UNKNOWN_SENDERS"
+msgstr "အမည္မသိ ပုိ႔သူမ်ားကုိ ပိတ္ဆီးပါ"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "ျဖည့္သြင္း အေနအထား"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM ကတ္ထဲရွိ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_TMBODY_MESSAGE_CENTRE"
+msgstr "မက္ေဆ့ခ်္စင္တာ"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "ရုပ္စံု မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_TMBODY_QUICK_RESPONSES"
+msgstr "အျမန္ တုန္႔ျပန္ခ်က္မ်ား"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "အသံ"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "စာသား မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "လက္ခံမည့္သူမ်ား ထည့္ပါ။"
+
+msgid "IDS_MSG_TPOP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "ရုပ္စံု မက္ေဆ့ခ်္သို႔ ေျပာင္းေနပါသည္..."
+
+msgid "IDS_MSG_TPOP_COPIED_TO_CLIPBOARD"
+msgstr "ကလစ္ဘုတ္သို႔ ကူးထားသည္။"
+
+msgid "IDS_MSG_TPOP_COPIED_TO_SIM_CARD"
+msgstr "SIM ကတ္သို႔ ကူးထားသည္။"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "လက္ခံသူ အမ်ားဆံုး အေရအတြက္ (%d) ေရာက္ပါၿပီ။"
+
+msgid "IDS_MSG_TPOP_MESSAGE_SAVED_AS_DRAFT"
+msgstr "မက္ေဆ့ခ်္ကို စာၾကမ္းအျဖစ္ သိမ္းျပီးပါျပီ။"
+
+msgid "IDS_MSG_TPOP_MESSAGE_TEXT_ALREADY_COPIED_TO_CLIPBOARD"
+msgstr "မက္ေဆ့စာသားသည္ ကလစ္ဘုတ္ေပၚသို႔ ကူးယူျပီးသားျဖစ္သည္။"
+
+msgid "IDS_MSG_TPOP_NETWORK_NOT_AVAILABLE_MESSAGE_WILL_BE_SENT_WHEN_CONNECTED_TO_NETWORK"
+msgstr "ကြန္ယက္ မရွိပါ။ ကြန္ယက္သို႔ ခ်ိတ္ဆက္သည့္အခါ မက္ေဆ့ခ်္ ပို႔လိမ့္မည္။"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_CALL_AND_MESSAGE_BLOCK_LISTS"
+msgstr "ဖုန္းေခၚမႈႏွင့္ မက္ေဆ့ခ်္ ပိတ္ဆီး စာရင္းမ်ားသုိ႔ နံပါတ္ကုိ ထည့္ၿပီးပါၿပီ။"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "မက္ေဆ့ခ်္ ပိတ္ဆီးစာရင္းသို႔ ေပါင္းထည့္ထားေသာ နံပါတ္။"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_CALL_AND_MESSAGE_BLOCK_LISTS"
+msgstr "ဖုန္းေခၚမႈႏွင့္ မက္ေဆ့ခ်္ ပိတ္ဆီး စာရင္းမ်ားမွ နံပါတ္ကုိ ဖယ္ၿပီးၿပီ။"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "မက္ေဆ့ခ်္ ပိတ္ဆီးစာရင္းမွ ဖယ္ရွားထားေသာ နံပါတ္။"
+
+msgid "IDS_MSG_TPOP_PS_TAG_ADDED"
+msgstr "%s တဂ္ကို ေပါင္းထည့္ၿပီးပါၿပီ။"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "ေရြးထားေသာ မက္ေဆ့ခ်္မ်ားကုိ မုိဘုိင္းကိရိယာသုိ႔ ကူးၿပီးပါၿပီ။"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "ပူးတြဲဖုိင္ကုိ မထည့္ႏုိင္ပါ။ ပူးတြဲဖုိင္ အမ်ားဆံုးအေရအတြက္ (%d) သုိ႔ေရာက္ပါၿပီ။"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "လက္ခံသူမ်ားကို ေပါင္းထည့္လို႔ မရႏိုင္ပါ။ နံပါတ္မ်ားက မမွန္ပါ။"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "လက္ခံသူကို ေပါင္းထည့္လို႔ မရႏိုင္ပါ။ နံပါတ္က မမွန္ပါ။"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "လက္ခံသူအခ်ိဳ႕ကို ေပါင္းထည့္လို႔ မရႏိုင္ပါ။ နံပါတ္မ်ားက မမွန္ပါ။"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ATTACH_FILE_FILE_FORMAT_NOT_SUPPORTED"
+msgstr "ဖိုင္တြဲ၍မရပါ။ ဖိုင္ ေဖာမတ္ကုိ မပံ့ပိုးေပးထားပါ။"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ဖုိင္ကို ႀကိဳတင္ၾကည့္ျမင္ကြင္း၌ ၾကည့္လို႔ မရႏုိင္ပါ။ မပံ့ပိုးေပးေသာ ဖုိင္အမ်ိဳးအစား။"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "လက္ခံမည့္သူမ်ား စာရင္း"
+
+msgid "IDS_MSGC_OPT_ADD_TEXT"
+msgstr "စာသား ထည့္ပါ"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "လက္ဆင့္ကမ္းေပးပို႔၍မရပါ။\nကို လက္ဆင့္ကမ္းေပးပို႔ရန္ ေသာ့ခတ္ထားပါသည္"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "မက္ေဆ့ခ်္ သယ္ျပီးျဖစ္သည္"
+
+msgid "IDS_MSGF_BODY_MESSAGE_RETRIEVED"
+msgstr "သတင္းစကားျပန္လည္ရယူျပီး"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "အေၾကာင္းအရာမရွိပါ"
+
+msgid "IDS_MSGF_BODY_ROAMINGRECEPTION_RESTRICTED"
+msgstr "ကန္႔သတ္ထားေသာ"
+
+msgid "IDS_MSGF_BODY_SERVICE_LOADING"
+msgstr "၀န္ေဆာင္မႈ အခ်က္အလက္မ်ား ျဖည့္သြင္းေနပါသည္"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "မသိေသာ"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "အီးေမးလ္ျဖင့္ ပုိ႔ပါ"
+
+msgid "IDS_MSGF_POP_MESSAGE_DEFERRED"
+msgstr "သတင္းစကားေရႊ႕ဆိုင္းျပီး"
+
+msgid "IDS_MSGF_POP_MESSAGE_UNRECOGNISED"
+msgstr "မမွတ္မိေသာ သတင္းစကား"
+
+msgid "IDS_MSGF_POP_MULTIMEDIA_MESSAGE_SENT"
+msgstr "မာလ္တီမီဒီယာ မက္ေဆ့ခ်္ေပးပို႕ျပီး။"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "နံပါတ္မရွိပါ"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "သတင္းစကား ျပန္လည္ရယူျခင္းမေအာင္ျမင္ပါ"
+
+msgid "IDS_MSGF_POP_SENDING_MULTIMEDIA_MESSAGE_FAILED"
+msgstr "ပႆာဒစံုေဖ်ာ္ေျဖမႈအမ်ိဳးအစားသတင္းစကားပို႔မႈ မေအာင္ျမင္ပါ"
+
+msgid "IDS_MSGF_POP_UNREACHABLE"
+msgstr "မေရာက္ႏိုင္ေသာ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "ပယ္ဖ်က္ပါ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "ပယ္ဖ်က္ပါ"
+
+msgid "IDS_MSG_BUTTON_NEXT_ABB"
+msgstr "ေနာက္"
+
+msgid "IDS_MSG_HEADER_ADD_TAG"
+msgstr "တဂ္ ထည့္ပါ"
+
+msgid "IDS_MSG_MBODY_CELL_BROADCAST"
+msgstr "ဆဲလ္ အသံလႊင့္ျခင္း"
+
+msgid "IDS_MSG_MBODY_DELIVERY"
+msgstr "ေပးပုိ႔မႈ"
+
+msgid "IDS_MSG_MBODY_EVENT"
+msgstr "လႈပ္ရွားမႈမ်ား"
+
+msgid "IDS_MSG_MBODY_PROMOTION"
+msgstr "ေရာင္းအားျမွင့္မႈ"
+
+msgid "IDS_MSG_MBODY_QUICK_RESPONSES"
+msgstr "လွ်င္ျမန္ေသာ တုန္႔ျပန္မႈမ်ား"
+
+msgid "IDS_MSG_OPT_ADD_TAG"
+msgstr "တဂ္ ထည့္ပါ"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "ပိတ္ဆီးစာရင္းသို႔ ထည့္ပါ"
+
+msgid "IDS_MSG_OPT_BLOCKED_MESSAGES_ABB"
+msgstr "ပိတ္ဆီးထားေသာ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_OPT_COMPOSE"
+msgstr "စာစီပါ"
+
+msgid "IDS_MSG_OPT_DELIVERY"
+msgstr "သယ္ပို႔ျခင္း"
+
+msgid "IDS_MSG_OPT_EVENT"
+msgstr "လႈပ္ရွားမႈမ်ား"
+
+msgid "IDS_MSG_OPT_FINANCE"
+msgstr "ေငြေၾကး"
+
+msgid "IDS_MSG_OPT_PRIMARY"
+msgstr "မူလမထမ"
+
+msgid "IDS_MSG_OPT_PROMOTION"
+msgstr "ေရာင္းအားျမွင့္"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "ရွာေဖြပါ"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "သတ္မွတ္ခ်က္မ်ား"
+
+msgid "IDS_MSG_SBODY_CONVERSATIONS_WITH_CONTACTS_AND_MESSAGES_THAT_DO_NOT_APPEAR_UNDER_OTHER_TAGS"
+msgstr "အျခားတဂ္မ်ားတြင္ မေပၚေသာ အဆက္အသြယ္မ်ားႏွင့္ မက္ေဆ့ခ်္မ်ားျဖင့္ စကားေျပာျခင္းမ်ား"
+
+msgid "IDS_MSG_SBODY_DEALS_OFFERS_ADVERTISEMENTS_AND_OTHER_MARKETING_MESSAGES"
+msgstr "အေရာင္းအဝယ္မ်ား၊ ေလွ်ာ့ေစ်းမ်ား၊ ေၾကာ္ျငာမ်ားႏွင့္ အျခား ေစ်းကြက္ျမႇင့္တင္မႈ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_SBODY_RECEIPTS_BILLS_ORDER_CONFIRMATIONS_AND_BANK_STATEMENTS"
+msgstr "ေငြေျပစာမ်ား၊ ေငြေတာင္းခံလႊာမ်ား၊ မွာယူမႈ အတည္ျပဳခ်က္မ်ားႏွင့္ ဘဏ္ေၾကညာခ်က္မ်ား"
+
+msgid "IDS_MSG_SBODY_RESERVATION_CONFIRMATIONS_MEETING_NOTIFICATIONS_AND_OTHER_SCHEDULE_RELATED_MESSAGES"
+msgstr "ၾကိဳတင္မွာယူမႈ အတည္ျပဳခ်က္မ်ား၊ အစည္းအေဝး အသိေပးခ်က္မ်ားႏွင့္ အျခား သက္ဆိုင္ရာ-စီစဥ္ထားေသာ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_TMBODY_FINANCE"
+msgstr "ေငြေၾကး"
+
+msgid "IDS_MSG_BODY_MESSAGES_ABOUT_PICKUPS_RETURNS_AND_DELIVERIES"
+msgstr "ေကာက္ယူဝယ္ျခင္း၊ ျပန္ေပးျခင္းႏွင့္ သယ္ပို႔ျခင္းဆိုင္ရာ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "ပိတ္ဆီးစာရင္းမွ ဖယ္ရွားပါ"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM ကတ္သို႔ ေကာ္ပီကူးပါ"
+
+msgid "IDS_MSG_OPT_CALENDARS"
+msgstr "ျပကၡဒိန္မ်ား"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "႐ုပ္ပုံမ်ား"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "ဗီဒီယိုမ်ား"
+
+msgid "IDS_MSG_OPT_MEMOS"
+msgstr "မီမုိမ်ား"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "အဆက္အသြယ္မ်ားသို႔ ထည့္ပါ"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "မက္ေဆ့ခ်္မ်ားကို သင္ ပို႔ (သို႔) လက္ခံ ၿပီးေနာက္မွာ၊ ၎တို႔အား ဤေနရာတြင္ ျပပါလိမ့္မည္။"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "မက္ေဆ့ခ်္မ်ား မရွိပါ"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "မက္ေဆ့ခ်္မ်ားကုိ အလုိလုိ ျပန္ထုတ္ယူပါ။"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "အေၾကာင္းအရာ ထည့္ပါ"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "အျမန္ တုန္႔ျပန္ျခင္း"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "ပံု ရိုက္ပါ"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "ဗြီဒီယိုရိုက္ပါ"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "အသံ ဖုိင္မ်ား"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "အသံဖိုင္ကုိ ဖမ္းယူပါ"
+
+msgid "IDS_MSG_TPOP_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "မက္ေဆ့ခ်္ ပို႔ရန္ မေအာင္ျမင္ပါ။"
+
+msgid "IDS_MSG_SBODY_SENDING_FAILED_M_STATUS_ABB"
+msgstr "ပို႔ျခင္း မေအာင္ျမင္ပါ"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_AS_ABB"
+msgstr "အေၾကာင္းအရာအျဖစ္ထည့္ပါ"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "စာသား"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "ပူးတြဲခ်က္"
+
+msgid "IDS_MSG_TMBODY_MESSAGE_BLOCK_LIST"
+msgstr "ပိတ္ဆီး မက္ေဆ့ခ်္ စာရင္း"
+
+msgid "IDS_MSG_SBODY_ADD_PHONE_NUMBERS_TO_BLOCK_MESSAGES_SENT_FROM_THEM"
+msgstr "၎တို႔ထံမွ ပို႔လိုက္ေသာ မက္ေဆ့ခ်ိန္မ်ားကို ပိတ္ဆည္းရန္ ဖုန္းနံပါတ္မ်ား ထည့္ပါ။"
+
+msgid "IDS_MSG_MBODY_BLOCK_CALLS_FROM_SAME_NOS"
+msgstr "အလားတူနံပါတ္မွ ဖုန္းေခၚဆုိမႈမ်ားကို ပိတ္ဆီးပါ"
+
+msgid "IDS_MSG_HEADER_MESSAGE_BLOCK_LIST_ABB"
+msgstr "ပိတ္ဆီး မက္ေဆ့ခ်္ စာရင္း"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ဖုန္းနံပါတ္မ်ားကို မက္ေဆ့ခ်္ ပယ္ခ် စာရင္းသို႔ ထည့္ျပီးေနာက္ ၄င္းတို႔ကို ဤေနရာတြင္ ျပလိမ့္မည္။"
+
+msgid "IDS_MSG_HEADER_BLOCKED_PHRASES_ABB"
+msgstr "ပိတ္ဆီးထားသည့္ စကားစုမ်ား"
+
+msgid "IDS_MSG_TMBODY_BLOCKED_PHRASES"
+msgstr "ပိတ္ဆီးထားသည့္ စကားစုမ်ား"
+
+msgid "IDS_MSG_SBODY_ADD_PHRASES_THAT_WILL_CAUSE_MESSAGES_TO_BE_BLOCKED"
+msgstr "မက္ေဆ့မ်ားပိတ္ေစမည့္ စာသားမ်ားကိုထည့္ပါ"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "စကားစုမ်ားကုိ ထည့္ၿပီးေနာက္ ၄င္းတုိ႔ကုိ ဤေနရာတြင္ ျပလိမ့္မည္။"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "ပယ္ဖ်က္ပါ"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d ကို ေရြးထားပါသည္"
+
+msgid "IDS_MSG_OPT_CONTACTS"
+msgstr "အဆက္အသြယ္မ်ား"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "မဲဆဲဇ္ 1 ခုကို ဖ်က္မည္။"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "မက္ေဆ့ခ်္ %d ကိုဖ်က္ပစ္မည္။"
+
+msgid "IDS_MSG_POP_ALL_MESSAGES_WILL_BE_DELETED"
+msgstr "မက္ေဆ့ခ်္အားလံုး ဖ်က္ပစ္လိမ့္မည္။"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "စကားေျပာ ၁ ခုကို ဖ်က္ပစ္လိမ့္မည္။"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "စကားေျပာျခင္း %d ခု ဖ်က္ပစ္မည္။"
+
+msgid "IDS_MSG_POP_ALL_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "စကားေျပာအားလံုးကို ဖ်က္ပစ္လိမ့္မည္။"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "ဖ်က္ပစ္ပါ"
+
+msgid "IDS_MSG_TMBODY_TAGS"
+msgstr "တဂ္မ်ား"
+
+msgid "IDS_MSG_HEADER_TAGS"
+msgstr "စာတန္းမ်ား"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "အုိေက"
+
+msgid "IDS_MSG_OPT_END_WITH"
+msgstr "ႏွင့္ အဆုံးသတ္ပါ"
+
+msgid "IDS_MSG_OPT_CREATE"
+msgstr "ဖန္တီးျခင္း"
+
+msgid "IDS_MSG_HEADER_EDIT_QUICK_RESPONSE_ABB"
+msgstr "အျမန္ တုန္႔ျပန္မႈကို ျပဳျပင္ပါ"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "အားလံုးကိုေရြးပါ"
+
+msgid "IDS_MSG_BODY_MESSAGES_M_APPLICATION_NAME_ABB"
+msgstr "မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_BODY_PUSH_MESSAGE"
+msgstr "ပြတ္ရွ္ မက္ေဆ့ခ်္"
+
+msgid "IDS_MSG_BODY_FROM_C"
+msgstr "မွ"
+
+msgid "IDS_MSG_BODY_TO_C"
+msgstr "သုိ႔"
+
+msgid "IDS_MSG_HEADER_QUICK_RESPONSES_ABB"
+msgstr "လွ်င္ျမန္ေသာ တံု႔ျပန္မႈမ်ား"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "သတ္မွတ္ခ်က္မ်ား"
+
+msgid "IDS_MSG_BODY_SUBJECT_C"
+msgstr "ဘာသာရပ္"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE"
+msgstr "ဖုိင္ပူးတြဲထည့္၍ မရပါ။ ဖိုင္ဆိုက္ ၾကီးလြန္းသည္။"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "သတိေပးခ်က္မ်ား"
+
+msgid "IDS_MSG_MBODY_PUSH_MESSAGES"
+msgstr "တုိက္တြန္းသည့္ မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "တုန္ခါျခင္း"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "မူလသတ္မွတ္ထားေသာ"
+
+msgid "IDS_MSG_BODY_SIZE_C"
+msgstr "အရြယ္အစား:"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "အမ်ားဆုံး မက္ေဆ့ခ်္ အရြယ္အစား (%s) ကို ေက်ာ္ေနပါၿပီး။ ပူးတဲတပ္အဆင္အရာကို အရြယ္ျပန္သတ္မွတ္ေနဆဲ..."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "ျဖင့္ ပို႔ပါ"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "%s SIM ကတ္သို႔ ေကာ္ပီကူးထားေသာ မက္ေဆ့ခ်္။"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "အဆက္အသြယ္ အပ္ဒိတ္လုပ္ပါ"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "အသံ ေခၚဆိုမႈ ျပဳလုပ္ပါ"
+
+msgid "IDS_MSG_OPT_MAKE_VIDEO_CALL"
+msgstr "ဗီဒီယိုဖုန္း ေခၚပါ"
+
+msgid "IDS_MSG_OPT_COMPOSE_MESSAGE"
+msgstr "မက္ေဆ့ခ်္ အသစ္ ေရးပါ"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "မဟုတ္"
+
+msgid "IDS_MSG_BODY_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "မက္ေဆ့ခ်္ စင္တာ နံပါတ္"
+
+msgid "IDS_MSG_TPOP_INVALID_NUMBER_ENTERED"
+msgstr "တရားမ၀င္ေသာ နံပါတ္ကို ထည့္သြင္းခဲ့သည္။"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "ရလဒ္မ်ား မေတြ႔ပါ"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "စာသား ကူးပါ"
+
+msgid "IDS_MSG_OPT_GO_TO_WEB_ADDRESS"
+msgstr "ဝက္ဘ္ လိပ္စာသို႔ သြားရန္"
+
+msgid "IDS_MSG_BUTTON_ADD"
+msgstr "ထပ္ထည့္ပါ"
+
+msgid "IDS_MSG_HEADER_ADD"
+msgstr "ထည့္ပါ"
+
+msgid "IDS_MSG_BODY_SILENT"
+msgstr "အသံတိတ္"
+
+msgid "IDS_MSGF_BODY_MESSAGE_IS_TOO_LARGE_TO_STORE_AS_A_SINGLE_MESSAGE_TO_SIM_CARD"
+msgstr "Message is too large to store as a single message to SIM card."
+
+msgid "IDS_MSG_TPOP_TAG_REMOVED"
+msgstr "တဂ္ကို ဖယ္ထုတ္ခဲ့ၿပီးၿပီ။"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP မက္ေဆ့ခ်္မ်ား"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "မက္ေဆ့ခ်္စာရင္းသို႔ ေရႊ႕ထားေသာ မက္ေဆ့ခ်္ %d ခု။"
+
+msgid "IDS_MSG_HEADER_ADD_TO_BLOCK_LIST_ABB"
+msgstr "ပိတ္ဆီးစာရင္းသို႔ ထည့္ပါ"
+
+msgid "IDS_ST_HEADER_MALWARE_DETECTED_ABB"
+msgstr "Malware ကို ရွာေတြ႕ခဲ့ပါသည္"
+
+msgid "IDS_ST_POP_SELECT_WHETHER_TO_VIEW_THE_MESSAGE_ANYWAY"
+msgstr "မက္ေဆ့ခ်္ ၾကည့္ရန္ မၾကည့္ရန္ကို ဘာပဲျဖစ္ျဖစ္ တစ္ခုခုေရြးပါ။"
+
+msgid "IDS_ST_BUTTON_DO_NOT_VIEW_ABB"
+msgstr "မၾကည့္ပါဘူး"
+
+msgid "IDS_ST_BUTTON_VIEW_ABB2"
+msgstr "ၾကည့္ပါ"
+
+msgid "IDS_ST_POP_THIS_MESSAGE_WILL_NOT_BE_VIEWED_TAP_DELETE_TO_DELETE_THIS_MESSAGE"
+msgstr "ဤမက္ေဆ့ခ်္ကို ျပလိမ့္မည္ မဟုတ္ပါ။ ဤမက္ေဆ့ခ်္ ဖ်က္ရန္ ဖ်က္ပါကို ႏွိပ္ပါ။"
+
+msgid "IDS_MSG_BODY_MAPS"
+msgstr "ေျမပုံမ်ား"
+
+msgid "IDS_MSG_TPOP_WELCOME_TO_SAMSUNG_E_DEVICE_NOW_REGISTERED"
+msgstr "ဆမ္ေဆာင္းမွ ႀကိဳဆိုပါ၏! ကိရိယာကို ယခု မွတ္ပုံတင္ၿပီးပါၿပီ။"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ဖိုင္ဆိုက္ ၾကီးလြန္းသည္"
+
+msgid "IDS_MSG_POP_CELL_BROADCAST_SERVICE_WILL_BE_ENABLED_PLEASE_WAIT_ING"
+msgstr "ဆဲလ္ ထုတ္လႊင့္ျခင္း ဝန္ေဆာင္မႈကို ဖြင့္သြားပါမည္။ ေက်းဇူးျပဳ၍ ေစာင့္ပါ..."
+
+msgid "IDS_MSG_POP_CELL_BROADCAST_SERVICE_WILL_BE_DISABLED_PLEASE_WAIT_ING"
+msgstr "ဆဲလ္ ထုတ္လႊင့္ျခင္း ဝန္ေဆာင္မႈကို ပိတ္သြားပါမည္။ ေက်းဇူးျပဳ၍ ေစာင့္ပါ..."
+
+msgid "IDS_MSGF_BODY_DEACTIVATION_FAILED"
+msgstr "သက္ဝင္မႈျဖဳတ္ျခင္း မေအာင္ျမင္ပါ။"
+
+msgid "IDS_MSGF_POP_ACTIVATION_FAILED"
+msgstr "သက္ဝင္ေအာင္လုပ္ျခင္း မေအာင္ျမင္ပါ။"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "သင့္ကိရိယာ သိုေလွာင္ခန္း၌ ေနရာလြတ္ အလုံအေလာက္ မရွိပါ။ သတ္မွတ္ခ်က္မ်ား > ပါဝါႏွင္ သိုေလွာင္ျခင္း > သိုေလွာင္ျခင္းသို႔ သြားပါ၊ ၿပီးေနာက္ ဖိုင္အခ်ိဳ႕ကို ဖ်က္ၿပီး ထပ္ႀကိဳးစားပါ။"
+
+msgid "IDS_MSG_POP_NO_CONTENT_TO_SAVE"
+msgstr "သိမ္းထားရန္ ပါဝင္သည္မ်ား မရွိပါ။"
+
+msgid "IDS_MSG_OPT_SAVE_MESSAGE_AS_DRAFT_ABB"
+msgstr "မက္ေဆ့ခ်္ကို စာၾကမ္းအျဖစ္ သိမ္းဆည္းပါ"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maximum number of recipients is %d. Some recipients may be lost."
+
diff --git a/main/po/my_MM.po b/main/po/my_MM.po
new file mode 100644 (file)
index 0000000..83083eb
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "ပင်မ"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "ဒေတာ လှည့်လည်ခြင်း ပိတ်ထားသည်။ ဒေတာ လှည့်လည်ခြင်း ဖွင့်ပြီး ပြန်ကြိုးစားပါ။"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "မက်ဆေ့ချ်အသစ်"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ပယ်ဖျက်ပါ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ပြီးပြီ"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "မသိသော"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "မိုဘိုင်း"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "မိုဘိုင်းဒေတာ အလုပ်မလုပ်စေပါ။ မိုဘိုင်းဒေတာကို အလုပ်လုပ်စေပြီး ထပ်ကြိုးစားပါ။"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "SEND"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "အထောက်အပံ့မပေးသော မီဒီယာအမျိုးအစား။"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Unable to send messages while in Flight mode. Disable Flight mode and try again."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Unable to forward.\nFile is forward locked."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "There is not enough space in your device storage. Go to Settings > Power and storage > Storage, then delete some files and try again."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "ထိပ်ရှိစာသား"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "အောက်ခြေရှိစာသား"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "အဆင်အပြင်ရွေးချယ်ပါ"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Unable to add content."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "%s သို့ မက်ဆေ့ချ် ပို့ရန် စီစဉ်ထားသည်။ ယခုပို့မည်လား?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "အများဆုံးရှိနိုင်သည့် မက်ဆေ့ချ်အရွယ်အစားသို့ ရောက်ရှိပြီ ဖြစ်က ပါသည်။"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "ဘက်ထရီ နည်းနေပါသည်"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Duration must be at least %d seconds."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "ပျံသန်းမှုအနေအထားကိုမရအောင်လုပ်ထားသည်။"
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM ကတ် သို့ ကူးထားသည်။"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "ပယ်ဖျက်ပြီးပြီ"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Use other contact info"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "ဖြင့် ပို့ပါ"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "ရုပ်ပုံ"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "အီးမေးလ်"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "အစားထိုးပါ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "မြင်ကွင်း"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "ဖယ်ထုတ်ပါ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "ဖွင့်ပါ"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "သို့"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "မက်ဆေ့ချ်ကို ပယ်ဖျက်ပါ"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "လက်ခံမည့်သူများ စာရင်း"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "အကြိုမြင်ကွင်း"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Duration for slide %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "အရာများကို ဆလိုက်ရှိုးသို့ ထပ်ထည့်နေစဉ် စောင့်ဆိုင်းပါ။"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "မက်ဆေ့ချ်ပေးပို့၍မရပါ။"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "ဖုန်းခေါ်သံရွေးချယ်ပါ"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "ဖတ်ပြီးကြောင်း အစီရင်ခံစာကို ပေးပို့မည် ဖြစ်ပါသည်။"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "မေတ္တာရပ်ခံထားခြင်းမရှိပါ"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "အများဆုံး လက်ခံသူများ အရေအတွက် (%d) သို့ ရောက်ရှိပါပြီ။"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "အကြောင်းအရာ ရိုက်သွင်းပါ"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "ထပ်နေသောလက်ခံမည့်သူ။"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Fwd"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "သိမ်းဆည်း၍မရပါ။"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "တည်နေရာ ရှာ၍မရပါ။"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "ဖျက်ပစ်၍မရပါ။"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "ကူးယူ၍ မရပါ။"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Some characters may be lost. Continue?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM not inserted."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "သိမ်းခြင်း မအောင်မြင်ပါ။"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Saved in My Files."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Retrieving message failed"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "ကန့်သတ်ထားသော အကြောင်းအရာ အမျိုးအစား။ မည်သို့ဆိုစေ ပူးတွဲမည်လား?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "ပြန်ဖေါ်ထုတ်နေ…."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "ပယ်ချပြီးပါပြီ"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "အစီရင်ခံစာ ဖတ်ပါ"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "နံပါတ်မရှိပါ"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "ပူးတွဲပို့လိုသည်များ မရှိပါ"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "မက်ဆေ့ချ် အသစ်များ"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM ကတ် မှ မက်ဆေ့ချ်အား ကူးယူပြီးပြီ။"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maximum number of recipients is %d. Some recipients may be lost."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "ပူးတွဲချက် အများဆုံး အရေအတွက် (%s) ကျော်သွားပါပြီ။"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "အများဆုံး အက္ခရာအရေအတွက်သို့ရောက်ပါပြီ။"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "လုပ်နေဆဲ….."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "ပြန်လည်စတင်အသုံးပြုနိုင်ရန် ရှင်းလင်းနေပါသည်.."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "If you don't want to replace the file, rename it."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "ွှဤမက်ဆေ့ချ်တွင် ဖေါ်ပြမထားသော ပူးတွဲဖိုင်တစ်ဖိုင် ပါနေပါသည်။"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "ဤမက်ဆေ့ချ်တွင် ပြမထားသော ပူးတွဲဖိုင်များ ပါ၀င်နေပါသည်။"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ဖိုင်အမည် ရှိနှင့်ပြီးသား ဖြစ်နေသည်။"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "ဖျက်နေပါသည်…"
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "ကလစ်ဘုတ်သို့ မိတ္တူကူးပြီးပြီ"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "စာသားမက်ဆေ့ချ်အဖြစ်သို့ ပြောင်းနေပါသည်"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "မာလ်တီမီဒီယာမက်ဆေ့ချ်အဖြစ်သို့ ပြောင်းနေပါသည်"
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s ပိတ်ပင်မည်လား?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "You are about to go online(%s). Continue?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "စာသားမက်ဆေ့ချ်"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "ဘာသာရပ်"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "အီးမေးလ်ဖြင့် ပို့ပါ"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "ပေးပို့သူ"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "ရွေးချယ်ပါ"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "ပူးတွဲပါများကို သိမ်းဆည်းပါ"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "သိမ်းဆည်းပါ"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "ဖယ်ထုတ်ပါ"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "တပ်ဆင်ပါ"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "လက်ဆင့်ကမ်းပေးပို့ပါ"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "မက်ဆေ့ချ် တည်းဖြတ်ပါ"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "ဖျက်ပစ်မည်လား?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Delete messages"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "မက်ဆေ့ချ်များ ​​ရွေးပါ"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "အားလုံးကို သိမ်းဆည်းပါ"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "မက်ဆေ့ချ်အသေးစိတ်"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "သက်တမ်းကုန်မည့်ရက်: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "အဆင့်မြင့် ရှာခြင်း"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Save all attachments"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "မသိသော"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "သို့"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "စာသား မက်ဆေ့ချ်များ"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM မယ်မိုရီပြည့်ပြီ။ အချို့အရာတို့ကိုဖျက်ပါ။"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "သတ်မှတ်ချက်များ"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "ပို့ပြီး:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "မေတ္တာရပ်ခံပြီး"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "လက်ခံမည့်သူ"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "လက်ခံရရှိပြီး :"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "လက်ခံရရှိပြီး"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "အစီရင်ခံစာ ဖတ်ပါ"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "တိုက်တွန်းသည့် မက်ဆေ့ချ်များ"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d messages"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d စကားအပြန်အလှန်ပြောဆိုမှုများ"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "အခြား"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "အကြောင်းအရာမရှိပါ"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "အမည် မရှိပါ"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "မာတီမီဒီယာမက်ဆေ့ချ်သတိပေးချက်များ"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "မာလ်တီမီဒီယာမက်ဆေ့ချ်"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "ဖတ်ပါ"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Message rejected."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "မက်ဆေ့ချ် ဆိုက်"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "မက်ဆေ့ချ်အတွက် ရွေးချယ်နိုင်သည့်များ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Message delivered."
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "မက်ဆေ့ချ်"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "ကျွနု်ပ်"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "ပူးတွဲမှု အများဆုံး အရေအတွက် (%1$s) ထက် ကျော်သွားပါပြီ။ ပထမဆုံး %2$s သာ ထည့်မည်။"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Invalid recipient."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "မှ"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "မှ :"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "ရက်လွန်သွားပါပြီ"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "ပေးပို့ခြင်း မအောင်မြင်ပါ။"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "စာဝေပြီးကြောင်းအစီရင်ခံစာ"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP messages"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "စာသား ကူးပါ"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB မက်ဆေ့ချ်များ"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "အားလုံး"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "မက်ဆေ့ချ် ၁ ခု"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "စကားပြောဆိုခြင်း ၁"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "သင်ပို့သော မက်ဆေ့ချ်တိုင်းအတွက် ဖတ်ပြီး အစီရင်ခံစာတစ်စောင် တောင်းဆိုပါ။"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "သင်ပို့သော မက်ဆေ့ချ်တိုင်းအတွက် သယ်ပို့မှု အစီရင်ခံစာတစ်စောင် တောင်းဆိုပါ။"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "ရေဒီယို ခလုတ်"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ဖွင့်/ပိတ် ခလုတ်"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "တိုးချဲ့နိုင်သော စာရင်း"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Automatically retrieve MMS messages."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Unable to preview file. Unsupported file type."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Unable to add some recipients. Numbers not valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Unable to add recipient. Number not valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Unable to add recipients. Numbers not valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Unable to add attachment. Maximum number of attachments (%d) reached."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "This number is not valid."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Selected messages copied to mobile device."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d messages moved to message list."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Number removed from message block list."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Number added to message block list."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Message copied to %s SIM card."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "အက္ခရာ အများဆုံး အရေအတွက် ကျော်နေသည်။"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Maximum message size (%s) exceeded. Resizing attachments..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Invalid character entered."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Add recipients."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 message moved to message list."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Text messages"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Sound"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimedia messages"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Messages on SIM card"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Input mode"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Auto retrieve while roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Auto retrieve"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "ယခု ပို့ပါ"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "မဟုတ်ပါ"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Select an input mode for composing messages."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "မဟုတ်"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Manage the messages stored on your SIM card."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Your message will be discarded. No recipients have been selected."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "ပို့ရန် စီစဉ်ထားသည့် မက်ဆေ့ချ် ပို့မရပါ။ အခြားအချိန် သတ်မှတ်ပါ။"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "ဖုန်းခေါ်မှုအတွင်း ဖွင့်၍မရပါ။"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ဖိုင် ပူးတွဲ၍ မရပါ။ ဖိုင်ဆိုက် ကြီးလွန်းသည်။ အီးမေးလ်၊ ဘလူးတုသ်၊ Wi-Fi စသည်တို့မှတဆင့် ပို့ခြင်း စမ်းကြည့်ပါ။"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "To send this multimedia message, the device will connect to a different mobile network. This will disconnect your device from your current mobile network."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "To download this multimedia message, the device will connect to a different mobile network. This will disconnect your device from your current mobile network."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "This message will be resent."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "မက်ဆေ့ချ် %d ကိုဖျက်ပစ်မည်။"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "စကားပြောခြင်း %d ခု ဖျက်ပစ်မည်။"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "စာရင်းထဲတွင် ပုံစံပြားများ မရှိပါ"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "အဝင် မက်ဆေ့ချ်များသာ"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "အထွက် မက်ဆေ့ချ်တွင် မူရင်း စာသား ပါပါစေ"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "ကြချိန်မှာ %d စက္ကန့်ထက် နည်းရမည်။"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "ဖျက်ပစ်ပြီးပါပြီ"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "မဲဆဲဇ် 1 ခုကို ဖျက်မည်။"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "စကားပြော ၁ ခုကို ဖျက်ပစ်လိမ့်မည်။"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "View details"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "View contact details"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "View as slideshow"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "ဗီဒီယိုများ"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Update contact"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "ယူနီကုဒ်"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "စာသား"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "ပုံ ရိုက်ပါ"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "သတ်မှတ်ချက်များ"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "ရှာဖွေပါ"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Save attachments"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "ပြန်ပို့ပါ"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Reply"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Remove from block list"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "ဗွီဒီယိုရိုက်ပါ"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Record audio file"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "အမြန် တုန့်ပြန်ခြင်း"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "မရှိ"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Make voice call"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "ရုပ်ပုံများ"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM alphabet"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "ဖုန်း၏ မယ်မိုရီသို့ တင်ပို့ပါ"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "တည်းဖြတ်"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "မက်ဆေ့ချ် ဖျက်ပစ်ပါ"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Delete conversation"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "ဖျက်ပစ်ပါ"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "မူလသတ်မှတ်ထားသော"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Create contact"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copy to SIM card"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copy to device"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "စာသား ကူးပါ"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "ကူးပါ"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "အရန်သိမ်းပါ"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "အလိုအလျောက်"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "အသံ ဖိုင်များ"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Attachment"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "အဆက်အသွယ်များသို့ ထည့်ပါ"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Add to block list"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "လက်ခံမည့်သူများ ထည့်ပါ"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "ရှာဖွေပါ"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "ရလဒ်များ မတွေ့ပါ"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "အမြန် တုန့်ပြန်မှုများ မရှိပါ"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "မည်သည့်စကားစုကိုမျှ မပိတ်ထားပါ"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "No messages on SIM card"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "No messages"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "ပိတ်ဆီးထားသော နံပါတ်များ မရှိပါ"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "တုန်ခါခြင်း"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "မသိသောနံပါတ်"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Text message centre number"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "အားလုံးကိုရွေးပါ"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alerts"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "ဘာသာပြန်ပါ"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Text messages"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Switch mobile network"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS centre"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "သတ်မှတ်ချက်များ"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Select recipient"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d ကို ရွေးထားပါသည်"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Messages on SIM card"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "မက်ဆေ့ချ်များ"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ဖြည့်သွင်း အနေအထား"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ဖိုင်ဆိုက် ကြီးလွန်းသည်"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Failed to send message"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "မက်ဆေ့ချ်များကို စွန့်ပစ်ပါ"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "ပယ်ဖျက်ပါ"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "ဖန်တီးခြင်း"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "သတိ"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Add content"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "ကူးပြောင်းပါ"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "သိမ်းပါ"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Resend"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "ဖယ်ရှားမလား"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "အိုကေ"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ဒေါင်းလုတ်လုပ်မည်လား"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "ဖယ်ရှားပါ"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "ဖျက်ပစ်ပါ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "ပယ်ဖျက်ပါ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "ပယ်ဖျက်ပါ"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contacts"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "sound & shot ဖိုင်တစ်ခု ရွေးထားသည်။ အသံဒေတာက MMS အတွက် ပံ့ပိုးမထား၍ ပုံကိုသာ ပူးတွဲလိမ့်မည်။"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "ဟုတ်ကဲ့"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Waiting to send..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Unable to send this message. Insert your SIM card and try again."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "အမျိုးအစား"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "တားမြစ်ထားသော မီဒီယာပုံစံများကို အသုံးပြုရန်အတွက် သင့် MMS ဖန်တီးမှုအနေအထားကို ပြောင်းပါ။"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Time sent:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Time received:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "အမှတ်ခြစ်ရန်အတွက်"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "အခြေအနေ"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "ပို့ခဲ့ပြီးပြီ"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Sending..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "ပို့ပေးရာတွင် မအောင်မြင်ပါ"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sec"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Retrieve messages automatically while roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Retrieve messages automatically."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Read report: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "အခြားလူ"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "မက်ဆေ့ချ်"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "မအောင်မြင်ပါ"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "စာသား သွင်းပါ"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Draft"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Delivery report: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB message"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendar"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you send or receive messages, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you create quick responses, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you copy messages to the SIM card, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you add phrases, they will be shown here."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you add numbers to the message block list, they will be shown here."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ဖျက်ပါ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "အချက်အလက်ဖြည့်သွင်းနေပါသည်…"
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "သတိပေးချက်များ"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "ကျွနု်ပ်"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "ပို့ပါ"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "ပို့ပါ"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ပို့ပါ"
+
diff --git a/main/po/nb.po b/main/po/nb.po
new file mode 100644 (file)
index 0000000..ef4be41
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Hjem"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Dataroaming er deaktivert. Aktiver dataroaming, og prøv på nytt."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Ny melding"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "AVBRYT"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "FULLFØRT"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Ukjent"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobildata er deaktivert. Aktiver mobildata, og prøv på nytt."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "SEND"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Medietypen støttes ikke."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Kan ikke sende meldinger mens Flymodus er på. Deaktiver Flymodus og prøv på nytt."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Kan ikke legge til. Filen er beskyttet mot videresending"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Det er ikke nok ledig plass i enhetsminnet. Gå til Innstillinger > Strøm og lagring > Lagring, slett noen filer, og prøv på nytt."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Tekst øverst"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Tekst nederst"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Velg layout"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Kan ikke legge til innhold."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Meldingen er planlagt sendt til %s. Sende nå?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Maksimal meldingsstørrelse er nådd."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Lavt batterinivå."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Varigheten må være minst %d sekunder."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Deaktiverer Flymodus..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Kopiert til SIM-kortet."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Avbrutt."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Bruk annen kontaktinfo"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Send via"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Bilde"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-post"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Erstatt"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Vis"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Fjern"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Spill av"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Til"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Avbryt melding"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Mottakerliste"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Forhåndsvisning"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Varighet for bilde %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Vent mens elementene legges til i bildefremvisning."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Kan ikke sende melding."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Velg ringetone"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Leserapport blir sendt."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Ikke forespurt"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Maksimalt antall mottakere (%d) er nådd."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Skriv inn emne."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Duplisert mottaker."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Vid.send"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Kan ikke lagre."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Kan ikke finne posisjon."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Kan ikke slette."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Kan ikke kopiere."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Noen tegn kan gå tapt.\nFortsette?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM-kort ikke satt inn."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Kunne ikke lagre."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Lagret i Mine filer."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Kunne ikke hente melding"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Begrenset innholdstype. Legge ved likevel?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Gjenoppretter..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Avvist."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Leserapport"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Ingen nummer"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Ingen vedlegg"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nye meldinger"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Meldinger kopiert fra SIM-kort."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maksimalt antall mottakere er %d. Noen mottakere kan gå tapt."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Maksimalt antall vedlegg (%s) er oversteget."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Nådd maksimalt antall tegn."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Under behandling..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Initialiserer..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Hvis du ikke vil bytte ut filen, gir du den nytt navn."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Denne meldingen inneholder ett filvedlegg som ikke vises."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Denne meldingen inkluderer vedlagte filer som ikke vises."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Filnavn allerede i bruk."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Sletter..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Kopiert til utklippstavle."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Konverterer til tekstmelding..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Konverterer til multimediemelding..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Sperre %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Du er i ferd med å gå på nett (%s). Fortsette?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Tekstmelding"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Emne:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Avsender via e-post"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Avsender"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Velg"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Lagre vedlegg"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Lagre"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Fjern"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Installer"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Videresend"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Rediger melding"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Slette?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Slett meldinger"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Velg meldinger"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Lagre alle"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Meldingsdetaljer"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Utløper: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Avansert søk"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Lagre alle vedlegg"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Ukjent"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Til:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Tekstmeldinger"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM-minnet er fullt. Slett noen elementer."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Innstillinger"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Sendt:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Bedt om."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Mottakere"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Mottatt:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Mottatt."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Leserapport"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Tjenestemeldinger"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d meldinger"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d samtaler"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Annet"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Intet emne"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Ingen navn"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Varsel om multimediemelding"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS-melding"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Lest"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Meldingen er avvist."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Meldingsstørrelse"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Meldingsalternativer"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Melding levert"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Melding"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "MEG"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Maksimalt antall vedlegg (%1$s) er oversteget. Bare de første %2$s vil bli lagt til."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Ugyldig mottaker."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Fra"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Fra:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Utløpt"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Mislykket..."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Leveringsrapport"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Innholdsleverandørmeldinger"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopier tekst"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB-meldinger"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Alle"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 melding"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 samtale"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Be om en leserapport for hver melding du sender."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Be om en leveringsrapport for hver melding du sender."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Radioknapp"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "På/av-knapp"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Utvidbar liste"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Hent MMS-meldinger automatisk."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Kan ikke forhåndsvise filen. Filtypen støttes ikke."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Kan ikke legge til enkelte mottakere. Numrene er ikke gyldige."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Kan ikke legge til mottaker. Nummeret er ikke gyldig."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Kan ikke legge til mottakere. Numrene er ikke gyldige."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Kan ikke legge ved vedlegg. Maksimalt antall vedlegg (%d) er nådd."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Dette nummeret er ikke gyldig."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Valgte meldinger blir kopiert til mobilenhet."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d meldinger er flyttet til meldingslisten."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Nummer er fjernet fra meldingssperreliste."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Nummer er lagt til i meldingssperreliste."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Melding er kopiert til SIM-kort for %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Maksimalt antall tegn er oversteget."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Maksimal meldingsstørrelse (%s) er oversteget. Endrer størrelse på vedlegg..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Ugyldige tegn er angitt."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Legg til mottakere."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 melding er flyttet til meldingslisten."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Tekstmeldinger"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Lyd"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimediemeldinger"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Meldinger på SIM-kort"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Inndatamodus"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Hent automatisk ved roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Hent automatisk"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Send nå"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Nei"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Velg en inndatamodus for skriving av meldinger."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Ingen"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Administrer meldingene som er lagret på SIM-kortet."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Meldingen vil bli forkastet. Ingen mottakere er valgt."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Kan ikke sende planlagt melding. Angi et annet tidspunkt."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Kan ikke spille av under samtale."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Kan ikke legge ved fil. Filstørrelsen er for stor. Prøv å sende via E-post, Bluetooth, Wi-Fi osv."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "For å sende denne multimediemeldingen kobler enheten til et annet mobilnett. Dette kobler enheten fra det gjeldende mobilnettet."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "For å laste ned denne multimediemeldingen kobler enheten til et annet mobilnett. Dette kobler enheten fra det gjeldende mobilnettet."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Denne meldingen blir sendt på nytt."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d meldinger vil bli slettet."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d samtaler vil bli slettet."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Ingen maler på listen"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Bare innkommende meldinger"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Inkluder originaltekst i utgående melding"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Varigheten må være kortere enn %d sekunder."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Slettet."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 melding vil bli slettet."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 samtale blir slettet."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Vis detaljer"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Vis kontaktdetaljer"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Vis som bildefremvisning"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Oppdater kontakt"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Tekst"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Ta et bilde"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Innstillinger"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Søk"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Lagre vedlegg"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Send på nytt"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Svar"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Fjern fra sperreliste"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Spill inn video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Ta opp lydfil"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Hurtigsvar"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Ingen"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Foreta taleanrop"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Bilder"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM-alfabet"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Eksporter til enhetsminne"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Rediger"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Slett melding"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Slett samtale"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Slett"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Standard"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Opprett kontakt"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopier til SIM-kort"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopier til enhet"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopier tekst"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopier"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Sikkerhetskopier"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatisk"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Lydfiler"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Vedlegg"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Legg til i Kontakter"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Legg til i sperreliste"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Legg til mottakere"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Søk"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Fant ingen resultater"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Ingen hurtigsvar"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Ingen fraser blokkert"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Ingen meldinger på SIM-kort"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Ingen meldinger"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Ingen blokkerte numre"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibrasjon"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Ukjent nummer"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Tekstmeldingssentralnummer"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Merk alle"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Varsler"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Oversett"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Tekstmeldinger"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Bytt mobilnett"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS-senter"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Innstillinger"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Velg mottaker"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d valgt"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Meldinger på SIM-kort"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Meldinger"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Inndatamodus"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Filstørrelsen er for stor"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Kunne ikke sende melding"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Forkast melding"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Slett"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Opprett"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "OBS!"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Legg til innhold"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Bytt"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Lagre"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Send på nytt"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Fjern"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Last ned"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Forkast"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Slett"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Avbryt"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Avbryt"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kontakter"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Du har valgt en lyd og bilde-fil. Lyddata støttes ikke med MMS, derfor legges bare bildet ved."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Ja"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Venter på å sende..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Kunne ikke sende denne meldingen. Sett inn SIM-kortet ditt, og prøv på nytt."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Type:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Hvis du vil bruke begrensede medietyper, må du endre innstillingen for MMS-oppretting."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Tid sendt:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Tid mottatt:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Avmerkingsboks"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Sendt"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Sender..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Kunne ikke sende"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sek"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Hent meldinger automatisk ved roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Hent meldinger automatisk."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Leserapport: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Annen person"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Melding"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Notat"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Mislykket"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Skriv inn tekst"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Utkast"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Leveringsrapport: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB-melding"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalender"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har sendt eller mottatt meldinger, vises de her."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har opprettet hurtigsvar, vises de her."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har kopiert meldinger til SIM-kortet, vises de her."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har lagt til fraser, vises de her."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har lagt til numre i meldingssperrelisten, vises de her."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "SLETT"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Åpner..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Varsler"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "MEG"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Send"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Send"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "SEND"
+
diff --git a/main/po/ne.po b/main/po/ne.po
new file mode 100644 (file)
index 0000000..d3e8509
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "गृह"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "डाटा रोमिङ असक्षम गरिएको छ‍। डाटा रोमिङ सक्षम गराउनुहोस् र फेरि प्रयास गर्नुहोस्।"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "नयाँ संदेश"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "रद्द गर्नुहोस्"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "भयो"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "मोबाइल"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "मोबाइल डाटा असक्षम गरिएको छ। मोबाइल डाटा सक्षम गराउनुहोस् र फेरि प्रयास गर्नुहोस्।"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "पठाउनुहोस्"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "समर्थन नगर्ने मिडिया प्रकार।"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "उडान मोडमा हुँदा संदेशहरू पठाउन सकिएन। उडान मोड असक्षम गर्नुहोस् र फेरि प्रयास गर्नुहोस्।"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "अगाडि सार्न असक्षम ।\nफाइल अगाडि लक छ"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "तपाईको यन्त्र भण्डारणमा पर्याप्त खाली ठाउँ छैन। सेटिङहरू > पावर र भण्डारण > भण्डारणमा जानुहोस्, त्यसपछि केही फाइलहरू मेटाउनुहोस् र फेरि प्रयास गर्नुहोस्।"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "अक्षर सबैभन्दा माथि"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "पिँधमा अक्षर"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "लेआउट छान्नुहोस्"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "समाग्री थप्न असक्षम हुन्छ।"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "%s लाई पठाउनको लागि संदेश अनुसूचित। अहिले नै पठाउने हो?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "अधिकतम संदेश परिमाण पुग्यो।"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "न्यून बैटरी।"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "अवधि कम्तिको पनि %d सेकेन्ड हुनुपर्छ।"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "उडान मोड असक्षम बनाउदैँ..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM कार्डमा कपि गरियो।"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "रद्द भयो।"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "अर्को सम्पर्क जानकारी प्रयोग गर्नुहोस्"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "यसमार्फत पठाउनु."
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "छवि"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ईमेल"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "फेर्नुहोस्"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "हेर्नुहोस्"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "हटाउने"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "चलाउनुहोस्"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "लाई"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "संदेश रद्द गर्नुहोस्"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "प्रापक सूची"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "पूर्वसमीक्षा"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "स्लाइडको अवधि %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "वस्तुहरू स्लाइड शोमा थपिँदै गर्दा पर्खिनुहोस्।"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "संदेश पठाउन सकिएन।"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "रिङटोन चयन गर्नुहोस्"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "पठन रिपोर्ट पठाइनेछ।"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "अनुरोध गरिएको छैन"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "प्रापकहरूको अधिकतम संख्या (%d) पुग्यो।"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "विषय प्रविष्ट गर्नुहोस्।"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "प्राप्तकर्ता दोहोर्यायो।"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "अगाडी"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "सेव गर्न सकिएन।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "स्थान भेट्न असक्षम।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "मेटाउनु सकिएन।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "प्रतिलिपी बनाउन असक्षम।"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "केहि क्यारेक्टरहरू हराउन सक्‍छन् । जारी राखूँ?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM घुसाइएको छैन।"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "सेव हुन सकेन।"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "मेरो फाइलहरूमा बचत गरिएको छ।"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "संदेश को पुनः प्राप्ति असफल"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "प्रतिबन्धित सामग्री प्रकार। जे भए पनि संलघ्न गर्ने?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "पुनःभण्डार गर्दैछ..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "अस्वीकृत।"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "प्रतिवेदन पढ्नुहोस्"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "नम्बर छैन"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "कुनै संलग्नक छैन"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "नयाँ संदेशहरु"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM कार्डबाट संदेशहरूको प्रतिलिपि बनाइयो।"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "प्रापकहरूको अधिकतम संख्या %d हो। केहि प्रापकहरू हराउन सक्‍छन्।"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "संलग्नकहरूको अधिकतम संख्या (%s) नाघ्यो।"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "अक्षरहरूको अधिकतम संख्या पुग्यो।"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "प्रगतिमा..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "चालू गरिँदै छ..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "यदि तपाई फाइल बद्ली गर्न चाहानुहुन्न भने, यसको पुन नामकरण गर्नुहोस्।"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "यो संदेश मा नदेखाइएको एउटा संलग्न फाइल समावेश छ।"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "यो संदेश ले संलग्न गरिएका नदेखिएका फाइलहरू समावेश गरेको छ।"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "फाइल नाम पहिले स्थापित छ।"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "मेटिँदै छ..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "क्लिपबोर्डमा प्रतिलिपि गरियो।"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "पाठ संदेश मा रुपान्तरण गर्दैछ..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "मल्टिमिडिया संदेशमा परिनत गर्दै..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s लाई रोक्नुहोस्?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "तपाई अनलाइन जानेवाला हुनुहुन्‍छ (%s)। जारी राखूँ?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "पाठ संदेश"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "विषय:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ईमेल मार्फत पठाउनुहोस्"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "प्रेषक"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "चयन गर्नुहोस्"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "अनुलग्‍नकको सेव गर्नुहोस्"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "सेव"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "हटाउने"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "स्थापना गर्नुहोस्"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "फरवार्ड"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "संदेश सम्पादन गर्नुहोस्"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "मेट्ऊँ?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "संदेश मेटाउ"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "संदेशहरू चयन गर्नुहोस्"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "सबै सेव गर्नुहोस्"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "संदेश विवरणहरू"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "समाप्त हुने मिति: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "उन्नत खोजी"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "सबै संलग्नताहरू सुरक्षित गर्नुहोस्"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "को लागि:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "पाठ संदेशहरु"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM मेमोरी पूरा भरिएको छ। केही आइटमहरू मेट्नुहोस्।"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "सेटिङहरु"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "पठाइएका:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "अनुरोधित।"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "प्रापकहरु"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "प्राप्त भयो:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "प्राप्त भयो।"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "प्रतिवेदन पढ्नुहोस्"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "पुस संदेशहरु"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d संदेश"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d कुराकानीहरु"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "अन्य"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "विषय छैन"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "नाम छैन"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "मल्टिमिडिया संदेश विज्ञप्ति"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "मल्टिमिडिया संदेश"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "पढ़नुहोस्"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "संदेश अस्वीकार भयो।"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "संदेशको आकार"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "संदेश विकल्पहरू"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "संदेश वितरण गरियो"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "संदेश"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "म"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "संघ्लनकहरूको अधिकतम संख्या (%1$s) नाघ्यो। मात्र पहिलो%2$s थपिनेछ।"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "अवैध प्राप्तकर्ता।"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "देखि"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "बाट:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "अवधि सकियो"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "प्रेषण असफल।"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "वितरण प्रतिवेदन"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP संदेशहरु"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "पाठ कपी गर्नुहोस्"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB संदेश"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "सबै"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 संदेश"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 वार्तालाप"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "तपाईले पठाएको प्रत्येक संदेशको लागि पठन रिपोर्टको अनुरोध गर्नुहोस्।"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "तपाईले पठाएको प्रत्येक संदेशको लागि डेलिभरी रिपोर्ट अनुरोध गर्नुहोस्।"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "रेडियो बटन"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "अन/अफ बटन"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "विस्तार गर्न योग्य सूची"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS संदेशहरू स्वचालित रूपले पुन: प्राप्ति गर्नुहोस्।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "फाइल पूर्वावलोकन गर्न सकिएन। असमर्थित फाइल प्रकार।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "केही प्राप्तकर्ताहरू थप्न सकिएन। नम्बरहरू मान्य छैनन्।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "प्राप्तकर्ताहरू थप्न सकिएन। नम्बरहरू मान्य छैन।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "प्राप्तकर्ताहरू थप्न सकिएन। नम्बरहरू मान्य छैनन्।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "संलग्नकहरू थप्न सकिएन। संलग्नकहरूको अधिकतम सङ्ख्या (%d) पुगेको छ।"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "यो नम्बर मान्य छैन।"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "चयन गरिएका संदेशहरूलाई मोबाइल यन्त्रमा प्रतिलिपि गरियो।"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d  संदेशहरू संदेश सूचीमा सारियो।"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "नम्बरलाई कल ब्लक सूचीबाट हटाइयो।"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "नम्बरलाई कल ब्लक सूचीमा थपियो।"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "संदेशलाई %s SIM कार्डमा प्रतिलिपि गरियो।"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "वर्णहरूको अधिकतम संख्या नाघेको छ।"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "संदेशको अधिकतम साइज (%s) नाघ्यो। संलग्नकहरू रिसाइज गर्दै..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "अमान्य वर्ण प्रविष्ट गरिएको छ"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "प्रापकहरू थप्नुहोस्।"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 संदेशलाई संदेश सूचीमा सारियो।"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "पाठ संदेशहरू"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ध्वनि"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "मल्टीमिडिया संदेशहरू"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM कार्डमा रहेका संदेशहरू"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "इन्पुट मोड"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "रोमिङमा छँदा स्वतः पुनः प्राप्ति गर्नुहोस्"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "स्वतः पुनः प्राप्ति"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "अब पठाउनु"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "होइन"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "संदेशहरूको रचना गर्नको लागि एउटा इन्पुट मोड चयन गर्नुहोस्।"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "कुनैपनि छैन"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "तपाईको SIM कार्डमा भण्डारण गरिएका संदेशहरूलाई व्यवस्थित गर्नुहोस्।"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "तपाईको संदेश छोडिनेछ। प्राप्तकर्ताहरू चयन गरिएका छैनन्।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "तालिकाबद्ध संदेश पठाउन सकिएन। अर्को समय तय गर्नुहोस्।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "कलको समयमा प्‍ले गर्न असक्षम।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "फाइल संलग्न गर्न असक्षम भयो। फाइलको साइज धेरै ठूलो छ। ईमेल, ब्लुटूथ, Wi-Fi, आदि मार्फत पठाउनको लागि प्रयास गर्दै।"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "यो मल्टीमिडिया संदेश पठाउन, यन्त्र फरक मोबाइल नेटवर्कमा जडान हुनेछ। यसले तपाईको यन्त्रलाई तपाईको वर्तमान मोबाइल नेटवर्कबाट विच्छेद गर्नेछ।"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "यो मल्टीमिडिया संदेश डाउनलोड गर्न, यन्त्र फरक मोबाइल नेटवर्कमा जडान हुनेछ। यसले तपाईको यन्त्रलाई तपाईको हालैको मोबाइल नेटवर्कबाट विच्छेद गर्नेछ।"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "यो संदेशलाई फेरि पठाइनेछ।"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d संदेशहरू मेटाइनेछ।"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d वार्तालापहरू मेटाइनेछन्।"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "सूचीमा टेमप्लेटहरू छैन"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "आगमन संदेशहरू मात्र"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "बाहिर जाने संदेशमा वास्तविक पाठ समावेश गर्नुहोस्"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "समय %d सेकेन्डभन्‍दा कम्‍ति हुनपर्छ।"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "मेटियो।"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 संदेश मेटिनेछ।"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 वार्तालाप मेटाइनेछ।"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "विवरणहरू हेर्नुहोस्"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "सम्पर्क विवरणहरू हेर्नुहोस्"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "स्लाइडशोको रूपमा हेर्नुहोस्"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "भिडियोहरु"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "सम्पर्क अपडेट गर्नुहोस्"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "यूनीकोड"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "पाठ"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "तस्वीर लिनुहोस्"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "सेटिङहरु"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "खोज्‍नुहोस्"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "संलग्नताहरू बचत गर्नुहोस्"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "पुन: पठाउनुहोस्"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "जवाफ दिनुहोस्"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "ब्लक सूचीबाट हटाउनुहोस्"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "भिडियो रेकर्ड गर्नुहोस्"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "अडियो फाइल रेकर्ड गर्नुहोस्"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "छिटो प्रतिक्रिया"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "शून्‍य"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "भ्वाइस कल गर्नुहोस्"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "छविहरू"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM वर्णमाला"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "यन्त्रको मेमोरीमा निर्यात गर्नुहोस्"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "सम्‍पादन"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "संदेश मेटाउनुहोस्"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "वार्तालाप मेटाउनुहोस्"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "मेटाउनु"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "पूर्वनिर्धारित"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "सम्पर्क बनाउनुहोस्"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM कार्डमा प्रतिलिपि गर्नुहोस्"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "यन्त्रमा प्रतिलिपि बनाउनुहोस्"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "पाठ कपी गर्नुहोस्"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "प्रतिलिपि"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "ब्याक अप गर्नुहोस्"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "स्वचालित"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "अडियो फाइलहरू"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "संलग्नक"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "सम्पर्कहरूमा थप्नुहोस्"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "ब्लक सूचीमा थप्नुहोस्"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "प्राप्तकर्ताहरू थप्नुहोस्"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "खोज्‍नुहोस्"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "कुनैपनि परिणामहरू भेट्टाइएन"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "तत्काल जवाफ छैन"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "कुनैपनि वाक्यांशहरू ब्लक गरिएका छैनन्"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM कार्डमा कुनै संदेश छैन"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "संदेशहरू छैनन्"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "कुनै ब्लक गरिएका नम्बरहरू छैनन्"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "कम्पन"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "अज्ञात नम्बर"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "पाठ संदेश केन्द्र नम्बर"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "सबै चयन गर"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "सतर्कताहरू"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "अनुवाद गर्नुहोस्"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "संदेशहरू"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "मोबाइल नेटवर्क स्विच गर्नुहोस्"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS केन्द्र"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "सेटिङहरु"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "प्रापक चुन्नुहोस्"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d चयन गरिएको छ"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM कार्डमा रहेका संदेशहरू"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "संदेशहरु"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "इन्पुट मोड"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "फाइल आकार निकै ठूलो छ"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "संदेश पठाउन असफल भयो"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "संदेशलाई नकार्नुहोस्"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "मेटाउनुहोस्"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "बनाउनुहोस्"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "ध्‍यान दिनुहोस्"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "सामग्री थप्नुहोस्"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "स्विच गर्नुहोस्"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "सेव गर्नुहोस्"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "पुनः पठाउनुहोस्"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "हटाउनुहोस्"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ठीक छ"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "डाउनलोड"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "छोड्नुहोस्"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "मेटाउनुहोस्"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "रद्द"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "रद्द गर्नुहोस्"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "सम्पर्कहरू"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "तपाईले साउन्ड & शाट फाइल चयन गर्नुभयो। MMS को लागि ध्‍वनि डाटा समर्थित छैन, त्येसैले तस्वीर मात्र संलग्न गरिनेछ।"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "हो"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "पठाउन पर्खँदै..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "यो संदेश पठाउन असक्षम। तपाईको SIM कार्ड सम्मिलित गरेर पुन: प्रयास गर्नुहोस्।"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "प्रकार:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "निषेधित मिडियो प्रकारहरू प्रयोग गर्नको लागि, तपाईको MMS सिर्जना मोड सेटिङलाई परिवर्तन गर्नुहोस्।"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "पठाइएको समय:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "प्राप्त भएको समय:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "टिक बाकस"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "हैसियत:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "पठाइएको"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "पठाउँदै..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "पठाउन असफल भयो"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "सेक"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "रोमिङको बेलामा संदेशहरूलाई स्वचालित रूपमा पुनः प्राप्त गर्नुहोस्।"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "संदेशहरूलाई स्वचालित रूपमा पुनः प्राप्त गर्नुहोस्।"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "रिपोर्ट पढ्नुहोस्: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "अन्य संदेश"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "संदेश"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "मेमो"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "असफल भयो"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "पाठ प्रविष्ट गर्नुहोस्"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "ड्राफ्ट"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "डेलिभरि रिपोर्ट: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB संदेश"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "पात्रो"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "तपाईंले संदेशहरू पठाएपछि वा प्राप्त गरेपछि, तिनीहरू यहाँ देखिनेछन्।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "तपाईले द्रुत प्रतिक्रियाहरू बनाएपछि, तिनीहरू यहाँ देखिनेछन्।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "तपाईले SIM कार्डमा संदेशहरू प्रतिलिपि गरेपछि, तिनीहरू यहाँ देखिनेछन्।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "तपाईले वाक्यांशहरू थपेपछि तिनीहरूलाई यहाँ देखिनेछन्।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "तपाईले नम्बरहरूलाई संदेश ब्लक सूचीमा थपेपछि, तिनीहरूलाई यहाँ देखाइनेछ।"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "मेटाउनुहोस्"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "लोड हुँदै छ..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "सूचनाहरू"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "म"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "पठाउनुहोस्"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "पठाउ"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "पठाउनु"
+
diff --git a/main/po/nl.po b/main/po/nl.po
new file mode 100644 (file)
index 0000000..4c65451
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Privé"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Gegevensroaming is uitgeschakeld. Schakel gegevensroaming in en probeer het opnieuw."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nieuw bericht"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULEREN"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "GEREED"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Onbekend"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobiel"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobiele gegevens is uitgeschakeld. Schakel mobiele gegevens in en probeer het opnieuw."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "VERZENDEN"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Niet-ondersteund mediatype."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Kan geen berichten verzenden als de vliegtuigstand is ingeschakeld. Schakel de vliegtuigstand uit en probeer het opnieuw."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Kan niet doorsturen.\nBestand is geblokkeerd voor doorsturen"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Er is onvoldoende ruimte in uw apparaatopslag. Ga naar Instellingen > Energie en opslag > Opslag, verwijder een aantal bestanden en probeer het opnieuw."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Tekst bovenaan"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Tekst onderaan"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Indeling selecteren"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Kan inhoud niet toevoegen."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Bericht gepland om te verzenden aan %s. Nu verzenden?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Maximale grootte bericht bereikt."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Batterij bijna leeg."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Duur moet ten minste %d seconden zijn."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Vliegtuigstand uitschakelen..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Gekopieerd naar SIM-kaart."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Geannuleerd."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Andere contactgegevens"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Verzenden via"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Afbeelding"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Vervangen"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Tonen"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Verwijderen"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Afspelen"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Aan"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Bericht annuleren"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Lijst met ontvangers"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Voorbeeld"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Duur voor dia %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Wacht terwijl items worden toegevoegd aan diavoorstelling."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Kan bericht niet verzenden."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Beltoon selecteren"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Leesbevestiging wordt verzonden."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Niet aangevraagd"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Maximumaantal ontvangers (%d) bereikt."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Onderwerp invoeren."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Dubbele ontvanger."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Doorst."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Opslaan niet mogelijk."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Kan locatie niet vinden."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Kan niet verwijderen."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Kan niet kopiëren."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Enkele tekens kunnen verloren gaan. Doorgaan?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM niet geplaatst."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Opslaan mislukt."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Opgeslagen in Mijn bestanden."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Ophalen bericht mislukt"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Beperkt inhoudstype. Toch bijvoegen?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Herstellen..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Geweigerd."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Leesbevestiging"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Geen nummer"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Geen bijlagen"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nieuwe berichten"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Bericht gekopieerd van SIM-kaart."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maximumaantal ontvangers is %d. Sommige ontvangers gaan mogelijk verloren."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Maximumaantal bijlagen (%s) overschreden."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Maximumaantal tekens bereikt."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Bezig..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Initialiseren..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Als u het bestand niet wilt vervangen, moet u het hernoemen."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Dit bericht bevat een bijlage die niet wordt weergegeven."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Dit bericht bevat niet getoonde bijlagen."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Bestandsnaam bestaat al."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Verwijderen..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Gekopieerd naar klembord."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Converteren naar sms-bericht..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Converteren naar MMS-bericht..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s blokkeren?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "U gaat bijna online (%s). Doorgaan?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Sms-bericht"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Onderwerp:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Afzender via e-mail"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Afzender"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Selecteren"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Bijlage opslaan"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Opslaan"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Verwijderen"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Installeren"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Doorsturen"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Bericht bewerken"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Verwijderen?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Berichten verwijderen"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Berichten selecteren"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Alles opslaan"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Berichtdetails"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Verloopt: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Geavanceerde zoekopdracht"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Alle bijlagen opsl."
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Onbekend"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Aan:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Sms-berichten"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM-geheugen vol. Verwijder een aantal items."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Instellingen"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Verzonden:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Aangevraagd."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Ontvangers"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Ontvangen:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Ontvangen."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Leesbevestiging"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Serverberichten"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d berichten"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d gesprekken"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Overig"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Geen onderwerp"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Geen naam"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Melding MMS-bericht"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS-bericht"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Lezen"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Bericht geweigerd."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Berichtgrootte"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Berichtopties"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Bericht afgeleverd"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Bericht"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Ik"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Maximumaantal bijlagen (%1$s) overschreden. Alleen de eerste %2$s worden toegevoegd."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Ongeldige ontvanger."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Van"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Van:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Verlopen"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Verzenden mislukt."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Ontvangstbevestiging"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP-berichten"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Tekst kopiëren"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Infoberichten"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Alles"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 bericht"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 gesprek"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Vragen om een leesbevestiging voor elk verzonden bericht."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Vragen om een ontvangstbevestiging voor elk verzonden bericht."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Keuzerondje"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Aan/uit-knop"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Uitvouwbare lijst"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS-berichten automatisch ophalen."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Kan bestand niet weergeven. Niet-ondersteund bestandstype."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Kan bepaalde ontvangers niet toevoegen. Nummers niet geldig."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Kan ontvanger niet toevoegen. Nummer niet geldig."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Kan ontvangers niet toevoegen. Nummers niet geldig."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Kan bijlage niet toevoegen. Maximumaantal bijlagen (%d) bereikt."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Dit nummer is niet geldig."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Geselecteerde berichten gekopieerd naar mobiel apparaat."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d berichten verplaatst naar de berichtenlijst."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Nummer verwijderd uit blokkeerlijst voor berichten."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Nummer toegevoegd aan blokkeerlijst voor berichten."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Bericht gekopieerd naar SIM-kaart %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Maximumaantal tekens overschreden."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Maximumgrootte bericht (%s) overschreden. Grootte bijlagen wijzigen..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Ongeldig teken ingevoerd."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Voeg ontvangers toe."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 bericht verplaatst naar de berichtenlijst."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Sms-berichten"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Geluid"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimediaberichten"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Berichten op SIM-kaart"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Invoerstand"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Automatisch ophalen bij roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Automatisch ophalen"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Nu verz."
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Nee"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Selecteer een invoerstand voor het samenstellen van berichten."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Geen"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Beheer de berichten die zijn opgeslagen op de SIM-kaart."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Uw bericht wordt verwijderd. Er zijn geen ontvangers geselecteerd."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Kan gepland bericht niet verzenden. Stel een andere tijd in."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Niet mogelijk tijdens gesprek."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Kan bestand niet bijvoegen. Bestand is te groot. Probeer te verzenden via E-mail, Bluetooth, Wi-Fi, enz."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Als u dit MMS-bericht wilt verzenden, maakt het apparaat verbinding met een ander mobiel netwerk. Hiermee wordt de verbinding van uw apparaat met uw huidige mobiele netwerk verbroken."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Als u dit MMS-bericht wilt downloaden, maakt het apparaat verbinding met een ander mobiel netwerk. Hiermee wordt de verbinding van uw apparaat met uw huidige mobiele netwerk verbroken."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Dit bericht wordt opnieuw verzonden."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d berichten worden verwijderd."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d gesprekken worden verwijderd."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Geen standaardberichten in lijst"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Alleen inkomende berichten"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Oorspronkelijke tekst opnemen in uitgaand bericht"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Duur moet korter zijn dan %d seconden."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Verwijderd."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 bericht wordt verwijderd."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 gesprek wordt verwijderd."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Details tonen"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Contactdetails weergeven"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Als diashow weergeven"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Video's"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Contact bijwerken"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Tekst"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Foto maken"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Instellingen"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Zoeken"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Bijlagen opslaan"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Opnieuw verzenden"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Antwoorden"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Verwijderen uit blokkeerlijst"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Video opnemen"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Audiobestand opnemen"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Snelle reactie"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Geen"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Spraakoproep doen"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Afbeeldingen"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM-alfabet"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Exporteren naar apparaatgeheugen"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Bewerken"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Bericht wissen"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Gesprek verwijderen"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Verwijderen"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Standaard"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Contact toevoegen"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopiëren naar SIM-kaart"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopiëren naar apparaat"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Tekst kopiëren"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopiëren"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Back-up"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatisch"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Audiobestanden"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Bijlage"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Toevoegen aan contacten"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Toevoegen aan blokkeerlijst"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Ontvangers toevoegen"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Zoeken"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Geen resultaten gevonden"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Geen snelle reacties"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Geen zinnen geblokkeerd"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Geen berichten op SIM-kaart"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Geen berichten"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Geen geblokkeerde nummers"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Trillen"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Onbekend nummer"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Nummer sms-centrale"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Alles selecteren"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Waarschuwingen"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Vertalen"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Sms-berichten"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Ander mobiel netwerk"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Sms-centr."
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Instellingen"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Ontvanger selecteren"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d geselecteerd"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Berichten op SIM-kaart"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Berichten"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Invoerstand"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Bestand is te groot"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Bericht niet verzonden"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Bericht verwijderen"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Verwijderen"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Maken"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Let op"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Inhoud toevoegen"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Overschakelen"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Opslaan"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Opn. verzenden"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Wissen"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Downloaden"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Verwijder"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Verwijderen"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Annul."
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Annuleren"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contacten"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "U hebt een Geluid & opname-bestand geselecteerd. Omdat geluidsgegevens worden niet ondersteund voor MMS, wordt alleen de foto bijgevoegd."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Ja"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Wachten met verzenden..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Kan dit bericht niet verzenden. Plaats uw SIM-kaart en probeer het opnieuw."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Type:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Als u beperkte mediatypen wilt gebruiken, wijzigt u de instelling voor MMS maken."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Tijd verzonden:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Tijd ontvangen:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Selectievakje"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Verzonden"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Verzenden..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Verzenden mislukt"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sec."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Haal berichten automatisch op bij roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Haal berichten automatisch op."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Leesbevestiging: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Andere persoon"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Bericht"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Notities"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Mislukt"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Tekst invoeren"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Concept"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Ontvangstbevestiging: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Infobericht"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Agenda"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nadat u berichten hebt verzonden of ontvangen, worden ze hier weergegeven."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nadat u snelle antwoorden hebt gemaakt, worden ze hier weergegeven."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nadat u berichten hebt gekopieerd naar de SIM-kaart, worden ze hier weergegeven."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nadat u zinnen hebt toegevoegd, worden ze hier getoond."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nadat u nummers aan uw de blokkeerlijst voor berichten hebt toegevoegd, worden ze hier getoond."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "VERWIJDEREN"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Laden..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Meldingen"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Ik"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Verz."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Verz."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "VERZ."
+
diff --git a/main/po/or.po b/main/po/or.po
new file mode 100644 (file)
index 0000000..e65118f
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "ଘର"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "ଡାଟା ରୋମିଂ ଅକ୍ଷମ ହୋଇଛି। ଡାଟା ରୋମିଂ ସକ୍ଷମ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "ନୂତନ ସନ୍ଦେଶ"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ବାତିଲ୍"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ସମାପ୍ତ"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "ଅଜଣା"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "ମୋବାଇଲ୍"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "ମୋବାଇଲ୍ ଡାଟା ଅକ୍ଷମ ହୋଇଛି। ମୋବାଇଲ୍ ଡାଟା ସକ୍ଷମ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ପ୍ରେରଣ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "ଅସମର୍ଥିତ ମିଡ଼ିଆ ପ୍ରକାର।"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "ଫ୍ଲାଇଟ୍ ମୋଡରେ ଥିବା ବେଳେ ସନ୍ଦେଶଗୁଡିକ ପ୍ରେରଣ କରିବାକୁ ଅସମର୍ଥ। ଫ୍ଲାଇଟ୍ ମୋଡ୍ ଅକ୍ଷମ କରନ୍ତୁ ଏବଂ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "ଅଗ୍ରଗତି କରିବାକୁ ଅସମର୍ଥ ।\nଫାଇଲ୍ ଲକ୍ ଅଗ୍ରଗତି ହେଲା"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "ଆପଣଙ୍କ ଡିଭାଇସ୍ ଷ୍ଟୋରେଜରେ ପର୍ଯ୍ୟାପ୍ତ ଖାଲିସ୍ଥାନ ନାହିଁ। ସେଟିଂସ୍ > ପାୱାର୍ ଏବଂ ଷ୍ଟୋରେଜ୍ > ଷ୍ଟୋରେଜକୁ ଯାଆନ୍ତୁ, ତାପରେ କିଛି ଫାଇଲଗୁଡିକ ବିଲୋପ କରନ୍ତୁ ଏବଂ ପୁନଃଚେଷ୍ଟା କରନ୍ତୁ।"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "ଶୀର୍ଷରେ ଟେକ୍ସଟ୍"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "ନିମ୍ନରେ ଟେକ୍ସଟ୍"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "ଲେଆଉଟ୍ ଚୟନ କରନ୍ତୁ"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "ସୂଚନା ଯୋଡିବାକୁ ଅସମର୍ଥ।"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "ସନ୍ଦେଶ ନିଶ୍ଚିତଭାବେ %sକୁ ପ୍ରେରଣ ହେବ। ବର୍ତ୍ତମାନ ପ୍ରେରଣ କରିବେ?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "ସର୍ବାଧିକ ସନ୍ଦେଶ ଆକାରରେ ପହଞ୍ଚିଛି।"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "ବ୍ୟାଟେରୀ କମ୍"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "ଅବଧି ନିଶ୍ଚିତଭାବରେ ଅତିକମ୍‌ରେ %d ସେକେଣ୍ଡ୍ ସମୂହ ହେବା ଆବଶ୍ୟକ।"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "ଫ୍ଲାଇଟ୍ ମୋଡ୍ ଅକ୍ଷମ କରୁଛି..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM କାର୍ଡ୍‌କୁ କପି ହୋଇଛି।"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "ବାତିଲ୍ ହୋଇଛି"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "ଅନ୍ୟ ସମ୍ପର୍କ ସୂଚନା ବ୍ୟବହାର କରନ୍ତୁ"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "ମାଧ୍ୟମରେ ପ୍ରେରଣ"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "ଫଟୋ"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ଇମେଲ୍"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "ପ୍ରତ୍ୟାବର୍ତ୍ତ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "ଦର୍ଶନ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "ଅପସାରଣ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "ଚାଳନ"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "କୁ"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "ବାତିଲ୍ ସନ୍ଦେଶ"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "ପ୍ରାପ୍ତେସୁ ତାଲିକା"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "ପୂର୍ବାବଲୋକନ"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "ସ୍ଲାଇଡ୍ %d/%d ପାଇଁ ଅବଧି"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "ସ୍ଲାଇଡଶୋ‌କୁ ଆଇଟମଗୁଡିକ ଯୋଡିହେବା ବେଳେ ଅପେକ୍ଷା କରନ୍ତୁ।"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "ସନ୍ଦେଶ ପ୍ରେରଣ କରିବାକୁ ଅସମର୍ଥ।"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "ରିଂଟୋନ୍ ଚୟନ କରନ୍ତୁ"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "ପଠନ ରିପୋର୍ଟ୍ ପ୍ରେରିତ।"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "ଅନୁରୋଧ କରାଯାଇ ନାହିଁ।"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "ସର୍ବାଧିକ ସଂଖ୍ୟକର ପ୍ରାପ୍ତେସୁ (%d)ରେ ପହଞ୍ଚିଛି।"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "ବିଷୟ ପ୍ରବେଶ କରନ୍ତୁ"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "ନକଲ ପ୍ରାପ୍ତେସୁ"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "ଅଗ୍ରସର"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "ସଞ୍ଚୟ କରିବାକୁ ଅସମର୍ଥ।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "ସ୍ଥାନ ଖୋଜିବାକୁ ଅସମର୍ଥ"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "ବିଲୋପ କରିବାକୁ ଅସମର୍ଥ।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "କପି କରିବାକୁ ଅସମର୍ଥ।"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "କିଛି ବର୍ଣ୍ଣଗୁଡିକ ହୁଏତ ନଷ୍ଟ ହୋଇପାରେ । ଜାରି?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "ସିମ୍ ସନ୍ନିବେଶ ହୋଇନାହିଁ।"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "ସଞ୍ଚୟ ବିଫଳ ହୋଇଛି।"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "ମୋ ଫାଇଲରେ ସଞ୍ଚୟ ହୋଇଛି।"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "ସନ୍ଦେଶ ପୁନଃଉଦ୍ଧାର ବିଫଳ ହେଲା"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "ପ୍ରତିବନ୍ଧିତ ବିଷୟବସ୍ତୁ ପ୍ରକାର। ଯେପରି ଭାବେ ସଂଲଗ୍ନ କରିବେ?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "ପୁନରୁଦ୍ଧାର ହେଉଛି..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "ଅଗ୍ରାହ୍ୟ ହୋଇଛି।"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "ପଠନ ରିପୋର୍ଟ୍"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "କୌଣସି ନମ୍ଵର୍ ନାହିଁ"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "କୌଣସି ସଲଗ୍ନ ନାହିଁ"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "ନୂତନ ସନ୍ଦେଶଗୁଡିକ"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM କାର୍ଡ୍ ଠାରୁ ସନ୍ଦେଶଗୁଡିକ କପି ହୋଇଛି।"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "ଗ୍ରହୀତା ମାନଙ୍କର ସର୍ବାଧିକ ସଂଖ୍ୟା ହେଉଛି %d । କିଛି ପ୍ରାପ୍ତେସୁ ହୁଏତ ନଷ୍ଟ ହୋଇପାରେ ।"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "ସର୍ବାଧିକ ସଂଖ୍ୟକ (%s) ସଂଲଗ୍ନଗୁଡିକ ଅତିକ୍ରମ କରିଛି।"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "ସର୍ବାଧିକ ସଂଖ୍ୟକ ବର୍ଣ୍ଣରେ ପହଞ୍ଚିଛି।"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "ପ୍ରଗତିରେ ଅଛି..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "ଆରମ୍ଭ କରୁଛି..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "ଯଦି ଆପଣ ଫାଇଲ୍ ପ୍ରତ୍ୟବର୍ତ୍ତ କରିବାକୁ ଚାହୁଁନଥିବେ, ଏହାକୁ ପୁନଃନାମ କରନ୍ତୁ।"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "ଏହି ସନ୍ଦେଶ ଏକ ସଂଲଗ୍ନ ଫାଇଲ୍ ଅନ୍ତର୍ଭୁକ୍ତ କରିଛି ତାହା ଦେଖାଯାଉ ନାହିଁ।"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "ଏହି ସନ୍ଦେଶ ଅନ୍ତର୍ଭୁକ୍ତ ସଲଂଗ୍ନ ଫାଇଲଗୁଡ଼ିକ ଦେଖାଇଲା ନାହିଁ।"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ଫାଇଲ୍ ନାମ ପୂର୍ବରୁ ବିଦ୍ୟମାନ ଅଛି।"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "ବିଲୋପ ହେଉଛି..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "କ୍ଲିପବୋର୍ଡକୁ କପି ହୋଇଛି।"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "ଟେକ୍ସଟ୍‌ ସନ୍ଦେଶକୁ ବଦଳାଉଛି..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "ମଲ୍ଟିମିଡିଆ ସନ୍ଦେଶକୁ ପ୍ରତ୍ୟାବର୍ତ୍ତ କରୁଛି..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "ଅବରୋଧ %s ?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "ଆପଣ ଅନ୍‌ଲାଇନ୍ (%s) ହେବାକୁ ଯାଉଛନ୍ତି । ଜାରି?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "ଟେକ୍ସଟ୍ ସନ୍ଦେଶ"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "ବିଷୟ:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ଇମେଲ ମାଧ୍ୟମରେ ପ୍ରେରଣ କରନ୍ତୁ"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "ପ୍ରେରକ"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "ଚୟନ"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "ସଂଲଗ୍ନ ସଞ୍ଚୟ"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "ସଞ୍ଚୟ"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "ଅପସାରଣ"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "ସଂସ୍ଥାପନ"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "ଅଗ୍ରଗାମୀ"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "ସନ୍ଦେଶ ସମ୍ପାଦନ କରନ୍ତୁ"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "ବିଲୋପ କରିବେ?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "ସନ୍ଦେଶଗୁଡିକ ବିଲୋପ କରନ୍ତୁ"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "ସନ୍ଦେଶ ଚୟନ କରନ୍ତୁ"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "ସମସ୍ତ ସଞ୍ଚୟ କରନ୍ତୁ"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "ସନ୍ଦେଶ ବିବରଣୀ"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "ସମାପ୍ତ ହୋଇଛି: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "ବିକଶିତ ସନ୍ଧାନ"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "ସମସ୍ତ ସଂଲଗ୍ନ ସଞ୍ଚୟ କର"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "ଅଜଣା"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "କୁ:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "ଟେକ୍ସଟ୍ ସନ୍ଦେଶଗୁଡିକ"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM ମେମୋରୀ ପୂର୍ଣ୍ଣ ହୋଇଛି। କିଛି ଆଇଟମ୍ ବିଲୋପ କରନ୍ତୁ।"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "ସେଟିଂସ୍"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "ପ୍ରେରଣ ହୋଇଛି:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "ଅନୁରୋଧ ହେଲା"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "ପ୍ରାପ୍ତେସୁଗଣ"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "ପ୍ରାପ୍ତ ହୋଇଛି:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "ପ୍ରାପ୍ତ ହୋଇଛି"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "ପଠନ ରିପୋର୍ଟ୍"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "ପୁଶ୍ ସନ୍ଦେଶଗୁଡିକ"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%dଟି ସନ୍ଦେଶ"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%dଟି ବାର୍ତ୍ତାଳାପ"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "ଅନ୍ୟ"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "କୌଣସି ବିଷୟ ନାହିଁ"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "କୌଣସି ନାମ ନାହିଁ"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "ମଲ୍ଟିମିଡିଆ ସନ୍ଦେଶ ବିଜ୍ଞପ୍ତି"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "ମଲ୍ଟିମିଡିଆ ସନ୍ଦେଶ"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "ପଠିତ"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "ସନ୍ଦେଶ ରଦ୍ଧ ହେଲା।"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "ସନ୍ଦେଶ ଆକାର"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "ସନ୍ଦେଶ ବିକଳ୍ପ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "ସନ୍ଦେଶ ବିତରଣ ହୋଇଛି"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "ସନ୍ଦେଶ"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "ମୁଁ"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "ସର୍ବାଧିକ ନମ୍ବରର ସଂଲଗ୍ନକରଣ (%1$s) ଅତିକ୍ରମ କଲା। କେବଳ ପ୍ରଥମ %2$s ଯୋଡାଯିବ।"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "ଅବୈଧ ପ୍ରାପ୍ତେସୁ।"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "ରୁ"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "ଠାରୁ:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "ସମୟ ସମାପ୍ତ ହୋଇଛି"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "ପ୍ରେରଣ ବିଫଳ ହୋଇଛି।"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "ବିତରଣ ରିପୋର୍ଟ୍"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "ସିପି ସନ୍ଦେଶଗୁଡିକ"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "ଟେକ୍ସଟ୍ କପି"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB ସନ୍ଦେଶଗୁଡିକ"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "ସମସ୍ତ"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 ସନ୍ଦେଶ"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 ବାର୍ତ୍ତାଳାପ"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ଆପଣ ପ୍ରେରଣ କରିଥିବା ପ୍ରତ୍ୟେକ ସନ୍ଦେଶ ପାଇଁ ଏକ ପଠନ ରିପୋର୍ଟ୍ ଅନୁରୋଧ କରନ୍ତୁ।"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ଆପଣ ପ୍ରେରଣ କରିଥିବା ପ୍ରତ୍ୟେକ ସନ୍ଦେଶ ପାଇଁ ଏକ ବିତରଣ ରିପୋର୍ଟ୍ ଅନୁରୋଧ କରନ୍ତୁ।"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "ରେଡିଓ ବଟନ୍"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ଅନ୍/ଅଫ୍ ବଟନ୍"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "ବର୍ଦ୍ଧିତଯୋଗ୍ୟ ତାଲିକା"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "ସ୍ଵତଃସ୍ପୃତଭାବରେ MMS ସନ୍ଦେଶଗୁଡିକୁ ପୁନଃଉଦ୍ଧାର କରନ୍ତୁ।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ଫାଇଲ୍ ପୂର୍ବାବଲୋକନ କରିବାକୁ ଅସମର୍ଥ। ଅସମର୍ଥିତ ଫାଇଲ୍ ପ୍ରକାର।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "କିଛି ପ୍ରାପ୍ତେସୁ ଯୋଡିବାକୁ ଅସମର୍ଥ। ନମ୍ବରଗୁଡିକ ବୈଧ ନୁହେଁ।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "ପ୍ରାପ୍ତେସୁ ଯୋଡିବାକୁ ଅସମର୍ଥ। ନମ୍ଵର୍ ବୈଧ ନୁହେଁ।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "ପ୍ରାପ୍ତେସୁଗଣ ଯୋଡିବାକୁ ଅସମର୍ଥ। ନମ୍ବରଗୁଡିକ ବୈଧ ନୁହେଁ।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "ସଂଲଗ୍ନକରଣ ଯୋଡିବାକୁ ଅସମର୍ଥ। ସର୍ବାଧିକ ସଂଖ୍ୟକ ସଂଲଗ୍ନକରଣ (%d)ରେ ପହଞ୍ଚିଛି।"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "ଏହି ନମ୍ଵର୍ ବୈଧ ନୁହେଁ।"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "ମୋବାଇଲ୍ ଡିଭାଇସକୁ ଚୟନିତ ସନ୍ଦେଶଗୁଡିକ କପି ହୋଇଛି।"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%dଟି ସନ୍ଦେଶ, ସନ୍ଦେଶ ତାଲିକାକୁ ନିଆଗଲା।"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "ସନ୍ଦେଶ ଅବରୋଧ ତାଲିକାକୁ ନମ୍ଵର୍ ଅପସାରଣ ହୋଇଛି।"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "ସନ୍ଦେଶ ଅବରୋଧ ତାଲିକାକୁ ନମ୍ୱର୍‌ ଯୋଡାଯାଇଛି।"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "%s SIM କାର୍ଡକୁ ସନ୍ଦେଶ କପି ହୋଇଛି।"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "ସର୍ବାଧିକ ସଂଖ୍ୟକ ବର୍ଣ୍ଣ ଅତିକ୍ରମ କରିଛି।"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "ସର୍ବାଧିକ ସନ୍ଦେଶ ଆକାର (%s) ଅତିକ୍ରମ ହୋଇଛି। ସଂଲଗ୍ନକରଣଗୁଡିକ ପୁନଃଆକାର କରୁଛି..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "ଅବୈଧ ବର୍ଣ୍ଣ ପ୍ରବେଶ ହୋଇଛି"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "ପ୍ରାପ୍ତେସୁଗଣ ଯୋଡନ୍ତୁ।"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "ସନ୍ଦେଶ ତାଲିକାକୁ 1 ସନ୍ଦେଶ ଘୁଞ୍ଚାଯାଇଛି।"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "ଟେକ୍ସଟ୍ ସନ୍ଦେଶଗୁଡିକ"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ଧ୍ଵନି"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "ମଲ୍ଟିମିଡିଆ ସନ୍ଦେଶଗୁଡିକ"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM କାର୍ଡରେ ସନ୍ଦେଶଗୁଡିକ"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "ଇନପୁଟ୍ ମୋଡ୍"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "ରୋମିଂରେ ଥିବା ବେଳେ ସ୍ଵତଃ ପୁନରୁଦ୍ଧାର କର."
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "ସ୍ଵତଃ ପୁନରୁଦ୍ଧାର"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "ବ. ପ୍ରେରଣ"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "ନା"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "ସନ୍ଦେଶଗୁଡିକ ରଚନା କରିବାକୁ ଏକ ଇନପୁଟ୍ ମୋଡ୍ ଚୟନ କରନ୍ତୁ।"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "କିଛି ନାହିଁ"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "ଆପଣଙ୍କ SIM କାର୍ଡରେ ଷ୍ଟୋର୍ ସନ୍ଦେଶଗୁଡିକ ପରିଚାଳନା କରନ୍ତୁ।"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "ଆପଣଙ୍କର ସନ୍ଦେଶ ପ୍ରତ୍ୟାଖ୍ୟାନ ହେବ। କୌଣସି ପ୍ରାପ୍ତେସୁ ଚୟନିତ ହୋଇନାହାଁନ୍ତି।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "ନିର୍ଦ୍ଧାରିତ ସନ୍ଦେଶ ପ୍ରେରଣ କରିବାରେ ଅସମର୍ଥ। ଅନ୍ୟ ସମୟ ସେଟ୍ କରନ୍ତୁ।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "କଲ୍ ସମୟରେ ଧ୍ୱନି ଚାଳନ କରିବାକୁ ଅସମର୍ଥ।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ଫାଇଲ୍ ସଂଲଗ୍ନ କରିବାକୁ ଅସମର୍ଥ। ଫାଇଲ୍ ଆକାର ବହୁତ ବଡ ଅଟେ। ଇମେଲ୍, ବ୍ଲୁଟୁଥ୍, Wi-Fi, ଇତ୍ୟାଦି ମାଧ୍ୟମରେ ପ୍ରେରଣ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ।"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "ଏହି ମଲ୍ଟିମିଡିଆ ସନ୍ଦେଶ ପ୍ରେରଣ କରିବାକୁ, ଏକ ଭିନ୍ନ ମୋବାଇଲ୍ ନେଟୱାର୍କ୍ ସହ ଡିଭାଇସ୍‌ ସଂଯୋଗ କରିବାକୁ ହେବ। ଏହା ଆପଣଙ୍କ ସମ୍ପ୍ରତି ମୋବାଇଲ୍ ନେଟୱାର୍କରୁ ଆପଣଙ୍କ ଡିଭାଇସ୍‌ ବିଚ୍ଛିନ୍ନ ହେବ।"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "ଏହି ମଲ୍ଟିମିଡିଆ ସନ୍ଦେଶ ଡାଉନଲୋଡ୍‍ କରିବାକୁ, ଡିଭାଇସ୍‌ ଏକ ଭିନ୍ନ ମୋବାଇଲ୍ ନେଟୱାର୍କ୍ ସହିତ ସଂଯୋଗ ସ୍ଥାପନ କରିବାକୁ ହେବ। ଏହା ଆପଣଙ୍କ ସମ୍ପ୍ରତି ମୋବାଇଲ୍ ନେଟୱାର୍କରୁ ଆପଣଙ୍କ ଡିଭାଇସ୍‌ ବିଚ୍ଛିନ୍ନ ହେବ।"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "ଏହି ସନ୍ଦେଶ ପୁନଃପ୍ରେରିତ ହେବ।"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%dଟି ସନ୍ଦେଶ ବିଲୋପ ହେବ।"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%dଟି ବାର୍ତ୍ତାଳାପ ବିଲୋପ ହେବ।"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "ତାଲିକାରେ କୌଣସି ଟେମ୍ପଲେଟ୍ ନାହିଁ"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "ଆଗମନ ସନ୍ଦେଶଗୁଡିକ କେବଳ"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "ବହିର୍ଗମନ ସନ୍ଦେଶର ପ୍ରକୃତ ଟେକ୍ସଟ୍‌ ଅନ୍ତର୍ଭୁକ୍ତ କରନ୍ତୁ"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "ଅବଧି %d ସେକେଣ୍ଡରୁ କମ୍ ହେବା ଜରୁରୀ।"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "ବିଲୋପିତ"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 ସନ୍ଦେଶ ବିଲୋପ ହେବ।"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 ବାର୍ତ୍ତାଳାପ ବିଲୋପ ହେବ।"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "ବିବରଣୀ ଦେଖନ୍ତୁ"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "ସମ୍ପର୍କ ବିବରଣୀ ଦେଖନ୍ତୁ"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "ସ୍ଲାଇଡଶୋ ପରି ଦେଖନ୍ତୁ"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "ଭିଡିଓ‌ଗୁଡିକ"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "ସମ୍ପର୍କ ଅପଡେଟ୍"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "ୟୁନିକୋଡ୍"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "ଟେକ୍ସଟ୍"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "ଫଟୋ ଉଠାନ୍ତୁ"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "ସେଟିଂସ୍"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "ସନ୍ଧାନ"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "ସଂଲଗ୍ନସମୂହ ସଞ୍ଚୟ କରନ୍ତୁ"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "ପୁନଃପ୍ରେରଣ"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "ପ୍ରତ୍ୟୁତ୍ତର"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "ଅବରୋଧ ତାଲିକାରୁ ଅପସାରଣ କରନ୍ତୁ"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "ଭିଡିଓ ରେକର୍ଡ"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "ଅଡିଓ ଫାଇଲ୍ ରେକର୍ଡ କରନ୍ତୁ"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "ଦ୍ରୁତ ପ୍ରତିକ୍ରିୟା"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "କିଛି ନାହିଁ"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "ଭଏସ୍ କଲ୍ କରନ୍ତୁ"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "ଫଟୋଗୁଡିକ"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM ବର୍ଣ୍ଣ"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "ଡିଭାଇସ୍ ମେମୋରୀକୁ ରପ୍ତାନୀ"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "ସମ୍ପାଦନ"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "ସନ୍ଦେଶ ବିଲୋପ"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "ବାର୍ତ୍ତାଳାପ ବିଲୋପ"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "ବିଲୋପ"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "ଡିଫଲ୍ଟ"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "ସମ୍ପର୍କ ସୃଷ୍ଟି"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM କାର୍ଡକୁ କପି"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "ଡିଭାଇସକୁ କପି କରନ୍ତୁ"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "ଟେକ୍ସଟ୍ କପି"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "କପି"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "ବ୍ୟାକ୍ ଅପ୍"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "ସ୍ଵତଃସ୍ପୃତ"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "ଅଡିଓ ଫାଇଲଗୁଡିକ"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "ସଂଲଗ୍ନ"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "ସମ୍ପର୍କକୁ ଯୋଡନ୍ତୁ"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "ଅବରୋଧ ତାଲିକାକୁ ଯୋଡନ୍ତୁ"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "ପ୍ରାପ୍ତେସୁଗଣ ଯୋଡନ୍ତୁ"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "ସନ୍ଧାନ"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "କୌଣସି ଫଳାଫଳ ମିଳିଲା ନାହିଁ"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "କୌଣସି ଦ୍ରୁତ ପ୍ରତିକ୍ରିୟା ନାହିଁ"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "କୌଣସି ଖଣ୍ଡବାକ୍ୟ ଅବରୋଧ ହୋଇନାହିଁ"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM କାର୍ଡରେ କୌଣସି ସନ୍ଦେଶ ନାହିଁ"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "କୌଣସି ସନ୍ଦେଶ ନାହିଁ"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "କୌଣସି ଅବରୋଧ ହୋଇଥିବା ନମ୍ବର ନାହିଁ"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "କମ୍ପନ"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "ଅଜଣା ନମ୍ଵର୍"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "ଟେକ୍ସଟ୍ ସନ୍ଦେଶ କେନ୍ଦ୍ର ନମ୍ଵର୍"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "ସମସ୍ତ ଚୟନ"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "ସତର୍କ"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "ଅନୁବାଦ"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "ଟେକ୍ସଟ୍ ସନ୍ଦେଶଗୁଡିକ"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "ମୋବାଇଲ୍ ନେଟୱାର୍କ୍ ସ୍ଵିଚ୍ କରନ୍ତୁ"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS କେନ୍ଦ୍ର"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "ସେଟିଂସ୍"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "ପ୍ରାପ୍ତେସୁ ଚୟନ କରନ୍ତୁ"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%dଟି ଚୟନିତ"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM କାର୍ଡରେ ସନ୍ଦେଶଗୁଡିକ"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "ସନ୍ଦେଶ"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ଇନପୁଟ୍ ମୋଡ୍"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ଫାଇଲ୍ ଆକାର ବହୁତ ବଡ଼ ଅଟେ"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "ସନ୍ଦେଶ ପ୍ରେରଣ କରିବାକୁ ବିଫଳ ହେଲା"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "ସନ୍ଦେଶ ପ୍ରତ୍ୟାଖ୍ୟାନ"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "ବିଲୋପ"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "ସୃଷ୍ଟି"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "ସତର୍କତା"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "ବିଷୟବସ୍ତୁ ଯୋଡନ୍ତୁ"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "ସ୍ଵିଚ୍"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "ସଞ୍ଚୟ"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "ପୁନଃପ୍ରେରଣ"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "ଅପସାରଣ"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ଓକେ"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ଡାଉନଲୋଡ୍"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "ପ୍ରତ୍ୟାଖ୍ୟାନ"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "ବିଲୋପ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "ବାତିଲ୍"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "ବାତିଲ୍"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "ସମ୍ପର୍କଗୁଡିକ"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "ଆପଣ ଏକ ଧ୍ଵନି ଓ ସଟ୍ ଫାଇଲ୍ ଚୟନ କରିଛନ୍ତି। MMS ପାଇଁ ଧ୍ଵନି ଡାଟା ସମର୍ଥିତ ନୁହେଁ ତେଣୁ କେବଳ ଫଟୋ ସଂଲଗ୍ନ ହେବ।"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "ହଁ"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "ପଠାଇବାକୁ ଅପେକ୍ଷାରତ..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "ଏହି ସନ୍ଦେଶ ପ୍ରେରଣ କରିବାକୁ ଅସମର୍ଥ। ଏକ SIM କାର୍ଡ୍ ସନ୍ନିବେଶ କରନ୍ତୁ ଏବଂ ପୁନଃଚେଷ୍ଟା କରନ୍ତୁ।"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "ପ୍ରକାର:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "ପ୍ରତିବନ୍ଧିତ ମିଡିଆ ପ୍ରକାରଗୁଡିକ ବ୍ୟବହାର କରିବାକୁ, ଆପଣଙ୍କ MMS ସୃଷ୍ଟିକରଣ ମୋଡ୍ ସେଟିଂ ପରିବର୍ତ୍ତନ କରନ୍ତୁ।"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "ସମୟ ପ୍ରେରଣ ହୋଇଛି:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "ସମୟ ପ୍ରାପ୍ତ ହୋଇଛି:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "ଟିକ୍ ବକ୍ସ"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "ସ୍ଥିତି:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "ପ୍ରେରିତ"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "ପ୍ରେରଣ କରୁଛି..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "ପ୍ରେରଣ ବିଫଳ ହେଲା"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "ସେ."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "ରୋମିଂରେ ଥିବା ସମୟରେ ସ୍ୱତଃସ୍ପୃତ ଭାବେ ସନ୍ଦେଶଗୁଡିକ ପୁନରୁଦ୍ଧାର କରନ୍ତୁ।"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "ସ୍ୱତଃସ୍ପୃତ ଭାବେ ସନ୍ଦେଶଗୁଡିକ ପୁନରୁଦ୍ଧାର କରନ୍ତୁ।"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "ରିପୋର୍ଟ ପଠନ: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "ଅନ୍ୟ ବ୍ୟକ୍ତି"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "ସନ୍ଦେଶ"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "ମେମୋ"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "ବିଫଳ ହେଲା"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "ଟେକ୍ସଟ୍‍ ପ୍ରବେଶ କରନ୍ତୁ"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "ଡ୍ରାଫ୍ଟ"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "ବିତରଣ ରିପୋର୍ଟ୍: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "ସିବି ସନ୍ଦେଶ"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "କ୍ୟାଲେଣ୍ଡର୍"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ଆପଣ ସନ୍ଦେଶଗୁଡିକ ପ୍ରାପ୍ତ କିମ୍ୱା ପ୍ରେରିତ କରିବା ପରେ, ସେଗୁଡିକ ଏଠାରେ ଦେଖାଯିବ।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ଆପଣ ଦ୍ରୁତ ପ୍ରତିକ୍ରିୟାଗୁଡିକ ସୃଷ୍ଟି କରିବା ପରେ, ସେଗୁଡିକ ଏଠାରେ ଦେଖାଯିବ।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ଆପଣ SIM କାର୍ଡରେ ସନ୍ଦେଶଗୁଡିକ କପି କରିବା ପରେ, ସେଗୁଡିକ ଏଠାରେ ଦେଖାଯିବ।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ଆପଣ ଖଣ୍ଡବାକ୍ୟଗୁଡିକ ଯୋଡିବା ପରେ, ସେଗୁଡିକ ଏଠାରେ ଦେଖାଯିବ।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ସନ୍ଦେଶ ଅବରୋଧ ତାଲିକାକୁ ନମ୍ବରଗୁଡିକ ଯୋଡିବା ପରେ, ସେଗୁଡିକ ଏଠାରେ ଦେଖାଯିବ।"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ବିଲୋପ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "ଲୋଡ୍ କରୁଛି..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "ବିଜ୍ଞପ୍ତିଗୁଡିକ"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "ମୁଁ"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "ପ୍ରେ."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "ପ୍ରେରଣ"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ପ୍ରେରଣ"
+
diff --git a/main/po/pa.po b/main/po/pa.po
new file mode 100644 (file)
index 0000000..90104cd
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "ਘਰ"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "ਡੈਟਾ ਰੋਮਿੰਗ ਅਸਮਰੱਥ ਹੈ। ਡੈਟਾ ਰੋਮਿੰਗ ਸਮਰੱਥ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "ਨਵਾਂ ਸੰਦੇਸ਼"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ਰੱਦ ਕਰੋ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ਪੂਰਨ"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "ਅਗਿਆਤ"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "ਮੋਬਾਈਲ"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "ਮੋਬਾਈਲ ਡੈਟਾ ਅਸਮਰੱਥ ਹੈ। ਮੋਬਾਈਲ ਡੈਟਾ ਸਮਰੱਥ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ਭੇਜੋ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "ਅਸਮਰਥਿਤ ਮੀਡਿਆ ਪ੍ਰਕਾਰ।"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "ਫਲਾਈਟ ਮੋਡ ਵਿੱਚ ਸੰਦੇਸ਼ ਭੇਜਣ ਵਿੱਚ ਅਸਮਰੱਥ। ਫਲਾਈਟ ਮੋਡ ਅਸਮਰੱਥ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "ਫਾੱਰਵਰਡ ਕਰਨ ਵਿੱਚ ਅਸਮੱਰਥ।\nਫਾਈਲ ਫਾੱਰਵਰਡ ਲੌਕਡ ਹੈ।"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਸਟੋਰੇਜ ਵਿੱਚ ਉਚਿਤ ਥਾਂ ਨਹੀਂ ਹੈ। ਸੈੱਟਿੰਗਸ > ਪਾਵਰ ਅਤੇ ਸਟੋਰੇਜ > ਸਟੋਰੇਜ ਤੇ ਜਾਉ, ਫਿਰ ਕੁਝ ਫਾਈਲਾਂ ਮਿਟਾਓ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "ਟੈਕਸਟ ਉੱਪਰ"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "ਟੈਕਸਟ ਹੇਠਾਂ"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "ਲੇਆਉਟ ਚੁਣੋ"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "ਸਮੱਗਰੀ ਸ਼ਾਮਲ ਕਰਨ ਵਿਚ ਅਸਮਰੱਥ।"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "ਸੰਦੇਸ਼ %s ਨੂੰ ਭੇਜਣ ਲਈ ਸ਼ੈਡਿਊਲ ਕੀਤਾ ਗਿਆ। ਹੁਣ ਭੇਜਣਾ ਹੈ?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "ਸੰਦੇਸ਼ ਅਧਿਕਤਮ ਆਕਾਰ ਤੇ ਪਹੁੰਚ ਗਿਆ।"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "ਘੱਟ ਬੈਟਰੀ।"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "ਅਵਧੀ ਘੱਟ ਤੋਂ ਘੱਟ %d ਸਕਿੰਟਾਂ ਦੀ ਹੋਣੀ ਜ਼ਰੂਰੀ ਹੈ।"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "ਫਲਾਈਟ ਮੋਡ ਅਸਮਰੱਥ ਹੋ ਰਿਹਾ ਹੈ..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM ਕਾਰਡ ਤੇ ਕਾਪੀ ਹੋਇਆ।"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "ਰੱਦ।"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "ਕੋਈ ਦੂਜੀ ਸੰਪਰਕ ਜਾਣਕਾਰੀ ਉਪਯੋਗ ਕਰੋ"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "ਇਸ ਰਾਹੀਂ ਭੇਜੋ"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "ਚਿੱਤਰ"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ਈਮੇਲ"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "ਬਦਲੋ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "ਦੇਖੋ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "ਹਟਾਉ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "ਪਲੇ ਕਰੋ"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "ਨੂੰ"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "ਸੰਦੇਸ਼ ਰੱਦ ਕਰੋ"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "ਪ੍ਰਾਪਤਕਰਤਾ ਸੂਚੀ"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "ਪੂਰਵ-ਦਰਸ਼ਨ"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "ਸਲਾਈਡ ਲਈ ਅਵਧੀ %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "ਸਲਾਈਡਸ਼ੋਅ ਵਿੱਚ ਆਈਟਮਸ ਜੋੜਨ ਤੱਕ ਉਡੀਕ ਕਰੋ।"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "ਸੰਦੇਸ਼ ਭੇਜਣ ਵਿੱਚ ਅਸਮਰੱਥ।"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "ਰਿੰਗਟੋਨ ਚੁਣੋ"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "ਪੜ੍ਹੇ ਜਾਣ ਦੀ ਰਿਪੋਰਟ ਭੇਜ ਦਿੱਤੀ ਜਾਵੇਗੀ।"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "ਬੇਨਤੀ ਨਹੀਂ ਕੀਤੀ ਗਈ"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "ਪ੍ਰਾਪਤਕਰਤਾ ਅਧਿਕਤਮ ਸੰਖਿਆ (%d) ਤੇ ਪਹੁੰਚ ਗਏ।"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "ਵਿਸ਼ਾ ਦਾਖ਼ਲ ਕਰੋ।"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "ਡੁਪਲੀਕੇਟ ਪ੍ਰਾਪਤਕਰਤਾ।"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "ਫਾੱਵਰਡ"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "ਸੁਰੱਖਿਅਤ ਕਰਨ'ਚ ਅਸਮਰੱਥ।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "ਸਥਾਨ ਲੱਭਣ 'ਚ ਅਸਮਰੱਥ।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "ਮਿਟਾਉਣ ਵਿੱਚ ਅਸਮਰੱਥ।"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "ਕਾਪੀ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ।"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "ਕੁਝ ਵਰਣ ਲੁਪਤ ਹੋ ਸਕਦੇ ਹਨ ਜਾਰੀ। ਰੱਖੋ?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM ਸੰਮਿਲਤ ਨਹੀਂ ਹੋਇਆ।"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "ਸੁਰੱਖਿਅਤ ਕਰਨਾ ਅਸਫਲ।"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "ਮੇਰੀਆਂ ਫਾਈਲਾਂ ਵਿੱਚ ਸੁਰੱਖਿਅਤ।"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "ਸੰਦੇਸ਼ ਦੁਬਾਰਾ ਪ੍ਰਾਪਤ ਕਰਨ ਵਿੱਚ ਅਸਫਲ"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "ਪ੍ਰਤੀਬੰਧਿਤ ਸਮੱਗਰੀ ਪ੍ਰਕਾਰ। ਫਿਰ ਵੀ ਅਟੈਚ ਕਰਨਾ ਹੈ?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "ਪੁਨਰ ਸਥਾਪਿਤ ਹੋ ਰਿਹਾ ਹੈ..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "ਅਸਵੀਕਾਰ।"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "ਪੜ੍ਹੇ ਜਾਣ ਦੀ ਰਿਪੋਰਟ ਭੇਜੋ"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "ਕੋਈ ਨੰਬਰ ਨਹੀਂ ਹੈ"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "ਕੋਈ ਅਟੈਚਮੈਂਟਸ ਨਹੀਂ"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "ਨਵੇਂ ਸੰਦੇਸ਼"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM ਕਾਰਡ ਤੋਂ ਸੰਦੇਸ਼ ਕਾਪੀ ਕੀਤਾ ਗਿਆ।"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "ਪ੍ਰਾਪਤਕਰਤਾਵਾਂ ਦੀ ਅਧਿਕਤਮ ਸੰਖਿਆ %d ਹੈ। ਕੁੱਝ ਪ੍ਰਾਪਤਕਰਤਾ ਗੁਆਚ ਸਕਦੇ ਹਨ।"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "ਅਟੈਚਮੈਂਟਸ ਅਧਿਕਤਮ ਸੰਖਿਆ (%s) ਤੋਂ ਵਧੀਆਂ।"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "ਵਰਣ ਅਧਿਕਤਮ ਸੰਖਿਆ ਤੇ ਪਹੁੰਚੇ।"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "ਪ੍ਰਗਤੀ ਵਿੱਚ ਹੈ..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "ਸ਼ੁਰੂ ਹੋ ਰਿਹਾ ਹੈ..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "ਜੇਕਰ ਤੁਸੀਂ ਫਾਈਲ ਨੂੰ ਬਦਲਣਾ ਨਹੀਂ ਚਾਹੁੰਦੇ, ਤਾਂ ਇਸਦਾ ਨਾਂ ਬਦਲੋ।"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "ਇਸ ਸੰਦੇਸ਼ ਵਿੱਚ ਇੱਕ ਅਟੈਚਡ ਫਾਈਲ ਸ਼ਾਮਲ ਹੈ ਜੋ ਦਿਖਾਈ ਨਹੀਂ ਗਈ।"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "ਇਸ ਸੰਦੇਸ਼ ਵਿੱਚ ਅਟੈਚ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਸ਼ਾਮਲ ਹਨ ਜੋ ਦਿਖਾਈਆਂ ਨਹੀਂ ਗਈਆਂ।"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ਫਾਈਲ ਨਾਂ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ।"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "ਮਿਟਾ ਰਿਹਾ ਹੈ..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "ਕਲਿਪਬੋਰਡ ਤੇ ਕਾਪੀ ਹੋਇਆ।"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "ਟੈਕਸਟ ਸੰਦੇਸ਼ ਵਿੱਚ ਤਬਦੀਲ ਹੋ ਰਿਹਾ ਹੈ..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "ਮਲਟੀਮੀਡਿਆ ਸੰਦੇਸ਼ ਵਿੱਚ ਤਬਦੀਲ ਹੋ ਰਿਹਾ ਹੈ..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "ਕੀ %s ਨੂੰ ਬਲੌਕ ਕਰਨਾ ਹੈ?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "ਤੁਸੀਂ ਆੱਨਲਾਈਨ(%s) ਹੋਣ ਵਾਲੇ ਹੋ। ਜਾਰੀ ਰੱਖੀਏ?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "ਟੈਕਸਟ ਸੰਦੇਸ਼"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "ਵਿਸ਼ਾ:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ਈਮੇਲ ਦੁਆਰਾ ਭੇਜੋ"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "ਭੇਜਣ ਵਾਲਾ"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "ਚੁਣੋ"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "ਅਟੈਚਮੈਂਟ ਸੁਰੱਖਿਅਤ ਕਰੋ"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "ਸੇਵ ਕਰੋ"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "ਹਟਾਉ"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "ਸਥਾਪਿਤ ਕਰੋ"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "ਅੱਗੇ ਭੇਜੋ"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "ਸੰਦੇਸ਼ ਸੰਪਾਦਿਤ ਕਰੋ"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "ਮਿਟਾਉਣਾ ਹੈ?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "ਸੰਦੇਸ਼ ਮਿਟਾਓ"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "ਸੰਦੇਸ਼ ਚੁਣੋ"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "ਸਭ ਸੁਰੱਖਿਅਤ ਕਰੋ"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "ਸੰਦੇਸ਼ ਵੇਰਵੇ"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "ਮਿਆਦ ਸਮਾਪਤ: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "ਉੱਨਤ ਖੋਜ"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "ਸਾਰੇ ਅਟੈਚਮੈਂਟਸ ਸੁਰੱਖਿਅਤ ਕਰੋ"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "ਅਗਿਆਤ"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "ਨੂੰ:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "ਟੈਕਸਟ ਸੰਦੇਸ਼"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM ਮੈਮਰੀ ਪੂਰਨ। ਕੁਝ ਆਈਟਮਸ ਨੂੰ ਮਿਟਾਓ।"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "ਸੈੱਟਿੰਗਸ"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "ਭੇਜਿਆ:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "ਬੇਨਤੀ ਕੀਤੀ।"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "ਪ੍ਰਾਪਤਕਰਤਾ"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "ਪ੍ਰਾਪਤ:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "ਪ੍ਰਾਪਤ ਕੀਤਾ।"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "ਪੜ੍ਹੇ ਜਾਣ ਦੀ ਰਿਪੋਰਟ ਭੇਜੋ"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "ਪੁਸ਼ ਸੰਦੇਸ਼"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d ਸੰਦੇਸ਼"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d ਵਾਰਤਾਲਾਪ"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "ਹੋਰ"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "ਕੋਈ ਵਿਸ਼ਾ ਨਹੀਂ"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "ਕੋਈ ਨਾਂ ਨਹੀਂ ਹੈ"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "ਮਲਟੀਮੀਡਿਆ ਸੰਦੇਸ਼ ਸੂਚਨਾ"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "ਮਲਟੀਮੀਡਿਆ ਸੰਦੇਸ਼"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "ਪੜ੍ਹੋ"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "ਸੰਦੇਸ਼ ਰੱਦ ਕੀਤਾ।"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "ਸੰਦੇਸ਼ ਦਾ ਆਕਾਰ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "ਸੰਦੇਸ਼ ਵਿਕਲਪ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "ਸੰਦੇਸ਼ ਪਹੁੰਚਾਇਆ ਗਿਆ"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "ਸੰਦੇਸ਼"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "ਮੈਂ"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "ਅਟੈਚਮੈਂਟਸ (%1$s) ਅਧਿਕਤਮ ਸੰਖਿਆ ਤੋਂ ਵੱਧ ਗਏ ਹਨ। ਕੇਵਲ ਪਹਿਲੀਆਂ %2$s ਹੀ ਜੋੜੀਆਂ ਜਾਣਗੀਆਂ।"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "ਅਵੈਧ ਪ੍ਰਾਪਤਕਰਤਾ।"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "ਵੱਲੋਂ"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "ਵੱਲੋਂ:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "ਮਿਆਦ ਸਮਾਪਤ"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "ਭੇਜਣਾ ਅਸਫਲ।"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "ਡਿਲੀਵਰੀ ਰਿਪੋਰਟ"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP ਸੰਦੇਸ਼"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "ਟੈਕਸਟ ਕਾਪੀ ਕਰੋ"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB ਸੰਦੇਸ਼"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "ਸਭ"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 ਸੰਦੇਸ਼"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 ਵਾਰਤਾਲਾਪ"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ਆਪਣੇ ਦੁਆਰਾ ਭੇਜੇ ਜਾਣ ਵਾਲੇ ਹਰੇਕ ਸੰਦੇਸ਼ ਲਈ ਪੜ੍ਹੇ ਜਾਣ ਦੀ ਰਿਪੋਰਟ ਲਈ ਬੇਨਤੀ ਕਰੋ।"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ਆਪਣੇ ਦੁਆਰਾ ਭੇਜੇ ਜਾਣ ਵਾਲੇ ਹਰੇਕ ਸੰਦੇਸ਼ ਲਈ ਡਿਲੀਵਰੀ ਰਿਪੋਰਟ ਲਈ ਬੇਨਤੀ ਕਰੋ।"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "ਰੇਡੀਓ ਬਟਨ"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ਚਾਲੂ/ਬੰਦ ਬਟਨ"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "ਵਿਸਤਾਰਯੋਗ ਸੂਚੀ"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS ਸੰਦੇਸ਼ ਸਵੈਚਲਿਤ ਪ੍ਰਾਪਤ ਕਰੋ।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ਫਾਈਲ ਦਾ ਪੂਰਵ-ਦਰਸ਼ਨ ਦੇਖਣ ਵਿੱਚ ਅਸਮਰੱਥ। ਅਸਮਰਥਿਤ ਫਾਈਲ ਪ੍ਰਕਾਰ।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "ਕੁੱਝ ਪ੍ਰਾਪਤਕਰਤਾਵਾਂ ਨੂੰ ਜੋੜਨ ਵਿੱਚ ਅਸਮਰੱਥ ਹੈ। ਨੰਬਰ ਵੈਧ ਨਹੀਂ ਹਨ।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "ਪ੍ਰਾਪਤਕਰਤਾ ਜੋੜਨ ਵਿੱਚ ਅਸਮਰੱਥ ਹੈ। ਨੰਬਰ ਵੈਧ ਨਹੀਂ ਹੈ।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "ਪ੍ਰਾਪਤਕਰਤਾਵਾਂ ਨੂੰ ਜੋੜਨ ਵਿੱਚ ਅਸਮਰੱਥ ਹੈ। ਨੰਬਰ ਵੈਧ ਨਹੀਂ ਹਨ।"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "ਅਟੈਚਮੈਂਟ ਜੋੜਨ ਵਿੱਚ ਅਸਮਰੱਥ। ਅਟੈਚਮੈਂਟਸ ਦੀ ਅਧਿਕਤਮ ਸੰਖਿਆ (%d) ਤੋਂ ਪਾਰ ਹੋ ਗਈ ਹੈ।"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "ਇਹ ਨੰਬਰ ਵੈਧ ਨਹੀਂ ਹੈ।"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "ਚੁਣੇ ਗਏ ਸੰਦੇਸ਼ ਮੋਬਾਈਲ ਡਿਵਾਈਸ ਤੇ ਕਾਪੀ ਕੀਤੇ ਗਏ।"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d ਸੰਦੇਸ਼ਾਂ ਨੂੰ ਸੰਦੇਸ਼ ਸੂਚੀ ਵਿੱਚ ਮੂਵ ਕੀਤਾ ਗਿਆ।"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "ਨੰਬਰ ਨੂੰ ਸੰਦੇਸ਼ ਬਲੌਕ ਸੂਚੀ ਵਿੱਚੋਂ ਹਟਾਇਆ ਗਿਆ।"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "ਨੰਬਰ ਨੂੰ ਸੰਦੇਸ਼ ਬਲੌਕ ਸੂਚੀ ਵਿੱਚ ਜੋੜਿਆ ਗਿਆ।"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "ਸੰਦੇਸ਼ %s SIM ਕਾਰਡ ਤੇ ਕਾਪੀ ਕੀਤਾ ਗਿਆ।"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "ਵਰਣਾਂ ਦੀ ਅਧਿਕਤਮ ਸੰਖਿਆ ਪਾਰ ਹੋ ਗਈ ਹੈ।"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "ਅਧਿਕਤਮ ਸੰਦੇਸ਼ ਆਕਾਰ (%s) ਪਾਰ ਹੋ ਗਿਆ ਹੈ। ਅਟੈਚਮੈਂਟਸ ਨੂੰ ਪੁਨਰ ਆਕਾਰ ਦਿੱਤਾ ਜਾ ਰਿਹਾ ਹੈ..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "ਅਵੈਧ ਵਰਣ ਦਾਖਲ ਕੀਤਾ"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "ਪ੍ਰਾਪਤਕਰਤਾ ਜੋੜੋ।"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 ਸੰਦੇਸ਼ ਨੂੰ ਸੰਦੇਸ਼ ਸੂਚੀ ਵਿੱਚ ਮੂਵ ਕੀਤਾ ਗਿਆ।"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "ਟੈਕਸਟ ਸੰਦੇਸ਼"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ਧੁਨੀ"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "ਮਲਟੀਮੀਡਿਆ ਸੰਦੇਸ਼"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM ਕਾਰਡ ਤੇ ਸੰਦੇਸ਼"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "ਇਨਪੁਟ ਮੋਡ"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "ਰੋਮਿੰਗ ਦੌਰਾਨ ਸਵੈ ਪ੍ਰਾਪਤ ਕਰੋ"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "ਸਵੈ ਪ੍ਰਾਪਤ ਕਰੋ"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "ਹੁਣ ਭੇਜੋ"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "ਨਹੀਂ"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "ਸੰਦੇਸ਼ ਲਿਖਣ ਲਈ ਇਨਪੁਟ ਮੋਡ ਚੁਣੋ।"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "ਕੋਈ ਨਹੀਂ"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "ਆਪਣੇ SIM ਕਾਰਡ ਤੇ ਸਟੋਰ ਕੀਤੇ ਸੰਦੇਸ਼ ਪ੍ਰਬੰਧਿਤ ਕਰੋ।"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "ਤੁਹਾਡਾ ਸੰਦੇਸ਼ ਰੱਦ ਹੋ ਜਾਵੇਗਾ। ਕਿਸੇ ਪ੍ਰਾਪਤਕਰਤਾ ਦੀ ਚੋਣ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "ਸ਼ੈਡਿਊਲ ਕੀਤਾ ਸੰਦੇਸ਼ ਭੇਜਣ ਵਿੱਚ ਅਸਮੱਰਥ। ਕੋਈ ਹੋਰ ਸਮਾਂ ਸੈੱਟ ਕਰੋ।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "ਕਾੱਲ ਦੇ ਦੌਰਾਨ ਪਲੇ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ।"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ਫਾਈਲ ਅਟੈਚ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ। ਫਾਈਲ ਦਾ ਆਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ। ਈਮੇਲ, ਬਲੂਟੁੱਥ, Wi-Fi, ਆਦਿ ਦੇ ਰਾਹੀਂ ਭੇਜਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "ਇਹ ਮਲਟੀਮੀਡਿਆ ਸੰਦੇਸ਼ ਭੇਜਣ ਲਈ, ਡਿਵਾਈਸ ਵੱਖਰੇ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੇਗਾ। ਇਸ ਨਾਲ ਤੁਹਾਡਾ ਡਿਵਾਈਸ ਤੁਹਾਡੇ ਮੌਜੂਦਾ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਤੋਂ ਡਿਸਕਨੈਕਟ ਹੋ ਜਾਵੇਗਾ।"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "ਇਸ ਮਲਟੀਮੀਡਿਆ ਸੰਦੇਸ਼ ਨੂੰ ਡਾਉਨਲੋਡ ਕਰਨ ਲਈ, ਡਿਵਾਈਸ ਕਿਸੇ ਅਲੱਗ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੇਗਾ। ਇਹ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਨੂੰ ਤੁਹਾਡੇ ਮੌਜੂਦਾ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਤੋਂ ਡਿਸਕਨੈਕਟ ਕਰ ਦੇਵੇਗਾ।"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "ਇਸ ਸੰਦੇਸ਼ ਨੂੰ ਦੁਬਾਰਾ ਭੇਜਿਆ ਜਾਵੇਗਾ।"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d ਸੰਦੇਸ਼ ਮਿਟ ਜਾਣਗੇ।"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d ਵਾਰਤਾਲਾਪ ਮਿਟ ਜਾਣਗੇ।"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "ਸੂਚੀ ਵਿੱਚ ਕੋਈ ਟੈਂਪਲੇਟਸ ਨਹੀਂ"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "ਸਿਰਫ ਇਨਕਮਿੰਗ ਸੰਦੇਸ਼"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "ਆਉਟਗੋਇੰਗ ਸੰਦੇਸ਼ ਵਿੱਚ ਮੂਲ ਟੈਕਸਟ ਸ਼ਾਮਲ ਕਰੋ"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "ਅਵਧੀ %d ਸਕਿੰਟਾਂ ਤੋਂ ਘੱਟ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "ਮਿਟਾਇਆ ਗਿਆ।"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 ਸੰਦੇਸ਼ ਮਿਟ ਜਾਵੇਗਾ।"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 ਵਾਰਤਾਲਾਪ ਮਿਟਾ ਦਿੱਤੀ ਜਾਵੇਗੀ।"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "ਵੇਰਵੇ ਵੇਖੋ"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "ਸੰਪਰਕ ਵੇਰਵੇ ਦੇਖੋ"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "ਸਲਾਈਡਸ਼ੋਅ ਵਜੋਂ ਦੇਖੋ"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "ਵੀਡਿਓਜ਼"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "ਸੰਪਰਕ ਅਪਡੇਟ ਕਰੋ"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "ਯੂਨੀਕੋਡ"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "ਟੈਕਸਟ"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "ਤਸਵੀਰ ਲਉ"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "ਸੈੱਟਿੰਗਸ"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "ਖੋਜੋ"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "ਅਟੈਚਮੈਂਟਸ ਸੁਰੱਖਿਅਤ ਕਰੋ"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "ਦੁਬਾਰਾ ਭੇਜੋ"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "ਉੱਤਰ ਦਿਉ"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "ਬਲੌਕ ਸੂਚੀ ਤੋਂ ਹਟਾਉ"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "ਵੀਡਿਓ ਰਿਕਾਰਡ ਕਰੋ"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "ਆਡੀਓ ਫਾਈਲ ਰਿਕਾਰਡ ਕਰੋ"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "ਤੁਰੰਤ ਪ੍ਰਤੀਕਿਰਿਆ"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "ਕੋਈ ਨਹੀਂ"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "ਵਾੱਇਸ ਕਾੱਲ ਕਰੋ"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "ਚਿੱਤਰ"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM ਵਰਣਮਾਲਾ"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "ਡਿਵਾਈਸ ਮੈਮਰੀ ਤੇ ਨਿਰਯਾਤ ਕਰੋ"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "ਸੰਪਾਦਿਤ ਕਰੋ"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "ਸੰਦੇਸ਼ ਮਿਟਾਓ"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "ਵਾਰਤਾਲਾਪ ਮਿਟਾਓ"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "ਮਿਟਾਓ"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "ਡਿਫਾੱਲਟ"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "ਸੰਪਰਕ ਬਣਾਉ"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM ਕਾਰਡ ਵਿੱਚ ਕਾਪੀ ਕਰੋ"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "ਡਿਵਾਈਸ ਤੇ ਕਾਪੀ ਕਰੋ"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "ਟੈਕਸਟ ਕਾਪੀ ਕਰੋ"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "ਕਾਪੀ ਕਰੋ"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "ਬੈਕਅਪ ਲਓ"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "ਸਵੈਚਲਿਤ"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "ਆਡੀਓ ਫਾਈਲਾਂ"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "ਅਟੈਚਮੈਂਟ"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "ਸੰਪਰਕਾਂ ਵਿੱਚ ਜੋੜੋ"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "ਬਲੌਕ ਸੂਚੀ ਵਿੱਚ ਜੋੜੋ"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "ਪ੍ਰਾਪਤਕਰਤਾ ਜੋੜੋ"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "ਖੋਜੋ"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "ਕੋਈ ਪਰਿਣਾਮ ਨਹੀਂ ਮਿਲੇ"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "ਕੋਈ ਤੁਰੰਤ ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ ਨਹੀਂ"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "ਕੋਈ ਵਾਕਾਂਸ਼ ਬਲੌਕ ਨਹੀਂ ਕੀਤੇ ਗਏ"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM ਕਾਰਡ ਉੱਤੇ ਕੋਈ ਸੰਦੇਸ਼ ਨਹੀਂ ਹਨ"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "ਕੋਈ ਸੰਦੇਸ਼ ਨਹੀਂ"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "ਕੋਈ ਬਲੌਕ ਕੀਤਾ ਗਿਆ ਨੰਬਰ ਨਹੀਂ ਹੈ"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "ਵਾਈਬ੍ਰੇਸ਼ਨ"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "ਅਗਿਆਤ ਨੰਬਰ"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "ਟੈਕਸਟ ਸੰਦੇਸ਼ ਕੇਂਦਰ ਨੰਬਰ"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "ਸਭ ਚੁਣੋ"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "ਅਲਰਟ"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "ਅਨੁਵਾਦ ਕਰੋ"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "ਟੈਕਸਟ ਸੰਦੇਸ਼"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਸਵਿੱਚ ਕਰੋ"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS ਕੇਂਦਰ"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "ਸੈੱਟਿੰਗਸ"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "ਪ੍ਰਾਪਤਕਰਤਾ ਚੁਣੋ"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d ਚੁਣੇ ਗਏ"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM ਕਾਰਡ ਤੇ ਸੰਦੇਸ਼"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "ਸੰਦੇਸ਼"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ਇਨਪੁਟ ਮੋਡ"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ਫਾਈਲ ਦਾ ਆਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "ਸੰਦੇਸ਼ ਭੇਜਣ ਵਿੱਚ ਅਸਫਲ"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "ਸੰਦੇਸ਼ ਖਾਰਿਜ ਕਰੋ"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "ਮਿਟਾਓ"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "ਬਣਾਉ"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "ਧਿਆਨ ਦਿਉ"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "ਸਮੱਗਰੀ ਜੋੜੋ"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "ਸਵਿੱਚ ਕਰੋ"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "ਸੁਰੱਖਿਅਤ ਕਰੋ"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "ਦੁਬਾਰਾ ਭੇਜੋ"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "ਹਟਾਉ"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ਓਕੇ"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ਡਾਉਨਲੋਡ ਕਰੋ"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "ਖਾਰਿਜ ਕਰੋ"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "ਮਿਟਾਓ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "ਰੱਦ ਕਰੋ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "ਰੱਦ ਕਰੋ"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "ਸੰਪਰਕ"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "ਤੁਸੀਂ ਇੱਕ ਸਾਉਂਡ ਅਤੇ ਸ਼ੌਟ ਫਾਈਲ ਦੀ ਚੋਣ ਕੀਤੀ ਹੈ। MMS ਦੇ ਲਈ ਸਾਉਂਡ ਡੈਟਾ ਸਮਰੱਥਿਤ ਨਹੀਂ ਹੈ ਇਸ ਲਈ ਸਿਰਫ ਤਸਵੀਰ ਨੂੰ ਹੀ ਅਟੈਚ ਕੀਤਾ ਜਾਵੇਗਾ।"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "ਹਾਂ"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "ਭੇਜਣ ਲਈ ਉਡੀਕ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "ਇਸ ਸੰਦੇਸ਼ ਨੂੰ ਭੇਜਣ ਵਿੱਚ ਅਸਮਰੱਥ। ਆਪਣਾ SIM ਕਾਰਡ ਸੰਮਿਲਿਤ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "ਪ੍ਰਕਾਰ:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "ਪ੍ਰਤੀਬੰਧਿਤ ਮੀਡਿਆ ਪ੍ਰਕਾਰ ਵਰਤਣ ਲਈ, ਆਪਣੀ MMS ਸਿਰਜਨਾ ਮੋਡ ਸੈੱਟਿੰਗਸ ਨੂੰ ਬਦਲੋ।"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "ਭੇਜਣ ਦਾ ਸਮਾਂ:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "ਪ੍ਰਾਪਤ ਹੋਣ ਦਾ ਸਮਾਂ:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "ਟਿਕ ਬਾੱਕਸ"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "ਸਥਿਤੀ:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "ਭੇਜੇ ਗਏ"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "ਭੇਜ ਰਿਹਾ ਹੈ..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "ਭੇਜਣਾ ਅਸਫਲ"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "ਸਕਿ"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "ਰੋਮਿੰਗ ਦੌਰਾਨ ਸੰਦੇਸ਼ ਸਵੈਚਲਿਤ ਪ੍ਰਾਪਤ ਕਰੋ।"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "ਸੰਦੇਸ਼ ਸਵੈਚਲਿਤ ਪ੍ਰਾਪਤ ਕਰੋ।"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "ਪੜ੍ਹੇ ਜਾਣ ਦੀ ਰਿਪੋਰਟ: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "ਦੂਜਾ ਵਿਅਕਤੀ"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "ਸੰਦੇਸ਼"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "ਮੈਮੋ"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "ਅਸਫਲ"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "ਟੈਕਸਟ ਦਾਖ਼ਲ ਕਰੋ"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "ਡ੍ਰਾਫਟ"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "ਡਿਲੀਵਰੀ ਰਿਪੋਰਟ: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB ਸੰਦੇਸ਼"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "ਕੈਲੇਂਡਰ"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ਤੁਹਾਡੇ ਵੱਲੋਂ ਸੰਦੇਸ਼ ਭੇਜਣ ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਉਹਨਾਂ ਨੂੰ ਇੱਥੇ ਦਿਖਾਇਆ ਜਾਵੇਗਾ।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ਤੁਹਾਡੇ ਦੁਆਰਾ ਤੁਰੰਤ ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ, ਉਹ ਇੱਥੇ ਦਿਖਾਈ ਦੇਣਗੀਆਂ।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ਤੁਹਾਡੇ ਦੁਆਰਾ ਸੰਦੇਸ਼ਾਂ ਨੂੰ SIM ਕਾਰਡ ਤੇ ਕਾਪੀ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਉਹ ਇੱਥੇ ਦਿਖਾਈ ਦੇਣਗੇ।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ਤੁਹਾਡੇ ਵੱਲੋਂ ਵਾਕਾਂਸ਼ ਜੋੜੇ ਜਾਣ ਤੋਂ ਬਾਅਦ, ਉਹ ਇੱਥੇ ਦਿਖਾਈ ਦੇਣਗੇ।"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ਤੁਹਾਡੇ ਵੱਲੋਂ ਸੰਦੇਸ਼ ਬਲੌਕ ਸੂਚੀ ਵਿੱਚ ਨੰਬਰ ਜੋੜਨ ਤੋਂ ਬਾਅਦ, ਉਹ ਇੱਥੇ ਦਿਖਾਏ ਜਾਣਗੇ।"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ਮਿਟਾਓ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "ਸੂਚਨਾਵਾਂ"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "ਮੈਂ"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "ਭੇਜੋ"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "ਭੇਜੋ"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ਭੇਜੋ"
+
diff --git a/main/po/pl.po b/main/po/pl.po
new file mode 100644 (file)
index 0000000..ed63de8
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Domowy"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Roaming danych jest wyłączony. Włącz roaming danych i spróbuj ponownie."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nowa wiadomość"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ANULUJ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "GOTOWE"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nieznane"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Komórkowy"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Transmisja danych po sieci jest wyłączona. Włącz transmisję danych po sieci i spróbuj ponownie."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "WYŚLIJ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Nieobsługiwany typ nośnika."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Kiedy tryb Offline jest włączony, nie można wysyłać wiadomości. Wyłącz tryb Offline i spróbuj ponownie."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Nie można przesłać dalej.\nPrzesyłanie pliku jest zablokowane."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Za mało miejsca w położeniu pamięci urządzenia. Przejdź do menu Ustawienia > Energia i położenie pamięci > Położenie pamięci, a następnie usuń niektóre pliki i spróbuj ponownie."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Tekst na górze"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Tekst na dole"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Wybierz układ"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Nie można dodać zawartości."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Zaplanowano wysyłanie wiadomości do odbiorcy %s. Wysłać teraz?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Osiągnięto maksymalny rozmiar wiadomości."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Bateria rozładowana."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Czas trwania nie może być krótszy niż %d s."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Wyłączanie trybu offline..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Skopiowano na kartę SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Anulowano."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Użyj inf. innego kont."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Wyślij przez"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Obraz"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Zastąp"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Pokaż"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Usuń"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Odtwórz"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Do"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Anuluj wiadomość"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Lista odbiorców"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Podgląd"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Czas trwania slajdu %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Poczekaj, aż elementy zostaną dodane do pokazu slajdów."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Nie można wysłać wiadomości."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Wybierz dzwonek"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Zostanie wysłany raport odczytania."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Nie żądano"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Osiągnięto maksymalną liczbę odbiorców (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Wpisz temat."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Powtórzony odbiorca."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "P. dalej"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Nie można zapisać."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Nie można znaleźć lokalizacji."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Nie można usunąć."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Nie można skopiować."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Niektóre znaki mogą zniknąć. Kontynuować?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "Nie włożono karty SIM."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Błąd zapisywania"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Zapisano w Moich plikach."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Błąd pobierania wiadomości"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Typ treści z ograniczeniami. Czy mimo to dołączyć?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Przywracanie..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Odrzucono."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Raport odczytania"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Brak numeru"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Bez załączników"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nowa wiad."
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Skopiowano wiadomość z karty SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maksymalna liczba adresatów to %d. Część adresatów może zostać utracona."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Przekroczono maksymalną liczbę załączników (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Osiągnięto maksymalną liczbę znaków."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "W toku..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Inicjowanie..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Jeśli nie chcesz zastąpić pliku, zmień nazwę."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Ta wiadomość zawiera pewne załączniki, które nie są pokazane."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Ta wiadomość zawiera niewyświetlone dołączone pliki."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Nazwa pliku już istnieje."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Usuwanie..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Skopiowane do schowka."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Zmiana w SMS..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Zmiana w MMS..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Zablokować znajomego %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Połączyć z WAP (%s)? Kontynuować?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Temat:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Wyślij jako e-mail"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Nadawca"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Wybierz"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Zapisz załącznik"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Zapisz"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Usuń"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instaluj"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Przekaż"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Edytuj wiadomość"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Usunąć?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Usuń wiadomości"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Wybieranie wiadomości"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Zapisz wszystko"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Szczegóły wiadomości"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Wygasa: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Wyszukiwanie zaawansowane"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Zapisz załączniki"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Nieznane"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Do:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Pamięć SIM pełna. Usuń niektóre elementy."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Ustawienia"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Wysłano:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Żądane."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Odbiorcy"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Odebrano:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Odebrano."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Raport odczytania"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "WAP Push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "Wiadomości: %d"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "Rozmowy: %d"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Inne"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Brak tematu"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Bez nazwy"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Powiadomienie o MMS"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "kB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Czytaj"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Wiadomość została odrzucona."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Limit rozmiaru"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Opcje wiadomości"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Wiadomość dostarczona"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Wiadomość"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Ja"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Przekroczono maksymalną liczbę załączników (%1$s). Zostaną dodane tylko pierwsze %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Nieprawidłowy odbiorca"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Od"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Od:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Karta wygasła"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Błąd wysyłania"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Raport doręczenia"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Wiadomości CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopiuj tekst"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Wiadomości sieciowe"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Wszystkie"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 wiadomość"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "Rozmowy: 1"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Żądaj raportu odczytu dla każdej wysyłanej wiadomości."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Żądaj raportu dostarczenia dla każdej wysyłanej wiadomości."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Przycisk radiowy"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Przycisk włączania/wyłączania"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Lista rozwijana"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Pobieraj MMS-y automatycznie."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Nie można wyświetlić podglądu pliku. Nieobsługiwany typ pliku."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Nie można dodać niektórych odbiorców. Numery są nieprawidłowe."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Nie można dodać odbiorcy. Numer jest nieprawidłowy."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Nie można dodać odbiorców. Numery są nieprawidłowe."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Nie można dodać załączników. Osiągnięto maksymalną liczbę załączników (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Ten numer nie jest prawidłowy."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Wybrane wiadomości skopiowano do urządzenia przenośnego."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "Wiadomości przeniesione na listę wiadomości: %d."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Usunięto numer z listy blokowanych wiadomości."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Dodano numer do listy blokowanych wiadomości."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Wiadomość skopiowano na kartę SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Przekroczono maksymalną liczbę znaków."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Przekroczono maksymalny rozmiar wiadomości (%s). Zmiana rozmiaru załączników..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Wprowadzono nieprawidłowy znak."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Dodaj odbiorców."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 wiadomość przeniesiona do listy wiadomości."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Dźwięk"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "MMS"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Wiadomości na karcie SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Tryb wprowadzania"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Pobieraj autom. w roamingu"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Pobieraj automatycznie"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Wyś.teraz"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Nie"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Wybierz tryb wprowadzania dla tworzenia wiadomości."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Brak"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Zarządzaj wiadomościami zapisanymi na karcie SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Wiadomość zostanie odrzucona. Nie wybrano odbiorców."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Nie można wysłać zaplanowanej wiadomości. Ustaw inną godzinę."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Niedozwolone podczas połączenia."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Nie można dołączyć pliku. Plik jest zbyt duży. Spróbuj wysłać za pomocą funkcji E-mail lub połączenia Bluetooth, Wi-Fi itp."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Aby wysłać ten MMS, urządzenie połączy się z inną siecią komórkową. Spowoduje to odłączenie urządzenia od bieżącej sieci komórkowej."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Aby pobrać ten MMS, urządzenie połączy się z inną siecią komórkową. Spowoduje to odłączenie urządzenia od bieżącej sieci komórkowej."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Ta wiadomość zostanie wysłana ponownie."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "Wiad., które zostaną usunięte: %d."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Rozmów zostanie usuniętych: %d."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Brak szablonów na liście"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Tylko wiadomości przychodzące"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Dołącz oryginalny tekst do wiadomości wychodzącej"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Czas trwania musi być krótszy niż %d s."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Usunięto."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 wiadomość zostanie usunięta."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 rozmowa zostanie usunięta."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Wyświetl szczegóły"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Wyświetl szczegóły kontaktu"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Wyświetl jako pokaz slajdów"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Filmy"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Aktualizuj kontakt"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Tekst"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Zrób zdjęcie"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Ustawienia"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Szukaj"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Zapisz załączniki"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Wyślij ponownie"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Odpowiedz"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Usuń z listy zablokowanych"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Nagraj wideo"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Nagraj plik audio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Szybka odpowiedź"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Brak"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Nawiąż połączenie głosowe"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Obrazy"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alfabet GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Eksportuj do pamięci urządzenia"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Edytuj"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Usuń wiadomość"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Usuń rozmowę"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Domyślnie"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Utwórz kontakt"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Skopiuj na kartę SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopiuj do urządzenia"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopiuj tekst"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopiuj"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Utwórz kopię zapasową"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatyczny"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Pliki audio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Załącznik"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Dodaj do Kontaktów"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Dodaj do listy blokowanych"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Dodaj odbiorców"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Szukaj"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Nie znaleziono wyników"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Brak szybkich odpowiedzi"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Brak zablokowanych wyrażeń"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Brak wiadomości na karcie SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Brak wiadomości"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Brak zablokowanych numerów"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Wibracja"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Nieznany numer"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Numer centrum SMS"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Zaznacz wszystko"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alerty"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Tłumacz"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "SMS"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Przełączanie sieci komórkowych"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Centrum SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Ustawienia"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Wybierz odbiorcę"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Wybranych: %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Wiadomości na karcie SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Wiadomości"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Tryb wprowadzania"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Zbyt duży rozmiar pliku"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Nie można wysłać wiadomości"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Odrzucanie wiadomości"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Tworzenie"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Uwaga"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Dodawanie zawartości"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Przełącz"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Zapisz"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Wyśl. ponownie"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Usuń"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Pobierz"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Odrzuć"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Usuń"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Anuluj"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Anuluj"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kontakty"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Wybrano plik typu dźwięk i obraz. Dane dźwiękowe nie są obsługiwane dla MMS, zatem załączone zostanie tylko zdjęcie."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Tak"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Oczekiwanie na wysłanie..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Nie można wysłać tej wiadomości. Włóż kartę SIM i spróbuj ponownie."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Typ:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Aby korzystać z zastrzeżonych typów multimediów, zmień swoje ustawienie trybu tworzenia MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Godzina wysłania:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Godzina odebrania:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Pole zaznaczenia"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Wysłane"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Trwa wys."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Błąd wysyłania"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "s"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Pobieraj wiadomości automatycznie w trakcie roamingu."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Pobieraj wiadomości automatycznie."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Raport odczytania: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Inna osoba"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Wiadomość"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Notatka"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Błąd"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Wprowadź tekst"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Wer. rob."
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Raport doręczenia: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Wiad. sieciowa"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalendarz"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Wysłane oraz odebrane wiadomości będą tutaj widoczne."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Szybkie odpowiedzi będą tutaj widoczne po ich utworzeniu."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Wiadomości będą tutaj widoczne po ich skopiowaniu na kartę SIM."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Wyrażenia zostaną tu wyświetlone po ich dodaniu."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Numery zostaną tu wyświetlone po ich dodaniu do listy blokowanych wiadomości."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "USUŃ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Ładuję..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Powiadomienia"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Ja"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Wyś."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Wyślij"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ŚLIJ"
+
diff --git a/main/po/pt_BR.po b/main/po/pt_BR.po
new file mode 100644 (file)
index 0000000..4707c29
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Casa"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "O roaming de dados está desativado. Ative o roaming de dados e tente novamente."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nova mensagem"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "CONCLUÍDO"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Celular"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "A rede de dados móveis está desativada. Ative os dados móveis e tente novamente."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ENVIAR"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Tipo de mídia não suportado."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Não é possível enviar mensagens no modo de voo. Desative o modo de voo e tente novamente."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Impossível encaminhar.\nO arquivo tem o encaminhamento bloqueado"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Não existe espaço suficiente no armazenamento do dispositivo. Vá para Configurações > Energia e armazenamento > Armazenamento e exclua alguns arquivos e tente novamente."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Texto em cima"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Texto embaixo"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Selecionar layout"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Impossível adicionar conteúdo."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Mensagem agendada para ser enviada para %s. Enviar agora?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Tamanho máximo de mensagem atingido."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Bateria fraca."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "A duração deve ser de pelo menos %d segundos."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Desativando o Modo Offline..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copiado para cartão SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Cancelado."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Usar outra info cont."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Enviar via"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Imagem"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Substituir"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Ver"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Remover"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Reproduzir"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Para"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Cancelar mensagem"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Lista de destinatários"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Pré-visualização"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Duração para o slide %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Aguardar enquanto os itens estão sendo adicionados à apresentação de slides."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Impossível enviar mensagem."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Selecionar toque"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Será enviado relatório de leitura."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Não solicitado"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Número máximo de destinatários (%d) atingido."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Inserir assunto."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Destinatário duplicado."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Encaminhar"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Não foi possível salvar."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Impossível encontrar localização."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Impossível apagar."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Impossível copiar."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Alguns caracteres podem ser perdidos. Continuar?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM não inserido."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Erro ao salvar."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Salvo em Meus arquivos."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Falha na recuperação da mensagem"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Tipo de conteúdo restringido. Anexar mesmo assim?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Restaurando..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rejeitado."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Confirm. de leitura"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Sem número"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Nenhum anexo"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Novas mensagens"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Mensagem copiada do cartão SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "O número máximo de destinatários é %d. alguns destinatários podem se perder."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Número máximo de anexos (%s) excedido."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Número máximo de caracteres atingido."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Em andamento..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Inicializando..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Se não quiser substituir o arquivo, altere o nome."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Esta mensagem inclui alguns arquivos anexados que não estão exibidos."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Esta mensagem inclui arquivos anexados não exibidos."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Nome de arquivo\njá existe."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Apagando…"
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Copiado para a área de transferência."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Convertendo para mensagem de texto..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Convertendo p/ mensagem multimídia..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Bloquear %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Você está prestes a ficar online (%s). Continuar?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Assunto:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Remetente via e-mail"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Remetente"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Selecionar"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Salvar anexo"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Salvar"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Remover"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instalar"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Encaminhar"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Editar mensagem"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Apagar?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Apagar mensagens"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Selecionar mensagens"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Salvar tudo"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Detalhes da mensagem"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Expira: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Busca avançada"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Salvar todos anexos"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Para:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Memória SIM cheia. Apague alguns itens."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Configurações"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Enviado:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Pedido."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Destinatários"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Recebido:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Recebida."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Confirm. de leitura"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Mensagens WAP"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d mensagens"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d conversas"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Outros"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Sem assunto"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Sem nome"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Notificação de mensagem multimídia"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Lida"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Mensagem rejeitada."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Tamanho da mensagem"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Opções de mensagem"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Mensagem entregue"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Mensagem"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Eu"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Número máximo de anexos (%1$s) excedido. Só serão adicionados os primeiros %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Destinatário inválido."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "De :"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Expirado"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Falha de envio."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Confirm. de entrega"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Mensagens CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copiar texto da mensagem"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Mensagens Broadcast"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Todos"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 mensagem"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversa"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Solicitar um relatório de leitura para cada mensagem enviada."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Solicitar um relatório de entrega para cada mensagem enviada."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Botão de opção"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Botão ligar/desligar"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Lista expansível"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Recuperar mensagens MMS automaticamente."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Não é possível pré-visualizar o arquivo. Tipo de arquivo não suportado."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Não é possível adicionar alguns destinatários. Números inválidos."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Não é possível adicionar destinatário. Número inválido."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Não é possível adicionar destinatários. Números inválidos."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Não é possível adicionar anexo. Número máximo de anexos (%d) atingido."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Este número não é válido."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Mensagens selecionadas copiadas para o celular."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d mensagens movidas para a lista de mensagens."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Número removido da lista de bloqueio de mensagens."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Número adicionado à lista de bloqueio de mensagens."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Mensagem copiada para o cartão SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Número máximo de caracteres excedido."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Tamanho máximo da mensagem (%s) excedido. Redimensionando anexos..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "O caractere inserido é inválido."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Adicione destinatários."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 mensagem movida para a lista de mensagens."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Mensagens de texto"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Som"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Mensagens multimídia"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Mensagens no chip"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Modo de entrada"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Recuper. automática em roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Recuperação automática"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Enviar"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Não"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Selecionar um modo de entrada para composição de mensagens."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Nenhum"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Gerenciar as mensagens armazenadas no seu chip."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Sua mensagem será excluída. Nenhum destinatário foi selecionado."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Não é possível enviar mensagem programada. Defina outra hora."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Impossível durante chamada."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Não é possível anexar o arquivo. O tamanho do arquivo é muito grande. Tente enviá-lo por e-mail, Bluetooth, Wi-Fi, etc."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Para enviar esta mensagem multimídia, o dispositivo será conectado a uma rede móvel diferente. Isto desconectará seu dispositivo da sua rede móvel atual."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Para baixar esta mensagem multimídia, o dispositivo será conectado a uma rede móvel diferente. Isto desconectará seu dispositivo da sua rede móvel atual."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Esta mensagem será reenviada."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d mensagens serão excluídas."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d conversas serão excluídas."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Nenhum modelo na lista"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Apenas mensagens recebidas"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Incluir texto original na mensagem enviada"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "A duração deve ser menor do que %d segundos."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Excluído."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 mensagem será excluída."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 conversa será excluída."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Ver detalhes"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Exibir detalhes do contato"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Exibir como apres. de slides"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Atualizar contato"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Texto"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Tirar foto"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Configurações"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Pesquisar"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Salvar anexos"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Reenviar"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Responder"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Remover da lista de bloqueio"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Gravar vídeo"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Gravar arquivo de áudio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Resposta rápida"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Desativado"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Fazer chamada de voz"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Imagens"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alfabeto GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Exportar para a memória do dispositivo"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Editar"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Excluir mensagem"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Excluir conversa"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Excluir"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Padrão"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Criar contato"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copiar para cartão SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copiar para o dispositivo"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copiar texto da mensagem"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copiar"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Fazer Backup"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automático"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Arquivos de áudio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Anexo"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Adicionar aos Contatos"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Adicionar à lista de bloqueio"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Adicionar destinatários"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Pesquisar"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Nenhum resultado encontrado"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Nenhuma resposta rápida"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Nenhuma frase bloqueada"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Nenhuma mensagem no chip"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Nenhuma mensagem"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Nenhum número bloqueado"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibração"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Número desconhecido"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Número centro de msgs de texto"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Selec. tudo"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alertas"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Traduzir"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Mensagens de texto"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Alterar rede móvel"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Central SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Configurações"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Selecionar destinatário"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d selecionados"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Mensagens no chip"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Mensagem"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Modo de entrada"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Tamanho arquivo muito grande"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Falha ao enviar mensagem"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Descartar mensagem"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Excluir"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Criar"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Atenção"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Adicionar conteúdo"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Alternar"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Salvar"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Reenviar"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Remover"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Baixar"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Descartar"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Excluir"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Cancelar"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Cancelar"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contatos"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Você selecionou um arquivo de foto e som. Os dados de som não são suportados para MMS, então apenas a foto será anexada."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Sim"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Aguardando para enviar..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Não é possível enviar esta mensagem. Insira seu cartão SIM e tente novamente."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tipo:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Para usar tipos de mídia restritas, altere suas configurações do modo de criação de MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Hora do envio:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Hora da recepção:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Caixa de seleção"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Enviado"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Envio..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Falha no envio"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "seg"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Recuperar mensagens automaticamente durante roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Recuperar mensagens automaticamente."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Relatório de leitura: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Outra pessoa"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Mensagem"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Notas"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Falhou"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Inserir texto"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Rascunho"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Relatório de entrega: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Mensagem broadcast"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendário"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Após enviar ou receber mensagens, elas serão exibidas aqui."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Após criar respostas rápidas, elas serão exibidas aqui."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Após copiar mensagens para o chip, elas serão exibidas aqui."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Após adicionar frases, elas serão exibidas aqui."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Após adicionar números à sua Lista de bloqueio de mensagens, eles serão exibidos aqui."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "EXCLUIR"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Carregando..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notificações"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Eu"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Env."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Env."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ENV."
+
diff --git a/main/po/pt_PT.po b/main/po/pt_PT.po
new file mode 100644 (file)
index 0000000..c0190c3
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Pessoal"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "O roaming de dados está desactivado. Active o roaming de dados e tente novamente."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nova mensagem"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "CONCLUÍDO"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Telemóvel"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Os dados móveis estão desactivados. Active os dados móveis e tente novamente."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ENVIAR"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Tipo de multimédia não suportado."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Impossível enviar mensagens no modo de Voo. Desactive o modo de Voo e tente novamente."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Impossível reencaminhar.\nO ficheiro tem o reencaminhamento bloqueado"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Não há espaço suficiente no armazenamento do seu dispositivo. Vá às Definições > Potência e armazenamento > Armazenamento e depois elimine alguns ficheiros e tente novamente."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Texto no topo"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Texto em baixo"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Seleccionar esquema"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Impossível adicionar conteúdo."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Mensagem programada para ser enviada para %s. Enviar agora?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Tamanho máximo de mensagem alcançado."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Bateria fraca."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "A duração tem de ter no mínimo %d segundos."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "A desactivar Modo de voo..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copiado para o cartão SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Cancelada."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Util. out. infos cntc."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Enviar"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Imagem"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Substituir"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Ver"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Remover"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Reproduzir"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Para"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Cancelar mensagem"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Lista de destinatário"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Pré-visualizar"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Duração para o slide %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Aguardar enquanto os itens estão a ser adicionados à apresentação de slides."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Impossível enviar mensagem."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Seleccionar tom de toque"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Será enviado relatório de leitura."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Não pedido"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Número máximo de destinatários (%d) atingido."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Introduzir assunto."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Destinatário duplicado."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Reenc."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Não foi possível guardar."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Impossível encontrar localização."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Impossível apagar."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Impossível copiar."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Alguns caracteres poderão estar perdidos.\nContinuar?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM não inserido."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Falha ao gravar."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Guardado em Os meus ficheiros."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Falha na recepção da mensagem"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Tipo de conteúdo restringido. Anexar na mesma?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "A recuperar..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rejeitado."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Relatório de leitura"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Sem número"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Nenhum anexo"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Novas mensagens"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Mensagem copiada do cartão SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "O número máximo de destinatários é %d. Podem perder-se alguns destinatários."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Número máximo de anexos (%s) excedido."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Número máximo de caracteres atingido."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "A processar..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "A inicializar..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Se não quiser substituir o ficheiro, altere-lhe o nome."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Esta mensagem inclui um ficheiro anexado não apresentado."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Esta mensagem inclui ficheiros anexados não mostrados."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Nome do ficheiro já existente."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "A eliminar..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Copiado para a área de transferência."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "A converter para mensagem de texto..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "A converter em mensagem multimédia..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Bloquear %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Está prestes a ficar online (%s). Continuar?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Assunto:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Remetente via e-mail"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Remetente"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Seleccionar"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Guardar anexo"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Guardar"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Remover"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instalar"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Reencaminhar"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Editar mensagem"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Eliminar?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Eliminar mensagens"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Seleccionar mensagens"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Guardar tudo"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Detalhes da mensagem"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Expira: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Procura avançada"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Guardar todos anexos"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Para:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Definições SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Memória SIM cheia. Elimine alguns itens."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Definições"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Enviado:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Pendente."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Destinatários"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Recebido:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Recebido."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Relatório de leitura"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Mensagens push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d mensagens"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d conversações"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Outro"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Sem assunto"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Sem nome"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Notificação de mensagem multimédia"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Ler"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Mensagem rejeitada."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Tamanho da mensagem"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Opções de mensagem"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Mensagem entregue"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Mensagem"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Eu"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Número máximo de anexos (%1$s) excedido. Só serão adicionados os primeiros %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Destinatário inválido."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "De :"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Expirado"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Falha no envio."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Relatório de entrega"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Mensagens CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copiar texto"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Mensagens DC"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Tudo"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 mensagem"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversação"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Pedir um relatório de leitura para cada mensagem que enviar."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Pedir um relatório de entrega para cada mensagem que enviar."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Botão de opção"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Botão ligado/desligado"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Lista expansível"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Obter mensagens MMS automaticamente."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Impossível pré-visualizar ficheiro. Tipo de ficheiro não suportado."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Impossível adicionar alguns destinatários. Os números não são válidos."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Impossível adicionar destinatário. O número não é válido."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Impossível adicionar destinatários. Os números não são válidos."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Impossível adicionar anexo. Número máximo de anexos atingido (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Este número não é válido."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Mensagens seleccionadas copiadas para o dispositivo móvel."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d mensagens movidas para a lista de mensagens."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Número removido da lista de bloqueio de mensagens."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Número adicionado à lista de bloqueio de mensagens."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Mensagem copiada para o cartão SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Número máximo de caracteres excedido."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Tamanho máximo da mensagem (%s) excedido. A redimensionar anexos..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Carácter inválido introduzido."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Adicionar destinatários."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 mensagem movida para a lista de mensagens."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Mensagens de texto"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Som"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Mensagens multimédia"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Mensagens no cartão SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Modo de introdução"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Obtenção automática em roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Obtenção automática"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Env. ag."
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Não"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Seleccione um modo de introdução para compor mensagens."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Nenhuma"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Gerir as mensagens armazenadas no seu cartão SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "A sua mensagem será eliminada. Não foram seleccionados destinatários."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Impossível enviar mensagem programada. Defina outra hora."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Impossível tocar durante a chamada."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Impossível anexar ficheiro. Tamanho demasiado grande. Tente enviar via E-mail, Bluetooth, Wi-Fi, etc"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Para enviar esta mensagem multimédia, o dispositivo irá ligar-se a uma rede móvel diferente e desligar-se da rede móvel actual."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Para transferir esta mensagem multimédia, o dispositivo irá ligar-se a uma rede móvel diferente e desligar-se da rede móvel actual."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Esta mensagem será reenviada."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d mensagens serão eliminadas."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d conversações serão eliminadas."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Sem modelos na lista"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Apenas mensagens recebidas"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Incluir texto original na mensagem a enviar"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "A duração tem de ser menor do que %d segundos."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Eliminado."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 mensagem será eliminada."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 conversação será eliminada."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Ver detalhes"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Ver detalhes do contacto"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Ver como apresentação slides"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Vídeos"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Actualizar contacto"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Texto"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Tirar fotografia"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Definições"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Procurar"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Guardar anexos"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Reenviar"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Responder"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Remover da lista de bloqueios"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Gravar vídeo"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Gravar ficheiro\nde áudio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Resposta rápida"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Desligado"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Fazer chamada de voz"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Imagens"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alfabeto GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Exportar para a memória do dispositivo"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Editar"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Eliminar mensagem"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Eliminar conversação"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Padrão"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Criar contacto"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copiar para cartão SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copiar para dispositivo"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copiar texto"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copiar"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Cópia de segurança"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automático"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Ficheiros áudio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Anexo"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Adicionar a Contactos"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Adicionar à lista de bloqueios"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Adicionar destinatários"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Procurar"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Nenhuns resultados encontrados"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Sem respostas rápidas"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Sem expressões bloqueadas"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Nenhumas mensagens no cartão SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Sem mensagens"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Sem números bloqueados"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibração"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Número desconhecido"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "N.º centro mensagens de texto"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Seleccionar tudo"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alertas"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Traduzir"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Mensagens de texto"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Mudar a rede móvel"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Centro SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Definições"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Seleccionar destinatário"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seleccionado(s)"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Mensagens no cartão SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Mensagem"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Modo de introdução"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Tam. ficheiro demasiado grande"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Falha ao enviar mensagem"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Eliminar mensagem"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Criar"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Atenção"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Adicionar conteúdo"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Mudar"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Guardar"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Reenviar"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Remover"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Transferir"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Eliminar"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Cancelar"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Cancelar"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contactos"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Seleccionou um ficheiro de som e instantâneos. Os dados de som não são suportados para MMS, por isso só irá ser anexada a imagem."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Sim"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "A aguardar para enviar..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Impossível enviar esta mensagem. Insira o seu cartão SIM e tente novamente."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tipo:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Para utilizar tipos de multimédia restringidos, altere a definição do modo de criação de mensagens MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Hora de envio:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Hora de recepção:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Caixa de selecção"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Estado:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Enviado"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Enviar..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Falha ao enviar"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "seg."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Obter mensagens automaticamente durante o roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Obter mensagens automaticamente."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Relatório de leitura: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Outra pessoa"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Mensagem"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memorando"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Falhou"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Introduzir texto"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Rascunho"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Relatório de entrega: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Mensagem DC"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Agenda"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Depois de enviar ou receber mensagens, estas são mostradas aqui."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Depois de criar respostas rápidas, estas serão mostradas aqui."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Depois de copiar mensagens para o cartão SIM, estas serão mostradas aqui."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Depois de adicionar expressões, estas serão mostradas aqui."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Depois de adicionar números à lista de bloqueio de mensagens, estes serão mostrados aqui."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "A carregar..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notificações"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Eu"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Enviar"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Env."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ENVIAR"
+
diff --git a/main/po/ro.po b/main/po/ro.po
new file mode 100644 (file)
index 0000000..986fd18
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Acasă"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Roamingul de date este dezactivat. Activaţi roamingul de date şi încercaţi din nou."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Mesaj nou"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ANULARE"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "EFECTUAT"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Necunoscut"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Datele mobile sunt dezactivate. Activaţi datele mobile şi încercaţi din nou."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "TRIMITERE"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Tip suport neacceptat"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Nu se pot trimite mesaje când sunteţi în modul Avion. Dezactivaţi modul Avion şi încercaţi din nou."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Imposibil de redirecţionat. Fişierul este blocat la redirecţionare."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Spaţiul din memoria dispozitivului este insuficient. Deschideţi meniul Setări > Energie şi stocare > Stocare, apoi ştergeţi câteva fişiere şi încercaţi din nou."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Textul deasupra"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Text în partea de jos"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Selectare aspect"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Imposibil de adăugat conţinut"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Mesaj programat pentru a fi trimis la %s. Trimiteţi acum?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Dimensiunea maximă a mesajului a fost atinsă."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Baterie descărcată"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Durata trebuie să fie de cel puţin %d secunde."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Se dezactivează modul Avion..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Copiat pe cartela SIM"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Anulat"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Ut. alte inf. contact"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Trimitere prin"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Imagine"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Email"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Înlocuire"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Vizualizare"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Eliminare"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Redare"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Către"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Revocare mesaj"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Listă destinatari"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Previzualizare"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Durata pentru diapozitiv %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Aşteptaţi adăugarea elementelor la expunerea de diapozitive."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Imposibil de trimis mesajul"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Selectare ton de sonerie"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Raportul de citire va fi trimis."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Nesolicitat"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Numărul maxim de destinatari (%d) a fost atins."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Introduceţi subiectul."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Destinatar dublat"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Redir"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Eroare de salvare"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Imposibil de găsit locaţia"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Imposibil de şters"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Imposibil de copiat"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Este posibil ca unele caractere să se fi pierdut.\nContinuaţi?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM neinserat"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Salvare nereuşită"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Salvat în Fişierele mele"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Preluare mesaj nereuşită"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Tip de conţinut restricţionat. Ataşaţi oricum?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Restabilire"
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Respins"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Citire raport"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Nici un număr"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Nicio ataşare"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Mesaje noi"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Mesaj copiat de pe cartela SIM"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Numărul maxim de destinatari este %d. Este posibil ca unii destinatari să se piardă."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "S-a depăşit numărul maxim de ataşări (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Adăugare la marcaje"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "În curs..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Iniţializare"
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Dacă nu doriţi să înlocuiţi fişierul, redenumiţi-l."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Acest mesaj include un fişiere ataşat care nu este prezentat."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Acest mesaj conţine fişiere ataşate neafişate."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Numele fişierului există deja."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Se şterge..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Copiat în clipboard"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Se transformă în mesaj text..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Se transformă în mesaj multimedia..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Se blochează %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Sunteţi pe cale să vă conectaţi (%s). Continuaţi?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Mesaj text"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Subiect:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Către expeditor prin email"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Expeditor"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Selectare"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Salvare ataşare"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Salvare"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Eliminare"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instalare"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Transfer"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Editare mesaj"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Ştergeţi?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Ştergere mesaje"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Selectare mesaje"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Salvare totală"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Detalii mesaj"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Expiră la: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Căutare avansată"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Salv. toate ataş."
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Necunoscut"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Către:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Mesaje text"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Memoria cartelei SIM este plină. Ştergeţi câteva elemente."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Setări"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Trimis:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Solicitat"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Destinatari"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Primit:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Primit"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Citire raport"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Mesaje server"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d mesaje"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d conversaţii"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Alte"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Niciun subiect"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Nici un nume"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Notificare privind mesajul multimedia"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Mesaj multimedia"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KO"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Citire"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Mesaj respins"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Dimensiune mesaj"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Opţiuni mesaj"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Mesaj livrat"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Mesaj"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Eu"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Numărul maxim de fişiere ataşate (%1$s) a fost depăşit. Vor fi adăugate numai primele %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Destinatar nevalid"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "De la"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "De la:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Expirat"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Trimitere eşuată"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Raport livrare"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Mesaje CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Copiere text"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Mesaje CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Toate"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 mesaj"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 conversaţie"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Solicitaţi un raport de citire pentru fiecare mesaj trimis."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Solicitaţi un raport de livrare pentru fiecare mesaj trimis."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Buton radio"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Buton pornit/oprit"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Listă extensibilă"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Se preiau automat mesajele MMS."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Fişierul nu poate fi previzualizat. Tip de fişier neacceptat."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Anumiţi destinatari nu pot fi adăugaţi. Numerele nu sunt valide."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Destinatarul nu poate fi adăugat. Numărul nu este valid."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Destinatarii nu pot fi adăugaţi. Numerele nu sunt valide."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Ataşarea nu poate fi adăugată. A fost atins numărul maxim de ataşări (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Numărul nu este valabil."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Mesajele selectate au fost copiate pe dispozitivul mobil."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d mesaje au fost mutate pe lista de mesaje."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Numărul a fost eliminat de pe lista de blocare a mesajelor."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Numărul a fost adăugat pe lista de blocare a mesajelor."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Mesajul a fost copiat pe cartela SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "S-a depăşit numărul maxim de caractere."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "S-a depăşit dimensiunea maximă a mesajului (%s). Se redimensionează ataşările..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Un caracter nevalid a fost introdus."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Adăugaţi destinatari."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 mesaj a fost mutat pe lista de mesaje."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Mesaje text"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Sunet"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Mesaje multimedia"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Mesaje de pe cartela SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Mod de introducere"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Preluare automată în roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Preluare automată"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Tr. acum"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Nu"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Selectaţi un mod de introducere pentru compunerea mesajelor."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Fără"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Gestionaţi mesajele stocate pe cartela SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Mesajul va fi eliminat. Nu au fost selectaţi destinatari."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Imposibil de trimis mesajul programat. Setaţi o altă oră."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Imposibil de redat în timpul unui apel"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Fişierul nu poate fi ataşat. Fişierul este prea mare. Încercaţi prin Email, Bluetooth, Wi-Fi etc."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Pentru a trimite mesajul multimedia, dispozitivul se va conecta la altă reţea mobilă. Această procedură va deconecta dispozitivul de la reţeaua mobilă actuală."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Pentru a descărca mesajul multimedia, dispozitivul se va conecta la altă reţea mobilă. Această procedură va deconecta dispozitivul de la reţeaua mobilă actuală."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Acest mesaj va fi retrimis."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d mesaje vor fi şterse."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d conversaţii vor fi şterse."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Niciun şablon pe listă"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Numai pentru mesajele primite"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Includere text original în mesajul trimis"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Durata trebuie să fie mai mică de %d secunde."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Şters"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 mesaj va fi şters."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 conversaţie va fi ştearsă."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Vizualizare detalii"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Vizualizare detalii contact"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Viz. ca exp. de diapozitive"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videoclipuri"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Actualizare contact"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Text"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Fotografiere"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Setări"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Căutare"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Salvare ataşări"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Retrimitere"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Răspuns"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Elim. de pe lista de blocare"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Înregistrare videoclip"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Înregistrare fişier audio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Răspuns rapid"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Niciuna"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Efectuare apel vocal"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Imagini"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alfabet GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Export în memoria dispozitivului"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Editare"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Ştergere mesaj"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Ştergeţi conversaţia"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Implicit"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Creare contact"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Copiere pe cartela SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Copiere pe dispozitiv"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Copiere text"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Copiere"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Copiere de rezervă"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automat"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Fişiere audio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Ataşare"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Adăugare la Contacte"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Adăugare pe lista de blocare"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Adăugare destinatari"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Căutare"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Nu au fost găsite rezultate"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Niciun răspuns rapid"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Nicio expresie blocată"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Niciun mesaj pe cartela SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Niciun mesaj"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Niciun număr blocat"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibraţie"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Număr necunoscut"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Nr. centrului de mesaje text"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Select. totală"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Alerte"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Traducere"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Mesaje text"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Comutare reţea mobilă"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Centru SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Setări"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Selectare destinatar"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d selectate"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Mesaje de pe cartela SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Mesaje"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Mod de introducere"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Fişierul este prea mare"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Mesajul nu s-a trimis"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Renunţare la mesaj"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Ştergeţi"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Creare"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Atenţie"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Adăugare conţinut"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Comutare"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Salvare"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Retrimitere"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Eliminare"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Descărc."
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Renunţare"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Ştergere"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Anulare"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Anulare"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Contacte"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Aţi selectat un fişier sunet şi foto. Datele audio nu sunt acceptate pentru MMS, deci va fi ataşată doar fotografia."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Da"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Se aşteaptă trimiterea..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Mesajul nu poate fi trimis. Introduceţi cartela SIM şi încercaţi din nou."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tip:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Pentru a utiliza tipuri media restricţionate, schimbaţi setarea pentru modul de creare a mesajelor MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Trimis la:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Primit la:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Casetă de bifare"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Trimis"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Se trim..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Trimiterea nu a reuşit"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sec"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Preluaţi automat mesajele în timp ce sunteţi în roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Preluaţi automat mesajele."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Raport de citire: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Altă persoană"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Mesaj"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Notă"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Nereuşit"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Introducere text"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Schiţă"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Raport de livrare: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Mesaj CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Calendar"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "După ce trimiteţi sau primiţi mesaje, acestea vor fi afişate aici."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "După ce creaţi răspunsuri rapide, acestea vor fi afişate aici."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "După ce copiaţi mesaje pe cartela SIM, acestea vor fi afişate aici."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "După ce adăugaţi expresii, acestea vor fi afişate aici."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "După ce adăugaţi numere pe lista de blocare a mesajelor, acestea vor fi afişate aici."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ŞTERGERE"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Încărcare..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Notificări"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Eu"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Trim."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Trim."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "TRIM."
+
diff --git a/main/po/ru_RU.po b/main/po/ru_RU.po
new file mode 100644 (file)
index 0000000..0efc0cb
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Домашний"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Передача данных в роуминге отключена. Включите ее и повторите попытку."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Новое сообщение"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ОТМЕНА"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Неизвестно"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Мобильный"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Мобильные данные отключены. Включите их и повторите попытку."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ОТПРАВИТЬ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Неподдерживаемый тип медиаданных"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Невозможно отправить сообщения в автономном режиме. Отключите автономный режим и повторите попытку."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Не удается переслать.\nПересылка файла заблокирована."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Недостаточно места в памяти устройства. Откройте “Параметры” > “Питание и хранилище” > “Хранилище”, удалите часть файлов и повторите попытку."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Текст вверху"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Текст внизу"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Выберите макет"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Невозможно добавить содержимое."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Запланирована отправка сообщения пользователю %s. Отправить его сейчас?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Достигнут максимальный размер сообщения."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Аккумулятор разряжен"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Минимальная длительность — %d сек."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Отключение автономного режима..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Скопировано на SIM-карту."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Отменено."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Исп. свед. о др. конт."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Отправить"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Картинка"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Заменить"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Просмотр"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Удалить"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Играть"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Кому"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Отменить сообщения"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Список получателей"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Просмотр"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Длительность слайда %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Дождитесь добавления элементов к показу слайдов."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Невозможно отправить сообщение."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Мелодия сигнала"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Будет отправлен отчет о прочтении."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Не требуется"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Достигнуто максимальное число получателей (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Введите тему."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Повторяющийся получатель"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Перес."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Невозможно сохранить."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Невозможно найти местоположение."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Невозможно удалить."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Невозможно скопировать."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Некоторые символы могут быть потеряны. Продолжить?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM-карта не установлена."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Сбой сохранения."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Сохранено в папке 'Мои файлы'."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Сбой получения сообщения"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Тип содержимого с ограничениями. Вложить?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Восстановление..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Отклонено."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Отчет о прочтении"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Нет номера"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Нет вложений"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Новые сообщения"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Сообщение скопировано с SIM-карты."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Максимальное количество получателей — %d. Некоторые получатели могут быть потеряны."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Достигнуто максимальное число вложений (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Достигнуто максимальное число символов."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "В процессе..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Инициализация..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Если не требуется заменять файл, переименуйте его."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Сообщение содержит вложенный файл, который не отображается."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Сообщение содержит вложенные файлы, которые не отображаются."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Файл с таким именем уже существует."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Удаление..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Скопировано в буфер обмена."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Преобразование в SMS..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Преобразование в MMS..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Блокировать %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Вы собираетесь выйти в сеть (%s). Продолжить?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Тема:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Отправителю в сообщении электронной почты"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Отправитель"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Выбрать"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Сохранить вложение"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Соxранить"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Удалить"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Установить"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Переслать"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Изменить сообщение"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Удалить?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Удалить сообщения"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Выбрать сообщения"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Сохранить все"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Сведения о сообщении"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Срок действия: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Расширенный поиск"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Сохр. все вложения"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Неизвестно"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Кому:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Память SIM-карты заполнена. Удалите некоторые элементы."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Отправлено:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Запрос отправлен."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Получатели"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Получено:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Получено."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Отчет о прочтении"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push-сообщения"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d сообщ"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "Бесед: %d"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Другое"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Без темы"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Нет имени"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Уведомление о MMS"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "КБ"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Прочитано"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Сообщение отклонено."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Размер сообщения"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Действия с сообщением"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Сообщение доставлено"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Сообщение"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Я"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Превышено максимальное число вложений (%1$s). Будут добавлены только первые %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Недопустимый получатель"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "От"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "От:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Срок действия закончен"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Сбой при отправке."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Отчет о доставке"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Сообщения CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Копировать текст"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Сообщения сети"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Все"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 сообщение"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 беседа"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Запрашивать отчет о прочтении для всех отправляемых сообщений."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Запрашивать отчет о доставке для всех отправляемых сообщений."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Переключатель"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Кнопка включения и отключения"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Разворачиваемый список"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Автоматически получать MMS-сообщения."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Просмотр файла невозможен. Неподдерживаемый тип файла."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Невозможно добавить некоторых получателей. Номера недопустимы."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Невозможно добавить получателя. Номер недопустим."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Невозможно добавить получателей. Номера недопустимы."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Невозможно добавить вложение. Достигнуто максимальное количество вложений (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Недопустимый номер."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Выбранные сообщения скопированы на мобильное устройство."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "Сообщения (%d) перемещены в список сообщений."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Номер удален из списка блокировки сообщений."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Номер добавлен в список блокировки сообщений."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Сообщение скопировано на SIM-карту %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Превышено максимальное количество символов."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Превышен максимальный размер сообщения (%s). Изменение размеров вложений..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Введен недопустимый символ"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Добавить получателей."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 сообщение перемещено в список сообщений."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "SMS-сообщения"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Звук"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "MMS-сообщения"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Сообщения на SIM-карте"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Режим ввода"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Автом. получение в роуминге"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Автоматическое получение"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Отправить"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Нет"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Выбор режима ввода текста для новых сообщений."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Нет"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Управление сообщениями на SIM-карте."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Сообщение будет удалено. Получатели не выбраны."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Не удалось отправить запланированное сообщение. Задайте другое время."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Воспроизведение во время вызова невозможно."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Невозможно вложить файл. Размер файла слишком велик. Отправьте его по электронной почте, через Bluetooth, Wi-Fi и т. д."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Для отправки этого MMS устройство подключится к другой мобильной сети. При этом оно будет отключено от текущей мобильной сети."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Для загрузки этого MMS устройство подключится к другой мобильной сети. При этом оно будет отключено от текущей мобильной сети."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Это сообщение будет отправлено еще раз."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "Сообщения (%d) будут удалены."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Беседы (%d) будут удалены."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "В списке нет шаблонов"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Только входящие сообщения"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Включать исходный текст в отправляемое сообщение"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Длительность должна быть менее %d секунд."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Удалено."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 сообщение будет удалено."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Будет удален 1 файл."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Просмотреть сведения"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Сведения о контакте"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Просмотр в виде слайд-шоу"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Видео"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Обновить контакт"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Юникод"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Текст"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Выполнить снимок"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Поиск"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Сохранить вложения"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Повторить отправку"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Ответить"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Удалить из черного списка"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Записать видео"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Запись\nаудиофайла"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Быстрый ответ"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Нет"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Выполнить голосовой вызов"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Картинки"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM-алфавит"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Экспортировать в память устройства"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Изменить"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Удалить сообщение"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Удалить беседу"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "По умолчанию"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Создать контакт"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Копировать на SIM-карту"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Копировать на устройство"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Копировать текст"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Копировать"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Архивация"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Автоматически"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Аудиофайлы"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Вложение"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Добавить в контакты"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Добавить в черный список"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Добавить получателей"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Поиск"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Ничего не найдено"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Нет быстрых ответов"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Заблокированные фразы отсутствуют"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "На SIM-карте нет сообщений"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Нет сообщений"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Заблокированных номеров нет"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Вибрация"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Неизвестный номер"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Номер SMS-центра"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Выбрать все"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Оповещения"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Перевести"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "SMS-сообщения"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Переключить мобильную сеть"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS-центр"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Выберите получателя"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Выбрано: %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Сообщения на SIM-карте"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Сообщения"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Режим ввода"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Размер файла слишком велик"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Не удалось отправить сообщение"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Удалить сообщение"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Создать"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Внимание"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Добавить содержимое"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Переключить"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Сохранить"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Повт. отправку"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Удалить"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ОК"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Загрузить"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Удалить"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Удалить"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Отмена"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Отмена"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Контакты"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Вы выбрали файл 'Фото со звуком'. Звуковые данные не поддерживаются для MMS, поэтому будет вложена только фотография"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Да"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Ожидание отправки..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Не удалось отправить это сообщение. Вставьте SIM-карту и повторите попытку"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Тип:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Чтобы получить возможность отправлять запрещенные медиафайлы, измените параметры создания MMS-сообщений."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Время отправки:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Время получения:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Флажок"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Состояние:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Отправлено"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Отправка..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Сбой отправки"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "сек."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Автоматически получать сообщения в роуминге."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Автоматически получать сообщения."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Отчет о прочтении: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Другой человек"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Сообщение"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Заметки"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Сбой"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Введите текст"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Черновик"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Отчет о доставке: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Широковещательное сообщение"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Календарь"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Здесь выводятся полученные и отправленные сообщения."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Здесь выводятся созданные быстрые ответы."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Здесь выводятся сообщения, скопированные на SIM-карту."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Здесь будут показаны добавленные фразы."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Здесь будут показаны номера, добавленные в список блокировки сообщений."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "УДАЛИТЬ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Загрузка..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Уведомления"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Я"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Отпр."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Отпр."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ОТП."
+
diff --git a/main/po/si.po b/main/po/si.po
new file mode 100644 (file)
index 0000000..2d3899a
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "නිවස"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "දත්ත රෝමිං අක්‍රියයි. දත්ත රෝමිං සක්‍රිය කර නැවත උත්සාහ කරන්න."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "නව පණිවිඩ"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "අවලංගු කර."
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "නිමයි"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "නොදන්නා"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "ජංගමය"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "ජංගම දත්ත අක්‍රියයි. ජංගම දත්ත සක්‍රිය කර නැවත උත්සාහ කරන්න."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "යවන්න"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "සහාය නොදක්වන මාධ්‍ය වර්ගයක්."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "පියාසර මාදිලියේදී පණිවිඩ යැවිය නොහැක. පියාසර මාදිලිය අක්‍රීය කර නැවත උත්සාහ කරන්න"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "යොමු කළ නොහැකි.\nගොනුව ඉදිරිපත් කිරීම අගුලු ලා ඇත"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "ඔබේ උපාංග ගබඩාවේ ප්‍රමාණවත් ඉඩක් නොමැත. සැකසුම් > බලය සහ ගබඩාව > ගබඩාව වෙත යන්න, ඉන්පසු ගොනු කිහිපයක් මකා දමා නැවත උත්සාහ කරන්න."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "පෙළ ඉහළින්ම"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "පෙළ පහළින්ම"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "පිරිසැලසුම තෝරන්න"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "අන්තර්ගත එක් කළ නොහැක."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "පණිවුඩය %s වෙත යැවීමට සැලසුම් කර තිබේ. දැන් යවන්නද?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "පණිවිඩ ප්‍රමාණයේ උපරිමයට ලඟා විය."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "බැටරිය අවමයි."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "කාල සීමාව අවම වශයෙන් තත්පර %d ක්වත් විය යුතුයි."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "පියාසර මාදිලිය අක්‍රිය කරමින්..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM කාඩ්පත වෙත පිටපත් කෙරිණි."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "අවලංගු කෙරිණ."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "වෙතන් සබඳතා තොරතුරු භාවිතා කරන්න"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "හරහා යවන්න"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "අනුරුව"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ඊමේල්"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "ප්‍රතිස්ථාපනය කරන්න"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "පෙන්වන්න"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "ඉවත් කරන්න"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "වාදනය"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "වෙත"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "පණිවිඩය අවලංගු කරන්න"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "ලබන්නන් ලැයිස්තුව"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "පෙරදසුන"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "%d/%d සලියිඩය සඳහා කාලය"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "සල්යිඩ දර්ශනයට අයිතම එක් කරන තෙක් මඳක් රැඳී සිටින්න."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "පණිවිඩය යැවිය නොහැක."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "රිංග්ටෝනය තෝරන්න"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "කියවීමේ වාර්තාවක් යැවෙනු ඇත."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "ඉල්ලා නොමැත"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "උපරිම ලබන්නන් (%d) ගණනට ළඟා විය."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "මාතෘකාව ඇතුලත් කරන්න."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "අනුපිටපත් වූ ලබන්නෙක්."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "යොමු"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "සුරැකිය නොහැක."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "ස්ථානය සෙවිය නොහැක."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "මකා දැමිය නොහැක."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "පිටපත් කළ නොහැක."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "සමහර අක්ෂර අහිමි විය හැක. පවත්වාගෙන යන්නද?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM ඇතුල් කර නැත."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "සුරැකීම අසාර්ථකයි."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "මගේ ගොනු හි සුරැකිණ."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "නැවත ලබාගන්නා Message අසමත්"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "සීමාකරන ලද අන්තර්ගත වර්ගය. එසේවුවත් අමුණන්නද?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "ප්‍රතිස්ථාපනය කරමින්..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "ප්‍රතික්ෂේපයි."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "වාර්තා කියවන්න"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "අංකයක් නොමැත"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "ඇමුණුම් නොමැත"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "නව පණිවිඩ"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM කාඩ්පතෙන් පණිවිඩ පිටපත් කර ගැනිණ."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "උපරිම ලබන්නන් ගණන %d යි. සමහර ප්‍රතිග්‍රාහකයන් අහිමි විය හැක"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "උපරිම ඇමුණුම් ගණන (%s) ඉක්මවන ලදි."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "උපරිම අක්ෂර ගණනට ලඟා විය."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "කෙරෙමින් පවතී..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "සැකසෙමින්..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "ඔබට ගොනුව ප්‍රතිපිහිටුවීමට ඇවැසි නම්, එය ප්‍රතිනම් කරන්න."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "මෙම පණිවිඩයෙහි නොපෙනෙන ගොනුවක් අමුණා ඇත."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "මෙම පණිවිඩය සතුව නොපෙනෙන ඇමුණූ ගොනු පවතී."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ගොනු නාමය දැනටමත් පවතී."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "මකා දමමින්..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "ක්ලිප්බෝඩ් වෙත පිටපත් විය."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "වදන් පණිවිඩ වෙත පරිවර්තනය වෙමින් තිබේ..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "බහුමාධ්‍ය පණිවිඩය කරමින්..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s අවහිර කරන්නද?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "ඔබ අන්තර්ජාලයට (%s) යාමට ආසන්නයි. පවත්වාගෙන යන්නද?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "වදන් පණිවිඩ"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "විෂයය:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ඊමේල් හරහා යවන්න"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "යවන්නා"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "තෝරන්න"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "ඇමුණුම සුරකින්න"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "සුරකින්න"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "ඉවත් කරන්න"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "ස්ථාපනය කරන්න"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "යොමු කරන්න"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "පණිවිඩ එක සංශෝධනය කරන්න"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "මකන්නද?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "පණිවිඩ මකන්න"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "පණිවිඩ තෝරන්න"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "සියල්ල සුරකින්න"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "පණිවිඩ විස්තර"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "කල්ඉකුත්වීම: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "උසස් සෙවුම"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "සියලු ඇමුණුම් සුරකින්න"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "නොදන්නා"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "වෙත:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "පෙළ පණිවිඩ"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM කාඩ්පත මතකය පිරී ඇත. අයිතම කීපයක් මකන්න."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "සැකසුම්"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "යවන ලදි:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "ඉල්ලීම් කරන ලදී."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "ලබන්නන්"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "ලැබුණි:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "ලැබුණි."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "වාර්තා කියවන්න"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "පුෂ් පණිවිඩ"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "පණිවිඩ %d"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "කතාබස් %d "
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "වෙනත්"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "මාතෘකාවක් නොමැත"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "නමක් නොමැත"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "බහුමාධ්‍ය පණිවිඩ දැන්වීම"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "බහුමාධ්‍යය පණිවිඩ"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "කියවන්න"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "පණිවිඩ ප්‍රතික්ෂේප කරන ලදි."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "පණිවිඩ එකේ ප්‍රමාණය"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "පණිවිඩ විකල්ප"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "පණිවිඩය බාර දෙන ලදි"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "පණිවිඩය"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "මා"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "උපරිම ඇමුණුම් සංඛ්‍යාව (%1$s) ඉක්මවා ඇත. පළමු %2$s පමණක් එක් කෙරෙනු ඇත."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "වලංගු නොවන ලබන්නෙක්."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "යවන්නා"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "යවන්නා:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "කල් ඉකුත් වී ඇත"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "යැවීම අසමත්."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "භාරදීමේ වාර්තාව"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP Messages"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "පෙළ පිටපත් කරන්න"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB පණිවිඩ"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "සියල්ල"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "පණිවිඩ 1"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "කතාබස් 1"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ඔබ යවන එක් එක් පණිවිඩ සඳහා කියවූ වාර්තාවක් ඉල්ලන්න."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ඔබ යවන එක් එක් පණිවිඩ සඳහා නිකුතු වාර්තාවක් ඉල්ලන්න."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "එක්තේරුම් බොත්තම"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "සක්‍රීය/අක්‍රීය බොත්තම"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "දිගහැරිය හැකි ලැයිස්තුව"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS පණිවිඩ ස්වයංක්‍රියව යළි ලබා ගැනේ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ගොනුව පෙරදසුන් කළ නොහැක. සහාය නොදක්වන ගොනු ආකාරයකි."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "ලබන්නන් කිහිප දෙනෙකු එක්කළ නොහැක. අංක වලංගු නොවේ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "ලබන්නන් එක් කළ නොහැක. අංකය වලංගු නොවේ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "ලබන්නන් එක් කළ නොහැක. අංක වලංගු නොවේ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "ඇමුණුම එක් කළ නොහැක. උපරිම ඇමුණුම් ගණනට (%d) ළඟා විණි."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "මෙම අංකය වලංගු නොවේ."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "තේරූ පණිවිඩ ජංගම උපාංගයට පිටපත් කෙරිණි."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "පණිවිඩ %d ක් පණිවිඩ ලැයිස්තුවට ගෙන යන ලදී."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "පණිවිඩ අවහිර ලැයිස්තුවෙන් අංකය ඉවත් කෙරිණි."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "පණිවිඩ අවහිර ලැයිස්තුවට අංකය එක් කෙරිණි."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "පණිවිඩය %s SIM කාඩ්පත වෙත පිටපත් විය."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "උපරිම අනුලකුණු ගණන ඉක්මවන ලදී."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "උපරිම පණිවිඩ තරම (%s) ඉක්මවීය. ඇමුණුම් ප්‍රතිප්‍රමාණ කරමින්..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "වලංගු නොවූ අනුලකුණ ඇතුළු කරන ලදී"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "ලබන්නන් එක් කරන්න."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "පණිවිඩ 1 ක් පණිවිඩ ලැයිස්තුවට ගෙනයන ලදී."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "පෙළ පණිවිඩ"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "හඬ"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "බහුමාධ්‍ය පණිවිඩ"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM කාඩ්පතෙහි ඇති පණිවිඩ"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "ආදාන ප්‍රකාරය"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "රෝමිං අතර. ස්වයංව යළි ලබා ග."
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "ස්වයංව යළි ලබා ගන්න"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "දැන් ය."
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "නැත"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "පණිවිඩ රචනා කිරීමට ආදාන ප්‍රකාරයක් තෝරන්න."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "කිසිත් නැත"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "ඔබේ SIM කාඩ්පත මත ගබඩා කර ඇති පණිවිඩ කළමනාකරණය කරන්න."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "ඔබගේ පණිවුඩය ඉවත ලනු ඇත. ලබන්නන් කිසිවෙක් තෝරාගෙන නැත."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "සැලසුම්ගත පණිවිඩය යැවිය නොහැක. වෙනත් වේලාවක් සකසන්න."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "ඇමතුම අතරතුර වාදනය කළ නොහැක."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ගොනුව ඇමිණිය නොහැක. ගොනුවේ ප්‍රමාණය විශාල වැඩිය. ඊමේල්, බ්ලූටූත්, Wi-Fi වැනි ආකාරයක් හරහා යවන්න."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "මෙම බහුමාධ්‍ය පණිවිඩය යැවීමට, උපාංගය වෙනස් ජංගම ජාලයකට සම්බන්ධ වනු ඇත. මෙය ඔබේ උපාංගය ඔබේ පවතින ජංගම ජාලයෙන් විසන්ධි කරනු ඇත."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "මෙම බහුමාධ්‍ය පණිවිඩය බාගැනීමට උපාංගය වෙනත් ජංගම ජාලයකට සම්බන්ධ වනු ඇත. මෙය ඔබේ උපාංගය ඔබේ පවතින ජංගම ජාලයෙන් විසන්ධි කරනු ඇත."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "මෙම පණිවිඩය යළි යැවෙනු ඇත."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "පණිවුඩ %d ක් මැකෙනු ඇත."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "සංවාද %dක් මැකෙනු ඇත."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "ලැයිස්තුවේ ආදර්ශ නැත"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "එන පණිවිඩ පමණි"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "යන පණිවිඩයේ මුල් පෙළ ඇතුළත් කරන්න"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "කාලය තත්පර %d කට අඩු විය යුතුය."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "මැකිණි."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 පණිවිඩයක් මැකෙනු ඇත."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "කතාබස් 1 ක් මැකෙනු ඇත."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "විස්තර පෙන්වන්න"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "සබඳතා විස්තර බලන්න"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "ස්ලයිඩ දැකුමක් ලෙස දක්වන්න"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "වීඩියෝ"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "සබඳතාව යාවත්කාලීන කරන්න"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "යුනිකෝඩ්"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "පෙළ"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "ඡායාරූපයක් ලබාගන්න"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "සැකසුම්"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "සොයන්න"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "ඇමුණුම් සුරකින්න"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "නැවත යවන්න"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "පිළිතුරු දෙන්න"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "අවහිර ලැයිස්තුවෙන් ඉවත් කරන්න"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "වීඩියෝ පටිගත කරන්න"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "ශ්‍රව්‍ය ගොනුව පටිගත කරන්න"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "යුහු ප්‍රතිචාර"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "නොමැත"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "හඬ ඇමතුමක් ගන්න"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "පින්තූර"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM අක්ෂරමාලාව"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "මතක පතට නිර්යාත කරන්න"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "සංස්කරණය කරන්න"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "පණිවිඩය මකන්න"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "කතාබහ මකන්න"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "මකන්න"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "පෙරනිමිය"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "සබඳතාව තනන්න"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM කාඩ්පතට පිටපත් කරන්න"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "උපාංගයට පිටපත් කරන්න"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "පෙළ පිටපත් කරන්න"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "පිටපත් කරන්න"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "උපස්ථ කරන්න"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "ස්වයංක්‍රීය"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "ශ්‍රව්‍ය ගොනු"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "ඇමුණුම"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "සබඳතා වෙත එක් කරන්න"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "අවහිර ලැයිස්තුවට එක් කරන්න"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "ලබන්නෝ එක් කරන්න"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "සෙවුම"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "ප්‍රතිඵල හමු නොවිණි"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "යුහු ප්‍රතිචාර නැත"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "කිසිදු වැකිකඩක් අවහිර කර නැත"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM කාඩ්පතෙහි පණිවිඩ නැත"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "පණිවිඩ නොමැත"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "අවහිර කළ අංක නොමැත"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "කම්පනය"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "නොදන්නා අංකය"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "පෙළ පණිවිඩ මධ්‍යස්ථාන අංකය"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "සියල්ල තෝරන්න"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "නිවේදන"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "පරිවර්තනය කරන්න"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "පෙළ පණිවිඩ"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "ජංගම ජාලය මාරුව"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS මධ්‍යස්."
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "සැකසුම්"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "ලබන්නා තෝරන්න"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d ක් තෝරා ඇත"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM කාඩ්පතෙහි ඇති පණිවිඩ"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "පණිවිඩ"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ආදාන ආකාරය"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ගොනු තරම විශාල වැඩියි"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "පණිවිඩය යැවීම අසාර්ථකයි"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "පණිවිඩය ඉවතලන්න"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "මකන්න"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "තැනීම"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "අවධානය යොමු කරන්න"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "අන්තර්ගතය එක් කිරීම"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "මාරු කර."
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "සුරකින්න"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "නැවත යවන්න"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "ඉවත් කරන්න"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "හරි"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "බාගන්න"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "ඉවතලන්න"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "මකන්න"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "අවලංගු ක."
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "අවලංගු කරන්න"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "සබඳතා"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "ඔබ හඬ සහ පහර ගොනුවක් තෝරා ඇත. MMS සඳහා හඬ දත්ත සහාය නොදක්වන නිසා පින්තූරය පමණක් අමුණනු ඇත."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "ඔව්"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "යැවීමට රැඳී..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "මෙම පණිවිඩය යැවීමට නොහැක. ඔබගේ SIM කාඩ්පත ඇතුළු කර නැවත උත්සාහ කරන්න."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "වර්ගය:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "සීමා කර ඇති මාධ්‍ය වර්ග භාවිතා කිරීමට, ඔබේ MMS සෑදුම් මාදිලි සැකසුම වෙනස් කරන්න."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "යැවූ වේලාව:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "ලැබූ වේලාව:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "ලකුණු කරන කොටුව"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "තත්ත්වය:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "යැවිණි"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "යවමින්..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "යැවීම අසාර්ථකයි"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "තත්"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "රෝමිං අතරතුර ස්වයංක්‍රියව පණිවිඩ යළි ලබා ගන්න."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "පණිවිඩ ස්වයංක්‍රියව යළි ලබා ගන්න."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "වාර්තාව කියවන්න: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "වෙනත් පුද්ගලයෙක්"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "පණිවිඩය"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "සිහිපත"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "අසමත් විය"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "පෙළ ඇතුළු කරන්න"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "කෙටුම්පත"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "භාර දීම් වාර්තාව: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB පණිවිඩ"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "දිනදසුන"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "පණිවිඩ යැවූ හෝ ලැබුණු පසු ඒවා මෙහි දිස් වනු ඇත."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ඔබ යුහු ප්‍රතිචාරයන් තැනූ පසු, ඒවා මෙහි දිස්වනු ඇත."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ඔබ SIM කාඩ්පතට පණිවිඩ පිටපත් කළ පසු, ඒවා මෙහි දිස්වනු ඇත."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "වැකිකඩ එක් කළ පසු, ඒවා මෙහි පෙන්වනු ඇත."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "පණිවිඩ අවහිර ලැයිස්තුවට ඔබ අංක එක් කළ පසු, ඒවා මෙහි පෙන්වනු ඇත."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "මකන්න"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "ප්‍රෙව්ශනය කරමින්..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "දැනුම්දීම්"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "මා"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "යවන්න"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "යවන්න"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "යවන්න"
+
diff --git a/main/po/sk.po b/main/po/sk.po
new file mode 100644 (file)
index 0000000..7870765
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Domov"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Dátový roaming je vypnutý. Zapnite dátový roaming a skúste to znova."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nová správa"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ZRUŠIŤ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "HOTOVO"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Neznáme"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobilné"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilné dátové pripojenie je vypnuté. Zapnite mobilné dátové pripojenie a skúste to znova."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ODOSLAŤ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Nepodporovaný typ média."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "V letovom režime nemožno odosielať správy. Vypnite letový režim a skúste to znova."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Nedá sa preposlať ďalej.\nSúbor je zamknutý proti preposielaniu ďalej."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "V úložisku zariadenia nie je dostatok miesta. Prejdite do menu Nastavenia > Energia a úložisko > Úložisko a potom odstráňte niektoré súbory a skúste to znova."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Text hore"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Text dole"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Vybrať rozloženie"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Obsah sa nedá pridať."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Správa bola naplánovaná na odoslanie príjemcovi %s. Odoslať teraz?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Dosiahla sa maximálna veľkosť správy."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Batéria vybitá."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Trvanie musí byť aspoň %d sekundy."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Zakazuje sa letový režim..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Skopírované na kartu SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Zrušené"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Použ. ďal. kont. údaje"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Odoslať cez"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Obrázok"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Nahradiť"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Zobraziť"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Odstrániť"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Prehrať"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Komu"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Zrušiť správu"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Zoznam príjemcov"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Ukážka"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Trvanie snímky %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Počkajte, kým sa položky pridajú do prezentácie."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Správa sa nedá odoslať."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Vybrať zvonenie"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Odošle sa potvrdenie o prečítaní."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Nevyžiadané"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Dosiahol sa maximálny počet príjemcov (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Zadať predmet"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Duplicitný príjemca."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Predať"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Nedá sa uložiť."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Nedá sa nájsť umiestnenie."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Nedá sa odstrániť."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Nedá sa kopírovať."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Niektoré znaky môžu byť stratené.\nPokračovať?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM karta nie je vložená."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Uloženie sa nepodarilo."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Uložené do priečinka Moje súbory."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Načítanie správy sa nepodarilo"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Obmedzený typ obsahu. Priložiť napriek tomu?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Obnovenie..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Odmietnuté."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Potvrdenie o prečítaní"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Žiadne číslo"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Žiadne prílohy"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nové správy"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Správa sa skopírovala z karty SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maximálny počet príjemcov je %d. Niektorí príjemcovia sa môžu stratiť."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Prekročil sa maximálny počet príloh (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Bol dosiahnutý maximálny počet znakov."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Vykonávanie..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Inicializácia..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Ak nechcete nahradiť súbor, premenujte ho."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Tato správa obsahuje súbor, ktorý nie je uvedený."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Tato správa obsahuje nezobrazené priložené súbory."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Názov súboru už existuje."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Odstraňovanie..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Skopírované do schránky."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Konvertuje sa na textovú správu..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Konvertuje sa na multimediálnu správu..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Blokovať %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Chystáte sa prejsť do režimu online (%s). Chcete pokračovať?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Predmet:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Odosielateľ cez e-mail"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Odosielateľ"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Vybrať"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Uložiť prílohu"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Uložiť"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Odstrániť"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Inštalovať"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Preposlať"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Upraviť správu"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Odstrániť?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Odstrániť správy"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Vybrať správy"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Uložiť všetko"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Podrobnosti o správe"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Platnosť do: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Rozšírené hľadanie"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Ulož. všetky prílohy"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Neznáme"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Komu:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Pamäť karty SIM je plná. Vymažte niektoré položky."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Nastavenia"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Odoslané:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Vyžiadané."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Príjemcovia"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Prijaté:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Prijatá"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Potvrdenie o prečítaní"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Správa push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "Počet správ: %d"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d konverzácie"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Ďalšie"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Žiadny predmet"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Žiadny názov"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Oznámenie o multimediálnej správe"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "kB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Čítať"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Správa bola odmietnutá."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Veľkosť správy"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Možnosti správy"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Správa bola doručená"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Správa"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Ja"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Prekročil sa maximálny počet príloh (%1$s). Pridá sa iba prvých %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Neplatný príjemca."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Od"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Od:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Platnosť vypršala"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Odosielanie sa nepodarilo."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Potvrdenie o doručení"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Správy CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopírovať text"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Správy CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Všetky"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 správa"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 konverzácia"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Vyžiadať potvrdenie o prečítaní pre každú odoslanú správu"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Vyžiadať potvrdenie o doručení pre každú odoslanú správu"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Prepínač"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Tlačidlo zapnutia/vypnutia"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Rozbaľovací zoznam"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Automaticky načítať správy MMS."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Ukážka súboru sa nedá zobraziť. Nepodporovaný typ súboru."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Niektorí príjemcovia sa nedajú pridať. Čísla nie sú platné."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Príjemca sa nedá pridať. Číslo nie je platné."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Príjemcovia sa nedajú pridať. Čísla nie sú platné."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Príloha sa nedá pridať. Dosiahol sa maximálny počet príloh (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Toto číslo nie je platné."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Vybraté správy sa skopírovali do mobilného zariadenia."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "Vykonalo sa premiestnenie %d správ do zoznamu správ."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Číslo sa odstránilo zo zoznamu blokovaní správ."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Číslo sa pridalo do zoznamu blokovaní správ."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Správa sa skopírovala na kartu SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Prekročil sa maximálny počet znakov."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Prekročila sa maximálna veľkosť správy (%s). Upravuje sa veľkosť príloh..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Zadali ste neplatný znak."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Pridajte príjemcov."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 správa sa premiestnila do zoznamu správ."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Textové správy"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Zvuk"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimediálne správy"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Správy na karte SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Vstupný režim"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Aut. načítavanie počas roamingu"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Automatické načítavanie"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Odoslať"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Nie"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Vyberte režim vstupu na písanie správ."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Žiadne"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Môžete spravovať správy uložené na karte SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Správa sa zahodí. Neboli vybratí žiadni príjemcovia."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Naplánovaná správa sa nedá odoslať. Nastavte iný čas."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Počas hovoru sa nedá prehrávať."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Súbor sa nedá priložiť. Súbor je príliš veľký. Skúste vykonať odoslanie cez e-mail, Bluetooth, Wi-Fi atď."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Zariadenie sa pripojí kvôli odoslaniu tejto multimediálnej správy k inej mobilnej sieti. Tým sa odpojí vaše zariadenie od aktuálnej mobilnej siete."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Zariadenie sa pripojí kvôli stiahnutiu tejto multimediálnej správy k inej mobilnej sieti. Tým sa odpojí vaše zariadenie od aktuálnej mobilnej siete."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Táto správa sa odošle znova."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d správy sa odstránia."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Vykoná sa odstránenie %d konverzácií."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Žiadne šablóny v zozname"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Iba prichádzajúce správy"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Zahrnúť pôvodný text v odchádzajúcej správe"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Trvanie musí byť kratšie než %d sekúnd."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Odstránené."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 správa sa odstráni."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Odstráni sa 1 konverzácia."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Zobraziť podrobnosti"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Zobraziť kontaktné údaje"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Zobraziť ako prezentáciu"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videá"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Aktualizovať kontakt"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Text"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Odfotografovať"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Nastavenia"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Vyhľadávanie"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Uložiť prílohy"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Odoslať znova"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Odpovedať"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Odstrániť zo zozn. blokovaných"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Nahrať video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Nahrať zvukový súbor"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Rýchla odpoveď"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Žiadny"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Uskutočniť hovor"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Obrázky"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Abeceda GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Exportovať do pamäte zariadenia"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Upraviť"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Odstrániť správu"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Odstrániť konverzáciu"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Predvolený"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Vytvoriť kontakt"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopírovať na kartu SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopírovať do zariadenia"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopírovať text"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopírovať"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Zálohovať"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automaticky"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Zvukové súbory"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Príloha"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Pridať do kontaktov"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Pridať do zoznamu blokovaných"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Pridať príjemcov"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Vyhľadávanie"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Nenašli sa žiadne výsledky."
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Žiadne rýchle odpovede"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Žiadne blokované frázy"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Žiadne správy na karte SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Žiadne správy"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Žiadne blokované čísla"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibrovanie"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Neznáme číslo"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Číslo centra textových správ"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Vybrať všetko"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Upozornenia"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Preložiť"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Textové správy"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Prepnutie mobilnej siete"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Centrum SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Nastavenia"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Vybrať príjemcu"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Vybraté: %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Správy na karte SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Správy"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Vstupný režim"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Súbor je príliš veľký"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Nepodarilo sa odoslať správu"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Zahodiť správu"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Vytvoriť"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Pozor"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Pridanie obsahu"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Prepnúť"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Uložiť"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Odoslať znova"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Odstrániť"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Stiahnuť"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Zrušiť"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Odstrániť"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Zrušiť"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Zrušiť"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kontakty"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Vybrali ste súbor ozvučenej snímky. Správy MMS nepodporujú zvukové údaje, preto sa priloží iba fotografia."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Áno"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Čaká sa na odoslanie..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Túto správu nemožno odoslať. Vložte kartu SIM a skúste to znova."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Typ:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Ak chcete použiť obmedzené typy médií, zmeňte nastavenie režimu tvorby správ MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Čas odoslania:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Čas prijatia:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Začiarkavacie políčko"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Stav:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Odoslané"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Odosiela..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Odoslanie zlyhalo"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "s"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Správy sa budú načítavať automaticky počas roamingu."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Správy sa budú načítavať automaticky."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Potvrdenie o prečítaní: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Iná osoba"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Správa"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Poznámka"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Zlyhanie"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Zadajte text"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Koncept"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Potvrdenie o doručení: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Správa CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalendár"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tu sa zobrazia správy po ich odoslaní alebo prijatí."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tu sa zobrazia rýchle odpovede po ich vytvorení."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tu sa zobrazia správy po ich skopírovaní na kartu SIM."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tu sa zobrazia frázy po ich pridaní."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tu sa zobrazia čísla, ktoré pridáte do zoznamu blokovaní správ."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ODSTRÁNIŤ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Načítava sa..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Oznámenia"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Ja"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Odos."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Pošli"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ODOS."
+
diff --git a/main/po/sl.po b/main/po/sl.po
new file mode 100644 (file)
index 0000000..0eef99d
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Domači"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Podatkovno gostovanje je onemogočeno. Omogočite ga in poskusite znova."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Novo sporočilo"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "PREKLIČI"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "KONČANO"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Neznano"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobilni"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobilni podatki so onemogočeni. Omogočite jih in poskusite znova."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "POŠLJI"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Nepodprta vrsta medija."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Ko je omogočen način letenja, pošiljanje sporočil ni mogoče. Onemogočite način letenja in poskusite znova."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Dodajanje ni mogoče. Datoteka ima onemogočeno posredovanje."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "V shrambi naprave ni dovolj prostora. Pojdite v meni Nastavitve > Energija in shramba > Shramba, izbrišite nekaj datotek in poskusite znova."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Besedilo na vrhu"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Besedilo na dnu"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Izberite postavitev"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Vsebine ni mogoče dodati."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Sporočilo je nastavljeno, da bo poslano osebi %s. Želite poslati?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Največja dovoljena velikost sporočila je dosežena."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Baterija prazna."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Trajati mora vsaj %d sekund."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Onemogočanje načina letenja ..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Kopirano na kartico SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Preklicano."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Up. druge pod. za stik"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Pošlji prek"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Slika"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-pošta"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Zamenjaj"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Poglej"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Odstrani"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Predvajaj"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Za"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Prekliči sporočilo"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Seznam prejemnikov"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Predogled"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Trajanje za diapozitiv %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Počakajte, da se elementi dodajo diapozitivu."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Ni mogoče poslati sporočila."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Izberi melodijo zvonjenja"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Poročilo o branju bo poslano."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Ni zahtevano"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Doseženo je največje dovoljeno število prejemnikov (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Vnesite zadevo."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Prejemnik je podvojen."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Posred."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Shranjevanje neuspešno."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Lokacije ni mogoče najti."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Brisanje ni mogoče."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Ni mogoče kopirati."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Nekaj znakov bo morda izgubljenih.\nNadaljujem?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM ni vstavljena."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Shranjevanje ni uspelo."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Shranjeno v Moje datoteke."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Nalaganje sporočila ni uspelo"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Omejena vrsta vsebine. Vseeno pripnem?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Obnavljanje..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Zavrnjeno."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Poročilo o branju"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Ni številke"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Ni prilog"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nova sporočila"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Sporočilo je kopirano s kartice SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Največje dovoljeno število prejemnikov je %d. Nekaj prejemnikov se je morda izgubilo."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Največje dovoljeno število prilog (%s) je preseženo."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Doseženo je največje dovoljeno število znakov."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "V teku..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Inicializacija"
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Če ne želite prepisati datoteke, jo preimenujte."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Sporočilo vsebuje pripeto datoteko, ki ni prikazana."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "To sporočilo vključuje priložene datoteke, ki niso prikazane."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Ime datoteke že obstaja."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Brišem"
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Kopirano v odložišče."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Pretvarjam v sporočilo SMS ..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Pretvarjam v sporočilo MMS ..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Blokiram osebo %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Vzpostavili boste povezavo (%s). Nadaljujem?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Besedilno sporočilo"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Zadeva:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Pošlji preko e-pošte"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Pošiljatelj"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Izberi"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Shrani prilogo"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Shrani"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Odstrani"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Namesti"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Posreduj"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Uredi sporočilo"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Izbrišem?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Izbriši sporočila"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Izberite sporočila"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Shrani vse"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Podrobnosti sporočila"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Poteče: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Napredno iskanje"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Shrani vse priloge"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Neznano"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Za:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Besedilna sporočila"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Pomnilnik kartice SIM je poln. Izbrišite nekaj elementov."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Nastavitve"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Poslano:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Zahtevano."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Prejemniki"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Prejeto:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Prejeto."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Poročilo o branju"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Potisna sporočila"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d sporočil"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d pogovorov"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Drugo"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Ni zadeve"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Brez imena"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Obvestilo o sporočilu MMS"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimedijsko sporočilo"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Preberi"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Sporočilo je zavrnjeno."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Velikost sporočila"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Možnosti sporočila"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Sporočilo je dostavljeno"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Sporočilo"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Jaz"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Preseženo je največje dovoljeno število prilog (%1$s). Samo prvih %2$s bo dodanih."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Neveljaven prejemnik."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Od"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Od:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Veljavnost je potekla"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Pošiljanje ni uspelo."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Poročilo o dostavi"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Sporočila CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopiraj besedilo"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Sporočila v celici"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Vse"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 sporočilo"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 pogovor"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Zahtevaj poročilo o branju za vsako poslano sporočilo."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Zahtevaj poročilo o dostavi za vsako poslano sporočilo."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Gumb za radio"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Gumb za vklop/izklop"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Razširljiv seznam"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Samodejno prejemanje sporočil MMS."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Predogled datoteke ni mogoč. Nepodprta vrsta datoteke."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Nekaterih prejemnikov ni mogoče dodati. Številke niso veljavne."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Prejemnika ni mogoče dodati. Številka ni veljavna."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Prejemnikov ni mogoče dodati. Številke niso veljavne."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Priloge ni mogoče dodati. Doseženo je največje dovoljeno število prilog (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Ta številka ni veljavna."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Izbrana sporočila bodo kopirana v mobilno napravo."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "Na seznam sporočil je bilo premaknjenih toliko sporočil: %d."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Številka odstranjena s seznama za blokiranje sporočil."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Številka dodana na seznam za blokiranje sporočil."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Sporočilo je bilo kopirano na kartico SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Največje dovoljeno število znakov je preseženo."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Največja dovoljena velikost sporočila (%s) je presežena. Spreminjanje velikosti priloge ..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Vnesli ste neveljaven znak."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Dodajte prejemnike."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "Na seznam sporočil je bilo premaknjeno 1 sporočilo."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Besedilna sporočila"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Zvok"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Večpredstavnostna sporočila"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Sporočila na kartici SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Način vnosa"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Samodejno prejem. na gostovanju"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Samodejno prejemanje"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Poš. zdaj"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Ne"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Izberite način vnosa za sestavljanje sporočil."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Brez"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Upravljanje sporočil, shranjenih na kartici SIM."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Vaše sporočilo bo zavrženo. Noben prejemnik ni izbran."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Načrtovanega sporočila ni mogoče poslati. Nastavite drugo uro."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Ni mogoče predvajati med klicem."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Datoteke ni mogoče priložiti. Datoteka je prevelika. Poskusite poslati prek E-pošte, vmesnika Bluetooth, omrežja Wi-Fi ipd."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Zaradi pošiljanja tega večpredstavnostnega sporočila se bo naprava povezala z drugim mobilnim omrežjem. S tem bo prekinjena povezava naprave s trenutnim mobilnim omrežjem."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Zaradi prenosa tega večpredstavnostnega sporočila se bo naprava povezala z drugim mobilnim omrežjem. S tem bo prekinjena povezava naprave s trenutnim mobilnim omrežjem."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "To sporočilo bo znova poslano."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d sporočil bo izbrisanih."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Število pogovorov, ki bodo izbrisani: %d."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Na seznamu ni predlog"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Samo dohodna sporočila"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Vključi prvotno besedilo v odhodno sporočilo"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Trajanje mora biti krajše od %d s."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Izbrisano."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 sporočilo bo izbrisano."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Izbrisan bo 1 pogovor."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Prikaz podrobnosti"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Prikaz podrobnosti stika"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Prikaži kot diaprojekcijo"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videoposnetki"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Posodobite stik"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Besedilo"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Slikaj"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Nastavitve"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Iskanje"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Shrani priloge"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Znova pošlji"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Odgovor"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Odstr. s seznama za blokiranje"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Posnemi video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Snemanje zvočne datoteke"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Hiter odziv"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Brez"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Vzpostavi glasovni klic"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Slike"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Abeceda GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Izvoz iz pomnilnika naprave"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Uredi"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Izbrišite sporočilo"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Izbrišite pogovor"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Privzeto"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Ustvarite stik"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopiraj na kartico SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopiraj v napravo"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopiraj besedilo"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopiraj"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Varnostno kopiranje"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Samodejno"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Zvočne datoteke"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Priloga"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Dodaj v Stike"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Dod. na seznam za blokiranje"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Dodaj prejemnike"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Iskanje"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Ni najdenih rezultatov"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Ni hitrih odzivov"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Ni blokiranih besednih zvez"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Na kartici SIM ni sporočil"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Ni sporočil"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Ni blokiranih številk"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibriranje"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Neznana številka"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Štev. centra za bes. sporočila"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Izberi vse"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Opozorila"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Prevedi"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Besedilna sporočila"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Preklopite mobilno omrežje"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Center SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Nastavitve"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Izberite prejemnika"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Št. izbranih: %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Sporočila na kartici SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Sporočila"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Način vnosa"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Datoteka je prevelika"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Sporočila ni uspelo poslati"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Zavrzite sporočilo"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Ustvarite"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Pozor"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Dodajte vsebino"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Preklopi"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Shrani"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Znova pošlji"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Odstrani"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "V redu"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Prenos"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Zavrzi"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Izbrišite"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Prekliči"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Prekliči"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Stiki"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Izbrali ste datoteko funkcije zvok+slikanje. Zvočni podatki niso podprti za sporočila MMS, zato bo pripeta samo slika."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Da"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Čakanje na pošiljanje ..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Tega sporočila ni mogoče poslati. Vstavite kartico SIM in poskusite znova."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Vrsta:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Če želite uporabljati omejene vrste predstavnostne vsebine, spremenite nastavitev načina ustvarjanja sporočil MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Ura pošiljanja:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Ura prejema:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Polje za potrditev"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Stanje"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Poslano"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Pošiljanje ..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Pošiljanje ni uspelo"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sek"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Samodejno prejemanje sporočil med gostovanjem."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Samodejno prejemanje sporočil."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Poročilo o branju: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Druga oseba"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Sporočilo"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Beležka"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Ni uspelo"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Vnesite besedilo"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Osnutek"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Poročilo o dostavi: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Sporočilo v celici"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Koledar"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Ko pošljete ali prejmete sporočila, bodo prikazana tukaj."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Ko ustvarite hitre odzive, bodo prikazani tukaj."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Ko sporočila kopirate na kartico SIM, bodo prikazana tukaj."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Ko dodate besedne zveze, bodo prikazane tukaj."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Ko na seznam za blokiranje sporočil dodate številke, bodo prikazane tukaj."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "IZBRIŠI"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Nalaganje..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Obvestila"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Jaz"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Poš."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Pošl."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "POŠ."
+
diff --git a/main/po/sr.po b/main/po/sr.po
new file mode 100644 (file)
index 0000000..33e2b9d
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Kuća"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Prenos podataka u romingu nije omogućen. Omogući prenos podataka u romingu i pokušaj ponovo."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nova poruka"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "OTKAŽI"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "GOTOVO"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobilni"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Podaci o mobilnom telefonu nisu omogućeni. Omogući ih i pokušaj ponovo."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "POŠALJI"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Nepodržani tip medija."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Slanje poruka nije moguće kada je omogućen režim letenja. Onemogući režim letenja i pokušaj ponovo."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Nemoguće proslediti. Fajl je zaključan za prosleđivanje."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Nema dovoljno prostora na skladišnoj lokaciji uređaja. Idi na Podešavanja > Napajanje i skladište > Skladišna lokacija, a zatim izbriši neke fajlove i pokušaj ponovo."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Tekst na vrhu"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Tekst na dnu"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Izaberi raspored"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Nemoguće dodati sadržaj."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Planirano je da se poruka pošalje na %s. Poslati sada?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Dostignuta maksimalna veličina poruke."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Baterija prazna."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Trajanje ne sme biti kraće od %d sekunde/i."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Onemogućavanje režima letenja..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Kopirano na SIM karticu."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Otkazano."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Koristi druge kontakt informacije"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Pošalji putem"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Slika"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-pošta"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Zameni"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Prikaži"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Ukloni"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Reprodukcija"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Za"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Otkaži poruku"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Lista primalaca"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Pregled"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Trajanje prikaza slajda %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Sačekajte dok se stavke dodaju u slajd-šou."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Nemoguće poslati poruku."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Izaberi ton zvona"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Biće poslat izveštaj o čitanju."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Nije traženo"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Dostignut maksimalan broj primalaca (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Unesi naslov."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Primalac dupliran."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Prosledi"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Nemoguće sačuvati."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Nemoguće pronaći lokaciju."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Nemoguće obrisati."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Nemoguće kopirati."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Neki karakteri mogu nestati.\nNastavak?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM kartica nije ubačena."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Memorisanje neuspešno."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Sačuvano u Mojim fajlovima."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Preuzimanje poruke neuspešno"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Zabranjen tip sadržaja. Ipak priloži?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Vraćanje..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Odbijeno."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Čitanje izveštaja"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Nema broja"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Nema priloga"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nove poruke"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Poruka je kopirana sa SIM kartice."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maksimalan broj primalaca je %d. Neki primaoci mogu nestati."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Dostignut je maksimalan broj priloga (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Dostignut maksimalan broj karaktera."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "U toku..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Inicijalizacija..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Ako ne želiš da prebrišeš fajl, preimenuj ga."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Ova poruka sadrži neprikazan priložen fajl."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Ova poruka sadrži neprikazane priložene fajlove."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Naziv fajla već postoji."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Brisanje..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Iskopirano u privremenu memoriju."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Konvertovanje u tekstualnu poruku..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Konvertovanje u multimedijalnu poruku..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Blokiraj %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Prećićete u online režim (%s). Nastaviti?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Tekstualna poruka"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Naslov:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Pošiljaocu putem e-poruke"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Pošiljalac"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Izaberi"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Sačuvaj prilog"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Sačuvaj"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Ukloni"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Instaliraj"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Prosledi"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Izmeni poruku"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Obriši?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Obriši poruke"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Izaberi poruke"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Sačuvaj sve"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Informacije o poruci"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Ističe: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Napredna pretraga"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Sačuvaj sve priloge"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "U:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Tekstualne poruke"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Memorija SIM kartice puna. Obriši neke stavke."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Podešavanja"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Poslato:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Zatraženo."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Primaoci"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Primljeno:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Primljeno."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Čitanje izveštaja"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Potisne poruke"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d por."
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d razgovora"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Ostalo"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Nema naslova"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Nema imena"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Obaveštenje o multimedijalnoj poruci"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimedijalna poruka"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Pročitaj"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Poruka odbačena."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Veličina poruke"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Opcije u vezi poruka"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Poruka isporučena"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Poruka"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Ja"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Dostignut maksimalan broj priloga (%1$s). Biće dodato samo prvih %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Neispravan primalac"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Od"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Od:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Datum isteka već prošao"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Slanje neuspešno."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Izveštaj o prispeću"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Poruke dobavljača usluga"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopiraj tekst"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Info poruke"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Sve"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 poruka"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 razgovor"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Zahtevaj izveštaj o čitanju za svaku poslatu poruku."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Zahtevaj izveštaj o prispeću za svaku poslatu poruku."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Taster za radio"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Dugme Uključeno/isključeno"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Proširiva lista"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Automatski preuzmi MMS poruke."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Nije moguće pogledati fajl. Tip fajla nije podržan."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Nije moguće dodati neke primaoce. Brojevi nisu važeći."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Nije moguće dodati primaoca. Broj nije važeći."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Nije moguće dodati primaoce. Brojevi nisu važeći."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Nije moguće dodati prilog. Dostignut je maksimalan broj priloga (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Ovaj broj nije važeći."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Izabrane poruke će biti kopirane u mobilni uređaj."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "Broj premeštenih poruka u listu poruka: %d."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Broj je uklonjen sa liste za blokiranje poruka."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Broj je dodat u listu za blokiranje poruka."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Poruka je kopirana na %s SIM karticu."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Prekoračen je maksimalan broj karaktera."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Premašena je maksimalna veličina poruke (%s). Promena veličine priloga..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Unet je neispravan karakter."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Dodaj primaoce."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 poruka je premeštena u listu poruka."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Tekstualne poruke"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Zvuk"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimedijalne poruke"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Poruke na SIM kartici"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Način unosa"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Automatski preuzmi u romingu"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Automatski preuzmi"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Poš. sada"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Ne"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Izaberi način unosa pri sastavljanju poruka."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Nema"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Organizuj poruke koje su sačuvane na SIM kartici."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Poruka će biti odbačena. Primaoci nisu izabrani."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Nije moguće poslati planiranu poruku. Podesi drugo vreme."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Nemoguće reprodukovati tokom poziva."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Nije moguće priključiti fajl. Suviše je veliki. Pokušaj da pošalješ putem e-pošte, Bluetooth-a, Wi-Fi-ja itd."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Da bi se poslala ova multimedijalna poruka, uređaj će uspostaviti vezu sa drugom mobilnom mrežom. To će prekinuti vezu uređaja sa mobilnom mrežom koju trenutno koristiš."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Da bi se preuzela ova multimedijalna poruka, uređaj će uspostaviti vezu sa drugom mobilnom mrežom. To će prekinuti vezu uređaja sa mobilnom mrežom koju trenutno koristiš."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Ova poruka će biti ponovo poslata."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d poruka biće izbrisano."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d razgovora će biti izbrisana."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Nema obrazaca na listi"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Samo dolazne poruke"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Uključi originalni tekst u odlaznu poruku"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Trajanje mora biti kraće od %d sekundi."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Obrisano."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 poruka će biti izbrisana"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Jedan razgovor će biti izbrisan."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Prikaži detalje"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Podaci o kontaktu"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Prikaži kao slajd-šou"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Video zapisi"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Ažuriraj kontakt"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unikod"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Tekst"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Slikaj"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Podešavanja"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Pretraga"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Sačuvaj priloge"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Ponovi slanje"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Odgovori"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Ukloni iz liste blokiranih"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Snimi video zapis"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Snimi audio fajl"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Brz odgovor"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Nema"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Uputi glasovni poziv"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Slike"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM abeceda"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Izvezi u memoriju uređaja"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Izmeni"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Izbriši poruku"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Izbriši razgovor"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Podrazumevano"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Kreiraj kontakt"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopiraj na SIM karticu"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopiraj u uređaj"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopiraj tekst"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopiraj"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Bekapuj"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatski"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Audio fajlovi"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Prilog"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Dodaj u kontakte"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Dodaj u listu blokiranih"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Dodaj primaoce"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Pretraga"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Nema rezultata"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Nema brzih odgovora"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Nema blokiranih fraza"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Nema poruka na SIM kartici"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Nema poruka"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Nema blokiranih brojeva"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibracija"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Nepoznati broj"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Broj centra za tekst. poruke"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Izaberi sve"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Upozorenja"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Prevedi"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Tekstualne poruke"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Promena mobilne mreže"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS centar"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Podešavanja"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Izaberi primaoca"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Izabrano: %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Poruke na SIM kartici"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Poruke"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Način unošenja teksta"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Fajl je prevelik"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Neuspešno slanje poruke"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Odbaci poruku"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Kreiraj"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Pažnja"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Dodaj sadržaj"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Prebaci"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Sačuvaj"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Ponovo pošalji"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Ukloni"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Preuzmi"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Odbaci"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Izbriši"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Otkaži"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Otkaži"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kontakti"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Izabrao/la si fajl sa zvukom i snimkom. MMS ne podržava zvučne podatke, tako da će se priložiti samo slika."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Da"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Čeka se na slanje..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Nije moguće poslati ovu poruku. Ubaci SIM karticu i pokušaj ponovo."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tip:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Da bi koristio/la ograničene tipove medija, promeni podešavanja režima kreiranja MMS poruka."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Vreme slanja:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Vreme prijema:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Kućica za oznaku"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Poslato"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Slanje..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Neuspešno slanje"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "s."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Automatski preuzmi poruke u romingu."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Automatski preuzmi poruke."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Izveštaj o čitanju: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Druga osoba"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Poruka"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Beleška"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Neuspešno"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Unesi tekst"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Skica"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Izveštaj o prispeću: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Info poruka"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalendar"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nakon što pošalješ ili primiš poruke, one će se prikazati ovde."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nakon što kreiraš brze odgovore, oni će se prikazati ovde."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nakon što kopiraš poruke na SIM karticu, one će se prikazati ovde."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nakon dodavanja fraza, one će se prikazati ovde."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nakon što dodaš brojeve u listu za blokiranje poruka, oni će se prikazati ovde."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "IZBRIŠI"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Učitavanje..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Obaveštenja"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Ja"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Pošalji"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Šalji"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ŠALJI"
+
diff --git a/main/po/sv.po b/main/po/sv.po
new file mode 100644 (file)
index 0000000..667b8e5
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Hem"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Dataroaming är inaktiverat. Aktivera dataroaming och försök igen."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Nytt meddelande"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "AVBRYT"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "KLAR"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Okänd"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobila data är inaktiverat. Aktivera mobila data och försök igen."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "SKICKA"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Mediatypen stöds inte."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Det går inte att skicka meddelanden i Flygläge. Inaktivera Flygläge och försök igen."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Det går inte att vidarebefordra.\nFilen är låst"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Det finns inte tillräckligt med utrymme på enhetens lagringsutrymme. Gå till Inställningar > Ström och lagring > Lagring och ta bort några filer. Försök sedan igen."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Texten överst"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Text längst ned"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Välj layout"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Det går inte att lägga till innehåll."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Meddelandet är schemalagt att skickas till %s. Skicka nu?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Högsta meddelandestorlek har uppnåtts."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Låg batterinivå."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Varaktigheten måste vara minst %d sekunder."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Inaktiverar Flygläget..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Kopierat på SIM-kort."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Avbruten."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Anv. ann. kontaktinfo."
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Skicka via"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Bild"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-post"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Ersätt"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Visa"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Ta bort"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Spela"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Till"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Avbryt meddelande"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Mottagarlista"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Förhandsgranska"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Tidslängd för bild %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Vänta medan objekten läggs till i bildspel."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Kan inte skicka meddelande."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Välj ringsignal"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Läsrapport skickas."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Inte begärd"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Högsta antalet mottagare (%d) har uppnåtts."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Ange rubrik."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Mottagare finns redan."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Vidare."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Kunde ej spara."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Kan inte hitta platsen."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Kan inte radera."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Det går inte att kopiera."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Det kan hända att tecken försvinner.\nFortsätta?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM-kortet är inte isatt."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Det gick inte att spara."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Sparat i Mina filer."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Fel vid hämtning av meddelande"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Begränsad innehållstyp. Bifoga ändå?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Återställer..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Avvisat."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Läsrapport"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Inget nummer"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Inga bilagor"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Nya meddelanden"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Meddelandet har kopierats från SIM-kortet."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Högsta antal mottagare är %d. Vissa mottagare kan förloras."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Högsta tillåtna antalet bilagor (%s) har överskridits."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Maximalt antal tecken har använts."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Pågår..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Initierar..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Om du inte vill ersätta filen anger du ett nytt namn."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Meddelandet innehåller en bifogad fil som inte visas."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Meddelandet innehåller bifogade filer som inte visas."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Filnamnet finns redan."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Raderar..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Kopierat till Urklipp."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Konverterar till SMS..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Konverterar till MMS..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Blockera %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Du kommer att ansluta (%s). Fortsätt?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Textmeddelande"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Rubrik:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Avsändare via e-post"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Avsändare"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Välj"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Spara bilaga"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Spara"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Ta bort"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Installera"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Vidarebefordra"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Redigera meddelande"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Radera?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Radera meddelanden"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Markera meddelanden"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Spara alla"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Meddelandeinformation"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Upphör att gälla: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Avancerad sökning"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Spara alla bilagor"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Okänd"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Till:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM-minnet är fullt. Radera några objekt."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Inställningar"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Skickat:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Begärt."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Mottagare"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Mottaget:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Mottaget."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Läsrapport"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push-meddelanden"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d meddelanden"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d konversationer"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Annat"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Ingen rubrik"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Inget namn"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "MMS-meddelande"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimediemeddelande"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "kB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Läst"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Meddelandet avvisat."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "Multimediemeddelande"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Meddelandestorlek"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Alternativ för meddelande"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Meddelande levererat"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Meddelande"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Mig"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Högsta antalet bilagor (%1$s) har överskridits. Endast de %2$s första läggs till."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Ogiltig mottagare."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Från"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Från:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Giltighetstiden har gått ut."
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Sändningsfel."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Leveransrapport"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP-meddelanden"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopiera text"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB-meddelanden"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Alla"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 meddelande"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 konversation"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Begär en läsrapport för alla meddelanden som du skickar."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Begär en leveransrapport för alla meddelanden som du skickar."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Radioknapp"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "På-/av-knapp"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Expanderbar lista"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Hämta MMS-meddelanden automatiskt."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Det går inte att förhandsgranska filen. Filtypen stöds inte."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Det går inte att lägga till vissa mottagare. Numren är ogiltiga."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Det går inte att lägga till mottagare. Numret är ogiltigt."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Det går inte att lägga till mottagare. Numren är ogiltiga."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Det går inte att lägga till bilagan. Det högsta antalet bilagor (%d) har uppnåtts."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Det här numret är ogiltigt."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Valda meddelanden kopieras till den mobila enheten."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d meddelanden har flyttats till meddelandelistan."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Numret har tagits bort från spärrlistan för meddelanden."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Numret har lagts till i spärrlistan för meddelanden."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Meddelandet har kopierats till %s från SIM-kortet."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Högsta antal tecken har uppnåtts."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Den största meddelandestorleken (%s) har överskridits. Ändrar storlek på bilagor ..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Ett ogiltigt tecken har angivits."
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Lägg till mottagare."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 meddelande har flyttars till meddelandelistan."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "SMS"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Ljud"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "MMS"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Meddelanden på SIM-kortet"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Inmatningsläge"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Hämta automatiskt vid roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Hämta automatiskt"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Skicka nu"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Nej"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Välj ett inmatningsläge för att skriva meddelanden."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Ingen"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Hantera meddelanden som lagrats på SIM-kortet."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Ditt meddelande kasseras. Inga mottagare har valts."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Det går inte att skicka schemalagt meddelande. Ange en annan tid."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Kan inte spela upp under samtal."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Det går inte att bifoga filen. Filen är för stor. Försök att skicka den med E-post, Bluetooth, Wi-Fi osv."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Om du vill skicka detta MMS ansluts enheten till ett annat mobilnät. Då kopplas enheten bort från ditt nuvarande mobilnät."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Om du vill hämta detta MMS ansluts enheten till ett annat mobilnät. Då kopplas enheten bort från ditt nuvarande mobilnät."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Det här meddelandet skickas igen."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d meddelanden kommer att raderas."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d konversationer kommer att tas bort."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Inga mallar i listan"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Endast inkommande meddelanden"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Ta med originaltexten i det utgående meddelandet"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Varaktigheten måste vara kortare än %d sekunder."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Raderad."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 meddelande kommer att tas bort."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 konversation tas bort."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Visa info"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Visa kontaktinformation"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Visa som bildspel"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videoklipp"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Uppdatera kontakt"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Text"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Ta foto"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Inställningar"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Sök"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Spara bilagor"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Skicka igen"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Svara"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Ta bort från spärrlista"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Spela in video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Spela in ljudfil"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Snabbsvar"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Ingen"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Röstsamtal"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Bilder"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM-alfabet"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Exportera till enhetsminne"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Redigera"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Ta bort meddelande"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Ta bort konversation"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Ta bort"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Standard"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Skapa kontakt"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopiera till SIM-kortet"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopiera till enhet"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopiera text"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopiera"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Säkerhetskopiera"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Automatisk"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Ljudfiler"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Bilaga"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Lägg till i kontakter"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Lägg till i spärrlista"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Lägg till mottagare"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Sök"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Inga resultat hittades"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Inga snabbsvar"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Inga blockerade fraser"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Inga meddelanden på SIM-kort"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Inga meddelanden"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Inga blockerade nummer"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibration"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Okänt nummer"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Nummer på SMS-center"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Välj alla"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Varningar"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Översätt"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "SMS"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Byt mobilnät"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS-center"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Inställningar"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Välj mottagare"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d valda"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Meddelanden på SIM-kortet"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Meddelanden"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Inmatningsläge"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Filstorleken är för stor"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Kunde inte skicka meddelandet"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Förkasta meddelande"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Ta bort"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Skapa"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Obs!"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Lägg till innehåll"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Växla"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Spara"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Skicka igen"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Ta bort"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Hämta"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Ignorera"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Ta bort"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Avbryt"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Avbryt"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kontakter"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Du har valt en ljud och foto-fil. Ljuddata stöds inte för MMS, så bara bilden bifogas."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Ja"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Väntar på att skicka ..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Det går inte att skicka det här meddelandet. Sätt i SIM-kortet och försök igen."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Typ"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Om du vill använda begränsade medietyper ändrar du inställningsläget för att skapa MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Skickat kl:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Mottaget kl:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Kryssruta"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Status:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Skickat"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Skicka ..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Misslyckades att skicka"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "s"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Hämta meddelanden automatiskt vid roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Hämta meddelanden automatiskt."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Läs rapport: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Annan person"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Meddelande"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Misslyck."
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Skriv in text"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Utkast"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Leveransrapport: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB-meddelande"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalender"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Om du har skickat eller tagit emot meddelanden visas de här."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "När du har skapat snabbsvar visas de här."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "När du har kopierat meddelanden till SIM-kortet visas de här."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "När du har lagt till fraser visas de här."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "När du har lagt till nummer i meddelandespärrlistan visas de här."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "TA BORT"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Laddar..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Aviseringar"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Mig"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Sänd"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Sänd"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "SÄND"
+
diff --git a/main/po/ta.po b/main/po/ta.po
new file mode 100644 (file)
index 0000000..51d1909
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "வீடு"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "தரவு ரோமிங் செயல்நீக்கப்பட்டுள்ளது. தரவு ரோமிங் செயல்படுத்தி மீண்டும் முயலுக."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "புதிய தகவல்"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ரத்துசெய்க"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "முடிந்தது"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "தெரியாத"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "மொபைல்"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "மொபைல் தரவு செயல்நீக்கப்பட்டுள்ளது. மொபைல் தரவை செயல்படுத்தி மீண்டும் முயலுக."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "அனுப்புக"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "ஆதரிக்கபடாத ஊடக வகை."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "ஃப்ளைட் முறையில் இருக்கும் போது தகவல்களை அனுப்ப இயலாது. ஃப்ளைட் முறையை செயல்நீக்கிவிட்டு மீண்டும் முயற்சிக்கவும்"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "பகிர்தல் இயலாது.\nஃகோப்பு பகிர்தல் லாக்கில் உள்ளது"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "உங்கள் சாதன சேமிப்பகத்தில் போதுமான இடம் இல்லை. அமைவுகள் > பவர் மற்றும் சேமிப்பகம் > சேமிப்பகம் என்பதற்குச் செல்லவும், பின்னர் சில கோப்புகளை நீக்கிவிட்டு மீண்டும் முயலவும்."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "உரை மேலே"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "உரை கீழே"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "தளவைமைப்பை தேர்வுசெய்க"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "உட்பொருளை சேர்க்கஇயலவில்லை."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "%s என்பவருக்கு அனுப்ப, தகவலானது திட்டமிடப்பட்டுள்ளது. இப்போது அனுப்பவா?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "அதிகபட்ச தகவல் அளவை அடைந்தது."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "மின்கலம் திறன் குறைந்தது."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "இடைவெளி குறைந்த்து %d வினாடிகள் இருக்க வேண்டும்."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "ஃப்ளைட் முறையை செயல்நீக்குகிறது..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM அட்டைக்கு நகல்செய்யப்பட்டது."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "இரத்தானது."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "மற்ற தொடர்பு விபரம் பயன்படுத்துக"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "வழியாக அனுப்பு"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "படிமம்"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "மின்னஞ்சல்"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "மாற்றுக"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "காண்க"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "அகற்றுக"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "இயக்குக"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "பெறுநர்"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "தகவல்களை ரத்துசெய்க"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "பெறுநர் பட்டியல்"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "முன்பார்வை"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "ஸ்லைடு %d/%dக்கான இடைவேளை"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "ஸ்லைடு ஷோவில் உருப்படிகள் சேர்க்கப்படும் வரை காத்திருக்கவும்."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "தகவல் அனுப்ப இயலவில்லை."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "ரிங்டோன் தேர்வுசெய்க"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "வாசிப்பு அறிக்கை அனுப்பப்படும்."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "கோரப்படவில்லை"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "அதிகபட்ச பெறுநர்களின் (%d) எண்ணிக்கையை அடைந்தது."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "பொருளை பதி."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "நகலான பெறுநர்கள்."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "பகிர்"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "சேமிக்க இயலாது."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "இடத்தை தேட இயலவில்லை."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "நீக்க இயலாது."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "நகலெடுக்க இயலாது."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "சில எழுத்துகள் இழக்கப்படலாம். தொடரவா?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "சிம் செருகப்படவில்லை."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "சேமிப்பு தோல்வி."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "எனது கோப்புகளில் சேமிக்கப்பட்டது."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "தகவல் சீர்செய்தல் தோல்வி"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "தடைசெய்யப்பட்ட உள்ளடக்க வகை. எந்த வகையிலாவது இணைக்கவா?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "மீ.சேமிக்கிறது..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "மறுக்கப்பட்டது."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "வாசிப்பறிக்கை"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "எண் இல்லை"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "இணைப்புகள் இல்லை"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "புதிய தகவல்கள்"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM அட்டையிலிருந்து தகவல் நகல் செய்யப்பட்டது."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "அதிகபட்ச பெறுநர்களின் எண்ணிக்கை %d. சில பெறுநர்கள் இழக்கப்பட்டிருக்கலாம்"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "அதிகபட்ச இணைப்புகளின் எண்ணிக்கையை (%s) அடைந்தது."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "அதிகபட்ச எழுத்துக்களின் எண்ணிக்கையை அடைந்தது."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "செயலில்..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "துவங்குகிறது…"
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "கோப்பினை இடமாற்ற நீங்கள் விரும்பாவிடில், மறுபெயரிடுக."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "இணைக்கப்பட்ட ஒரு தகவலை இந்தக் கோப்பு கொண்டுள்ளது அது காண்பிக்கப்படவில்லை."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "இணைக்கப்பட்ட ஒரு தகவலை இந்தக் கோப்பு கொண்டுள்ளது அது காண்பிக்கப்படவில்லை."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "கோப்பு பெயர் முன்பே உள்ளது."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "நீக்குகிறது…"
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "கிளிப்போர்டிற்கு நகலெடுக்கப்பட்டது."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "உரை தகவலாக மாற்றுகிறது..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "பல்லூடக தகவலாக மாற்றுகிறது..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s முடக்கவா?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "நீங்கள் (%s) ஆன்லைனில் செல்ல இருக்கிறீர்கள். தொடரவா?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "உரைத் தகவல்"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "பொருள்:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "மின்னஞ்சல் வழி அனுப்பு"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "அனுப்புநர்"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "தேர்வுசெய்க"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "இணைப்பை சேமி."
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "சேமிக்கவும்"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "அகற்றுக"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "நிறுவுக"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "பகிர்"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "தகவலை திருத்துக"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "நீக்கவா?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "தகவலை நீக்குக"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "தகவல்கள் தேர்வு"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "எல்லாம் சேமி"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "தகவல் விவரங்கள்"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "காலவதி: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "மேம்படுத்தப்பட்ட தேடல்"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "எல்லா இணைப்பு. சேமி"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "தெரியாத"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "பெறுநர்:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "உரைத் தகவல்கள்"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM நினைவகம் நிரம்பயுள்ளது . சில உருப்படிகளை நீக்குக."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "அமைவுகள்"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "அனுப்பியவை:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "கோரப்பட்டது."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "பெறுநர்கள்"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "பெறப்பட்டவை:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "பெறப்பட்டது."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "வாசிப்பறிக்கை"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "புஷ் தகவல்கள்"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d தகவல்கள்"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d உரையாடல்கள்"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "மற்றவை"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "பொருள் இல்லை"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "பெயர் இல்லை"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "பல்லூடக தகவல் அறிவிப்பு"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "பல்லூடகத் தகவல்"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "வாசி"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "தகவல் மறுக்கப்பட்டது."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "தகவல் அளவு"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "தகவல் தெரிவுகள்"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "தகவல் சேர்க்கப்பட்டது"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "தகவல்"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "நான்"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "அதிகபட்ச இணைப்புகளின் எண்ணிக்கையை (%1$s) தாண்டியது. %2$s-க்கு முந்தியவை மட்டுமே இணைக்கப்படும்."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "தவறான பெறுநர்."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "அனுப்புநர்"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "அனுப்புநர்:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "காலாவதியானது"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "அனுப்புதல் தோல்வி."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "சேர்க்கை அறிக்கை"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "சிபி தகவல்கள்"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "உரையை நகல்செய்க"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB தகவல்கள்"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "எல்லாம்"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 தகவல்"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 உரையாடல்"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "நீங்கள் அனுப்புகிற தகவல் ஒவ்வொன்றிற்கும் வாசிப்பு அறிக்கை கோரவும்."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "நீங்கள் அனுப்புகிற தகவல் ஒவ்வொன்றிற்கும் சேர்க்கை அறிக்கை கோரவும்."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "ரேடியோ பொத்தான்"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ஆன்/ஆஃப் பொத்தான்"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "விரிவாக்கத்தக்க பட்டியல்"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS தகவல்களை தானாக சீர்செய்க."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "கோப்பை முன்பார்வையிட இயலவில்லை. ஆதரிக்கப்படாத கோப்பு வகை."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "சில பெறுநர்களைச் சேர்க்க இயலவில்லை. எண்கள் தவறானவை."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "பெறுநரைச் சேர்க்க இயலவில்லை. எண் தவறானது."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "பெறுநர்களைச் சேர்க்க இயலவில்லை. எண்கள் தவறானவை."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "இணைப்பைச் சேர்க்க இயலவில்லை. இணைப்புகளின் அதிகபட்ச எண்ணிக்கையை (%d) அடைந்தது."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "இந்த எண் தவறானது."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "தேர்வுசெய்த தகவல்கள், மொபைல் சாதனத்தில் நகலெடுக்கப்பட்டன."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d தகவல்கள், தகவல் பட்டியலுக்கு நகர்த்தப்பட்டன."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "தடுப்புப் பட்டியலில் இருந்து எண் நீக்கப்பட்டது."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "தடுப்புப் பட்டியலில் எண் சேர்க்கப்பட்டது."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "%s SIM அட்டைக்கு தகவல் நகல் செய்யப்பட்டது."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "அதிகபட்ச எழுத்துக்களின் எண்ணிக்கையை கடந்துவிட்டது."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "அதிகபட்ச தகவல் அளவு (%s) தாண்டியது. இணைப்புகளின் அளவை மாற்றுகிறது..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "தவறான எழுத்து உள்ளிடப்பட்டது"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "பெறுநர்களைச் சேர்க்கவும்."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "தகவல் பட்டியலுக்கு 1 தகவல் நகர்த்தப்பட்டது."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "உரைத் தகவல்கள்"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ஒலி"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "பல்லூடகத் தகவல்கள்"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM அட்டையிலுள்ள தகவல்கள்"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "உள்ளீட்டு முறை"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "ரோமிங்கில் தானி. மீட்டெடுப்பு"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "தானியங்கு மீட்டெடுப்பு"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "இ. அனுப்புக"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "இல்லை"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "தகவல்களை உருவாக்க உள்ளீட்டு முறையைத் தேர்வுசெய்யவும்."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "ஒன்றுமில்லை"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "உங்கள் SIM அட்டையில் சேமிக்கப்பட்ட தகவல்களை நிர்வகிக்கவும்."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "உங்கள் தகவல் தவிர்க்கப்படும். பெறுநர்கள் எவரும் தேர்ந்தெடுக்கப்படவில்லை."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "திட்டமிடபட்ட தகவலை அனுப்ப இயலவில்லை. மற்றொரு நேரம் அமைக்கவும்."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "அழைப்பின்போது இயக்க இயலாது."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "கோப்பினை இணைக்க இயலவில்லை. கோப்பு அளவு மிகப் பெரியது. மின்னஞ்சல், ப்ளூடூத், Wi-Fi போன்றவை மூலம் அனுப்ப முயற்சிக்கவும்."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "இந்த பல்லூடகத் தகவலை அனுப்ப, சாதனம் வேறொரு மொபைல் நெட்வொர்க்குடன் இணைக்கப்படும். இது உங்கள் நடப்பு மொபைல் நெட்வொர்க்கிலிருந்து உங்கள் சாதனத்தைத் துண்டிக்கும்."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "இந்த பல்லூடக தகவலைப் பதிவிறக்க, சாதனம் வேறொரு மொபைல் நெட்வொர்க்குடன் இணைக்கப்படும். இது உங்கள் நடப்பு மொபைல் நெட்வொர்க்கிலிருந்து உங்கள் சாதனத்தைத் துண்டிக்கும்."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "இந்தத் தகவல் மீண்டும் அனுப்பப்படும்."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d தகவல்களும் நீக்கப்படும்."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d உரையாடல்கள் நீக்கப்படும்."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "பட்டியலில் டெம்ப்ளேட்கள் எதுவும் இல்லை"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "உள்வரும் தகவல்கள் மட்டும்"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "வெளிச்செல்லும் தகவலில் அசல் உரையை உள்ளடக்கவும்"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "காலஅளவு %d வினாடிகளை விட குறைவாக இருக்க வேண்டும்."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "நீக்கப்பட்டது."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 தகவல் நீக்கப்படும்."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 உரையாடல் நீக்கப்படும்."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "விவரங்களை காட்டுக"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "தொடர்பு விவரங்களைக் காணவும்"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "ஸ்லைட்ஷோவாகக் காணவும்"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "நிகழ்படங்கள்"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "தொடர்பைப் புதுப்பிக்கவும்"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "யுனிகோடு முறை"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "உரை"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "படம் எடுக்கவும்"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "அமைவுகள்"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "தேடவும்"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "இணைப்புகளை சேமிக்கவும்"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "மீண்டும் அனுப்புக"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "பதில்"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "தடு. பட்டி. இருந்து நீக்கவும்"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "நிகழ்படம் பதிக"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "கேட்பொலிக் கோப்பைப் பதிக"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "துரித பதில்"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "ஒன்றுமில்லை"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "குரல் அழைப்பு செய்யவும்"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "படிமங்கள்"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM அகரவரிசை"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "சாதன நினைவகத்திற்கு ஏற்றுக"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "திருத்துக"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "தகவல் நீக்குக"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "உரையாடலை நீக்கவும்"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "நீக்கு"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "டீஃபால்ட்"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "தொடர்பை உருவாக்கவும்"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM அட்டைக்கு நகலெடுக்கவும்"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "சாதனத்தில் நகலெடுக்கவும்"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "உரையை நகல்செய்க"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "நகல்"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "பின்சேமிப்பு"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "தானியக்கம்"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "கேட்பொலிக் கோப்புகள்"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "இணைப்பு"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "தொடர்புகளில் சேர்க்கவும்"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "தடுப்புப் பட்டியலில் சேர்."
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "பெறுநர்களைச் சேர்க்கவும்"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "தேடல்"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "முடிவுகள் எதுவும் இல்லை"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "துரித பதில்கள் எதுவுமில்லை"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "சொற்றொடர்கள் எதுவும் தடைசெய்யப்படவில்லை"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM அட்டையில் தகவல்கள் இல்லை"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "தகவல்கள் இல்லை"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "தடுக்கப்பட்ட எண்கள் ஏதுமில்லை"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "அதிர்வு"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "தெரியாத எண்"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "உரைத் தகவல் மைய எண்"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "எல்லாம் தேர்வு"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "விழிப்பூட்டல்கள்"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "மொழிபெயர்ப்பு"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "உரைத் தகவல்கள்"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "மொபைல் நெட்வொர்க்கை மாற்றுக"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS மையம்"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "அமைவுகள்"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "பெறுவோர் தேர்ந்தெடு"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d தேர்வு"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM அட்டையிலுள்ள தகவல்கள்"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "தகவல்கள்"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "உள்ளீட்டு முறை"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "கோப்பு அளவு மிகவும் பெரிது"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "தகவலை அனுப்புவதில் தோல்வி"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "தகவலை தவிர்க்கவும்"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "நீக்குக"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "உருவாக்கவும்"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "கவனம்"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "உள்ளடக்கத்தைச் சேர்க்கவும்"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "மாறவும்"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "சேமிக்கவும்"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "மீ. அனுப்பவும்"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "அகற்றுக"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "சரி"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "பதிவிறக்குக"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "தவிர்."
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "நீக்கவும்"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "ரத்து"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "ரத்து"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "தொடர்புகள்"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "ஒலி & ஷாட் கோப்பினை தேர்ந்தெடுத்துள்ளீர்கள். MMSக்கு ஒலித்தரவு ஆதரிக்கப்படவில்லை எனவே படம் மட்டுமே இணைக்கப்படும்."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "ஆம்"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "அனுப்பக் காத்திருக்கிறது..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "இந்த தகவலை அனுப்ப இயலவில்லை. உங்கள் SIM அட்டையை நுழைத்து மீண்டும் முயலுக."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "வகை:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "தடைசெய்யப்பட்ட ஊடக வகைகளை பயன்படுத்த உங்கள் MMS உருவாக்கல் முறை அமைவை மாற்றவும்."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "அனுப்பப்பட்ட நேரம்:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "பெறப்பட்ட நேரம்:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "தேர்வுப் பெட்டி"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "நிலை:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "அனுப்பியவை"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "அனுப்பு..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "அனுப்புதல் தோல்வியுற்றது"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "நொடி"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "ரோமிங்கின்போது தகவல்களை தானாக மீட்டெடுக்கவும்."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "தகவல்களை தானாக மீட்டெடுக்கவும்."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "படித்ததன் அறிக்கை: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "வேறு நபர்"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "தகவல்"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "மெமோ"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "தோல்வி."
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "உரை உள்ளிடவும்"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "வரைவு"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "சேர்க்கை அறிக்கை: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB message"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "நாட்காட்டி"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "தகவல்களை நீங்கள் அனுப்பிய பிறகு அல்லது பெற்ற பிறகு, அவை இங்கே காண்பிக்கப்படும்."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "நீங்கள் துரித பதில்களை உருவாக்கிய பிறகு, அவை இங்கே காட்டப்படும்."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "நீங்கள் தகவல்களை SIM அட்டைக்கு நகல் செய்த பிறகு, அவை இங்கே காட்டப்படும்."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "நீங்கள் சொற்றொடர்களைச் சேர்த்த பிறகு, அவை இங்கே காட்டப்படும்."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "தகவல் தடுப்புப் பட்டியலில் எண்களைச் சேர்த்த பிறகு, அவை இங்கே காட்டப்படும்."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "நீக்குக"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "லோடிங்..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "அறிவிப்புகள்"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "நான்"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "அனு."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "அனு."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "அனுப்பு"
+
diff --git a/main/po/te.po b/main/po/te.po
new file mode 100644 (file)
index 0000000..832c6ae
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "హోమ్"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "డేటా రోమింగ్ నిలిపివేయబడింది. డేటా రోమింగ్‌ను ప్రారంభించి, మళ్లీ ప్రయత్నించండి."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "కొత్త సందేశం"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "రద్దు చేయి"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "పూర్తయింది"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "తెలియని"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "మొబైల్"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "మొబైల్ డేటా నిలిపివేయబడింది. మొబైల్ డేటాను ప్రారంభించి, మళ్లీ ప్రయత్నించండి."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "పంపు"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "మద్దతులేని మీడియా రకం."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "విమానం మోడ్‌లో సందేశాలను పంపడం సాధ్యం కాదు. విమానం మోడ్‌ను నిలిపివేసి, మళ్లీ ప్రయత్నించండి"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "ఫార్వార్డ్ చేయడం సాధ్యం కాదు.\nఫైల్ ఫార్వార్డ్ చేసేందుకు లాక్ చేయబడింది"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "మీ పరికర నిల్వలో తగినంత ఖాళీ లేదు. సెట్టింగ్‌లు > శక్తి మరియు నిల్వ > నిల్వకు వెళ్లి, ఆపై కొన్ని ఫైల్‌లను తొలగించి, మళ్లీ ప్రయత్నించండి."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "ఎగువన టెక్స్ట్"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "దిగువన టెక్స్ట్"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "లేఅవుట్ ఎంచుకోండి"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "కంటెంట్‌ను జోడించడం సాధ్యం కాదు."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "సందేశం %s కు పంపాలని నిర్ణయమైంది. ఇప్పుడు పంపాలా?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "గరిష్ట సందేశ సైజ్‌కు చేరింది."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "బ్యాటరీ తక్కువగా ఉంది."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "వ్యవధి తప్పనిసరిగా కనీసం %d సేకండ్లు."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "విమానం మోడ్‌ను నిలిపివేయబడుతుంది..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM కార్డ్ కు కాపీ అయింది."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "రద్దు అయింది."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "ఇతర పరిచయ సమాచారాన్ని ఉపయోగించండి"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "దీని ద్వారా పంపు"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "చిత్రం"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ఈమెయిల్"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "భర్తీ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "వీక్షణ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "తొలగించు"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "ప్లే"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "స్వీకర్త"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "సందేశం రద్దు చేయి"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "స్వీకర్త జాబితా"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "ప్రివ్యూ"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "స్లైడ్ %d/%d కొరకు వ్యవధి"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "స్లైడ్‌షోకు ఐటమ్లు జోడించే వరకు వేచి ఉండండి."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "సందేశాన్ని పంపడం సాధ్యం కాదు."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "రింగ్టోన్‌ను ఎన్నుకోండి"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "రిపోర్ట్ చదువును పంపబడుతుంది."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "అభ్యర్థించలేదు"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "స్వీకర్తల యొక్క (%d) గరిష్ట సంఖ్యను చేరుకున్నారు."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "విషయాన్ని నమోదు చేయండి."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "నకిలీ అయిన స్వీకర్త."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "ఫార్వ."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "సేవ్ చేయడం సాధ్యం కాదు."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "స్థానం వెతుకడానికి సాధ్యం కాదు."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "తొలగించలేకపోతున్నాము."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "కాపీ చేయడం సాధ్యం కాదు."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "కొన్ని అక్షరాలు పోగొట్టుకోవచ్చు.\nకొనసాగాలా?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM ఇన్సర్ట్ చేయలేదు."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "సేవ్ చేయడం విఫలమైంది."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "నా ఫైళ్లలో సేవ్ చేయబడింది."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "సందేశంని తిరిగిపొందడం విఫలమైనది"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "నిరోధిత కంటెంట్ రకం. ఏమైనప్పటికీ జోడించాలా?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "పునరుద్ధరిస్తోంది..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "తిరస్కరించబడింది."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "రిపోర్ట్ చదువు"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "నంబర్ లేదు"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "అటాచ్మెంట్లు లేవు"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "కొత్త సందేశాలు"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "SIM కార్డునుండి సందేశం కాపీ అయ్యింది."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "గరిష్ట స్వీకర్తల సంఖ్య %d. కొన్ని స్వీకర్తలు కోల్పోవచ్చు"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "జోడింపుల (%s) అత్యధిక సంఖ్య మించిపోయింది."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "అక్షరాల గరిష్ఠ సంఖ్యకు చేరుకున్నారు."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "ప్రోగ్రెస్‌లో ఉంది..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "ప్రారంభమవుతోంది..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "ఒకవేళ మీరు ఫైల్‌ను భర్తీ చెయ్యాలనుకోకుంటే, దీని పేరు మార్చండి."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "ఈ సందేశం చూపని జోడించబడిన ఫైల్‌ను కలిగి ఉంది."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "ఈ సందేశం చూపని జోడించబడిన ఫైళ్లను కలిగి ఉంది."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "ఫైల్ పేరు ఇప్పటికే ఉంది."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "తొలగిస్తోంది..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "క్లిప్ బోర్డుకు కాపీ అయింది."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "టెక్స్ట్ సందేశానికి మార్చుతోంది..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "మల్టీమీడియా సందేశంకు మార్చుతోంది..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%sను బ్లాక్ చెయ్యాలా?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "మీరు ఆన్‌లైన్‌కు వెళ్లబోతున్నారు(%s). కొనసాగాలా?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "టెక్స్ట్ సందేశం"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "విషయము:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ఈమెయిల్ ద్వారా పంపేవారు"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "పంపేవారు"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "ఎంచుకోండి"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "జోడింపును సేవ్ చేయి"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "సేవ్ చేయి"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "తొలగించు"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "స్థాపించు"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "ఫార్వార్డ్"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "సందేశంను సవరించు"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "తొలగించాలా?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "సందేశాలను తొలగించండి"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "సందేశాలను ఎంచుకోండి"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "అన్నిటినీ సేవ్ చేయి"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "సందేశ వివరాలు"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "గడువు ముగిసిన: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "ఆధునిక శోధన"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "అన్ని జోడింపులను సేవ్ చేయి"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "తెలియని"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "స్వీకర్త:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "టెక్స్ట్ సందేశాలు"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM మెమరీ నిండింది. కొన్ని ఐటెమ్‌లను తొలగించండి."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "సెట్టింగులు"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "పంపబడినవి:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "అభ్యర్థించిన."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "స్వీకర్తలు"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "స్వీకరించబడింది:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "స్వీకరించబడింది."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "రిపోర్ట్ చదువు"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "పుష్ సందేశాలు"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d సందేశాలు"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d సంభాషణలు"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "ఇతర"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "విషయం లేదు"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "పేరు లేదు"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "మల్టీమీడియా సందేశ నోటిఫికేషన్"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "మల్టీమీడియా సందేశం"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "చదువు"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "సందేశం తిరస్కరించబడింది."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "సందేశం సైజ్"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "సందేశ ఎంపికలు"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "సందేశం బదిలీ చేయబడింది"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "సందేశం"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "నేను"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "జోడింపుల (%1$s) అత్యధిక సంఖ్య మించిపోయింది. మొదటి %2$s మాత్రమే జోడించబడుతుంది."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "చెల్లని స్వీకర్త."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "నుండి"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "నుండి:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "గడువు ముగిసింది"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "పంపడం విఫలమైనది."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "బదిలీ రిపోర్టు"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP Messages"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "టెక్స్ట్ కాపీ చేయి"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB సందేశాలు"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "అన్ని"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 సందేశం"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 సంభాషణ"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "మీరు పంపిన ప్రతి సందేశం కోసం ఒక చదివినట్లు నివేదికను అభ్యర్థించండి."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "మీరు పంపే ప్రతి సందేశం కోసం బదిలీ రిపోర్టును అభ్యర్థించండి."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "రేడియో బటన్"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ఆన్/ఆఫ్ చేయి బటన్"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "విస్తరించగల జాబితా"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "స్వయంచాలకంగా MMS సందేశాలను తిరిగి పొందండి."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ఫైల్‌ను పరిదృశ్యం చేయడం సాధ్యం కాదు. మద్దతు లేని ఫైల్ రకం."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "కొంత మంది గ్రహీతలను జోడించడం సాధ్యం కాదు. నంబర్‌లు చెల్లవు."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "గ్రహీతను జోడించడం సాధ్యం కాదు. నంబర్ చెల్లదు."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "గ్రహీతలను జోడించడం సాధ్యం కాదు. నంబర్‌లు చెల్లవు."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "జోడింపుని జోడించడం సాధ్యం కాదు. జోడింపుల గరిష్ట సంఖ్యను (%d) చేరుకున్నారు."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "ఈ నంబర్ చెల్లదు."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "ఎంచుకున్న సందేశాలు మొబైల్ పరికరానికి కాపీ చేయబడ్డాయి."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d సందేశాలు సందేశ జాబితాకు తరలించబడ్డాయి."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "సందేశ నిరోధ జాబితా నుండి నంబర్ తీసివేయబడింది."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "సందేశ నిరోధ జాబితాకు నంబర్ జోడించబడింది."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "%s SIM కార్డ్‌కు సందేశం కాపీ చేయబడింది."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "అక్షరాల అత్యధిక సంఖ్యని మించిపోయారు."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "సందేశం యొక్క గరిష్ట పరిమాణాన్ని (%s) మించిపోయారు. జోడింపుల పరిమాణాన్ని మారుస్తోంది..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "చెల్లని అక్షరం నమోదు చేయబడింది"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "స్వీకర్తలను జోడించండి."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 సందేశం సందేశ జాబితాకు తరలించబడింది."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "టెక్స్ట్ సందేశాలు"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "ధ్వని"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "మల్టీమీడియా సందేశాలు"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM కార్డ్‌లోని సందేశాలు"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "ఇన్‌పుట్ మోడ్"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "రోమింగ్‌లో ఉన్నప్పుడు స్వీయంగా పునరుద్ధరించు"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "స్వీయ పునరుద్ధరణ"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "ఇప్పుడు పంపు"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "కాదు"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "సందేశాలను కంపోజ్ చేయడం కోసం ఇన్‌పుట్ మోడ్‌ను ఎంచుకోండి."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "ఏదీకాదు"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "మీ SIM కార్డ్‌లో నిల్వ చేసిన సందేశాలను నిర్వహించండి."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "మీ సందేశం విస్మరించబడుతుంది. స్వీకర్తలు ఎంచుకోలేదు."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "షెడ్యూల్ చేసిన సందేశాన్ని పంపడం సాధ్యం కాదు. మరొక సమయాన్ని సెట్ చేయి."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "కాల్ సమయంలో ప్లే చేయడం సాధ్యం కాదు."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "ఫైల్‌ను జోడించడం సాధ్యం కాదు. ఫైల్ పరిమాణం చాలా పెద్దగా ఉంది. ఇమెయిల్, బ్లూటూత్, Wi-Fi మొదలైన వాటి ద్వారా పంపడానికి ప్రయత్నించండి."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "ఈ మల్టీమీడియా సందేశాన్ని పంపడానికి, పరికరం వేరొక మొబైల్ నెట్‌వర్క్‌కు కనెక్ట్ చేయబడుతుంది. ఇది మీ పరికరాన్ని మీ ప్రస్తుత మొబైల్ నెట్‌వర్క్ నుండి డిస్‌కనెక్ట్ చేస్తుంది."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "ఈ మల్టీమీడియా సందేశాన్ని డౌన్‌లోడ్ చేయడానికి, పరికరం వేరొక మొబైల్ నెట్‌వర్క్‌కి కనెక్ట్ చేయబడుతుంది. ఇది మీ పరికరాన్ని మీ ప్రస్తుత మొబైల్ నెట్‌వర్క్ నుండి డిస్‌కనెక్ట్ చేస్తుంది."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "ఈ సందేశం మళ్లీ పంపబడుతుంది."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d సందేశాలు తొలగించబడతాయి."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d సంభాషణలు తొలగించబడతాయి."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "జాబితాలో ఏ టెంప్లేట్‌లు లేవు"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "ఇన్కమింగ్ సందేశాలు మాత్రమే"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "అవుట్‌గోయింగ్ సందేశంలో వాస్తవ టెక్స్ట్‌ని చేర్చండి"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "వ్యవధి తప్పక %d సెకన్ల కంటే తక్కువ ఉండాలి."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "తొలగించబడింది."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 సందేశం తొలగించబడుతుంది."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 సంభాషణ తొలగించబడుతుంది."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "వివరాలను వీక్షించండి"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "పరిచయ వివరాలను వీక్షించండి"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "స్లయిడ్‌షో వలె వీక్షించండి"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "వీడియోలు"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "పరిచయాన్ని అప్‌డేట్ చేయండి"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "యునీకోడ్"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "టెక్స్ట్"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "చిత్రాన్ని తీయండి"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "సెట్టింగులు"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "శోధన"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "జోడింపులను సేవ్ చేయి"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "మళ్లీ పంపు"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "ప్రత్యుత్తరం పంపు"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "నిరోధిత జాబితా నుండి తీసివేయి"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "వీడియోని రికార్డ్ చేయండి"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "ఆడియో ఫైల్‌ని రికార్డ్ చేయి"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "త్వరిత ప్రతిస్పందన"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "ఏదీకాదు"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "వాయిస్ కాల్ చేయి"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "చిత్రాలు"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM ఆల్ఫాబేట్"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "పరికరం మెమరీకి ఎగుమతి చేయి"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "సవరించు"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "సందేశాన్ని తొలగించు"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "సంభాషణను తొలగించు"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "తొలగించు"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "డీఫాల్ట్"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "పరిచయాన్ని సృష్టించండి"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM కార్డ్‌కు కాపీ చేయండి"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "పరికరానికి కాపీ చేయి"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "టెక్స్ట్ కాపీ చేయి"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "కాపీ చేయి"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "బ్యాక్ అప్"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "స్వయంచాలకం"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "ఆడియో ఫైల్‌లు"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "జోడింపు"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "పరిచయాలకు జోడించు"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "నిరోధిత జాబితాకు జోడించండి"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "గ్రహీతలను జోడించు"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "శోధన"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "ఫలితాలు లేవు"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "శీఘ్ర ప్రతిస్పందనలు లేవు"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "పదబంధాలు నిరోధించబడలేదు"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM కార్డ్‌లో సందేశాలు లేవు"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "సందేశాలు లేవు"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "నిరోధిత నంబర్‌లు లేవు"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "వైబ్రేషన్"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "తెలియని నంబర్"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "టెక్స్ట్ సందేశ కేంద్రం నంబర్"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "అన్నింటినీ ఎన్నుకోండి"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "హెచ్చరికలు"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "అనువాదించండి"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "టెక్స్ట్ సందేశాలు"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "మొబైల్ నెట్‌వర్క్‌కు మారండి"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS కేంద్రం"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "సెట్టింగులు"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "స్వీకర్తను ఎన్నుకోండి"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d ఎంచుకోబడ్డారు"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM కార్డ్‌లోని సందేశాలు"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "సందేశాలు"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ఇన్‌పుట్ మోడ్"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ఫైల్ పేరు చాలా పెద్దది"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "సందేశాన్ని పంపడం విఫలమైంది"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "సందేశాన్ని విస్మరించు"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "తొలగించు"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "సృష్టించండి"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "అటెన్షన్"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "కంటెంట్‌ను జోడించండి"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "మారండి"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "సేవ్ చేయి"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "మళ్లీ పంపండి"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "తీసివేయి"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "సరే"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "డౌన్‌లోడ్ చేయి"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "విస్మరించు"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "తొలగించు"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "రద్దు చేయి"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "రద్దు"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "పరిచయాలు"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "మీరు సౌండ్ & షాట్ ఫైల్‌ని ఎంచుకున్నారు. MMS కి ధ్వని డేటా మద్దతు లేదు, కాబట్టి చిత్రం మాత్రమే జోడించబడుతుంది."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "అవును"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "పంపడానికి వేచి ఉంది..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "ఈ సందేశాన్ని పంపడం సాధ్యం కాదు. మీ SIM కార్డుని చొప్పించి, మళ్లీ ప్రయత్నించండి."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "రకం:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "పరిమిత మీడియా రకాలను ఉపయోగించడానికి, మీ MMS రూపకల్పన మోడ్ సెట్టింగ్‌ను మార్చండి."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "పంపిన సమయం:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "స్వీకరించిన సమయం:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "ఎంపిక పెట్టె"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "స్థితి:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "పంపబడింది"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "పంపుతోంది..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "పంపడం విఫలమైంది"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "సెకన్లు"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "రోమింగ్‌లో ఉన్నప్పుడు సందేశాలను స్వయంచాలకంగా తిరిగి పొందండి."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "సందేశాలను స్వయంచాలకంగా తిరిగి పొందండి."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "చదివిన నివేదిక: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "ఇతర వ్యక్తి"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "సందేశం"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "మెమో"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "విఫలమైంది"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "టెక్స్ట్‌ని నమోదు చేయండి"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "డ్రాఫ్ట్"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "బట్వాడా నివేదిక: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB సందేశం"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "క్యాలెండర్"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "మీరు సందేశాలను పంపినప్పుడు లేదా స్వీకరించినప్పుడు, అవి ఇక్కడ చూపబడతాయి."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "మీరు త్వరిత ప్రతిస్పందనలను సృష్టించిన తర్వాత, అవి ఇక్కడ చూపబడతాయి."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "మీరు సందేశాలను SIM కార్డ్‌కు కాపీ చేసిన తర్వాత, అవి ఇక్కడ చూపబడతాయి."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "మీరు పదబంధాలను జోడించిన తర్వాత, అవి ఇక్కడ చూపబడతాయి."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "మీరు సందేశ నిరోధిత జాబితాకు నంబర్‌లను జోడించిన తర్వాత, అవి ఇక్కడ చూపబడతాయి."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "తొలగించు"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "లోడ్ అవుతోంది..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "నోటిఫికేషన్లు"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "నేను"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "పంపు"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "పంపు"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "పంపు"
+
diff --git a/main/po/th.po b/main/po/th.po
new file mode 100644 (file)
index 0000000..3868cae
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "บ้าน"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "ปิดการโรมมิ่งข้อมูล เปิดใช้งานการโรมมิ่งข้อมูลแล้วลองอีกครั้ง"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "ข้อ​ความ​ใหม่"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "ยกเลิก"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "เรียบร้อย"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "ไม่​รู้จัก"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "มือ​ถือ"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "ปิดใช้งานข้อมูลมือถือ เปิดใช้งานข้อมูลมือถือแล้วลองอีกครั้ง"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "ส่ง"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "ชนิด​มี​เดีย​ไม่​รอง​รับ"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "ไม่สามารถส่งข้อความ ขณะอยู่ในโหมดการบิน ปิดใช้งานโหมดการบิน และลองอีกครั้ง"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "ส่ง​ต่อ​ไม่​ได้\n​ไฟล์​ถูก​ล็อก​การ​ส่ง​ต่อ"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "ที่จัดเก็บในอุปกรณ์ของคุณ มีที่ว่างไม่เพียงพอ ไปที่ การตั้งค่า > พลังงานและที่จัดเก็บ > ที่จัดเก็บ แล้วลบบางไฟล์ และลองอีกครั้ง"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "ข้อความอยู่ด้านบน"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "ข้อความอยู่ด้านล่าง"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "เลือก​รูป​แบบ"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "เพิ่ม​คอน​เทนท์​ไม่​ได้"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "วางกำหนดการข้อความไว้เพื่อที่จะส่งไปยัง %s ส่งตอนนี้?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "ถึง​ขนาด​ข้อ​ความ​สูง​สุด"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "แบตเตอรี่​ต่ำ"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "ระยะ​เวลา​ต้องอย่าง​น้อย %d ​วินาที"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "ปิด​ใช้​งาน​โหมด​การ​บิน..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "คัด​ลอก​ไป​ยัง SIM ​การ์ด"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "ยกเลิกแล้ว"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "ใช้ข้อมูลรายชื่ออื่น"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "ส่ง​ผ่าน"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "รูป​ภาพ"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "อีเมล"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "แทน​ที่"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "แสดง"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "ลบ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "แสดง"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "ถึง"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "ยกเลิกข้อความ"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "รายการ​ผู้​รับ"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "ตัวอย่าง"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "ช่วง​เวลา​ของ​สไลด์ %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "รอ​การ​เพิ่ม​รายการ​ใน​สไลด์​โชว์"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "ไม่​สามารถ​ส่ง​ข้อ​ความ"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "เลือก​เสียง​เรียก​เข้า"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "รายงาน​การ​อ่าน​จะ​ถูก​ส่ง"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "ไม่​ได้​ขอ"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "ถึง​จำนวน​ผู้​รับ​สูง​สุด (%d) ​แล้ว"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "ใส่​เรื่อง​ใหม่"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "ผู้​รับ​ซ้ำ"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "ส่ง​ต่อ"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "ไม่​สามารถ​บันทึก​ได้"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "ไม่​สามารถ​ค้น​หา​ตำแหน่ง"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "ลบ​ไม่​ได้"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "ไม่​สามารถ​คัด​ลอก"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "บาง​ตัว​อักษร​อาจ​สูญ​หาย\n​ทำ​ต่อ?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "ไม่​ได้​ใส่ SIM"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "การ​บันทึก​ผิด​พลาด"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "บันทึกในไฟล์ส่วนตัวแล้ว"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "เรียกข้อความ\n​ผิดพลาด"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "ชนิด​คอน​เทนท์​ที่​จำกัด แนบ​ต่อ​ไป?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "กำลัง​เรียก​คืน..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "ปฏิเสธ"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "รายงาน​การ​อ่าน"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "ไม่​มี​เบอร์"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "ไม่​มี​ไฟล์​แนบ"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "ข้อความใหม่"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "ข้อ​ความ​ที่​คัด​ลอก​จาก SIM ​การ์ด"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "จำนวน​ผู้​รับ​สูง​สุด​คือ %d ​ราย ผู้​รับ​บาง​ชื่อ​อาจ​สูญ​หาย​ไป"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "เกินจำนวนไฟล์แนบสูงสุด (%s)"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "มีจำนวนตัวอักษร มากที่สุดแล้ว"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "ดำเนิน​การ..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "กำลัง​ทำ​รายการ..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "หาก​คุณ​ไม่​ต้อง​การ​แทน​ที่​ไฟล์ โปรด​เปลี่ยน​ชื่อ"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "ข้อ​ความ​นี้​รวม​ไฟล์​แนบ​ที่​ไม่​แสดง"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "ข้อ​ความ​นี้​รวม​ไฟล์​แนบ​ที่​ไม่​แสดง"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "มี​ชื่อ​ไฟล์​อยู่​แล้ว"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "ลบ..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "คัด​ลอก​ลง​คลิ​ป​บอร์ด"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "กำลัง​แปลง​ข้อ​ความ​ปกติ..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "กำลังแปลงข้อความ MMS…"
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "บล็อก %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "คุณ​กำลัง​จะ​ออ​น​ไลน์(%s) ​ทำ​ต่อ?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "ข้อ​ความ​ปกติ"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "เรื่อง:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "ผู้​ส่ง​ผ่าน​อี​เมล"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "ผู้​ส่ง"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "เลือก"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "บันทึก​ไฟล์​แนบ"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "บันทึก"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "ลบ"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "ติด​ตั้ง"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "ส่ง​ต่อ"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "แก้ไข​ข้อ​ความ"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "ลบ?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "ลบ​ข้อ​ความ"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "เลือกข้อความ"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "บันทึก​ทั้ง​หมด"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "รายละเอียดข้อความ"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "​​​หมด​อายุ: ​​​%s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "การค้นหาขั้นสูง"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "บันทึกเอกสารแนบทั้งหมด"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "ไม่​รู้จัก"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "ถึง:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "ข้อ​ความ"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "ความ​จำ SIM ​เต็ม ลบ​บาง​รายการ"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "การตั้งค่า"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "ส่ง​แล้ว:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "ขอ​แล้ว"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "ผู้​รับ"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "ได้​รับ:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "ได้​รับ​แล้ว"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "รายงาน​การ​อ่าน"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "ข้อความพุช"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d ​ข้อ​ความ"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d ​การส​นท​นา"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "อื่นๆ"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "ไม่​มี​ชื่อ​เรื่อง"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "ไม่​มี​ชื่อ"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "การ​แจ้ง​เตือน​ข้อ​ความ​มัลติ​มี​เดีย"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "ข้อ​ความ​มัลติ​มี​เดีย"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "อ่าน"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "ข้อ​ความ​ถูก​ปฏิเสธ"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "ขนาด​ข้อ​ความ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "ทางเลือกข้อความ"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "ข้อ​ความ​ถูก​นำ​ส่ง​แล้ว"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "ข้อ​ความ"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "ฉัน"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "เกิน​จำนวน​ไฟล์​แนบ​สูง​สุด (%1$s) ​เฉพาะ %2$s ​แรก​เท่า​นั้น​ที่​จะ​ถูก​เพิ่ม"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "ผู้​รับ​ไม่​ถูก​ต้อง"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "จาก"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "จาก:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "หมด​อายุ"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "การ​ส่ง​ผิด​พลาด"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "รายงาน​การ​ส่ง"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "ข้อ​ความ CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "คัด​ลอก​ข้อ​ความ"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "ข้อ​ความ CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "ทั้ง​หมด"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 ​การส​นท​นา"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ร้องขอรายงานการอ่านสำหรับแต่ละข้อความที่คุณส่ง"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ร้องขอรายงานการนำส่งสำหรับแต่ละข้อความที่คุณส่ง"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "ปุ่ม​เลือก​แบ​บก​ลม"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "ปุ่มเปิด/ปิด"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "รายการที่ขยายได้"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "เรียกข้อความ MMS อัตโนมัติ"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "ไม่สามารถดูตัวอย่างไฟล์ได้ ไม่​รอง​รับ​ชนิด​ไฟล์"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "ไม่สามารถเพิ่มผู้รับบางรายได้ หมายเลขไม่ถูกต้อง"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "ไม่สามารถเพิ่มผู้รับได้ หมายเลขไม่ถูกต้อง"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "ไม่สามารถเพิ่มผู้รับได้ หมายเลขไม่ถูกต้อง"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "ไม่สามารถเพิ่มไฟล์แนบ ถึงจำนวนไฟล์แนบสูงสุด (%d) แล้ว"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "หมายเลขนี้ไม่ถูกต้อง"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "คัดลอกข้อความที่เลือกไปยังอุปกรณ์มือถือ"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "ย้าย %d ข้อความไปยังรายการข้อความแล้ว"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "ลบหมายเลขออกจาก รายการบล็อคข้อความแล้ว"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "เพิ่มหมายเลขไปยัง รายการบล็อคข้อความแล้ว"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "คัดลอกข้อความไปยัง %s SIM การ์ดแล้ว"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "เกินจำนวนตัวอักษรสูงสุด"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "ถึงขนาดข้อความสูงสุด (%s) แล้ว กำลังปรับขนาดเอกสารแนบ..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "ตัวอักษรที่ใส่ไม่ถูกต้อง"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "เพิ่มผู้รับ"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "ย้าย 1 ข้อความ ไปยังรายการข้อความแล้ว"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "ข้อความปกติ"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "เสียง"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "ข้อความมัลติมีเดีย"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "ข้อความใน SIM การ์ด"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "โหมด​การเขียน"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "เรียกอัตโนมัติขณะโรมมิ่ง"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "เรียกอัตโนมัติ"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "ส่ง​ตอน​นี้"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "ไม่"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "เลือกโหมดการเขียนสำหรับการเขียนข้อความ"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "ไม่มี"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "จัดการข้อความที่เก็บอยู่ใน SIM การ์ด"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "ข้อความของคุณจะถูกละทิ้ง ไม่ได้เลือกผู้​รับใด"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "ไม่​สามารถ​ส่ง​ข้อ​ความ​ที่​วาง​กำหนด​การ​ไว้ ตั้ง​ค่า​เวลา​อื่น"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "เล่น​ไม่​ได้ ขณะ​โทร"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "แนบไฟล์ไม่ได้ ขนาดไฟล์ใหญ่เกินไป ลองส่งผ่านอีเมล, Bluetooth, Wi-Fi และอื่นๆ"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "อุปกรณ์จะเชื่อมต่อ กับเครือข่ายมือถืออื่น เพื่อส่งข้อความมัลติมีเดียนี้ ซึ่งจะหยุดการเชื่อมต่ออุปกรณ์ของคุณ จากเครือข่ายมือถือปัจจุบันของคุณ"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "อุปกรณ์จะเชื่อมต่อกับเครือข่ายมือถืออื่น เพื่อดาวน์โหลดข้อความมัลติมีเดียนี้ ซึ่งจะหยุดการเชื่อมต่ออุปกรณ์ของคุณ จากเครือข่ายมือถือปัจจุบันของคุณ"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "ข้อความนี้จะถูกส่งใหม่"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d ​ข้อ​ความ​จะ​ถูก​ลบ"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d การสนทนาจะถูกลบ"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "ไม่​มี​ข้อ​ความ​ที่​ตั้ง​ไว้​ใน​รายการ"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "ข้อความเข้าเท่านั้น"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "รวมข้อความต้นฉบับในข้อความส่งออกด้วย"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "ระยะเวลาต้องสั้นกว่า %d วินาที"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "ลบ​แล้ว"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "ข้อความจะถูกลบ 1 ข้อความ"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 การสนทนาจะถูกลบ"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "แสดงรายละเอียด"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "ดูรายละเอียดรายชื่อ"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "แสดงเป็นสไลด์โชว์"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "วี​ดี​โอ"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "อัพเดทรายชื่อ"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "ยู​นิ​โค้ด"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "ตัว​อักษร"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "ถ่ายภาพ"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "การตั้งค่า"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "ค้นหา"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "บันทึกเอกสารแนบ"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "ส่งใหม่"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "ตอบ"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "ลบจากรายการบล็อค"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "บันทึก​วี​ดี​โอ"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "บันทึกไฟล์เสียง"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "การ​ตอบกลับ​ด่วน"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "ไม่​มี"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "โทรปกติ"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "รูป​ภาพ"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "ชุดตัวอักษร GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "นำ​ออก​ไป​ยัง​หน่วย​ความ​จำ​อุปกรณ์"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "แก้ไข"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "ลบข้อความ"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "ลบการสนทนา"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "ลบ"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "พื้นฐาน"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "สร้างรายชื่อ"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "คัดลอกไปยัง SIM การ์ด"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "คัดลอกไปยังอุปกรณ์"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "คัด​ลอก​ข้อ​ความ"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "คัดลอก"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "สำรอง"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "อัตโนมัติ"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "ไฟล์เสียง"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "เอกสารแนบ"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "เพิ่มในรายชื่อ"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "เพิ่มไปยังรายการบล็อค"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "เพิ่มผู้รับ"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "ค้นหา"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "ไม่พบผลลัพธ์"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "ไม่มีการตอบกลับด่วน"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "ไม่มีวลีที่ถูกบล็อค"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "ไม่มีข้อความใน SIM การ์ด"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "ไม่มีข้อความ"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "ไม่มีหมายเลขที่บล็อค"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "ระบบสั่น"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "หมาย​เลข​ที่​ไม่​รู้จัก"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "หมายเลขศูนย์ข้อความ"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "เลือกทั้งหมด"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "การเตือน"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "แปล"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "ข้อความปกติ"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "สลับเครือข่ายมือถือ"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "ศูนย์ SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "การตั้งค่า"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "เลือก​ผู้​รับ"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d ถูกเลือกแล้ว"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "ข้อความใน SIM การ์ด"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "ข้อความ"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "โหมด​การเขียน"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "ขนาดไฟล์ใหญ่เกินไป"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "การส่งข้อความล้มเหลว"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "ละทิ้ง​ข้อ​ความ"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "ลบ"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "สร้าง"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "โปรดทราบ"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "เพิ่มคอนเทนท์"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "สวิตช์"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "บันทึก"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "ส่งใหม่"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "ลบ"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ตกลง"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ดาวน์โหลด"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "ละทิ้ง"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "ลบ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "ยกเลิก"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "ยกเลิก"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "รายชื่อ"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "คุณได้เลือกไฟล์ เสียงและช็อต MMS ไม่รองรับข้อมูลเสียง ดังนั้นจะมีเพียงภาพที่ถูกแนบไป"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "ใช่"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "กำลังรอส่ง..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "ไม่สามารถส่งข้อความนี้ได้ ใส่ SIM การ์ดของคุณ และลองอีกครั้ง"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "ชนิด:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "เปลี่ยนการตั้งค่าโหมดการสร้าง MMS ของคุณเพื่อใช้ชนิดมีเดียที่จำกัด"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "เวลาที่ส่ง:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "เวลาที่รับ:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "กล่องทำเครื่องหมาย"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "สถานะ:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "ส่งแล้ว"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "กำลังส่ง..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "การส่งผิดพลาด"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "วินาที"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "เรียกข้อความอัตโนมัติขณะโรมมิ่ง"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "เรียกข้อความอัตโนมัติ"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "รายงานการอ่าน: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "บุคคลอื่น"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "ข้อ​ความ"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "สมุด​บันทึก"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "ล้มเหลว"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "ใส่ข้อความ"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "ร่าง"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "รายงานการส่ง: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "ข้อ​ความ CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "ปฏิทิน"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "หลังจากคุณส่งหรือรับ ข้อความจะปรากฏที่นี่"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "หลังจากคุณสร้างการตอบกลับด่วน การตอบกลับด่วนจะปรากฏที่นี่"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "หลังจากคุณคัดลอกข้อความไปยัง SIM การ์ดแล้ว ข้อความจะปรากฏที่นี่"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "หลังจากคุณเพิ่มวลีแล้ว วลีจะปรากฏที่นี่"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "หลังจากเพิ่มหมายเลขไปยังรายการห้ามใช้ข้อความแล้ว หมายเลขจะปรากฏที่นี่"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ลบ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "โหลด..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "การแจ้งเตือน"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "ฉัน"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "ส่ง"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "ส่ง"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "ส่ง"
+
diff --git a/main/po/tl.po b/main/po/tl.po
new file mode 100644 (file)
index 0000000..1aa6e48
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Home"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Hindi pinagana ang data roaming. Paganahin ang data roaming at subukang muli."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Bagong mensahe"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "KANSELAHIN"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "TAPOS NA"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Hindi alam"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobile"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Hindi pinagana ang mobile data. Paganahin ang mobile data at subukang muli."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "IPADALA"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Hindi sinusuportahang uri ng media."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Hindi makapagpadala ng mga mensahe habang nasa Flight mode. Huwag paganahin ang Flight mode at subukang muli."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Hindi maipasa.\nNaka-lock ang pagpapasa ng file"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Walang sapat na espasyo sa iyong device storage. Pumunta sa Mga setting > Power at storage > Storage, pagkatapos ay mag-delete ng ilang file at subukan muli."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Text sa itaas"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Text sa ibaba"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Pumili ng layout"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Hindi maidagdag ang content."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Naka-iskedyul na ipapadala ang mensahe kay %s. Ipadala ngayon?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Naabot na ang maximum na laki ng mensahe."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Mahina na ang baterya."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Hindi dapat mas maikli sa %d segundo ang tagal."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Hindi pinapagana ang Flight mode..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Kinopya sa SIM card."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Kinansela."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Gumamit ng ibang impormasyon ng contact"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Ipadala sa pamamagitan ng"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Larawan"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Email"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Palitan"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "View"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Alisin"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "I-play"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Kay"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Cancel message"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Listahan ng recipient"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "I-preview"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Tagal ng slide %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Maghintay habang idinadagdag ang mga item sa slideshow."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Hindi maipadala ang mensahe."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Pumili ng ringtone"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Ipapadala ang ulat ng pagbabasa."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Hindi hiniling"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Naabot na ang maximum na bilang ng mga recipient (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Ilagay ang paksa."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Na-duplicate na recipient."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Fwd"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Hindi ma-save"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Hindi matagpuan ang lokasyon."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Hindi ma-delete."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Hindi makopya."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Maaari mawala ang ilang character. Magpatuloy?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "Hindi nakalagay ang SIM"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Nabigo ang pag-save."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Naka-save sa Aking Mga File."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Nabigo ang pagkuha ng mensahe"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Pinagbabawal na uri ng nilalaman. I-attach pa rin?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Ipinapanumbalik..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Tinanggihan."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Ulat sa pagbabasa"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Walang numero"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Walang mga attachment"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Mga bagong mensahe"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Nakopya ang mensahe mula sa USIM card."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Ang maximum na bilang ng recipient ay %d. Maaaring mawala ang ilang recipient."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Lumagpas na sa maximum na bilang ng mga attachment (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Naabot na ang maximum na bilang ng mga character."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Isinasagawa..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Sinisimulan..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Kung ayaw mong palitan ang file, palitan mo ang pangalan nito."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Ang mensaheng ito ay may kasamang naka-attach na file na hindi ipinapakita."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Ang mensaheng ito ay may mga naka-attach na file na hindi ipinapakita."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Mayroon nang kapangalan ang file."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Tinatanggal..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Kinopya sa clipboard."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Kino-convert sa text message..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Kino-convert sa multimedia message..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "I-block ang %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Mag-o-online ka(%s). Magpatuloy?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Text message"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Paksa:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Ipadala sa pamamagitan ng Email"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Nagpadala"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Piliin"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "I-save ang attachment"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "I-save"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Alisin"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "I-install"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Ipasa"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "I-edit ang mensahe"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "I-delete?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "I-delete ang mga mensahe"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Pumili ng mga mensahe"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "I-save lahat"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Mga detalye ng mensahe"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Mag-e-expire sa: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Advanced na paghahanap"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Save all attachments"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Hindi alam"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Para kay:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Mga text message"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Puno na ang memory ng SIM. Mag-delete ng ilang item."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Mga Setting"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Ipinadala:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Hiniling."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Mga Recipient"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Natanggap:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Natanggap."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Ulat sa pagbabasa"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Mga push message"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d (na) mensahe"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d (na) pag-uusap"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Iba pa"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Walang paksa"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Walang pangalan"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Notification ng multimedia message"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimedia message"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Nabasa na"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Tinanggihan ang mensahe."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Laki ng mensahe"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Mga pagpipilian sa mensahe"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Na-deliver na ang mensahe"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Mensahe"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Ako"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Sumobra sa maximum na bilang ng mga attachment (%1$s). Tanging ang unang %2$s ang maidadagdag."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Di-wasto ang recipient."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Mula kay"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Mula kay:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Nag-expire na"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Nabigo ang pagpapadala."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Ulat sa pagpapadala"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Mga CP message"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Kopyahin ang text"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Mga CB message"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Lahat"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 mensahe"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 pag-uusap"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Para sa bawat mensaheng ipapadala mo, humiling ng ulat na nabasa na ito."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Para sa bawat mensaheng ipapadala mo, humiling ng ulat na naipadala na ito."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Radio button"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Button na I-on/I-off"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Napapalawak na listahan"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Awtomatikong kunin ang mga mensaheng MMS."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Hindi ma-preview ang file. Hindi sinusuportahang uri ng file."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Hindi makapagdagdag ng mga tatanggap. Hindi wasto ang mga numero."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Hindi makapagdagdag ng tatanggap. Hindi wasto ang numero."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Hindi makapagdagdag ng mga tatanggap. Hindi wasto ang mga numero."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Hindi makapagdagdag ng kalakip. Naabot na ang pinakamaraming bilang ng kalakip (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Hindi-wasto ang numerong ito."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Nakopya sa mobile na device ang napiling mga mensahe."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "Inilipat ang %d mensahe sa listahan ng mensahe."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Inalis ang numero sa listahan ng naka-block na mensahe."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Idinagdag sa listahan ng naka-block na mensahe ang numero."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Nakopya ang mensahe sa %s SIM card."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Lumampas sa maximum na bilang ng mga character."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Nalampasan na ang maximum na laki ng mensahe na (%s). Pinapalitan ang laki ng mga kalakip..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Nagpasok ng di wastong character"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Magdagdag ng mga recipient."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "Inilipat ang 1 mensahe sa listahan ng mensahe."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Mga teksto message"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Tunog"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Mga multimedia message"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Mga mensahe sa SIM card"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Mode ng pagpasok"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "I-awtomatikong kunin habang naka-roaming"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "I-awtomatikong kunin"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Ipadala"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Hindi"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Pumili ng mode sa pagpasok para sa pagsusulat ng mga mensahe."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Wala"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Pangasiwaan ang mga mensaheng nakaimbak sa iyong SIM card."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Tatanggalin ang iyong mensahe. Walang napiling mga tatanggap."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Hindi maipadala ang nakaiskedyul na mensaheng ito. Itakda sa ibang oras."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Hindi ma-play habang nasa tawag."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Hindi ma-attach ang file. Masyadong malaki ang file. Subukang magpadala sa pamamagitan ng Email, Bluetooth, Wi-Fi, atbp."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Para ipadala ang multimedia message na ito, kokonekta ang device sa ibang mobile network. Ididiskonekta nito ang iyong device mula sa iyong kasalukuyang mobile network."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Para i-download ang multimedia message na ito, kokonekta ang aparato sa isang magkaibang mobile network. Ididiskonekta nito ang iyong device mula sa iyong kasalukuyang mobile network."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Muling ipapadala ang mensahe ng ito."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d mensahe ang tatanggalin."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Ide-delete ang %d (na) pag-uusap."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Walang template sa listahan."
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Mga papasok na mensahe lang"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Isama ang orihinal na text sa papalabas na mensahe"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Mas maikli dapat sa %d (na) segundo ang tagal."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Na-delete na."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 mensahe ang tatanggalin."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "Ide-delete ang 1 pag-uusap."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Tingnan ang mga detalye"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Tingnan mga detalye ng contact"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Tingnan bilang slideshow"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Mga Video"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "I-update ang contact"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Text"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Kumuha ng litrato"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Mga Setting"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Maghanap"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "I-save ang mga attachment"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Ipadala muli"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Tumugon"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Alisin sa block list"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Mag-record ng video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Magrekord ng file na audio"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Maikling tugon"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Wala"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Mag-voice call"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Mga Larawan"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Alpabeto ng GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "I-export sa memory ng device."
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "I-edit"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "I-delete ang mensahe"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "I-delete ang pag-uusap"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "I-delete"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Default"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Lumikha ng contact"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Kopyahin sa SIM card"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Kopyahin sa device"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Kopyahin ang text"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopyahin"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Mag-back up"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Awtomatiko"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Mga file na audio"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Attachment"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Idagdag sa Mga Contact"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Idagdag sa block list"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Magdagdag ng mga tatanggap"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Paghahanap"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Walang mga resultang nakita"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Walang mga mabilis na tugon"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Walang na-block na parirala"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Walang mga mensahe sa SIM card"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Walang mga mensahe"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Walang mga naka-block na numero"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Pag-vibrate"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Hindi alam na numero"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Numero ng center ng text message"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Piliin lahat"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Mga alert"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "I-translate"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Mga teksto message"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Lumipat ng mobile network"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS center"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Mga Setting"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Pumili ng recipient"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d ang napili"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Mga mensahe sa SIM card"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Mga Mensahe"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Input mode"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Masyadong malaki ang file"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Hindi naipadala ang mensahe"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "I-discard ang mensahe"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "I-delete"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Gumawa"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Atensyon"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Magdagdag ng nilalaman"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Lumipat"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "I-save"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Muling ipadala"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Alisin"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Download"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Itapon"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Tanggalin"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Kanselahin"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Kanselahin"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Mga Contact"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Pumili ka ng sound & shot na file. Hindi sinusuportahan ang data ng tunog para sa MMS kaya ang litrato lang ang maa-attach."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Oo"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Naghihintay maipadala..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Hindi mapadala ang mensaheng ito. Ilagay ang SIM card mo at subukang muli."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Uri:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Upang gumamit ng mga pinaghihigpitang uri ng media, palitan ang iyong mga setting ng MMS creation mode."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Oras nang ipinadala:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Oras nang natanggap:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Tick box"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Katayuan:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Ipinadala"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Ipinapadala..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Hindi nagawang ipadala"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "seg"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Awtomatikong kunin ang mga mensahe habang naka-roaming."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Awtomatikong kunin ang mga mensahe."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Ulat sa pagbabasa: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Ibang tao"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Mensahe"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Memo"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Hindi nagawa"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Magpasok ng text"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Draft"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Ulat sa paghahatid: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB message"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalendaryo"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Pagkatapos mong magpadala o makatanggap ng mga mensahe, ipapakita ang mga iyon dito."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Pagkatapos mong lumikha ng mga mabilis na sagot, ipapakita ang mga iyon dito."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Pagkatapos mong kopyahin ang mensahe sa SIM card, ipapakita ang mga iyon dito."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Pagkatapos mong magdagdag ng mga Parirala, ipapakita ang mga iyon dito."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Pagkatapos mong magdagdag ng mga numero sa listahan ng naka-block na mensahe, ipapakita ang mga iyon dito."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "TANGGALIN"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Naglo-load..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Mga Notification"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Ako"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Ipadala"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Send"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "IPADALA"
+
diff --git a/main/po/tr_TR.po b/main/po/tr_TR.po
new file mode 100644 (file)
index 0000000..b801695
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Ev"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Veri dolaşımı devre dışı. Veri dolaşımını etkinleştirin ve tekrar deneyin."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Yeni mesaj"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "İPTAL"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "BİTTİ"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Bilinmeyen"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Cep Telefonu"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobil veri devre dışı. Mobil veriyi etkinleştirin ve tekrar deneyin."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "GÖNDER"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Ortam türü desteklenmiyor."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Uçuş modundayken, mesaj gönderilemiyor. Uçuş modunu devre dışı bırakın ve tekrar deneyin."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "İletilemedi.\nDosya iletilmeye karşı kilitli"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Cihazınızın hafızasında yeterli alan yok. Ayarlar > Güç ve hafıza > Hafıza bölümüne gidin, ardından bazı dosyaları silip tekrar deneyin."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Metin üstte"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Metin altta"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Yerleşim seç"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "İçerik eklenemiyor."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Mesaj %s kişisine gönderilmek üzere programlandı. Şimdi gönderilsin mi?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Maksimum mesaj boyutuna ulaşıldı."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Düşük pil."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Süre en az %d saniye olmalı."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Uçuş modu kapatılıyor..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM karta kopyalandı."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "İptal edildi."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Dğr kişi blglrn kllnın"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Gönder"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Görüntü"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-posta"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Değiştir"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Göster"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Kaldır"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Çal"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Alıcı"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Mesajı iptal et"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Alıcı listesi"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Önizleme"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Slayt süresi %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Öğeler slayt gösterisine eklenirken bekleyin."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Mesaj gönderilemiyor."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Zil sesi seç"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Okundu raporu gönderilecek."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Talep edilmedi"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Maksimum alıcı sayısına (%d) ulaşıldı."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Konu girin."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Alıcı çoğaltıldı."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "İlet"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Kaydetme başarısız."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Konum bulunamadı."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Silinemiyor."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Kopyalanamıyor."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Bazı karakterler kaybolabilir.\nDevam etmek istiyor musunuz?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM takılı değil."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Kaydetme başarısız."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Dosyalarım'a kaydedildi."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Mesaj alınamadı"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Sınırlı içerik tipi. Yine de eklensin mi?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Geri alınıyor..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Reddedildi."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Okundu raporu"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Numara yok"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Eklenti yok"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Yeni mesaj"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Mesaj SIM karttan kopyalandı."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Maksimum alıcı sayısı %d. Bazı alıcılar kaybolabilir."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Maksimum eklenti sayısı (%s) aşıldı."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Maksimum karakter sayısına ulaşıldı."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Devam ediyor..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Başlatılıyor..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Dosyayı değiştirmek istemiyorsanız, yeniden adlandırın."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Bu mesajda gösterilmemiş ekli dosya var."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Bu mesajda gösterilmemiş bazı ekli dosyalar var."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Dosya adı zaten kullanılıyor."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Siliniyor..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Panoya kopyalandı."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Metin mesajına dönüştürülüyor..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Multimedya mesajına dönüştürülüyor..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s engellensin mi?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Çevrimiçine(%s) geçmek üzeresiniz. Devam edilsin mi?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Metin mesajı"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Konu:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "E-posta ile gönder"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Gönderen"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Seç"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Eki kaydet"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Kaydet"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Kaldır"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Kur"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "İlet"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Mesajı düzenle"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Sil?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Mesajları sil"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Mesajları seç"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Tümünü kaydet"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Mesaj ayrıntıları"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Süresi dolar: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Gelişmiş arama"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Tüm ekleri kaydet"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Bilinmeyen"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Alıcı:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Metin mesajları"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM hafızası dolu. Bazı öğeleri silin."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Ayarlar"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Gönderildi:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Talep edildi."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Alıcılar"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Alındı:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Alındı."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Okundu raporu"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "İletim mesajları"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d mesaj"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d görüşme"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Diğer"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Konu yok"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "İsim yok"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Multimedya mesajı bildirimi"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimedya mesajı"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Oku"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Mesaj reddedildi."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Mesaj boyutu"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Mesaj seçenekleri"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Mesaj iletildi"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Mesaj"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Ben"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Maksimum ek sayısı (%1$s) aşıldı. Sadece ilk %2$s eklenecek."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Alıcı geçersiz."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Kimden"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Kimden:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Sona erdi"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Gönderme başarısız."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "İletim raporu"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP mesajları"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Metni kopyala"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB mesajları"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Hepsi"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 mesaj"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 görüşme"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Gönderdiğiniz her mesaj için bir okundu raporu isteyin"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Gönderdiğiniz her mesaj için bir teslim raporu isteyin"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Radyo tuşu"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Açma/kapama düğmesi"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Genişletilebilen liste"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS mesajlarını otomatik olarak al"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Dosya önizlenemiyor. Dosya türü desteklenmiyor."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Bazı alıcılar eklenemiyor. Numaralar geçerli değil."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Alıcı eklenemiyor. Numara geçerli değil."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Alıcılar eklenemiyor. Numaralar geçerli değil."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Ek eklenemiyor. Maksimum ek sayısına (%d) ulaşıldı."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Bu numara geçerli değil."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Seçili mesajlar mobil cihaza kopyalandı."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d mesaj, mesaj listesine taşındı."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Numara, mesaj engelleme listesinden kaldırıldı."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Numara, mesaj engelleme listesine eklendi."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Mesaj %s SIM karta kopyalandı."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Maksimum karakter sayısı aşıldı."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Maksimum mesaj boyutu (%s) aşıldı. Ekler yeniden boyutlandırılıyor..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Geçersiz karakter girildi"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Alıcı ekle."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 mesaj, mesaj listesine taşındı."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Metin mesajları"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Ses"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimedya mesajları"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM karttaki mesajlar"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Giriş modu"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Dolaşımdayken otomatk olarak al"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Otomatik olarak al"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Şmdi gndr"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Hayır"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Mesaj yazmak için bir giriş modu seçin."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Hiçbiri"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "SIM kartınızda kayıtlı mesajları yönetin."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Mesajınız silinecek. Hiçbir alıcı seçilmedi."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Zamanlanan mesaj gönderilemiyor. Başka zaman ayarlayın."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Görüşme sırasında çalınamaz."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Dosya eklenemedi. Dosya boyutu çok fazla. E-posta, Bluetooth, Wi-Fi, vs. ile göndermeyi deneyin"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Cihaz, bu multimedya mesajını göndermek için farklı bir mobil ağa bağlanacak. Bu işlem, cihazınızın geçerli mobil ağ bağlantısını keser."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Cihaz, bu multimedya mesajını indirmek için farklı bir mobil ağa bağlanacak. Bu işlem, cihazınızın geçerli mobil ağ bağlantısını keser."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Bu mesaj tekrar gönderilecek."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d mesaj silinecek."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d konuşma silinecek."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Listede şablon yok"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Sadece gelen mesajlar"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Giden mesaja orijinal metini dahil et"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Süre %d saniyeden kısa olmalıdır."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Silindi."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 mesaj silinecek."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 görüşme silinecek."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Ayrıntıları gör"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Kişi ayrıntılarını görüntüle"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Slayt gösterisi olrk görüntüle"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videolar"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Kişiyi güncelle"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Çoklu dil"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Metin"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Resim çek"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Ayarlar"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Ara"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Ekleri kaydet"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Tekrar gönder"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Cevapla"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Engelleme listesinden kaldır"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Video kaydet"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Ses dosyası kaydet"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Hızlı yanıt"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Hiçbiri"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Sesli arama yap"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Resimler"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM alfabesi"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Cihaz hafızasından aktar"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Düzenle"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Mesajı sil"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Görüşmeyi sil"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Varsayılan"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Kişi oluştur"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM karta kopyala"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Cihaza kopyala"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Metni kopyala"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Kopyala"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Yedekle"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Otomatik"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Ses dosyaları"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Ek"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Kişilere ekle"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Engelleme listesine ekle"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Alıcı ekle"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Ara"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Sonuç bulunamadı"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Hızlı yanıt yok"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Engellenen ifade yok"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM kartta mesaj yok"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Mesaj yok"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Engellenen numara yok"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Titreşim"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Bilinmeyen numara"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Metin mesajı merkezi numarası"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Tümünü seç"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Uyarılar"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Çevir"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Metin mesajları"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Mobil ağı değiştir"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS merkezi"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Ayarlar"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Alıcı seç"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seçildi"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM karttaki mesajlar"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Mesajlar"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Giriş modu"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Dosya boyutu çok büyük"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Mesaj gönderilemedi"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Mesajı sil"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Sil"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Oluştur"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Dikkat"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "İçerik ekle"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Değiştir"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Kaydet"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Tekrar gönder"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Kaldır"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "Tamam"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "İndir"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Sil"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Sil"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "İptal"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "İptal"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kişiler"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Bir sesli fotoğraf dosyası seçtiniz. Ses verileri MMS için desteklenmiyor, bu nedenle sadece fotoğraf eklenecek."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Evet"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Göndermek için bekleniyor..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Bu mesaj gönderilemiyor. SIM kartınızı takın ve tekrar deneyin."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tip:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Kısıtlı ortam türlerini kullanmak için MMS oluşturma modu ayarınızı değiştirin."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Gönderilen saat:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Alınan saat:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "İşaret kutusu"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Durum:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Gönderildi"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Gndrlyr..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Gönderme başarısız"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "sn"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Dolaşımdayken mesajları otomatik olarak al."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Mesajları otomatik olarak al."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Okundu raporu: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Diğer kişi"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Mesaj"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Not"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Başarısız"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Metin girin"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Taslak"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Teslim raporu: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB mesajı"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Takvim"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Gönderdiğiniz veya aldığınız mesajlar burada gösterilir."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Oluşturduğunuz hızlı yanıtlar burada gösterilir."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "SIM karta kopyaladığınız mesajlar burada gösterilir."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Eklediğiniz ifadeler burada gösterilecektir."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Mesaj engelleme listesine eklediğiniz numaralar burada gösterilecektir."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "SİL"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Yükleniyor..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Bildirimler"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Ben"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Gndr"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Göndr"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "GNDR"
+
diff --git a/main/po/uk.po b/main/po/uk.po
new file mode 100644 (file)
index 0000000..6e365d2
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Дім"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Передачу даних у роумінгу вимкнено. Ввімкніть передачу даних у роумінгу та спробуйте ще раз."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Нове повідомлення"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "СКАСУВАТИ"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "ГОТОВО"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Невідомо"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Мобільний"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Використання мобільних даних вимкнено. Увімкніть використання мобільних даних і спробуйте ще раз."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "НАДІСЛАТИ"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Формат не підтримується."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Неможливо надсилати повідомлення в режимі без зв’язку. Вимкніть режим без зв'язку та спробуйте ще раз."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Неможливо переслати.\nЗаблоковано пересилання файлу."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Недостатньо вільного місця в місці збереження на пристрої. Перейдіть до меню «Налаштування» > «Живлення та місце збереження» > «Місце збереження» та видаліть деякі файли, а потім спробуйте ще раз."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Текст вгорі"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Текст внизу"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Вибір макета"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Неможливо додати вміст."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Надсилання повідомлення заплановано на %s. Надіслати зараз?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Досягнуто максимального розміру повідомлення."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Батарея розряджена."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Тривалість має становити принаймні %d сек."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Вимкнення режиму без зв’язку..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Скопійовано на SIM-картку."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Скасовано."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Вик. інші конт. дані"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Надіслати через"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Зображення"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Email"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Замінити"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Переглянути"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Видалити"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Відтворити"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Кому"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Скасувати надсилання повідомлення"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Список одержувачів"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Перегляд"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Тривалість слайда %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Зачекайте, доки об’єкти буде додано до слайд-шоу."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Неможливо надіслати повідомлення."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Вибір звука дзвінка"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Буде надіслано звіт про прочитання."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Немає запитів"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Досягнуто максимальної кількості одержувачів (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Введіть тему."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Повторення одержувача."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Перес."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Неможливо зберегти."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Неможливо знайти розташування."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Неможливо видалити."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Неможливо скопіювати."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Деякі символи може бути втрачено.\nПродовжити?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM-картку не вставлено."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Збій збереження."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Збережено в моїх файлах."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Збій отримання повідомлення"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Заборонений тип вмісту. Все одно вкласти?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Відновлення..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Відхилено."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Звіт про прочитання"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Немає номера"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Без вкладень"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Нових повідомлень"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Повідомлення скопійовано із SIM-картки."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Максимальна кількість одержувачів складає %d. Деякі одержувачі можуть бути втрачені."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Перевищено максимальну кількість вкладень: %s."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Досягнуто максимальної кількості символів."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Триває відправка..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Ініціалізація..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Якщо не потрібно замінити файл, перейменуйте його."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Це повідомлення включає приєднаний файл, що не відображений."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Це повідомлення включає приєднані файли, що не відображені."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Файл з такою назвою вже існує."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Видалення..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Скопійовано в буфер обміну."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Перетворення на SMS-повідомлення..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Перетворення на MMS-повідомлення..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Заблокувати абонента %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Підключення до інтернету (%s) Продовжити?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "SMS"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Тема:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Відправнику через Email"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Відправник"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Вибрати"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Зберегти вкладення"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Зберегти"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Видалити"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Установити"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Переслати"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Редагувати повідомлення"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Видалити?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Видалити повідомлення"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Виберіть повідомлення"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Зберегти все"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Деталі повідомлення"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Дійсне до: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Додатковий пошук"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Збер. всі вкладення"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Невідомо"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Кому:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "SMS-повідомлення"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Пам’ять SIM-картки заповнено. Видаліть деякі об’єкти."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Налаштування"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Надіслано:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Запитано."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Одержувачі"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Отримано:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Отримано."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Звіт про прочитання"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Push-повідомлення"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d повід."
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d розмов"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Інша"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Немає теми"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Немає імені"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Сповіщення про MMS-повідомлення"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "MMS-повідомлення"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "КБ"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Прочитане"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Повідомлення відхилено."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Розмір повідомлення"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Параметри повідомлення"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Повідомлення доставлено"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Повідом."
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Я"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Перевищено максимальну кількість вкладень: %1$s. Буде додано лише перші %2$s."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Хибний одержувач."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Від"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Від:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Термін дії вже минув"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Збій надсилання."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Звіт про доставку"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP-повідомлення"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Копіювати текст"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB-повідомлення"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Всі"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 повідомлення"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 розмова"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Запитувати звіт про прочитання для кожного надісланого повідомлення."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Запитувати звіт про доставку для кожного надісланого повідомлення."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Перемикач"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Кнопка ввімкнення/вимкнення"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Розширений список"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Автоматично отримувати MMS-повідомлення."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Неможливо здійснити попередній перегляд файла. Непідтримуваний тип файла."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Неможливо додати деяких одержувачів. Номери недійсні."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Неможливо додати одержувача. Номер недійсний."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Неможливо додати одержувачів. Номери недійсні."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Неможливо додати вкладення. Досягнуто максимальної кількості вкладень (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Цей номер недійсний."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Вибрані повідомлення скопійовано на мобільний пристрій."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d повідомлень переміщено до списку повідомлень."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Номер видалено зі списку заблокованих повідомлень."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Номер додано до списку заблокованих повідомлень."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Повідомлення скопійовано на SIM-карту %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Перевищено максимальну кількість символів."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Перевищено максимальний розмір повідомлення (%s). Змінення розміру вкладень..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Введено хибний символ"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Додайте одержувачів."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 повідомлення переміщено до списку повідомлень."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "SMS-повідомлення"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Звук"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "MMS-повідомлення"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Повідомлення на SIM-карті"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Режим введення"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Автоотримання в роумінгу"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Автоотримання"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Надіслати зараз"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Ні"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Виберіть режим введення для створення повідомлень."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Немає"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Керування повідомленнями, збереженими на SIM-карті."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Повідомлення буде скасовано. Одержувачів не вибрано."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Неможливо надіслати заплановане повідомлення. Встановіть інший час."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Неможливо відтворити під час виклику."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Неможливо вкласти файл. Завеликий файл. Спробуйте передати за допомогою електронної пошти, Bluetooth, Wi-Fi тощо."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Щоб надіслати це MMS-повідомлення, пристрій буде підключено до іншої мобільної мережі. Це призведе до відключення пристрою від поточної мобільної мережі."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Для завантаження цього MMS-повідомлення пристрій буде підключено до іншої мобільної мережі. Це призведе до відключення пристрою від поточної мобільної мережі."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Це повідомлення буде надіслано повторно."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "Буде видалено повідомлень: %d"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "Буде видалено стільки розмов: %d."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "У списку немає шаблонів"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Лише вхідні повідомлення"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Додати оригінальний текст до вихідного повідомлення"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Тривалість має бути меншою за %d сек."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Видалено."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "Буде видалено повідомлень: 1"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 контакт буде видалено."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Переглянути відомості"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Переглянути контактні дані"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Переглянути в режимі слайд-шоу"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Відео"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Оновити контакт"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Юнікод"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Текст"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Зробити знімок"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Налаштування"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Пошук"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Зберегти вкладення"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Надіслати повторно"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Відповісти"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Видалити зі спис. заблокованих"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Записати відео"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Записати\nаудіофайл"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Швидка відповідь"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Немає"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Здійснити голосовий виклик"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Зображення"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Алфавіт GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Експортувати в пам’ять пристрою"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Редагувати"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Видалити повідомлення"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Видалити розмову"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Стандартний"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Створити контакт"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Копіювати на SIM-карту"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Копіювати на пристрій"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Копіювати текст"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Копіювати"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Резервне копіювання"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Автоматично"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Аудіофайли"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Вкладення"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Додати до контактів"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Додати до списку заблокованих"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Додати одержувачів"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Пошук"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Результів не знайдено"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Немає швидких відповідей"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Немає заблокованих фраз"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Немає повідомлень на SIM-карті"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Немає повідомлень"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Немає заблокованих номерів"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Вібрація"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Невідомий номер"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Номер SMS-центру"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Вибрати всі"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Сповіщення"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Переклад"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "SMS-повідомлення"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Змінення мобільної мережі"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS-центр"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Налаштування"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Вибір одержувача"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Вибрано: %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Повідомлення на SIM-карті"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Повідомлення"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Режим введення"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Завеликий файл"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Не вдалося надіслати повідомл"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Скасування повідомлення"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Створення"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Увага"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Додавання вмісту"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Переключити"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Зберегти"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Надіс.повторно"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Видалити"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ОК"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Завантаж."
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Відхилити"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Видалити"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Скасувати"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Скасувати"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Контакти"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Вибрано файл зі звуком. Можна вкласти лише фотографію, оскільки дані звуку не підтримуються для MMS-повідомлень"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Так"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Очікування надсилання..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Неможливо надіслати це повідомлення. Вставте SIM-картку та спробуйте ще раз"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Тип:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Змініть установки режиму створення MMS-повідомлення, щоб використовувати обмежені типи медіафайлів."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Час надсилання:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Час отримання:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Встановіть прапорець"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Стан:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Надіслано"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Надсил..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Збій надсилання"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "сек."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Автоматичне отримання повідомлень у роумінгу."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Автоматичне отримання повідомлень."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Звіт про прочитання: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Інший користувач"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Повідом."
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Нагаду-\nвання"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Збій"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Введіть текст"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Чернетка"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Звіт про доставку: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB-повідомлення"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Календар"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Після надсилання або отримання повідомлень їх буде відображено тут."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Після створення швидких відповідей їх буде відображено тут."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Після копіювання повідомлень на SIM-карту їх буде відображено тут."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Після додавання фраз їх буде відображено тут."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Після додавання номерів до списку заблокованих викликів їх буде відображено тут."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "ВИДАЛИТИ"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Завантаження..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Сповіщення"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Я"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Над."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Над."
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "НАД."
+
diff --git a/main/po/ur.po b/main/po/ur.po
new file mode 100644 (file)
index 0000000..f30ed1d
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "ہوم"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "ڈیٹا کا گشت نااہل بنا دیا گیا ہے۔ ڈیٹا کا گشت اہل بنائیں اور دوبارہ کوشش کریں۔"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "نیا پیغام"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "منسوخ کریں"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "مکمل ہوگیا"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "نامعلوم"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "موبائل"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "موبائل ڈیٹا نا اہل بنا دیا گیا ہے۔ موبائل ڈیٹا اہل بنائیں اور دوبارہ کوشش کریں۔"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "بھیجیں"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "میڈیا کی قسم سپورٹڈ نہیں۔"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "فلائٹ موڈ کے دوران پیغامات بھیجنے سے قاصر۔ فلائٹ موڈ نا اہل بنائیں اور دوبارہ کوشش کریں۔"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "فاروڈ نہیں کرسکا۔\n فایل فارورڈ لاک"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "آپ کے آلے کا ذخیرہ میں کافی جگہ نہیں ہے۔ سیٹنگز > پاور اور اسٹوریج > اسٹوریج پر جائیں، پھر کچھ فائلوں کو حذف کریں اور دوبارہ کوشش کریں۔"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "ٹیکسٹ اوپر"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "سب سے نیچے درج متن"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "لے آؤٹ منتخب کریں"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "اجزا کا اضافہ کرنے سے قاصر۔"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "پیغام %s کو بھیجنے کے لئے شیڈول کیا گيا ہے۔ اب بھیجیں؟"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "پیغام کا انتہائی سائز آن پہنچا۔"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "بیٹری لو۔"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "دورانیہ کم سے کم %d سیکنڈ ہونا ضروری ہے"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "فلائٹ موڈ نا اہل بنا رہا ہے..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "سم کارڈ پر نقل ہوگیا۔"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "منسوخ ہوا۔"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "رابطہ معلومات استعمال"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "کے زریعے بھیجیں"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "امیج"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "ای میل"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "تبدیل"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "نظارہ"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "ہٹانا"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "چلائیں"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "کسے"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "پیغام منسوخ کریں"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "وصول کرنے والو کی فہرست"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "نظارہ"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "سلائڈ %d/%d کے لئے دورانیہ"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "جب تک اشیا سلائڈ شو میں اضافہ کی جائیں انتظار کریں"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "پیغام بھیجنے سے قاصر۔"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "گھنٹی ٹون منتخب کریں"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "پڑہے گئے کی رپورٹ بھیجی جائے گی"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "درخواست نہیں کی"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "وصول کنندگان کی انتہائی تعداد (%d) آن پہنچی۔"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "مضمون درج کریں"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "ڈپلیکیٹ کردہ وصول کنندہ۔"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "آگے"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "محفوظ نہیں کر سکتا۔"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "محل وقوع ڈھونڈنے سے قاصر۔"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "مٹا نہیں سکا۔"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "نقل کرنے سے قاصر۔"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "ممکن ہے کہ کچھ حروف ضائع ہوجائيں۔\nجاری؟"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM درج نہیں کی گئی۔"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "مہفوظ کرنا فیل۔"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "میری فائلز میں محفوظ ہوگیا۔"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "پیغام بازیافت کرنا ناکام"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "بندش زدہ مشمول قسم۔ بہرحال منسلک کریں؟"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "دوباہ سٹور کر رہا ہے۔۔۔"
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "مسترد ہوا۔"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "پڑھنے کی رپورٹ"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "نمبر نہیں"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "اٹیچمنٹ نہیں"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "نئے پیغامات"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "پیغام سم کارڈ سے نقل ہوگیا۔"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "وصول کنندگان کی انتہائی تعداد %d ہے۔ کچھ وصول کنندہ ضائع ہوسکتے ہیں۔"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "منسلکات کی انتہائی تعداد (%s) سے زیادہ ہوگئی ہے۔"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "کریکٹر کی حد ہو گئی۔"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "پراگرس جاری رہے۔۔۔۔"
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "فہرست شروع ہو رہی ہے"
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "اگر آپ فائل تبدیل کرنا نہیں چاہتے، تو اس کو نیا نام دیں"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "اس پیغام میں اٹیج فائیلیں ہیں جو دکھائی نہیں گئیں"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "اس پیغام میں اٹیج فائیلیں ہیں جو دکھائی نہیں گئیں"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "فائل کا نام پہلے سے موجود ہے"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "مٹ رہا ہے..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "کلپ بورڈ پر نقل ہوگیا۔"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "متن پیغام میں تبدیل کررہا ہے..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "ملٹی میڈیا پیغام میں تبدیل کررہا ہے..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s بلاک کریں؟"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "آپ آن لائن جانے والے ہیں (%s) جاری؟"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "ٹیکسٹ پیغام"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "سبجکٹ:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "مرسل بذریعہ ای میل"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "مرسل"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "انتخاب"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "منسلکہ محفوظ کریں"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "محفوظ"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "ہٹانا"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "انسٹال کریں"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "آگے بھیجیں"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "پیغام تبدیل کریں"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "مٹانا؟"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "پیغامات حذف کریں"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "پیغام منتخب کریں"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "تمام محفوظ"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "تفصیلات پیغام"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "تاریخ اختتام: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "اعلی تلاش"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "منسلکات محفوظ کریں"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "نامعلوم"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "تک:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "ٹیکسٹ پیغامات"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM میموری بھر چکی ہے۔ کچھ اشیا حذف کریں۔"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "سیٹنگز"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "بھیجا گیا:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "درخواست کي گئي۔"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "وصول کرنے والے"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "وصول:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "موصولہ۔"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "پڑھنے کی رپورٹ"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "پش پیغام"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d پیغامات"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d تبادلہ خیالات"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "مزید"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "مضمون کوئی نہیں"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "نام نہیں"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "ملٹی میڈیا پیغام اعلامیہ"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "ملٹی میڈیا پیغام"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "کیلوبائٹ"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "پڑھنا"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "پیغام منع۔"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "ایم ایم ایس"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "پیغام کا سائیز"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "پیغام کے اختیار"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "پیغام ڈیلیورڈ ہوگیا تھا"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "پیغام"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "میں"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "منسلکات کی انتہائی تعداد (%1$s) بڑھ گئی ہے۔ صرف پہلی %2$s کا اضافہ کیا جائے گا۔"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "غیر مجاز وصول کنندہ۔"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "سے"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "سے:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "معیاد ختم"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "بھیجنے میں ناکامی۔"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "ڈیلیوری رپورٹ"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP پیغامات"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "ٹیکسٹ کاپی"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB پیغامات"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "تمام"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 پیغام"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 تبادلہ خیالات"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ہر پیغام کے لئے جو آپ بھیجتے ہیں ایک پڑھنے کی رپورٹ کی درخواست کریں"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "ہر پیغام کے لئے جو آپ بھیجتے ہیں ایک تحویل کی رپورٹ کی درخواست کریں"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "ریڈیو بٹن"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "آن/آف بٹن"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "پھیلانے کے قابل فہرست"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS پیغامات خودکار طور پر بازگیر کریں"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "فائل کا پیش منظر دیکھنے سے قاصر۔ غیر تائید کردہ فائل قسم۔"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "کچھ وصول کنندگان کو شامل کرنے سے قاصر۔ نمبرز مجاز نہیں ہیں۔"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "وصول کنندہ شامل کرنے سے قاصر۔ نمبر مجاز نہیں ہے۔"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "وصول کنندگان شامل کرنے سے قاصر۔ نمبرز مجاز نہیں ہیں۔"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "منسلکہ شامل کرنے سے قاصر۔ منسلکات کی انتہائی تعداد (%d) پہنچ گئی ہے۔"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "وصول کنندہ نمبر مجاز نہیں ہے۔"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "منتخب پیغامات موبائل آلے پر کاپی کردی گئی۔"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d پیغامات کو پیغام کی فہرست میں منتقل کردیا گیا۔"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "نمبر کو پیغام بلاک فہرست سے ہٹا دیا گیا۔"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "نمبر کو پیغام بلاک فہرست میں شامل کیا گیا۔"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "پیغام s% سم کارڈ میں نقل ہوگیا۔"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "حروف کی زیادہ سے زیادہ تعداد سے بڑھگیا۔"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "پیغام کی زیادہ سے زیادہ جسامت (%s) سے بڑھ گئی ہے۔ منسلکات کا سائز تبدیل کرنا..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "غیر مجاز حرف داخل کیا گیا"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "وصول کنندگان شامل کریں۔"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 پیغام کو پیغام کی فہرست میں منتقل کردیا گیا۔"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "متنی پیغامات"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "آواز"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "ملٹی میڈیا پیغامات"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM کارڈ پر پیغامات"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "ان پٹ موڈ"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "گشت کے دوران خود کار طور پر بازیافت کریں"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "خودکار وصول کریں"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "اب بھیجیں"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "نہیں"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "پیغامات کمپوز کرنے کے لیے ان پٹ موڈ منتخب کریں۔"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "کوئی نہیں"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "اپنے SIM کارڈ پر ذخیرہ شدہ پیغامات کا بندوبست کریں۔"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "آپ کے پیغام کو مسترد کر دیا جائے گا۔ کوئی وصول کنندگان منتخب نہیں کئے گئے۔"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "شیڈول کردہ پیغام بھیجنے سے قاصر۔ دوسرا وقت سیٹ کریں۔"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "کال کے دوران چلانے سے قاصر۔"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "فائل منسلک کرنے سے قاصر۔ فائل کا سائز بہت بڑا ہے۔ براستہ ای میل، بلیو ٹوتھ، Wi-Fi، وغیرہ بھیجنے کی کوشش کریں"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "اس ملٹی میڈیا پیغام کو بھیجنے کے لیے، آلہ مختلف موبائل نیٹ ورک سے جڑے گا۔ یہ آپ کے آلہ کو آپ کے موجودہ موبائل نیٹ ورک سے منقطع کر دیگا۔"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "اس ملٹی میڈیا پیغام کو ڈاؤن لوڈ کرنے کےلیے، آلہ ایک مختلف موبائل نیٹ ورک سے جڑے گا۔ یہ آپ کے آلے کو آپ کے موجودہ موبائل نیٹ ورک سے منقطع کردے گا۔"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "یہ پیغام دوبارہ بھیجا جائے گا۔"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d پیغامات حذف ہوجائیں گے"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d مکالمات مٹا دئے جائیں گے۔"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "فہرست میں کوئی سانچے نہیں ہیں"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "صرف موصولہ پیغامات"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "خارجی پیغام میں حقیقی متن شامل کریں"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "دورانیہ %d سیکنڈ سے کمتر ہونا چاہئے"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "مٹ گیا۔"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 پیغام حذف کردیا جائے گا"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 گفتگو حذف کردیا جائے گا۔"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "تفصیلات دیکھیں"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "رابطہ کی تفصیلات دیکھیں"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "بطور سلائیڈ شو دیکھیں"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "ویڈیوز"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "رابطہ کو تازہ کریں"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "یونی کوڈ"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "ٹیکسٹ"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "تصویر لیں"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "سیٹنگز"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "تلاش کریں"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "منسلکات محفوظ کریں"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "پھر سے بھیجیں"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "جواب"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "بلاک فہرست سے ہٹائیں"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "ویڈیو ریکارڈ کریں"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "آڈیو فائل ریکارڈ کریں"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "فوری رد عمل"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "نہیں"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "صوتی کال کریں"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "تصویر"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM حروف تہجی"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "آلہ کی میموری پر برآمد کریں"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "تبدیلی"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "پیغام حذف کریں"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "گفتگو حذف کریں"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "مٹانا"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "ڈیفالٹ"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "رابطہ بنائیں"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM کارڈ میں نقل کریں"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "آلہ پر نقل بنائیں"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "ٹیکسٹ کاپی"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "نقل کریں"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "بیک اپ کریں"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "آٹومیٹک"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "آڈیو فائلیں"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "منسلکہ"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "رابطہ افراد پر اضافہ کریں"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "بلاک فہرست میں شامل کریں"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "وصول کنندگان شامل کریں"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "تلاش کریں"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "کوئی نتائج نہیں ملے"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "کوئی فوری جوابات نہیں"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "کوئی جملے بلاک نہیں ہیں"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM کارڈ پر کوئی پیغامات نہیں ہیں"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "کوئی پیغامات نہیں"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "کوئی مسدود نمبرز نہیں ہیں"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "تھرتھراہٹ"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "نامعلوم نمبر"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "متنی پیغام سنٹر نمبر"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "سب منتخب کریں"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "انتباہات"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "ترجمہ کریں"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "متنی پیغامات"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "موبائل نیٹ ورک تبدیل کریں"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS سنٹر"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "سیٹنگز"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "وصول کنندہ منتخب"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d منتخب"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM کارڈ پر پیغامات"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "پیغامات"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "ان پٹ موڈ"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "فائل کی جسامت بہتر بڑی ہے"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "پیغام بھیجنے سے قاصر"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "پیغام کو مسترد کریں"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "حذف کریں"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "تخلیق کریں"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "توجہ"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "مشمول شامل کریں"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "سوئچ"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "محفوظ کریں"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "پھر سے بھیجیں"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "ہٹائیں"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "ٹھیک ہے"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "ڈاؤن لوڈ"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "مسترد کریں"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "حذف کریں"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "منسوخ"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "منسوخ کریں"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "رابطے"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "آپ نے ایک آواز اور شاٹ فائل منتخب کی ہے۔ MMS کے لئے آواز کے کوائف کی سہولت نہیں ہے اس لئے صرف تصویر منسلک کی جائے گی۔"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "ہاں"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "بھیجنے کا منتظر ہے..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "یہ پیغام بھیجنے سے قاصر۔ اپنا سم کارڈ داخل کریں اور دوبارہ کوشش کریں۔"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "ٹائیپ"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "ممنوعہ میڈیا قسمیں استعمال کرنے کے لئے، اپنی MMS تخلیق موڈ سیٹنگ تبدیل کریں"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "مرسلہ وقت:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "موصول وقت:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "نشان لگانے کا خاکہ"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "کیفیت:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "بھیج دیا"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "بھیجا جا رہا ہے..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "ارسال ناکام ہو گیا"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "سیکنڈ"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "گشت کے وقت پیغامات خود بخود بازیافت کریں۔"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "خود بخود پیغامات کی بازیافت کریں۔"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "رپورٹ پڑھیں: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "دوسرا شخص"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "پیغام"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "میمو"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "ناکام"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "متن داخل کریں"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "مسودہ"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "ڈیلیوری رپورٹ: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB پیغام"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "کیلنڈر"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "آپ کے پیغامات بھیجنے یا وصول کرنے کے بعد، لاگ آئٹمز یہاں دکھائی جائیں گی۔"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "آپ کے فوری جوابات تخلیق کرنے کے بعد، انہيں یہاں دکھایا جائے گا۔"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "پیغامات کو SIM کارڈ میں کاپی کرنے کے بعد، انہيں یہاں دکھایا جائے گا۔"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "آپ کے ذریعہ فقرے شامل کرنے کے بعد، ان کو یہاں دکھایا جائے گا۔"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "آپ کے پیغام بلاک فہرست میں نمبرز شامل کرنے کے بعد، انہيں یہاں دکھایا جائے گا۔"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "حذف کریں"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "لوڈنگ..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "اعلانات"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "میں"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "بھیجیں"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "بھیجیں"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "بھیجیں"
+
diff --git a/main/po/uz.po b/main/po/uz.po
new file mode 100644 (file)
index 0000000..643d388
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Asosiy"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Ma’lumot roumingi o‘chirilgan. Ma’lumot roumingini yoqing va qayta urinib ko‘ring."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Yangi xabar"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "BEKOR QILISH"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "BAJARILDI"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Noma’lum"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Mobil"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Mobil ma’lumot o‘chirilgan. Mobil ma’lumotni yoqing va qayta urinib ko‘ring."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "YUBORISH"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Qo‘llab-quvvatlanmaydigan media turi."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Parvoz rejimida xabarlar yuborib bo‘lmaydi. Parvoz rejimini o‘chiring va qayta urinib ko‘ring."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Boshqaga yo‘naltirib bo‘lmaydi.\nFayl boshqaga yo‘naltirishdan bloklangan."
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Qurilmangiz xotirasida yetarli bo‘sh joy mavjud emas. Parametrlar > Quvvat va xotira > Xotiraga o‘ting, so‘ngra ba’zi fayllarni yo‘q qiling va qayta urinib ko‘ring."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Matn yuqorida"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Matnni eng quyi qismga joylashtirish"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Dizayn tanlash"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Tarkib qo‘shib bo‘lmaydi."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Xabar %sga yuboriladigan qilib rejalashtirildi. Hozir yuborilsinmi?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Xabar o‘lchami maksimal miqdordan oshib ketdi."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Batareya quvvati kam."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Davomlilik kamida %d soniya bolishi lozim."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Parvoz rejimi o‘chirilmoqda..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "SIM-kartaga nusxa ko‘chirildi."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Bekor qilingan."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Boshqa kntk ma’l. foyd"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Quyidagi orqali yuborish"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Tasvir"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "E-pochta"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Almashtirish"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Ko‘rib chiqish"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Olib tashlash"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "O‘ynatmoq"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Kimga"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Xabarni bekor qilish"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Oluvchilar ro‘yxati"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Oldindan ko'r. chiq."
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Slayd davomiyligi: %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Elementlar slayd-shouga qo‘shilguniga qadar kutib turing."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Xabarni yuborib bo‘lmaydi."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Rington tanlash"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "O‘qilgan hisobot yuboriladi."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Talab qilinmaydi"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Qabul qiluvchilar soni ruxsat etilgan maksimal miqdorga (%d) yetdi."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Mavzu kiriting."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Takrorlanadigan qabul qiluvchi."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Bosh/yub"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Saqlab bo‘lmaydi."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Joylashuvni topib bo‘lmaydi."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Yo‘q qilib bo‘lmaydi."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Nusxa ko‘chirib bo‘lmaydi."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Ba’zi belgilar yo‘qotilishi mumkin. Davom ettirilsinmi?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM-karta kiritilmadi."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Saqlab bo‘lmadi."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Mening fayllarimda saqlangan."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "Xabarni qayta olish bajarilmadi"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Taqiqlangan tarkib turi. Baribir biriktirilsinmi?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Tiklanmoqda..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Rad etildi."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "O‘qilgan haqidagi hisobot"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Raqam yo‘q"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Biriktirmalar yo‘q"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Yangi xabarlar"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Xabar SIM-kartadan nusxa ko‘chirildi."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Qabul qiluvchilarning maksimal soni: %d. Ba’zi qabul qiluvchilar yo‘qotilishi mumkin."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Biriktirmalar soni maksimal miqdordan (%s) oshib ketdi."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Belgilar soni ruxsat etilgan maksimal miqdorga yetdi."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Bajarilmoqda..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Initsializatsiyalanmoqda..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Faylni almashtirishni istamasangiz, uning nomini o‘zgartiring."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Ushbu xabar ko‘rsatilmagan biriktimaga ega."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Ushbu xabarda ko‘rsatilmagan biriktirilgan fayllar mavjud."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Fayl nomi avvaldan mavjud."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "O'chirilmoqda…"
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Buferga nusxa olindi."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Matn xabariga o‘girish..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Multimedia xabariga o‘girish..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "%s bloklansinmi?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Internetga ulanish arafasidasiz(%s). Davom ettirilsinmi?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Matnli xabar"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Mavzu:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Elektron pochta orqali yuborish"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Yuboruvchi"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Tanlash"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Biriktirmani saqlash"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Saqlash"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Olib tashlash"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "O‘rnatish"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Boshqaga yo‘naltirish"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Xabarni tahrirlash"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "O'chirilsinmi?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Xabarlarni yo‘q qilish"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Xabarlarni tanlash"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Barchasini saqlash"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Xabar tafsilotlari"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Amal qilish muddati: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Kengaytirilgan qidiruv"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Bari biriktir. saqla"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Noma’lum"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Kimga:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Matnli xabarlar"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM-karta xotirasi to‘la. Ba’zi elementlarni o'chiring."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Parametrlar"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Yuborildi:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Talab qilindi."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Oluvchilar"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Olindi:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Qabul qilindi."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "O‘qilgan haqidagi hisobot"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Tanlash xabarlari"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d xabar"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d suhbat"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Boshqa"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Mavzu yo‘q"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Nom yo‘q"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Multimedia xabari eslatmasi"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Multimedia xabari"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "O‘qilganlar"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Xabar rad etildi."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Xabar o‘lchami"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Xabar opsiyalari"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Xabar yetkazildi"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Xabar"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Men"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Biriktirmalar soni ruxsat etilgan maksimal miqdordan (%1$s) oshib ketdi. Faqat birinchi %2$s qo‘shiladi."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Noto'g'ri qabul qilib oluvchi."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Quyidagidan"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Quyidagidan:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Amal qilish muddati tugadi"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Yuborib bo‘lmadi."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Yetkazilganlik haqidagi hisobot"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP messages"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Matndan nusxa olish"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "CB xabarlari"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Barchasi"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 xabar"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 suhbat"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Yuborgan har bir xabaringiz uchun o‘qilganlik haqidagi xabarnoma talab qilish."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Yuborgan har bir xabaringiz uchun yetib borganlik haqidagi xabarnoma talab qilish."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Radio tugma"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Yoqish/o‘chirish tugmasi"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Kengaytiriladigan ro‘yxat"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "MMS xabarlarini avtomatik ravishda olish."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Faylni dastlabki ko‘rib chiqib bo‘lmaydi. Qo‘llab-quvvatlanmaydigan fayl turi."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Ba’zi oluvchilarni qo‘shib bo‘lmaydi. Raqamlar noto‘g‘ri."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Oluvchini qo‘shib bo‘lmaydi. Raqam noto‘g‘ri."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Oluvchilarni qo‘shib bo‘lmaydi. Raqamlar noto‘g‘ri."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Biriktirmani qo‘shib bo‘lmaydi. Biriktirmalar soni maksimal miqdorga (%d) yetdi."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Bu raqam noto‘g‘ri."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Tanlangan xabarlardan mobil qurilmaga nusxa ko‘chirildi."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d ta xabar xabarlar ro‘yxatiga ko‘chirildi."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Raqam bloklangan xabarlar ro‘yxatiga olib tashlandi."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Raqam bloklangan xabarlar ro‘yxatiga qo‘shildi."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Xabardan %s SIM-kartaga nusxa olindi."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Belgilar soni maksimal miqdordan oshib ketdi."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Fayl o‘lchami maksimal miqdordan (%s) oshib ketdi. Biriktirmalar hajmi o‘zgartirilmoqda..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Mumkin bo‘lmagan belgi kiritildi"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Oluvchilarni qo‘shing."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 ta xabar xabarlar ro‘yxatiga ko‘chirildi."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Matnli xabarlar"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Ovoz"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Multimedia xabarlari"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM-kartadagi xabarlar"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Kiritish rejimi"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Rouming vaqtida avtomatik olish"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Avtomatik olish"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Hozir/yub"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Yo‘q"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Xabarlar yaratish uchun kiritish rejimini tanlang."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Yo‘q"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "SIM-kartangizda saqlangan xabarlarni boshqaring."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Xabaringiz tashlanadi. Oluvchilar tanlanmagan."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Rejadagi xabarni yuborib bo‘lmaydi. Boshqa vaqt o‘rnating."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Qo‘ng‘iroq mobaynida o‘ynatib bo‘lmaydi."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Faylni biriktirib bo‘lmaydi. Fayl o‘lchami juda katta. E-pochta, Bluetooth, Wi-Fi va boshq. orqali yuborib ko‘ring."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Ushbu multimedia xabarini yuborish uchun qurilma boshqa mobil tarmoqqa ulanadi. Bu qurilmangizni joriy mobil tarmog‘ingizdan uzadi."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Ushbu multimedia xabarini yuklab olish uchun qurilma boshqa mobil tarmoqqa ualanadi. Bu qurilmangizni joriy mobil tarmog‘ingizdan uzadi."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Ushbu xabar qayta yuboriladi."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d ta xabar o'chiriladi."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%dta suhbat yo‘q qilinadi."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Ro‘yxatda shablonlar yo‘q"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Faqat kiruvchi xabarlar"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Chiquvchi xabarga birlamchi matn kiritilsin"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Davomlilik %d soniyadan qisqa bo‘lishi lozim."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "O'chirildi."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 xabar o'chiriladi."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 ta veb-hujjat o‘chiriladi."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Tafsilotlarni ko‘rib chiqish"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Kontakt tafsilotini ko‘rish"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Slayd-shou sifatida ko‘rish"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Videolar"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Kontaktni yangilash"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Yunikod"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Matn"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Rasmga olish"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Parametrlar"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Qidirish"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Biriktirmalarni saqlash"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Qayta yuborish"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Javob berish"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Blk. ro‘yxatidan ol/tashla"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Video yozib olish"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Audio faylni\nyozib olish"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Tezkor javob"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Hech qaysi"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Ovozli qo‘ng‘iroqni amalga oshirish"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Tasvirlar"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM alifbo"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Qurilma xotirasiga eksport qilish"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Tahrirlash"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Xabarni yo‘q qilish"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Suhbatni yo‘q qilish"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "O'chirish"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Birlamchi"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Kontakt yaratish"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "SIM-kartaga nusxa ko‘chirish"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Qurilmaga nusxa ko‘chirish"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Matndan nusxa olish"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Nusxa ko‘chirish"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Arxivlash"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Avtomatik"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "Audio fayllar"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Biriktirma"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Kontaktlarga qo‘shish"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Blk. ro‘yxatiga qo‘shish"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Oluvchilarni qo‘shish"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Qidirish"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Natijalar topilmadi"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Tezkor javoblar yo‘q"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Iboralar bloklanmagan"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM-kartada xabarlar mavjud emas"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Xabarlar yo‘q"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Bloklangan raqamlar yo‘q"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Vibratsiya"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Noma'lum raqam"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Matnli xabar markazi raqami"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Hammasini belgilash"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Signallar"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Tarjima qilish"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Matnli xabarlar"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Mobil tarmoqni almashtirish"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "SMS markaz"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Parametrlar"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Qabul qiluvchini tanlang"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "%d tanlandi"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM-kartadagi xabarlar"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Xabarlar"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Kiritish rejimi"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Fayl hajmi juda katta"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Xabarni yuborib bo‘lmadi"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Xabarni tashlash"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Yo‘q qilish"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Yaratish"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Diqqat"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Tarkib qo‘shish"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Almashtirish"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Saqlash"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Qayta yuborish"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Ol/tashla"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Yuklab ol"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Rad etish"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Yo‘q qilish"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Bekor qilish"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Bekor qilish"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Kontaktlar"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Siz ovozli kadr faylini tanladingiz. MMS uchun ovoz ma’lumotlari qo‘llab-quvvatlanmaydi, shu sababli faqat rasm biriktiriladi"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "Ha"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Yuborish kutilmoqda..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Ushbu xabarni yuborib bo‘lmaydi. SIM-kartangizni kiriting va qayta urinib ko‘ring"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Tur:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Cheklangan media turlaridan foydalanish uchun, MMS yaratish rejimi parametrini o‘zgartiring."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Yuborilgan vaqt:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Olingan vaqt:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Belgilash katakchasi"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Holat:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Yuborildi"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Yubor..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Yuborib bo‘lmadi"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "soniya"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Rouming vaqtida xabarlarni avtomatik ravishda qaytaring."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Xabarlarni avtomatik ravishda qaytaring."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "O‘qilganlik haqidagi hisobot: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Boshqa shaxs"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Xabar"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Yozuv"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Xato"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Matn kiriting"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Qoralama"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Yetkazilganlik haqida hisobot: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB xabari"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Kalendar"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Xabarlarni yuborganingizdan yoki olganingizdan so‘ng, ular bu yerda ko‘rsatiladi."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tezkor javoblarni yaratganingizdan so‘ng, ular bu yerda ko‘rsatiladi."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Xabarlardan SIM-kartaga nusxa ko‘chirganingizdan so‘ng, ular bu yerda ko‘rsatiladi."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Jumlalarni qo‘shganingizdan so‘ng, ular bu yerda ko‘rsatiladi."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Xabarlari bloklanadigan ro‘yxatga raqamlar qo‘shganingizdan so‘ng, ular bu yerda ko‘rsatiladi."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "O‘CHIRISH"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Yuklanmoqda..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Ma'lumotnomalar"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Men"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Yub."
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Yubor"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "YUB"
+
diff --git a/main/po/vi.po b/main/po/vi.po
new file mode 100644 (file)
index 0000000..8e93826
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "Nhà"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "Chuyển vùng dữ liệu bị tắt. Bật chuyển vùng dữ liệu và thử lại."
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "Tin nhắn mới"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "THOÁT"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "HOÀN TẤT"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "Không rõ"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "Di động"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "Dữ liệu di động bị tắt. Bật dữ liệu di động và thử lại."
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "GỬI"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "Loại file không được hỗ trợ."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "Không thể gửi tin nhắn ở chế độ Máy bay. Tắt chế độ Máy bay và thử lại."
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "Không thể chuyển.\n File bị khoá chuyển"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "Không đủ dung lượng trong bộ nhớ thiết bị. Đi đến Cài đặt > Pin và bộ nhớ > Bộ nhớ, sau đó xóa một số file và thử lại."
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "Văn bản trên cùng"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "Văn bản ở dưới cùng"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "Chọn bố cục"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "Không thể thêm nội dung."
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "Tin nhắn được lên lịch gửi đến %s. Gửi bây giờ?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "Đã đạt kích cỡ tin nhắn tối đa."
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "Pin yếu."
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "Thời đoạn phải là ít nhất %d giây."
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "Đang tắt chế độ Máy bay..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "Đã chép vào thẻ SIM."
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "Đã hủy."
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "Sử dụng thông tin danh bạ khác"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "Gửi qua"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "Hình ảnh"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "Email"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "Thay thế"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "Xem"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "Xóa"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "Phát"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "Đến"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "Hủy tin nhắn"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "Danh sách người nhận"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "Xem trước"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "Thời lượng của bản trình chiếu %d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "Chờ trong khi các mục được thêm vào bản chiếu."
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "Không thể gửi tin nhắn."
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "Chọn nhạc chuông"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "Báo cáo đọc sẽ được gửi."
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "Chưa yêu cầu"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Đã đạt số danh bạ tối đa (%d)."
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "Nhập chủ đề."
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "Người nhận trùng lặp."
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "Ch.tiếp"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "Không thể lưu."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "Không tìm thấy vị trí."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "Không xóa được."
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "Không thể chép."
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "Một vài tính năng có thể đã bị mất.\nTiếp tục?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "Chưa gắn SIM."
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "Lưu không thành công."
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "Đã lưu vào File của bạn."
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "truy cập tin nhắn đã thất bại"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "Đã hạn chế kiểu nội dung. Tiếp tục đính kèm?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "Đang khôi phục..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "Đã từ chối."
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "Báo cáo đọc"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "Không số"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "Không có phần đính kèm"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "Tin nhắn mới"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "Đã chép tin nhắn từ thẻ SIM."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "Số lượng người nhận tối đa là %d. Một số người nhận có thể bị mất."
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "Đã vượt quá số bản đính kèm tối đa (%s)."
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "Đã đạt số ký tự tối đa."
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "Đang xử lý…"
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "Đang khởi động ..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "Nếu bạn không muốn thay thế file, hãy đổi tên nó."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "Tin nhắn này bao gồm một file đính kèm không hiện lên."
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "Tin nhắn này bao gồm các file đính kèm không được hiện lên."
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "Tên File đã tồn tại."
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "Đang xóa…"
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "Đã chép vào bộ nhớ tạm."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "Đang chuyển đổi sang tin nhắn văn bản..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "Đang chuyển đổi sang tin nhắn MMS..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "Chặn %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "Bạn đang định online(%s). Tiếp tục?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "Tin nhắn văn bản"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "Chủ đề:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "Người gửi qua Email"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "Người gửi"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "Chọn"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "Lưu phần đính kèm"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "Lưu"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "Xóa"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "Cài đặt"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "Chuyển tiếp"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "Sửa tin nhắn"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "Xóa?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "Xóa tin nhắn"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "Chọn tin nhắn"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "Lưu tất cả"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "Chi tiết tin nhắn"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "Hết hạn: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "Tìm kiếm nâng cao"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "Lưu tất cả đính kèm"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "Không rõ"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "Đến:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "Tin nhắn SMS"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "Bộ nhớ SIM đầy. Xóa bớt."
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "Cài đặt"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "Đã gửi:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "Đã yêu cầu."
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "Người nhận"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "Đã nhận:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "Đã nhận."
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "Báo cáo đọc"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "Tin nhắn Push"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d tin nhắn"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d hội thoại"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "Khác"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "Không có chủ đề"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "Không có tên"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "Thông báo tin nhắn MMS"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "Tin nhắn MMS"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "Đọc"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "Tin nhắn bị từ chối."
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "Kích thước bản tin"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "Tùy chọn tin nhắn"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "Tin nhắn được gửi"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "Tin nhắn"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "Tôi"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "Đã vượt quá số lượng file đính kèm tối đa (%1$s). Chỉ %2$s file đầu tiên được thêm vào."
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "Người nhận không hợp lệ."
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "Từ"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "Từ:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "Đã hết hạn"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "Không gửi được."
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "Báo đã gửi tin"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "Tin nhắn CP"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "Chép văn bản"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "Tin nhắn CB"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "Tất cả"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 hội thoại"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Yêu cầu báo cáo đã đọc đối với từng tin nhắn bạn gửi."
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "Yêu cầu báo cáo đã gửi đối với từng tin nhắn bạn gửi."
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "Phím Radio"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "Phím bật/tắt"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "Danh sách có thể mở rộng"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "Tự động truy xuất tin nhắn MMS."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "Không thể xem trước file. Loại file không được hỗ trợ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Không thể thêm một số người nhận. Số không hợp lệ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "Không thể thêm người nhận. Số không hợp lệ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "Không thể thêm người nhận. Số không hợp lệ."
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "Không thể thêm mục đính kèm. Đã đạt số mục đính kèm tối đa (%d)."
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "Số này không hợp lệ."
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "Đã sao chép các tin nhắn đã chọn vào thiết bị di động."
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "Đã chuyển %d tin nhắn sang danh sách tin nhắn."
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "Số đã bị xóa khỏi danh sách chặn tin nhắn."
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "Số đã được thêm vào danh sách chặn tin nhắn."
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "Tin nhắn được sao chép vào thẻ SIM %s."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "Đã vượt quá số ký tự tối đa."
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "Đã vượt quá kích cỡ tin nhắn tối đa (%s). Đang đổi kích cỡ mục đính kèm..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "Đã nhập ký tự không hợp lệ"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "Thêm người nhận."
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "Đã chuyển 1 tin nhắn vào danh sách tin nhắn."
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "Tin nhắn SMS"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "Âm thanh"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "Tin nhắn MMS"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "Tin nhắn trên thẻ SIM"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "Chế độ nhập"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "Tự nhận tin khi chuyển vùng"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "Tự nhận"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "Gửi ngay"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "Không"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "Chọn chế độ nhập để soạn tin nhắn."
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "Trống"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "Quản lý tin nhắn lưu trên thẻ SIM của bạn."
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "Tin nhắn của bạn sẽ bị hủy. Không có người nhận nào được chọn."
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "Không thể gửi tin nhắn hẹn giờ. Đặt thời gian khác."
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "Không thể phát khi đang gọi."
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "Không thể đính kèm file. Kích cỡ file quá lớn. Thử gửi qua Email, Bluetooth, Wi-Fi,..."
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "Để gửi tin nhắn đa phương tiện này, thiết bị sẽ kết nối vào một mạng di động khác. Việc này sẽ ngắt kết nối thiết bị khỏi mạng di động hiện tại."
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "Để tải về tin nhắn MMS này, thiết bị sẽ kết nối với mạng di động khác. Điều này sẽ ngắt kết nối thiết bị của bạn khỏi mạng di động hiện tại."
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "Tin nhắn này sẽ được gửi lại."
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d tin nhắn sẽ bị xóa."
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d hội thoại sẽ bị xóa."
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "Không có mẫu trong danh sách"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "Chỉ tin nhắn đến"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "Kèm văn bản gốc trong tin gửi đi"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "Thời lượng phải ngắn hơn %d giây."
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "Đã xóa."
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "1 tin nhắn sẽ bị xóa."
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 hội thoại sẽ bị xóa."
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "Xem chi tiết"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Xem chi tiết danh bạ"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "Xem dạng trình chiếu"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "Video"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "Cập nhật danh bạ"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "Văn bản"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "Chụp ảnh"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "Cài đặt"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "Tìm kiếm"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "Lưu phần đính kèm"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "Gửi lại"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "Trả lời"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "Xóa khỏi danh sách chặn"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "Quay video"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "Ghi file âm thanh"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "Trả lời nhanh"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "Không dùng"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "Thực hiện cuộc gọi thoại"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "Hình ảnh"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "Bảng chữ cái GSM"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "Xuất ra bộ nhớ thiết bị"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "Sửa"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "Xóa tin nhắn"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "Xóa hội thoại"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "Xóa"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "Mặc định"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "Tạo danh bạ"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "Sao chép vào thẻ SIM"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "Sao chép vào thiết bị"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "Chép văn bản"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "Sao chép"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "Sao lưu"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "Tự động"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "File âm thanh"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "Phần đính kèm"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "Thêm vào Danh bạ"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "Thêm vào danh sách chặn"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "Thêm người nhận"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "Tìm kiếm"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "Không tìm thấy kết quả"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "Không có phản hồi nhanh"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "Không có cụm từ bị chặn"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "Không có tin nhắn trên thẻ SIM"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "Không có tin nhắn"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "Không có số nào bị chặn"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "Rung"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "Số không rõ"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "Số trung tâm tin nhắn SMS"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "Chọn tất cả"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "Thông báo"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "Dịch"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "Tin nhắn SMS"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "Chuyển mạng di động"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "Trung tâm SMS"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "Cài đặt"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "Select recipient"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "Đã chọn %d"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "Tin nhắn trên thẻ SIM"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "Tin nhắn"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "Chế độ nhập"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "Kích thước file quá lớn"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "Có lỗi khi gửi tin nhắn"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "Hủy tin nhắn"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "Xóa"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "Tạo"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "Chú ý"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "Thêm nội dung"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "Chuyển"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "Lưu"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "Gửi lại"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "Gỡ bỏ"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "Tải về"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "Hủy bỏ"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "Xóa"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "Thoát"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "Thoát"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "Danh bạ"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "Bạn đã chọn file âm thanh & hình ảnh. MMS không hỗ trợ dữ liệu âm thanh nên sẽ chỉ đính kèm ảnh."
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "OK"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "Đang chờ gửi..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "Không thể gửi tin nhắn này. Hãy gắn thẻ SIM và thử lại."
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "Loại:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "Để sử dụng kiểu media bị hạn chế, hãy thay đổi cài đặt chế độ tạo MMS."
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "Thời gian gửi:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "Thời gian nhận:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "Hộp đánh dấu"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "Trạng thái:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "Đã gửi"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "Đang gửi..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "Có lỗi khi gửi"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "giây"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "Tự động truy cập tin nhắn khi chuyển vùng."
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "Tự động truy cập tin nhắn."
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "Báo cáo đã đọc: %s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "Người khác"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "Tin nhắn"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "Ghi nhớ"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "Không thành công"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "Nhập văn bản"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "Nháp"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "Báo cáo đã gửi: %s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "Tin nhắn CB"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "Lịch"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Sau khi bạn gửi hoặc nhận tin nhắn, chúng sẽ hiển thị ở đây."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Sau khi bạn tạo phản hồi nhanh, chúng sẽ hiển thị tại đây."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Sau khi bạn sao chép tin nhắn đến thẻ SIM, chúng sẽ hiển thị tại đây."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Sau khi bạn thêm cụm từ, chúng sẽ hiển thị tại đây."
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Sau khi bạn thêm số điện thoại vào danh sách chặn tin nhắn, chúng sẽ hiển thị tại đây."
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "XÓA"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "Đang tải…"
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "Thông báo"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "Tôi"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "Gửi"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "Gửi"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "GỬI"
+
diff --git a/main/po/zh_CN.po b/main/po/zh_CN.po
new file mode 100644 (file)
index 0000000..9672a8f
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "家庭"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "数据漫游已禁用。启用数据漫游并重试。"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "新信息"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "手机"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "移动数据已禁用。启用移动数据并重试。"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "发送"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "不支持的媒体类型"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "飞行模式下无法发送信息。禁用飞行模式并重试。"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "无法转寄\n文件已锁上转寄。"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "您的设备存储空间不足。请进入设定 > 电源和存储 > 存储,然后删除部分文件并重试。"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "文本置上"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "文本置下"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "选择布局"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "无法添加内容。"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "信息已定时待发送至 %s。是否立即发送?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "已达到信息最大大小"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "电量低"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "持续时间必须至少%d秒。"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "正在取消飞行模式…"
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "已复制至 SIM 卡"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "已取消"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "使用其他联系人信息"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "发送方式"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "图片"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "电子邮件"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "替换"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "查看"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "移除"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "播放"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "至"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "取消信息"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "收件人列表"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "预览"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "%d/%d幻灯片持续时间"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "项目添加到幻灯片时请稍候片刻。"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "无法发送信息。"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "选择铃声"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "将发送已读报告。"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "未请求"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "已达到最大收件人数量(%d)"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "输入主题"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "重复的收件人"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "转发"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "无法存储。"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "无法找到位置。"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "无法删除"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "无法复制"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "可能丢失部分字符。\n继续?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "未插入 SIM 卡。"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "储存失败"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "已保存在我的文件中。"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "取回失败"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "被限制的内容类型。仍然附加?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "恢复中..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "被拒绝"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "已读报告"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "无号码"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "无附件"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "新信息"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "从 SIM 卡复制的信息。"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "最大收件人数为 %d。部分收件人可能会丢失。"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "已超过最大附件数 (%s)。"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "已达到最大字符限制"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "进行中..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "初始化中..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "如果您不想替换文件,请重命名。"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "此信息包含一个未显示的附件。"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "此信息包含未显示的附件。"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "文件名已存在"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "删除中.."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "已复制到剪贴板"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "正在转换成短信…"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "正在转换成彩信…"
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "阻止%s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "您将上网(%s)。 继续?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "短信息"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "主题:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "发信人通过电子邮件"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "发件人"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "选择"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "存储附件"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "保存"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "移除"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "安装"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "转发"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "编辑信息"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "删除?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "删除信息"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "选择信息"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "全部保存"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "消息详情"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "到期时间: %s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "高级搜索"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "保存所有附件"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "收件人:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "短信设置"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM卡内存已满。删除部分项目。"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "设定"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "已发送:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "已发出请求"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "收件人"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "已接收:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "已接收"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "已读报告"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "推送信息"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d 条信息"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d 个会话"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "其它"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "没有主题"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "无名称"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "彩信通知"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "彩信"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "阅读"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "信息已拒绝"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "彩信"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "信息大小"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "信息选项"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "信息已送达"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "信息"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "我"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "已超过附件最大数量 (%1$s)。仅前 %2$s 将被添加。"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "无效收件人。"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "发件人"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "发件人:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "已过期"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "发送失败"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "送达报告"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP信息"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "复制文本"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "小区信息"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "全部"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "%1$d 个会话"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "为您发送的每条信息请求已读报告。"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "为您发送的每条信息请求送达报告。"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "单选按钮"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "开/关按钮"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "可展开列表"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "自动检索彩信信息。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "无法预览文件。不支持的文件类型。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "无法添加部分收件人。号码无效。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "无法添加收件人。号码无效。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "无法添加收件人。号码无效。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "无法添加附件。已达到最大附件数 (%d)。"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "该号码无效"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "选中的信息已复制至移动设备"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d 条信息已移至信息列表"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "号码已从信息阻止列表中移除"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "号码已添加至信息阻止列表"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "信息已复制至 %s SIM 卡"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "已超过最大字符数"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "已超过最大信息大小 (%s)。正在调整附件大小..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "输入的字符无效"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "添加收件人"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 条信息已移至信息列表"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "短信"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "声音"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "彩信"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM 卡上的信息"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "输入模式"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "漫游时自动获取"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "自动获取"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "立即发送"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "否"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "选择编写信息的输入模式"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "无"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "管理 SIM 卡上存储的信息"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "您的信息将被放弃。尚未选中收件人。"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "无法发送定时信息。设置其他时间。"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "通话中无法播放"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "无法添加文件。文件过大。尝试通过电子邮件、蓝牙、Wi-Fi 等发送。"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "若要发送该彩信,设备将连接至不同的移动网络。这将会从当前的移动网络断开您的设备连接。"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "若要下载该彩信,设备将连接至不同的移动网络。这将会从当前的移动网络断开您的设备连接。"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "将重新发送该信息。"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d条信息将被删除。"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "将删除 %d 个对话。"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "列表中无模板"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "仅限传入信息"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "在发出信息中包括原始文本"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "持续时间必须短于 %d 秒"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "已删除"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "将删除 1 条消息。"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "将删除 1 个对话。"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "查看详细资料"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "查看联系人详情"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "作为幻灯片查看"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "视频"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "更新联系人"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "单一码"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "文本"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "拍照"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "设定"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "搜索"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "保存附件"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "重新发送"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "回复"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "从阻止列表中移除"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "录制视频"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "录制音频文件"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "快速回复"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "无"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "拨打语音电话"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "图片"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM 字母"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "导出到手机内存"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "编辑"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "删除信息"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "删除对话"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "删除"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "默认"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "新建联系人"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "复制至 SIM 卡"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "复制至设备"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "复制文本"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "复制"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "备份"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "自动"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "音频文件"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "附件"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "添加至联系人"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "添加至阻止列表"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "添加收件人"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "搜索"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "未找到结果"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "无快速回复"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "无阻止的短语"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM 卡上无信息"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "无信息"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "无已阻止的号码"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "振动"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "未知号码"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "短信中心号码"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "全选"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "提醒"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "翻译"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "短信"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "切换移动网络"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "短信中心"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "设定"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "选择收件人"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "已选中 %d 个"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM 卡上的信息"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "信息"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "输入法"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "文件太大"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "发送信息失败"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "放弃信息"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "删除"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "创建"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "注意"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "添加内容"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "切换"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "保存"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "重新发送"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "移除"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "确定"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "下载"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "放弃"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "删除"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "取消"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "联系人"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "您已选择有声拍摄文件。声音数据不支持彩信,因此只能附加照片。"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "是"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "正在等待发送..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "无法发送本信息。插入 SIM 卡然后重试。"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "类型:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "若要使用限制媒体类型,更改您的彩信创建模式设置。"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "发送时间:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "接收时间:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "勾选框"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "状态:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "已发送。"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "发送中..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "发送失败。"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "秒"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "漫游时自动获取信息。"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "自动获取信息。"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "已读报告:%s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "其他人"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "信息"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "备忘录"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "失败"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "输入文本"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "草稿"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "送达报告:%s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "小区广播信息"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "日历"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "在发送或接收信息后,其将显示在此处。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "创建快速响应后,其将显示在此处。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "信息复制至 SIM 卡后,其将显示在此处。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "添加短语后,其将显示在此处。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "将号码添加至信息阻止列表后,其将显示在此处。"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "删除"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "载入中…"
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "通知"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "我"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "发送"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "发送"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "发送"
+
diff --git a/main/po/zh_HK.po b/main/po/zh_HK.po
new file mode 100644 (file)
index 0000000..4e5ab7f
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "住家"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "數據漫遊已停用。啟用數據漫遊並重試。"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "新訊息"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "手機"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "流動數據已停用。啟用流動數據並重試。"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "發送"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "不支援的媒體類型。"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "在飛行模式中無法發送訊息。停用飛行模式並重試。"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "無法轉寄。\n檔案轉寄功能已鎖定。"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "您的裝置儲存空間不足。請前往設定 > 電源與儲存空間 > 儲存空間,然後刪除部分檔案並重試。"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "文字置頂"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "底部文字"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "選擇版面配置"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "無法加入內容。"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "訊息預計發送至 %s。現在發送嗎?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "已達訊息的最大尺寸。"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "電量不足"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "持續時間必須至少 %d 秒。"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "正在停用飛行模式..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "已複製至 SIM 卡。"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "已取消"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "使用其他聯絡人資訊"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "發送透過"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "圖像"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "電子郵件"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "取代"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "檢視"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "移除"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "播放"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "至"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "取消訊息"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "收件人清單"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "預覽"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "投影片 %d/%d 的持續時間"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "請稍候,項目正在加入至投影片播放。"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "無法發送訊息。"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "選擇鈴聲"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "讀取報告將會發送。"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "未要求"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "已達收件人的數量上限(%d)。"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "輸入主題。"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "重複的收件人。"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "轉寄"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "無法儲存。"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "無法找到位置。"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "無法刪除。"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "無法複製。"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "部分字元可能遺失。繼續嗎?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM 卡未插入。"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "儲存失敗"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "儲存到我的檔案。"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "取回訊息失敗"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "受限制的內容類型。仍要附加?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "正在還原..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "已拒絕"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "讀取報告"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "無號碼"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "無附件"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "新訊息"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "從 SIM 卡複製訊息。"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "收件人的最大數量為%d。一些收件人可能遺失。"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "已超過附件的數量上限(%s)。"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "字元數目已達上限。"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "正在進行..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "正在初始化..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "如果不想取代此檔案,請重新命名。"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "此訊息包括一個未顯示的附加檔案。"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "此訊息包括未顯示的附加檔案。"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "檔案名稱已存在。"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "正在刪除..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "已複製到剪貼板。"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "正在轉換至文字訊息…"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "正在轉換至多媒體訊息…"
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "封鎖 %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "您即將上網 (%s)。要繼續嗎?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "文字訊息"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "主題:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "寄件人透過電子郵件"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "寄件人"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "選擇"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "儲存附件"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "儲存"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "移除"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "安裝"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "轉寄"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "編輯訊息"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "刪除嗎?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "刪除訊息"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "選擇訊息"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "全部儲存"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "訊息詳情"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "到期:%s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "進階搜尋"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "儲存所有附件"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "收件人:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "文字訊息"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM卡記憶體已滿。刪除些項目。"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "已發送:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "已請求"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "收件人"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "已接收:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "已接收。"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "讀取報告"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "推送訊息"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d 個訊息"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d 個對話"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "其他"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "無主題"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "無名稱"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "多媒體訊息通知"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "多媒體訊息"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "已讀取"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "訊息已拒絕"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "訊息大小"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "訊息選項"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "訊息已傳遞"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "訊息"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "我"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "已超過附件數目上限(%1$s)。僅首 %2$s 個將被加入。"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "無效收件人。"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "由"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "由:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "已過期"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "發送失敗。"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "傳遞報告"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "CP 訊息"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "複製文字"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "區域廣播訊息"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "全部"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1 個對話"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "對每一封發出的訊息請求讀取回報。"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "對每一封發出的訊息請求傳遞回報。"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "收音機按鈕"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "開/關按鈕"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "可展開的清單"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "自動取得多媒體訊息。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "無法預覽檔案。不支援的檔案類型。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "無法加入部分收件人。號碼無效。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "無法加入收件人。號碼無效。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "無法加入收件人。號碼無效。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "無法加入附件。已達附件數量上限 (%d)。"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "此號碼無效。"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "選擇的訊息已複製至流動裝置。"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "%d 條訊息已移動至訊息清單。"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "號碼已從訊息封鎖清單中移除。"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "號碼已加入至訊息封鎖清單。"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "訊息已複製至 %s SIM 卡。"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "已超過字元數目上限。"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "已超過訊息大小上限 (%s)。正在調整附件大小..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "輸入的字元無效"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "加入收件人。"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "1 條訊息已移動至訊息清單。"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "文字訊息"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "聲音"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "多媒體訊息"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM 卡上的訊息"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "輸入模式"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "漫遊時自動取回"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "自動取回"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "現在發送"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "否"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "選擇撰寫訊息的輸入模式。"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "無"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "管理儲存於 SIM 卡的訊息。"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "您的訊息將被捨棄。未選擇收件人。"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "無法發送預定訊息。請設定其他時間。"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "通話期間無法播放。"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "無法附加檔案。檔案大小過大。嘗試透過電子郵件、藍牙、Wi-Fi 等發送。"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "若要發送此多媒體訊息,裝置將連接至不同的流動網絡。這將會從目前的流動網絡中斷連接您的裝置。"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "若要下載此多媒體訊息,裝置將連接至不同的流動網絡。這將會從目前的流動網絡中斷連接您的裝置。"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "此訊息將被重新發送。"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "%d 個訊息將被刪除。"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "%d 個對話將被刪除。"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "清單中無範本"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "僅收到的訊息"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "在外寄訊息中包含原始文字"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "持續時間必須短於 %d 秒。"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "已刪除。"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "將刪除 1 封訊息。"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "1 個對話將被刪除。"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "檢視詳細資料"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "檢視聯絡人詳細資料"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "以投影片檢視"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "影片"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "更新聯絡人"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "文字"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "拍照"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "搜尋"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "儲存附件"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "重新發送"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "回覆"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "從封鎖清單中移除"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "錄製影片"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "錄製音訊檔案"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "快速回應"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "無"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "撥打語音通話"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "圖像"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM 字母"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "匯出至裝置記憶體"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "編輯"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "刪除訊息"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "刪除對話"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "預設"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "建立聯絡人"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "複製至 SIM 卡"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "複製至裝置"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "複製文字"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "複製"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "備份"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "自動"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "音訊檔案"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "附件"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "加入至聯絡人"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "加到封鎖清單"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "加入收件人"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "搜尋"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "無搜尋結果"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "無快速回應"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "無封鎖的詞組"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM 卡上無訊息"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "無訊息"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "無已封鎖的號碼"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "震動"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "未知號碼"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "文字訊息中心號碼"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "選擇全部"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "提醒"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "翻譯"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "文字訊息"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "切換流動網絡"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "短訊中心"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "選擇收件人"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "已選擇 %d 個"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM 卡上的訊息"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "訊息"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "輸入模式"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "檔案太大"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "發送訊息失敗"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "捨棄訊息"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "刪除"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "建立"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "注意"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "加入內容"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "切換"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "儲存"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "重新發送"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "移除"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "確定"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "下載"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "捨棄"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "刪除"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "取消"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "聯絡人"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "您已選擇有聲拍攝檔案。聲音數據不支援多媒體訊息,因此只能附加相片。"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "是"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "正在等待發送..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "無法發送此訊息。插入 SIM 卡並重試。"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "類型:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "若要使用限制的媒體類型,請變更多媒體訊息建立模式設定。"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "已發送時間:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "已接收時間:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "勾選框"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "狀態:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "已發送"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "正在發送..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "發送失敗"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "秒"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "漫遊時自動取回訊息。"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "自動取回訊息。"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "讀取報告:%s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "其他人"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "訊息"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "備忘錄"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "失敗"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "輸入文字"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "草稿"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "傳遞報告:%s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "區域廣播訊息"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "日曆"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "發送或接收訊息後,將顯示於此。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "建立快速回應後,將顯示於此。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "將訊息複製至 SIM 卡後,將顯示於此。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "加入詞組後,將顯示於此。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "將號碼加入至訊息封鎖清單後,將顯示於此。"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "刪除"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "正在載入..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "通知"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "我"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "發送"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "發送"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "發送"
+
diff --git a/main/po/zh_TW.po b/main/po/zh_TW.po
new file mode 100644 (file)
index 0000000..6dc8ddf
--- /dev/null
@@ -0,0 +1,915 @@
+msgid "IDS_COM_BODY_HOME"
+msgstr "住家"
+
+msgid "IDS_MSGC_POP_DATA_ROAMING_IS_DISABLED_ENABLE_DATA_ROAMING_AND_TRY_AGAIN"
+msgstr "數據漫遊已停用。啟用數據漫遊後重試。"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGE"
+msgstr "新訊息"
+
+msgid "IDS_MSG_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_MSG_ACBUTTON_DONE_ABB"
+msgstr "完成"
+
+msgid "IDS_COM_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_COM_BODY_MOBILE"
+msgstr "行動裝置"
+
+msgid "IDS_MSGC_POP_MOBILE_DATA_IS_DISABLED_ENABLE_MOBILE_DATA_AND_TRY_AGAIN"
+msgstr "行動數據已停用。啟用行動數據後重試。"
+
+msgid "IDS_TPLATFORM_ACBUTTON_SEND_ABB"
+msgstr "傳送"
+
+msgid "IDS_MSGC_POP_UNSUPPORTED_MEDIA_TYPE"
+msgstr "不支援的媒體類型。"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_SEND_MESSAGES_WHILE_IN_FLIGHT_MODE_DISABLE_FLIGHT_MODE_AND_TRY_AGAIN"
+msgstr "在飛航模式中無法傳送訊息。停用飛航模式然後重試。"
+
+msgid "IDS_MSGC_POP_UNABLE_TO_ADD_FILE_IS_FORWARD_LOCKED"
+msgstr "無法轉寄。\n檔案轉寄已鎖住。"
+
+msgid "IDS_MSGC_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN"
+msgstr "裝置儲存空間中的空間不足。前往設定 > 電力與儲存空間 > 儲存空間來刪除部分檔案,然後重試。"
+
+msgid "IDS_MSGC_POP_TEXT_AT_TOP"
+msgstr "文字置頂"
+
+msgid "IDS_MSGC_POP_TEXT_AT_BOTTOM"
+msgstr "底部文字"
+
+msgid "IDS_MSGC_POP_SELECT_LAYOUT"
+msgstr "選擇配置"
+
+msgid "IDS_MSGC_POP_MMSCANTADD"
+msgstr "無法加入內容。"
+
+msgid "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q"
+msgstr "預定訊息發送至 %s。現在發送嗎?"
+
+msgid "IDS_MSGC_POP_MAXIMUM_MESSAGE_SIZE_REACHED"
+msgstr "已達到最大訊息大小。"
+
+msgid "IDS_MSGC_POP_LOW_BATTERY"
+msgstr "電量不足。"
+
+msgid "IDS_MSGC_POP_DURATION_MUST_BE_AT_LEAST_PD_SECONDS"
+msgstr "持續時間必須至少 %d 秒。"
+
+msgid "IDS_MSGC_POP_DISABLING_FLIGHT_MODE_ING"
+msgstr "飛航模式停用中..."
+
+msgid "IDS_MSGC_POP_COPIED_TO_SIM_CARD"
+msgstr "複製至 SIM 卡。"
+
+msgid "IDS_MSGC_POP_CANCELLED"
+msgstr "已取消"
+
+msgid "IDS_MSGC_OPT_USE_OTHER_CONTACT_INFO_ABB"
+msgstr "使用其他聯絡人資訊"
+
+msgid "IDS_MSGC_OPT_SEND_VIA"
+msgstr "傳送透過"
+
+msgid "IDS_MSGC_OPT_IMAGE"
+msgstr "圖像"
+
+msgid "IDS_MSGC_OPT_EMAIL"
+msgstr "電子郵件"
+
+msgid "IDS_MSGC_OPT_EDIT_ITEM_REPLACE"
+msgstr "取代"
+
+msgid "IDS_MSGC_OPT_EDITITEM_VIEW"
+msgstr "檢視"
+
+msgid "IDS_MSGC_OPT_EDITITEM_REMOVE"
+msgstr "移除"
+
+msgid "IDS_MSGC_OPT_EDITITEM_PLAY"
+msgstr "播放"
+
+msgid "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"
+msgstr "至"
+
+msgid "IDS_MSGC_OPT_CANCEL_MESSAGE"
+msgstr "取消訊息"
+
+msgid "IDS_MSGC_HEADER_RECIPIENT_LIST"
+msgstr "收件人清單"
+
+msgid "IDS_MSGC_HEADER_PREVIEW"
+msgstr "預覽"
+
+msgid "IDS_MSGC_HEADER_DURATION_FOR_SLIDE_PD_PD"
+msgstr "投影片持續時間%d/%d"
+
+msgid "IDS_MSGC_BODY_WAIT_WHILE_ITEMS_ARE_ADDED_TO_SLIDESHOW"
+msgstr "等待項目新增至投影片播放。"
+
+msgid "IDS_MSGC_BODY_UNABLE_TO_SEND_MESSAGE"
+msgstr "無法傳送訊息。"
+
+msgid "IDS_MSGC_BODY_SELECT_RINGTONE"
+msgstr "選擇鈴聲"
+
+msgid "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT"
+msgstr "閱讀報告將發送。"
+
+msgid "IDS_MSGC_BODY_NOT_REQUESTED"
+msgstr "沒有要求"
+
+msgid "IDS_MSGC_BODY_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "收件人的最大數量(%d位)已達到。"
+
+msgid "IDS_MSGC_BODY_ENTER_SUBJECT"
+msgstr "輸入主旨。"
+
+msgid "IDS_MSGC_BODY_DUPLICATED_RECIPIENT"
+msgstr "重複的收件人。"
+
+msgid "IDS_MSGF_SK_FORWARD_LITE"
+msgstr "轉寄"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_SAVE"
+msgstr "無法儲存。"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_FIND_LOCATION"
+msgstr "找不到位置。"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_DELETE"
+msgstr "無法刪除。"
+
+msgid "IDS_MSGF_POP_UNABLE_TO_COPY"
+msgstr "無法複製。"
+
+msgid "IDS_MSGF_POP_SOME_CHARACTERS_MAY_BE_LOST_CONTINUE_Q"
+msgstr "部分字元可能會遺失。繼續?"
+
+msgid "IDS_MSGF_POP_SIM_NOT_INSERTED"
+msgstr "SIM 卡未插入。"
+
+msgid "IDS_MSGF_POP_SAVING_FAILED"
+msgstr "儲存失敗"
+
+msgid "IDS_MSGF_POP_SAVED_IN_MY_FILES"
+msgstr "儲存到我的檔案。"
+
+msgid "IDS_MSGF_POP_RETRIEVING_MESSAGE_FAILED"
+msgstr "擷取訊息失敗"
+
+msgid "IDS_MSGF_POP_RESTRICTED_CONTENT_TYPE_ATTACH_ANYWAY_Q"
+msgstr "受限制的內容類型。要附加嗎?"
+
+msgid "IDS_MSGF_POP_RESTORING_ING"
+msgstr "正在還原..."
+
+msgid "IDS_MSGF_POP_REJECTED"
+msgstr "已拒絕"
+
+msgid "IDS_MSGF_POP_READ_REPORT"
+msgstr "讀取報告"
+
+msgid "IDS_MSGF_POP_NO_NUMBER"
+msgstr "無號碼"
+
+msgid "IDS_MSGF_POP_NO_ATTACHMENTS"
+msgstr "無附件"
+
+msgid "IDS_MSGF_POP_NEW_MESSAGES"
+msgstr "新訊息"
+
+msgid "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"
+msgstr "從 SIM 卡複製的訊息。"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_IS_PD_SOME_RECIPIENTS_MAY_BE_LOST"
+msgstr "收件人數上限為 %d。部分收件人將會遺失。"
+
+msgid "IDS_MSGF_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPS_EXCEEDED"
+msgstr "超過附件的最大數量(%s)。"
+
+msgid "IDS_MSGF_POP_MAXIMUM_CHARACTERS"
+msgstr "已達字元數上限。"
+
+msgid "IDS_MSGF_POP_IN_PROGRESS_ING"
+msgstr "進行中..."
+
+msgid "IDS_MSGF_POP_INTIALISING"
+msgstr "正在初始化..."
+
+msgid "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT"
+msgstr "如果不想覆蓋檔案,請重新命名。"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"
+msgstr "此訊息包括一個未顯示的附加檔案。"
+
+msgid "IDS_MSGF_POP_HELP_PAGE_MESSAGE"
+msgstr "此訊息包括未顯示的附加檔案。"
+
+msgid "IDS_MSGF_POP_FILE_NAME_ALREADY_EXISTS"
+msgstr "檔案名稱已存在。"
+
+msgid "IDS_MSGF_POP_DELETING"
+msgstr "正在刪除..."
+
+msgid "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"
+msgstr "複製到剪貼簿。"
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_TEXT_MESSAGE_ING"
+msgstr "轉換為文字訊息..."
+
+msgid "IDS_MSGF_POP_CONVERTING_TO_MULTIMEDIA_MESSAGE_ING"
+msgstr "轉換為多媒體訊息..."
+
+msgid "IDS_MSGF_POP_BLOCK_PS_Q"
+msgstr "是否封鎖 %s?"
+
+msgid "IDS_MSGF_POP_ABOUT_TO_GO_ONLINE_CONTINUE_Q"
+msgstr "您即將上線 (%s)。繼續?"
+
+msgid "IDS_MSGF_OPT_TEXT_MESSAGE"
+msgstr "簡訊"
+
+msgid "IDS_MSGF_OPT_SUBJECT_COLON"
+msgstr "主旨:"
+
+msgid "IDS_MSGF_OPT_SENDER_VIA_EMAIL"
+msgstr "透過電子郵件傳送"
+
+msgid "IDS_MSGF_OPT_SENDER_ABB"
+msgstr "寄件人"
+
+msgid "IDS_MSGF_OPT_SELECT"
+msgstr "選擇"
+
+msgid "IDS_MSGF_OPT_SAVE_ATTACHMENT"
+msgstr "儲存附件"
+
+msgid "IDS_MSGF_OPT_SAVE"
+msgstr "儲存"
+
+msgid "IDS_MSGF_OPT_REMOVE"
+msgstr "移除"
+
+msgid "IDS_MSGF_OPT_INSTALL"
+msgstr "安裝"
+
+msgid "IDS_MSGF_OPT_FORWARD"
+msgstr "轉寄"
+
+msgid "IDS_MSGF_OPT_EDIT_MESSAGE"
+msgstr "編輯訊息"
+
+msgid "IDS_MSGF_OPT_DELETE_Q"
+msgstr "要刪除嗎?"
+
+msgid "IDS_MSGF_OPT_DELETE_MESSAGES"
+msgstr "刪除訊息"
+
+msgid "IDS_MSGF_HEADER_SELECT_MESSAGES"
+msgstr "選擇訊息"
+
+msgid "IDS_MSGF_HEADER_SAVE_ALL"
+msgstr "全部儲存"
+
+msgid "IDS_MSGF_HEADER_MESSAGE_DETAILS"
+msgstr "訊息詳細資訊"
+
+msgid "IDS_MSGF_HEADER_EXPIRES_C_PS"
+msgstr "過期:%s"
+
+msgid "IDS_MSGF_HEADER_ADVANCED_SEARCH"
+msgstr "進階搜尋"
+
+msgid "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"
+msgstr "儲存所有附件"
+
+msgid "IDS_MSGF_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_MSGF_BODY_TO_C"
+msgstr "至:"
+
+msgid "IDS_MSGF_BODY_TEXT_MESSAGES"
+msgstr "簡訊"
+
+msgid "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS"
+msgstr "SIM卡記憶體已滿。刪除一些項目。"
+
+msgid "IDS_MSGF_BODY_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_MSGF_BODY_SENT_M_DATE_C"
+msgstr "已傳送:"
+
+msgid "IDS_MSGF_BODY_REQUESTED"
+msgstr "已要求"
+
+msgid "IDS_MSGF_BODY_RECIPIENTS"
+msgstr "收件人"
+
+msgid "IDS_MSGF_BODY_RECEIVED_M_DATE_C"
+msgstr "已接收:"
+
+msgid "IDS_MSGF_BODY_RECEIVED"
+msgstr "已接收。"
+
+msgid "IDS_MSGF_BODY_READ_REPORT"
+msgstr "讀取報告"
+
+msgid "IDS_MSGF_BODY_PUSH_MESSAGES"
+msgstr "推送訊息"
+
+msgid "IDS_MSGF_BODY_PD_MESSAGES"
+msgstr "%d 則訊息"
+
+msgid "IDS_MSGF_BODY_PD_CONVERSATIONS"
+msgstr "%d個對話"
+
+msgid "IDS_MSGF_BODY_OTHER"
+msgstr "其他"
+
+msgid "IDS_MSGF_BODY_NO_SUBJECT"
+msgstr "無主旨"
+
+msgid "IDS_MSGF_BODY_NO_NAME"
+msgstr "無姓名"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE_NOTIFICATION"
+msgstr "多媒體訊息通知"
+
+msgid "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"
+msgstr "多媒體訊息"
+
+msgid "IDS_MSGF_BODY_MSGSIZE_KB"
+msgstr "KB"
+
+msgid "IDS_MSGF_BODY_MMSREADREPLYMSGREAD"
+msgstr "讀取"
+
+msgid "IDS_MSGF_BODY_MMSDELIVERYMSGREJECTED"
+msgstr "訊息遭拒"
+
+msgid "IDS_MSGF_BODY_MMS"
+msgstr "多媒體訊息"
+
+msgid "IDS_MSGF_BODY_MESSAGE_SIZE"
+msgstr "訊息大小"
+
+msgid "IDS_MSGF_BODY_MESSAGE_OPTIONS"
+msgstr "訊息選項"
+
+msgid "IDS_MSGF_BODY_MESSAGE_DELIVERED"
+msgstr "訊息已傳遞"
+
+msgid "IDS_MSGF_BODY_MESSAGE"
+msgstr "訊息"
+
+msgid "IDS_MSGF_BODY_ME"
+msgstr "我"
+
+msgid "IDS_MSGF_BODY_MAXIMUM_NUMBER_OF_ATTACHMENTS_HP1SS_EXCEEDED_ONLY_FIRST_P2SS_WILL_BE_ADDED"
+msgstr "超過附件的最大數量(%1$s)。只有最初 %2$s 個會新增。"
+
+msgid "IDS_MSGF_BODY_INVALID_RECIPIENT"
+msgstr "無效的收件人。"
+
+msgid "IDS_MSGF_BODY_FROM"
+msgstr "自"
+
+msgid "IDS_MSGF_BODY_FLFROM"
+msgstr "自:"
+
+msgid "IDS_MSGF_BODY_EXPIRED"
+msgstr "已過期"
+
+msgid "IDS_MSGF_BODY_DETAILSSENDINGFAILED"
+msgstr "傳送失敗"
+
+msgid "IDS_MSGF_BODY_DELIVERY_REPORT"
+msgstr "傳遞報告"
+
+msgid "IDS_MSGF_BODY_CP_MESSAGES"
+msgstr "開發商訊息"
+
+msgid "IDS_MSGF_BODY_COPY_TEXT"
+msgstr "複製文字"
+
+msgid "IDS_MSGF_BODY_CB_MESSAGES"
+msgstr "區域廣播訊息"
+
+msgid "IDS_MSGF_BODY_ALL"
+msgstr "全部"
+
+msgid "IDS_MSGF_BODY_1_MESSAGE"
+msgstr "1 message"
+
+msgid "IDS_MSGF_BODY_1_CONVERSATION"
+msgstr "1交談訊息"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "對每一封送出的訊息請求讀取回報。"
+
+msgid "IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND"
+msgstr "對每一封送出的訊息請求傳送回報。"
+
+msgid "IDS_MSGS_BODY_RADIO_BUTTON"
+msgstr "收音機按鍵"
+
+msgid "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+msgstr "開/關按鈕"
+
+msgid "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+msgstr "可展開的清單"
+
+msgid "IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES"
+msgstr "自動擷取多媒體訊息。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE"
+msgstr "無法預覽檔案。不支援的檔案種類。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_SOME_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "無法新增部分收件人。號碼無效。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENT_NUMBER_NOT_VALID"
+msgstr "無法新增收件人。號碼無效。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_RECIPIENTS_NUMBERS_NOT_VALID"
+msgstr "無法新增收件人。號碼無效。"
+
+msgid "IDS_MSG_TPOP_UNABLE_TO_ADD_ATTACHMENT_MAXIMUM_NUMBER_OF_ATTACHMENTS_HPD_REACHED"
+msgstr "無法新增附件。已達附件數量上限 (%d)。"
+
+msgid "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID"
+msgstr "此號碼無效。"
+
+msgid "IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"
+msgstr "選擇的訊息已複製到行動裝置。"
+
+msgid "IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST"
+msgstr "已移動 %d 封訊息至訊息清單。"
+
+msgid "IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"
+msgstr "已將號碼自訊息封鎖名單移除。"
+
+msgid "IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"
+msgstr "已新增號碼至訊息封鎖名單。"
+
+msgid "IDS_MSG_TPOP_MESSAGE_COPIED_TO_PS_SIM_CARD"
+msgstr "訊息已複製到 %s SIM 卡。"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"
+msgstr "已超過字元數量上限。"
+
+msgid "IDS_MSG_TPOP_MAXIMUM_MESSAGE_SIZE_HPS_EXCEEDED_RESIZING_ATTACHMENTS_ING"
+msgstr "已達最高訊息大小 (%s)。正在重新調整附件大小..."
+
+msgid "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"
+msgstr "輸入的字元無效"
+
+msgid "IDS_MSG_TPOP_ADD_RECIPIENTS"
+msgstr "新增收件人。"
+
+msgid "IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST"
+msgstr "已移動 1 封訊息至訊息清單。"
+
+msgid "IDS_MSG_TMBODY_TEXT_MESSAGES"
+msgstr "文字訊息"
+
+msgid "IDS_MSG_TMBODY_SOUND"
+msgstr "聲音"
+
+msgid "IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES"
+msgstr "多媒體訊息"
+
+msgid "IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD"
+msgstr "SIM 卡上的訊息"
+
+msgid "IDS_MSG_TMBODY_INPUT_MODE"
+msgstr "輸入模式"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING"
+msgstr "漫遊時自動擷取"
+
+msgid "IDS_MSG_TMBODY_AUTO_RETRIEVE"
+msgstr "自動擷取"
+
+msgid "IDS_MSG_SK_SEND_NOW"
+msgstr "現在發送"
+
+msgid "IDS_MSG_SK_NO_ABB"
+msgstr "否"
+
+msgid "IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES"
+msgstr "選擇撰寫訊息的輸入模式。"
+
+msgid "IDS_MSG_SBODY_NONE_M_STATUS"
+msgstr "無"
+
+msgid "IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD"
+msgstr "管理儲存於 SIM 卡的訊息。"
+
+msgid "IDS_MSG_POP_YOUR_MESSAGE_WILL_BE_DISCARDED_NO_RECIPIENTS_HAVE_BEEN_SELECTED"
+msgstr "您的訊息將被捨棄。未選擇收件人。"
+
+msgid "IDS_MSG_POP_UNABLE_TO_SEND_SCHEDULED_MESSAGE_SET_ANOTHER_TIME"
+msgstr "無法發送預定的訊息。請設定其他時間。"
+
+msgid "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"
+msgstr "通話期間無法播放。"
+
+msgid "IDS_MSG_POP_UNABLE_TO_ATTACH_FILE_FILE_SIZE_TOO_LARGE_TRY_SENDING_VIA_EMAIL_BLUETOOTH_WI_FI_ETC"
+msgstr "無法附加檔案。檔案大小過大。嘗試透過電子郵件、藍牙、Wi-Fi 等發送。"
+
+msgid "IDS_MSG_POP_TO_SEND_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_THIS_WILL_DISCONNECT_YOUR_DEVICE_FROM_YOUR_MSG"
+msgstr "若要傳送此多媒體訊息,裝置將連接到不同的行動網路。這將自您目前的行動網路中斷連接裝置。"
+
+msgid "IDS_MSG_POP_TO_DOWNLOAD_THIS_MULTIMEDIA_MESSAGE_THE_DEVICE_WILL_CONNECT_TO_A_DIFFERENT_MOBILE_NETWORK_MSG"
+msgstr "若要下載此封多媒體訊息,裝置將連接到不同的行動網路。這將自您目前的行動網路中斷裝置連接。"
+
+msgid "IDS_MSG_POP_THIS_MESSAGE_WILL_BE_RESENT"
+msgstr "將重新傳送此訊息。"
+
+msgid "IDS_MSG_POP_PD_MESSAGES_WILL_BE_DELETED"
+msgstr "將刪除 %d 個訊息。"
+
+msgid "IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"
+msgstr "將刪除 %d 個對話。"
+
+msgid "IDS_MSG_POP_NO_TEMPLATES_IN_LIST"
+msgstr "清單中無範本"
+
+msgid "IDS_MSG_POP_INCOMING_MESSAGES_ONLY"
+msgstr "僅收到的訊息"
+
+msgid "IDS_MSG_POP_INCLUDE_ORIGINAL_TEXT_IN_OUTGOING_MESSAGE"
+msgstr "在送出訊息中包含原始文字"
+
+msgid "IDS_MSG_POP_DURATION_MUST_BE_SHORTER_THAN_PD_SECONDS"
+msgstr "期間應短於 %d 秒。"
+
+msgid "IDS_MSG_POP_DELETED"
+msgstr "已刪除。"
+
+msgid "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED"
+msgstr "將刪除 1 封訊息。"
+
+msgid "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED"
+msgstr "將刪除 1 個對話。"
+
+msgid "IDS_MSG_OPT_VIEW_DETAILS_ABB"
+msgstr "檢視詳細資訊"
+
+msgid "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "檢視聯絡人詳細資訊"
+
+msgid "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"
+msgstr "以幻燈片檢視"
+
+msgid "IDS_MSG_OPT_VIDEOS"
+msgstr "影片"
+
+msgid "IDS_MSG_OPT_UPDATE_CONTACT"
+msgstr "更新聯絡人"
+
+msgid "IDS_MSG_OPT_UNICODE"
+msgstr "Unicode"
+
+msgid "IDS_MSG_OPT_TEXT"
+msgstr "文字"
+
+msgid "IDS_MSG_OPT_TAKE_PICTURE_ABB"
+msgstr "拍照"
+
+msgid "IDS_MSG_OPT_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_MSG_OPT_SEARCH"
+msgstr "搜尋"
+
+msgid "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"
+msgstr "儲存附件"
+
+msgid "IDS_MSG_OPT_RESEND"
+msgstr "重新傳送"
+
+msgid "IDS_MSG_OPT_REPLY"
+msgstr "回應"
+
+msgid "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"
+msgstr "自封鎖名單移除"
+
+msgid "IDS_MSG_OPT_RECORD_VIDEO_ABB"
+msgstr "錄影"
+
+msgid "IDS_MSG_OPT_RECORD_AUDIO_FILE_ABB"
+msgstr "錄製音訊檔案"
+
+msgid "IDS_MSG_OPT_QUICK_RESPONSE_ABB"
+msgstr "快速回應"
+
+msgid "IDS_MSG_OPT_NONE"
+msgstr "無"
+
+msgid "IDS_MSG_OPT_MAKE_VOICE_CALL"
+msgstr "撥出語音電話"
+
+msgid "IDS_MSG_OPT_IMAGES"
+msgstr "圖像"
+
+msgid "IDS_MSG_OPT_GSM_ALPHABET_ABB"
+msgstr "GSM 字母"
+
+msgid "IDS_MSG_OPT_EXPORT_TO_DEVICE_MEMORY"
+msgstr "匯出到手機記憶體"
+
+msgid "IDS_MSG_OPT_EDIT"
+msgstr "編輯"
+
+msgid "IDS_MSG_OPT_DELETE_MESSAGE"
+msgstr "刪除訊息"
+
+msgid "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"
+msgstr "刪除對話"
+
+msgid "IDS_MSG_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_MSG_OPT_DEFAULT"
+msgstr "預設"
+
+msgid "IDS_MSG_OPT_CREATE_CONTACT_ABB"
+msgstr "建立聯絡人"
+
+msgid "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"
+msgstr "複製到 SIM 卡"
+
+msgid "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"
+msgstr "複製到裝置"
+
+msgid "IDS_MSG_OPT_COPY_TEXT"
+msgstr "複製文字"
+
+msgid "IDS_MSG_OPT_COPY"
+msgstr "複製"
+
+msgid "IDS_MSG_OPT_BACK_UP"
+msgstr "備份"
+
+msgid "IDS_MSG_OPT_AUTOMATIC"
+msgstr "自動"
+
+msgid "IDS_MSG_OPT_AUDIO_FILES_ABB2"
+msgstr "音訊檔案"
+
+msgid "IDS_MSG_OPT_ATTACHMENT_ABB"
+msgstr "附件"
+
+msgid "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"
+msgstr "新增至聯絡人"
+
+msgid "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"
+msgstr "新增至封鎖名單"
+
+msgid "IDS_MSG_OPT_ADD_RECIPIENTS_ABB"
+msgstr "新增收件人"
+
+msgid "IDS_MSG_NPBODY_SEARCH"
+msgstr "搜尋"
+
+msgid "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "找不到結果"
+
+msgid "IDS_MSG_NPBODY_NO_QUICK_RESPONSES"
+msgstr "無快速回應"
+
+msgid "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED"
+msgstr "沒有封鎖的短語"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD"
+msgstr "SIM 卡無訊息"
+
+msgid "IDS_MSG_NPBODY_NO_MESSAGES"
+msgstr "無訊息"
+
+msgid "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS"
+msgstr "沒有封鎖的號碼"
+
+msgid "IDS_MSG_MBODY_VIBRATION"
+msgstr "震動"
+
+msgid "IDS_MSG_MBODY_UNKNOWN_NUMBER"
+msgstr "未知號碼"
+
+msgid "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB"
+msgstr "訊息中心號碼"
+
+msgid "IDS_MSG_MBODY_SELECT_ALL"
+msgstr "全選"
+
+msgid "IDS_MSG_MBODY_ALERTS"
+msgstr "提醒"
+
+msgid "IDS_MSG_HEADER_TRANSLATE"
+msgstr "翻譯"
+
+msgid "IDS_MSG_HEADER_TEXT_MESSAGES_ABB"
+msgstr "文字訊息"
+
+msgid "IDS_MSG_HEADER_SWITCH_MOBILE_NETWORK_ABB2"
+msgstr "切換行動網路"
+
+msgid "IDS_MSG_HEADER_SMS_CENTRE_ABB2"
+msgstr "簡訊中心"
+
+msgid "IDS_MSG_HEADER_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_MSG_HEADER_SELECT_RECIPIENT"
+msgstr "選擇收件人"
+
+msgid "IDS_MSG_HEADER_PD_SELECTED_ABB3"
+msgstr "已選擇 %d 個"
+
+msgid "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"
+msgstr "SIM 卡上的訊息"
+
+msgid "IDS_MSG_HEADER_MESSAGES"
+msgstr "訊息"
+
+msgid "IDS_MSG_HEADER_INPUT_MODE_ABB"
+msgstr "輸入模式"
+
+msgid "IDS_MSG_HEADER_FILE_SIZE_TOO_LARGE_ABB"
+msgstr "檔案大小過大"
+
+msgid "IDS_MSG_HEADER_FAILED_TO_SEND_MESSAGE_ABB"
+msgstr "無法傳送訊息"
+
+msgid "IDS_MSG_HEADER_DISCARD_MESSAGE_M_CLOSE_ABB"
+msgstr "捨棄訊息"
+
+msgid "IDS_MSG_HEADER_DELETE"
+msgstr "刪除"
+
+msgid "IDS_MSG_HEADER_CREATE"
+msgstr "建立"
+
+msgid "IDS_MSG_HEADER_ATTENTION"
+msgstr "注意"
+
+msgid "IDS_MSG_HEADER_ADD_CONTENT_ABB"
+msgstr "新增內容"
+
+msgid "IDS_MSG_BUTTON_SWITCH_ABB2"
+msgstr "切換"
+
+msgid "IDS_MSG_BUTTON_SAVE_ABB2"
+msgstr "儲存"
+
+msgid "IDS_MSG_BUTTON_RESEND_ABB"
+msgstr "重新發送"
+
+msgid "IDS_MSG_BUTTON_REMOVE_ABB"
+msgstr "移除"
+
+msgid "IDS_MSG_BUTTON_OK_ABB"
+msgstr "確定"
+
+msgid "IDS_MSG_BUTTON_DOWNLOAD_ABB3"
+msgstr "下載"
+
+msgid "IDS_MSG_BUTTON_DISCARD_ABB"
+msgstr "放棄"
+
+msgid "IDS_MSG_BUTTON_DELETE_ABB4"
+msgstr "刪除"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB2"
+msgstr "取消"
+
+msgid "IDS_MSG_BUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_MSG_BUTTON2_CONTACTS_ABB_M_APPLICATION_NAME"
+msgstr "聯絡人"
+
+msgid "IDS_MSG_BODY_YOU_HAVE_SELECTED_A_SOUND_N_SHOT_FILE_SOUND_DATA_IS_NOT_SUPPORTED_FOR_MMS_SO_ONLY_THE_PICTURE_WILL_BE_ATTACHED"
+msgstr "您已選擇有聲拍攝檔案。聲音資料不支援多媒體訊息,因此只能附加相片。"
+
+msgid "IDS_MSG_BODY_YES"
+msgstr "是"
+
+msgid "IDS_MSG_BODY_WAITING_TO_SEND_ING_M_STATUS"
+msgstr "正在等待傳送..."
+
+msgid "IDS_MSG_BODY_UNABLE_TO_SEND_THIS_MESSAGE_INSERT_YOUR_SIM_CARD_AND_TRY_AGAIN"
+msgstr "無法傳送此訊息。插入您的 SIM 卡然後重試。"
+
+msgid "IDS_MSG_BODY_TYPE_C"
+msgstr "類型:"
+
+msgid "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING"
+msgstr "若要使用限制的媒體類型,請變更您的多媒體訊息建立模式設定。"
+
+msgid "IDS_MSG_BODY_TIME_SENT_C"
+msgstr "傳送時間:"
+
+msgid "IDS_MSG_BODY_TIME_RECEIVED_C"
+msgstr "收到時間:"
+
+msgid "IDS_MSG_BODY_TICK_BOX_T_TTS"
+msgstr "勾選方塊"
+
+msgid "IDS_MSG_BODY_STATUS_C"
+msgstr "狀態:"
+
+msgid "IDS_MSG_BODY_SENT_M_STATUS"
+msgstr "已傳送"
+
+msgid "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"
+msgstr "正在傳送..."
+
+msgid "IDS_MSG_BODY_SENDING_FAILED_M_STATUS"
+msgstr "傳送失敗"
+
+msgid "IDS_MSG_BODY_SEC"
+msgstr "秒"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING"
+msgstr "漫遊時自動擷取訊息。"
+
+msgid "IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"
+msgstr "自動擷取訊息。"
+
+msgid "IDS_MSG_BODY_READ_REPORT_C_PS"
+msgstr "讀取報告:%s"
+
+msgid "IDS_MSG_BODY_OTHER_PERSON"
+msgstr "其他人"
+
+msgid "IDS_MSG_BODY_MESSAGE"
+msgstr "訊息"
+
+msgid "IDS_MSG_BODY_MEMO_T_MAINMENU"
+msgstr "備忘錄"
+
+msgid "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"
+msgstr "失敗"
+
+msgid "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"
+msgstr "輸入文字"
+
+msgid "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"
+msgstr "草稿"
+
+msgid "IDS_MSG_BODY_DELIVERY_REPORT_C_PS"
+msgstr "傳送報告:%s"
+
+msgid "IDS_MSG_BODY_CB_MESSAGE"
+msgstr "CB 訊息"
+
+msgid "IDS_MSG_BODY_CALENDAR_M_APPLICATION_NAME_ABB"
+msgstr "日曆"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "傳送或接收訊息後,將顯示於此。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "建立快速回應後,將顯示於此。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE"
+msgstr "將訊息複製到 SIM 卡後,將顯示於此。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE"
+msgstr "新增短語後,將顯示於此。"
+
+msgid "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE"
+msgstr "新增號碼至訊息封鎖名單後,將顯示於此。"
+
+msgid "IDS_MSG_ACBUTTON_DELETE_ABB"
+msgstr "刪除"
+
+msgid "IDS_ST_BODY_LOADING_ING"
+msgstr "正在載入..."
+
+msgid "IDS_MSGS_BODY_NOTIFICATIONS"
+msgstr "通知"
+
+msgid "IDS_MSG_HEADER_ME"
+msgstr "我"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB5"
+msgstr "傳送"
+
+msgid "IDS_MSG_BUTTON_SEND_ABB3"
+msgstr "傳送"
+
+msgid "IDS_MSG_ACBUTTON_SEND_ABB3"
+msgstr "傳送"
+
diff --git a/message.efl.in b/message.efl.in
new file mode 100755 (executable)
index 0000000..d16d931
--- /dev/null
@@ -0,0 +1,68 @@
+${PKGNAME} xorg rw---- ------
+${PKGNAME} xorg::screencapture r----- ------
+${PKGNAME} isf rwx--- ------
+${PKGNAME} efreet r-x--- ------
+${PKGNAME} system::use_internet rw---- ------
+${PKGNAME} contacts-service rwx--- ------
+${PKGNAME} calendar-service rwx--- ------
+${PKGNAME} sound_server rw---- ------
+${PKGNAME} mdm-server -w---- ------
+${PKGNAME} media-server rwx--- ------
+${PKGNAME} media-data::db rwx--- ------
+${PKGNAME} app-svc::db rw---- ------
+${PKGNAME} ims-service::db rw---- ------
+${PKGNAME} org.tizen.memo r-x--- ------
+${PKGNAME} org.tizen.indicator rwx--- ------
+${PKGNAME} org.tizen.contacts rwx--- ------
+${PKGNAME} org.tizen.gallery rwx--- ------
+${PKGNAME} org.tizen.calendar rwx--- ------
+${PKGNAME} org.tizen.music-player rwx--- ------
+${PKGNAME} org.tizen.setting rwx--- ------
+${PKGNAME} org.tizen.videos r----- ------
+${PKGNAME} org.tizen.data-provider-slave r----- ------
+${PKGNAME} data-provider-master rw---- ------
+${PKGNAME} sys-assert::info -wx--- ------
+${PKGNAME} system-server rw-a-- ------
+${PKGNAME} deviced rw-a-- ------
+${PKGNAME} deviced::power rw-a-- ------
+${PKGNAME} ug-launcher rwx--- ------
+${PKGNAME} data-provider-master::shortcut rw---- ------
+${PKGNAME} data-provider-master::shortcut.livebox -w---- ------
+${PKGNAME} tts-server rwx--- ------
+${PKGNAME} sdbd r-x--- ------
+${PKGNAME} telephony_framework::api_call rw---- ------
+${PKGNAME} telephony_framework::api_modem rw---- ------
+${PKGNAME} telephony_framework::api_network rw---- ------
+${PKGNAME} samsung-log-manager::use_app_feature_survey rw---- ------
+${PKGNAME} samsung-log-manager::report_app_status_survey rw---- ------
+${PKGNAME} data-provider-master::notification -w---- ------
+isf ${PKGNAME} --x--- ------
+aul ${PKGNAME} r-x--- ------
+system::use_internet ${PKGNAME} -w---- ------
+ui-gadget::client ${PKGNAME} rwx--l ------
+media-server ${PKGNAME} -w---- ------
+org.tizen.app-tray ${PKGNAME} r-x--- ------
+org.tizen.data-provider-slave ${PKGNAME} r-x--- ------
+org.tizen.quickpanel ${PKGNAME} rwx--- ------
+org.tizen.indicator ${PKGNAME} rwx--- ------
+org.tizen.lockscreen ${PKGNAME} r-x--- ------
+org.tizen.volume ${PKGNAME} --x--- ------
+org.tizen.app-selector ${PKGNAME} r-x--- ------
+org.tizen.data-provider-slave msg-service -w---- ------
+org.tizen.data-provider-slave msg-service::db rw---- ------
+${PKGNAME} msg-service::db rw---- ------
+${PKGNAME} sec_db rwx--- ------
+${PKGNAME} msg-service::wappush rw---- ------
+${PKGNAME} aul::launch --x--- ------
+${PKGNAME} msg-server rwx--- ------
+${PKGNAME} msg-service rwx--- ------
+msg-server ${PKGNAME} rwx--- ------
+msg-service ${PKGNAME} rwx--- ------
+${PKGNAME} org.tizen.setting::default-resources r-x--- ------
+${PKGNAME} tizen::vconf::public::r r----l ------
+${PKGNAME} tizen::vconf::setting::admin r----l ------
+${PKGNAME} tizen::vconf::platform::r r----- ------
+${PKGNAME} tizen::vconf::public::r::platform::rw rw---- ------
+${PKGNAME} tizen::vconf::message r----l ------
+${PKGNAME} ui-gadget::client rwx--- ------
+${PKGNAME} org.tizen.volume rwx--- ------
\ No newline at end of file
diff --git a/message.manifest.in b/message.manifest.in
new file mode 100755 (executable)
index 0000000..0d98fcc
--- /dev/null
@@ -0,0 +1,13 @@
+<manifest>
+       <define>
+                <domain name="${PKGNAME}" />
+       </define>
+       <assign>
+                <filesystem path="/usr/share/icons/default/small/${PKGNAME}.png" label="_" />
+               <filesystem path="/usr/ug/lib/*" label="_" />
+                <filesystem path="${DATADIR}/*" label="${PKGNAME}" />
+       </assign>
+       <request>
+                <domain name="${PKGNAME}"/>
+       </request>
+</manifest>
diff --git a/message.xml.in b/message.xml.in
new file mode 100755 (executable)
index 0000000..016a69b
--- /dev/null
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.4" package="${PKGNAME}" version="0.1.0" install-location="internal-only">
+       <label>Message</label>
+       <author email="jyjeong@samsung.com" href="www.samsung.com">Jaeyun Jeong</author>
+       <description>Message Application</description>
+        <ui-application appid="${PKGNAME}" exec="${BINDIR}/message" nodisplay="false" multiple="false" type="capp" taskmanage="true" indicatordisplay="true" effectimage-type="edj-default" portrait-effectimage="/usr/apps/${PKGNAME}/shared/res/${PKGNAME}-portrait.edj" process-pool="true" hw-acceleration="use-GL">
+               <metadata key="http://developer.samsung.com/tizen/metadata/multiwindow"/>
+               <metadata key="http://developer.samsung.com/tizen/metadata/largememory"/>
+                <icon>${PKGNAME}.png</icon>
+               <label>Messages</label>
+               <label xml:lang="ar-ae">الرسائل</label>
+               <label xml:lang="as-in">মেছেজসমূহ</label>
+               <label xml:lang="az-az">Mesajlar</label>
+               <label xml:lang="bn-in">বার্তাসমূহ</label>
+               <label xml:lang="bg-bg">Съобщения</label>
+               <label xml:lang="ca-es">Missatges</label>
+               <label xml:lang="cs-cz">Zprávy</label>
+               <label xml:lang="da-dk">Meddelelser</label>
+               <label xml:lang="de-de">Nachrichten</label>
+               <label xml:lang="el-gr">Μηνύματα</label>
+               <label xml:lang="en-gb">Messages</label>
+               <label xml:lang="en-ph">Messages</label>
+               <label xml:lang="en-us">Messages</label>
+               <label xml:lang="es-es">Mensajes</label>
+               <label xml:lang="es-mx">Mensajes</label>
+               <label xml:lang="et-ee">Sõnumid</label>
+               <label xml:lang="eu-es">Mezuak</label>
+               <label xml:lang="fi-fi">Viestit</label>
+               <label xml:lang="fr-ca">Messages</label>
+               <label xml:lang="fr-fr">Messages</label>
+               <label xml:lang="ga-ie">Teachtaireachtaí</label>
+               <label xml:lang="gu-in">સંદેશા</label>
+               <label xml:lang="gl-es">Mensaxes</label>
+               <label xml:lang="hi-in">सन्देश</label>
+               <label xml:lang="hr-hr">Poruke</label>
+               <label xml:lang="hu-hu">Üzenetek</label>
+               <label xml:lang="hy-am">Հղրդգրթ</label>
+               <label xml:lang="id-id">Pesan</label>
+               <label xml:lang="is-is">Skilaboð</label>
+               <label xml:lang="it-it">Messaggi</label>
+               <label xml:lang="ja-jp">メッセージ</label>
+               <label xml:lang="ka-ge">შეტყობინებები</label>
+               <label xml:lang="kk-kz">Хабарламалар</label>
+               <label xml:lang="km-kh">សារ</label>
+               <label xml:lang="kn-in">ಸಂದೇಶಗಳು</label>
+               <label xml:lang="ko-kr">메시지</label>
+               <label xml:lang="lo-la">ຂໍ້ຄວາມ</label>
+               <label xml:lang="lt-lt">Žinutės</label>
+               <label xml:lang="lv-lv">Ziņas</label>
+               <label xml:lang="mk-mk">Пораки</label>
+               <label xml:lang="ml-in">സന്ദേശങ്ങൾ</label>
+               <label xml:lang="mr-in">संदेश</label>
+               <label xml:lang="ms-my">Mesej</label>
+               <label xml:lang="my-mm">မက္ေဆ့ခ်္မ်ား</label>
+               <label xml:lang="nb-no">Meldinger</label>
+               <label xml:lang="ne-np">संदेशहरू</label>
+               <label xml:lang="nl-nl">Berichten</label>
+               <label xml:lang="or-in">ସନ୍ଦେଶଗୁଡିକ</label>
+               <label xml:lang="pa-in">ਸੰਦੇਸ਼</label>
+               <label xml:lang="pl-pl">Wiadomości</label>
+               <label xml:lang="pt-br">Mensagens</label>
+               <label xml:lang="pt-pt">Mensagem</label>
+               <label xml:lang="ro-ro">Mesaje</label>
+               <label xml:lang="ru-ru">Сообщения</label>
+               <label xml:lang="si-lk">පණිවිඩ</label>
+               <label xml:lang="sk-sk">Správy</label>
+               <label xml:lang="sl-si">Sporočila</label>
+               <label xml:lang="sr-rs">Poruke</label>
+               <label xml:lang="sv-se">Meddelanden</label>
+               <label xml:lang="ta-in">தகவல்கள்</label>
+               <label xml:lang="te-in">సందేశాలు</label>
+               <label xml:lang="th-th">ข้อความ</label>
+               <label xml:lang="tr-tr">Mesajlar</label>
+               <label xml:lang="tl-ph">Mga Mensahe</label>
+               <label xml:lang="uk-ua">Повідомлення</label>
+               <label xml:lang="ur-pk">پیغامات</label>
+               <label xml:lang="uz-uz">Xabarlar</label>
+               <label xml:lang="vi-vn">Tin nhắn</label>
+               <label xml:lang="zh-cn">信息</label>
+               <label xml:lang="zh-hk">訊息</label>
+               <label xml:lang="zh-sg">讯息</label>
+               <label xml:lang="zh-tw">訊息</label>
+               <background-category value="media"/>
+               <background-category value="download"/>
+               <background-category value="background-network"/>
+       </ui-application>
+        <ui-application appid="msg-sim-reset-efl-lite" exec="${BINDIR}/msg-sim-reset-efl-lite" nodisplay="true" multiple="false" type="capp" taskmanage="false">
+               <label>sim-reset-efl-lite</label>
+               <label xml:lang="en-us">msg-sim-reset-efl-lite viewer</label>
+               <label xml:lang="ko-kr">메시지</label>
+       </ui-application>
+        <ui-application appid="msg-ui-class0" exec="${BINDIR}/msg-ui-class0" nodisplay="true" multiple="false" type="capp" taskmanage="false">
+               <label>Msg-ui-class0</label>
+               <label xml:lang="en-us">Class0 message viewer</label>
+               <label xml:lang="ko-kr">메시지</label>
+       </ui-application>
+        <ui-application appid="message-dialog" exec="${BINDIR}/message-dialog" nodisplay="true" multiple="false" type="capp" taskmanage="false">
+               <label>message-dialog</label>
+               <label xml:lang="en-us">WAP push SL viewer</label>
+               <label xml:lang="ko-kr">메시지</label>
+       </ui-application>
+        <ui-application appid="msg-composer-efl" exec="${BINDIR}/msg-composer-efl" ui-gadget="true" nodisplay="true" multiple="true" type="capp" taskmanage="false" process-pool="true" hw-acceleration="use-GL" launch_mode="caller">
+               <metadata key="http://developer.samsung.com/tizen/metadata/multiwindow"/>
+               <metadata key="http://developer.samsung.com/tizen/metadata/multiwindow/nodisplay"/>
+                <icon>${PKGNAME}.png</icon>
+               <label>Message</label>
+               <label xml:lang="ar-ae">الرسائل</label>
+               <label xml:lang="as-in">মেছেজসমূহ</label>
+               <label xml:lang="az-az">Mesajlar</label>
+               <label xml:lang="bn-in">বার্তাসমূহ</label>
+               <label xml:lang="bg-bg">Съобщения</label>
+               <label xml:lang="ca-es">Missatges</label>
+               <label xml:lang="cs-cz">Zprávy</label>
+               <label xml:lang="da-dk">Meddelelser</label>
+               <label xml:lang="de-de">Nachrichten</label>
+               <label xml:lang="el-gr">Μηνύματα</label>
+               <label xml:lang="en-gb">Messages</label>
+               <label xml:lang="en-ph">Messages</label>
+               <label xml:lang="en-us">Messages</label>
+               <label xml:lang="es-es">Mensajes</label>
+               <label xml:lang="es-us">Mensajes</label>
+               <label xml:lang="es-mx">Mensajes</label>
+               <label xml:lang="et-ee">Sõnumid</label>
+               <label xml:lang="eu-es">Mezuak</label>
+               <label xml:lang="fi-fi">Viestit</label>
+               <label xml:lang="fr-ca">Messages</label>
+               <label xml:lang="fr-fr">Messages</label>
+               <label xml:lang="ga-ie">Teachtaireachtaí</label>
+               <label xml:lang="gu-in">સંદેશા</label>
+               <label xml:lang="gl-es">Mensaxes</label>
+               <label xml:lang="hi-in">सन्देश</label>
+               <label xml:lang="hr-hr">Poruke</label>
+               <label xml:lang="hu-hu">Üzenetek</label>
+               <label xml:lang="hy-am">Հղրդգրթ</label>
+               <label xml:lang="id-id">Pesan</label>
+               <label xml:lang="is-is">Skilaboð</label>
+               <label xml:lang="it-it">Messaggi</label>
+               <label xml:lang="ja-jp">メッセージ</label>
+               <label xml:lang="ka-ge">შეტყობინებები</label>
+               <label xml:lang="kk-kz">Хабарламалар</label>
+               <label xml:lang="km-kh">សារ</label>
+               <label xml:lang="kn-in">ಸಂದೇಶಗಳು</label>
+               <label xml:lang="ko-kr">메시지</label>
+               <label xml:lang="lo-la">ຂໍ້ຄວາມ</label>
+               <label xml:lang="lt-lt">Žinutės</label>
+               <label xml:lang="lv-lv">Ziņas</label>
+               <label xml:lang="mk-mk">Пораки</label>
+               <label xml:lang="ml-in">സന്ദേശങ്ങൾ</label>
+               <label xml:lang="mr-in">संदेश</label>
+               <label xml:lang="ms-my">Mesej</label>
+               <label xml:lang="my-mm">မက္ေဆ့ခ်္မ်ား</label>
+               <label xml:lang="nb-no">Meldinger</label>
+               <label xml:lang="ne-np">संदेशहरू</label>
+               <label xml:lang="nl-nl">Berichten</label>
+               <label xml:lang="or-in">ସନ୍ଦେଶଗୁଡିକ</label>
+               <label xml:lang="pa-in">ਸੰਦੇਸ਼</label>
+               <label xml:lang="pl-pl">Wiadomości</label>
+               <label xml:lang="pt-br">Mensagens</label>
+               <label xml:lang="pt-pt">Mensagem</label>
+               <label xml:lang="ro-ro">Mesaje</label>
+               <label xml:lang="ru-ru">Сообщения</label>
+               <label xml:lang="si-lk">පණිවිඩ</label>
+               <label xml:lang="sk-sk">Správy</label>
+               <label xml:lang="sl-si">Sporočila</label>
+               <label xml:lang="sr-rs">Poruke</label>
+               <label xml:lang="sv-se">Meddelanden</label>
+               <label xml:lang="ta-in">தகவல்கள்</label>
+               <label xml:lang="te-in">సందేశాలు</label>
+               <label xml:lang="th-th">ข้อความ</label>
+               <label xml:lang="tr-tr">Mesajlar</label>
+               <label xml:lang="tl-ph">Mga Mensahe</label>
+               <label xml:lang="uk-ua">Повідомлення</label>
+               <label xml:lang="ur-pk">پیغامات</label>
+               <label xml:lang="uz-uz">Xabarlar</label>
+               <label xml:lang="vi-vn">Tin nhắn</label>
+               <label xml:lang="zh-cn">信息</label>
+               <label xml:lang="zh-hk">訊息</label>
+               <label xml:lang="zh-sg">讯息</label>
+               <label xml:lang="zh-tw">訊息</label>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/compose"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/compose"/>
+                       <uri name="sms"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/compose"/>
+                       <uri name="mmsto"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/share"/>
+                       <mime name="*/*"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/share"/>
+                       <mime name="*/*"/>
+                       <uri name="sms"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/share"/>
+                       <mime name="*/*"/>
+                       <uri name="mmsto"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/multi_share"/>
+                       <mime name="*/*"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/multi_share"/>
+                       <mime name="*/*"/>
+                       <uri name="sms"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/multi_share"/>
+                       <mime name="*/*"/>
+                       <uri name="mmsto"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/share_text"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/share_text"/>
+                       <uri name="sms"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/share_text"/>
+                       <uri name="mmsto"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/share_contact"/>
+               </application-service>
+               <background-category value="media"/>
+               <background-category value="download"/>
+               <background-category value="background-network"/>
+        </ui-application>
+        <ui-application appid="msg-viewer-efl" exec="${BINDIR}/msg-viewer-efl" ui-gadget="true" nodisplay="true" multiple="true" type="capp" taskmanage="false" process-pool="true" hw-acceleration="use-GL">
+               <label>Message</label>
+       </ui-application>
+        <ui-application appid="msg-setting-efl" exec="${BINDIR}/msg-setting-efl" ui-gadget="true" nodisplay="true" multiple="true" type="capp" taskmanage="false" process-pool="true" hw-acceleration="use-GL">
+               <label>Message</label>
+       </ui-application>
+        <privileges>
+            <privilege>http://tizen.org/privilege/location</privilege>
+            <privilege>http://tizen.org/privilege/datasharing</privilege>
+            <privilege>http://tizen.org/privilege/network.get</privilege>
+            <privilege>http://tizen.org/privilege/wifidirect</privilege>
+            <privilege>http://tizen.org/privilege/callhistory.read</privilege>
+            <privilege>http://tizen.org/privilege/power</privilege>
+            <privilege>http://tizen.org/privilege/contact.write</privilege>
+            <privilege>http://tizen.org/privilege/message.write</privilege>
+            <privilege>http://tizen.org/privilege/content.write</privilege>
+            <privilege>http://tizen.org/privilege/push</privilege>
+            <privilege>http://tizen.org/privilege/account.read</privilege>
+            <privilege>http://tizen.org/privilege/externalstorage</privilege>
+            <privilege>http://tizen.org/privilege/recorder</privilege>
+            <privilege>http://tizen.org/privilege/packagemanager.info</privilege>
+            <privilege>http://tizen.org/privilege/mediastorage</privilege>
+            <privilege>http://tizen.org/privilege/internet</privilege>
+            <privilege>http://tizen.org/privilege/nfc.cardemulation</privilege>
+            <privilege>http://tizen.org/privilege/calendar.write</privilege>
+            <privilege>http://tizen.org/privilege/window.priority.set</privilege>
+            <privilege>http://tizen.org/privilege/volume.set</privilege>
+            <privilege>http://tizen.org/privilege/alarm.set</privilege>
+            <privilege>http://tizen.org/privilege/callhistory.write</privilege>
+            <privilege>http://tizen.org/privilege/call</privilege>
+            <privilege>http://tizen.org/privilege/email</privilege>
+            <privilege>http://tizen.org/privilege/contact.read</privilege>
+            <privilege>http://developer.samsung.com/tizen/privilege/logmanager</privilege>
+            <privilege>http://tizen.org/privilege/shortcut</privilege>
+            <privilege>http://tizen.org/privilege/systemsettings</privilege>
+            <privilege>http://tizen.org/privilege/keymanager</privilege>
+            <privilege>http://tizen.org/privilege/camera</privilege>
+            <privilege>http://tizen.org/privilege/led</privilege>
+            <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+            <privilege>http://tizen.org/privilege/display</privilege>
+            <privilege>http://tizen.org/privilege/network.profile</privilege>
+            <privilege>http://tizen.org/privilege/alarm.get</privilege>
+            <privilege>http://tizen.org/privilege/calendar.read</privilege>
+            <privilege>http://tizen.org/privilege/nfc</privilege>
+            <privilege>http://tizen.org/privilege/account.write</privilege>
+            <privilege>http://tizen.org/privilege/bluetooth</privilege>
+            <privilege>http://tizen.org/privilege/network.set</privilege>
+            <privilege>http://tizen.org/privilege/notification</privilege>
+            <privilege>http://tizen.org/privilege/externalstorage.appdata</privilege>
+            <privilege>http://tizen.org/privilege/haptic</privilege>
+            <privilege>http://tizen.org/privilege/download</privilege>
+            <privilege>http://tizen.org/privilege/message.read</privilege>
+            <privilege>http://tizen.org/privilege/telephony</privilege>
+        </privileges>
+
+</manifest>
diff --git a/packaging/message-app-db.sql b/packaging/message-app-db.sql
new file mode 100755 (executable)
index 0000000..bf8d5b8
--- /dev/null
@@ -0,0 +1,37 @@
+PRAGMA journal_mode = PERSIST;
+
+CREATE TABLE MSG_TMPL_TABLE
+(
+    MSG_ID DATETIME PRIMARY KEY ,
+    MSG_SIZE INTEGER DEFAULT 0 ,
+    MSG_TEXT TEXT
+);
+
+INSERT INTO MSG_TMPL_TABLE VALUES (1, 53, 'IDS_MSG_BODY_SORRY_I_MISSED_YOUR_CALL_M_TEXT_TEMPLATE');
+INSERT INTO MSG_TMPL_TABLE VALUES (2, 64, 'IDS_MSG_BODY_IM_LATE_BUT_ILL_BE_THERE_IN_MINUTES_M_TEXT_TEMPLATE');
+INSERT INTO MSG_TMPL_TABLE VALUES (3, 44, 'IDS_MSG_BODY_HOWS_IT_GOING_Q_M_TEXT_TEMPLATE');
+INSERT INTO MSG_TMPL_TABLE VALUES (4, 39, 'IDS_MSG_BODY_WHATS_UP_Q_M_TEXT_TEMPLATE');
+INSERT INTO MSG_TMPL_TABLE VALUES (5, 44, 'IDS_MSG_BODY_WHERE_ARE_YOU_Q_M_TEXT_TEMPLATE');
+INSERT INTO MSG_TMPL_TABLE VALUES (6, 69, 'IDS_MSG_BODY_PLEASE_CALL_ME_WHEN_YOU_GET_THIS_MESSAGE_M_TEXT_TEMPLATE');
+INSERT INTO MSG_TMPL_TABLE VALUES (7, 47, 'IDS_MSG_BODY_WHEN_CAN_WE_MEET_Q_M_TEXT_TEMPLATE');
+INSERT INTO MSG_TMPL_TABLE VALUES (8, 49, 'IDS_MSG_BODY_ILL_TALK_TO_YOU_SOON_M_TEXT_TEMPLATE');
+INSERT INTO MSG_TMPL_TABLE VALUES (9, 49, 'IDS_MSG_BODY_WHERES_THE_MEETING_Q_M_TEXT_TEMPLATE');
+INSERT INTO MSG_TMPL_TABLE VALUES (10, 47, 'IDS_MSG_BODY_WHATS_THE_NUMBER_Q_M_TEXT_TEMPLATE');
+
+CREATE TABLE MSG_ATTACH_MODULE_TABLE
+(
+    DEFAULT_ORDER INTEGER PRIMARY KEY,
+    USED_CNT INTEGER DEFAULT 0,
+    LATEST_USED INTEGER DEFAULT 0,
+    MODULE_NAME TEXT
+);
+
+INSERT INTO MSG_ATTACH_MODULE_TABLE VALUES (1, 0, 0, 'Quick responses');
+INSERT INTO MSG_ATTACH_MODULE_TABLE VALUES (2, 0, 0, 'Gallery');
+INSERT INTO MSG_ATTACH_MODULE_TABLE VALUES (3, 0, 0, 'TakePicture');
+INSERT INTO MSG_ATTACH_MODULE_TABLE VALUES (4, 0, 0, 'Video');
+INSERT INTO MSG_ATTACH_MODULE_TABLE VALUES (5, 0, 0, 'RecordVideo');
+INSERT INTO MSG_ATTACH_MODULE_TABLE VALUES (6, 0, 0, 'Audio');
+INSERT INTO MSG_ATTACH_MODULE_TABLE VALUES (7, 0, 0, 'RecordAudio');
+INSERT INTO MSG_ATTACH_MODULE_TABLE VALUES (8, 0, 0, 'Memo');
+INSERT INTO MSG_ATTACH_MODULE_TABLE VALUES (9, 0, 0, 'Map');
diff --git a/packaging/message.spec b/packaging/message.spec
new file mode 100755 (executable)
index 0000000..afa5ca5
--- /dev/null
@@ -0,0 +1,135 @@
+Name:       org.tizen.message
+Summary:    Message application
+Version:    0.2.5
+Release:    1
+Group:      devel
+License:    Apache-2.0
+Source0:    %{name}-%{version}.tar.gz
+Source1:    message-app-db.sql
+
+%if "%{?tizen_profile_name}" == "wearable" || "%{?tizen_profile_name}" == "tv"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
+Requires(post): /bin/touch
+Requires: pkgmgr
+BuildRequires:  pkgconfig(accounts-svc)
+BuildRequires:  pkgconfig(bundle)
+BuildRequires:  pkgconfig(capi-appfw-application)
+BuildRequires:  pkgconfig(capi-appfw-app-manager)
+BuildRequires:  pkgconfig(capi-base-utils-i18n)
+BuildRequires:  pkgconfig(capi-content-media-content)
+BuildRequires:  pkgconfig(capi-media-image-util)
+BuildRequires:  pkgconfig(capi-media-metadata-extractor)
+BuildRequires:  pkgconfig(capi-media-player)
+BuildRequires:  pkgconfig(capi-media-sound-manager)
+BuildRequires:  pkgconfig(capi-system-device)
+BuildRequires:  pkgconfig(capi-system-info)
+BuildRequires:  pkgconfig(capi-system-sensor)
+BuildRequires:  pkgconfig(capi-system-system-settings)
+BuildRequires:  pkgconfig(capi-telephony)
+BuildRequires:  pkgconfig(contacts-service2)
+BuildRequires:  pkgconfig(csr-framework)
+BuildRequires:  pkgconfig(db-util)
+BuildRequires:  pkgconfig(dlog)
+BuildRequires:  pkgconfig(elementary)
+BuildRequires:  pkgconfig(ecore)
+BuildRequires:  pkgconfig(ecore-x)
+BuildRequires:  pkgconfig(ecore-input)
+BuildRequires:  pkgconfig(ecore-imf)
+BuildRequires:  pkgconfig(ecore-file)
+BuildRequires:  pkgconfig(ecore-evas)
+BuildRequires:  pkgconfig(eina)
+BuildRequires:  pkgconfig(evas)
+BuildRequires:  pkgconfig(feedback)
+BuildRequires:  pkgconfig(glib-2.0)
+BuildRequires:  pkgconfig(libexif)
+BuildRequires:  pkgconfig(libxml-2.0)
+BuildRequires:  pkgconfig(libpng)
+BuildRequires:  pkgconfig(libcore-context-manager)
+BuildRequires:  pkgconfig(msg-service)
+BuildRequires:  pkgconfig(mm-common)
+BuildRequires:  pkgconfig(mm-player)
+BuildRequires:  pkgconfig(mm-session)
+BuildRequires:  pkgconfig(shortcut)
+BuildRequires:  pkgconfig(storage)
+BuildRequires:  pkgconfig(notification)
+BuildRequires:  pkgconfig(tapi)
+BuildRequires:  pkgconfig(tts)
+BuildRequires:  pkgconfig(ui-gadget-1)
+BuildRequires:  pkgconfig(utilX)
+BuildRequires:  pkgconfig(notification)
+BuildRequires:  pkgconfig(efl-extension)
+BuildRequires:  pkgconfig(capi-system-runtime-info)
+BuildRequires:  pkgconfig(attach-panel)
+BuildRequires: pkgconfig(storage)
+
+BuildRequires:  cmake
+BuildRequires:  edje-tools
+BuildRequires:  gettext-tools
+BuildRequires:  sqlite
+
+%description
+message lite application.
+
+
+%define PREFIX           /usr/apps/%{name}
+%define RESDIR           %{PREFIX}/res
+%define OPTPREFIX        /opt/usr/apps/%{name}
+%define DATADIR          %{OPTPREFIX}/data
+%define APP_DB_FILENAME  .message_app.db
+
+
+%prep
+%setup -q
+
+%build
+CFLAGS+=" -fvisibility=hidden"; export CFLAGS
+CXXFLAGS+=" -fvisibility=hidden"; export CXXFLAGS
+FFLAGS+=" -fvisibility=hidden"; export FFLAGS
+
+%if 0%{?sec_build_binary_debug_enable}
+export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE -D_MSG_FEATURE_SMS_DELIVERY_REPORT"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
+export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
+%endif
+
+LDFLAGS+="-Wl,--rpath=%{PREFIX}/lib -Wl,--as-needed -Wl,--hash-style=both"; export LDFLAGS
+cmake . \
+    -DCMAKE_INSTALL_PREFIX=%{PREFIX} \
+    -DCMAKE_INSTALL_DATADIR=%{DATADIR} \
+    -DCMAKE_PKGNAME=%{name} \
+    -DTIZEN_VERSION=%{_project}
+
+make #%{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+mkdir -p %{buildroot}/%{DATADIR}/db
+mkdir -p %{buildroot}/%{OPTPREFIX}/shared/trusted
+sqlite3 %{buildroot}/%{DATADIR}/db/%{APP_DB_FILENAME} < %{SOURCE1}
+
+%post
+chown -R 5000:5000 %{DATADIR}
+chown -R 5000:5000 %{OPTPREFIX}/shared/trusted
+if [ -f /usr/lib/rpm-plugins/msm.so ]
+then
+    find %{DATADIR} -exec chsmack -a 'org.tizen.message' {} \;
+fi
+
+%files
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%dir %{OPTPREFIX}/shared/trusted
+%{PREFIX}/bin/*
+%{PREFIX}/lib/*
+%{PREFIX}/shared/*
+%{RESDIR}/*
+%{PREFIX}/lib/ug/*.so
+%{DATADIR}/*
+
+/usr/share/packages/*.xml
+/usr/share/icons/default/small/*
+/usr/share/license/%{name}
+/etc/smack/accesses.d/%{name}.efl
diff --git a/run.sh b/run.sh
new file mode 100644 (file)
index 0000000..d63d02f
--- /dev/null
+++ b/run.sh
@@ -0,0 +1,417 @@
+#!/bin/bash
+
+usage()
+{
+echo "
+usage: sh run.sh [-h] [-b] [-i] [-r] [-t] [-d] [-A ARCH]
+                 [--help] [--build] [--install] [--run] [--test] [--debug] [--arch ARCH]
+
+optional arguments:
+  -h, --help             show this help message and exit
+
+action:
+  -b  --build            build project
+  -i, --install          install to device or emulator
+  -r, --run              run application. Don't use with -t option
+  -t, --test             run test. Don't use with -r option
+  -d, --debug            install debuginfo and debugsource packages
+
+build configuration options:
+  -A ARCH, --arch ARCH   build target arch. Default - armv7l 
+  -b 'Keys', --build 'Keys'  build project with additional gbs build keys
+
+"
+}
+
+##-------------- check options --------------##
+
+if [ -z "$1" ]; then usage; exit 0; fi
+
+BUILDOPTION=false
+BUILDKEYS=""
+INSTALLOPTION=false
+RUNOPTION=false
+DEBUGOPTION=false
+TESTOPTION=false
+PLATFORM=armv7l
+
+SHORTOPTS="hA:b::irdt"
+LONGOPTS="arch:,build::,install,run,debug,test,help"
+SCRIPTNAME=`basename $0`
+
+ARGS=$(getopt -q --options "$SHORTOPTS" --longoptions "$LONGOPTS" --name $SCRIPTNAME -- "$@")
+
+while true; do
+   case $1 in
+      -h|--help)
+         usage
+         exit 0
+         ;;
+      -A|--arch)
+         val=`echo $2 | sed -e "s/-//g"`
+         if echo "$SHORTOPTS$LONGOPTS" | grep -q "$val"; then
+           echo "Wrong ARCH"
+           usage
+           exit 0;             
+         fi
+         PLATFORM=$2
+         shift
+         ;;         
+      -b|--build)
+         BUILDOPTION=true
+         key=`echo $2 | sed -e "s/-//g"`
+         if ! echo "$SHORTOPTS$LONGOPTS" | grep -q "$key"; then
+           BUILDKEYS=$2
+           shift
+         fi     
+         ;;
+      -i|--install)
+         INSTALLOPTION=true
+         ;;
+      -r|--run)
+         RUNOPTION=true
+         ;;
+      -d|--debug)
+         DEBUGOPTION=true
+         ;;
+      -t|--test)
+         TESTOPTION=true
+         ;;
+      --)
+         break
+         ;;
+      *)
+         if [ ! -z "$1" ]; then usage; exit 0; fi
+         break
+         ;;
+   esac
+   shift
+done
+
+if [ $RUNOPTION = "true" -a $TESTOPTION = "true" ];
+  then
+  echo "
+    Only one action is possible: run appication (-r) or run tests (-t)
+  "
+  usage
+  exit 0
+fi
+
+echo "BUILDOPTION=$BUILDOPTION"
+echo "BUILDKEYS=$BUILDKEYS"
+echo "INSTALLOPTION=$INSTALLOPTION"
+echo "RUNOPTION=$RUNOPTION"
+echo "DEBUGOPTION=$DEBUGOPTION"
+echo "TESTOPTION=$TESTOPTION"
+echo "PLATFORM=$PLATFORM"
+
+##------------- project config -------------##
+
+PREFIX="org.tizen"
+INSTALLDIR=/usr/apps
+SDB=~/tizen-sdk/tools/sdb
+TEMPDIR=/home/rpms # for keeping rpm packages on device
+GBSROOT=~/GBS-ROOT
+
+RPMSPATH=$GBSROOT/local/BUILD-ROOTS/scratch.$PLATFORM.0/home/abuild/rpmbuild/RPMS/$PLATFORM
+
+##------------------ spec ------------------##
+
+spec_file=`find -name *.spec`
+
+# org.tizen.message
+APPNAME=`cat "$spec_file" | grep ^Name    | awk '{print $2}'`
+# 0.8.52
+VERSION=`cat "$spec_file" | grep ^Version | awk '{print $2}'`
+# 1
+RELEASE=`cat "$spec_file" | grep ^Release | awk '{print $2}'`
+# message
+BINNAME=`echo $APPNAME | sed "s/$PREFIX\.//"`
+
+DEBUGSOURCEPKGNAME=$APPNAME-debugsource-$VERSION-$RELEASE.$PLATFORM
+DEBUGINFOPKGNAME=$APPNAME-debuginfo-$VERSION-$RELEASE.$PLATFORM
+
+##-----------------------------------------##
+
+hasPrefix() 
+{
+  if echo "$1" | grep -q "$PREFIX"; then
+    return 0;
+  else
+    return 1;
+  fi
+}
+
+##--------------- sdb shell ---------------##
+
+SdbShell()
+{
+  ShowMessage "$1" yellow 
+  $SDB shell su -c "$1"
+}
+
+##--------------- color echo --------------##
+
+# arguments:
+# $1 - message text
+# $2 - text color (red, green, blue, yellow). Default value - blue
+
+ShowMessage()
+{
+    case "$2" in
+    "green")
+      color="32m"
+      ;;
+    "red")
+      color="31m"
+      ;;      
+    "blue")
+      color="34m"
+      ;; 
+    "yellow")
+      color="33m"
+      ;;       
+    *)    
+      color="34m"
+      ;;
+    esac
+
+  echo "\033[1;"$color$1"\033[0m"
+}
+
+##----------- check connection ------------##
+
+checkConnection()
+{
+    sdbstate=$($SDB get-state)
+    if [ $sdbstate = "unknown" ]
+      then
+        ShowMessage "Connection error. Make sure that only one device or emulator is connected." red
+        exit 0
+    fi
+}
+
+##---------------- build ------------------##
+
+build()
+{
+    ShowMessage "Building application..."
+    
+    gbsoutput="gbsoutput.log"
+    
+    gbs -v -d build -A $PLATFORM --include-all --keep-packs $BUILDKEYS 2>&1 | tee $gbsoutput
+
+    if cat "$gbsoutput" | grep -q "gbs:info: Done"; then
+      ShowMessage "Build successfull!" green
+      rm -f $gbsoutput;
+    else
+      ShowMessage "Build failed!" red 
+      rm -f $gbsoutput
+      exit 0;
+    fi
+}
+
+##-----------------------------------------##
+
+# figure out which packages need to be installed
+
+initPackageList()
+{
+    packages_count=`cat "$spec_file" | grep -c %package`
+
+    # if packages count more then 1
+    if [ $packages_count -gt 1 ]
+      then 
+        ShowMessage "When building the project is generated $packages_count (+ debuginfo and debugsource) RPM packages"
+        # case of multipackage project
+        PACKAGELIST=`cat "$spec_file" | grep %package | sed 's/-n//' |awk '{print $2}'`
+      else
+        ShowMessage "one package"
+        # only one package into package list
+        PACKAGELIST=$APPNAME
+    fi
+}
+
+##------------ Uninstalling ---------------##
+
+uninstall()
+{
+
+    ShowMessage "Stopping old application..."
+    SdbShell "pkill -f $APPNAME"
+
+    for current_package in $PACKAGELIST
+    do
+      ShowMessage "Uninstalling old application $current_package..."
+      if hasPrefix $current_package; then
+        # uninstall with pkgcmd
+        SdbShell "pkgcmd -q -u -n $current_package"    
+      else
+        # uninstall with rpm
+        SdbShell "rpm -e --nodeps $current_package-*"
+      fi  
+    done
+
+    if [ $DEBUGOPTION = "true" ]
+      then
+        SdbShell "rpm -e --nodeps $APPNAME-debugsource-*"
+        SdbShell "rpm -e --nodeps $APPNAME-debuginfo-*"
+    fi
+}
+
+##-------------- Pushing ------------------##
+
+push()
+{
+    SdbShell "mkdir -p $TEMPDIR/"
+
+    for current_package_name in $PACKAGELIST
+    do
+      current_package=$current_package_name-$VERSION-$RELEASE.$PLATFORM.rpm
+      ShowMessage "Pushing the package $current_package to device ..."
+      $SDB push $RPMSPATH/$current_package $TEMPDIR/  
+    done
+
+    if [ $DEBUGOPTION = "true" ]
+      then
+        $SDB push $RPMSPATH/$DEBUGSOURCEPKGNAME.rpm $TEMPDIR/
+        $SDB push $RPMSPATH/$DEBUGINFOPKGNAME.rpm $TEMPDIR/
+    fi
+}
+
+##------------- Installing ----------------##
+
+install()
+{
+    for current_package_name in $PACKAGELIST
+    do
+      current_package=$current_package_name-$VERSION-$RELEASE.$PLATFORM.rpm
+      ShowMessage "Installing the package $current_package ..."
+      if hasPrefix $current_package; then
+        # install with pkgcmd
+        SdbShell "pkgcmd -q -i -t rpm -p $TEMPDIR/$current_package" 
+      else
+        # uninstall with rpm
+        SdbShell "rpm -i $TEMPDIR/$current_package"
+      fi  
+    done
+
+    if [ $DEBUGOPTION = "true" ]
+      then
+        ShowMessage "Installing the package $DEBUGINFOPKGNAME.rpm ..."
+        SdbShell "rpm -i $TEMPDIR/$DEBUGINFOPKGNAME.rpm"
+        ShowMessage "Installing the package $DEBUGSOURCEPKGNAME.rpm ..."
+        SdbShell "rpm -i $TEMPDIR/$DEBUGSOURCEPKGNAME.rpm"
+    fi
+}
+
+##------- Install Missed Libraries -------##
+
+installMessagePort()
+{
+    LIBRARIESDIR=$1
+
+    MESSAGEPORT="message-port"
+    MESSAGEPORTPKG="$MESSAGEPORT-1.2.2.1-1.i586.rpm"
+    
+    rrr=`$SDB shell su -c "rpm -qa | grep $MESSAGEPORT"`
+    if echo "$rrr" | grep -q $MESSAGEPORT; then
+        return 0;
+    fi
+
+    #push
+    $SDB push $LIBRARIESDIR/$MESSAGEPORTPKG $TEMPDIR/
+    #install
+    SdbShell "rpm -i $TEMPDIR/$MESSAGEPORTPKG"
+    #remove file
+    SdbShell "rm -f $TEMPDIR/$MESSAGEPORTPKG"
+}
+
+installLibEmail()
+{
+    LIBRARIESDIR=$1
+    
+    EMAILSERVICE="email-service-0.13.7-1.i586"
+    EMAILSERVICEPRG="$EMAILSERVICE.rpm"
+    
+    res=`$SDB shell su -c "rpm -qa | grep $EMAILSERVICE"`
+    if echo "$res" | grep -q $EMAILSERVICE; then
+        return 0;
+    fi
+    #uninstall old message-service
+    SdbShell "rpm -e --nodeps email-service-*"
+    SdbShell "rm -fr /usr/share/license/email-service"
+    #push
+    $SDB push $LIBRARIESDIR/$EMAILSERVICEPRG $TEMPDIR/
+    #install
+    SdbShell "rpm -i $TEMPDIR/$EMAILSERVICEPRG"
+    #remove file
+    SdbShell "rm -f $TEMPDIR/$EMAILSERVICEPRG"
+
+}
+
+installMissedLibraries()
+{
+    PWDRES=`pwd`
+    LIBRARIESDIR=$PWDRES/firmware_dependencies
+
+    installMessagePort $LIBRARIESDIR
+    #installLibEmail $LIBRARIESDIR
+}
+
+##--------------- Running ----------------##
+
+run()
+{
+  if hasPrefix $APPNAME; then
+    ABSOLUTEPATHTOAPP=$INSTALLDIR/$APPNAME/bin/$BINNAME   
+  else
+    fullappname=`echo $APPNAME | sed "s/^/$PREFIX\./"`
+    ABSOLUTEPATHTOAPP=$INSTALLDIR/$fullappname/bin/$BINNAME
+  fi  
+
+  if  [ $1 = "tests" ]
+    then
+      TESTAPP=$ABSOLUTEPATHTOAPP-test
+      # todo: stop old test-run
+      ShowMessage "running the $TESTAPP..."
+      SdbShell "$TESTAPP"
+    else
+      SdbShell "pkill -f $APPNAME"
+      ShowMessage "running the $ABSOLUTEPATHTOAPP..."
+      SdbShell "$ABSOLUTEPATHTOAPP"  
+  fi
+}
+
+##-----------------------------------------##
+
+installApp()
+{
+  checkConnection
+  initPackageList
+  uninstall
+  push
+  install
+  if [ $PLATFORM = "i586" ]; then installMissedLibraries; fi
+}
+
+runApp()
+{
+  checkConnection
+  run
+}
+
+runTest()
+{
+  checkConnection
+  run tests
+}
+
+##------------------ main -----------------##
+
+if [ $BUILDOPTION = "true" ]; then build; fi
+if [ $INSTALLOPTION = "true" ]; then installApp; fi
+if [ $RUNOPTION = "true" ]; then runApp; fi
+if [ $TESTOPTION = "true" ]; then runTest; fi
+
+##-----------------------------------------##
diff --git a/setting/CMakeLists.txt b/setting/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..ca6e0f1
--- /dev/null
@@ -0,0 +1,60 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(message C)
+
+SET (SETTING_THEME setting_theme)
+SET (MSG_UI_SETTING msg_ui_setting)
+
+########################
+# Message Setting List #
+########################
+SET(SETTING_SRCS
+       ./src/main/msg-ui-setting-gadget.c
+        ./src/main/msg-ui-setting-main.c
+        ./src/main/msg-ui-setting-callback.c
+        ./src/main/msg-ui-setting-common-util.c
+        ./src/main/msg-ui-setting-msg-service-wrapper.c
+       ./src/text/msg-ui-setting-text-message.c
+       ./src/text/msg-ui-setting-text-sim-card-msg.c
+        ./src/text/msg-ui-setting-text-service-center.c
+        ./src/multimedia/msg-ui-setting-mm-message.c
+        ./src/notification/msg-ui-setting-notification.c
+)
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_SETTING_DIR}/include
+               ${CMAKE_SOURCE_MAIN_DIR}
+               ${CMAKE_SOURCE_COMMON_DIR}
+               /usr/include/msg-service/
+)
+
+
+FOREACH(flag ${pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+
+ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{PREFIX}\"")
+ADD_DEFINITIONS("-DDATAFS=\"$ENV{DATADIR}\"")
+ADD_DEFINITIONS("-DTARGET")
+ADD_DEFINITIONS("-DSLP_PROF")
+
+
+ADD_CUSTOM_TARGET(${SETTING_THEME}.edj
+                COMMAND edje_cc -no-save ${EDJE_CC_DEFINITIONS} -id ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image
+                -sd ${CMAKE_SOURCE_COMMON_DIR}/data/sound
+                ${CMAKE_SOURCE_SETTING_DIR}/theme/${SETTING_THEME}.edc ${CMAKE_SOURCE_SETTING_DIR}/theme/${SETTING_THEME}.edj
+                DEPENDS ${CMAKE_SOURCE_SETTING_DIR}/theme/${SETTING_THEME}.edc
+)
+
+ADD_DEPENDENCIES(${PROJECT_NAME} ${SETTING_THEME}.edj)
+
+
+# Install executable and .edj files.
+INSTALL(FILES ${CMAKE_SOURCE_SETTING_DIR}/theme/${SETTING_THEME}.edj DESTINATION ${EDJDIR})
+ADD_LIBRARY(msg-setting-efl SHARED ${SETTING_SRCS})
+TARGET_LINK_LIBRARIES(msg-setting-efl ${pkgs_LDFLAGS} -L${CMAKE_SOURCE_COMMON_DIR} -lmsg-common)
+
+INSTALL(TARGETS msg-setting-efl  DESTINATION ${UGDIR})
+
+#i18n
+#ADD_SUBDIRECTORY(po)
diff --git a/setting/include/msg-ui-setting-callback.h b/setting/include/msg-ui-setting-callback.h
new file mode 100755 (executable)
index 0000000..89bce40
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_MSG_UI_SETTING_CALLBACK_H__
+#define __DEF_MSG_UI_SETTING_CALLBACK_H__
+
+#include "msg-ui-setting-main.h"
+
+/*============================================================================
+                               FUNCTION DEFINE
+=============================================================================*/
+void msg_ui_setting_sim_card_msg_cb(void *data, Evas_Object *obj, void *event_info);
+
+Eina_Bool msg_ui_setting_quit_cb(void *data, Elm_Object_Item *it);
+
+Eina_Bool msg_ui_setting_ignore_hw_back_events_timer_cb(void *data);
+
+#endif
diff --git a/setting/include/msg-ui-setting-common-util.h b/setting/include/msg-ui-setting-common-util.h
new file mode 100755 (executable)
index 0000000..5c20382
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_MSG_UI_SETTING_COMMON_UTIL_H__
+#define __DEF_MSG_UI_SETTING_COMMON_UTIL_H__
+
+#include "msg-ui-setting-main.h"
+#include "msg-ui-setting-text-sim-card-msg.h"
+#include <notification.h>
+#include <telephony/telephony.h>
+
+/* common string */
+#define MSGS_STR_ACCESSITEM_ONOFF_BTN  "IDS_MSGS_BODY_ON_OFF_BUTTON_T_TTS"
+#define MSGS_STR_ACCESSITEM_EXP_LIST   "IDS_MSGS_BODY_EXPANDABLE_LIST_T_TTS"
+#define MSGS_STR_ACCESSITEM_RADIO_BTN  "IDS_MSGS_BODY_RADIO_BUTTON"
+#define MSGS_STR_ACCESSITEM_TICK_BOX   "IDS_MSG_BODY_TICK_BOX_T_TTS"
+
+#define MSG_POPUP_DEFAULT_TIMEOUT 2
+#define MSG_POPUP_NO_TIMEOUT 0
+
+#define MSG_MULTILINE_FONT_SIZE "32"
+#define MSG_FIXED_SIZE_MULTILINE_TEMPLATE "<font_size="MSG_MULTILINE_FONT_SIZE">%s</font_size>"
+
+struct _msg_ui_setting_list_item {
+       char *name;
+       void (*func)(void *data, Evas_Object *obj, void *event_info);
+};
+
+struct _msg_ui_setting_mixed_list_item {
+       char depth;
+       char *name;
+       void (*func)(void *data, Evas_Object *obj, void *event_info);
+       Elm_Genlist_Item_Type type;
+};
+
+typedef enum {
+       MSG_UI_SETTING_QUICK_PANEL_SOUND_ON = 1,
+       MSG_UI_SETTING_QUICK_PANEL_SOUND_OFF = 0,
+       MSG_UI_SETTING_QUICK_PANEL_VIBRATION_ON = 1,
+       MSG_UI_SETTING_QUICK_PANEL_VIBRATION_OFF = 0,
+} MSG_UI_SETTING_QUICK_PANEL_SOUND_VIBATION_BOOL;
+
+typedef enum {
+       MSG_UI_SETTING_TITLE_BTN_TYPE_CANCEL = 0,
+       MSG_UI_SETTING_TITLE_BTN_TYPE_DONE,
+       MSG_UI_SETTING_TITLE_BTN_TYPE_DELETE,
+} MSG_UI_SETTING_TITLE_BTN_TYPE_E;
+
+/*============================================================================
+                               FUNCTION DEFINE
+=============================================================================*/
+Evas_Object *msg_ui_setting_common_create_layout(Evas_Object *parent);
+void msg_ui_setting_common_create_back_btn(Evas_Object *nf, Elm_Naviframe_Item_Pop_Cb func, void *data);
+void msg_ui_setting_common_nf_pop_quit_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_setting_common_title_btn_remove(void *data);
+void msg_ui_setting_common_toolbar_btn_remove(void *data);
+
+Evas_Object *msg_ui_setting_common_create_genlist(Evas_Object *parent);
+void msg_ui_setting_common_append_genlist_separator(Evas_Object *genlist, void *data);
+
+Evas_Object *msg_ui_setting_common_create_scroller(Evas_Object *parent);
+Evas_Object *msg_ui_setting_common_create_no_content_view(Evas_Object *parent, const char *text);
+Evas_Object *msg_ui_setting_common_add_box(Evas_Object *parent);
+void msg_ui_setting_common_keypad_activated_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_setting_common_entry_max_chars_cb(void *data, Evas_Object *obj, void *event_info);
+
+void msg_ui_setting_common_popup_delete(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_setting_common_popup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_setting_common_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_setting_common_show_popup_extra(PMSG_SETTING_DATA settingData, char *str_id, double timeout);
+void msg_ui_setting_common_show_notify(void *data, char *str_id);
+
+void msg_ui_setting_common_get_time_format(PMSG_SETTING_DATA settingData);
+void msg_ui_setting_common_get_time_pattern();
+void msg_ui_setting_common_make_time_string(time_t *msg_t, char *buf, int buf_len);
+
+void  msg_ui_setting_common_sync_local_font_size(void *data);
+
+void msg_ui_setting_common_ctxpopup_remove(void *data);
+void msg_ui_setting_common_ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_setting_common_ctxpopup_move_more_ctxpopup(Evas_Object *ctx);
+void msg_ui_setting_common_ctxpopup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_setting_common_ctxpopup_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_setting_common_ctxpopup_rotate_more_ctxpopup_cb(void *data, Evas_Object *obj, void *event_info);
+Evas_Object *msg_ui_setting_common_create_genlist_popup(Evas_Object *parent, void *data, char *string_id);
+
+extern char *msg_ui_setting_sim_msg_gl_text_get(void *data, Evas_Object *obj, const char *part);
+extern Evas_Object *msg_ui_setting_sim_msg_gl_content_get(void *data, Evas_Object *obj, const char *part);
+extern void msg_ui_setting_sim_msg_gl_sel(void *data, Evas_Object *obj, void *event_info);
+extern void msg_ui_setting_set_msg_data(PMSG_UI_SETTING_THREAD_MSG_DATA_S msg_data, msg_struct_t msgInfo);
+extern void msg_ui_setting_sim_msg_gl_del(void *data, Evas_Object *obj);
+extern Evas_Object *msg_ui_setting_sim_msg_create_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData, int simnumber);
+
+extern void msg_ui_setting_dsds_sim_msg_view_init(void *data, int index);
+extern Eina_Bool msg_ui_setting_sim_card_msg_back_btn_cb(void *data, Elm_Object_Item *it);
+extern void msg_ui_setting_sim_msg_view_init(void *data);
+extern void msg_ui_setting_sim_msg_view_destroy(void *data);
+extern void msg_ui_setting_sim_msg_view_show(void *data);
+extern void msg_ui_setting_sim_msg_update_view(void *data);
+extern void msg_ui_setting_create_sim_card_msg_main(void *data, Evas_Object *obj, void *event_info);
+
+extern void msg_ui_setting_common_create_title_left_btn(PMSG_SETTING_DATA settingData,  Evas_Smart_Cb func, void *data, MSG_UI_SETTING_TITLE_BTN_TYPE_E btn_type);
+extern void msg_ui_setting_common_create_title_right_btn(PMSG_SETTING_DATA settingData,  Evas_Smart_Cb func, void *data, MSG_UI_SETTING_TITLE_BTN_TYPE_E btn_type);
+
+static telephony_h msg_common_get_sim_handle();
+bool msg_common_is_sim_active();
+
+void msg_ui_setting_common_check_get_revset(Evas_Object *obj);
+
+#endif
diff --git a/setting/include/msg-ui-setting-gadget.h b/setting/include/msg-ui-setting-gadget.h
new file mode 100755 (executable)
index 0000000..47262f6
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_MSG_UI_SETTING_GADGET_H__
+#define __DEF_MSG_UI_SETTING_GADGET_H__
+#endif /* __DEF_MSG_UI_SETTING_H__ */
diff --git a/setting/include/msg-ui-setting-main.h b/setting/include/msg-ui-setting-main.h
new file mode 100755 (executable)
index 0000000..6352c04
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_MSG_UI_MAIN_SETTING_H__
+#define __DEF_MSG_UI_MAIN_SETTING_H__
+
+#include <Elementary.h>
+#include "message.h"
+#include "msg-ui-util.h"
+#include "msg-ui-common-utility.h"
+#include "msg-ui-image-resource.h"
+#include "msg-ui-setting-types.h"
+#include "msg-ui-setting-gadget.h"
+#include "msg-ui-setting-callback.h"
+#include "msg-ui-setting-common-util.h"
+#include "msg-ui-setting-msg-service-wrapper.h"
+
+extern struct _msg_ui_setting_list_item setting_menu_its[];
+
+extern MSG_COMMON_LANG_CHANGED SETTING_STRING_ADD;
+extern MSG_COMMON_LANG_CHANGED SETTING_STRING_DELETE;
+extern MSG_COMMON_LANG_CHANGED SETTING_STRING_SELECT_ALL;
+extern MSG_COMMON_LANG_CHANGED SETTING_STRING_SAVE;
+extern MSG_COMMON_LANG_CHANGED SETTING_STRING_CANCEL;
+extern MSG_COMMON_LANG_CHANGED SETTING_STRING_OK;
+extern MSG_COMMON_LANG_CHANGED SETTING_STRING_EDIT;
+extern MSG_COMMON_LANG_CHANGED SETTING_STRING_MAX_REACHED;
+extern MSG_COMMON_LANG_CHANGED SETTING_STRING_ENTER_TEXT;
+
+#define MAX_BLOCK_FILTER_VALUE_LEN     (32)
+#define MAX_BLOCK_FILTER_BUF_LEN       (128)
+#define MSG_SETTING_POPUP_LIST_H  96
+
+
+struct _SimIconNode {
+        char *name;
+        char *icon;
+};
+extern struct _SimIconNode simPopupIconNode[10];
+
+/*============================================================================
+                               DEFINE
+=============================================================================*/
+typedef enum {
+       /* text msg settings */
+       MSG_UI_SETTING_MAIN_MENU_TEXT_MSG_SETTINGS,
+       MSG_UI_SETTING_MAIN_MENU_MANAGE_SIM_CARD_MSG,
+       MSG_UI_SETTING_MAIN_MENU_EXPLAIN_SIM_CARD_MSG,
+       MSG_UI_SETTING_MAIN_MENU_MESSAGE_CENTER,
+       MSG_UI_SETTING_MAIN_MENU_INPUT_MODE,
+       MSG_UI_SETTING_MAIN_MENU_EXPLAIN_INPUT_MODE,
+       MSG_UI_SETTING_MAIN_MENU_DELIVERY_REPORT,
+       MSG_UI_SETTING_MAIN_MENU_EXPLAIN_DELIVERY_REPORT,
+
+       /* mm msg settings */
+       MSG_UI_SETTING_MAIN_MENU_MM_SETTINGS,
+       MSG_UI_SETTING_MAIN_MENU_MM_DELIVERY_REPORT,
+       MSG_UI_SETTING_MAIN_MENU_MM_EXPLAIN_DELIVERY_REPORT,
+       MSG_UI_SETTING_MAIN_MENU_MM_READ_REPORT,
+       MSG_UI_SETTING_MAIN_MENU_MM_EXPLAIN_READ_REPORT,
+       MSG_UI_SETTING_MAIN_MENU_AUTO_RETRIEVE,
+       MSG_UI_SETTING_MAIN_MENU_EXPLAIN_AUTO_RETRIEVE,
+       MSG_UI_SETTING_MAIN_MENU_ROAMING_AUTO_RETRIEVE,
+       MSG_UI_SETTING_MAIN_MENU_EXPLAIN_ROAMING_AUTO_RETRIEVE,
+
+       /* notification settings */
+       MSG_UI_SETTING_MAIN_MENU_NOTIFICATION_SETTINGS,
+       MSG_UI_SETTING_MAIN_MENU_NOTIFICATIONS,
+       MSG_UI_SETTING_MAIN_MENU_EXPLAIN_NOTIFICATIONS,
+       MSG_UI_SETTING_MAIN_MENU_SELECT_RINGTONE,
+       MSG_UI_SETTING_MAIN_MENU_VIBRATE,
+
+       /* max */
+       MSG_UI_SETTING_MAIN_MENU_MAIN_MENU_MAX
+} MSG_UI_SETTING_MAIN_MENU_E;
+
+enum {
+       TAB_BAR_ITEM_1 = 0,
+       TAB_BAR_ITEM_2,
+       TAB_BAR_ITEM_3,
+       TAB_BAR_ITEM_MAX
+};
+
+enum {
+       SETTING_POPUP_WITHOUT_CONFIRM = 0,
+       SETTING_POPUP_WITH_CONFIRM,
+       SETTING_POPUP_MAX
+};
+
+
+enum {
+       MSG_UG_REQ_INVALID = -1,
+       MSG_UG_REQ_MAIN_SCREEN = 0,
+       MSG_UG_REQ_MAX,
+       MSG_UG_REQ_SIM_VIEW
+};
+
+/*============================================================================
+                               FUNCTION DEFINE
+=============================================================================*/
+
+PMSG_SETTING_DATA msg_ui_setting_get_data(void);
+
+void msg_ui_setting_storage_change_cb(msg_handle_t handle, msg_storage_change_type_t type, msg_id_list_s *pMsgIdList, void *user_param);
+
+void msg_ui_setting_launch(PMSG_SETTING_DATA settingData);
+void msg_ui_setting_create_main_view(PMSG_SETTING_DATA settingData);
+void msg_ui_setting_sim_view_launch(PMSG_SETTING_DATA settingData);
+
+#endif /* __DEF_MSG_UI_MAIN_SETTING_H__ */
+
diff --git a/setting/include/msg-ui-setting-mm-message.h b/setting/include/msg-ui-setting-mm-message.h
new file mode 100755 (executable)
index 0000000..9edd7e1
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_MSG_UI_SETTING_MM_MESSAGE_H__
+#define __DEF_MSG_UI_SETTING_MM_MESSAGE_H__
+
+#include "msg-ui-setting-main.h"
+
+/*============================================================================
+                               ENUMS
+=============================================================================*/
+typedef enum {
+       MSG_UI_SETTING_MM_MENU_TITLE = MSG_UI_SETTING_MAIN_MENU_MM_SETTINGS,
+       MSG_UI_SETTING_MM_MENU_DELIVERY_REPORT,
+       MSG_UI_SETTING_MM_MENU_EXPLAIN_DELIVERY_REPORT,
+       MSG_UI_SETTING_MM_MENU_READ_REPORT,
+       MSG_UI_SETTING_MM_MENU_EXPLAIN_READ_REPORT,
+       MSG_UI_SETTING_MM_MENU_AUTO_RETRIEVE,
+       MSG_UI_SETTING_MM_MENU_EXPLAIN_AUTO_RETRIEVE,
+       MSG_UI_SETTING_MM_MENU_ROAMING_AUTO_RETRIEVE,
+       MSG_UI_SETTING_MM_MENU_EXPLAIN_ROAMING_AUTO_RETRIEVE,
+       MSG_UI_SETTING_MM_MENU_MAX
+
+} MSG_UI_SETTING_MM_MENU_E;
+
+/*============================================================================
+                               FUNCTION DEFINE
+=============================================================================*/
+
+void msg_ui_setting_mms_group_create(PMSG_SETTING_DATA settingData);
+#endif
diff --git a/setting/include/msg-ui-setting-msg-service-wrapper.h b/setting/include/msg-ui-setting-msg-service-wrapper.h
new file mode 100755 (executable)
index 0000000..f84d841
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_MSG_UI_SETTING_MSG_SERVICE_WRAPPER_H__
+#define __DEF_MSG_UI_SETTING_MSG_SERVICE_WRAPPER_H__
+
+#include "msg-ui-setting-main.h"
+
+int msg_ui_setting_msg_set_config(PMSG_SETTING_DATA settingData);
+
+int msg_ui_setting_msg_get_config(PMSG_SETTING_DATA settingData);
+
+#endif
diff --git a/setting/include/msg-ui-setting-notification.h b/setting/include/msg-ui-setting-notification.h
new file mode 100755 (executable)
index 0000000..d0b3674
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_MSG_UI_SETTING_NOTIFICATION_SETTING_H__
+#define __DEF_MSG_UI_SETTING_NOTIFICATION_SETTING_H__
+
+#include "msg-ui-setting-main.h"
+
+/*============================================================================
+                               ENUMS
+=============================================================================*/
+typedef enum {
+       MSG_UI_SETTING_NOTI_MENU_SUB_TITLE_NOTIFICATION = MSG_UI_SETTING_MAIN_MENU_NOTIFICATION_SETTINGS,
+       MSG_UI_SETTING_NOTI_MENU_ALERTS,
+       MSG_UI_SETTING_NOTI_MENU_EXPLAIN_NOTIFICATIONS,
+       MSG_UI_SETTING_NOTI_MENU_SELECT_RINGTONE,
+       MSG_UI_SETTING_NOTI_MENU_VIBRATE,
+       MSG_UI_SETTING_NOTI_MENU_MAX
+
+} MSG_UI_SETTING_NOTIFICATION_MENU_E;
+
+/*============================================================================
+                               FUNCTION DEFINE
+=============================================================================*/
+void msg_ui_setting_notifications_gl_chk_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_setting_notifications_group_create(PMSG_SETTING_DATA settingData);
+
+#endif
diff --git a/setting/include/msg-ui-setting-text-message.h b/setting/include/msg-ui-setting-text-message.h
new file mode 100755 (executable)
index 0000000..d5a1257
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_MSG_UI_SETTING_TEXT_MESSAGE_H__
+#define __DEF_MSG_UI_SETTING_TEXT_MESSAGE_H__
+
+#include "msg-ui-setting-main.h"
+
+/*============================================================================
+                               ENUMS
+=============================================================================*/
+
+typedef enum {
+       MSG_UI_SETTING_TEXT_MENU_TITLE = MSG_UI_SETTING_MAIN_MENU_TEXT_MSG_SETTINGS,
+       MSG_UI_SETTING_TEXT_MENU_MANAGE_SIM_CARD_MSG,
+       MSG_UI_SETTING_TEXT_MENU_EXPLAIN_SIM_CARD_MSG,
+       MSG_UI_SETTING_TEXT_MENU_MESSAGE_CENTER,
+       MSG_UI_SETTING_TEXT_MENU_INPUT_MODE,
+       MSG_UI_SETTING_TEXT_MENU_EXPLAIN_INPUT_MODE,
+       MSG_UI_SETTING_TEXT_MENU_DELIVERY_REPORT,
+       MSG_UI_SETTING_TEXT_MENU_EXPLAIN_DELIVERY_REPORT,
+       MSG_UI_SETTING_TEXT_MENU_MAX
+
+} MSG_UI_SETTING_TEXT_MENU_E;
+
+typedef enum {
+       MSG_UI_SETTING_TEXT_INPUT_MODE_MENU_GSM_ALPHABET,
+       MSG_UI_SETTING_TEXT_INPUT_MODE_MENU_UNICODE,
+       MSG_UI_SETTING_TEXT_INPUT_MODE_MENU_AUTOMATIC,
+       MSG_UI_SETTING_TEXT_INPUT_MODE_MENU_MAX
+
+} MSG_UI_SETTING_TEXT_INPUT_MODE_MENU_E;
+
+/*============================================================================
+                               FUNCTION DEFINE
+=============================================================================*/
+void msg_ui_setting_text_gl_input_mode_popup(void *data);
+
+/*
+ *     text message - service centre
+ */
+void msg_ui_setting_service_center_selected_main(void *data);
+void msg_ui_setting_text_menu_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_setting_text_group_create(PMSG_SETTING_DATA settingData);
+#endif
diff --git a/setting/include/msg-ui-setting-text-sim-card-msg.h b/setting/include/msg-ui-setting-text-sim-card-msg.h
new file mode 100755 (executable)
index 0000000..e44e8e0
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_MSG_UI_SETTING_TEXT_SIM_CARD_MSG_H__
+#define __DEF_MSG_UI_SETTING_TEXT_SIM_CARD_MSG_H__
+
+#include "msg-ui-setting-main.h"
+
+typedef enum {
+       MSG_UI_SETTING_SIM_MSG_POPUP_MENU_COPY_TO_PHONE = 0,
+       MSG_UI_SETTING_SIM_MSG_POPUP_MENU_DELETE,
+       MSG_UI_SETTING_SIM_MSG_POPUP_MENU_MAX
+} MSG_UI_SETTING_SIM_MSG_POPUP_MENU_E;
+
+typedef struct _MSG_APP_SIM_DELETE_POPUP_PROGRESS {
+       int popup_type;
+       Evas_Object *popup_object;
+
+       Evas_Object *progressbar;
+       Ecore_Thread *multi_action_thread;
+} _MSG_APP_SIM_DELETE_POPUP_PROGRESS;
+
+typedef struct _MSG_APP_SIM_DELETE_POPUP_PROGRESS MSG_APP_SIM_DELETE_POPUP_PROGRESS, *PMSG_APP_SIM_DELETE_POPUP_PROGRESS;
+
+/*============================================================================
+                               FUNCTION DEFINE
+=============================================================================*/
+void msg_ui_setting_create_sim_card_msg_main(void *data, Evas_Object *obj, void *event_info);
+
+#endif
diff --git a/setting/include/msg-ui-setting-types.h b/setting/include/msg-ui-setting-types.h
new file mode 100755 (executable)
index 0000000..745ee55
--- /dev/null
@@ -0,0 +1,482 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_MSG_UI_SETTING_TYPES_H__
+#define __DEF_MSG_UI_SETTING_TYPES_H__
+#define MAX_SIM_USED 2
+
+#include "message.h"
+#include <sys/time.h>
+#include <msg.h>
+
+#define MSG_SETTING_THEME      EDJDIR"/setting_theme.edj"
+
+#define MAX_SETTING_CTRLBAR_BUTTON     4
+#define MAX_SMSC_LIST  SMSC_LIST_MAX
+#define MAX_SMSC_NAME_LEN      SMSC_NAME_MAX
+#define MAX_SMSC_ADDR_LEN      SMSC_ADDR_MAX
+#define MAX_MY_CH_LIST CB_CHANNEL_MAX
+#define MAX_CH_NAME_LEN        CB_CHANNEL_NAME_MAX
+
+typedef void (*msg_ui_setting_lang_changed_cb)(void *data, Elm_Object_Item *nf_it, void *user_param);
+/*============================================================================
+                               TYPES
+=============================================================================*/
+
+/**
+ *     The values for this type SHOULD be in _MSG_UI_SETTING_TYPE_E.
+ */
+
+typedef unsigned int MSG_UI_SETTING_TYPE_T;
+
+/**
+ *     The values for this type SHOULD be in _MSG_UI_GENERAL_TYPE_E.
+ */
+typedef unsigned int MSG_UI_GENERAL_TYPE_T;
+
+/**
+ *     The values for this type SHOULD be in MSG_UI_SETTING_BLOCK_TYPE_E.
+ */
+
+typedef unsigned int MSG_UI_SETTING_BLOCK_TYPE_T;
+
+/**
+ *     The values for this type SHOULD be in MSG_UI_SETTING_CRITERIA_TYPE_E.
+ */
+
+typedef unsigned int MSG_UI_SETTING_CRITERIA_TYPE_T;
+
+
+/**
+ *     The values for this type SHOULD be in MSG_UI_SETTING_SOS_RECP_CHECK_E.
+ */
+
+typedef unsigned int MSG_UI_SETTING_SOS_RECP_CHECK_T;
+
+
+/*============================================================================
+                               ENUMS
+=============================================================================*/
+
+/**
+ *     This enum is used as the value of MSG_UI_SETTING_TYPE_T.
+ */
+enum _MSG_UI_SETTING_TYPE_E {
+       MSG_UI_SETTING_TYPE_GENERAL = MSG_GENERAL_OPT,
+       MSG_UI_SETTING_TYPE_SMS_SEND = MSG_SMS_SENDOPT,
+       MSG_UI_SETTING_TYPE_SMSC_LIST = MSG_SMSC_LIST,
+       MSG_UI_SETTING_TYPE_MMS_SEND = MSG_MMS_SENDOPT,
+       MSG_UI_SETTING_TYPE_MMS_RECEIVE = MSG_MMS_RECVOPT,
+       MSG_UI_SETTING_TYPE_MMS_CLASS = MSG_MMS_CLASSOPT,
+       MSG_UI_SETTING_TYPE_PUSHMSG = MSG_PUSHMSG_OPT,
+       MSG_UI_SETTING_TYPE_CBMSG = MSG_CBMSG_OPT,
+};
+
+typedef enum {
+       MSG_UI_SELECTED_SIM1,
+       MSG_UI_SELECTED_SIM2,
+} MSG_UI_SETTING_SELECTED_SIM;
+
+typedef enum {
+       MSG_UI_SETTING_BLOCK_FILTER_VIEW,
+       MSG_UI_SETTING_BLOCK_FILTER_DELETE_VIEW,
+       MSG_UI_SETTING_BLOCK_FILTER_DETAIL_VIEW,
+       MSG_UI_SETTING_BLOCK_LIST_VIEW,
+       MSG_UI_SETTING_BLOCK_LIST_DELETE_VIEW,
+
+} MSG_UI_SETTING_BLOCK_VIEW_MODE_E;
+
+typedef enum {
+       MSG_UI_SETTING_BLOCK_ADDR_SAME,
+       MSG_UI_SETTING_BLOCK_ADDR_INCLUDE,
+
+} MSG_UI_SETTING_CRITERIA_TYPE_E;
+
+typedef enum {
+       MSG_UI_SETTING_PORTRAIT = 0,
+       MSG_UI_SETTING_PORTRAIT_UPSIDEDOWN = 180,
+       MSG_UI_SETTING_LANDSCAPE = 90,
+       MSG_UI_SETTING_LANDSCAPE_UPSIDEDOWN = 270,
+       MSG_UI_SETTING_ROTATE_UNKNOWN = -1,
+} MSG_UI_SETTING_ROTATE_TYPE_E;
+
+typedef enum {
+       SETTING_VIEW_NONE = 0,
+       SETTING_GENERAL_TAB_VIEW,
+       SETTING_SMS_MMS_TAB_VIEW,
+       SETTING_MORE_TAB_VIEW,                  /* unused */
+       SETTING_TEXT_TEMPLATES_VIEW,
+       SETTING_TEXT_TEMPLATES_DELETE_VIEW,
+       SETTING_SIM_MSG_MAIN_VIEW,
+       SETTING_SIM_MSG_COPY_TO_PHONE_VIEW,
+       SETTING_SIM_MSG_COPY_TO_PHONE_SAVE_VIEW,
+       SETTING_SIM_MSG_COPY_TO_PHONE_CANCEL_VIEW,
+       SETTING_SIM_MSG_DELETE_VIEW,
+       SETTING_SIM_MSG_VIEWER_UG_VIEW,
+       SETTING_BUBBLE_STYLE_VIEW,              /* unused */
+       SETTING_BACKGROUND_STYLE_VIEW,  /* unused */
+       SETTING_SPAM_NUMBER_VIEW,
+       SETTING_SPAM_NUMBER_DETAIL_VIEW,
+       SETTING_SPAM_NUMBER_DELETE_VIEW,
+       SETTING_SPAM_WORD_VIEW,
+       SETTING_SPAM_WORD_DELETE_VIEW,
+} SETTING_VIEW_TYPE_E;
+
+typedef enum {
+       CB_SIM1_ACTIVATION,
+       CB_SIM2_ACTIVATION,
+} CB_SIM_ACTIVATION;
+
+/*============================================================================
+                               STRUCT DEFINE
+=============================================================================*/
+
+typedef struct {
+       Elm_Genlist_Item_Class input_mode_itc;
+
+       /* input mode */
+       Elm_Object_Item *text_input_mode_item;
+       Elm_Genlist_Item_Class text_input_mode_itc;
+       Evas_Object *text_input_mode_radio_group;
+
+       Evas_Object *smsc_all_genlist;
+
+       /* Service Center */
+       int center_index;               /* single sim */
+       int center_index_sim1;  /* dual sim. 1 slot */
+
+       Evas_Object *smsc_addr_entry;
+       Evas_Object *tab_bar;
+       Elm_Object_Item *tabbar_current;
+       Elm_Object_Item *tabbar_btn[MAX_SIM_USED];
+
+       Elm_Genlist_Item_Class service_centre_itc;
+       Elm_Object_Item *service_centre_item;
+
+       //Text messages group
+       Elm_Genlist_Item_Class text_group_itc;
+
+       //Sim card messages
+       Elm_Genlist_Item_Class sim_msg_itc;
+
+       //Delivery report
+       Elm_Genlist_Item_Class delivery_report_itc;
+       Evas_Object *delivery_report_chk;
+
+} MSG_UI_SETTING_TEXT_S;
+
+typedef struct _MSG_UI_SETTING_SIM_MSG_MENU_S {
+       /* sim card msg*/
+       Elm_Genlist_Item_Class sim_itc;
+       Elm_Genlist_Item_Class sim_itc_select;
+       Elm_Genlist_Item_Class sim_itc_select1;
+       Elm_Genlist_Item_Class sim_itc_select2;
+       Elm_Genlist_Item_Class sim_itc1;
+       Elm_Genlist_Item_Class sim_itc2;
+       Ecore_Thread *update_read_status_thread;
+       Evas_Object *layout;
+       Evas_Object *genlist;
+       Evas_Object *genlist1;
+       Evas_Object *genlist2;
+       Evas_Object *box;
+       Evas_Object *nocontens;
+
+       Evas_Object *delete_genlist;
+       Evas_Object *delete_layout;
+       Evas_Object *chk_sell_all;
+       Eina_Bool chk_state_sel_all;
+       Eina_Bool chk_state_sel_all1;
+       Eina_Bool chk_state_sel_all2;
+       Eina_List *chk_state_list;
+       Evas_Object *sel_all_layout;
+       Evas_Object *sel_all_btn;
+       Evas_Object *sel_all_btn1;
+       Evas_Object *sel_all_btn2;
+
+       Eina_Bool view_update_needed;
+
+       int realised;
+       int realised1;
+       int realised2;
+
+       msg_struct_list_s msg_list;
+       msg_struct_list_s msg_list1;
+       msg_struct_list_s msg_list2;
+} MSG_UI_SETTING_SIM_MSG_MENU_S;
+
+typedef struct {
+       Elm_Genlist_Item_Class mms_group_itc;
+       Elm_Genlist_Item_Class delivery_report_itc;
+       Elm_Genlist_Item_Class read_report_itc;
+       Elm_Genlist_Item_Class auto_retrieve_itc;
+       Elm_Genlist_Item_Class roaming_auto_retrieve_itc;
+
+       Evas_Object *delivery_report_check;
+       Evas_Object *read_report_check;
+       Evas_Object *auto_retrieve_check;
+       Evas_Object *roaming_auto_retrieve_check;
+       Eina_Bool bMMS_alert;
+
+       Elm_Object_Item *roaming_auto_retrieve_item;
+
+       int auto_retrieve;
+} MSG_UI_SETTING_MM_S;
+
+typedef struct _MSG_UI_SETTING_S {
+       MSG_UI_SETTING_TYPE_T type;
+
+       msg_struct_t general_opt;
+       msg_struct_t sms_opt;
+
+       msg_struct_t smsc_opt;
+       msg_struct_t smsc_opt_sim1;
+
+       msg_struct_list_s *smsc_list;
+       msg_struct_list_s *smsc_list_sim1;
+       msg_struct_t mms_opt;
+       msg_struct_t mms_recv_opt;
+} MSG_UI_SETTING_S;
+
+typedef struct _MSG_UI_SETTING_TEMPLATE_S {
+       /* template list */
+       Evas_Object *tmpl_layout;
+       Evas_Object *tmpl_box;
+       Evas_Object *tmpl_genlist;
+       Elm_Genlist_Item_Class tmpl_itc;
+       Elm_Genlist_Item_Class edit_tmpl_itc;
+       Elm_Genlist_Item_Class tmpl_select_all_itc;
+       Evas_Object *no_items_layout;
+
+       /* detail view */
+       int sel_idx;
+       Evas_Object *detail_layout;
+       Evas_Object *detail_genlist;
+       Elm_Genlist_Item_Class detail_itc;
+       Evas_Object *detail_entry_ly;
+       Evas_Object *detail_entry;
+       Evas_Object *detail_save_btn;
+
+       /* delete view */
+       Evas_Object *delete_layout;
+       Evas_Object *delete_genlist;
+       Eina_List *delete_check_list;
+       Eina_Bool b_delete_all_check;
+       Evas_Object *sel_all_btn;
+       int delete_cnt;
+
+       Eina_List *tmpl_list;
+} MSG_UI_SETTING_TEMPLATE_S;
+
+typedef struct _MSG_UI_SETTING_NOTIFICATION_MENU_S {
+       /* main genlist */
+       Elm_Genlist_Item_Class notifications_group_itc;
+       Elm_Genlist_Item_Class alerts_itc;
+       Elm_Object_Item *sound_item;
+       Elm_Genlist_Item_Class sound_itc;
+       Elm_Genlist_Item_Class vibration_itc;
+       Elm_Object_Item *vibration_item;
+
+       Evas_Object *alerts_chk;
+       Evas_Object *vibrate_chk;
+       Evas_Object *popup_display_chk;
+
+       Eina_Bool popup_display_enable;
+
+       /* alert repetition expand*/
+       Elm_Object_Item *alert_repetition_item;
+       Evas_Object *alert_repetition_radio_group;
+
+       int msg_ringtone_type;
+       int msg_alert_repetition_key;
+       Eina_Bool bNoti_menu;
+} MSG_UI_SETTING_NOTIFICATION_MENU_S;
+
+typedef struct _MSG_UI_SETTING_GEMERAL_MENU_S {
+       Eina_Bool bGeneral_menu;
+} MSG_UI_SETTING_GEMERAL_MENU_S;
+
+typedef struct _MSG_UI_SETTING_THREAD_ADDR_INFO_S {
+       int contact_id;
+       int addr_type;
+       char display_name[DEF_THREAD_NAME_LEN+1];
+       char address[DEF_THREAD_ADDR_LEN+1];
+
+       Eina_Bool is_check;
+       Evas_Object *chk;
+} MSG_UI_SETTING_THREAD_ADDR_INFO_S, *PMSG_UI_SETTING_THREAD_ADDR_INFO_S;
+
+typedef struct _MSG_UI_SETTING_THREAD_MSG_DATA_S {
+       int msg_id;
+       int thread_id;
+       int msg_type;
+       bool is_read;
+       int direction;
+
+       PMSG_UI_SETTING_THREAD_ADDR_INFO_S *addr_info;
+       int addr_cnt;
+       char msg_body[MAX_MSG_TEXT_LEN+1];
+       time_t *msg_time;
+
+       Evas_Object *chk;
+       Eina_Bool is_check;
+
+       bool bHighlight;
+} MSG_UI_SETTING_THREAD_MSG_DATA_S, *PMSG_UI_SETTING_THREAD_MSG_DATA_S;;
+
+typedef struct _MSG_SETTING_DATA {
+       ui_gadget_h ug;
+       ui_gadget_h crop_ug;
+       struct ug_cbs cbs;
+       ui_gadget_h loaded_ug;
+       Elm_Theme *custom_theme; /* This theme is for bubble and background styles (which is not used in kiran) & for multiline style of quick responses */
+       Elm_Theme *theme; /* This theme is used for all other custom widgets in message settings */
+       Evas_Object *main_win;
+
+       /* to keep track of the req type for UG view */
+       int ug_req_type;
+
+       Eina_List *screen_info_list;
+
+       Evas_Object *conformant;
+       Evas_Object *layout_main;
+       Evas_Object *bg;
+       Evas_Object *navi_frame;
+       Evas_Object *scrl;
+       Evas_Object *limit_popup_spinner;
+       Evas_Object *popup;
+       void *sim_msgs_delete_progress_thread;
+       int popup_type;
+       void (*popup_lang_change)(struct _MSG_SETTING_DATA* settingData);
+       Evas_Object *popup_entry;
+       Evas_Object *selectioninfo;
+       Evas_Object *selectioninfo_layout;
+       Elm_Object_Item *navi_it;
+
+       msg_handle_t msgHandle;
+       MSG_UI_SETTING_S msg_setting;
+
+       /* toast popup message */
+       char toast_msg[DEF_BUF_LEN];
+
+       Elm_Genlist_Item_Class grp_sep_itc;
+
+       Evas_Object *main_genlist;
+       int view_type;
+
+       /* tab view */
+       Evas_Object *main_layout;
+       Evas_Object *tab_bar;
+       Elm_Object_Item *tab_bar_btn[3];
+
+       /* access object */
+
+       /* entry limit */
+       Elm_Entry_Filter_Limit_Size limit_filter_data;
+
+       /* toolbar & title btns */
+       Evas_Object *toolbar;
+       Elm_Object_Item *toolbar_btn[2];
+       Evas_Object *title_right_btn;
+       Evas_Object *title_left_btn;
+
+       /* Naviframe rotate */
+       bool bConformant;
+       bool bKeypad;
+       int rot;
+
+       Eina_Bool bBg_custom_set;
+
+       /* General menu */
+       MSG_UI_SETTING_GEMERAL_MENU_S general;
+       MSG_UI_SETTING_TEMPLATE_S text_tmpl;
+
+       /* SMS menu */
+       MSG_UI_SETTING_TEXT_S text_msg;
+       MSG_UI_SETTING_SIM_MSG_MENU_S sim_msg;
+
+       /* SIM msg */
+       int old_total_check_cnt;
+       int total_check_cnt;
+       int old_check_cnt1;
+       int check_cnt1;
+       int old_check_cnt2;
+       int check_cnt2;
+       int check_cnt;
+       int item_cnt;
+       int item_cnt1;
+       int item_cnt2;
+       Eina_List *chk_list;
+       Eina_Bool menu;
+       int sim_current_tab;
+
+       /* SIM card time format */
+       time_t *msg_time;
+       msg_time_format time_fmt;
+       const char *locale;
+       char *time_12h_ptn;
+       char *time_24h_ptn;
+       char *date_ptn_default;
+       char *date_ptn_year;
+
+       Evas_Object *more_btn;
+       Evas_Object *ctxpopup;
+       Eina_Bool rotate_flag;
+
+       /* MMS menu */
+       MSG_UI_SETTING_MM_S mm_msg;
+
+       /* Notification menu */
+       MSG_UI_SETTING_NOTIFICATION_MENU_S noti;
+
+       /*SMSC Menu*/
+       Elm_Theme *theme_smsc;
+       Evas_Object *sim1_btn;
+       char smsc_buf_sim1[SMSC_NAME_MAX+1 ];
+       int current_smsc_tab; /* Single sim->0,Sim Tab 1->1, Sim tab 2-> 2 */
+
+       Ecore_Timer *ignore_hw_back_events_timer;
+       Ecore_Idler *unread_message_check_idler;
+       Eina_List *unread_message_list;
+
+       app_control_h gallery_svc_handle;
+       app_control_h callee_svc_handle;
+
+       int encoded_mode;
+       int inp_entry_cnt;
+       int available_entry_size;
+       int text_size;
+       int segment_size;
+       char full_str[DEF_BUF_LEN_1024];
+       char *sim1_name;
+       char *sim1_icon;
+       bool bSIM_inserted;
+       bool bDCM_sim_inserted;
+       int sel_index;
+       Ecore_Timer *cb_timer;
+
+       int list_pos;
+       bool retain_list_pos;
+       bool is_cb_activation_in_progess;
+       int external_storage_id;
+} MSG_SETTING_DATA, *PMSG_SETTING_DATA;
+
+
+typedef struct _msg_ui_thread_data_s {
+       PMSG_SETTING_DATA settingData;
+} SETTING_THREAD_DATA_S;
+
+#endif
diff --git a/setting/src/main/msg-ui-setting-callback.c b/setting/src/main/msg-ui-setting-callback.c
new file mode 100755 (executable)
index 0000000..566e523
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-setting-main.h"
+
+void msg_ui_setting_sim_card_msg_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+       msg_ui_setting_create_sim_card_msg_main(data, obj, event_info);
+
+       D_LEAVE;
+}
+
+Eina_Bool msg_ui_setting_quit_cb(void *data, Elm_Object_Item *it)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       /* To prevent B/S. If a user clicks hardware back key while launching other
+        * Because result callback for the launching request is called after the settings is destroyed. */
+       D_MSG_RETVM_IF(settingData->ignore_hw_back_events_timer != NULL, EINA_FALSE, "Ignore hardware key events timer is running so ignore back key events");
+
+       ug_destroy_me(settingData->ug);
+
+       D_LEAVE;
+       return EINA_FALSE;
+}
+
+Eina_Bool msg_ui_setting_ignore_hw_back_events_timer_cb(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       settingData->ignore_hw_back_events_timer = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
diff --git a/setting/src/main/msg-ui-setting-common-util.c b/setting/src/main/msg-ui-setting-common-util.c
new file mode 100755 (executable)
index 0000000..9907a76
--- /dev/null
@@ -0,0 +1,652 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-setting-main.h"
+#include "msg-ui-setting-common-util.h"
+#include <msg-system-util.h>
+
+MSG_COMMON_LANG_CHANGED SETTING_STRING_ADD = {MESSAGE_PKGNAME, "IDS_MSG_HEADER_CREATE"};
+MSG_COMMON_LANG_CHANGED SETTING_STRING_DELETE = {MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE"};
+MSG_COMMON_LANG_CHANGED SETTING_STRING_SELECT_ALL = {MESSAGE_PKGNAME, "IDS_MSG_MBODY_SELECT_ALL"};
+MSG_COMMON_LANG_CHANGED SETTING_STRING_SAVE = {MESSAGE_PKGNAME, "IDS_MSGF_OPT_SAVE"};
+MSG_COMMON_LANG_CHANGED SETTING_STRING_CANCEL = {MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB"};
+MSG_COMMON_LANG_CHANGED SETTING_STRING_OK = {MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB"};
+MSG_COMMON_LANG_CHANGED SETTING_STRING_EDIT = {MESSAGE_PKGNAME, "IDS_MSG_OPT_EDIT"};
+MSG_COMMON_LANG_CHANGED SETTING_STRING_MAX_REACHED = {MESSAGE_PKGNAME, "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"};
+MSG_COMMON_LANG_CHANGED SETTING_STRING_ENTER_TEXT = {MESSAGE_PKGNAME, "IDS_MSG_BODY_ENTER_TEXT_M_NOUN"};
+MSG_COMMON_LANG_CHANGED SETTING_STRING_TITLE_CANCEL_BTN = {MESSAGE_PKGNAME, "IDS_MSG_ACBUTTON_CANCEL_ABB"};
+MSG_COMMON_LANG_CHANGED SETTING_STRING_TITLE_DELETE_BTN = {MESSAGE_PKGNAME, "IDS_MSG_ACBUTTON_DELETE_ABB"};
+MSG_COMMON_LANG_CHANGED SETTING_STRING_TITLE_DONE_BTN = {MESSAGE_PKGNAME, "IDS_MSG_ACBUTTON_DONE_ABB"};
+
+
+/*============================================================================
+                                                               STATIC FUNCTION DEFINE
+=============================================================================*/
+
+static void __msg_ui_setting_common_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_common_popup_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_common_popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
+/*============================================================================
+                                                               FUNCTION IMPLEMENT
+=============================================================================*/
+
+Evas_Object *msg_ui_setting_common_create_layout(Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!parent, NULL, "parent object is NULL");
+
+       Evas_Object *layout;
+
+       layout = elm_layout_add(parent);
+
+       elm_layout_theme_set(layout, "layout", "application", "noindicator");
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       D_LEAVE;
+
+       return layout;
+}
+
+Evas_Object *msg_ui_setting_common_create_genlist_popup(Evas_Object *parent, void *data, char *string_id)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Evas_Object *popup = NULL;
+       Evas_Object *genlist = NULL;
+       Evas_Object *main_window = settingData->main_win;
+
+       popup = elm_popup_add(main_window);
+       settingData->popup = popup;
+
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, string_id);
+       genlist = elm_genlist_add(popup);
+       elm_object_style_set(genlist, "popup");
+       elm_genlist_homogeneous_set(genlist, EINA_TRUE);
+       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+
+       elm_object_content_set(popup, genlist);
+       settingData->popup_type = SETTING_POPUP_WITH_CONFIRM;
+
+       evas_object_event_callback_add(settingData->popup, EVAS_CALLBACK_DEL, msg_ui_setting_common_popup_delete_cb, settingData);
+       evas_object_event_callback_add(settingData->popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_setting_common_popup_mouseup_cb, settingData);
+       eext_object_event_callback_add(settingData->popup, EEXT_CALLBACK_BACK, msg_ui_setting_common_popup_delete, settingData);
+
+       D_LEAVE;
+
+       return genlist;
+}
+void msg_ui_setting_common_create_back_btn(Evas_Object *nf, Elm_Naviframe_Item_Pop_Cb func, void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!nf, "navi_frame is NULL");
+
+       Evas_Object *back_btn;
+       Elm_Object_Item *navi_it;
+
+       back_btn = elm_button_add(nf);
+       navi_it = elm_naviframe_top_item_get(nf);
+       elm_object_item_part_content_set(navi_it, "prev_btn", back_btn);
+
+       elm_object_style_set(back_btn, "naviframe/back_btn/default");
+       elm_naviframe_item_pop_cb_set(navi_it, func, (void *)data);
+
+       D_LEAVE;
+}
+
+void msg_ui_setting_common_nf_pop_quit_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       D_MSG_RETM_IF(!settingData, "PMSG_SETTING_DATA is NULL");
+
+       elm_naviframe_item_pop(settingData->navi_frame);
+}
+
+void msg_ui_setting_common_title_btn_remove(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "PMSG_SETTING_DATA is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (settingData->title_left_btn) {
+               evas_object_del(settingData->title_left_btn);
+               settingData->title_left_btn = NULL;
+       }
+
+       if (settingData->title_right_btn) {
+               evas_object_del(settingData->title_right_btn);
+               settingData->title_right_btn = NULL;
+       }
+}
+
+void msg_ui_setting_common_create_title_left_btn(PMSG_SETTING_DATA settingData,  Evas_Smart_Cb func, void *data, MSG_UI_SETTING_TITLE_BTN_TYPE_E btn_type)
+{
+       D_ENTER;
+
+       MSG_COMMON_LANG_CHANGED *title_btn_text_info = NULL;
+       const char *button_style = NULL;
+
+       switch (btn_type) {
+               case MSG_UI_SETTING_TITLE_BTN_TYPE_CANCEL:
+                       title_btn_text_info = &SETTING_STRING_TITLE_CANCEL_BTN;
+                       button_style = "naviframe/title_cancel";
+                       break;
+               case MSG_UI_SETTING_TITLE_BTN_TYPE_DONE:
+                       title_btn_text_info = &SETTING_STRING_TITLE_DONE_BTN;
+                       button_style = "naviframe/title_done";
+                       break;
+               case MSG_UI_SETTING_TITLE_BTN_TYPE_DELETE:
+                       title_btn_text_info = &SETTING_STRING_TITLE_DELETE_BTN;
+                       button_style = "naviframe/title_done";
+                       break;
+       }
+       D_MSG_RETM_IF(title_btn_text_info == NULL, "title_btn_text_info is NULL");
+
+       Evas_Object *btn = elm_button_add(settingData->navi_frame);
+       elm_object_style_set(btn, button_style);
+       elm_object_domain_translatable_text_set(btn, title_btn_text_info->domain, title_btn_text_info->id);
+       evas_object_smart_callback_add(btn, "clicked", func, (void *)data);
+       elm_object_part_content_set(settingData->navi_frame, "title_left_btn", btn);
+       settingData->title_left_btn = btn;
+       D_LEAVE;
+}
+void msg_ui_setting_common_create_title_right_btn(PMSG_SETTING_DATA settingData,  Evas_Smart_Cb func, void *data, MSG_UI_SETTING_TITLE_BTN_TYPE_E btn_type)
+{
+       D_ENTER;
+
+       MSG_COMMON_LANG_CHANGED *title_btn_text_info = NULL;
+       const char *button_style = NULL;
+
+       switch (btn_type) {
+               case MSG_UI_SETTING_TITLE_BTN_TYPE_CANCEL:
+                       title_btn_text_info = &SETTING_STRING_TITLE_CANCEL_BTN;
+                       button_style = "naviframe/title_cancel";
+                       break;
+               case MSG_UI_SETTING_TITLE_BTN_TYPE_DONE:
+                       title_btn_text_info = &SETTING_STRING_TITLE_DONE_BTN;
+                       button_style = "naviframe/title_done";
+                       break;
+               case MSG_UI_SETTING_TITLE_BTN_TYPE_DELETE:
+                       title_btn_text_info = &SETTING_STRING_TITLE_DELETE_BTN;
+                       button_style = "naviframe/title_done";
+                       break;
+       }
+       D_MSG_RETM_IF(title_btn_text_info == NULL, "title_btn_text_info is NULL");
+
+       Evas_Object *btn = elm_button_add(settingData->navi_frame);
+
+       elm_object_style_set(btn, button_style);
+       elm_object_domain_translatable_text_set(btn, title_btn_text_info->domain, title_btn_text_info->id);
+       evas_object_smart_callback_add(btn, "clicked", func, (void *)data);
+       elm_object_part_content_set(settingData->navi_frame, "title_right_btn", btn);
+       settingData->title_right_btn = btn;
+       D_LEAVE;
+}
+
+void msg_ui_setting_common_toolbar_btn_remove(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA) data;
+
+       if (settingData->toolbar_btn[CONTROLBAR_ITEM_1]) {
+               elm_object_item_del(settingData->toolbar_btn[CONTROLBAR_ITEM_1]);
+               settingData->toolbar_btn[CONTROLBAR_ITEM_1] = NULL;
+       }
+
+       if (settingData->toolbar_btn[CONTROLBAR_ITEM_2]) {
+               elm_object_item_del(settingData->toolbar_btn[CONTROLBAR_ITEM_2]);
+               settingData->toolbar_btn[CONTROLBAR_ITEM_2] = NULL;
+       }
+
+       if (settingData->toolbar) {
+               evas_object_del(settingData->toolbar);
+               settingData->toolbar = NULL;
+       }
+}
+
+Evas_Object *msg_ui_setting_common_create_genlist(Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!parent, NULL, "parent is NULL");
+
+       Evas_Object *genlist;
+
+       genlist = elm_genlist_add(parent);
+
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       D_LEAVE;
+
+       return genlist;
+}
+
+void msg_ui_setting_common_append_genlist_separator(Evas_Object *genlist, void *data)
+{
+       D_MSG_RETM_IF(!genlist, "genlist is NULL");
+       D_MSG_RETM_IF(!data, "PMSG_SETTING_DATA is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       Elm_Object_Item *it = NULL;
+
+       settingData->grp_sep_itc.item_style = "dialogue/separator";
+       settingData->grp_sep_itc.func.text_get = NULL;
+       settingData->grp_sep_itc.func.content_get = NULL;
+       settingData->grp_sep_itc.func.state_get = NULL;
+       settingData->grp_sep_itc.func.del = NULL;
+
+       it = elm_genlist_item_append(genlist, &settingData->grp_sep_itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+}
+
+Evas_Object *msg_ui_setting_common_create_scroller(Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!parent, NULL, "parent is NULL");
+
+       Evas_Object *scroller;
+
+       scroller = elm_scroller_add(parent);
+
+       elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
+       elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+       evas_object_show(scroller);
+
+       D_LEAVE;
+
+       return scroller;
+}
+
+Evas_Object *msg_ui_setting_common_create_no_content_view(Evas_Object *parent, const char *text)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!parent, NULL, "parent is NULL");
+
+       Evas_Object *no_content_layout = NULL;
+
+       no_content_layout = elm_layout_add(parent);
+       elm_layout_theme_set(no_content_layout, "layout", "nocontents", "text");
+       evas_object_size_hint_weight_set(no_content_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(no_content_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       if (text != NULL) {
+               elm_object_domain_translatable_part_text_set(no_content_layout, "elm.text", MESSAGE_PKGNAME, text);
+               if (strcmp(text, "IDS_MSG_NPBODY_NO_BLOCKED_NUMBERS") == 0) {
+                       elm_object_domain_translatable_part_text_set(no_content_layout, "elm.help.text", MESSAGE_PKGNAME, "IDS_MSG_BODY_AFTER_YOU_ADD_NUMBERS_TO_THE_MESSAGE_BLOCK_LIST_THEY_WILL_BE_SHOWN_HERE");
+               } else if (strcmp(text, "IDS_MSG_NPBODY_NO_PHRASES_BLOCKED") == 0) {
+                       elm_object_domain_translatable_part_text_set(no_content_layout, "elm.help.text", MESSAGE_PKGNAME, "IDS_MSG_BODY_AFTER_YOU_ADD_PHRASES_THEY_WILL_BE_SHOWN_HERE");
+               } else if (strcmp(text, "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD") == 0) {
+                       elm_object_domain_translatable_part_text_set(no_content_layout, "elm.help.text", MESSAGE_PKGNAME, "IDS_MSG_BODY_AFTER_YOU_COPY_MESSAGES_TO_THE_SIM_CARD_THEY_WILL_BE_SHOWN_HERE");
+               }
+       } else {
+               elm_object_domain_translatable_part_text_set(no_content_layout, "elm.text", MESSAGE_PKGNAME, "IDS_MSG_NPBODY_NO_QUICK_RESPONSES");
+               elm_object_domain_translatable_part_text_set(no_content_layout, "elm.help.text", MESSAGE_PKGNAME, "IDS_MSG_BODY_AFTER_YOU_CREATE_QUICK_RESPONSES_THEY_WILL_BE_SHOWN_HERE");
+       }
+
+       elm_layout_signal_emit(no_content_layout, "text,disabled", "");
+       elm_layout_signal_emit(no_content_layout, "align.center", "elm");
+
+       D_LEAVE;
+
+       return no_content_layout;
+}
+
+Evas_Object *msg_ui_setting_common_add_box(Evas_Object *parent)
+{
+       D_ENTER;
+
+       Evas_Object *box = elm_box_add(parent);
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0);
+       evas_object_size_hint_align_set(box, EVAS_HINT_FILL, 0.0);
+       evas_object_show(box);
+
+       D_LEAVE;
+
+       return box;
+}
+
+void msg_ui_setting_common_keypad_activated_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!obj, "obj is NULL");
+       Evas_Object *entry = (Evas_Object *)obj;
+       Ecore_IMF_Context *context = NULL;
+
+       context = elm_entry_imf_context_get(entry);
+       ecore_imf_context_input_panel_hide(context);
+
+       D_LEAVE;
+}
+
+void msg_ui_setting_common_entry_max_chars_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       notification_status_message_post(TEXT("IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"));
+}
+
+static void __msg_ui_setting_common_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (settingData->popup) {
+               evas_object_del(settingData->popup);
+               settingData->popup = NULL;
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_setting_common_popup_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (settingData->popup) {
+               D_MSG("Popup is exist !!");
+               evas_object_del(settingData->popup);
+               settingData->popup = NULL;
+       } else {
+               D_MSG("Popup is NULL !!");
+       }
+}
+
+static void __msg_ui_setting_common_popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "PMSG_SETTING_DATA is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (settingData->popup) {
+               evas_object_del(settingData->popup);
+               settingData->popup = NULL;
+       }
+}
+
+void msg_ui_setting_common_popup_delete(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       MSG_EVAS_OBJECT_DEL(settingData->popup);
+
+       settingData->popup_type = SETTING_POPUP_WITHOUT_CONFIRM;
+       settingData->popup_lang_change = NULL;
+}
+
+void msg_ui_setting_common_popup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       D_SEC_MSG("popup deleted = [%p]", obj);
+
+       evas_object_event_callback_del_full(obj, EVAS_CALLBACK_DEL, msg_ui_setting_common_popup_delete_cb, settingData);
+       evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, msg_ui_setting_common_popup_mouseup_cb);
+}
+
+void msg_ui_setting_common_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       D_MSG_RETM_IF(!event_info, "event_info is NULL!");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Evas_Event_Mouse_Up *ev = event_info;
+
+       if (ev->button == 3) {
+               msg_ui_setting_common_popup_delete(settingData, NULL, NULL);
+       }
+}
+
+void msg_ui_setting_common_show_popup_extra(PMSG_SETTING_DATA settingData, char *str_id, double timeout)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!settingData, "PMSG_SETTING_DATA is NULL");
+
+       settingData->popup = elm_popup_add(settingData->layout_main);
+       elm_popup_align_set(settingData->popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       settingData->popup_type = SETTING_POPUP_WITHOUT_CONFIRM;
+       evas_object_size_hint_weight_set(settingData->popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_domain_translatable_text_set(settingData->popup, MESSAGE_PKGNAME, str_id);
+       evas_object_smart_callback_add(settingData->popup, "block,clicked", __msg_ui_setting_common_popup_block_clicked_cb, settingData);
+       elm_popup_timeout_set(settingData->popup, timeout);
+       if (timeout > 0) {
+               evas_object_smart_callback_add(settingData->popup, "timeout", __msg_ui_setting_common_popup_timeout_cb, settingData);
+       }
+       evas_object_show(settingData->popup);
+
+       D_LEAVE;
+
+}
+
+void msg_ui_setting_common_show_notify(void *data, char *str_id)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "PMSG_SETTING_DATA is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Evas_Object *btn1 = NULL;
+
+       msg_ui_setting_common_show_popup_extra(settingData, str_id, MSG_POPUP_DEFAULT_TIMEOUT);
+
+       btn1 = elm_button_add(settingData->popup);
+       elm_object_domain_translatable_text_set(btn1, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       evas_object_smart_callback_add(btn1, "clicked", __msg_ui_setting_common_popup_btn_clicked_cb, settingData);
+
+       D_LEAVE;
+}
+
+void msg_ui_setting_common_get_time_format(PMSG_SETTING_DATA settingData)
+{
+       int timeformat = msg_common_get_timeformat();
+
+       if (timeformat == MSG_TIME_FORMAT_UNKNOWN)
+               settingData->time_fmt = MSG_TIME_FORMAT_12H;
+       else
+               settingData->time_fmt = timeformat;
+
+       D_MSG("%s", settingData->time_fmt == MSG_TIME_FORMAT_24H ? "TIME FORMAT = 24h" : "TIME FORMAT = 12h");
+}
+
+void msg_ui_setting_common_get_time_pattern()
+{
+       D_ENTER;
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       D_MSG_RETM_IF(!settingData, "settingData is NULL");
+
+       settingData->locale = msg_common_get_default_locale();
+       msg_ui_setting_common_get_time_format(settingData);
+
+       settingData->time_12h_ptn = msg_common_get_date_best_pattern(settingData->locale, MSG_UI_TIME_PATTERN_12H);
+       settingData->time_24h_ptn = msg_common_get_date_best_pattern(settingData->locale, MSG_UI_TIME_PATTERN_24H);
+       settingData->date_ptn_default = msg_common_get_date_best_pattern(settingData->locale, MSG_UI_DATE_PATTERN_DEFAULT);
+       settingData->date_ptn_year = msg_common_get_date_best_pattern(settingData->locale, MSG_UI_DATE_PATTERN_YEAR);
+}
+
+void msg_ui_setting_common_make_time_string(time_t *msg_t, char *buf, int buf_len)
+{
+       D_ENTER;
+       PMSG_SETTING_DATA pData = msg_ui_setting_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       struct tm msg_time, cur_time;
+       time_t cur_t;
+       char *time_str = NULL;
+       int diffday = 0, msg_day = 0, cur_day = 0;
+
+       cur_t = (time_t) time(NULL);
+
+       localtime_r(msg_t, &msg_time);
+       localtime_r(&cur_t, &cur_time);
+
+       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 (diffday == 0) {
+               if (pData->time_fmt == MSG_TIME_FORMAT_24H) {
+                       time_str = msg_common_get_formatted_date(pData->locale, pData->time_24h_ptn, msg_t);
+                       snprintf(buf, buf_len, "%s", time_str);
+               } else { /* MSG_TIME_FORMAT_12H */
+                       time_str = msg_common_get_formatted_date(pData->locale, pData->time_12h_ptn, msg_t);
+                       snprintf(buf, buf_len, "%s", time_str);
+               }
+       } else {
+               if (msg_time.tm_year - cur_time.tm_year != 0)
+                       time_str = msg_common_get_formatted_date(pData->locale, pData->date_ptn_year, msg_t);
+               else
+                       time_str = msg_common_get_formatted_date(pData->locale, pData->date_ptn_default, msg_t);
+               snprintf(buf, buf_len, "%s", time_str);
+       }
+
+       if (time_str) {
+               free(time_str);
+               time_str = NULL;
+       }
+}
+
+void  msg_ui_setting_common_sync_local_font_size(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       int access_font_index = 0;
+
+       /* get accessibility font index */
+       if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &access_font_index) < 0) {
+               D_EMSG("system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE) is failed !!");
+               access_font_index = MSG_SYS_FONT_SIZE_INDEX_NORMAL;     /* 1 */
+       }
+
+       D_MSG("SYSTEM_SETTINGS_KEY_FONT_SIZE = %d", access_font_index);
+
+       /* sync current font size as accessibility font index */
+       if (msg_common_set_font_size(access_font_index) == FALSE)
+               D_EMSG("msg_common_set_font_size(index = %d) is failed !!", access_font_index);
+
+
+       D_LEAVE;
+}
+
+void msg_ui_setting_common_ctxpopup_remove(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "PMSG_SETTING_DATA is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (settingData->ctxpopup) {
+               evas_object_del(settingData->ctxpopup);
+               settingData->ctxpopup = NULL;
+       }
+}
+
+void msg_ui_setting_common_ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!obj, "obj is NULL");
+
+       if (obj) {
+               evas_object_del(obj);
+               obj = NULL;
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_setting_common_ctxpopup_move_more_ctxpopup(Evas_Object *ctx)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!ctx, "ctx is NULL");
+
+       Evas_Coord w, h;
+       int pos = -1;
+
+       elm_win_screen_size_get(ug_get_window(), NULL, NULL, &w, &h);
+       pos = elm_win_rotation_get(ug_get_window());
+
+       switch (pos) {
+               case 0:
+               case 180:
+                       evas_object_move(ctx, w/2, h);
+                       break;
+               case 90:
+                       evas_object_move(ctx, h/2, w);
+                       break;
+               case 270:
+                       evas_object_move(ctx, h/2, w);
+                       break;
+       }
+}
+
+void msg_ui_setting_common_ctxpopup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       D_MSG_RETM_IF(!obj, "obj is NULL");
+
+       Evas_Object *navi_frame = data;
+       Evas_Object *ctxpopup = obj;
+
+       evas_object_event_callback_del_full(navi_frame, EVAS_CALLBACK_RESIZE, msg_ui_setting_common_ctxpopup_resize_cb, ctxpopup);
+       evas_object_smart_callback_del_full(elm_object_top_widget_get(ctxpopup), "rotation,changed", msg_ui_setting_common_ctxpopup_rotate_more_ctxpopup_cb, ctxpopup);
+       evas_object_smart_callback_del(ctxpopup, "dismissed", msg_ui_setting_common_ctxpopup_dismissed_cb);
+       evas_object_event_callback_del_full(ctxpopup, EVAS_CALLBACK_DEL, msg_ui_setting_common_ctxpopup_delete_cb, navi_frame);
+}
+
+void msg_ui_setting_common_ctxpopup_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       Evas_Object *ctxpopup = (Evas_Object *)data;
+
+       msg_ui_setting_common_ctxpopup_move_more_ctxpopup(ctxpopup);
+}
+
+void msg_ui_setting_common_ctxpopup_rotate_more_ctxpopup_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       Evas_Object *ctxpopup = (Evas_Object *)data;
+
+       msg_ui_setting_common_ctxpopup_move_more_ctxpopup(ctxpopup);
+}
+
+void msg_ui_setting_common_check_get_revset(Evas_Object *obj)
+{
+       D_MSG_RETM_IF(!obj, "obj is NULL");
+       Eina_Bool set_val = EINA_FALSE;
+       set_val = elm_check_state_get(obj);
+       D_MSG("set_val = %d", (int)set_val);
+       elm_check_state_set(obj, !set_val);
+}
diff --git a/setting/src/main/msg-ui-setting-gadget.c b/setting/src/main/msg-ui-setting-gadget.c
new file mode 100755 (executable)
index 0000000..fa3c0ab
--- /dev/null
@@ -0,0 +1,582 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef UG_MODULE_API
+#define UG_MODULE_API __attribute__ ((visibility("default")))
+#endif
+
+
+#include "msg-ui-setting-types.h"
+#include "msg-ui-setting-main.h"
+#include "msg-ui-common-utility.h"
+#include <contacts.h>
+#include "msg-system-util.h"
+#include <storage-expand.h>
+
+/*============================================================================
+                               STATIC FUNCTION DEFINE
+=============================================================================*/
+static void __msg_ui_setting_event_lang_change(PMSG_SETTING_DATA settingData);
+
+static void __msg_ui_setting_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_gadget_popup(PMSG_SETTING_DATA settingData, char *str);
+static Evas_Object *__msg_ui_setting_create_fullview(Evas_Object *parent, void *ugd);
+static Evas_Object *__msg_ui_setting_create_frameview(Evas_Object *parent, void *ugd);
+static Evas_Object *msg_ui_setting_create_navigation_layout(Evas_Object *parent);
+static void *__msg_ui_setting_on_create(ui_gadget_h ug, enum ug_mode mode, app_control_h data, void *priv);
+static void __msg_ui_setting_on_start(ui_gadget_h ug, app_control_h data, void *priv);
+static void __msg_ui_setting_on_pause(ui_gadget_h ug, app_control_h data, void *priv);
+static void __msg_ui_setting_on_resume(ui_gadget_h ug, app_control_h data, void *priv);
+static void __msg_ui_setting_on_destroy(ui_gadget_h ug, app_control_h data, void *priv);
+static void __msg_ui_setting_on_message(ui_gadget_h ug, app_control_h msg, app_control_h data, void *priv);
+static void __msg_ui_setting_on_event(ui_gadget_h ug, enum ug_event event, app_control_h data, void *priv);
+static void __msg_ui_setting_on_key_event(ui_gadget_h ug, enum ug_key_event event, app_control_h data, void *priv);
+
+/*============================================================================
+                               FUNCTION IMPLEMENT
+=============================================================================*/
+static void __msg_ui_setting_event_lang_change(PMSG_SETTING_DATA settingData)
+{
+       D_ENTER;
+
+       if (settingData->popup != NULL && settingData->popup_lang_change != NULL) {
+               settingData->popup_lang_change(settingData);
+       }
+
+       D_LEAVE;
+}
+
+static void on_storage_set_state_cb(int storage_id, storage_state_e state, void *user_data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!user_data, "ugd is NULL");
+
+       if (state == STORAGE_STATE_REMOVED) {
+               PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)user_data;
+               if (settingData->noti.msg_ringtone_type == MSG_RINGTONE_TYPE_USER) {
+                       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_GENERAL;
+                       msg_set_int_value(settingData->msg_setting.general_opt, MSG_GENERAL_RINGTONE_TYPE_INT, MSG_RINGTONE_TYPE_DEFAULT);
+                       msg_ui_setting_msg_set_config(settingData);
+                       settingData->noti.msg_ringtone_type = MSG_RINGTONE_TYPE_DEFAULT;
+                       D_MSG("Ringtone type is changed to default. [%d]", settingData->noti.msg_ringtone_type);
+
+                       if (settingData->noti.sound_item)
+                               elm_genlist_item_update(settingData->noti.sound_item);
+               }
+       }
+}
+
+static void __msg_ui_setting_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (settingData->popup) {
+               evas_object_del(settingData->popup);
+               settingData->popup = NULL;
+       }
+
+       ug_destroy_me(settingData->ug);
+
+       D_LEAVE;
+}
+
+static void
+__msg_ui_setting_popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (settingData->popup) {
+               evas_object_del(settingData->popup);
+               settingData->popup = NULL;
+       }
+
+       ug_destroy_me(settingData->ug);
+}
+
+static void __msg_ui_setting_gadget_popup(PMSG_SETTING_DATA settingData, char *str)
+{
+       D_ENTER;
+
+       settingData->popup = elm_popup_add(settingData->layout_main);
+       elm_popup_align_set(settingData->popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       settingData->popup_type = SETTING_POPUP_WITHOUT_CONFIRM;
+       evas_object_size_hint_weight_set(settingData->popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_domain_translatable_text_set(settingData->popup, MESSAGE_PKGNAME, str);
+       evas_object_smart_callback_add(settingData->popup, "block,clicked", __msg_ui_setting_popup_block_clicked_cb, settingData);
+       elm_popup_timeout_set(settingData->popup, 2);
+       evas_object_smart_callback_add(settingData->popup, "timeout", __msg_ui_setting_popup_timeout_cb, settingData);
+       evas_object_show(settingData->popup);
+
+       D_LEAVE;
+}
+
+static Evas_Object *__msg_ui_setting_create_fullview(Evas_Object *parent, void *ugd)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!ugd, NULL, "ugd is NULL");
+
+       Evas_Object *base = NULL;
+       PMSG_SETTING_DATA settingData = NULL;
+
+       settingData = (PMSG_SETTING_DATA)ugd;
+
+       settingData->bg = elm_bg_add(parent);
+       evas_object_size_hint_weight_set(settingData->bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(settingData->bg);
+
+       base = elm_layout_add(parent);
+       elm_layout_theme_set(base, "layout", "application", "default");
+       evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(base);
+       elm_object_part_content_set(base, "elm.swallow.bg", settingData->bg);
+
+       D_LEAVE;
+       return base;
+}
+
+static Evas_Object *__msg_ui_setting_create_frameview(Evas_Object *parent, void *ugd)
+{
+       Evas_Object *base = NULL;
+
+       /* Create Frame view */
+
+       return base;
+}
+
+static Evas_Object *msg_ui_setting_create_navigation_layout(Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!parent, NULL, "parent object is NULL");
+
+       Evas_Object *navi_frame = NULL;
+
+       navi_frame = elm_naviframe_add(parent);
+       elm_object_part_content_set(parent, "elm.swallow.content", navi_frame);
+
+       evas_object_show(navi_frame);
+
+       D_LEAVE;
+
+       return navi_frame;
+}
+
+static void *__msg_ui_setting_on_create(ui_gadget_h ug, enum ug_mode mode, app_control_h data, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!ug, NULL, "ug is NULL");
+       D_MSG_RETVM_IF(!priv, NULL, "priv is NULL");
+
+       Evas_Object *parent = NULL;
+       PMSG_SETTING_DATA ugd = NULL;
+
+       bindtextdomain("message", LOCALEDIR);
+
+       ugd = (PMSG_SETTING_DATA)priv;
+       ugd->ug = ug;
+
+       ugd->cbs.layout_cb = NULL;
+       ugd->cbs.result_cb = NULL;
+       ugd->cbs.destroy_cb = NULL;
+       ugd->cbs.priv = NULL;
+
+       parent = ug_get_parent_layout(ug);
+
+       if (!parent)
+               return NULL;
+
+       ugd->main_win = (Evas_Object *)ug_get_window();
+       ugd->sim1_name = strdup("");
+       ugd->sim1_icon = (char *)g_strdup(simPopupIconNode[0].icon);
+
+       if (mode == UG_MODE_FULLVIEW) {
+               int ct_ret = CONTACTS_ERROR_NONE;
+               char *svc_value = NULL;
+
+               ugd->layout_main = __msg_ui_setting_create_fullview(parent, ugd);
+
+               /* Navigation Frame */
+               ugd->navi_frame = msg_ui_setting_create_navigation_layout(ugd->layout_main);
+
+               /* H/W key is added. */
+               elm_naviframe_prev_btn_auto_pushed_set(ugd->navi_frame, EINA_FALSE);
+               eext_object_event_callback_add(ugd->navi_frame, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
+               eext_object_event_callback_add(ugd->navi_frame, EEXT_CALLBACK_MORE, eext_naviframe_more_cb, NULL);
+
+
+               /* Create theme pointer for custom widgets */
+               D_MSG("Adding custom theme pointer");
+               ugd->theme = elm_theme_new();
+               elm_theme_ref_set(ugd->theme, NULL);
+               elm_theme_extension_add(ugd->theme, MSG_SETTING_THEME);
+
+               /* Create theme pointer for custom styles */
+               ugd->custom_theme = msg_common_init_custom_winset_theme();
+
+               ct_ret = contacts_connect();
+               if (ct_ret != CONTACTS_ERROR_NONE)
+                       D_EMSG("contacts_connect failed : ct_ret = [%d]", ct_ret);
+
+               if (data != NULL)
+                       app_control_get_extra_data(data, MSG_BUNDLE_KEY_TYPE, &svc_value);
+
+               D_MSG("svc_value is %s", svc_value);
+               if (svc_value != NULL && !(g_strcmp0(svc_value, MSG_BUNDLE_VALUE_SIM_SETTING))) {
+                       ugd->ug_req_type = MSG_UG_REQ_SIM_VIEW;
+                       msg_ui_setting_sim_view_launch(ugd);
+               } else if (ugd->layout_main) {
+                       ugd->ug_req_type = MSG_UG_REQ_MAIN_SCREEN;
+                       msg_ui_setting_launch(ugd);
+               } else {
+                       D_EMSG("layout_main is NULL !!");
+               }
+
+               if (svc_value)
+                       free(svc_value);
+       } else {
+               ugd->layout_main = __msg_ui_setting_create_frameview(parent, ugd);
+       }
+
+       return ugd->layout_main;
+}
+
+static void __msg_ui_setting_on_start(ui_gadget_h ug, app_control_h data, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!priv, "priv is NULL");
+
+       PMSG_SETTING_DATA ugd = (PMSG_SETTING_DATA)priv;
+
+       if (ugd->layout_main) {
+               /* TODO: launch setting main menu */
+       } else {
+               D_EMSG("layout_main is NULL !!");
+       }
+
+       ugd->conformant = (Evas_Object *)ug_get_conformant();
+}
+
+static void __msg_ui_setting_on_pause(ui_gadget_h ug, app_control_h data, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!priv, "priv is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)priv;
+
+       if (settingData->popup && (settingData->popup_type == SETTING_POPUP_WITHOUT_CONFIRM)) {
+               msg_ui_setting_common_popup_delete(settingData, NULL, NULL);
+       }
+}
+
+static void __msg_ui_setting_on_resume(ui_gadget_h ug, app_control_h data, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!priv, "priv is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)priv;
+
+       msg_ui_setting_common_sync_local_font_size(settingData);
+
+       D_MSG("View doesn't have resume function.");
+}
+
+static void __msg_ui_setting_on_destroy(ui_gadget_h ug, app_control_h data, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!ug, "ug is NULL");
+       D_MSG_RETM_IF(!priv, "priv is NULL");
+
+       PMSG_SETTING_DATA ugd = NULL;
+
+       msg_error_t err = MSG_SUCCESS;
+       int ct_ret = CONTACTS_ERROR_NONE;
+
+       ugd = (PMSG_SETTING_DATA)priv;
+
+       /* SIM Card message genlist */
+       if (ugd->sim_msg.genlist) {
+               evas_object_del(ugd->sim_msg.genlist);
+               ugd->sim_msg.genlist = NULL;
+       }
+
+       if (ugd->sim_msg.genlist1) {
+               evas_object_del(ugd->sim_msg.genlist1);
+               ugd->sim_msg.genlist1 = NULL;
+       }
+
+       if (ugd->sim_msg.genlist2) {
+               evas_object_del(ugd->sim_msg.genlist2);
+               ugd->sim_msg.genlist2 = NULL;
+       }
+
+       if (ugd->msgHandle) {
+               err = msg_close_msg_handle(&ugd->msgHandle);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_open_msg_handle failed, Error=[%d]", err);
+               }
+       }
+
+       if (ugd->callee_svc_handle) {
+               D_MSG("destroy service callee's process");
+               app_control_send_terminate_request(ugd->callee_svc_handle);
+               app_control_destroy(ugd->callee_svc_handle);
+               ugd->callee_svc_handle = NULL;
+       }
+
+       if (ugd->bg) {
+               evas_object_del(ugd->bg);
+               ugd->bg = NULL;
+       }
+
+       if (msg_sys_flight_mode_cb_set(NULL, NULL) < 0) {
+               D_EMSG("Fail to unregister flight mode cb");
+       }
+
+       if (ugd->sim1_name) {
+               free(ugd->sim1_name);
+               ugd->sim1_name = NULL;
+       }
+       if (ugd->sim1_icon) {
+               free(ugd->sim1_icon);
+               ugd->sim1_icon = NULL;
+       }
+
+
+       if (NULL != ugd->gallery_svc_handle) {
+               app_control_send_terminate_request(ugd->gallery_svc_handle);
+               app_control_destroy(ugd->gallery_svc_handle);
+               ugd->gallery_svc_handle = NULL;
+       }
+
+       evas_object_del(ugd->layout_main);
+       ugd->layout_main = NULL;
+
+       if (ugd->msg_setting.general_opt) {
+               msg_release_struct(&(ugd->msg_setting.general_opt));
+       }
+
+       if (ugd->msg_setting.sms_opt) {
+               msg_release_struct(&(ugd->msg_setting.sms_opt));
+       }
+
+       if (ugd->msg_setting.smsc_opt) {
+               msg_release_struct(&(ugd->msg_setting.smsc_opt));
+       }
+
+       if (ugd->msg_setting.mms_opt) {
+               msg_release_struct(&(ugd->msg_setting.mms_opt));
+       }
+
+       if (ugd->msg_setting.mms_recv_opt) {
+               msg_release_struct(&(ugd->msg_setting.mms_recv_opt));
+       }
+
+       if (ugd->time_12h_ptn) {
+               free(ugd->time_12h_ptn);
+               ugd->time_12h_ptn = NULL;
+       }
+
+       if (ugd->time_24h_ptn) {
+               free(ugd->time_24h_ptn);
+               ugd->time_24h_ptn = NULL;
+       }
+
+       if (ugd->date_ptn_default) {
+               free(ugd->date_ptn_default);
+               ugd->date_ptn_default = NULL;
+       }
+
+       if (ugd->date_ptn_year) {
+               free(ugd->date_ptn_year);
+               ugd->date_ptn_year = NULL;
+       }
+
+       if (ugd->unread_message_check_idler) {
+               ecore_idler_del(ugd->unread_message_check_idler);
+               ugd->unread_message_check_idler = NULL;
+       }
+
+       if (ugd->theme) {
+               elm_theme_extension_del(ugd->theme, MSG_SETTING_THEME);
+               elm_theme_free(ugd->theme);
+               ugd->theme = NULL;
+       }
+
+       if (ugd->custom_theme) {
+               msg_common_destroy_custom_winset_theme(ugd->custom_theme);
+               ugd->custom_theme = NULL;
+       }
+
+
+       MSG_TIMER_OBJECT_DEL(ugd->cb_timer);
+       MSG_TIMER_OBJECT_DEL(ugd->ignore_hw_back_events_timer);
+}
+
+static void __msg_ui_setting_on_message(ui_gadget_h ug, app_control_h msg, app_control_h data, void *priv)
+{
+       D_ENTER;
+}
+
+static void __msg_ui_setting_on_event(ui_gadget_h ug, enum ug_event event, app_control_h data, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!ug, "ug is NULL");
+       D_MSG_RETM_IF(!priv, "priv is NULL");
+
+       PMSG_SETTING_DATA ugd = NULL;
+
+       ugd = (PMSG_SETTING_DATA)priv;
+
+       switch (event) {
+               case UG_EVENT_LOW_MEMORY:
+                       break;
+               case UG_EVENT_LOW_BATTERY:
+                       break;
+               case UG_EVENT_LANG_CHANGE:
+                       __msg_ui_setting_event_lang_change(ugd);
+                       break;
+               case UG_EVENT_ROTATE_PORTRAIT:
+                       ugd->rot = MSG_UI_SETTING_PORTRAIT;
+                       break;
+               case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
+                       ugd->rot = MSG_UI_SETTING_PORTRAIT_UPSIDEDOWN;
+                       break;
+               case UG_EVENT_ROTATE_LANDSCAPE:
+                       ugd->rot = MSG_UI_SETTING_LANDSCAPE;
+                       break;
+               case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+                       ugd->rot = MSG_UI_SETTING_LANDSCAPE_UPSIDEDOWN;
+                       break;
+               case UG_EVENT_REGION_CHANGE:
+                       break;
+               default:
+                       break;
+       }
+}
+
+static void __msg_ui_setting_on_key_event(ui_gadget_h ug, enum ug_key_event event, app_control_h data, void *priv)
+{
+       D_ENTER;
+       D_LEAVE;
+}
+
+static bool on_storage_device_supported(int storage_id, storage_type_e type, storage_state_e state, const char *path, void *user_data)
+{
+       D_ENTER;
+       if (type == STORAGE_TYPE_EXTERNAL) {
+               PMSG_SETTING_DATA settings_data = (PMSG_SETTING_DATA)user_data;
+               D_MSG("storage: %d has been discovered", storage_id);
+               settings_data->external_storage_id = storage_id;
+               storage_set_state_changed_cb(storage_id, on_storage_set_state_cb, settings_data);
+               return false;
+       }
+       return true;
+}
+
+UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA ugd = NULL;
+
+       if (!ops)
+               return MSG_UI_RET_ERR;
+
+       msg_common_init_default_preference();
+
+       ugd = calloc(1, sizeof(MSG_SETTING_DATA));
+       if (!ugd)
+               return MSG_UI_RET_ERR;
+
+       ops->create = __msg_ui_setting_on_create;
+       ops->start = __msg_ui_setting_on_start;
+       ops->pause = __msg_ui_setting_on_pause;
+       ops->resume = __msg_ui_setting_on_resume;
+       ops->destroy = __msg_ui_setting_on_destroy;
+       ops->message = __msg_ui_setting_on_message;
+       ops->event = __msg_ui_setting_on_event;
+       ops->key_event = __msg_ui_setting_on_key_event;
+       ops->priv = (void *)ugd;
+       ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+       ugd->external_storage_id = 0;
+       if (storage_foreach_device_supported(on_storage_device_supported, ugd) != STORAGE_ERROR_NONE) {
+               D_EMSG("storage_foreach_device_supported() has failed!!");
+       }
+
+       msg_handle_t msgHandle = NULL;
+       msg_error_t err = MSG_SUCCESS;
+
+       /*Set Message Handler*/
+       err = msg_open_msg_handle(&msgHandle);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_open_msg_handle failed, Error=[%d]", err);
+               __msg_ui_setting_gadget_popup(ugd, TEXT("Message server is not ready"));
+               return MSG_UI_RET_ERR;
+       }
+
+       ugd->msgHandle = msgHandle;
+
+       msg_reg_storage_change_callback(ugd->msgHandle, &msg_ui_setting_storage_change_cb, ugd);
+
+       return MSG_UI_RET_SUCCESS;
+}
+
+UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA ugd = NULL;
+
+       if (!ops)
+               return;
+
+       ugd = (PMSG_SETTING_DATA)ops->priv;
+       if (ugd == NULL) {
+               D_EMSG("ugd is NULL");
+               return;
+       }
+
+       /* If msg-server isn't ready, message setting try to display error popup.
+        * In this case, popup should be destroyed in UG_MODULE_EXIT.
+        * Because, ug_create is failed. Therefore, only UG_MODULE_EXIT is called.
+        */
+
+       if (ugd->popup != NULL) {
+               evas_object_del(ugd->popup);
+               ugd->popup = NULL;
+       }
+
+       storage_unset_state_changed_cb(ugd->external_storage_id, on_storage_set_state_cb);
+
+       free(ugd);
+       ugd = NULL;
+}
+
+UG_MODULE_API int setting_plugin_reset(app_control_h data, void *priv)
+{
+       /* To Do : Reset message settings. */
+
+       /* In case of success, it will return 0. */
+       return 0;
+}
diff --git a/setting/src/main/msg-ui-setting-main.c b/setting/src/main/msg-ui-setting-main.c
new file mode 100755 (executable)
index 0000000..5cb7462
--- /dev/null
@@ -0,0 +1,470 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-setting-main.h"
+#include "msg-ui-setting-text-message.h"
+#include "msg-ui-setting-mm-message.h"
+#include "msg-ui-setting-notification.h"
+#include "msg-ui-common-utility.h"
+#include "msg-system-util.h"
+
+#include <Ecore_X.h>
+
+
+static PMSG_SETTING_DATA g_settingData = NULL;
+
+struct _SimIconNode simPopupIconNode[] = {
+       {"SIM 1", SETTING_ICON_PATH_CFG"multisim/32x32_tab/logs_icon_sim_tab_1.png"},
+       {"SIM 2", SETTING_ICON_PATH_CFG"multisim/32x32_tab/logs_icon_sim_tab_2.png"},
+       {"Call", SETTING_ICON_PATH_CFG"multisim/32x32_tab/logs_icon_sim_tab_phone.png"},
+       {"SMS", SETTING_ICON_PATH_CFG"multisim/32x32_tab/logs_icon_sim_tab_sms.png"},
+       {"Data", SETTING_ICON_PATH_CFG"multisim/32x32_tab/logs_icon_sim_tab_data.png"},
+       {"Internet", SETTING_ICON_PATH_CFG"multisim/32x32_tab/logs_icon_sim_tab_internet.png"},
+       {"Home", SETTING_ICON_PATH_CFG"multisim/32x32_tab/logs_icon_sim_tab_home.png"},
+       {"Office", SETTING_ICON_PATH_CFG"multisim/32x32_tab/logs_icon_sim_tab_office.png"},
+       {"Heart", SETTING_ICON_PATH_CFG"multisim/32x32_tab/logs_icon_sim_tab_heart.png"},
+       {NULL, NULL}
+};
+
+struct _msg_ui_setting_list_item setting_menu_its[] = {
+       /* text msg settings */
+       {"IDS_MSG_TMBODY_TEXT_MESSAGES", NULL},
+       {"IDS_MSG_TMBODY_MESSAGES_ON_SIM_CARD", msg_ui_setting_sim_card_msg_cb},
+       {"IDS_MSG_SBODY_MANAGE_THE_MESSAGES_STORED_ON_YOUR_SIM_CARD", NULL},
+       {"IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB", NULL},
+       {"IDS_MSG_TMBODY_INPUT_MODE", NULL},
+       {"IDS_MSG_SBODY_SELECT_AN_INPUT_MODE_FOR_COMPOSING_MESSAGES", NULL},
+       {"IDS_MSGF_BODY_DELIVERY_REPORT", NULL},
+       {"IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND", NULL},
+
+       /* mm msg settings */
+       {"IDS_MSG_TMBODY_MULTIMEDIA_MESSAGES", NULL},
+       {"IDS_MSGF_BODY_DELIVERY_REPORT", NULL},
+       {"IDS_MSGS_BODY_REQUEST_A_DELIVERY_REPORT_FOR_EACH_MESSAGE_YOU_SEND", NULL},
+       {"IDS_MSGF_BODY_READ_REPORT", NULL},
+       {"IDS_MSGS_BODY_REQUEST_A_READ_REPORT_FOR_EACH_MESSAGE_YOU_SEND", NULL},
+       {"IDS_MSG_TMBODY_AUTO_RETRIEVE", NULL},
+       {"IDS_MSGS_BODY_AUTOMATICALLY_RETRIEVE_MMS_MESSAGES", NULL},
+       {"IDS_MSG_TMBODY_AUTO_RETRIEVE_WHILE_ROAMING", NULL},
+       {"IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY_WHILE_ROAMING", NULL},
+
+       /* notification settings */
+       {"IDS_MSGS_BODY_NOTIFICATIONS", NULL},
+       {"IDS_MSG_MBODY_ALERTS", NULL},
+       {"IDS_MSGS_BODY_PLAYS_SOUNDS_AND_SHOWS_AN_ICON_ON_THE_STATUS_BAR_WHEN_YOU_RECEIVE_MESSAGES", NULL},
+       {"IDS_MSG_TMBODY_SOUND", NULL},
+       {"IDS_MSG_MBODY_VIBRATION", NULL},
+
+       /* do not delete below */
+       {NULL, NULL}
+};
+
+/*============================================================================
+                               STATIC FUNCTION DEFINE
+=============================================================================*/
+static void __msg_ui_setting_main_gl_con(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_main_gl_realized(void *data, Evas_Object *obj, void *ei);
+static void __msg_ui_setting_pref_get_value(PMSG_SETTING_DATA settingData);
+
+static Evas_Object *__msg_ui_setting_create_genlist(void *data);
+
+/*============================================================================
+                               FUNCTION IMPLEMENT
+=============================================================================*/
+
+static void __msg_ui_setting_main_gl_con(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       Elm_Object_Item *item = event_info;
+       elm_genlist_item_subitems_clear(item);
+}
+
+static void __msg_ui_setting_main_gl_realized(void *data, Evas_Object *obj, void *ei)
+{
+       D_MSG_RETM_IF(!ei, "ei is NULL");
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       int index = (int)elm_object_item_data_get(ei);
+       Elm_Object_Item *parent = elm_genlist_item_parent_get(ei);
+
+       if (!parent) {
+               if (index == MSG_UI_SETTING_MAIN_MENU_SELECT_RINGTONE) {
+                       elm_object_item_signal_emit(ei, "elm,state,top", "");
+               } else if (index == MSG_UI_SETTING_MAIN_MENU_VIBRATE) {
+                       elm_object_item_signal_emit(ei, "elm,state,center", "");
+               } else if (index == MSG_UI_SETTING_MAIN_MENU_MESSAGE_CENTER) {
+                       if (settingData->bSIM_inserted == true) {
+                               elm_object_item_signal_emit(ei, "elm,state,top", "");
+                       }
+               } else if (index == MSG_UI_SETTING_MAIN_MENU_INPUT_MODE) {
+                       if (settingData->bSIM_inserted == true) {
+                               elm_object_item_signal_emit(ei, "elm,state,bottom", "");
+                       }
+               }
+       } else {
+               if (parent == settingData->text_msg.text_input_mode_item) {
+                       if (index == MSG_UI_SETTING_TEXT_INPUT_MODE_MENU_AUTOMATIC) {
+                               elm_object_item_signal_emit(ei, "elm,state,bottom", "");
+                       } else {
+                               elm_object_item_signal_emit(ei, "elm,state,center", "");
+                       }
+               } else if (parent == settingData->noti.alert_repetition_item) {
+                       elm_object_item_signal_emit(ei, "elm,state,center", "");
+               }
+       }
+}
+
+static void __msg_ui_setting_main_gl_lang_changed(void *data, Evas_Object *obj, void *ei)
+{
+       D_ENTER;
+
+       elm_genlist_realized_items_update(obj);
+}
+
+void __msg_ui_setting_sim_icon_refresh(void *data, int sim)
+{
+       D_ENTER;
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Evas_Object *content = NULL;
+
+       if (settingData->text_msg.tab_bar) {
+               if (sim == 1) {
+                       Evas_Object *button1 = elm_object_item_part_content_get(settingData->text_msg.tabbar_btn[0], "object");
+                       if (NULL == button1) {
+                               D_EMSG("Could not able to get button from tabbar");
+                               return;
+                       }
+
+                       content = elm_object_part_content_unset(button1, "icon_container");
+                       if (NULL != content)
+                               evas_object_del(content);
+
+                       Evas_Object *iconsim1 = NULL;
+                       iconsim1 = elm_icon_add(button1);
+                       elm_image_file_set(iconsim1, settingData->sim1_icon, NULL);
+                       elm_object_part_content_set(button1, "icon_container", iconsim1);
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_common_sim_text_refresh(void *data, int sim)
+{
+       D_ENTER;
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (settingData->text_msg.tab_bar) {
+               if (sim == 1) {
+                       Evas_Object *button1 = elm_object_item_part_content_get(settingData->text_msg.tabbar_btn[0], "object");
+                       elm_object_text_set(button1, NULL);
+                       elm_object_text_set(button1, settingData->sim1_name);
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_setting_pref_get_value(PMSG_SETTING_DATA settingData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!settingData, "PMSG_SETTING_DATA is NULL");
+       int MMS_alert = -1;
+       int popup_display = -1;
+
+       if (preference_get_int(KEY_MSG_APP_MMS_ALERT, &MMS_alert) < 0) {
+               D_EMSG("preference_get_int(mms alert) is failed !!");
+       }
+       settingData->mm_msg.bMMS_alert = (Eina_Bool)MMS_alert;
+
+       if (preference_get_int(KEY_MSG_APP_POPUP_DISPLAY_ENABLE, &popup_display) < 0) {
+               D_EMSG("preference_get_int(popup_display) is failed !!");
+       }
+       settingData->noti.popup_display_enable = (Eina_Bool)popup_display;
+}
+
+static void __msg_ui_setting_get_msg_service_value(PMSG_SETTING_DATA settingData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!settingData, "PMSG_SETTING_DATA is NULL");
+       int msg_ringtone_type = 0;
+       int msg_alert_repetition_key = 0;
+       int err = MSG_SUCCESS;
+       bool bGeneral_menu = false;
+       bool bNoti_val = false;
+
+       /* General */
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_GENERAL;
+       err = msg_ui_setting_msg_get_config(settingData);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_ui_setting_msg_get_config fail : %d", err);
+       }
+       err = msg_get_bool_value(settingData->msg_setting.general_opt, MSG_GENERAL_AUTO_ERASE_BOOL, &bGeneral_menu);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_bool_value fail : %d", err);
+       }
+       settingData->general.bGeneral_menu = bGeneral_menu;
+       D_SEC_MSG("delte old msg : %d", settingData->general.bGeneral_menu);
+
+       /* Text */
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMS_SEND;
+       err = msg_ui_setting_msg_get_config(settingData);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_ui_setting_msg_get_config fail : %d", err);
+       }
+
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMSC_LIST;
+       err = msg_ui_setting_msg_get_config(settingData);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_ui_setting_msg_get_config fail : %d", err);
+       }
+
+#ifndef _MSG_FEATURE_MMS_DISABLE
+       int auto_retrieve = 0;
+       /* MMS */
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_SEND;
+       err = msg_ui_setting_msg_get_config(settingData);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_ui_setting_msg_get_config fail : %d", err);
+       }
+
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
+       err = msg_ui_setting_msg_get_config(settingData);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_ui_setting_msg_get_config fail : %d", err);
+       }
+       err = msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, &auto_retrieve);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_int_value fail : %d", err);
+       }
+       settingData->mm_msg.auto_retrieve = auto_retrieve;
+#endif
+
+       /* Notification */
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_GENERAL;
+       err = msg_ui_setting_msg_get_config(settingData);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_ui_setting_msg_get_config fail : %d", err);
+       }
+       err = msg_get_bool_value(settingData->msg_setting.general_opt, MSG_GENERAL_MSG_NOTIFICATION_BOOL, &bNoti_val);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_bool_value fail : %d", err);
+       }
+       settingData->noti.bNoti_menu = bNoti_val;
+       D_SEC_MSG("Notifications : %d", settingData->noti.bNoti_menu);
+
+       err = msg_get_int_value(settingData->msg_setting.general_opt, MSG_GENERAL_ALERT_TONE_INT, &msg_alert_repetition_key);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_int_value fail : %d", err);
+       }
+       settingData->noti.msg_alert_repetition_key = msg_alert_repetition_key;
+       D_SEC_MSG("Alert repetition key : %d", settingData->noti.msg_alert_repetition_key);
+
+       err = msg_get_int_value(settingData->msg_setting.general_opt, MSG_GENERAL_RINGTONE_TYPE_INT, &msg_ringtone_type);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_int_value fail : %d", err);
+       }
+       settingData->noti.msg_ringtone_type = msg_ringtone_type;
+       if (msg_ringtone_type == MSG_RINGTONE_TYPE_USER) {
+               char msg_ringtone_path[DEF_BUF_LEN_1024] = {0, };
+               err = msg_get_str_value(settingData->msg_setting.general_opt, MSG_GENERAL_RINGTONE_PATH_STR, msg_ringtone_path, DEF_BUF_LEN_1024);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_get_str_value fail : %d", err);
+               }
+               /* Ringtone is set from MMC card. When MMC card is removed, Default ringtone is set. */
+               if (access(msg_ringtone_path, F_OK) == -1) {
+                       err = msg_set_int_value(settingData->msg_setting.general_opt, MSG_GENERAL_RINGTONE_TYPE_INT, MSG_RINGTONE_TYPE_DEFAULT);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_set_int_value fail : %d", err);
+                       }
+                       settingData->noti.msg_ringtone_type = MSG_RINGTONE_TYPE_DEFAULT;
+                       err = msg_ui_setting_msg_set_config(settingData);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_ui_setting_msg_set_config fail : %d", err);
+                       }
+                       D_MSG("Ringtone type is changed to default. [%d]", settingData->noti.msg_ringtone_type);
+               }
+       }
+       D_SEC_MSG("Select ringtone type : %d", settingData->noti.msg_ringtone_type);
+
+}
+
+static Evas_Object *__msg_ui_setting_create_genlist(void *data)
+{
+       D_ENTER;
+       int index = 0;
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       msg_ui_setting_notifications_group_create(settingData);
+
+       msg_ui_setting_text_group_create(settingData);
+
+       msg_ui_setting_mms_group_create(settingData);
+
+       evas_object_show(settingData->main_genlist);
+       D_LEAVE;
+       return settingData->main_genlist;
+}
+
+void msg_ui_setting_create_main_view(PMSG_SETTING_DATA settingData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!settingData, "PMSG_SETTING_DATA is NULL");
+
+       __msg_ui_setting_pref_get_value(settingData);
+
+       __msg_ui_setting_get_msg_service_value(settingData);
+       if (msg_common_is_sim_active()) {
+               settingData->bSIM_inserted = true;
+       } else {
+               settingData->bSIM_inserted = false;
+               settingData->bDCM_sim_inserted = false;
+       }
+
+       settingData->retain_list_pos = false;
+       settingData->list_pos = 0;
+
+       settingData->main_genlist = msg_ui_setting_common_create_genlist(settingData->navi_frame);
+       elm_genlist_realization_mode_set(settingData->main_genlist, EINA_TRUE);
+       evas_object_smart_callback_add(settingData->main_genlist, "realized", __msg_ui_setting_main_gl_realized, (void *)settingData);
+       evas_object_smart_callback_add(settingData->main_genlist, "language,changed", __msg_ui_setting_main_gl_lang_changed, (void *)settingData);
+       evas_object_smart_callback_add(settingData->main_genlist, "contracted", __msg_ui_setting_main_gl_con, settingData);
+       elm_genlist_homogeneous_set(settingData->main_genlist, EINA_FALSE);
+       elm_genlist_mode_set(settingData->main_genlist, ELM_LIST_COMPRESS);
+
+       settingData->main_genlist = __msg_ui_setting_create_genlist(settingData);
+       settingData->navi_it = msg_common_naviframe_item_with_title_and_back_arrow_create(settingData->navi_frame, "IDS_MSG_HEADER_SETTINGS", settingData->main_genlist, EINA_TRUE);
+
+       elm_naviframe_item_pop_cb_set(settingData->navi_it, msg_ui_setting_quit_cb, (void *)settingData);
+
+       D_LEAVE;
+}
+
+void msg_ui_setting_storage_change_cb(msg_handle_t handle, msg_storage_change_type_t type, msg_id_list_s *pMsgIdList, void *user_param)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!user_param, "user_param is NULL");
+       D_MSG_RETM_IF(!pMsgIdList, "pMsgIdList is NULL");
+
+       PMSG_SETTING_DATA settingData = user_param;
+       Elm_Object_Item *sim_gl_item = NULL;
+
+       D_MSG("type is %d", type);
+
+       if (settingData->view_type == SETTING_SIM_MSG_COPY_TO_PHONE_SAVE_VIEW) {
+               settingData->view_type = SETTING_SIM_MSG_MAIN_VIEW;
+               D_MSG("change setting view type : %d", settingData->view_type);
+               return;
+       }
+
+       D_MSG("setting view type : %d", settingData->view_type);
+
+       if (settingData->view_type == SETTING_SIM_MSG_MAIN_VIEW || settingData->view_type == SETTING_SIM_MSG_COPY_TO_PHONE_VIEW || settingData->view_type == SETTING_SIM_MSG_DELETE_VIEW) {
+               D_MSG("pMsgIdList : %d", pMsgIdList->nCount);
+
+               if (type == MSG_STORAGE_CHANGE_INSERT) {
+                       msg_ui_setting_sim_msg_view_init(settingData);
+                       int item_idx = 0;
+                       PMSG_UI_SETTING_THREAD_MSG_DATA_S cur_item = NULL;
+
+                       for (item_idx = 0; item_idx < pMsgIdList->nCount; item_idx++) {
+                               msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+                               msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+                               msg_error_t err = MSG_SUCCESS;
+                               int storage_id = 0;
+                               int sim_index = 0;
+
+                               err = msg_get_message(settingData->msgHandle, pMsgIdList->msgIdList[item_idx], msgInfo, sendOpt);
+
+                               if (err != MSG_SUCCESS) {
+                                       msg_release_struct(&msgInfo);
+                                       msg_release_struct(&sendOpt);
+                                       D_EMSG("error : msg_id : %d, error : %d", pMsgIdList->msgIdList[item_idx], err);
+                                       return;
+                               }
+
+                               /* STORAGE VALUE */
+                               msg_get_int_value(msgInfo, MSG_MESSAGE_STORAGE_ID_INT, &storage_id);
+                               msg_get_int_value(msgInfo, MSG_MESSAGE_SIM_INDEX_INT, &sim_index);
+
+                               if (storage_id == MSG_STORAGE_SIM) {
+                                       cur_item = (PMSG_UI_SETTING_THREAD_MSG_DATA_S) calloc(1, sizeof(MSG_UI_SETTING_THREAD_MSG_DATA_S));
+                                       msg_ui_setting_set_msg_data(cur_item, msgInfo);
+
+                                       if (settingData->view_type == SETTING_SIM_MSG_MAIN_VIEW) {
+                                               if (settingData->item_cnt == 1) {
+                                                       msg_ui_setting_sim_msg_update_view(settingData);
+                                               } else {
+                                                       sim_gl_item = elm_genlist_item_prepend(settingData->sim_msg.genlist, &settingData->sim_msg.sim_itc, cur_item, NULL,
+                                                               ELM_GENLIST_ITEM_NONE, msg_ui_setting_sim_msg_gl_sel, (void *)cur_item);
+                                                       elm_genlist_item_select_mode_set(sim_gl_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+                                               }
+                                       } else if (settingData->view_type == SETTING_SIM_MSG_COPY_TO_PHONE_VIEW || settingData->view_type == SETTING_SIM_MSG_DELETE_VIEW) {
+                                               Elm_Object_Item *gen_item = NULL;
+                                               gen_item = elm_genlist_first_item_get(settingData->sim_msg.genlist);
+                                               elm_genlist_item_insert_after(settingData->sim_msg.genlist, &settingData->sim_msg.sim_itc, cur_item, NULL, gen_item,
+                                                               ELM_GENLIST_ITEM_NONE, msg_ui_setting_sim_msg_gl_sel, (void *)cur_item);
+
+                                               if (elm_check_state_get(settingData->sim_msg.sel_all_btn) == EINA_TRUE)
+                                                       elm_check_state_set(settingData->sim_msg.sel_all_btn, EINA_FALSE);
+                                               settingData->total_check_cnt = settingData->old_total_check_cnt;
+                                       } else {
+                                               msg_ui_setting_sim_msg_gl_del(cur_item, NULL);
+                                       }
+                               }
+                               msg_release_struct(&msgInfo);
+                               msg_release_struct(&sendOpt);
+                       }
+               } else if (type == MSG_STORAGE_CHANGE_DELETE) {
+                       if (settingData->view_type == SETTING_SIM_MSG_MAIN_VIEW)
+                               msg_ui_setting_sim_msg_update_view(settingData);
+               }
+       }
+}
+
+void msg_ui_setting_launch(PMSG_SETTING_DATA settingData)
+{
+       D_ENTER;
+
+       /* Set global data. */
+       g_settingData = settingData;
+
+       msg_ui_setting_create_main_view(settingData);
+
+       D_LEAVE;
+}
+
+void msg_ui_setting_sim_view_launch(PMSG_SETTING_DATA settingData)
+{
+       D_ENTER;
+
+       /* Set global data. */
+       g_settingData = settingData;
+
+       msg_ui_setting_create_sim_card_msg_main(settingData, NULL, NULL);
+
+       D_LEAVE;
+}
+PMSG_SETTING_DATA msg_ui_setting_get_data(void)
+{
+       if (g_settingData)
+               return g_settingData;
+       else
+               return NULL;
+}
diff --git a/setting/src/main/msg-ui-setting-msg-service-wrapper.c b/setting/src/main/msg-ui-setting-msg-service-wrapper.c
new file mode 100755 (executable)
index 0000000..359c8be
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-setting-msg-service-wrapper.h"
+
+int msg_ui_setting_msg_set_config(PMSG_SETTING_DATA settingData)
+{
+       D_ENTER;
+
+       msg_error_t err = MSG_SUCCESS;
+       switch (settingData->msg_setting.type) {
+       case MSG_UI_SETTING_TYPE_GENERAL:
+               err = msg_set_general_opt(settingData->msgHandle, settingData->msg_setting.general_opt);
+               break;
+       case MSG_UI_SETTING_TYPE_SMS_SEND:
+               err = msg_set_sms_send_opt(settingData->msgHandle, settingData->msg_setting.sms_opt);
+               break;
+       case MSG_UI_SETTING_TYPE_SMSC_LIST:
+               err = msg_set_smsc_opt(settingData->msgHandle, settingData->msg_setting.smsc_opt);
+               break;
+       case MSG_UI_SETTING_TYPE_MMS_SEND:
+               err = msg_set_mms_send_opt(settingData->msgHandle, settingData->msg_setting.mms_opt);
+               break;
+       case MSG_UI_SETTING_TYPE_MMS_RECEIVE:
+               err = msg_set_mms_recv_opt(settingData->msgHandle, settingData->msg_setting.mms_recv_opt);
+               break;
+       default:
+               D_EMSG("[FAIL] TYPE err %d \n", settingData->msg_setting.type);
+               return MSG_UI_RET_ERR;
+       }
+       D_MSG_RETVM_IF(err != MSG_SUCCESS, -1, "[FAIL] msg_set_config of MSG FW : err %d \n", err);
+
+       D_LEAVE;
+
+       return err;
+}
+
+int msg_ui_setting_msg_get_config(PMSG_SETTING_DATA settingData)
+{
+       D_ENTER;
+
+       msg_error_t err = MSG_SUCCESS;
+
+       switch (settingData->msg_setting.type) {
+       case MSG_UI_SETTING_TYPE_GENERAL:
+               if (settingData->msg_setting.general_opt != NULL) {
+                               msg_release_struct(&settingData->msg_setting.general_opt);
+               }
+               settingData->msg_setting.general_opt = msg_create_struct(MSG_STRUCT_SETTING_GENERAL_OPT);
+               err = msg_get_general_opt(settingData->msgHandle, settingData->msg_setting.general_opt);
+               break;
+       case MSG_UI_SETTING_TYPE_SMS_SEND:
+               if (settingData->msg_setting.sms_opt != NULL) {
+                               msg_release_struct(&settingData->msg_setting.sms_opt);
+               }
+               settingData->msg_setting.sms_opt = msg_create_struct(MSG_STRUCT_SETTING_SMS_SEND_OPT);
+               err = msg_get_sms_send_opt(settingData->msgHandle, settingData->msg_setting.sms_opt);
+               break;
+       case MSG_UI_SETTING_TYPE_SMSC_LIST:
+               {
+                       if (settingData->msg_setting.smsc_opt != NULL) {
+                               msg_release_struct(&settingData->msg_setting.smsc_opt);
+                       }
+
+                       settingData->msg_setting.smsc_opt = msg_create_struct(MSG_STRUCT_SETTING_SMSC_OPT);
+
+                       if (msg_common_is_sim_active()) {
+                               msg_set_int_value(settingData->msg_setting.smsc_opt, MSG_SMSC_LIST_SIM_INDEX_INT, 1);
+
+                               err = msg_get_smsc_opt(settingData->msgHandle, settingData->msg_setting.smsc_opt);
+
+                               msg_get_list_handle(settingData->msg_setting.smsc_opt, MSG_SMSC_LIST_STRUCT,
+                                               (void **)&(settingData->msg_setting.smsc_list));
+                       }
+               }
+               break;
+       case MSG_UI_SETTING_TYPE_MMS_SEND:
+               if (settingData->msg_setting.mms_opt != NULL) {
+                               msg_release_struct(&settingData->msg_setting.mms_opt);
+               }
+               settingData->msg_setting.mms_opt = msg_create_struct(MSG_STRUCT_SETTING_MMS_SEND_OPT);
+               err = msg_get_mms_send_opt(settingData->msgHandle, settingData->msg_setting.mms_opt);
+               break;
+       case MSG_UI_SETTING_TYPE_MMS_RECEIVE:
+               if (settingData->msg_setting.mms_recv_opt != NULL) {
+                               msg_release_struct(&settingData->msg_setting.mms_recv_opt);
+               }
+               settingData->msg_setting.mms_recv_opt = msg_create_struct(MSG_STRUCT_SETTING_MMS_RECV_OPT);
+               err = msg_get_mms_recv_opt(settingData->msgHandle, settingData->msg_setting.mms_recv_opt);
+               break;
+
+       default:
+               D_EMSG("[FAIL] TYPE err %d \n", settingData->msg_setting.type);
+               return MSG_UI_RET_ERR;
+       }
+
+       D_MSG_RETVM_IF(err != MSG_SUCCESS, -1, "[FAIL] msg_get_config of MSG FW : err %d \n", err);
+
+       D_LEAVE;
+
+       return err;
+}
+
diff --git a/setting/src/multimedia/msg-ui-setting-mm-message.c b/setting/src/multimedia/msg-ui-setting-mm-message.c
new file mode 100755 (executable)
index 0000000..0cb3b20
--- /dev/null
@@ -0,0 +1,458 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-setting-mm-message.h"
+
+/*============================================================================
+                               STATIC FUNCTION DEFINE
+=============================================================================*/
+static void __msg_ui_setting_mm_delivery_report_save(void *data);
+static void __msg_ui_setting_mm_read_report_save(void *data);
+static void __msg_ui_setting_mm_auto_retrieve_save(void *data);
+static void __msg_ui_setting_mm_roaming_auto_retrieve_confirm(void *data, int *auto_ret, int *roaming_service, int *roaming_app);
+static bool __msg_ui_setting_mm_roaming_auto_retrieve_get(void *data, int *get_val);
+static void __msg_ui_setting_mm_roaming_auto_retrieve_save(void *data);
+static void __msg_ui_setting_mm_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_mm_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_setting_mms_create_check(Evas_Object *parent, PMSG_SETTING_DATA settingData, Eina_Bool set_check);
+
+/*============================================================================
+                               FUNCTION IMPLEMENT
+=============================================================================*/
+
+/*=============================================================================
+                                       LITE FUNCTIONS
+==============================================================================*/
+static void __msg_ui_setting_mm_menu_on_off_set_disable(PMSG_SETTING_DATA settingData, Eina_Bool set_val)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!settingData, "PMSG_SETTING_DATA is NULL");
+       D_MSG_RETM_IF(!settingData->mm_msg.roaming_auto_retrieve_item, "settingData->mm_msg.roaming_auto_retrieve_item is NULL");
+
+       elm_object_item_disabled_set(settingData->mm_msg.roaming_auto_retrieve_item, set_val);
+}
+
+static char *__msg_ui_settting_mms_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       int index = (int)data;
+       char buf[DEF_BUF_LEN_S] = {0, };
+       D_MSG("part name : [%s]", part);
+       D_MSG("index [%d]", index);
+
+       if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.main") || !strcmp(part, "elm.text.main.left")) {
+               if (setting_menu_its[index].name)
+                       return strdup(TEXT(setting_menu_its[index].name));
+       } else if (!strcmp(part, "elm.text.multiline")) {
+               if (index == MSG_UI_SETTING_MM_MENU_AUTO_RETRIEVE) {
+                       snprintf(buf, sizeof(buf), MSG_FIXED_SIZE_MULTILINE_TEMPLATE, TEXT("IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"));
+                       return strdup(buf);
+               }
+               else if (index == MSG_UI_SETTING_MM_MENU_ROAMING_AUTO_RETRIEVE || index == MSG_UI_SETTING_MM_MENU_DELIVERY_REPORT || index == MSG_UI_SETTING_MM_MENU_READ_REPORT) {
+                       snprintf(buf, sizeof(buf), MSG_FIXED_SIZE_MULTILINE_TEMPLATE, TEXT(setting_menu_its[index + 1].name));
+                       return strdup(buf);
+               }
+       }
+       return NULL;
+}
+
+static Evas_Object *__msg_ui_setting_mms_create_check(Evas_Object *parent, PMSG_SETTING_DATA settingData, Eina_Bool set_check)
+{
+       Evas_Object *check = elm_check_add(parent);
+
+       elm_check_state_set(check, set_check);
+       elm_object_style_set(check, "on&off");
+       evas_object_propagate_events_set(check, EINA_FALSE);
+       elm_object_focus_allow_set(check, EINA_FALSE);
+       evas_object_smart_callback_add(check, "changed", __msg_ui_setting_mm_gl_check_clicked_cb, settingData);
+
+       return check;
+}
+
+static Evas_Object *__msg_ui_settting_mms_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       int index = (int)data;
+       D_MSG("part name : [%s]", part);
+       D_MSG("index [%d]", index);
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       D_MSG_RETVM_IF(!settingData, NULL, "PMSG_SETTING_DATA is NULL");
+       int  set_val = 0;
+       Eina_Bool set_bool_val = FALSE;
+
+       if (!strcmp(part, "elm.swallow.end")) {
+               if (index == MSG_UI_SETTING_MM_MENU_DELIVERY_REPORT) {
+
+                       msg_get_bool_value(settingData->msg_setting.mms_opt, MSG_MMS_SENDOPT_DELIVERY_REPORT_BOOL, (bool *)&set_bool_val);
+                       D_SEC_MSG("auto retrieve : %d", set_bool_val);
+
+                       settingData->mm_msg.delivery_report_check = __msg_ui_setting_mms_create_check(obj, settingData, set_bool_val);
+
+                       return settingData->mm_msg.delivery_report_check;
+               } else if (index == MSG_UI_SETTING_MM_MENU_READ_REPORT) {
+
+                       msg_get_bool_value(settingData->msg_setting.mms_opt, MSG_MMS_SENDOPT_READ_REPLY_BOOL, (bool *)&set_bool_val);
+                       D_SEC_MSG("auto retrieve : %d", set_bool_val);
+                       settingData->mm_msg.read_report_check = __msg_ui_setting_mms_create_check(obj, settingData, set_bool_val);
+
+                       return settingData->mm_msg.read_report_check;
+               } else if (index == MSG_UI_SETTING_MM_MENU_AUTO_RETRIEVE) {
+
+                       msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, &set_val);
+                       D_SEC_MSG("auto retrieve : %d", set_val);
+                       set_bool_val = set_val == MSG_HOME_AUTO_DOWNLOAD ? EINA_TRUE : EINA_FALSE;
+                       settingData->mm_msg.auto_retrieve_check = __msg_ui_setting_mms_create_check(obj, settingData, set_bool_val);
+
+                       return settingData->mm_msg.auto_retrieve_check;
+               } else if (index == MSG_UI_SETTING_MM_MENU_ROAMING_AUTO_RETRIEVE) {
+
+                       if (!__msg_ui_setting_mm_roaming_auto_retrieve_get(settingData, &set_val)) {
+                               D_EMSG("__msg_ui_setting_mm_roaming_auto_retrieve_get(settingData, &set_val) fail.");
+                       } else {
+                               D_SEC_MSG("roaming auto retrieve : %d", set_val);
+                       }
+                       set_bool_val = set_val == MSG_ABROAD_AUTO_DOWNLOAD ? EINA_TRUE : EINA_FALSE;
+                       settingData->mm_msg.roaming_auto_retrieve_check = __msg_ui_setting_mms_create_check(obj, settingData, set_bool_val);
+
+                       return settingData->mm_msg.roaming_auto_retrieve_check;
+               } else
+                       return NULL;
+       } else
+               return NULL;
+}
+
+void msg_ui_setting_mms_group_create(PMSG_SETTING_DATA settingData)
+{
+       int index = 0;
+       int set_val = 0;
+       msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, &set_val);
+       D_SEC_MSG("auto retrieve : %d", set_val);
+
+       /* Multimedia messages group */
+       settingData->mm_msg.mms_group_itc.item_style = "group_index";
+       settingData->mm_msg.mms_group_itc.func.text_get = __msg_ui_settting_mms_gl_text_get;
+       settingData->mm_msg.mms_group_itc.func.content_get = NULL;
+       settingData->mm_msg.mms_group_itc.func.state_get = NULL;
+       settingData->mm_msg.mms_group_itc.func.del = NULL;
+
+       index = MSG_UI_SETTING_MM_MENU_TITLE;
+       Elm_Genlist_Item *group_title = elm_genlist_item_append(settingData->main_genlist, &settingData->mm_msg.mms_group_itc, (void *)index, NULL,
+                               ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       elm_genlist_item_select_mode_set(group_title, ELM_OBJECT_SELECT_MODE_NONE);
+
+       /* Delivery mms menu */
+       settingData->mm_msg.delivery_report_itc.item_style = "multiline";
+       settingData->mm_msg.delivery_report_itc.func.text_get = __msg_ui_settting_mms_gl_text_get;
+       settingData->mm_msg.delivery_report_itc.func.content_get = __msg_ui_settting_mms_gl_content_get;
+       settingData->mm_msg.delivery_report_itc.func.del = NULL;
+
+       index =  MSG_UI_SETTING_MM_MENU_DELIVERY_REPORT;
+       elm_genlist_item_append(settingData->main_genlist, &settingData->mm_msg.delivery_report_itc, (void *)index, NULL,
+                               ELM_GENLIST_ITEM_NONE, __msg_ui_setting_mm_gl_sel, (void *)index);
+
+       /* Read report menu */
+       settingData->mm_msg.read_report_itc.item_style = "multiline";
+       settingData->mm_msg.read_report_itc.func.text_get = __msg_ui_settting_mms_gl_text_get;
+       settingData->mm_msg.read_report_itc.func.content_get = __msg_ui_settting_mms_gl_content_get;
+       settingData->mm_msg.read_report_itc.func.del = NULL;
+
+       index =  MSG_UI_SETTING_MM_MENU_READ_REPORT;
+       elm_genlist_item_append(settingData->main_genlist, &settingData->mm_msg.read_report_itc, (void *)index, NULL,
+                               ELM_GENLIST_ITEM_NONE, __msg_ui_setting_mm_gl_sel, (void *)index);
+
+       /* Auto Retrieve menu */
+       settingData->mm_msg.auto_retrieve_itc.item_style = "multiline";
+       settingData->mm_msg.auto_retrieve_itc.func.text_get = __msg_ui_settting_mms_gl_text_get;
+       settingData->mm_msg.auto_retrieve_itc.func.content_get = __msg_ui_settting_mms_gl_content_get;
+       settingData->mm_msg.auto_retrieve_itc.func.del = NULL;
+
+       index =  MSG_UI_SETTING_MM_MENU_AUTO_RETRIEVE;
+       elm_genlist_item_append(settingData->main_genlist, &settingData->mm_msg.auto_retrieve_itc, (void *)index, NULL,
+                               ELM_GENLIST_ITEM_NONE, __msg_ui_setting_mm_gl_sel, (void *)index);
+
+       /* Roaming Auto Retrieve menu */
+       settingData->mm_msg.roaming_auto_retrieve_itc.item_style = "multiline";
+       settingData->mm_msg.roaming_auto_retrieve_itc.func.text_get = __msg_ui_settting_mms_gl_text_get;
+       settingData->mm_msg.roaming_auto_retrieve_itc.func.content_get = __msg_ui_settting_mms_gl_content_get;
+       settingData->mm_msg.roaming_auto_retrieve_itc.func.del = NULL;
+
+       index =  MSG_UI_SETTING_MM_MENU_ROAMING_AUTO_RETRIEVE;
+       settingData->mm_msg.roaming_auto_retrieve_item = elm_genlist_item_append(settingData->main_genlist, &settingData->mm_msg.roaming_auto_retrieve_itc, (void *)index, NULL,
+                               ELM_GENLIST_ITEM_NONE, __msg_ui_setting_mm_gl_sel, (void *)index);
+
+       __msg_ui_setting_mm_menu_on_off_set_disable(settingData, (set_val == MSG_HOME_AUTO_DOWNLOAD) ? EINA_FALSE : EINA_TRUE);
+
+}
+
+/*=============================================================================
+                                       LITE ENDS
+==============================================================================*/
+static void __msg_ui_setting_mm_delivery_report_save(void *data)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Eina_Bool set_val = EINA_FALSE;
+       bool bDelivery = false;
+
+       set_val = elm_check_state_get(settingData->mm_msg.delivery_report_check);
+       D_MSG("set_val = %d", (int)set_val);
+
+       bDelivery = (bool)set_val;
+       /* Set requesting delivery report in sending option. */
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_SEND;
+       msg_set_bool_value(settingData->msg_setting.mms_opt, MSG_MMS_SENDOPT_DELIVERY_REPORT_BOOL, bDelivery);
+       msg_ui_setting_msg_set_config(settingData);
+
+       /* Set sending delivery report in receiving option. */
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
+       msg_set_bool_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_DELIVERY_REPORT_BOOL, bDelivery);
+       msg_ui_setting_msg_set_config(settingData);
+}
+
+static void __msg_ui_setting_mm_read_report_save(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Eina_Bool set_val = EINA_FALSE;
+
+       set_val = elm_check_state_get(settingData->mm_msg.read_report_check);
+       D_MSG("read report = %d", (int)set_val);
+
+       /* Set requesting read report in sending option. */
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_SEND;
+       msg_set_bool_value(settingData->msg_setting.mms_opt, MSG_MMS_SENDOPT_READ_REPLY_BOOL, set_val);
+       msg_ui_setting_msg_set_config(settingData);
+
+       /* Set sending read report in receiving option. */
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
+       msg_set_bool_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_READ_REPORT_BOOL, set_val);
+       msg_ui_setting_msg_set_config(settingData);
+}
+
+static void __msg_ui_setting_mm_auto_retrieve_save(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Eina_Bool set_val = EINA_FALSE;
+       int err = MSG_SUCCESS;
+
+       set_val = elm_check_state_get(settingData->mm_msg.auto_retrieve_check);
+       D_MSG("auto retrieve = %d", (int)set_val);
+
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
+       if (set_val == EINA_TRUE) {
+               msg_set_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, MSG_HOME_AUTO_DOWNLOAD);
+       } else {
+               msg_set_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, MSG_HOME_MANUAL);
+       }
+
+       msg_ui_setting_msg_set_config(settingData);
+
+       __msg_ui_setting_mm_menu_on_off_set_disable(settingData, !set_val);
+
+       /* auto retrieve while roaming  */
+       /* auto retrieve ON/OFF -> OFF : service OFF(app backup) */
+       /* auto retrieve ON/OFF -> ON : service restore into app value */
+       int auto_retrieve_roaming_in_app = MSG_ABROAD_MANUAL;
+
+       if (set_val == EINA_TRUE) {
+               err = preference_get_int(KEY_MSG_APP_AUTO_RETRIEVE_WHILE_ROAMING_BACKUP, &auto_retrieve_roaming_in_app);
+               if (err != PREFERENCE_ERROR_NONE) {
+                       D_EMSG("preference_get_int(KEY_MSG_APP_AUTO_RETRIEVE_WHILE_ROAMING_BACKUP, ...) fail : %d", err);
+                       auto_retrieve_roaming_in_app = MSG_ABROAD_MANUAL;
+               }
+       } else {
+               err = msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, &auto_retrieve_roaming_in_app);
+               if (err == MSG_SUCCESS) {
+                       preference_set_int(KEY_MSG_APP_AUTO_RETRIEVE_WHILE_ROAMING_BACKUP, auto_retrieve_roaming_in_app);
+               } else {
+                       D_EMSG("msg_get_int_value(..., MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, ...) fail : %d", err);
+               }
+               auto_retrieve_roaming_in_app = MSG_ABROAD_MANUAL;
+       }
+       msg_set_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, auto_retrieve_roaming_in_app);
+
+}
+
+static void __msg_ui_setting_mm_roaming_auto_retrieve_confirm(void *data, int *auto_ret, int *roaming_service, int *roaming_app)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       int err = MSG_SUCCESS;
+
+       switch (*auto_ret) {
+               case MSG_HOME_AUTO_DOWNLOAD:
+                       if (*roaming_app != *roaming_service) {
+                               err = preference_set_int(KEY_MSG_APP_AUTO_RETRIEVE_WHILE_ROAMING_BACKUP, *roaming_service);
+                               if (err == PREFERENCE_ERROR_NONE) {
+                                       D_MSG("app's roaming auto retrieve bug fix : %d", *roaming_service);
+                               } else {
+                                       D_EMSG("app's roaming auto retrieve bug fix fail : %d", err);
+                               }
+                       }
+                       break;
+               case MSG_HOME_MANUAL:
+                       if (*roaming_service == MSG_ABROAD_AUTO_DOWNLOAD) {
+                               err = msg_set_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, MSG_ABROAD_MANUAL);
+                               if (err == MSG_SUCCESS) {
+                                       D_MSG("service's roaming auto retrieve bug fix : %d", MSG_ABROAD_MANUAL);
+                               } else {
+                                       D_EMSG("service's roaming auto retrieve bug fix fail : %d", err);
+                               }
+                       }
+                       break;
+       }
+}
+
+static bool __msg_ui_setting_mm_roaming_auto_retrieve_get(void *data, int *get_val)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, false, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       int auto_val = 0;
+       int roaming_service_val = MSG_ABROAD_MANUAL;
+       int roaming_app_val = MSG_ABROAD_MANUAL;
+       int err = MSG_SUCCESS;
+       int ret = true;
+
+
+       msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, &auto_val);
+       D_SEC_MSG("Auto retrieve = %d", (int)auto_val);
+
+       err = msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, &roaming_service_val);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, &get_val) fail : %d", err);
+               ret = false;
+       }
+       err = preference_get_int(KEY_MSG_APP_AUTO_RETRIEVE_WHILE_ROAMING_BACKUP, &roaming_app_val);
+       if (err != PREFERENCE_ERROR_NONE) {
+               D_EMSG("preference_get_int(KEY_MSG_APP_AUTO_RETRIEVE_WHILE_ROAMING_BACKUP, &get_val) fail : %d", err);
+               ret = false;
+       }
+
+       __msg_ui_setting_mm_roaming_auto_retrieve_confirm(settingData, &auto_val, &roaming_service_val, &roaming_app_val);
+
+       *get_val = (auto_val == MSG_HOME_AUTO_DOWNLOAD ? roaming_service_val : roaming_app_val);
+
+       D_SEC_MSG("%s's roaming auto retrieve = %d", (auto_val == EINA_FALSE ? "service" : "app") , *get_val);
+
+       return ret;
+}
+
+static void __msg_ui_setting_mm_roaming_auto_retrieve_save(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Eina_Bool set_val = EINA_FALSE;
+       int set_pref_val = MSG_ABROAD_MANUAL;
+       int set_msg_val = MSG_ABROAD_MANUAL;
+       int auto_val = MSG_HOME_MANUAL;
+       int err = 0;
+
+       set_val = elm_check_state_get(settingData->mm_msg.roaming_auto_retrieve_check);
+       D_SEC_MSG("roaming auto retrieve = %d", (int)set_val);
+
+       err = msg_get_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, &auto_val);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_int_value(..., MSG_MMS_RECVOPT_HOME_RETRIEVE_TYPE_INT, ... : %d", err);
+               auto_val = MSG_HOME_MANUAL;
+       }
+
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_MMS_RECEIVE;
+
+       if (set_val == EINA_TRUE) {
+               set_pref_val = MSG_ABROAD_AUTO_DOWNLOAD;
+       } else {
+               set_pref_val = MSG_ABROAD_MANUAL;
+       }
+
+       set_msg_val = (auto_val == MSG_HOME_MANUAL ? MSG_ABROAD_MANUAL : set_pref_val);
+
+       err = msg_set_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, set_msg_val);
+       if (err == MSG_SUCCESS) {
+               err = preference_set_int(KEY_MSG_APP_AUTO_RETRIEVE_WHILE_ROAMING_BACKUP, set_pref_val);
+               if (err != PREFERENCE_ERROR_NONE) {
+                       D_EMSG("preference_set_int(KEY_MSG_APP_AUTO_RETRIEVE_WHILE_ROAMING_BACKUP, &set_pref_val) fail : %d", err);
+               }
+       } else {
+               D_EMSG("msg_set_int_value(settingData->msg_setting.mms_recv_opt, MSG_MMS_RECVOPT_ABROAD_RETRIEVE_TYPE_INT, set_pref_val) fail : %d", err);
+       }
+
+       msg_ui_setting_msg_set_config(settingData);
+}
+
+static void __msg_ui_setting_mm_gl_check_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (obj == settingData->mm_msg.delivery_report_check)
+               __msg_ui_setting_mm_delivery_report_save(settingData);
+       else if (obj == settingData->mm_msg.read_report_check)
+               __msg_ui_setting_mm_read_report_save(settingData);
+       else if (obj == settingData->mm_msg.auto_retrieve_check)
+               __msg_ui_setting_mm_auto_retrieve_save(settingData);
+       else if (obj == settingData->mm_msg.roaming_auto_retrieve_check)
+               __msg_ui_setting_mm_roaming_auto_retrieve_save(settingData);
+       else
+               D_EMSG("Invalid obj = 0x%x", obj);
+       D_LEAVE;
+}
+
+static void __msg_ui_setting_mm_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       D_MSG_RETM_IF(!settingData, "PMSG_SETTING_DATA is NULL");
+
+       int index = (int)data;
+       D_MSG("index = %d", index);
+
+       elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+       if (index == MSG_UI_SETTING_MM_MENU_DELIVERY_REPORT) {
+               msg_ui_setting_common_check_get_revset(settingData->mm_msg.delivery_report_check);
+               __msg_ui_setting_mm_delivery_report_save((void *)settingData);
+       } else  if (index == MSG_UI_SETTING_MM_MENU_READ_REPORT) {
+               msg_ui_setting_common_check_get_revset(settingData->mm_msg.read_report_check);
+               __msg_ui_setting_mm_read_report_save((void *)settingData);
+       } else if (index == MSG_UI_SETTING_MM_MENU_AUTO_RETRIEVE) {
+               msg_ui_setting_common_check_get_revset(settingData->mm_msg.auto_retrieve_check);
+               __msg_ui_setting_mm_auto_retrieve_save((void *)settingData);
+       } else if (index == MSG_UI_SETTING_MM_MENU_ROAMING_AUTO_RETRIEVE) {
+               msg_ui_setting_common_check_get_revset(settingData->mm_msg.roaming_auto_retrieve_check);
+               __msg_ui_setting_mm_roaming_auto_retrieve_save((void *)settingData);
+       } else {
+               if (setting_menu_its[index].func != NULL) {
+                       setting_menu_its[index].func(settingData, obj, event_info);
+               }
+       }
+
+       D_LEAVE;
+}
diff --git a/setting/src/notification/msg-ui-setting-notification.c b/setting/src/notification/msg-ui-setting-notification.c
new file mode 100755 (executable)
index 0000000..2434d55
--- /dev/null
@@ -0,0 +1,513 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <metadata_extractor.h>
+#include <efl_extension.h>
+#include "msg-ui-setting-main.h"
+#include "msg-ui-setting-notification.h"
+#include "msg-system-util.h"
+
+#define RINGTONE_DEFAUL "default"
+#define RINGTONE_SILENT "silent"
+
+static MSG_COMMON_LANG_CHANGED SETTING_STRING_SILENT = {MESSAGE_PKGNAME, "IDS_MSG_OPT_NONE"};
+static MSG_COMMON_LANG_CHANGED SETTING_STRING_DEFAULT_RINGTONE = {MESSAGE_PKGNAME, "IDS_MSG_OPT_DEFAULT"};
+
+/*============================================================================
+                               STATIC FUNCTION DEFINE
+=============================================================================*/
+static char *__msg_ui_setting_select_ringtone_file_name(const char *path);
+static char *__msg_ui_setting_get_alert_title(const char *path);
+static void __msg_ui_setting_select_ringtone_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+static void __msg_ui_setting_select_ringtone_result_cb(ui_gadget_h ug, app_control_h service, void *priv);
+static void __msg_ui_setting_select_ringtone_destroy_cb(ui_gadget_h ug, void *priv);
+
+static void __msg_ui_setting_vibrate_save(PMSG_SETTING_DATA setting_data);
+static void __msg_ui_setting_notifications_save(PMSG_SETTING_DATA setting_data);
+static Evas_Object *__msg_ui_setting_notification_gl_content_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_notification_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_setting_notification_create_check(Evas_Object *parent, PMSG_SETTING_DATA setting_data, Eina_Bool set_check);
+
+/*============================================================================
+                               FUNCTION IMPLEMENT
+=============================================================================*/
+
+/**********************************
+ *** msg repetition view  ***
+ **********************************/
+
+static char *__msg_ui_setting_select_ringtone_file_name(const char *path)
+{
+       D_ENTER;
+       if (NULL == path || '\0' == path[0]) {
+               D_EMSG("Invalid argument !!");
+               return NULL;    /* invalid arguement */
+       }
+
+       char *filename = NULL;
+       char *p = strrchr(path, '/');
+       if (!p) {
+               filename = (char *)g_strdup(path);      /* cannot find '/' */
+       } else {
+               if ('\0' == p[1]) {
+                       return NULL;    /* end with '/' */
+               }
+
+               filename = (char *)g_strdup(p + 1);
+       }
+
+       char *ptr = strrchr(filename, '.');
+       if (ptr != NULL) {
+               *ptr = '\0';
+       }
+
+       return filename;
+}
+
+static char *__msg_ui_setting_get_alert_title(const char *path)
+{
+       D_ENTER;
+       char *alert_title = NULL;
+       int ret = METADATA_EXTRACTOR_ERROR_NONE;
+       metadata_extractor_h metadata = NULL;
+
+       ret = metadata_extractor_create(&metadata);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_create failed: %d", ret);
+               goto CATCH;
+       }
+
+       ret = metadata_extractor_set_path(metadata, path);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_set_path failed: %d", ret);
+               goto CATCH;
+       }
+
+       ret = metadata_extractor_get_metadata(metadata, METADATA_TITLE, &alert_title);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_get_metadata failed: %d", ret);
+               goto CATCH;
+       }
+
+       if (NULL == alert_title) {
+               alert_title = __msg_ui_setting_select_ringtone_file_name(path);
+       }
+
+CATCH:
+       if (metadata)
+               metadata_extractor_destroy(metadata);
+       return alert_title;
+}
+
+static void __msg_ui_setting_select_ringtone_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       D_ENTER;
+       Evas_Object *base;
+
+       if (!ug || !priv)
+               return;
+
+       base = ug_get_layout(ug);
+       if (!base)
+               return;
+
+       switch (mode) {
+       case UG_MODE_FULLVIEW:
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_show(base);
+               break;
+
+       default:
+               break;
+       }
+}
+
+static void __msg_ui_setting_select_ringtone_result_cb(ui_gadget_h ug, app_control_h service, void *priv)
+{
+       D_ENTER;
+       if (!ug || !priv)
+               return;
+
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+
+       char *ringtone_path = NULL;
+
+       app_control_get_extra_data(service, "result", &ringtone_path);
+       if (!ringtone_path)
+               return;
+
+       D_SEC_MSG("ringtone_path:%s", ringtone_path);
+
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_GENERAL;
+       if (!strcmp(ringtone_path, RINGTONE_DEFAUL)) {
+               msg_set_int_value(settingData->msg_setting.general_opt, MSG_GENERAL_RINGTONE_TYPE_INT, MSG_RINGTONE_TYPE_DEFAULT);
+               settingData->noti.msg_ringtone_type = MSG_RINGTONE_TYPE_DEFAULT;
+       } else if (!strcmp(ringtone_path, RINGTONE_SILENT)) {
+               msg_set_int_value(settingData->msg_setting.general_opt, MSG_GENERAL_RINGTONE_TYPE_INT, MSG_RINGTONE_TYPE_SILENT);
+               settingData->noti.msg_ringtone_type = MSG_RINGTONE_TYPE_SILENT;
+       } else {
+               msg_set_int_value(settingData->msg_setting.general_opt, MSG_GENERAL_RINGTONE_TYPE_INT, MSG_RINGTONE_TYPE_USER);
+               settingData->noti.msg_ringtone_type = MSG_RINGTONE_TYPE_USER;
+               msg_set_str_value(settingData->msg_setting.general_opt, MSG_GENERAL_RINGTONE_PATH_STR, ringtone_path, strlen(ringtone_path));
+       }
+       msg_ui_setting_msg_set_config(settingData);
+
+       elm_genlist_item_update(settingData->noti.sound_item);
+
+       free(ringtone_path);
+       ringtone_path = NULL;
+}
+
+static void __msg_ui_setting_select_ringtone_destroy_cb(ui_gadget_h ug, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!ug, "ug is NULL");
+       D_MSG_RETM_IF(!priv, "priv is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)priv;
+
+       D_MSG_RETM_IF(settingData->ignore_hw_back_events_timer != NULL, "Ignore hardware key events timer is running so ignore back key events");
+
+       if (ug) {
+               ug_destroy(ug);
+               settingData->loaded_ug = NULL;
+       }
+
+       elm_object_tree_focus_allow_set(settingData->main_layout, EINA_TRUE);
+}
+
+static void __msg_ui_setting_vibrate_save(PMSG_SETTING_DATA setting_data)
+{
+       D_ENTER;
+       Eina_Bool set_val = EINA_FALSE;
+       bool bVibrate = false;
+
+       set_val = elm_check_state_get(setting_data->noti.vibrate_chk);
+       D_MSG("set_val = %d", (int)set_val);
+
+       bVibrate = (bool)set_val;
+       setting_data->msg_setting.type = MSG_UI_SETTING_TYPE_GENERAL;
+       msg_set_bool_value(setting_data->msg_setting.general_opt, MSG_GENERAL_MSG_VIBRATION_BOOL, bVibrate);
+       msg_ui_setting_msg_set_config(setting_data);
+}
+
+static void __msg_ui_setting_notifications_menu_on_off_set(PMSG_SETTING_DATA settingData, Eina_Bool set_val)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!settingData, "PMSG_SETTING_DATA is NULL");
+       D_MSG_RETM_IF(!settingData->noti.sound_item, "sound_item is NULL");
+       D_MSG_RETM_IF(!settingData->noti.vibration_item, "vibration_item is NULL");
+
+       bool bVibration = false;
+       bool bSound = false;
+       int errSound = SYSTEM_SETTINGS_ERROR_NONE;
+       int errVibration = SYSTEM_SETTINGS_ERROR_NONE;
+
+       errVibration = msg_sys_vibration_status_get(&bVibration);
+       errSound = msg_sys_sound_status_get(&bSound);
+       D_MSG("errVibration = %d, errSound = %d", errVibration, errSound);
+       D_MSG("bVibration : %d", bVibration);
+       D_MSG("bSound : %d", bSound);
+
+       if (bSound == MSG_UI_SETTING_QUICK_PANEL_SOUND_OFF && bVibration == MSG_UI_SETTING_QUICK_PANEL_VIBRATION_OFF) {
+               elm_object_item_disabled_set(settingData->noti.sound_item, EINA_TRUE);
+               elm_object_item_disabled_set(settingData->noti.vibration_item, EINA_TRUE);
+       } else {
+               Eina_Bool do_disable = !set_val;
+               elm_object_item_disabled_set(settingData->noti.sound_item, do_disable);
+               elm_object_item_disabled_set(settingData->noti.vibration_item, do_disable);
+       }
+}
+
+static void __msg_ui_setting_notifications_save(PMSG_SETTING_DATA setting_data)
+{
+       D_ENTER;
+       Eina_Bool set_val = EINA_FALSE;
+       bool bNofications = false;
+
+       set_val = elm_check_state_get(setting_data->noti.alerts_chk);
+       D_MSG("set_val = %d", (int)set_val);
+
+       bNofications = (bool)set_val;
+       setting_data->msg_setting.type = MSG_UI_SETTING_TYPE_GENERAL;
+       msg_set_bool_value(setting_data->msg_setting.general_opt, MSG_GENERAL_MSG_NOTIFICATION_BOOL, bNofications);
+       msg_ui_setting_msg_set_config(setting_data);
+
+       __msg_ui_setting_notifications_menu_on_off_set(setting_data, set_val);
+}
+
+void msg_ui_setting_notifications_gl_chk_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (obj == settingData->noti.alerts_chk)
+               __msg_ui_setting_notifications_save(settingData);
+       else if (obj == settingData->noti.vibrate_chk)
+               __msg_ui_setting_vibrate_save(settingData);
+       else
+               D_EMSG("Invalid obj = 0x%x", obj);
+
+       D_LEAVE;
+}
+
+static Evas_Object *__msg_ui_setting_notification_create_check(Evas_Object *parent, PMSG_SETTING_DATA setting_data, Eina_Bool set_check)
+{
+       Evas_Object *check = elm_check_add(parent);
+
+       elm_object_focus_allow_set(check, EINA_FALSE);
+       elm_check_state_set(check, set_check);
+       elm_object_style_set(check, "on&off");
+       evas_object_propagate_events_set(check, EINA_FALSE);
+       evas_object_smart_callback_add(check, "changed", msg_ui_setting_notifications_gl_chk_clicked_cb, setting_data);
+
+       return check;
+}
+
+static Evas_Object *__msg_ui_setting_notification_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       int index = (int)data;
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       Eina_Bool set_bool_val = EINA_FALSE;
+       D_MSG_RETVM_IF(!settingData, NULL, "settingData is NULL");
+
+       if (!strcmp(part, "elm.swallow.end")) {
+               if (index == MSG_UI_SETTING_NOTI_MENU_ALERTS) {
+
+                       msg_get_bool_value(settingData->msg_setting.general_opt, MSG_GENERAL_MSG_NOTIFICATION_BOOL, (bool *)&set_bool_val);
+                       D_SEC_MSG("Notifications : %d", set_bool_val);
+
+                       settingData->noti.alerts_chk = __msg_ui_setting_notification_create_check(obj, settingData, set_bool_val);
+
+                       return settingData->noti.alerts_chk;
+
+               } else if (index == MSG_UI_SETTING_NOTI_MENU_VIBRATE) {
+
+                       msg_get_bool_value(settingData->msg_setting.general_opt, MSG_GENERAL_MSG_VIBRATION_BOOL, (bool *)&set_bool_val);
+                       D_SEC_MSG("Notifications : %d", set_bool_val);
+
+                       settingData->noti.vibrate_chk = __msg_ui_setting_notification_create_check(obj, settingData, set_bool_val);
+                       __msg_ui_setting_notifications_save(settingData);
+                       return settingData->noti.vibrate_chk;
+
+               } else {
+                       D_EMSG("Invalid index = %d", index);
+               }
+       }
+
+       return NULL;
+}
+
+static void __msg_ui_setting_ringtone_back_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       if (settingData && settingData->loaded_ug) {
+               ug_destroy(settingData->loaded_ug);
+               settingData->loaded_ug = NULL;
+               elm_object_tree_focus_allow_set(settingData->main_layout, EINA_TRUE);
+       }
+}
+
+static void __msg_ui_setting_ringtone_more_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+}
+
+static void __msg_ui_setting_notification_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       D_MSG_RETM_IF(!settingData, "PMSG_SETTING_DATA is NULL");
+
+       Eina_Bool set_val = EINA_FALSE;
+       int index = (int)data;
+       D_MSG("index : %d", index);
+
+       elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+       if (index == MSG_UI_SETTING_NOTI_MENU_ALERTS) {
+               msg_ui_setting_common_check_get_revset(settingData->noti.alerts_chk);
+               __msg_ui_setting_notifications_save(settingData);
+       } else if (index == MSG_UI_SETTING_NOTI_MENU_SELECT_RINGTONE) {
+               app_control_h svc_handle = NULL;
+               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                       D_EMSG("app_control_create() is failed !!");
+               } else {
+                       const char *dir_path = "/opt/usr/share/settings/Alerts";
+
+                       settingData->cbs.layout_cb = __msg_ui_setting_select_ringtone_layout_cb;
+                       settingData->cbs.result_cb = __msg_ui_setting_select_ringtone_result_cb;
+                       settingData->cbs.destroy_cb = __msg_ui_setting_select_ringtone_destroy_cb;
+                       settingData->cbs.priv = (void *)settingData;
+
+                       Elm_Object_Item *it = (Elm_Object_Item *)event_info;
+                       elm_genlist_item_selected_set(it, EINA_FALSE);
+
+                       if (settingData->noti.msg_ringtone_type == MSG_RINGTONE_TYPE_DEFAULT) {
+                               app_control_add_extra_data(svc_handle, "marked_mode", "default");
+                               D_SEC_MSG("default ringtone");
+                       } else if (settingData->noti.msg_ringtone_type == MSG_RINGTONE_TYPE_SILENT) {
+                               app_control_add_extra_data(svc_handle, "marked_mode", "silent");
+                               D_SEC_MSG("silent");
+                       } else {
+                               char msg_ringtone_path[DEF_BUF_LEN_1024] = {0, };
+                               msg_get_str_value(settingData->msg_setting.general_opt, MSG_GENERAL_RINGTONE_PATH_STR, msg_ringtone_path, DEF_BUF_LEN_1024);
+                               if (access(msg_ringtone_path, F_OK) == -1) {
+                                       app_control_add_extra_data(svc_handle, "marked_mode", "default");
+
+                                       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_GENERAL;
+                                       msg_set_int_value(settingData->msg_setting.general_opt, MSG_GENERAL_RINGTONE_TYPE_INT, MSG_RINGTONE_TYPE_DEFAULT);
+                                       settingData->noti.msg_ringtone_type = MSG_RINGTONE_TYPE_DEFAULT;
+                                       msg_ui_setting_msg_set_config(settingData);
+                                       D_MSG("Ringtone type is changed to default. [%d]", settingData->noti.msg_ringtone_type);
+                               } else {
+                                       app_control_add_extra_data(svc_handle, "marked_mode", msg_ringtone_path);
+                               }
+                               D_SEC_MSG("setting_ringtone_path : %s", msg_ringtone_path);
+                       }
+                       app_control_add_extra_data(svc_handle, "path", dir_path);
+                       app_control_add_extra_data(svc_handle, "select_type", "SINGLE_FILE");
+                       app_control_add_extra_data(svc_handle, "file_type", "SOUND");
+                       app_control_add_extra_data(svc_handle, "title", "IDS_MSGC_BODY_SELECT_RINGTONE");
+                       app_control_add_extra_data(svc_handle, "domain", MESSAGE_PKGNAME);
+                       app_control_add_extra_data(svc_handle, "silent", "silent show");
+                       app_control_add_extra_data(svc_handle, "default", "default show");
+                       app_control_add_extra_data(svc_handle, "landscape", "support landscape");
+                       MSG_TIMER_OBJECT_DEL(settingData->ignore_hw_back_events_timer);
+                       settingData->ignore_hw_back_events_timer = ecore_timer_add(1.0f, msg_ui_setting_ignore_hw_back_events_timer_cb, settingData);
+
+                       settingData->loaded_ug = ug_create(NULL, RINGTONE_UG, UG_MODE_FULLVIEW, svc_handle, &settingData->cbs);
+                       Evas_Object *ug_layout = ug_get_layout(settingData->loaded_ug);
+                       eext_object_event_callback_add(ug_layout, EEXT_CALLBACK_MORE, __msg_ui_setting_ringtone_more_btn_cb, settingData);
+                       eext_object_event_callback_add(ug_layout, EEXT_CALLBACK_BACK, __msg_ui_setting_ringtone_back_btn_cb, settingData);
+
+                       if (settingData->loaded_ug) {
+                               elm_object_tree_focus_allow_set(settingData->main_layout, EINA_FALSE);
+                       }
+
+                       app_control_destroy(svc_handle);
+               }
+       } else if (index == MSG_UI_SETTING_NOTI_MENU_VIBRATE) {
+               msg_ui_setting_common_check_get_revset(settingData->noti.vibrate_chk);
+               __msg_ui_setting_vibrate_save(settingData);
+       } else {
+               D_EMSG("invalid index : %d", index);
+       }
+
+       D_LEAVE;
+}
+
+static char *__msg_ui_setting_noti_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       int index = (int)data;
+       D_MSG("part name : [%s]", part);
+       D_MSG("index [%d]", index);
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+    D_MSG_RETVM_IF(!settingData, NULL, "settingData is NULL");
+
+/* below implementation needs to be changed */
+       if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.main") || !strcmp(part, "elm.text.main.left") || !strcmp(part, "elm.text.wrap") || !strcmp(part, "elm.text.main.left.top")) {
+               if (index == MSG_UI_SETTING_NOTI_MENU_VIBRATE)
+                       return strdup(TEXT("IDS_MSG_MBODY_VIBRATION"));
+               if (setting_menu_its[index].name)
+                       return strdup(TEXT(setting_menu_its[index].name));
+       } else if (!strcmp(part, "elm.text.sub")) {
+               const char *text_color = "3296a6";
+               const char *text_size = "32";
+               const char *colored_str = "<color=#%s><font_size=%s>%s</font_size></color>";
+               if (index ==  MSG_UI_SETTING_NOTI_MENU_SELECT_RINGTONE) {
+                       D_MSG("gl text get type : %d", settingData->noti.msg_ringtone_type);
+                       if (settingData->noti.msg_ringtone_type == MSG_RINGTONE_TYPE_DEFAULT) {
+                               char ringtone_name[DEF_BUF_LEN] = {0, };
+                               snprintf(ringtone_name, sizeof(ringtone_name), colored_str, text_color, text_size, TEXT((char *)SETTING_STRING_DEFAULT_RINGTONE.id));
+
+                               return strdup(ringtone_name);
+                       } else if (settingData->noti.msg_ringtone_type == MSG_RINGTONE_TYPE_SILENT) {
+                               return strdup(TEXT((char *)SETTING_STRING_SILENT.id));
+                       } else {
+                               char ringtone_path[DEF_BUF_LEN_1024] = {0, };
+                               char ringtone_name[DEF_BUF_LEN] = {0, };
+                               char *file_name = NULL;
+
+                               msg_get_str_value(settingData->msg_setting.general_opt, MSG_GENERAL_RINGTONE_PATH_STR, ringtone_path, DEF_BUF_LEN_1024);
+                               file_name = __msg_ui_setting_get_alert_title(ringtone_path);
+                               if (!file_name) {
+                                       snprintf(ringtone_name, sizeof(ringtone_name), colored_str, text_color, text_size, TEXT((char *)SETTING_STRING_DEFAULT_RINGTONE.id));
+                               } else {
+                                       snprintf(ringtone_name, sizeof(ringtone_name), colored_str, text_color, text_size, file_name);
+                                       free(file_name);
+                                       file_name = NULL;
+                               }
+                               D_SEC_MSG("ringtone_name : %s", ringtone_name);
+
+                               return strdup(ringtone_name);
+                       }
+               }
+       } else {
+               D_MSG("Invalid part = %s", part);
+       }
+       return NULL;
+}
+
+void msg_ui_setting_notifications_group_create(PMSG_SETTING_DATA settingData)
+{
+       int index = 0;
+
+       /* notification_group_itc */
+       settingData->noti.notifications_group_itc.item_style = "group_index";
+       settingData->noti.notifications_group_itc.func.text_get = __msg_ui_setting_noti_gl_text_get;
+       settingData->noti.notifications_group_itc.func.content_get = NULL;
+       settingData->noti.notifications_group_itc.func.state_get = NULL;
+       settingData->noti.notifications_group_itc.func.del = NULL;
+
+       index = MSG_UI_SETTING_NOTI_MENU_SUB_TITLE_NOTIFICATION;
+       Elm_Genlist_Item *group_title = elm_genlist_item_append(settingData->main_genlist, &settingData->noti.notifications_group_itc, (void *)index, NULL,
+                               ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       elm_genlist_item_select_mode_set(group_title, ELM_OBJECT_SELECT_MODE_NONE);
+
+       /* alerts_itc */
+       settingData->noti.alerts_itc.item_style = "type1";
+       settingData->noti.alerts_itc.func.text_get = __msg_ui_setting_noti_gl_text_get;
+       settingData->noti.alerts_itc.func.content_get = __msg_ui_setting_notification_gl_content_get;
+       settingData->noti.alerts_itc.func.state_get = NULL;
+       settingData->noti.alerts_itc.func.del = NULL;
+
+       index = MSG_UI_SETTING_NOTI_MENU_ALERTS;
+       elm_genlist_item_append(settingData->main_genlist, &settingData->noti.alerts_itc, (void *)index, NULL,
+                               ELM_GENLIST_ITEM_NONE, __msg_ui_setting_notification_gl_sel, (void *)index);
+
+       /* sound_itc */
+       settingData->noti.sound_itc.item_style = "type1";
+       settingData->noti.sound_itc.func.text_get = __msg_ui_setting_noti_gl_text_get;
+       settingData->noti.sound_itc.func.content_get = NULL;
+       settingData->noti.sound_itc.func.del = NULL;
+
+       index = MSG_UI_SETTING_NOTI_MENU_SELECT_RINGTONE;
+       settingData->noti.sound_item = elm_genlist_item_append(settingData->main_genlist, &settingData->noti.sound_itc, (void *)index, NULL,
+                               ELM_GENLIST_ITEM_NONE, __msg_ui_setting_notification_gl_sel, (void *)index);
+
+       /* vibration_itc */
+       settingData->noti.vibration_itc.item_style = "type1";
+       settingData->noti.vibration_itc.func.text_get = __msg_ui_setting_noti_gl_text_get;
+       settingData->noti.vibration_itc.func.content_get = __msg_ui_setting_notification_gl_content_get;
+       settingData->noti.vibration_itc.func.del = NULL;
+
+       index = MSG_UI_SETTING_NOTI_MENU_VIBRATE;
+       settingData->noti.vibration_item = elm_genlist_item_append(settingData->main_genlist, &settingData->noti.vibration_itc, (void *)index, NULL,
+                               ELM_GENLIST_ITEM_NONE, __msg_ui_setting_notification_gl_sel, (void *)index);
+
+}
diff --git a/setting/src/text/msg-ui-setting-text-message.c b/setting/src/text/msg-ui-setting-text-message.c
new file mode 100755 (executable)
index 0000000..06d4165
--- /dev/null
@@ -0,0 +1,509 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-setting-text-message.h"
+
+static struct _msg_ui_setting_mixed_list_item input_mode_menu_its[] = {
+       { 2, "IDS_MSG_OPT_GSM_ALPHABET_ABB", NULL, ELM_GENLIST_ITEM_NONE },
+       { 2, "IDS_MSG_OPT_UNICODE", NULL, ELM_GENLIST_ITEM_NONE },
+       { 2, "IDS_MSG_OPT_AUTOMATIC", NULL, ELM_GENLIST_ITEM_NONE },
+       /* do not delete below */
+       { 2, NULL, NULL, ELM_GENLIST_ITEM_NONE }
+};
+
+/*=============================================================================
+                                       LITE VARIABLES
+==============================================================================*/
+
+/*============================================================================
+                               STATIC FUNCTION DEFINE
+=============================================================================*/
+static void __msg_ui_setting_text_service_center_menu_init(void *data);
+static char *__msg_ui_setting_text_input_mode_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__msg_ui_setting_text_input_mode_gl_content_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_setting_text_input_mode_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_text_input_mode_radio_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_text_input_mode_save(void *data);
+static void __msg_ui_setting_textmsg_gl_chk_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_text_gl_sel(void *data, Evas_Object *obj, void *event_info);
+
+/*============================================================================
+                               FUNCTION IMPLEMENT
+=============================================================================*/
+
+/*=============================================================================
+                                       LITE FUNCTIONS
+==============================================================================*/
+
+static void __msg_ui_setting_text_service_center_menu_init(void *data)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       int cur_index = 0;
+       int err = MSG_SUCCESS;
+
+       D_MSG_RETM_IF(!settingData, "settingData is NULL");
+
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMSC_LIST;
+       err = msg_ui_setting_msg_get_config(settingData);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_ui_setting_msg_get_config fail : %d", err);
+       }
+
+       if (msg_common_is_sim_active()) {
+               err = msg_get_int_value(settingData->msg_setting.smsc_opt, MSG_SMSC_SELECTED_ID_INT, &cur_index);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_get_int_value error : %d", err);
+               } else {
+                       settingData->text_msg.center_index = cur_index;
+                       D_SEC_MSG("smsc selected value : %d", cur_index);
+               }
+       }
+}
+
+static char *__msg_ui_settting_textmsg_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       int index = (int)data;
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+    D_MSG_RETVM_IF(!settingData, NULL, "settingData is NULL");
+       int inputMode = -1;
+       int r = 0, g = 0, b = 0, a = 0;
+       char buf[DEF_BUF_LEN_S] = {0, };
+
+       if (!strcmp(part, "elm.text") ||  !strcmp(part, "elm.text.main.left") || !strcmp(part, "elm.text.main.left.top") || !strcmp(part, "elm.text.main")) {
+               if (setting_menu_its[index].name)
+                       return strdup(TEXT(setting_menu_its[index].name));
+       } else if (!strcmp(part, "elm.text.multiline")) {
+               if (index == MSG_UI_SETTING_TEXT_MENU_MANAGE_SIM_CARD_MSG) {
+                       snprintf(buf, sizeof(buf), MSG_FIXED_SIZE_MULTILINE_TEMPLATE, TEXT(setting_menu_its[index + 1].name));
+                       return strdup(buf);
+               }
+               if (index == MSG_UI_SETTING_TEXT_MENU_INPUT_MODE)
+                       return strdup(TEXT(setting_menu_its[index + 1].name));
+               if (index == MSG_UI_SETTING_TEXT_MENU_DELIVERY_REPORT) {
+                       snprintf(buf, sizeof(buf), MSG_FIXED_SIZE_MULTILINE_TEMPLATE, TEXT(setting_menu_its[index + 1].name));
+                       return strdup(buf);
+               }
+       } else if (!strcmp(part, "elm.text.sub")) {
+               if (index == MSG_UI_SETTING_TEXT_MENU_INPUT_MODE) {
+                       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMS_SEND;
+                       msg_get_int_value(settingData->msg_setting.sms_opt, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, &inputMode);
+                       D_SEC_MSG("inputMode : %d", inputMode);
+                       if (inputMode == MSG_ENCODE_GSM7BIT)
+                               snprintf(buf, sizeof(buf), "<color=#%02x%02x%02x%02x>%s</color>", COLOR_BLUE, (TEXT(input_mode_menu_its[0].name)));
+                       else if (inputMode == MSG_ENCODE_UCS2)
+                               snprintf(buf, sizeof(buf), "<color=#%02x%02x%02x%02x>%s</color>", COLOR_BLUE, (TEXT(input_mode_menu_its[1].name)));
+                       else if (inputMode == MSG_ENCODE_AUTO)
+                               snprintf(buf, sizeof(buf), "<color=#%02x%02x%02x%02x>%s</color>", COLOR_BLUE, (TEXT(input_mode_menu_its[2].name)));
+                       else
+                               D_EMSG("input Mode fail = %d", inputMode);
+
+                       return strdup(buf);
+               }
+       } else if (!strcmp(part, "elm.text.sub.left.bottom")) {
+               /* If it comes here it means it is single sim mode */
+               if (index == MSG_UI_SETTING_TEXT_MENU_MESSAGE_CENTER) {
+                       char smsc_name[MAX_SMSC_NAME_LEN + 1] = {0, };
+                       int cur_index = 0;
+                       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMSC_LIST;
+                       if (msg_get_int_value(settingData->msg_setting.smsc_opt, MSG_SMSC_SELECTED_ID_INT, &cur_index) != MSG_SUCCESS) {
+                               D_EMSG("msg_get_int_value error : MSG_SMSC_SELECTED_ID_INT");
+                       }
+                       settingData->text_msg.center_index = cur_index;
+                       D_SEC_MSG("service center selected value : %d", cur_index);
+                       msg_get_str_value(settingData->msg_setting.smsc_list->msg_struct_info[cur_index], MSG_SMSC_ADDR_STR, smsc_name, SMSC_ADDR_MAX);
+                       if (strlen(smsc_name) == 0)
+                               strncpy(smsc_name, TEXT("IDS_MSG_SBODY_NONE_M_STATUS"), sizeof(smsc_name)-1);
+
+                       snprintf(buf, sizeof(buf), "<color=#%02x%02x%02x%02x>%s</color>", COLOR_BLUE, smsc_name);
+                       D_SEC_MSG("service center number : %s", smsc_name);
+                       return strdup(buf);
+               }
+       }
+       return NULL;
+}
+
+static void __msg_ui_setting_textmsg_save(void *data)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Eina_Bool set_val = EINA_FALSE;
+       bool bDelivery = false;
+
+       set_val = elm_check_state_get(settingData->text_msg.delivery_report_chk);
+       D_MSG("set_val = %d", (int)set_val);
+
+       bDelivery = (bool)set_val;
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMS_SEND;
+       msg_set_bool_value(settingData->msg_setting.sms_opt, MSG_SMS_SENDOPT_DELIVERY_REPORT_BOOL, bDelivery);
+       msg_ui_setting_msg_set_config(settingData);
+}
+
+static Evas_Object *__msg_ui_setting_textmsg_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       int index = (int)data;
+       Evas_Object *check;
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       D_MSG_RETVM_IF(!settingData, NULL, "PMSG_SETTING_DATA is NULL");
+       bool bSet_val = false;
+
+       if (!strcmp(part, "elm.swallow.end")) {
+               if (index == MSG_UI_SETTING_TEXT_MENU_DELIVERY_REPORT) {
+                       check = elm_check_add(obj);
+                       elm_object_focus_allow_set(check, EINA_FALSE);
+                       settingData->text_msg.delivery_report_chk = check;
+
+                       msg_get_bool_value(settingData->msg_setting.sms_opt, MSG_SMS_SENDOPT_DELIVERY_REPORT_BOOL, &bSet_val);
+                       D_SEC_MSG("Vibrate : %d", bSet_val);
+
+                       if (bSet_val == true)
+                               elm_check_state_set(check, EINA_TRUE);
+                       else
+                               elm_check_state_set(check, EINA_FALSE);
+
+                       elm_object_style_set(check, "on&off");
+
+                       __msg_ui_setting_textmsg_save(settingData);
+
+                       evas_object_propagate_events_set(check, EINA_FALSE);
+                       evas_object_smart_callback_add(check, "changed", __msg_ui_setting_textmsg_gl_chk_clicked_cb, settingData);
+
+                       return check;
+
+               } else {
+                       D_EMSG("Invalid index = %d", index);
+               }
+       }
+
+       return NULL;
+}
+
+static void __msg_ui_setting_textmsg_gl_chk_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       __msg_ui_setting_textmsg_save(settingData);
+
+
+       D_LEAVE;
+}
+
+void msg_ui_setting_text_menu_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       D_MSG_RETM_IF(!settingData, "settingData is NULL");
+       Evas_Object *genlist, *box;
+       int index = 0;
+       int err = MSG_SUCCESS;
+
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMS_SEND;
+       err = msg_ui_setting_msg_get_config(settingData);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_ui_setting_msg_get_config fail : %d", err);
+       }
+
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMSC_LIST;
+       err = msg_ui_setting_msg_get_config(settingData);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_ui_setting_msg_get_config fail : %d", err);
+       }
+
+       elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+       D_MSG("creating box...");
+       box = elm_box_add(settingData->navi_frame);
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(box);
+       D_MSG("box created...");
+
+       D_MSG("adding genlist....");
+       genlist = elm_genlist_add(settingData->navi_frame);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_policy_set(genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+       evas_object_show(genlist);
+       D_MSG("genlist added....");
+
+       /* text message centre */
+       settingData->text_msg.service_centre_itc.item_style = "2line.top";
+
+       settingData->text_msg.service_centre_itc.func.text_get = __msg_ui_settting_textmsg_gl_text_get;
+       settingData->text_msg.service_centre_itc.func.content_get = NULL;
+       settingData->text_msg.service_centre_itc.func.del = NULL;
+
+       index = MSG_UI_SETTING_TEXT_MENU_MESSAGE_CENTER;
+       settingData->text_msg.service_centre_item = elm_genlist_item_append(genlist, &settingData->text_msg.service_centre_itc, (void *)index, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_setting_text_gl_sel, (void *)index);
+
+       /* input mode */
+       settingData->text_msg.input_mode_itc.item_style = "multiline_sub.main.sub";
+       settingData->text_msg.input_mode_itc.func.text_get = __msg_ui_settting_textmsg_gl_text_get;
+       settingData->text_msg.input_mode_itc.func.content_get = NULL;
+       settingData->text_msg.input_mode_itc.func.del = NULL;
+       index = MSG_UI_SETTING_TEXT_MENU_INPUT_MODE;
+       settingData->text_msg.text_input_mode_item = elm_genlist_item_append(genlist, &settingData->text_msg.input_mode_itc, (void *)index, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_setting_text_gl_sel, (void *)index);
+
+
+
+       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+       elm_box_pack_end(box, genlist);
+       settingData->navi_it = elm_naviframe_item_push(settingData->navi_frame, "IDS_MSG_HEADER_TEXT_MESSAGES_ABB", NULL, NULL, box, NULL);
+       elm_object_item_domain_text_translatable_set(settingData->navi_it, MESSAGE_PKGNAME, EINA_TRUE);
+       elm_naviframe_item_pop_cb_set(settingData->navi_it, NULL, (void *)settingData);
+}
+
+
+void msg_ui_setting_text_group_create(PMSG_SETTING_DATA settingData)
+{
+       int index = 0;
+
+       /* Text messages */
+       settingData->text_msg.text_group_itc.item_style = "group_index";
+       settingData->text_msg.text_group_itc.func.text_get = __msg_ui_settting_textmsg_gl_text_get;
+       settingData->text_msg.text_group_itc.func.content_get = NULL;
+       settingData->text_msg.text_group_itc.func.state_get = NULL;
+       settingData->text_msg.text_group_itc.func.del = NULL;
+
+       index = MSG_UI_SETTING_TEXT_MENU_TITLE;
+       Elm_Genlist_Item *group_title = elm_genlist_item_append(settingData->main_genlist, &settingData->text_msg.text_group_itc, (void *)index, NULL,
+                               ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       elm_genlist_item_select_mode_set(group_title, ELM_OBJECT_SELECT_MODE_NONE);
+       /* delivery report */
+       settingData->text_msg.delivery_report_itc.item_style = "multiline";
+       settingData->text_msg.delivery_report_itc.func.text_get = __msg_ui_settting_textmsg_gl_text_get;
+       settingData->text_msg.delivery_report_itc.func.content_get = __msg_ui_setting_textmsg_gl_content_get;
+       settingData->text_msg.delivery_report_itc.func.del = NULL;
+
+       index = MSG_UI_SETTING_TEXT_MENU_DELIVERY_REPORT;
+       elm_genlist_item_append(settingData->main_genlist, &settingData->text_msg.delivery_report_itc, (void *)index, NULL,
+                               ELM_GENLIST_ITEM_NONE, __msg_ui_setting_text_gl_sel, (void *)index);
+
+       /* sim card msg */
+       settingData->text_msg.sim_msg_itc.item_style = "multiline";
+       settingData->text_msg.sim_msg_itc.func.text_get = __msg_ui_settting_textmsg_gl_text_get;
+       settingData->text_msg.sim_msg_itc.func.content_get = NULL;
+       settingData->text_msg.sim_msg_itc.func.del = NULL;
+
+       index = MSG_UI_SETTING_TEXT_MENU_MANAGE_SIM_CARD_MSG;
+       elm_genlist_item_append(settingData->main_genlist, &settingData->text_msg.sim_msg_itc, (void *)index, NULL,
+                               ELM_GENLIST_ITEM_NONE, msg_ui_setting_sim_card_msg_cb, (void *)settingData);
+
+}
+
+/*=============================================================================
+                                       LITE ENDsss
+==============================================================================*/
+
+/**********************************
+ ***  input mode view  ***
+ **********************************/
+static char *__msg_ui_setting_text_input_mode_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+
+       int index = (int)data;
+
+       if (index >= sizeof(input_mode_menu_its) / sizeof(input_mode_menu_its[0])) {
+               return NULL;
+       }
+
+       if (!strcmp(part, "elm.text")) {
+               if (input_mode_menu_its[index].name) {
+                       return strdup(TEXT(input_mode_menu_its[index].name));
+               }
+       } else {
+               D_EMSG("Invalid part = %s", part);
+       }
+
+       return NULL;
+}
+
+static Evas_Object *__msg_ui_setting_text_input_mode_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+
+       Evas_Object *radio;
+
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+    D_MSG_RETVM_IF(!settingData, NULL, "settingData is NULL");
+       int index = (int)data;
+
+       if (!strcmp(part, "elm.swallow.end")) {
+               radio = elm_radio_add(obj);
+               elm_radio_state_value_set(radio, index);
+               evas_object_propagate_events_set(radio, EINA_FALSE);
+               evas_object_smart_callback_add(radio, "changed", __msg_ui_setting_text_input_mode_radio_cb, (void *)settingData);
+
+               elm_radio_group_add(radio, settingData->text_msg.text_input_mode_radio_group);
+
+               return radio;
+       }
+
+       return NULL;
+}
+
+static void __msg_ui_setting_text_input_mode_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = NULL;
+       int index = (int)data;
+
+       settingData = msg_ui_setting_get_data();
+       D_MSG_RETM_IF(!settingData, "PMSG_THREAD_DATA is NULL");
+
+       Elm_Object_Item *it = event_info;
+
+       elm_genlist_item_selected_set((Elm_Object_Item *)it, EINA_FALSE);
+
+       /* Change radio selection. */
+       elm_radio_value_set(settingData->text_msg.text_input_mode_radio_group, index);
+
+       __msg_ui_setting_text_input_mode_save((void *)settingData);
+
+       elm_genlist_item_update(settingData->text_msg.text_input_mode_item);
+
+       msg_ui_setting_common_popup_delete(settingData, settingData->popup, it);
+}
+
+static void __msg_ui_setting_text_input_mode_radio_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       __msg_ui_setting_text_input_mode_save((void *)settingData);
+
+       elm_genlist_item_update(settingData->text_msg.text_input_mode_item);
+
+       msg_ui_setting_common_popup_delete(settingData, settingData->popup, event_info);
+}
+
+static void __msg_ui_setting_text_input_mode_save(void *data)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       int inputMode = -1;
+       msg_error_t     err = MSG_SUCCESS;
+
+       /* Save selected input mode value. */
+       inputMode = elm_radio_value_get(settingData->text_msg.text_input_mode_radio_group);
+
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMS_SEND;
+       if (inputMode == MSG_ENCODE_GSM7BIT)
+               msg_set_int_value(settingData->msg_setting.sms_opt, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, MSG_ENCODE_GSM7BIT);
+       else if (inputMode == MSG_ENCODE_UCS2 - 1)
+               msg_set_int_value(settingData->msg_setting.sms_opt, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, MSG_ENCODE_UCS2);
+       else
+               msg_set_int_value(settingData->msg_setting.sms_opt, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, MSG_ENCODE_AUTO);
+
+       err = msg_ui_setting_msg_set_config(settingData);
+       D_MSG("msg_ui_setting_msg_set_config(input_mode) is %d", err);
+}
+
+static void __msg_ui_setting_text_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       int index = (int)data;
+
+       D_MSG_RETM_IF(!settingData, "PMSG_SETTING_DATA is NULL");
+       D_MSG("index = %d", index);
+
+       elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+       if (index == MSG_UI_SETTING_TEXT_MENU_MANAGE_SIM_CARD_MSG) {
+               if (setting_menu_its[index].func != NULL)
+                       setting_menu_its[index].func(settingData, obj, event_info);
+       } else if (index == MSG_UI_SETTING_TEXT_MENU_INPUT_MODE) {
+
+               if (settingData->bSIM_inserted == false) {
+                       elm_object_item_signal_emit(settingData->text_msg.text_input_mode_item, "elm,state,normal", "");
+               } else {
+                       elm_object_item_signal_emit(settingData->text_msg.text_input_mode_item, "elm,state,bottom", "");
+               }
+               msg_ui_setting_text_gl_input_mode_popup(settingData);
+       } else if (index == MSG_UI_SETTING_TEXT_MENU_MESSAGE_CENTER) {
+               if (settingData->bSIM_inserted == false) {
+                       msg_ui_setting_common_show_notify(settingData, "IDS_MSGF_POP_SIM_NOT_INSERTED");
+                       return;
+               }
+               __msg_ui_setting_text_service_center_menu_init(settingData);
+               msg_ui_setting_service_center_selected_main(settingData);
+       } else if (index == MSG_UI_SETTING_TEXT_MENU_DELIVERY_REPORT) {
+               msg_ui_setting_common_check_get_revset(settingData->text_msg.delivery_report_chk);
+               __msg_ui_setting_textmsg_save((void *)settingData);
+       } else {
+               D_EMSG("Invalid data : index = %d", index);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_setting_text_gl_input_mode_popup(void *data)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       int index = 0;
+       int inputMode = -1;
+
+       Evas_Object *popup = NULL;
+       Evas_Object *genlist = NULL;
+
+       genlist = msg_ui_setting_common_create_genlist_popup(settingData->navi_frame, settingData, "IDS_MSG_HEADER_INPUT_MODE_ABB");
+       popup = settingData->popup;
+
+       if (settingData->text_msg.text_input_mode_item) {
+               settingData->text_msg.text_input_mode_itc.item_style = "default";
+               settingData->text_msg.text_input_mode_itc.func.text_get = __msg_ui_setting_text_input_mode_gl_text_get;
+               settingData->text_msg.text_input_mode_itc.func.content_get = __msg_ui_setting_text_input_mode_gl_content_get;
+               settingData->text_msg.text_input_mode_itc.func.state_get = NULL;
+               settingData->text_msg.text_input_mode_itc.func.del = NULL;
+
+               settingData->text_msg.text_input_mode_radio_group = elm_radio_add(genlist);
+
+               for (index = 0; input_mode_menu_its[index].name; index++) {
+                       elm_genlist_item_append(genlist,
+                                                                       &settingData->text_msg.text_input_mode_itc,
+                                                                               (void *)index, NULL, input_mode_menu_its[index].type,
+                                                                               __msg_ui_setting_text_input_mode_gl_sel, (void *)index);
+               }
+
+               msg_get_int_value(settingData->msg_setting.sms_opt, MSG_SMS_SENDOPT_ENCODE_TYPE_INT, &inputMode);
+
+               /* Input mode current radio value set */
+               if (inputMode == MSG_ENCODE_GSM7BIT)
+                       elm_radio_value_set(settingData->text_msg.text_input_mode_radio_group, 0);
+               else if (inputMode == MSG_ENCODE_UCS2)
+                       elm_radio_value_set(settingData->text_msg.text_input_mode_radio_group, 1);
+               else
+                       elm_radio_value_set(settingData->text_msg.text_input_mode_radio_group, 2);
+       }
+       evas_object_show(genlist);
+       evas_object_show(popup);
+
+       D_LEAVE;
+}
diff --git a/setting/src/text/msg-ui-setting-text-service-center.c b/setting/src/text/msg-ui-setting-text-service-center.c
new file mode 100755 (executable)
index 0000000..095626c
--- /dev/null
@@ -0,0 +1,508 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-setting-text-message.h"
+#include "msg-system-util.h"
+
+/*============================================================================
+                               STATIC FUNCTION DEFINE
+=============================================================================*/
+static void __msg_ui_setting_smsc_get_title(void *data, char *title_buf, int buf_size);
+static Eina_Bool __msg_ui_setting_smsc_is_changed(void *data, int sim_number);
+static void __msg_ui_setting_smsc_popup_delete_ok(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_smsc_popup_deleted_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_smsc_unsupported_format_popup(void *data);
+static Eina_Bool __msg_ui_setting_smsc_is_valid(void *data);
+static void __msg_ui_setting_smsc_done_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_smsc_pop_quit_cb(void *data, Evas_Object *obj, void *event_info);
+static Eina_Bool __msg_ui_setting_smsc_cancel_btn_cb(void *data, Elm_Object_Item *it);
+static void __msg_ui_setting_smsc_entry_filter_check_boundary(void *data, Evas_Object *entry, char **text);
+static void __msg_ui_setting_smsc_entry_check_cb(void *data, Evas_Object *entry, void *event_info);
+static void __msg_ui_setting_smsc_view_select_sim1_cb(void *data, Evas_Object *obj, void *event_info);
+
+/*============================================================================
+                               FUNCTION IMPLEMENT
+=============================================================================*/
+static void __msg_ui_setting_smsc_get_title(void *data, char *title_buf, int buf_size)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL.");
+       D_MSG_RETM_IF(!title_buf, "title_buf is NULL.");
+       D_MSG_RETM_IF(buf_size <= 0, "title_buf size(%d) error.", buf_size);
+
+       strncpy(title_buf, "IDS_MSG_HEADER_SMS_CENTRE_ABB2", buf_size - 1);
+       title_buf[buf_size-1] = '\0';
+}
+
+/******************
+ ***  SMSC  menu ***
+ *******************/
+/* sim_number == 0, only one sim inserted */
+/* sim_number == 1, sim slot one */
+/* sim_number == 2, sim slot two */
+static Eina_Bool __msg_ui_setting_smsc_is_changed(void *data, int sim_number)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       char addr_buf[SMSC_NAME_MAX+1] = {0,};
+       char address[SMSC_NAME_MAX+1] = {0,};
+       int ret = 0;
+       int err = MSG_SUCCESS;
+       D_MSG("sim_number = %d", sim_number);
+
+       if (sim_number == 0) {
+               err = msg_get_str_value(settingData->msg_setting.smsc_list->msg_struct_info[settingData->text_msg.center_index], MSG_SMSC_ADDR_STR, address, SMSC_ADDR_MAX);
+       } else if (sim_number == 1) {
+               err = msg_get_str_value(settingData->msg_setting.smsc_list_sim1->msg_struct_info[settingData->text_msg.center_index_sim1], MSG_SMSC_ADDR_STR, address, SMSC_ADDR_MAX);
+       }
+
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_str_value fail : %d", err);
+       }
+
+       if (sim_number == 1) {
+               D_SEC_MSG("Buffer 1 = %s", settingData->smsc_buf_sim1);
+               /* check for changes in slot 1 */
+               snprintf(addr_buf, sizeof(addr_buf), "%s", settingData->smsc_buf_sim1);
+               ret = strcmp(addr_buf, address);
+               if (ret != 0) {
+                       D_MSG("address is different.");
+                       return EINA_TRUE;
+               }
+       } else {
+               char *tmp_addr = elm_entry_markup_to_utf8(elm_entry_entry_get(settingData->text_msg.smsc_addr_entry));
+               /* It will check whether value is changed or not. */
+               if (tmp_addr) {
+                       ret = strcmp(tmp_addr, address);
+                       if (ret != 0) {
+                               D_MSG("address is different.");
+                               free(tmp_addr);
+                               tmp_addr = NULL;
+                               return EINA_TRUE;
+                       }
+
+                       free(tmp_addr);
+                       tmp_addr = NULL;
+               }
+       }
+
+       return EINA_FALSE;
+}
+
+static void __msg_ui_setting_smsc_popup_delete_ok(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (settingData->popup) {
+               MSG_EVAS_OBJECT_DEL(settingData->popup);
+               D_MSG("popup deleted");
+       }
+}
+
+static void __msg_ui_setting_smsc_popup_deleted_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       D_SEC_MSG("popup deleted = [%p]", obj);
+
+       evas_object_event_callback_del_full(obj, EVAS_CALLBACK_DEL, __msg_ui_setting_smsc_popup_deleted_cb, settingData);
+       evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, msg_ui_setting_common_popup_mouseup_cb);
+       elm_object_focus_allow_set(settingData->text_msg.smsc_addr_entry, EINA_TRUE);
+       elm_object_focus_set(settingData->text_msg.smsc_addr_entry, EINA_TRUE);
+       elm_entry_cursor_end_set(settingData->text_msg.smsc_addr_entry);
+}
+
+static void __msg_ui_setting_smsc_unsupported_format_popup(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Evas_Object *popup = NULL;
+       Evas_Object *win = settingData->main_win;
+       D_MSG_RETM_IF(!win, "UG main window get failed");
+       msg_ui_setting_common_popup_delete(settingData, NULL, NULL);
+
+       popup = elm_popup_add(win);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       settingData->popup = popup;
+       settingData->popup_type = SETTING_POPUP_WITH_CONFIRM;
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_TPOP_THIS_NUMBER_IS_NOT_VALID");
+       evas_object_show(popup);
+
+       Evas_Object *button = elm_button_add(popup);
+       elm_object_style_set(button, "popup");
+       elm_object_domain_translatable_text_set(button, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       evas_object_smart_callback_add(button, "clicked", __msg_ui_setting_smsc_popup_delete_ok, settingData);
+       elm_object_part_content_set(popup, "button1", button);
+
+       evas_object_event_callback_add(settingData->popup, EVAS_CALLBACK_DEL, __msg_ui_setting_smsc_popup_deleted_cb, settingData);
+       evas_object_event_callback_add(settingData->popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_setting_common_popup_mouseup_cb, settingData);
+       eext_object_event_callback_add(settingData->popup, EEXT_CALLBACK_BACK, msg_ui_setting_common_popup_delete, settingData);
+}
+
+static Eina_Bool __msg_ui_setting_smsc_is_valid(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, EINA_FALSE, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       int len = 0;
+       char *addr_buf = NULL;
+       int i = 0;
+
+       addr_buf = elm_entry_markup_to_utf8(elm_entry_entry_get(settingData->text_msg.smsc_addr_entry));
+       if (addr_buf != NULL) {
+               len = strlen(addr_buf);
+                       if (len < 3) {
+                               D_MSG("Invalid smsc Single SIM");
+                               free(addr_buf);
+                               return EINA_FALSE;
+                       }
+               for (i = 1; i < len; i++) {
+                       if (addr_buf[i] == '+') {
+                               D_MSG("Invalid smsc Single SIM");
+                               free(addr_buf);
+                               addr_buf = NULL;
+                               return EINA_FALSE;
+                       }
+               }
+               free(addr_buf);
+               addr_buf = NULL;
+       }
+       return EINA_TRUE;
+}
+
+static void __msg_ui_setting_smsc_done_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       char *addr_buf = NULL;
+       char address[SMSC_NAME_MAX+1] = {0,};
+       int ret = 0;
+       int err = 0;
+       Eina_Bool bValid = 1;
+
+       elm_object_focus_allow_set(settingData->text_msg.smsc_addr_entry, EINA_FALSE);
+
+       addr_buf = elm_entry_markup_to_utf8(elm_entry_entry_get(settingData->text_msg.smsc_addr_entry));
+       if (!addr_buf || strlen(addr_buf) == 0) {
+               D_MSG("No value");
+               goto smsc_exit;
+       }
+
+       if ((bValid = __msg_ui_setting_smsc_is_valid(settingData)) == EINA_FALSE) {
+               goto smsc_exit;
+       }
+
+       if (__msg_ui_setting_smsc_is_changed(settingData, 0) != EINA_TRUE) {
+               D_MSG("Nothing is changed.");
+               goto smsc_exit;
+       }
+       strncpy(address, addr_buf, SMSC_ADDR_MAX);
+       D_SEC_MSG("SMSC Addr = %s", address);
+
+       settingData->msg_setting.type = MSG_UI_SETTING_TYPE_SMSC_LIST;
+
+       /*Continue with Saving Updated buffer values.*/
+
+       /* settingData->msg_setting.smsc_list->nCount = 1; */
+       err = msg_set_str_value(settingData->msg_setting.smsc_list->msg_struct_info[settingData->text_msg.center_index], MSG_SMSC_ADDR_STR, address, strlen(address));
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_set_str_value fail : %d", err);
+       }
+
+       /* Save for update information of SMSC_LIST. */
+
+       /* msg_set_int_value(settingData->msg_setting.smsc_opt, MSG_SMSC_SELECTED_ID_INT, settingData->text_msg.center_index); */
+       msg_set_int_value(settingData->msg_setting.smsc_opt, MSG_SMSC_LIST_INDEX_INT, settingData->text_msg.center_index);
+       D_SEC_MSG("smsc index : %d", settingData->text_msg.center_index);
+
+       ret = msg_ui_setting_msg_set_config(settingData);
+
+       if (ret == 0) {
+               /* Update smsc_all_genlist */
+               elm_genlist_realized_items_update(settingData->text_msg.smsc_all_genlist);
+
+               /* Update text message genlist. */
+               elm_genlist_item_update(settingData->text_msg.service_centre_item);
+       } else {
+               bValid = EINA_FALSE;
+       }
+
+smsc_exit:
+       if (addr_buf != NULL)
+               free(addr_buf);
+
+       if (bValid == EINA_TRUE) {
+               elm_object_focus_allow_set(settingData->text_msg.smsc_addr_entry, EINA_FALSE);
+               elm_naviframe_item_pop(settingData->navi_frame);
+       } else {
+               __msg_ui_setting_smsc_unsupported_format_popup(settingData);
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_setting_smsc_pop_quit_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       D_MSG_RETM_IF(!settingData, "PMSG_SETTING_DATA is NULL");
+
+       elm_object_focus_allow_set(settingData->text_msg.smsc_addr_entry, EINA_FALSE);
+       elm_naviframe_item_pop(settingData->navi_frame);
+}
+
+static Eina_Bool __msg_ui_setting_smsc_cancel_btn_cb(void *data, Elm_Object_Item *it)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, EINA_FALSE, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       msg_ui_setting_common_title_btn_remove(settingData);
+
+       return EINA_TRUE;
+}
+
+static void __msg_ui_setting_smsc_entry_filter_check_boundary(void *data, Evas_Object *entry, char **text)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       D_MSG_RETM_IF(!entry, "entry is NULL");
+       D_MSG_RETM_IF((!text || !(*text)), "Parameter text is invalid");
+       char *entry_text = NULL;
+       int len = 0;
+
+       entry_text = elm_entry_markup_to_utf8(elm_entry_entry_get(entry));
+
+       if (entry_text) {
+               len = strlen(entry_text);
+               if ((len > 0) && (entry_text[0] != '+')) {
+                       if (len == MAX_SMSC_ADDR_LEN - 1) {
+                               D_MSG("max_num_len is reached");
+                               free(*text);
+                               *text = NULL;
+                       }
+               }
+               free(entry_text);
+       }
+}
+
+static void __msg_ui_setting_smsc_entry_check_cb(void *data, Evas_Object *entry, void *event_info)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(!data, "data is NULL");
+       D_MSG_RETM_IF(!entry, "entry is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       char *addr_buf = NULL;
+
+       addr_buf = elm_entry_markup_to_utf8(elm_entry_entry_get(entry));
+       D_SEC_MSG("[%d] [%s]", g_utf8_strlen(addr_buf, -1), addr_buf);
+       if (settingData->current_smsc_tab == 1) {
+               snprintf(settingData->smsc_buf_sim1, sizeof(settingData->smsc_buf_sim1), "%s", addr_buf);
+               D_SEC_MSG("settingData->smsc_buf_sim1 = %s", settingData->smsc_buf_sim1);
+       }
+       if (addr_buf != NULL) {
+               if (strlen(addr_buf) < 3)
+                       elm_object_disabled_set(settingData->title_right_btn, EINA_TRUE);
+               else
+                       elm_object_disabled_set(settingData->title_right_btn, EINA_FALSE);
+       }
+
+       if (addr_buf != NULL) {
+               free(addr_buf);
+               addr_buf = NULL;
+       }
+       D_LEAVE;
+}
+
+static void __msg_ui_setting_smsc_view_select_sim1_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       if (settingData->current_smsc_tab == 2) {
+               int index = 0;
+               Evas_Object *entry = NULL;
+               char *buf = NULL;
+               char *entry_buf = NULL;
+               entry = settingData->text_msg.smsc_addr_entry;
+               entry_buf = elm_entry_markup_to_utf8(elm_entry_entry_get(entry));
+
+               if (entry_buf != NULL) {
+                       free(entry_buf);
+                       entry_buf = NULL;
+               }
+               index = settingData->text_msg.center_index_sim1;
+               D_MSG("sim1 select index : %d", index);
+               D_SEC_MSG("settingData->smsc_buf_sim1 = %s", settingData->smsc_buf_sim1);
+
+               elm_object_focus_set(entry, EINA_TRUE);
+
+               buf = elm_entry_utf8_to_markup(settingData->smsc_buf_sim1);
+               if (buf == NULL)
+                       elm_entry_entry_set(entry, settingData->smsc_buf_sim1);
+               else
+                       elm_entry_entry_set(entry, buf);
+
+               elm_entry_cursor_end_set(entry);
+               if (buf != NULL)
+                       free(buf);
+
+               settingData->current_smsc_tab = 1;
+       }
+       D_LEAVE;
+}
+
+static void __msg_ui_setting_message_center_trans_finished(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       D_MSG_RETM_IF(!settingData, "settingData is NULL");
+       Elm_Object_Item *navi_it = (Elm_Object_Item *)data;
+       Elm_Object_Item *ei_it = (Elm_Object_Item *)event_info;
+
+       evas_object_smart_callback_del(obj, "transition,finished", __msg_ui_setting_message_center_trans_finished);
+
+       if (navi_it == ei_it) {
+               elm_object_focus_set(settingData->text_msg.smsc_addr_entry, EINA_TRUE);
+               elm_entry_cursor_end_set(settingData->text_msg.smsc_addr_entry);
+       }
+}
+
+/*On Create, buffers settingData->smsc_buf_sim1 and settingData->smsc_buf_sim2  are updated. These buffers are further updated on
+1.Tab Switch
+2. Changing value in current tab.
+Buffers will be used for saving SMSC values.*/
+void msg_ui_setting_service_center_selected_main(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Evas_Object *layout = NULL;
+       Evas_Object *top_padding_ly = NULL;
+       Evas_Object *box = NULL;
+       Evas_Object *scroller = NULL;
+       Evas_Object *entry = NULL;
+       int err = MSG_SUCCESS;
+       char title[DEF_BUF_LEN_S] = {0, };
+       char address[SMSC_NAME_MAX+1] = {0,};
+       char *buf = NULL;
+
+       Elm_Entry_Filter_Limit_Size smsc_addr_limit_filter_data;
+       Elm_Entry_Filter_Accept_Set smsc_addr_accept_filter_data;
+
+       scroller = msg_ui_setting_common_create_scroller(settingData->navi_frame);
+
+       box = msg_ui_setting_common_add_box(scroller);
+       elm_object_content_set(scroller, box);
+
+       top_padding_ly = elm_layout_add(box);
+       elm_layout_theme_set(top_padding_ly, "layout", "dialogue", "separator");
+       evas_object_size_hint_weight_set(top_padding_ly, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(top_padding_ly, EVAS_HINT_FILL, 0.0);
+       elm_box_pack_end(box, top_padding_ly);
+       evas_object_show(top_padding_ly);
+
+       layout = elm_layout_add(box);
+       elm_layout_theme_set(layout, "layout", "entry", "default");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       entry = elm_entry_add(layout);
+       settingData->text_msg.smsc_addr_entry = entry;
+       eext_entry_selection_back_event_allow_set(entry, EINA_TRUE);
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       elm_entry_autocapital_type_set(entry, ELM_AUTOCAPITAL_TYPE_NONE);
+       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+       elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_PHONENUMBER);
+       elm_entry_input_panel_return_key_type_set(entry, ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE);
+       elm_object_domain_translatable_part_text_set(entry, "elm.guide", MESSAGE_PKGNAME, "IDS_MSG_MBODY_TEXT_MESSAGE_CENTRE_NUMBER_ABB");
+
+       evas_object_smart_callback_add(entry, "maxlength,reached", msg_ui_setting_common_entry_max_chars_cb, NULL);
+       evas_object_smart_callback_add(entry, "activated", msg_ui_setting_common_keypad_activated_cb, NULL);
+       evas_object_smart_callback_add(entry, "changed", __msg_ui_setting_smsc_entry_check_cb, data);
+
+       elm_object_part_content_set(layout, "elm.icon.entry", entry);
+
+       /* Before giving focus to the entry object, the entry object should be shown. */
+       elm_box_pack_end(box, layout);
+       evas_object_show(entry);
+       evas_object_show(layout);
+
+       smsc_addr_limit_filter_data.max_char_count = 0;
+       smsc_addr_limit_filter_data.max_byte_count = MAX_SMSC_ADDR_LEN;
+       elm_entry_markup_filter_append(entry, __msg_ui_setting_smsc_entry_filter_check_boundary, &smsc_addr_limit_filter_data);
+       elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &smsc_addr_limit_filter_data);
+
+       /* If '*', '#', 'P' are inputted, it will be ignored. */
+       smsc_addr_accept_filter_data.accepted = "+0123456789";
+       smsc_addr_accept_filter_data.rejected = NULL;
+       elm_entry_markup_filter_append(entry, elm_entry_filter_accept_set, &smsc_addr_accept_filter_data);
+
+       __msg_ui_setting_smsc_get_title(settingData, title, sizeof(title));
+
+       settingData->current_smsc_tab = 0;
+       err = msg_get_str_value(settingData->msg_setting.smsc_list->msg_struct_info[settingData->text_msg.center_index], MSG_SMSC_ADDR_STR, address, SMSC_ADDR_MAX);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_str_value fail : %d", err);
+       }
+       D_SEC_MSG("address = %s", address);
+
+       if (strlen(address) > 0) {
+               buf = elm_entry_utf8_to_markup(address);
+               elm_entry_entry_set(entry, buf);
+
+               if (buf != NULL)
+                       free(buf);
+       }
+       settingData->navi_it = elm_naviframe_item_push(settingData->navi_frame, title, NULL, NULL, scroller, NULL);
+       elm_object_item_domain_text_translatable_set(settingData->navi_it, MESSAGE_PKGNAME, EINA_TRUE);
+       msg_ui_setting_common_title_btn_remove(settingData);
+
+       /* elm_naviframe_top_item_get(settingData->navi_frame); */
+       /* done button */
+       msg_ui_setting_common_create_title_left_btn(settingData, __msg_ui_setting_smsc_pop_quit_cb, (void *)settingData, MSG_UI_SETTING_TITLE_BTN_TYPE_CANCEL);
+       /* cancel button */
+       msg_ui_setting_common_create_title_right_btn(settingData, __msg_ui_setting_smsc_done_btn_cb, (void *)settingData, MSG_UI_SETTING_TITLE_BTN_TYPE_DONE);
+
+       if (strlen(address) < 3)
+               elm_object_disabled_set(settingData->title_right_btn, EINA_TRUE);
+       else
+               elm_object_disabled_set(settingData->title_right_btn, EINA_FALSE);
+
+       elm_naviframe_item_pop_cb_set(settingData->navi_it, __msg_ui_setting_smsc_cancel_btn_cb, (void *)settingData);
+
+       evas_object_smart_callback_add(settingData->navi_frame, "transition,finished", __msg_ui_setting_message_center_trans_finished, settingData->navi_it);
+
+       D_LEAVE;
+}
diff --git a/setting/src/text/msg-ui-setting-text-sim-card-msg.c b/setting/src/text/msg-ui-setting-text-sim-card-msg.c
new file mode 100755 (executable)
index 0000000..cff1c04
--- /dev/null
@@ -0,0 +1,1656 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#include "msg-ui-setting-text-sim-card-msg.h"
+
+static struct _msg_ui_setting_list_item popup_menu_its[] = {
+       { "IDS_MSG_OPT_COPY_TO_DEVICE_ABB", NULL },
+       { "IDS_MSG_OPT_DELETE", NULL },
+       /* do not delete below */
+       { NULL, NULL }
+};
+
+/*============================================================================
+                               STATIC FUNCTION DEFINE
+=============================================================================*/
+static void __msg_ui_setting_sim_select_all_set(PMSG_SETTING_DATA settingData);
+static void __msg_ui_setting_sim_msg_delete_copy_select_all(void *data);
+static void __msg_ui_setting_sim_msg_delete_copy_delete_select_all_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_sim_msg_copy_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_sim_msg_delete_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_sim_msg_delete_copy_gl_checked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_sim_msg_delete_copy_nf_pop_quit_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_sim_msg_delete_copy_view(PMSG_SETTING_DATA settingData);
+
+static void __msg_ui_setting_sim_msg_delete_show_notify_with_progressbar_cancel_cb(void *data, Evas_Object *obj, void *event_info);
+
+static void __msg_ui_setting_sim_msg_ctxpopup_select_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_sim_msg_create_ctxpopup(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_setting_sim_msg_delete_worker_feedback_cb(void *data, Ecore_Thread *thread, void *msg_data);
+static void __msg_ui_setting_sim_msg_delete_worker_thread(void *data, Ecore_Thread *thread);
+static void __msg_ui_setting_sim_msg_delete_finish_cb(void *data, Ecore_Thread *thread);
+static void __msg_ui_check_delete_thread_status_and_cancel_thread(void *data);
+static void __msg_ui_setting_sim_msg_title_update(void *data);
+static void __msg_ui_setting_sim_msg_gl_lang_changed(void *data, Evas_Object *obj, void *ei);
+static void __msg_ui_setting_sim_msg_select_all_delete(PMSG_SETTING_DATA settingData);
+
+char *msg_ui_setting_sim_msg_gl_text_get(void *data, Evas_Object *obj, const char *part);
+Evas_Object *msg_ui_setting_sim_msg_gl_content_get(void *data, Evas_Object *obj, const char *part);
+void msg_ui_setting_sim_msg_gl_sel(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_setting_set_msg_data(PMSG_UI_SETTING_THREAD_MSG_DATA_S msg_data, msg_struct_t msgInfo);
+void msg_ui_setting_sim_msg_gl_del(void *data, Evas_Object *obj);
+
+Eina_Bool msg_ui_setting_sim_card_msg_back_btn_cb(void *data, Elm_Object_Item *it);
+void msg_ui_setting_sim_msg_view_init(void *data);
+void msg_ui_setting_dsds_sim_msg_view_init(void *data, int index);
+void msg_ui_setting_sim_msg_view_destroy(void *data);
+void msg_ui_setting_sim_msg_genlists_destroy(void *data);
+void msg_ui_setting_sim_msg_view_show(void *data);
+void msg_ui_setting_sim_msg_update_view(void *data);
+void msg_ui_setting_create_sim_card_msg_main(void *data, Evas_Object *obj, void *event_info);
+static Eina_Bool __msg_ui_back_to_main_settings_view(PMSG_SETTING_DATA setting_data);
+static void msg_ui_restore_initial_view(PMSG_SETTING_DATA settingData);
+/*============================================================================
+                               FUNCTION IMPLEMENT
+=============================================================================*/
+static void __msg_ui_setting_sim_select_all_set(PMSG_SETTING_DATA settingData)
+{
+       D_ENTER;
+       Evas_Object *check = NULL;
+       Eina_Bool state = EINA_FALSE;
+       if (settingData->sim_current_tab == 1) {
+               check = settingData->sim_msg.sel_all_btn1;
+               state = settingData->sim_msg.chk_state_sel_all1;
+       } else if (settingData->sim_current_tab == 2) {
+               check = settingData->sim_msg.sel_all_btn2;
+               state = settingData->sim_msg.chk_state_sel_all2;
+       } else if (settingData->sim_current_tab == 0) {
+               check = settingData->sim_msg.sel_all_btn;
+               state = settingData->sim_msg.chk_state_sel_all;
+       }
+       if (check) {
+               D_MSG("__msg_ui_setting_sim_select_all_set: sel_all_layout is valid");
+               elm_check_state_set(check, state);
+       }
+}
+static void __msg_ui_setting_sim_msg_delete_copy_select_all(void *data)
+{
+       D_ENTER;
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Elm_Object_Item *it;
+       void *item_data = NULL;
+       Evas_Object *check = NULL;
+       Evas_Object *genlist = NULL;
+       msg_struct_list_s msg_list;
+       int *check_count = NULL;
+
+       if (settingData->sim_current_tab == 1) {
+               check = settingData->sim_msg.sel_all_btn1;
+               genlist = settingData->sim_msg.genlist1;
+               msg_list = settingData->sim_msg.msg_list1;
+               check_count = &settingData->check_cnt1;
+       } else if (settingData->sim_current_tab == 2) {
+               check = settingData->sim_msg.sel_all_btn2;
+               genlist = settingData->sim_msg.genlist2;
+               msg_list = settingData->sim_msg.msg_list2;
+               check_count = &settingData->check_cnt2;
+       } else { /* if (settingData->sim_current_tab == 0) */
+               check = settingData->sim_msg.sel_all_btn;
+               genlist = settingData->sim_msg.genlist;
+               msg_list = settingData->sim_msg.msg_list;
+               check_count = &settingData->check_cnt;
+       }
+       __msg_ui_setting_sim_select_all_set(settingData);
+
+       it = elm_genlist_first_item_get(genlist);
+
+       if (elm_check_state_get(check) == EINA_TRUE) {
+               D_MSG("True");
+               if (settingData->sim_current_tab == 1) {
+                       settingData->total_check_cnt = settingData->check_cnt2 + msg_list.nCount;
+                       *check_count = msg_list.nCount;
+               } else if (settingData->sim_current_tab == 2) {
+                       settingData->total_check_cnt = settingData->check_cnt1 + msg_list.nCount;
+                       *check_count = msg_list.nCount;
+               } else { /* if (settingData->sim_current_tab == 0) */
+                       settingData->total_check_cnt = msg_list.nCount;
+                       *check_count = msg_list.nCount;
+               }
+
+               do {
+                       item_data = elm_object_item_data_get(it);
+                       if (item_data) {
+                               D_MSG("Item data is there1");
+                               PMSG_UI_SETTING_THREAD_MSG_DATA_S data = (PMSG_UI_SETTING_THREAD_MSG_DATA_S)item_data;
+                               D_MSG("Item data is there2");
+                               data->is_check = elm_check_state_get(check);
+                               D_MSG("Item data is there3");
+                               elm_check_state_set(data->chk, elm_check_state_get(check));
+                               D_MSG("Item data is there4");
+                       }
+
+                       if (elm_check_state_get(check) && !eina_list_data_find(settingData->chk_list, item_data))
+                               settingData->chk_list = eina_list_append(settingData->chk_list, item_data);
+
+                       it = elm_genlist_item_next_get(it);
+               } while (it != NULL);
+       } else {
+               D_MSG("false");
+               settingData->total_check_cnt -= msg_list.nCount;
+               *check_count = 0;
+               do {
+                       item_data = elm_object_item_data_get(it);
+                       if (item_data) {
+                               D_MSG("Item data is there");
+                               PMSG_UI_SETTING_THREAD_MSG_DATA_S data = (PMSG_UI_SETTING_THREAD_MSG_DATA_S)item_data;
+                               data->is_check = elm_check_state_get(check);
+                               elm_check_state_set(data->chk, elm_check_state_get(check));
+                       }
+
+                       if (elm_check_state_get(check) == EINA_FALSE && eina_list_data_find(settingData->chk_list, item_data))
+                               settingData->chk_list = eina_list_remove(settingData->chk_list, item_data);
+
+                       it = elm_genlist_item_next_get(it);
+               } while (it != NULL);
+       }
+
+       if (settingData->total_check_cnt > 0) {
+               elm_object_disabled_set(settingData->title_right_btn, EINA_FALSE);
+       } else {
+               elm_object_disabled_set(settingData->title_right_btn, EINA_TRUE);
+       }
+
+       __msg_ui_setting_sim_msg_title_update(settingData);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_setting_sim_msg_delete_copy_delete_select_all_layout_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       D_MSG("settingData->sim_current_tab is %d", settingData->sim_current_tab);
+
+       if (settingData->sim_current_tab == 1) {
+               settingData->sim_msg.chk_state_sel_all1 = !elm_check_state_get(settingData->sim_msg.sel_all_btn1);
+       } else if (settingData->sim_current_tab == 2) {
+               settingData->sim_msg.chk_state_sel_all2 = !elm_check_state_get(settingData->sim_msg.sel_all_btn2);
+               D_MSG("select all : %d", settingData->sim_msg.chk_state_sel_all);
+       } else if (settingData->sim_current_tab == 0) {
+               settingData->sim_msg.chk_state_sel_all = !elm_check_state_get(settingData->sim_msg.sel_all_btn);
+       }
+
+       __msg_ui_setting_sim_msg_delete_copy_select_all(settingData);
+}
+
+static void __msg_ui_setting_sim_msg_delete_copy_delete_select_all_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       __msg_ui_setting_sim_msg_delete_copy_select_all(settingData);
+}
+
+static void __msg_ui_setting_sim_msg_copy_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       PMSG_UI_SETTING_THREAD_MSG_DATA_S item_data = NULL;
+       Eina_List *l = NULL;
+       int ret = MSG_SUCCESS;
+
+       settingData->view_type = SETTING_SIM_MSG_COPY_TO_PHONE_SAVE_VIEW;
+       D_MSG("setting view type : %d", settingData->view_type);
+
+       EINA_LIST_FOREACH(settingData->chk_list, l, item_data) {
+               if (item_data) {
+                       if (item_data->is_check == EINA_TRUE) {
+                               PMSG_UI_SETTING_THREAD_MSG_DATA_S data = (PMSG_UI_SETTING_THREAD_MSG_DATA_S)item_data;
+                               msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+                               msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+                               ret = msg_get_message(settingData->msgHandle, (msg_message_id_t)data->msg_id, msgInfo, sendOpt);
+                               if (ret != MSG_SUCCESS) {
+                                       msg_release_struct(&msgInfo);
+                                       msg_release_struct(&sendOpt);
+                                       D_EMSG("msg_get_message() is failed : err = %d, msgid = %d", ret, data->msg_id);
+                                       continue;
+                               }
+
+                               msg_set_int_value(msgInfo, MSG_MESSAGE_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+                               ret = msg_add_message(settingData->msgHandle, msgInfo, sendOpt);
+                               if (ret != MSG_SUCCESS) {
+                                       D_EMSG("msg_add_message() is failed : err = %d, msgid = %d", ret, data->msg_id);
+                               }
+
+                               msg_release_struct(&msgInfo);
+                               msg_release_struct(&sendOpt);
+                       }
+               }
+       }
+
+       notification_status_message_post(TEXT("IDS_MSG_TPOP_SELECTED_MESSAGES_COPIED_TO_MOBILE_DEVICE"));
+
+       __msg_ui_setting_sim_msg_select_all_delete(settingData);
+       msg_ui_restore_initial_view(settingData);
+}
+
+static void __msg_ui_setting_sim_msg_delete_worker_feedback_cb(void *data, Ecore_Thread *thread, void *msg_data)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !msg_data);
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       int *ret = msg_data;
+
+       if (*ret == MSG_SUCCESS) {
+               if (settingData->sim_msgs_delete_progress_thread) {
+                       PMSG_APP_SIM_DELETE_POPUP_PROGRESS sim_msgs_delete_progress_thread = (PMSG_APP_SIM_DELETE_POPUP_PROGRESS)settingData->sim_msgs_delete_progress_thread;
+
+                       if (sim_msgs_delete_progress_thread->progressbar) {
+                               elm_progressbar_value_set(sim_msgs_delete_progress_thread->progressbar, (double)(settingData->sel_index+1)/settingData->total_check_cnt);
+                       }
+               }
+       } else {
+               notification_status_message_post(TEXT("IDS_MSGF_POP_UNABLE_TO_DELETE"));
+               D_EMSG("fail action. %d", *ret);
+
+               if (ret)
+                       free(ret);
+               return;
+       }
+
+       if (settingData->sel_index + 1 != settingData->total_check_cnt) {
+               settingData->sel_index++;
+       }
+
+       if (ret)
+               free(ret);
+
+       return;
+}
+
+static void __msg_ui_setting_sim_msg_delete_worker_thread(void *data, Ecore_Thread *thread)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       PMSG_UI_SETTING_THREAD_MSG_DATA_S item_data = NULL;
+       Eina_List *l = NULL;
+       int idx = 0;
+       msg_error_t err = MSG_SUCCESS;
+       msg_handle_t temp_msgHandle = NULL;
+
+       err = msg_open_msg_handle(&temp_msgHandle);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_open_msg_handle failed, Error=[%d]\n", err);
+               return;
+       }
+
+       int count = settingData->total_check_cnt;
+
+       D_MSG("Check count is: %d", count);
+
+       msg_id_list_s msgIdList;
+       memset(&msgIdList, 0x00, sizeof(msg_id_list_s));
+
+       msg_message_id_t msgIds[count];
+       memset(msgIds, 0x00, sizeof(msgIds));
+       msgIdList.msgIdList = msgIds;
+
+       EINA_LIST_FOREACH(settingData->chk_list, l, item_data) {
+               int *ret = calloc(1, sizeof(int));
+               *ret = MSG_SUCCESS;
+
+               if (item_data) {
+                       if (item_data->is_check == EINA_TRUE) {
+                               msgIds[idx] = item_data->msg_id;
+                               idx++;
+                               msgIdList.nCount++;
+
+                               *ret = msg_delete_message(temp_msgHandle, item_data->msg_id);
+                               if (*ret != MSG_SUCCESS) {
+                                       D_EMSG("call ecore_thread_feedback. ret is %d", *ret);
+                                       free((void *)ret);
+                                       break;
+                               }
+                               settingData->sim_msg.view_update_needed = EINA_TRUE;
+                       }
+
+                       ecore_thread_feedback(thread, (void *)ret);
+               } else {
+                       D_EMSG("Unable to get the item data");
+                       *ret = MSG_ERR_INVALID_PARAMETER;
+                       ecore_thread_feedback(thread, (void *)ret);
+                       break;
+               }
+       }
+
+       if (temp_msgHandle != NULL) {
+               err = msg_close_msg_handle(&temp_msgHandle);
+               if (err != MSG_SUCCESS)
+                       D_EMSG("msg_close_msg_handle error, ret = [%d]", err);
+       }
+       return;
+}
+
+static void __msg_ui_setting_sim_msg_delete_finish_cb(void *data, Ecore_Thread *thread)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       PMSG_APP_SIM_DELETE_POPUP_PROGRESS sim_msgs_delete_progress_thread = (PMSG_APP_SIM_DELETE_POPUP_PROGRESS)settingData->sim_msgs_delete_progress_thread;
+
+       if (sim_msgs_delete_progress_thread != NULL) {
+               evas_object_del(sim_msgs_delete_progress_thread->progressbar);
+               evas_object_del(sim_msgs_delete_progress_thread->popup_object);
+               sim_msgs_delete_progress_thread->multi_action_thread = NULL;
+
+               free(sim_msgs_delete_progress_thread);
+               sim_msgs_delete_progress_thread = NULL;
+       }
+
+       settingData->sim_msgs_delete_progress_thread = NULL;
+
+       if (EINA_TRUE == settingData->sim_msg.view_update_needed) {
+               settingData->sim_msg.view_update_needed = EINA_FALSE;
+               settingData->view_type = SETTING_SIM_MSG_MAIN_VIEW;
+
+               msg_ui_setting_common_title_btn_remove(settingData);
+               __msg_ui_setting_sim_msg_select_all_delete(settingData);
+               msg_ui_restore_initial_view(settingData);
+               msg_ui_setting_sim_msg_update_view(settingData);
+       } else {
+               __msg_ui_back_to_main_settings_view(settingData);
+       }
+}
+
+static void __msg_ui_check_delete_thread_status_and_cancel_thread(void *data)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       D_MSG_RETM_IF(!settingData, "settingData is NULL.");
+
+
+       PMSG_APP_SIM_DELETE_POPUP_PROGRESS sim_msgs_delete_progress_thread = (PMSG_APP_SIM_DELETE_POPUP_PROGRESS)settingData->sim_msgs_delete_progress_thread;
+       D_MSG_RETM_IF(!sim_msgs_delete_progress_thread, "There is no delete thread exists");
+
+       if ((sim_msgs_delete_progress_thread->multi_action_thread) && (EINA_FALSE == ecore_thread_check(sim_msgs_delete_progress_thread->multi_action_thread))) {
+               ecore_thread_cancel(sim_msgs_delete_progress_thread->multi_action_thread);
+               sim_msgs_delete_progress_thread->multi_action_thread = NULL;
+       }
+
+       evas_object_del(sim_msgs_delete_progress_thread->progressbar);
+       evas_object_del(sim_msgs_delete_progress_thread->popup_object);
+       sim_msgs_delete_progress_thread->multi_action_thread = NULL;
+
+       free(sim_msgs_delete_progress_thread);
+       sim_msgs_delete_progress_thread = NULL;
+
+       settingData->sim_msgs_delete_progress_thread = NULL;
+       return;
+}
+
+static void __msg_ui_setting_sim_msg_delete_show_notify_with_progressbar_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "PMSG_SETTING_DATA is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (settingData->view_type == SETTING_SIM_MSG_DELETE_VIEW) {
+               __msg_ui_check_delete_thread_status_and_cancel_thread(settingData);
+               __msg_ui_back_to_main_settings_view(settingData);
+       }
+}
+
+void msg_ui_setting_sim_msg_delete_show_notify_with_progressbar(void *data, int count)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       Evas_Object *popup = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *progressbar = NULL;
+       Evas_Object  *btn_cancel = NULL;
+
+       const char *popup_text = NULL;
+       const char *text_domain = NULL;
+
+       popup = elm_popup_add(settingData->navi_frame);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+
+       layout = elm_layout_add(popup);
+       elm_layout_file_set(layout, MSG_COMMON_EDJ, "delete_popup_center_progressbar");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       popup_text = "IDS_MSGF_POP_DELETING";
+       text_domain = MESSAGE_PKGNAME;
+       settingData->sel_index = 0;
+
+       progressbar = elm_progressbar_add(popup);
+       elm_object_style_set(progressbar, "list_progress");
+       elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_progressbar_value_set(progressbar, 0.0);
+       elm_progressbar_unit_format_set(progressbar, NULL);
+       evas_object_show(progressbar);
+
+       elm_object_part_content_set(layout, "elm.swallow.content", progressbar);
+       elm_object_domain_translatable_part_text_set(layout, "popup.text", text_domain, popup_text);
+       elm_object_content_set(popup, layout);
+
+       btn_cancel = elm_button_add(popup);
+       elm_object_style_set(btn_cancel, "popup");
+       elm_object_domain_translatable_text_set(btn_cancel, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", btn_cancel);
+       evas_object_smart_callback_add(btn_cancel, "clicked", __msg_ui_setting_sim_msg_delete_show_notify_with_progressbar_cancel_cb, (void *)settingData);
+       evas_object_show(popup);
+
+       PMSG_APP_SIM_DELETE_POPUP_PROGRESS sim_msgs_delete_progress_thread = (PMSG_APP_SIM_DELETE_POPUP_PROGRESS)calloc(1, sizeof(MSG_APP_SIM_DELETE_POPUP_PROGRESS));
+
+       D_MSG_RETM_IF(!sim_msgs_delete_progress_thread, "sim_msgs_delete_progress_thread is NULL. Memory cannot be allocated.");
+
+       sim_msgs_delete_progress_thread->popup_object = popup;
+       sim_msgs_delete_progress_thread->progressbar = progressbar;
+
+       if ((sim_msgs_delete_progress_thread->multi_action_thread) && (EINA_FALSE == ecore_thread_check(sim_msgs_delete_progress_thread->multi_action_thread))) {
+               ecore_thread_cancel(sim_msgs_delete_progress_thread->multi_action_thread);
+               sim_msgs_delete_progress_thread->multi_action_thread = NULL;
+       }
+
+       sim_msgs_delete_progress_thread->multi_action_thread = ecore_thread_feedback_run(__msg_ui_setting_sim_msg_delete_worker_thread,
+                                                                                                               __msg_ui_setting_sim_msg_delete_worker_feedback_cb,
+                                                                                                               __msg_ui_setting_sim_msg_delete_finish_cb,
+                                                                                                               NULL,
+                                                                                                               data, EINA_TRUE);
+
+       settingData->sim_msgs_delete_progress_thread = (void *)sim_msgs_delete_progress_thread;
+
+       if (NULL == sim_msgs_delete_progress_thread->multi_action_thread) {
+               D_EMSG("thread run is failed");
+       }
+
+       D_LEAVE;
+       return;
+}
+
+static void __msg_ui_setting_sim_msg_delete_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       PMSG_UI_SETTING_THREAD_MSG_DATA_S item_data = NULL;
+       Eina_List *l = NULL;
+       int ret = MSG_SUCCESS;
+       int idx = 0;
+       int count = settingData->total_check_cnt;
+
+       if (count > 1) {
+               msg_ui_setting_sim_msg_delete_show_notify_with_progressbar(data, count);
+       } else {
+               msg_id_list_s msgIdList;
+               memset(&msgIdList, 0x00, sizeof(msg_id_list_s));
+
+               msg_message_id_t msgIds[count];
+               memset(msgIds, 0x00, sizeof(msgIds));
+               msgIdList.msgIdList = msgIds;
+
+               EINA_LIST_FOREACH(settingData->chk_list, l, item_data) {
+                       if (item_data) {
+                               if (item_data->is_check == EINA_TRUE) {
+                                       msgIds[idx] = item_data->msg_id;
+                                       idx++;
+                                       msgIdList.nCount++;
+                               }
+                       }
+               }
+
+               ret = msg_delete_msgs_by_list(settingData->msgHandle, &msgIdList);
+               if (ret != MSG_SUCCESS) {
+                       D_EMSG("msg_delete_msgs_by_list error [%d]", ret);
+                       notification_status_message_post(TEXT("IDS_MSGF_POP_UNABLE_TO_DELETE"));
+               }
+
+               __msg_ui_setting_sim_msg_select_all_delete(settingData);
+               msg_ui_restore_initial_view(settingData);
+       }
+
+       return;
+}
+
+static void __msg_ui_setting_sim_msg_delete_copy_gl_checked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       PMSG_UI_SETTING_THREAD_MSG_DATA_S item_data = NULL;
+       int check_count = 0;
+       int msg_lis_count = 0;
+
+       item_data = (PMSG_UI_SETTING_THREAD_MSG_DATA_S)evas_object_data_get(obj, "item_data");
+
+       D_MSG_RETM_IF(!item_data, "item_data is NULL");
+
+       if (item_data->is_check) {
+               settingData->total_check_cnt++;
+               if (!eina_list_data_find(settingData->chk_list, item_data))
+                       settingData->chk_list = eina_list_append(settingData->chk_list, item_data);
+       } else {
+               settingData->total_check_cnt--;
+               settingData->chk_list = eina_list_remove(settingData->chk_list, item_data);
+       }
+
+       D_MSG("check cnt : %d", settingData->total_check_cnt);
+
+       if (settingData->sim_current_tab == 1) {
+
+               msg_lis_count = settingData->sim_msg.msg_list1.nCount;
+               if (item_data->is_check) {
+                       settingData->check_cnt1++;
+               } else {
+                       settingData->check_cnt1--;
+               }
+               check_count = (settingData->check_cnt1);
+
+
+       } else if (settingData->sim_current_tab == 2) {
+               msg_lis_count = settingData->sim_msg.msg_list2.nCount;
+
+               if (item_data->is_check) {
+                       settingData->check_cnt2++;
+               } else {
+                       settingData->check_cnt2--;
+               }
+               check_count = (settingData->check_cnt2);
+
+       } else if (settingData->sim_current_tab == 0) {
+               msg_lis_count = settingData->sim_msg.msg_list.nCount;
+
+               if (item_data->is_check) {
+                       settingData->check_cnt++;
+               } else {
+                       settingData->check_cnt--;
+               }
+               check_count = (settingData->check_cnt);
+       }
+
+       D_MSG("msg_lis_count %d check_count %d", msg_lis_count, check_count);
+
+       if ((check_count) == msg_lis_count) {
+               if (settingData->sim_current_tab == 1) {
+                       settingData->sim_msg.chk_state_sel_all1 = EINA_TRUE;
+               } else if (settingData->sim_current_tab == 2) {
+                       settingData->sim_msg.chk_state_sel_all2 = EINA_TRUE;
+               } else if (settingData->sim_current_tab == 0) {
+                       settingData->sim_msg.chk_state_sel_all = EINA_TRUE;
+               }
+               __msg_ui_setting_sim_select_all_set(settingData);
+       } else {
+               if (settingData->sim_current_tab == 1) {
+                       settingData->sim_msg.chk_state_sel_all1 = EINA_FALSE;
+               } else if (settingData->sim_current_tab == 2) {
+                       settingData->sim_msg.chk_state_sel_all2 = EINA_FALSE;
+               } else if (settingData->sim_current_tab == 0) {
+                       settingData->sim_msg.chk_state_sel_all = EINA_FALSE;
+               }
+               __msg_ui_setting_sim_select_all_set(settingData);
+       }
+
+       if (settingData->total_check_cnt == 0) {
+               elm_object_disabled_set(settingData->title_right_btn, EINA_TRUE);
+       } else {
+               elm_object_disabled_set(settingData->title_right_btn, EINA_FALSE);
+       }
+
+       __msg_ui_setting_sim_msg_title_update(settingData);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_setting_sim_msg_select_all_add(PMSG_SETTING_DATA settingData)
+{
+       Evas_Object *sel_all_layout = NULL;
+       Evas_Object *sel_check = NULL;
+
+       sel_all_layout = msg_common_create_select_all_layout(settingData->navi_frame);
+       evas_object_size_hint_weight_set(sel_all_layout, EVAS_HINT_EXPAND, 0.0);
+       elm_object_signal_callback_add(sel_all_layout, "sel_all_layout,clicked", "", __msg_ui_setting_sim_msg_delete_copy_delete_select_all_layout_cb, settingData);
+
+       sel_check = elm_check_add(sel_all_layout);
+       evas_object_smart_callback_add(sel_check, "changed", __msg_ui_setting_sim_msg_delete_copy_delete_select_all_cb, settingData);
+       evas_object_propagate_events_set(sel_check, EINA_FALSE);
+       elm_object_part_content_set(sel_all_layout, "elm.swallow.select_icon", sel_check);
+       elm_check_state_pointer_set(sel_check, &settingData->sim_msg.chk_state_sel_all);
+       settingData->sim_msg.sel_all_btn = sel_check;
+       evas_object_show(sel_check);
+
+       elm_object_part_text_set(sel_all_layout, "elm.select_all_text", dgettext(MESSAGE_PKGNAME, "IDS_MSG_MBODY_SELECT_ALL"));
+
+       elm_object_part_content_unset(settingData->sim_msg.layout, "elm.swallow.content");
+       elm_object_part_content_set(settingData->sim_msg.layout, "elm.swallow.content", settingData->sim_msg.box);
+
+       elm_box_pack_start(settingData->sim_msg.box, sel_all_layout);
+       settingData->sim_msg.sel_all_layout = sel_all_layout;
+}
+
+static void __msg_ui_setting_sim_msg_select_all_delete(PMSG_SETTING_DATA settingData)
+{
+       elm_box_unpack(settingData->sim_msg.box, settingData->sim_msg.sel_all_layout);
+       evas_object_del(settingData->sim_msg.sel_all_layout);
+       settingData->sim_msg.sel_all_layout = NULL;
+       settingData->sim_msg.sel_all_btn = NULL;
+}
+
+static Eina_Bool __msg_ui_back_to_main_settings_view(PMSG_SETTING_DATA setting_data)
+{
+       D_ENTER;
+       if (setting_data->view_type == SETTING_SIM_MSG_DELETE_VIEW) {
+               __msg_ui_check_delete_thread_status_and_cancel_thread(setting_data);
+
+       }
+
+       setting_data->view_type = SETTING_VIEW_NONE;
+       __msg_ui_setting_sim_msg_select_all_delete(setting_data);
+       if (setting_data->more_btn) {
+               evas_object_del(setting_data->more_btn);
+               setting_data->more_btn = NULL;
+       }
+
+       elm_naviframe_item_pop(setting_data->navi_frame);
+       msg_ui_setting_sim_msg_view_destroy(setting_data);
+
+       msg_ui_setting_common_ctxpopup_remove(setting_data);
+
+       msg_release_list_struct(&setting_data->sim_msg.msg_list);
+
+       if (setting_data->ug_req_type == MSG_UG_REQ_SIM_VIEW)
+               ug_destroy_me(setting_data->ug);
+       return EINA_TRUE;
+}
+
+static void __msg_ui_setting_sim_msg_delete_copy_nf_pop_quit_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       PMSG_SETTING_DATA setting_data = msg_ui_setting_get_data();
+       D_MSG_RETM_IF(!setting_data, "PMSG_SETTING_DATA is NULL");
+       __msg_ui_setting_sim_msg_select_all_delete(setting_data);
+       msg_ui_restore_initial_view(setting_data);
+}
+
+static void __msg_ui_setting_sim_msg_delete_copy_view(PMSG_SETTING_DATA settingData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!settingData, "settingData is NULL");
+
+       Elm_Object_Item *first = NULL;
+       char title_id[DEF_BUF_LEN_S] = {0, };
+       snprintf(title_id, sizeof(title_id), TEXT("IDS_MSG_HEADER_PD_SELECTED_ABB3"), settingData->total_check_cnt);
+       char* done_title_id = "IDS_MSG_ACBUTTON_DELETE_ABB";
+       Evas_Smart_Cb on_done = __msg_ui_setting_sim_msg_delete_btn_cb;
+       msg_ui_setting_common_title_btn_remove(settingData);
+
+       if (settingData->menu == MSG_UI_SETTING_SIM_MSG_POPUP_MENU_COPY_TO_PHONE) {
+               settingData->view_type = SETTING_SIM_MSG_COPY_TO_PHONE_VIEW;
+               done_title_id = "IDS_MSG_ACBUTTON_DONE_ABB";
+               on_done = __msg_ui_setting_sim_msg_copy_btn_clicked_cb;
+       } else if (settingData->menu == MSG_UI_SETTING_SIM_MSG_POPUP_MENU_DELETE) {
+               settingData->view_type = SETTING_SIM_MSG_DELETE_VIEW;
+       } else {
+               D_EMSG("Unsupported option!");
+       }
+
+       msg_common_naviframe_item_text_update_add_buttons(settingData->navi_frame, title_id,
+                       "IDS_MSG_ACBUTTON_CANCEL_ABB", &settingData->title_left_btn,
+                       done_title_id, &settingData->title_right_btn,
+                       EINA_TRUE);
+
+       evas_object_smart_callback_add(settingData->title_left_btn, "clicked", __msg_ui_setting_sim_msg_delete_copy_nf_pop_quit_cb, (void *)settingData);
+       evas_object_smart_callback_add(settingData->title_right_btn, "clicked", on_done, (void *)settingData);
+       elm_object_disabled_set(settingData->title_right_btn, EINA_TRUE);
+
+       Evas_Object *genlist = NULL;
+       Elm_Genlist_Item_Class *sim_itc_select;
+       if (elm_genlist_items_count(settingData->sim_msg.genlist) > 0) {
+               genlist = settingData->sim_msg.genlist;
+               sim_itc_select = &settingData->sim_msg.sim_itc_select;
+               first = elm_genlist_first_item_get(genlist);
+
+               int row = 0;
+               __msg_ui_setting_sim_msg_select_all_add(settingData);
+
+               do {
+                       elm_genlist_item_update(first);
+                       elm_genlist_item_select_mode_set(first, ELM_OBJECT_SELECT_MODE_DEFAULT);
+                       first = elm_genlist_item_next_get(first);
+               } while (first != NULL);
+       }
+}
+
+static void __msg_ui_setting_sim_msg_ctxpopup_select_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       const char *label = elm_object_item_text_get((Elm_Object_Item *) event_info);
+       if (!label) {
+               D_EMSG("ctxpopup label is error");
+               return;
+       }
+
+       D_MSG("label : %s", label);
+
+       msg_ui_setting_common_ctxpopup_remove(settingData);
+
+       if (!strcmp(label, TEXT(popup_menu_its[0].name))) {
+               settingData->menu = MSG_UI_SETTING_SIM_MSG_POPUP_MENU_COPY_TO_PHONE;
+       } else if (!strcmp(label, TEXT(popup_menu_its[1].name))) {
+               settingData->menu = MSG_UI_SETTING_SIM_MSG_POPUP_MENU_DELETE;
+       }
+       __msg_ui_setting_sim_msg_delete_copy_view(settingData);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_setting_sim_msg_create_ctxpopup(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Evas_Object *ctx_popup = NULL;
+
+       msg_ui_setting_common_ctxpopup_remove(settingData);
+
+       if ((settingData->sim_current_tab == 0) && (settingData->item_cnt == 0)) {
+               D_MSG("SIM is empty");
+               return;
+       } else if ((settingData->sim_current_tab == 1) || (settingData->sim_current_tab == 2)) {
+               int cnt = 0;
+               if (settingData->text_msg.tabbar_btn[TAB_BAR_ITEM_1] != NULL && !elm_object_item_disabled_get(settingData->text_msg.tabbar_btn[TAB_BAR_ITEM_1])) {
+                       cnt += settingData->item_cnt1;
+                       D_MSG("sim1 msg count : %d", settingData->item_cnt1);
+               }
+               if (cnt == 0) {
+                       D_MSG("SIM1 is empty");
+                       return;
+               }
+       }
+
+       if (settingData->view_type == SETTING_SIM_MSG_COPY_TO_PHONE_VIEW || settingData->view_type == SETTING_SIM_MSG_DELETE_VIEW)
+               return;
+
+       ctx_popup = elm_ctxpopup_add(settingData->main_win);
+       settingData->ctxpopup = ctx_popup;
+       elm_object_style_set(ctx_popup, "more/default");
+       elm_ctxpopup_auto_hide_disabled_set(ctx_popup, EINA_TRUE);
+
+       eext_object_event_callback_add(ctx_popup, EEXT_CALLBACK_BACK, eext_ctxpopup_back_cb, NULL);
+       eext_object_event_callback_add(ctx_popup, EEXT_CALLBACK_MORE, eext_ctxpopup_back_cb, NULL);
+
+       evas_object_event_callback_add(ctx_popup, EVAS_CALLBACK_DEL, msg_ui_setting_common_ctxpopup_delete_cb, settingData->navi_frame);
+       evas_object_event_callback_add(settingData->navi_frame, EVAS_CALLBACK_RESIZE, msg_ui_setting_common_ctxpopup_resize_cb, ctx_popup);
+       evas_object_smart_callback_add(elm_object_top_widget_get(ctx_popup), "rotation,changed", msg_ui_setting_common_ctxpopup_rotate_more_ctxpopup_cb, ctx_popup);
+
+       evas_object_smart_callback_add(ctx_popup, "dismissed", msg_ui_setting_common_ctxpopup_dismissed_cb, NULL);
+
+       elm_ctxpopup_item_append(ctx_popup, TEXT(popup_menu_its[0].name), NULL, __msg_ui_setting_sim_msg_ctxpopup_select_cb, settingData);
+       elm_ctxpopup_item_append(ctx_popup, TEXT(popup_menu_its[1].name), NULL, __msg_ui_setting_sim_msg_ctxpopup_select_cb, settingData);
+
+       elm_ctxpopup_direction_priority_set(ctx_popup,
+                                                       ELM_CTXPOPUP_DIRECTION_UP,
+                                                       ELM_CTXPOPUP_DIRECTION_UNKNOWN,
+                                                       ELM_CTXPOPUP_DIRECTION_UNKNOWN,
+                                                       ELM_CTXPOPUP_DIRECTION_UNKNOWN);
+
+       msg_ui_setting_common_ctxpopup_move_more_ctxpopup(ctx_popup);
+
+       evas_object_show(ctx_popup);
+
+       D_LEAVE;
+}
+char *msg_ui_setting_sim_msg_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       PMSG_UI_SETTING_THREAD_MSG_DATA_S item_data = (PMSG_UI_SETTING_THREAD_MSG_DATA_S)data;
+       char buf[DEF_BUF_LEN_1024+1] = { 0, };
+
+       D_MSG_RETVM_IF(!item_data, NULL, "item_data is NULL");
+
+       if (!strcmp(part, "elm.text")) {
+               int i = 0;
+               char str_name[DEF_BUF_LEN+1] = { 0, };
+               char temp[DEF_BUF_LEN+1] = { 0, };
+
+               for (i = 0; i < item_data->addr_cnt; i++) {
+                       if (item_data->addr_info[i]->contact_id > 0 && item_data->addr_info[i]->display_name[0] != '\0') {
+                               snprintf(str_name, sizeof(str_name), "%s", item_data->addr_info[i]->display_name);
+                       } else {
+                               if (item_data->addr_info[i]->address[0] != '\0')
+                                       snprintf(str_name, sizeof(str_name), "%s", item_data->addr_info[i]->address);
+                               else
+                                       snprintf(str_name, sizeof(str_name), dgettext(MESSAGE_PKGNAME, "IDS_MSG_MBODY_UNKNOWN_NUMBER"));
+                       }
+
+                       snprintf(temp, sizeof(temp), "%s", buf);
+
+                       if (*temp)
+                               snprintf(buf, sizeof(buf), "%s, %s", temp, str_name);
+                       else
+                               snprintf(buf, sizeof(buf), "%s", str_name);
+               }
+       } else if (g_strcmp0(part, "elm.text.multiline") == 0) {
+               char msg[DEF_BUF_LEN] = { 0, };
+               int idx = 0;
+
+               if (item_data->msg_body[0] != '\0') {
+                       strncpy(msg, item_data->msg_body, sizeof(msg) - 1);
+                       while (msg[idx]) {
+                               if (g_ascii_iscntrl(msg[idx]))
+                                       msg[idx] = ' ';
+                               idx++;
+                       }
+               } else if ((item_data->msg_type >= MSG_TYPE_MMS && item_data->msg_type <= MSG_TYPE_MMS_NOTI)) {
+                       snprintf(msg, sizeof(msg), "(%s)", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_NO_SUBJECT"));
+               }
+               snprintf(buf, sizeof(buf), "%s \n\n", msg);
+               memset(msg, 0, sizeof(msg));
+               msg_ui_setting_common_make_time_string(item_data->msg_time, msg, sizeof(msg));
+               strncat(buf, msg, strlen(msg));
+
+       } else {
+               return NULL;
+       }
+
+       return elm_entry_utf8_to_markup(buf);
+}
+
+Evas_Object *msg_ui_setting_sim_msg_gl_delete_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       PMSG_UI_SETTING_THREAD_MSG_DATA_S item_data = (PMSG_UI_SETTING_THREAD_MSG_DATA_S)data;
+       if (item_data == NULL)
+               D_MSG("...........item data is NULL..........");
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       Evas_Object *ic = NULL;
+
+       if (elm_genlist_decorate_mode_get(obj)) {
+               if (!strcmp(part, "elm.icon")) {
+                       D_MSG("PART IS ELM.ICON");
+                       ic = elm_check_add(obj);
+                       elm_object_focus_allow_set(ic, EINA_FALSE);
+                       evas_object_propagate_events_set(ic, EINA_FALSE);
+                       elm_check_state_pointer_set(ic, &item_data->is_check);
+                       evas_object_data_set(ic, "item_data", item_data);
+                       evas_object_smart_callback_add(ic, "changed", __msg_ui_setting_sim_msg_delete_copy_gl_checked_cb, (void *) settingData);
+                       item_data->chk = ic;
+               }
+       }
+       return ic;
+}
+
+Evas_Object *msg_ui_setting_sim_msg_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       D_MSG_RETVM_IF(!settingData, NULL, "PMSG_SETTING_DATA is NULL");
+       PMSG_UI_SETTING_THREAD_MSG_DATA_S item_data = (PMSG_UI_SETTING_THREAD_MSG_DATA_S)data;
+       D_MSG_RETVM_IF(!item_data, NULL, "item_data is NULL");
+       Evas_Object *ic = NULL;
+
+       if (g_strcmp0(part, "elm.swallow.end") == 0) {
+               if ((settingData->view_type == SETTING_SIM_MSG_COPY_TO_PHONE_VIEW) || (settingData->view_type == SETTING_SIM_MSG_DELETE_VIEW)) {
+                       if (elm_genlist_decorate_mode_get(obj)) {
+
+                               ic = elm_check_add(obj);
+                               elm_object_focus_allow_set(ic, EINA_FALSE);
+                               evas_object_propagate_events_set(ic, EINA_FALSE);
+                               elm_check_state_pointer_set(ic, &item_data->is_check);
+                               evas_object_data_set(ic, "item_data", item_data);
+                               evas_object_smart_callback_add(ic, "changed", __msg_ui_setting_sim_msg_delete_copy_gl_checked_cb, (void *) settingData);
+                               item_data->chk = ic;
+                       }
+                       return ic;
+               }
+       }
+
+       return ic;
+}
+
+void msg_ui_setting_sim_msg_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       D_MSG_RETM_IF(!obj, "obj is NULL");
+       D_MSG_RETM_IF(!event_info, "event_info is NULL");
+       PMSG_SETTING_DATA settingData = msg_ui_setting_get_data();
+       D_MSG_RETM_IF(!settingData, "PMSG_SETTING_DATA is NULL");
+
+       if ((settingData->view_type == SETTING_SIM_MSG_COPY_TO_PHONE_VIEW) || (settingData->view_type == SETTING_SIM_MSG_DELETE_VIEW)) {
+               PMSG_UI_SETTING_THREAD_MSG_DATA_S cur_item = (PMSG_UI_SETTING_THREAD_MSG_DATA_S)(data);
+               if (cur_item) {
+
+                       PMSG_UI_SETTING_THREAD_MSG_DATA_S item_data = NULL;
+                       item_data = (PMSG_UI_SETTING_THREAD_MSG_DATA_S)evas_object_data_get(cur_item->chk, "item_data");
+
+                       if (item_data) {
+                               elm_check_state_set(cur_item->chk, !item_data->is_check);
+                       }
+                       __msg_ui_setting_sim_msg_delete_copy_gl_checked_cb(settingData, cur_item->chk, NULL);
+               }
+       }
+       elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+       D_LEAVE;
+}
+
+void msg_ui_setting_set_msg_data(PMSG_UI_SETTING_THREAD_MSG_DATA_S msg_data, msg_struct_t msgInfo)
+{
+       D_ENTER;
+
+       if (msg_data == NULL || msgInfo == NULL) {
+               return;
+       }
+
+       int msgId = 0;
+       int threadId = 0;
+       int msgType = 0;
+       int direction = 0;
+       bool read_status = 0;
+/*     bool protect_status = 0; */
+       msg_list_handle_t addr_list = NULL;
+       char strNumber[DEF_THREAD_ADDR_LEN+1] = {0,};
+       char strName[DEF_THREAD_NAME_LEN+1] = {0,};
+       int contact_id = 0;
+       int addressType = 0;
+       int i = 0;
+
+       /* msg_id */
+       msg_get_int_value(msgInfo, MSG_MESSAGE_ID_INT, &msgId);
+       msg_data->msg_id = msgId;
+       /* thread_id */
+       msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, &threadId);
+       msg_data->thread_id = threadId;
+       /* msg_type */
+       msg_get_int_value(msgInfo, MSG_MESSAGE_TYPE_INT, &msgType);
+       msg_data->msg_type = msgType;
+       /* read status */
+       msg_get_bool_value(msgInfo, MSG_MESSAGE_READ_BOOL, &read_status);
+       msg_data->is_read = read_status;
+
+       msg_get_int_value(msgInfo, MSG_MESSAGE_DIRECTION_INT, &direction);
+       msg_data->direction = direction;
+
+       /* contact ID, display name  */
+       msg_get_list_handle(msgInfo, MSG_MESSAGE_ADDR_LIST_HND, (void **)&addr_list);
+
+       msg_data->addr_cnt = msg_list_length(addr_list);
+       if (msg_data->addr_cnt > 0) {
+               msg_data->addr_info = (PMSG_UI_SETTING_THREAD_ADDR_INFO_S *)calloc(1, sizeof(PMSG_UI_SETTING_THREAD_ADDR_INFO_S) *(size_t)msg_data->addr_cnt);
+
+               if (msg_data->addr_info) {
+                       for (i = 0; i < msg_data->addr_cnt; i++) {
+                               msg_struct_t addr_info = NULL;
+                               addr_info = (msg_struct_t)msg_list_nth_data(addr_list, i);
+
+                               msg_get_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, strNumber, DEF_THREAD_ADDR_LEN);
+                               msg_get_str_value(addr_info, MSG_ADDRESS_INFO_DISPLAYNAME_STR, strName, DEF_THREAD_NAME_LEN);
+                               msg_get_int_value(addr_info, MSG_ADDRESS_INFO_CONTACT_ID_INT, &contact_id);
+                               msg_get_int_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, &addressType);
+
+                               msg_data->addr_info[i] = (PMSG_UI_SETTING_THREAD_ADDR_INFO_S)calloc(1, sizeof(MSG_UI_SETTING_THREAD_ADDR_INFO_S));
+                               if (msg_data->addr_info[i]) {
+                                       msg_data->addr_info[i]->contact_id = contact_id;
+                                       msg_data->addr_info[i]->addr_type = addressType;
+
+                                       if (strlen(strName) > 0) {
+                                               strncpy(msg_data->addr_info[i]->display_name, strName, sizeof(msg_data->addr_info[i]->display_name) - 1);
+                                       } else {
+                                               strncpy(msg_data->addr_info[i]->display_name, "", sizeof(msg_data->addr_info[i]->display_name) - 1);
+                                       }
+
+                                       if (strlen(strNumber) > 0) {
+                                               strncpy(msg_data->addr_info[i]->address, strNumber, sizeof(msg_data->addr_info[i]->address) - 1);
+                                       } else {
+                                               strncpy(msg_data->addr_info[i]->address, "", sizeof(msg_data->addr_info[i]->address) - 1);
+                                       }
+                               }
+                       }
+               }
+       }
+
+       /*body*/
+       const char *pContent = NULL;
+       int msgSize = 0;
+       msg_get_int_value(msgInfo, MSG_MESSAGE_DATA_SIZE_INT, &msgSize);
+       char msgText[msgSize + 1];
+       char subject[DEF_BUF_LEN_S+1] = {0,};
+       memset(msgText, 0, msgSize + 1);
+
+       msg_get_str_value(msgInfo, MSG_MESSAGE_SMS_DATA_STR, msgText, msgSize);
+       msg_get_str_value(msgInfo, MSG_MESSAGE_SUBJECT_STR, subject, DEF_BUF_LEN_S);
+
+       if (msg_data->msg_type >= MSG_TYPE_MMS && msg_data->msg_type <= MSG_TYPE_MMS_NOTI) {
+               if (strlen(subject) > 0)
+                       pContent = subject;
+               else
+                       pContent = msgText;
+       } else {
+               pContent = msgText;
+       }
+
+       if (strlen(pContent) > 0)
+               strncpy(msg_data->msg_body, pContent, sizeof(msg_data->msg_body)-1);
+       else
+               strncpy(msg_data->msg_body, "", sizeof(msg_data->msg_body)-1);
+
+       if (msg_data->msg_time == NULL)
+               msg_data->msg_time = (time_t *)calloc(1, sizeof(time_t));
+
+       if (msg_data->msg_time) {
+               bzero(msg_data->msg_time, sizeof(time_t));
+               msg_get_int_value(msgInfo, MSG_MESSAGE_DISPLAY_TIME_INT, (int *)msg_data->msg_time);
+       }
+       msg_data->bHighlight = false;
+
+       D_LEAVE;
+}
+
+void msg_ui_setting_sim_msg_gl_del(void *data, Evas_Object *obj)
+{
+       D_ENTER;
+
+       PMSG_UI_SETTING_THREAD_MSG_DATA_S del_data = (PMSG_UI_SETTING_THREAD_MSG_DATA_S) data;
+       if (del_data) {
+               if (del_data->msg_time) {
+                       free(del_data->msg_time);
+                       del_data->msg_time = NULL;
+               }
+
+               if (del_data->addr_info) {
+                       int i = 0;
+                       for (i = 0; i < del_data->addr_cnt; i++) {
+                               if (del_data->addr_info[i])
+                                       free(del_data->addr_info[i]);
+                       }
+                       free(del_data->addr_info);
+                       del_data->addr_info = NULL;
+               }
+
+               free(del_data);
+               del_data = NULL;
+       }
+}
+
+static void __msg_ui_setting_update_read_status_worker_end_cb(void *data, Ecore_Thread *thread)
+{
+       D_ENTER;
+       PMSG_SETTING_DATA settingData = NULL;
+       SETTING_THREAD_DATA_S *th_data = data;
+       D_MSG_RETM_IF(th_data == NULL, "Thread Data is NULL");
+
+       settingData = th_data->settingData;
+       D_MSG_RETM_IF(settingData == NULL, "Settings Data is NULL");
+
+       settingData->sim_msg.update_read_status_thread = NULL;
+
+       free(th_data);
+       th_data = NULL;
+
+       D_LEAVE;
+}
+
+static void __msg_ui_setting_update_read_status_worker_feedback_cb(void *data, Ecore_Thread *thread, void *msg_data)
+{
+       D_ENTER;
+       D_LEAVE;
+}
+
+static void __msg_ui_setting_update_read_status_worker_thread(void *data, Ecore_Thread *thread)
+{
+       D_ENTER;
+       PMSG_SETTING_DATA settingData;
+       SETTING_THREAD_DATA_S *th_data = data;
+       msg_error_t err = MSG_SUCCESS;
+       msg_handle_t temp_msgHandle = NULL;
+
+       err = msg_open_msg_handle(&temp_msgHandle);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_open_msg_handle failed, Error=[%d]\n", err);
+               return;
+       }
+
+       if (!th_data) {
+               D_EMSG("No th_data");
+               ecore_thread_feedback(thread, "No th_data");
+               goto FREE_MEM;
+       }
+
+       settingData = th_data->settingData;
+       if (!settingData) {
+               D_EMSG("No settingData");
+               ecore_thread_feedback(thread, "No settingData");
+               goto FREE_MEM;
+       }
+
+       if (settingData->unread_message_list) {
+               int *msg_id = NULL;
+               EINA_LIST_FREE(settingData->unread_message_list, msg_id) {
+                       msg_update_read_status(temp_msgHandle, *msg_id, true);
+               }
+               settingData->unread_message_list = NULL;
+       }
+
+FREE_MEM:
+       if (temp_msgHandle != NULL) {
+               err = msg_close_msg_handle(&temp_msgHandle);
+               if (err != MSG_SUCCESS)
+                       D_EMSG("msg_close_msg_handle error, ret = [%d]", err);
+       }
+       D_LEAVE;
+}
+
+Eina_Bool msg_ui_setting_sim_msg_view_update_read_status(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, FALSE, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (settingData->unread_message_list) {
+               SETTING_THREAD_DATA_S *th_data;
+               th_data = calloc(1, sizeof(SETTING_THREAD_DATA_S));
+               if (th_data == NULL)
+                       return FALSE;
+
+               th_data->settingData = settingData;
+
+               if ((settingData->sim_msg.update_read_status_thread) && (EINA_FALSE == ecore_thread_check(settingData->sim_msg.update_read_status_thread))) {
+                       ecore_thread_cancel(settingData->sim_msg.update_read_status_thread);
+                       settingData->sim_msg.update_read_status_thread = NULL;
+               }
+
+               settingData->sim_msg.update_read_status_thread = ecore_thread_feedback_run(__msg_ui_setting_update_read_status_worker_thread,
+                                                                                                               __msg_ui_setting_update_read_status_worker_feedback_cb,
+                                                                                                               __msg_ui_setting_update_read_status_worker_end_cb,
+                                                                                                               __msg_ui_setting_update_read_status_worker_end_cb,
+                                                                                                               th_data, EINA_TRUE);
+
+               if (!settingData->sim_msg.update_read_status_thread) {
+                       D_EMSG("thread run is failed");
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
+
+static void __msg_ui_setting_list_realized_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!obj || !event_info, "Inparameters are NULL");
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       int count = 0;
+       if (obj == settingData->sim_msg.genlist1) {
+               count = settingData->sim_msg.msg_list1.nCount;
+               settingData->sim_msg.realised1++;
+               if (count == settingData->sim_msg.realised1) {
+                       msg_ui_setting_sim_msg_view_update_read_status(settingData);
+               }
+       } else if (obj == settingData->sim_msg.genlist2) {
+               count = settingData->sim_msg.msg_list2.nCount;
+               settingData->sim_msg.realised2++;
+               if (count == settingData->sim_msg.realised2) {
+                       msg_ui_setting_sim_msg_view_update_read_status(settingData);
+               }
+       } else if (obj == settingData->sim_msg.genlist) {
+               count = settingData->sim_msg.msg_list.nCount;
+               settingData->sim_msg.realised++;
+               if (count == settingData->sim_msg.realised) {
+                       msg_ui_setting_sim_msg_view_update_read_status(settingData);
+               }
+       }
+       return;
+}
+
+static void __msg_ui_setting_sim_msg_title_update(void *data)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       char count_str[DEF_BUF_LEN_S] = {0, };
+
+       switch (settingData->view_type) {
+       case SETTING_SIM_MSG_COPY_TO_PHONE_VIEW:
+       case SETTING_SIM_MSG_DELETE_VIEW:
+               snprintf(count_str, sizeof(count_str), TEXT("IDS_MSG_HEADER_PD_SELECTED_ABB3"), settingData->total_check_cnt);
+               msg_common_naviframe_item_text_update(settingData->navi_frame, count_str, EINA_FALSE);
+               break;
+       case SETTING_SIM_MSG_MAIN_VIEW:
+               msg_common_naviframe_item_text_update(settingData->navi_frame, "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB", EINA_TRUE);
+               break;
+       }
+}
+
+static void __msg_ui_setting_sim_msg_gl_lang_changed(void *data, Evas_Object *obj, void *ei)
+{
+       D_ENTER;
+
+       __msg_ui_setting_sim_msg_title_update(data);
+}
+
+
+Evas_Object *msg_ui_setting_sim_msg_create_genlist(Evas_Object *parent, PMSG_SETTING_DATA settingData, int sim_number)
+{
+       D_ENTER;
+       PMSG_UI_SETTING_THREAD_MSG_DATA_S cur_item = NULL;
+       Evas_Object *genlist;
+       int row = 0;
+       Elm_Genlist_Item_Class *sim_itc = NULL;
+       Elm_Object_Item *genlist_item = NULL;
+       msg_struct_list_s msg_list;
+       genlist = msg_ui_setting_common_create_genlist(parent);
+
+       elm_genlist_decorate_mode_set(genlist, EINA_TRUE);
+       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+
+       evas_object_smart_callback_add(genlist, "realized", __msg_ui_setting_list_realized_cb, settingData);
+       evas_object_smart_callback_add(genlist, "language,changed", __msg_ui_setting_sim_msg_gl_lang_changed, (void *)settingData);
+
+
+       settingData->sim_msg.realised = 0;
+       settingData->sim_msg.genlist = genlist;
+       msg_list = settingData->sim_msg.msg_list;
+       settingData->sim_msg.sim_itc.item_style = "multiline";
+       settingData->sim_msg.sim_itc.func.text_get = msg_ui_setting_sim_msg_gl_text_get;
+       settingData->sim_msg.sim_itc.func.content_get = msg_ui_setting_sim_msg_gl_content_get;
+       settingData->sim_msg.sim_itc.func.state_get = NULL;
+       settingData->sim_msg.sim_itc.func.del = msg_ui_setting_sim_msg_gl_del;
+       sim_itc = &settingData->sim_msg.sim_itc;
+       D_MSG("Only one genlist");
+
+
+       D_MSG("list nCount : %d", msg_list.nCount);
+       for (row = 0; row < msg_list.nCount; row++) {
+               cur_item = (PMSG_UI_SETTING_THREAD_MSG_DATA_S) calloc(1, sizeof(MSG_UI_SETTING_THREAD_MSG_DATA_S));
+
+               D_MSG_RETVM_IF(!cur_item, NULL, "cur_item is NULL. Memory cannot be allocated.");
+
+               msg_ui_setting_set_msg_data(cur_item, msg_list.msg_struct_info[row]);
+
+               genlist_item = elm_genlist_item_append(genlist, sim_itc, cur_item, NULL,
+                                       ELM_GENLIST_ITEM_NONE, msg_ui_setting_sim_msg_gl_sel, (void *)cur_item);
+
+               elm_genlist_item_select_mode_set(genlist_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+
+               if (cur_item->is_read == FALSE)
+                       settingData->unread_message_list = eina_list_append(settingData->unread_message_list, (void *)&cur_item->msg_id);
+       }
+       evas_object_show(genlist);
+       D_LEAVE;
+
+       return genlist;
+}
+
+static void msg_ui_restore_initial_view(PMSG_SETTING_DATA settingData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!settingData, "PMSG_SETTING_DATA is NULL");
+       PMSG_UI_SETTING_THREAD_MSG_DATA_S cur_item = NULL;
+
+       Elm_Object_Item *select_all = NULL;
+       Elm_Object_Item *first = NULL;
+       Evas_Object *genlist = NULL;
+
+       settingData->view_type = SETTING_SIM_MSG_MAIN_VIEW;
+
+       msg_common_naviframe_item_text_update_del_buttons(settingData->navi_frame, "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB", EINA_TRUE);
+       msg_ui_setting_common_title_btn_remove(settingData);
+
+       if (elm_genlist_items_count(settingData->sim_msg.genlist) > 0) {
+               genlist = settingData->sim_msg.genlist;
+
+               /* Remove Select ALL Item. */
+               D_MSG("before select_all");
+
+               settingData->sim_msg.chk_state_sel_all = EINA_FALSE;
+
+               first = elm_genlist_first_item_get(genlist);
+               do {
+                       cur_item = (PMSG_UI_SETTING_THREAD_MSG_DATA_S)elm_object_item_data_get(first);
+                       if (cur_item) {
+                               cur_item->is_check = EINA_FALSE;
+                               evas_object_del(cur_item->chk);
+                       }
+                       elm_genlist_item_update(first);
+                       elm_genlist_item_select_mode_set(first, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+                       first = elm_genlist_item_next_get(first);
+               } while (first != NULL);
+
+               settingData->chk_list = eina_list_free(settingData->chk_list);
+               settingData->total_check_cnt = 0;
+               settingData->check_cnt = 0;
+       }
+}
+
+
+Eina_Bool msg_ui_setting_sim_card_msg_back_btn_cb(void *data, Elm_Object_Item *it)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, EINA_FALSE, "PMSG_SETTING_DATA is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       return __msg_ui_back_to_main_settings_view(settingData);
+}
+
+/* active sim count  is 1. */
+void msg_ui_setting_sim_msg_view_init(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_list_s msg_list;
+       msg_struct_t listCond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+
+       if (!msg_common_is_sim_active()) {
+               msg_release_struct(&listCond);
+               return;
+       }
+
+       msg_set_int_value(listCond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_ALLBOX_ID);
+       msg_set_int_value(listCond, MSG_LIST_CONDITION_MSGTYPE_INT, MSG_TYPE_SMS);
+       msg_set_int_value(listCond, MSG_LIST_CONDITION_SIM_INDEX_INT, 1);
+       msg_set_int_value(listCond, MSG_LIST_CONDITION_STORAGE_ID_INT, MSG_STORAGE_SIM);
+
+       err =  msg_get_message_list2(settingData->msgHandle, listCond, &msg_list);
+       msg_release_struct(&listCond);
+
+       if (err != MSG_SUCCESS && err != MSG_ERR_DB_NORECORD) {
+               D_EMSG("msg_get_message_list2() is failed = %d", err);
+               return;
+       }
+
+       settingData->sim_msg.msg_list = msg_list;
+       settingData->item_cnt = msg_list.nCount;
+       settingData->sim_msg.chk_state_sel_all = EINA_FALSE;
+       settingData->old_total_check_cnt = settingData->total_check_cnt;
+       settingData->total_check_cnt = 0;
+       D_IMSG("msg_list count : %d", settingData->item_cnt);
+}
+
+void msg_ui_setting_dsds_sim_msg_view_init(void *data, int index)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       D_MSG("index = %d", index);
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_list_s msg_list;
+
+       msg_struct_t listCond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+
+       msg_set_int_value(listCond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_ALLBOX_ID);
+       msg_set_int_value(listCond, MSG_LIST_CONDITION_MSGTYPE_INT, MSG_TYPE_SMS);
+       msg_set_int_value(listCond, MSG_LIST_CONDITION_SIM_INDEX_INT, index);
+       msg_set_int_value(listCond, MSG_LIST_CONDITION_STORAGE_ID_INT, MSG_STORAGE_SIM);
+
+       err =  msg_get_message_list2(settingData->msgHandle, listCond, &msg_list);
+       msg_release_struct(&listCond);
+
+       if (err != MSG_SUCCESS && err != MSG_ERR_DB_NORECORD) {
+               D_EMSG("msg_get_message_list2() is failed = %d", err);
+               return;
+       }
+
+       if (index == 1) {
+               settingData->sim_msg.msg_list1 = msg_list;
+               settingData->item_cnt1 = msg_list.nCount;
+               settingData->sim_msg.chk_state_sel_all1 = EINA_FALSE;
+               settingData->old_total_check_cnt = settingData->total_check_cnt;
+               settingData->total_check_cnt = 0;
+               settingData->old_check_cnt1 = settingData->check_cnt1;
+               settingData->check_cnt1 = 0;
+               D_IMSG("msg_list1 count : %d", settingData->item_cnt1);
+       } else {
+               settingData->sim_msg.msg_list2 = msg_list;
+               settingData->item_cnt2 = msg_list.nCount;
+               settingData->sim_msg.chk_state_sel_all2 = EINA_FALSE;
+               settingData->total_check_cnt = 0;
+               settingData->old_check_cnt2 = settingData->check_cnt2;
+               settingData->check_cnt2 = 0;
+               D_IMSG("msg_list2 count : %d", settingData->item_cnt2);
+       }
+
+}
+
+void msg_ui_setting_sim_msg_genlists_destroy(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (settingData->sim_msg.genlist) {
+               evas_object_del(settingData->sim_msg.genlist);
+               settingData->sim_msg.genlist = NULL;
+       }
+
+       if (settingData->sim_msg.genlist1) {
+               evas_object_del(settingData->sim_msg.genlist1);
+               settingData->sim_msg.genlist1 = NULL;
+       }
+
+       if (settingData->sim_msg.genlist2) {
+               evas_object_del(settingData->sim_msg.genlist2);
+               settingData->sim_msg.genlist2 = NULL;
+       }
+
+}
+
+
+void msg_ui_setting_sim_msg_view_destroy(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       if (settingData->sim_msg.genlist) {
+               evas_object_del(settingData->sim_msg.genlist);
+               settingData->sim_msg.genlist = NULL;
+       }
+
+       if (settingData->sim_msg.genlist1) {
+               evas_object_del(settingData->sim_msg.genlist1);
+               settingData->sim_msg.genlist1 = NULL;
+       }
+
+       if (settingData->sim_msg.genlist2) {
+               evas_object_del(settingData->sim_msg.genlist2);
+               settingData->sim_msg.genlist2 = NULL;
+       }
+
+       if (settingData->sim_msg.layout) {
+               evas_object_del(settingData->sim_msg.layout);
+               settingData->sim_msg.layout = NULL;
+       }
+
+       if (settingData->sim_msg.nocontens) {
+               evas_object_del(settingData->sim_msg.nocontens);
+               settingData->sim_msg.nocontens = NULL;
+       }
+
+       if (settingData->sim_msg.box) {
+               evas_object_del(settingData->sim_msg.box);
+               settingData->sim_msg.box = NULL;
+       }
+
+       if ((settingData->sim_msg.update_read_status_thread) && (EINA_FALSE == ecore_thread_check(settingData->sim_msg.update_read_status_thread))) {
+               ecore_thread_cancel(settingData->sim_msg.update_read_status_thread);
+               settingData->sim_msg.update_read_status_thread = NULL;
+       }
+
+       return;
+}
+
+void msg_ui_setting_sim_msg_view_show(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Evas_Object *nocontents = NULL;
+       Evas_Object *genlist = NULL;
+       msg_struct_list_s msg_list;
+
+       if (settingData->sim_current_tab == 1) {
+               msg_list =  settingData->sim_msg.msg_list1;
+               genlist = settingData->sim_msg.genlist1;
+               evas_object_hide(settingData->sim_msg.genlist2);
+               evas_object_hide(settingData->sim_msg.genlist);
+       } else if (settingData->sim_current_tab == 2) {
+               msg_list =  settingData->sim_msg.msg_list2;
+               genlist = settingData->sim_msg.genlist2;
+               evas_object_hide(settingData->sim_msg.genlist1);
+               evas_object_hide(settingData->sim_msg.genlist);
+       } else { /* if (settingData->sim_current_tab == 0) */
+               msg_list =  settingData->sim_msg.msg_list;
+               genlist = settingData->sim_msg.genlist;
+               evas_object_hide(settingData->sim_msg.genlist1);
+               evas_object_hide(settingData->sim_msg.genlist2);
+       }
+
+       if (msg_list.nCount == 0) {
+               if (settingData->sim_msg.nocontens != NULL) {
+                       evas_object_del(settingData->sim_msg.nocontens);
+                       settingData->sim_msg.nocontens = NULL;
+               }
+               nocontents = msg_ui_setting_common_create_no_content_view(settingData->navi_frame, "IDS_MSG_NPBODY_NO_MESSAGES_ON_SIM_CARD");
+               settingData->sim_msg.nocontens = nocontents;
+               evas_object_hide(genlist);
+               elm_box_unpack_all(settingData->sim_msg.box);
+               elm_box_pack_end(settingData->sim_msg.box, nocontents);
+               evas_object_show(settingData->sim_msg.nocontens);
+       } else {
+               evas_object_hide(settingData->sim_msg.nocontens);
+               elm_object_part_content_unset(settingData->sim_msg.layout, "elm.swallow.content");
+               elm_object_part_content_set(settingData->sim_msg.layout, "elm.swallow.content", settingData->sim_msg.box);
+               evas_object_show(genlist);
+
+               elm_box_unpack_all(settingData->sim_msg.box);
+               elm_box_pack_end(settingData->sim_msg.box, genlist);
+       }
+}
+
+void msg_ui_setting_sim_msg_update_view(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       msg_ui_setting_sim_msg_genlists_destroy(settingData);
+
+       msg_ui_setting_sim_msg_view_init(settingData);
+       settingData->sim_msg.genlist = msg_ui_setting_sim_msg_create_genlist(settingData->navi_frame, settingData, 0);
+       msg_ui_setting_sim_msg_view_show(settingData);
+}
+
+void __msg_ui_setting_sim_view_change_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+
+       Elm_Object_Item *it = elm_toolbar_selected_item_get(obj);
+
+       if (it == settingData->text_msg.tabbar_btn[0]) {
+               settingData->sim_current_tab = 1;
+               D_IMSG("msg_list1 count : %d", settingData->item_cnt1);
+               msg_ui_setting_sim_msg_view_show(settingData);
+       } else if (it == settingData->text_msg.tabbar_btn[1]) {
+               settingData->sim_current_tab = 2;
+               D_IMSG("msg_list2 count : %d", settingData->item_cnt2);
+               msg_ui_setting_sim_msg_view_show(settingData);
+       } else {
+               D_MSG("No messages, sim view invalid");
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_setting_create_sim_card_msg_main(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!data, "PMSG_SETTING_DATA is NULL");
+
+       PMSG_SETTING_DATA settingData = (PMSG_SETTING_DATA)data;
+       Evas_Object *layout = NULL;
+
+       settingData->view_type = SETTING_SIM_MSG_MAIN_VIEW;
+       D_MSG("setting view type : %d", settingData->view_type);
+
+       msg_ui_setting_common_get_time_pattern();
+
+       layout = msg_ui_setting_common_create_layout(settingData->navi_frame);
+       settingData->sim_msg.layout = layout;
+       Evas_Object *box = NULL;
+       box = elm_box_add(settingData->navi_frame);
+       settingData->sim_msg.box = box;
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(box);
+       elm_object_part_content_set(settingData->sim_msg.layout, "elm.swallow.content", box);
+
+       msg_ui_setting_common_ctxpopup_remove(settingData);
+
+       settingData->navi_it = msg_common_naviframe_item_with_title_and_back_arrow_create(settingData->navi_frame, "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB", layout, EINA_TRUE);
+
+       msg_ui_setting_sim_msg_view_init(settingData);
+       settingData->sim_msg.genlist = msg_ui_setting_sim_msg_create_genlist(settingData->navi_frame, settingData, 0);
+       msg_ui_setting_sim_msg_view_show(settingData);
+       settingData->sim_current_tab = 0;
+
+       /*  create more button */
+       Evas_Object *more_btn = elm_button_add(settingData->navi_frame);
+       settingData->more_btn = more_btn;
+       if (more_btn) {
+               elm_object_style_set(more_btn, "naviframe/more/default");
+               evas_object_smart_callback_add(more_btn, "clicked", __msg_ui_setting_sim_msg_create_ctxpopup, settingData);
+               elm_object_item_part_content_set(settingData->navi_it, "toolbar_more_btn", more_btn);
+       }
+
+       elm_naviframe_item_pop_cb_set(settingData->navi_it, msg_ui_setting_sim_card_msg_back_btn_cb, (void *)settingData);
+}
diff --git a/setting/theme/setting_theme.edc b/setting/theme/setting_theme.edc
new file mode 100755 (executable)
index 0000000..2174f35
--- /dev/null
@@ -0,0 +1,3058 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#define GENLIST_DIVIDER_COLOR 185 184 178 255
+#define GENLIST_TREESIZE_DEFAULT 22
+
+#define EDITFIELD_TITLE_SIZE 32
+#define EDITFIELD_TITLE_COLOR 59 115 182 255
+#define EDITFIELD_DEFAULT_MINH_INC 112
+#define EDITFIELD_DEFAULT_TOP1_MULTI_INC 45
+#define EDITFIELD_DEFAULT_TOP2_INC 6
+#define EDITFIELD_DEFAULT_LEFT1_INC 0
+#define EDITFIELD_DEFAULT_LEFT2_INC 0
+#define EDITFIELD_DEFAULT_RIGHT1_ERASER_SHOW_INC 56
+#define EDITFIELD_DEFAULT_RIGHT2_INC 4
+#define EDITFIELD_DEFAULT_BOTTOM1_MULTI_INC 5
+#define EDITFIELD_DEFAULT_BOTTOM2_MULTI_INC 12
+#define EDITFIELD_DEFAULT_ERASER_MINW_INC 48
+#define EDITFIELD_DEFAULT_ERASER_MINH_INC 48
+#define EDITFIELD_DEFAULT_ERASER_EVENT_MINW_INC 48
+#define EDITFIELD_DEFAULT_ERASER_EVENT_MINH_INC 70
+
+//****************************************************************************//
+// Tabbar
+//****************************************************************************//
+#define TABBAR_TWO_ITEMS_SIZE_INC 240 0;
+#define TABBAR_THREE_ITEMS_SIZE_INC 160 0;
+#define TABBAR_FOUR_ITEMS_SIZE_INC 120 0;
+#define TABBAR_SCROLLABLE_ITEMS_SIZE_INC 135 0;
+#define TABBAR_LANDSCAPE_TWO_ITEMS_SIZE_INC 400 0;
+#define TABBAR_LANDSCAPE_THREE_ITEMS_SIZE_INC  267 0;
+#define TABBAR_LANDSCAPE_FOUR_ITEMS_SIZE_INC 200 0;
+#define TABBAR_LANDSCAPE_SCROLLABLE_ITEMS_SIZE_INC 175 0;
+#define TABBAR_SELECTED_LINE_SIZE_INC 0 3
+#define TABBAR_TEXT_CENTER_PADDING_SIZE_INC 0 1
+#define TABBAR_TEXT_LEFT_TOP_PADDING_SIZE_INC 8 18
+#define TABBAR_TEXT_LEFT_RIGHT_PADDING_SIZE_INC 8 0
+#define TABBAR_TEXT_RIGHT_BOTTOM_PADDING_SIZE_INC 8 18
+#define TABBAR_ICON_TEXT_LEFT_TOP_PADDING_SIZE_INC 8 14
+#define TABBAR_ICON_TEXT_RIGHT_BOTTOM_PADDING_SIZE_INC 8 14
+#define TABBAR_ICON_TEXT_LAND_LEFT_TOP_PADDING_SIZE_INC 8 20
+#define TABBAR_ICON_TEXT_LAND_RIGHT_BOTTOM_PADDING_SIZE_INC 8 14
+#define TABBAR_ICON_SIZE_INC_32_32 32 32
+#define TABBAR_ICON_TEXT_PAD_INC 15 32
+#define TABBAR_ICON_RECT_SIZE_INC 61 46
+#define TABBAR_TEXT_TEXT_SIZE_INC 0 37
+#define TABBAR_ICON_TEXT_TEXT_SIZE_INC 0 31
+#define TABBAR_ICON_TEXT_LAND_TEXT_SIZE_INC 0 39
+//Navigation style
+#define TOOLBAR_NAVI_HEIGHT_INC 51
+#define TOOLBAR_NAVI_PADDING_INC 15
+#define TOOLBAR_NAVI_DIVIDER_INC 42
+//processing bar
+#define POPUP_PROCESSING_SWALLOW_VIEW_LAYOUT_MIN_INC 36 36
+#define POPUP_PROCESSING_SWALLOW_VIEW_LAYOUT_MAX_INC 36 36
+#define POPUP_PROCESSING_SWALLOW_VIEW_LAYOUT_PADDING_AFTER_INC 15 90
+#define POPUP_PROCESSING_SWALLOW_VIEW_LAYOUT_TEXT_MIN_INC 0 90
+#define POPUP_PROCESSING_VIEW_LAYOUT_BG_MIN_INC 0 90
+#define POPUP_CONTENT_DEFAULT_PADDING_TOP_MIN_INC 27
+#define POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 15
+#define POPUP_CONTENT_DEFAULT_PADDING_RIGHT_MIN_INC 15
+#define POPUP_CONTENT_DEFAULT_PADDING_BOTTOM_MIN_INC 27
+#define POPUP_TEXT_FONT_SIZE1 30
+
+
+/************************* SIM BTN STYLE **************************/
+
+#define STYLE_SIM_BUTTON(grp_name, string, sim_color) \
+       group { name: "elm/button/base/"grp_name; \
+               images { \
+                       image: "masking_message_list.png" COMP; \
+               } \
+               script { \
+                       public button_state = 0; \
+                       public back_to_unselected() { \
+                               set_state(PART:"background", "default", 0.0); \
+                               set_state(PART:"elm.text", "default", 0.0); \
+                               set_state(PART:"icon_bg", "default", 0.0); \
+                               set_state(PART:"select_indicator", "default", 0.0); \
+                       } \
+                       public back_to_selected() { \
+                               set_state(PART:"background", "default", 0.0); \
+                               set_state(PART:"elm.text", "selected", 0.0); \
+                               set_state(PART:"icon_bg", "selected", 0.0); \
+                               set_state(PART:"select_indicator", "selected", 0.0); \
+                       } \
+               } \
+               parts { \
+                    part { name: "background"; \
+                               type: RECT; \
+                               mouse_events: 1; \
+                               scale: 1; \
+                               description { state: "default" 0.0; \
+                                       visible: 1; \
+                                       color_class: B0514; \
+                               } \
+                               description { state: "pressed" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 1; \
+                                       color_class: B0514P; \
+                               } \
+                               description { state: "disabled" 0.0; \
+                                       inherit: "default" 0.0; \
+                               } \
+                               description { state: "focused" 0.0; \
+                                       inherit: "default" 0.0; \
+                               } \
+                               description { state: "unfocused" 0.0; \
+                                       inherit: "default" 0.0; \
+                               } \
+                       } \
+                       part { name: "icon_part"; \
+                               type: RECT; \
+                               description { state: "default" 0.0; \
+                                       visible: 1; \
+                                       align: 1.0 0.5; \
+                                       max: 46 46; \
+                                       rel1 { relative: 0 ((72-46)/2)/72; to: "background";} \
+                                       rel2 { relative: 0 (((72-46)/2)+46)/72; to: "txt_padding";} \
+                                       color: 0 0 0 0;\
+                                       visible: 1; \
+                               } \
+                       } \
+                       part { name: "icon_bg"; \
+                               description { state: "default" 0.0; \
+                                       visible: 1; \
+                                       image { \
+                                               normal: "masking_message_list.png"; \
+                                       } \
+                                       align: 0.5 0.5; \
+                                       rel1 { relative: 0 0; to: "icon_part";} \
+                                       rel2 { relative: 1 1; to: "icon_part";} \
+                                       aspect_preference: SOURCE; \
+                                       color_class: B052L6D;\
+                                       visible: 1; \
+                               } \
+                               description { state: "pressed" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       color_class: B052L6P;\
+                               } \
+                               description { state: "selected" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       color_class: B052L6S;\
+                               } \
+                       } \
+                       part { name: "icon_container"; \
+                               type: SWALLOW; \
+                               description { state: "default" 0.0; \
+                                       visible: 1; \
+                                       align: 0.5 0.5; \
+                                       rel1 { relative: ((46-32)/2)/46 ((46-32)/2)/46; to: "icon_part";offset : 1 0;} \
+                                       rel2 { relative: ((46-32)/2+32)/46 ((46-32)/2+32)/46; to: "icon_part";offset : 1 0;} \
+                                       visible: 1; \
+                               } \
+                       } \
+                       part { name: "txt_padding"; \
+                               type: SPACER; \
+                               scale: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       fixed: 1 0; \
+                                       min: 18 0; \
+                                       align: 1 0; \
+                                       rel1 { relative: 0 0; to: "elm.text";} \
+                                       rel2 { relative: 0 1; to_x: "elm.text";to_y: "background"; } \
+                               } \
+                       } \
+                       part { name: "elm.text"; \
+                               type: TEXT; \
+                               mouse_events: 0; \
+                               scale: 1; \
+                               description { state: "default" 0.0; \
+                                       visible: 1; \
+                                       fixed: 1 1; \
+                                       rel1{relative: (0.5+((46+18)/(240*2))) 18/72; to: "background";} \
+                                       rel2{relative: (0.5+((46+18)/(240*2))) (18+36)/72; to:"background";} \
+                                       text { \
+                                               text_class: "label"; \
+                                               min: 1 1; \
+                                               align: 0.0 0.5; \
+                                       } \
+                                       color_class: T1117D; \
+                               } \
+                               description { state: "visible" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 1; \
+                               } \
+                               description { state: "pressed" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 1; \
+                                       text { \
+                                               text_class: "label"; \
+                                       } \
+                                       color_class: T1117P; \
+                                       min: 1 1; \
+                               } \
+                               description { state: "selected" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 1; \
+                                       text { \
+                                               text_class: "label"; \
+                                       } \
+                                       color_class: T1117S; \
+                                       min: 1 1; \
+                               } \
+                               description { state: "disabled" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       text { \
+                                               text_class: "label"; \
+                                       } \
+                                       color_class: T1117D; \
+                               } \
+                               description { state: "disabled_visible" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       text { \
+                                               text_class: "label"; \
+                                       } \
+                                       color_class: T1117D; \
+                                       visible: 1; \
+                               } \
+                               description { state: "focused" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 1; \
+                                       min: 1 1; \
+                               } \
+                               description { state: "unfocused" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 1; \
+                                       min: 1 1; \
+                               } \
+                       } \
+                       part { name: "select_indicator"; \
+                               type: RECT; \
+                               description { state: "default" 0.0; \
+                                       visible: 1; \
+                                       align: 0.5 0.5; \
+                                       rel1{relative: 0 (18+36+1)/72; to_x: "elm.text"; to_y: "background";} \
+                                       rel2{relative: 1 (18+36+1+3)/72; to_x: "elm.text"; to_y:"background";} \
+                                       color_class: "B0514S";\
+                                       visible: 0; \
+                               } \
+                               description { state: "pressed" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 0; \
+                               } \
+                               description { state: "selected" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 1; \
+                               } \
+                       } \
+                       part { name: "over2"; \
+                               type: RECT; \
+                               mouse_events: 1; \
+                               repeat_events: 1; \
+                               ignore_flags: ON_HOLD; \
+                               description { state: "default" 0.0; \
+                                       color: 0 0 0 0; \
+                                       rel1 { relative: 0.25 0.1; } \
+                                       rel2 { relative: 0.75 0.9; } \
+                               } \
+                       } \
+                       part { name: "over3"; \
+                               type: RECT; \
+                               mouse_events: 1; \
+                               repeat_events: 1; \
+                               description { state: "default" 0.0; \
+                                       color: 0 0 0 0; \
+                                       rel1 { relative: 0.25 0.1; } \
+                                       rel2 { relative: 0.75 0.9; } \
+                               } \
+                       } \
+                       part { name: "disabler"; \
+                          type: RECT; \
+                          description { state: "default" 0.0; \
+                                 rel1 { relative: 0.25 0.1; } \
+                                 rel2 { relative: 0.75 0.9; } \
+                             color: 0 0 0 0; \
+                             visible: 0; \
+                          } \
+                          description { state: "disabled" 0.0; \
+                             inherit: "default" 0.0; \
+                             visible: 1; \
+                          } \
+                       } \
+               } \
+               programs { \
+                       program { name: "button_pressed"; \
+                               signal: "mouse,down,1"; \
+                               source: "over2"; \
+                               action: STATE_SET "pressed" 0.0; \
+                               target: "background"; \
+                               target: "elm.text"; \
+                               target: "icon_bg"; \
+                               target: "select_indicator"; \
+                       } \
+                       program { name: "button_unpress"; \
+                               signal: "mouse,up,1"; \
+                               source: "over3"; \
+                               script { \
+                                       if (get_int(button_state) == 0) \
+                                               back_to_unselected(); \
+                                       else \
+                                               back_to_selected(); \
+                               } \
+                       } \
+                       program { name: "button_clicked"; \
+                               signal: "mouse,clicked,1"; \
+                               source: "over2"; \
+                               action: SIGNAL_EMIT "elm,action,click" ""; \
+                               after: "play_sound"; \
+                       } \
+                       program { name: "play_sound"; \
+                               script { \
+                                       run_program(PROGRAM:"touch_sound"); \
+                                       run_program(PROGRAM:"selected"); \
+                               } \
+                       } \
+                       program { name: "touch_sound"; \
+                               action: RUN_PLUGIN "touch_sound"; \
+                       } \
+                       program { name: "disable"; \
+                               signal: "elm,state,disabled"; \
+                               source: "elm"; \
+                               action: STATE_SET "disabled" 0.0; \
+                               target: "background"; \
+                               target: "elm.text"; \
+                               target: "disabler"; \
+                       } \
+                       program { name: "enable"; \
+                               signal: "elm,state,enabled"; \
+                               source: "elm"; \
+                               action: STATE_SET "default" 0.0; \
+                               target: "background"; \
+                               target: "elm.text"; \
+                               target: "select_indicator"; \
+                               target: "disabler"; \
+                       } \
+                       program { name: "action_focus"; \
+                               signal: "elm,action,focus_highlight,show"; \
+                               source: "elm"; \
+                               action: STATE_SET "focused" 0.0; \
+                               target: "background"; \
+                               target: "elm.text"; \
+                       } \
+                       program { name: "action_unfocus"; \
+                               signal: "elm,action,focus_highlight,hide"; \
+                               source: "elm"; \
+                               action: STATE_SET "unfocused" 0.0; \
+                               target: "background"; \
+                               target: "elm.text"; \
+                       } \
+                       program { name: "selected"; \
+                               signal: "selected"; \
+                               source: ""; \
+                               script { \
+                                       set_int(button_state, 1); \
+                               } \
+                               action: STATE_SET "selected" 0.0; \
+                               target: "select_indicator"; \
+                               target: "elm.text"; \
+                               target: "icon_bg"; \
+                       } \
+                       program { name: "unselected"; \
+                               signal: "unselected"; \
+                               source: ""; \
+                               script { \
+                                       set_int(button_state, 0); \
+                               } \
+                               action: STATE_SET "default" 0.0; \
+                               target: "select_indicator"; \
+                               target: "elm.text"; \
+                               target: "icon_bg"; \
+                       } \
+               } \
+       }
+
+collections
+{
+       base_scale: 2.6;
+
+       plugins {
+               plugin {
+                       name: "touch_sound";
+                       source: "feedback";
+                       param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+               }
+       }
+
+/******************************* SIM card msg last status item ******************************/
+
+#define BEAT_GENLIST_PART_BASE(param_item_height) \
+       part { name : "base"; \
+               type : RECT; \
+               repeat_events : 1; \
+               scale : 1; \
+               description \
+               { \
+                       state : "default" 0.0; \
+                       min : 0 param_item_height; \
+                       color: 49 63 102 255; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_PADDING_TOP( param_padding_size ) \
+       part { name: "elm.padding.top"; \
+               type: SPACER; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       min: 0 param_padding_size; \
+                       fixed: 0 1; \
+                       rel2.relative: 1.0 0.0; \
+                       align: 0.0 0.0; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_PADDING_BOTTOM( param_padding_size ) \
+       part { name: "elm.padding.bottom"; \
+               type: SPACER; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       min: 0 param_padding_size; \
+                       fixed: 0 1; \
+                       rel1.relative: 0.0 1.0; \
+                       align: 0.0 1.0; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_PADDING_LEFT( param_padding_size ) \
+       part { name: "elm.padding.left"; \
+               type: SPACER; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       min: param_padding_size 0; \
+                       fixed: 1 0; \
+                       rel2.relative: 0.0 1.0; \
+                       align: 0.0 0.0; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_PADDING_RIGHT( param_padding_size ) \
+       part { name: "elm.padding.right"; \
+               type: SPACER; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: param_padding_size 0; \
+                       fixed: 1 0; \
+                       rel1.relative: 1.0  0.0; \
+                       align: 1.0 0.0; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_DISCLIP \
+       part { name: "disclip"; \
+               type: RECT; \
+               description { state: "default" 0.0; \
+                       rel1.to: "base"; \
+                       rel2.to: "base"; \
+               } \
+               description { state: "disabled" 0.0; \
+                       inherit: "default" 0.0; \
+                       color: 255 255 255 64; \
+               } \
+       }
+
+       styles {
+               style { name: "textblock_style_status_item";
+                       base: "font=Tizen:style=Bold font_size=30 align=center color=#FFFFFF wrap=word text_class=label";
+                       tag:    "br" "\n";
+                       tag:    "hilight" "+ font=Tizen:style=Bold";
+                       tag:    "b" "+ font=Tizen:style=Bold";
+                       tag:    "tab" "\t";
+               }
+       }
+
+/******************************* Block number custom style ******************************/
+#define DIALOGUE_EDITFIELD_PADDING_SIZE_LEFT   16+10
+#define DIALOGUE_EDITFIELD_PADDING_SIZE_RIGHT  16+10
+#define GENLIST_PADDING_SIZE_DEFAULT            16
+#define GENLIST_CONTACT_BTN_RIGHT_PADDING_SIZE         36
+#define GENLIST_ENTRY_RIGHT_PADDING_SIZE               28
+
+#define GENLIST_BTN_02_SIZE               72
+#define GENLIST_HEIGHT_2LINE_SUB          45
+#define GENLIST_PART_LIST_LINE_HEIGHT     1
+#define GENLIST_LIST_SUB_TEXT_SIZE                          32
+
+#define GENLIST_LIST_BG_COLOR                       8 8 8 255
+#define GENLIST_LIST_PRESS_COLOR                    33 49 99 255
+#define GENLIST_LIST_DIM_COLOR                      8 8 8 255
+#define GENLIST_LIST_LINE1_COLOR                    8 8 8 255
+#define GENLIST_LIST_LINE2_COLOR                    64 64 64 255
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR             67 67 67 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR                       250 250 250 255
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR                 110 111 118 255
+
+#define GENLIST_PART_RECT(NAME, DESCRIPION) \
+       part { name: NAME; \
+               scale: 1; \
+               type: RECT; \
+               DESCRIPION \
+       }
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+       part { name: NAME; \
+               scale: 1; \
+               type: IMAGE; \
+               DESCRIPION \
+       }
+#define GENLIST_PART_SPACER(NAME, DESCRIPION) \
+       part { name: NAME; \
+               scale: 1; \
+               mouse_events: 0; \
+               type: SPACER; \
+               DESCRIPION \
+       }
+#define GENLIST_PART_EXPANDED_PAD \
+       part { name: "elm.swallow.pad"; \
+               type: SWALLOW; \
+               scale: 1; \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       visible: 0; \
+                       min: 0 0; \
+                       fixed: 1 0; \
+                       align: 0.0 0.5; \
+                       rel1.to: "base"; \
+                       rel2.to: "base"; \
+                       rel2.relative: 0.0 1.0; \
+               } \
+       }
+#define GENLIST_DESCRIPTION_DECORATE_PADDING \
+       description { state: "decorate" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 0; \
+               max: 0 0; \
+       }
+
+#define GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+       description { state: "decorate_reorder" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 0; \
+               max: 0 0; \
+       }
+
+#define GENLIST_DESCRIPTION_REORDER_PADDING \
+       description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               min: 32 0; \
+               max: 32 -1; \
+       }
+#define GENLIST_PART_ICON(NAME, DESCRIPION) \
+       part { name: NAME; \
+               scale: 1; \
+               type: SWALLOW; \
+               DESCRIPION \
+       }
+// --------------------------
+// left |--> HERE  <--| right
+// --------------------------
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+       description { state: "default" 0.0; \
+               rel1 { \
+                       relative: 1 0; \
+                       to_x: left; \
+                       to_y: "base"; \
+               } \
+               rel2 { \
+                       relative: 0 1; \
+                       to_x: right; \
+                       to_y: "base"; \
+               } \
+               param \
+       }
+// ---------------------
+// left |--> HERE
+// ---------------------
+#define GENLIST_DESCRIPTION_L( left, param ) \
+       description { state: "default" 0.0; \
+               align: 0 0.5; \
+               fixed: 1 0; \
+               rel1 { \
+                       relative: 1 0; \
+                       to_x: left; \
+                       to_y: "base"; \
+               } \
+               rel2 { \
+                       relative: 1 1; \
+                       to_x: left; \
+                       to_y: "base"; \
+               } \
+               param \
+       }
+// ---------------------
+//   HERE  <--| right
+// ---------------------
+#define GENLIST_DESCRIPTION_R( right, param ) \
+       description { state: "default" 0.0; \
+               align: 1 0.5; \
+               fixed: 1 0; \
+               rel1 { \
+                       relative: 0 0; \
+                       to_x: right; \
+                       to_y: "base"; \
+               } \
+               rel2 { \
+                       relative: 0 1; \
+                       to_x: right; \
+                       to_y: "base"; \
+               } \
+               param \
+       }
+//       |   top  |
+// ---------------------
+// left |  HERE  | right
+// ---------------------
+//       | bottom |
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+       description { state: "default" 0.0; \
+               rel1 { \
+                       relative: 1 1; \
+                       to_x: left; \
+                       to_y: top; \
+               } \
+               rel2 { \
+                       relative: 0 0; \
+                       to_x: right; \
+                       to_y: bottom; \
+               } \
+               param \
+               align: 0.0 0.0; \
+       }
+//       |   top  |
+// ---------------------
+// left |  HERE  | right
+#define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
+       description { state: "default" 0.0; \
+               align: 0.5 0; \
+               rel1 { \
+                       relative: 1 1; \
+                       to_x: left; \
+                       to_y: top; \
+               } \
+               rel2 { \
+                       relative: 0 1; \
+                       to_x: right; \
+                       to_y: top; \
+               } \
+               param \
+       }
+//   |  top     |
+// -----------------
+//  |  HERE  <--| right
+// -----------------
+//  | bottom   |
+#define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \
+       description { state: "default" 0.0;\
+               align: 1 0.5; \
+               rel1 { \
+                       relative: 0 1; \
+                       to_x: right; \
+                       to_y: top; \
+               } \
+               rel2 { \
+                       relative: 0 0; \
+                       to_x: right; \
+                       to_y: bottom; \
+               } \
+               param \
+       }
+// ------------------
+// |  PART == HERE  |
+// ------------------
+#define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \
+       description { state: "default" 0.0;\
+               rel1 { \
+                       relative: 0 0; \
+                       to: PART; \
+               } \
+               rel2 { \
+                       relative: 1 1; \
+                       to: PART; \
+               } \
+               PARAM \
+       }
+
+#define GENLIST_PART_EDITBTN \
+       GENLIST_PART_SPACER("elm.padding.edit.right", \
+               description { state: "default" 0.0; \
+                       fixed: 1 0; \
+                       align: 1.0 0.5; \
+                       rel1.relative: 1 0; \
+                       min: GENLIST_CONTACT_BTN_RIGHT_PADDING_SIZE 0; \
+                       max: GENLIST_CONTACT_BTN_RIGHT_PADDING_SIZE -1; \
+               } \
+       ) \
+       GENLIST_PART_ICON("elm.icon.edit", \
+               GENLIST_DESCRIPTION_R("elm.padding.edit.right", \
+                       visible: 0; \
+               ) \
+               description { state: "editmode" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+                       fixed: 1 1; \
+                       align: 1 1; \
+                       rel1 { \
+                               relative: 0 0; \
+                               to_x: "elm.padding.edit.right"; \
+                               to_y: "base"; \
+                       } \
+                       rel2 { \
+                               relative: 0 0; \
+                               to_x: "elm.padding.edit.right"; \
+                               to_y: "elm.padding.bottom"; \
+                       } \
+            rel2.offset: 0 1; \
+                       min: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE; \
+                       max: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE; \
+               } \
+       )
+
+#define GENLIST_PART_BG_NORMAL_OFF \
+       GENLIST_PART_RECT("bg_clip", \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "decorate" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "reorder" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "decorate_reorder" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+       ) \
+       GENLIST_PART_RECT("bg", \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "selected" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "disabled" 0.0; \
+                       visible: 0; \
+               } \
+       ) \
+       GENLIST_PART_RECT("bg_reorder_clip", \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "reorder" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "decorate_reorder" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "decorate" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "reorder_flip" 0.0; \
+                       visible: 0; \
+               } \
+       ) \
+       GENLIST_PART_IMAGE("bg_reorder", \
+               mouse_events: 0; \
+               description {state: "default" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "selected" 0.0; { \
+                       visible: 0; \
+               } \
+               description { state: "flipped" 0.0; { \
+                       visible: 0; \
+               } \
+       )
+#define GENLIST_PART_BOTTOM_LINE_OFF \
+       GENLIST_PART_RECT("bottom_line", \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       color: 0 0 0 0; \
+               } \
+       ) \
+       GENLIST_PART_RECT("bottom_line2", \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       color: 0 0 0 0; \
+               } \
+       )
+#define GENLIST_PART_BG_DIALOGUE \
+       GENLIST_PART_RECT("2depth", \
+               description { state: "default" 0.0; \
+                       visible: 0;\
+               } \
+               description { state: "2depth" 0.0; \
+                       visible: 0; \
+               } \
+       ) \
+       GENLIST_PART_SPACER("bg_dialogue_left", \
+               description { state: "default" 0.0; \
+                       min: 16 0; \
+                       max: 16 -1; \
+                       fixed: 1 0; \
+                       align: 0 0.5; \
+                       rel2.relative: 0 1; \
+               } \
+       ) \
+       GENLIST_PART_SPACER("bg_dialogue_right", \
+               description { state: "default" 0.0; \
+                       min: 16 0; \
+                       max: 16 -1; \
+                       fixed: 1 0; \
+                       align: 1.0 0.5; \
+                       rel1.relative: 1 0; \
+               } \
+               description { state: "editmode" 0.0; \
+                       inherit: "default" 0.0; \
+                       min: (GENLIST_PADDING_SIZE_DEFAULT) 0; \
+                       max: (GENLIST_PADDING_SIZE_DEFAULT) 0; \
+               } \
+       ) \
+       GENLIST_PART_IMAGE("bg_dialogue", \
+               insert_after: "base"; \
+               GENLIST_DESCRIPTION_LR("bg_dialogue_left", "bg_dialogue_right", \
+                       image { \
+                               normal: "00_list_group_bg.#.png"; \
+                       } \
+                       color_class: "B0217L1"; \
+               ) \
+               description { state: "selected" 0.0; \
+                       inherit: "default" 0.0; \
+                       image { \
+                               normal: "00_list_group_bg_press.png"; \
+                               border: 17 17 8 8; \
+                               border_scale: 1; \
+                       } \
+               } \
+               description { state: "top" 0.0; \
+                       inherit: "default" 0.0; \
+                       image { \
+                               normal: "00_list_group_bg_top.#.png"; \
+                       } \
+               } \
+               description { state: "top_selected" 0.0; \
+                       inherit: "default" 0.0; \
+                       image { \
+                               normal: "00_list_group_bg_top_press.png"; \
+                               border: 17 17 8 8; \
+                               border_scale: 1; \
+                       } \
+               } \
+               description { state: "center" 0.0; \
+                       inherit: "default" 0.0; \
+                       image { \
+                               normal: "00_list_group_bg_center.#.png"; \
+                       } \
+               } \
+               description { state: "center_selected" 0.0; \
+                       inherit: "default" 0.0; \
+                       image { \
+                               normal: "00_list_group_bg_center_press.png"; \
+                               border: 17 17 8 8; \
+                               border_scale: 1; \
+                       } \
+               } \
+               description { state: "bottom" 0.0; \
+                       inherit: "default" 0.0; \
+                       image { \
+                               normal: "00_list_group_bg_bottom.#.png"; \
+                       } \
+               } \
+               description { state: "bottom_selected" 0.0; \
+                       inherit: "default" 0.0; \
+                       image { \
+                               normal: "00_list_group_bg_bottom_press.png"; \
+                               border: 17 17 8 8; \
+                               border_scale: 1; \
+                       } \
+               } \
+       ) \
+       GENLIST_PART_RECT("sound", \
+               repeat_events: 1;  /*for play_sound to check selected state*/ \
+               description { state: "default" 0.0; \
+                       color: 0 0 0 0; \
+               } \
+       )
+#define GENLIST_PART_PADDING_LEFT_SIZE( SIZE ) \
+       GENLIST_PART_EXPANDED_PAD \
+       GENLIST_PART_SPACER("elm.padding.left", \
+               GENLIST_DESCRIPTION_L("elm.swallow.pad", \
+                       min: SIZE 0; \
+                       max: SIZE -1; \
+                       fixed: 1 0; \
+               ) \
+               GENLIST_DESCRIPTION_DECORATE_PADDING \
+               GENLIST_DESCRIPTION_REORDER_PADDING \
+               GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+       )
+
+#define GENLIST_PART_PADDING_RIGHT_EDIT_SIZE( SIZE ) \
+       GENLIST_PART_SPACER("elm.padding.right", \
+               GENLIST_DESCRIPTION_R("elm.padding.right.edit", \
+                       min: SIZE 0; \
+                       max: SIZE -1; \
+                       fixed: 1 0; \
+               ) \
+               GENLIST_DESCRIPTION_DECORATE_PADDING \
+               GENLIST_DESCRIPTION_REORDER_PADDING \
+               GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+       ) \
+       GENLIST_PART_SPACER("elm.padding.right.edit", \
+               description { state: "default" 0.0; \
+                       min:0 0; \
+                       max: 0 -1; \
+                       fixed: 1 0; \
+                       align: 1.0 0.5; \
+                       rel1.relative: 1 0; \
+               } \
+               description { state: "editmode" 0.0; \
+                       inherit: "default" 0.0; \
+                       min: (GENLIST_ENTRY_RIGHT_PADDING_SIZE+GENLIST_BTN_02_SIZE) 0; \
+                       max: (GENLIST_ENTRY_RIGHT_PADDING_SIZE+GENLIST_BTN_02_SIZE) -1; \
+               } \
+       ) \
+       GENLIST_PART_EDITBTN
+
+#define GENLIST_PART_PADDING_R( NAME, RIGHT ) \
+       GENLIST_PART_SPACER(NAME, \
+               description { state: "default" 0.0; \
+                       fixed: 1 0; \
+                       min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+                       max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+                       align: 1 0.5; \
+                       rel1 { \
+                               relative: 0 0; \
+                               to_x: RIGHT; \
+                       } \
+                       rel2 { \
+                               relative: 0 1; \
+                               to_x: RIGHT; \
+                       } \
+               } \
+       )
+
+#define GENLIST_PART_FLIP \
+       GENLIST_PART_RECT("elm.flip.bg", \
+               mouse_events: 0; \
+               description { state: "default" 0.0;\
+                       color: 0 0 0 0;\
+               } \
+               description { state: "flipped" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel2.offset: 0 -3; \
+                       color: GENLIST_LIST_BG_COLOR;\
+               }\
+       ) \
+       GENLIST_PART_SPACER("elm.flip.padding.right", \
+               description { state: "default" 0.0; \
+                       min: 26 0; \
+                       max: 26 -1; \
+                       fixed: 1 0; \
+                       align: 1 0.5; \
+                       rel1.relative: 1 0; \
+               } \
+       ) \
+       GENLIST_PART_ICON("elm.flip.content", \
+               GENLIST_DESCRIPTION("elm.padding.left", "elm.flip.padding.icon.left", \
+                       "elm.padding.top", "elm.padding.bottom", \
+                       visible: 0; \
+                       aspect: 1 1; \
+                       min: 0 96; \
+               ) \
+               description { state: "flipped" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+               } \
+       ) \
+       GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+       GENLIST_PART_ICON( "elm.flip.icon", \
+               GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \
+                       "elm.padding.top", "elm.padding.bottom", \
+                       visible: 0; \
+                       aspect: 1 1; \
+                       align: 1 0.5; \
+                       max: 158 74; \
+               ) \
+               description { state: "flipped" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+               } \
+       )
+#define GENLIST_PART_FOCUS_DIALOGUE \
+       GENLIST_PART_IMAGE("focus_part_dialogue", \
+               mouse_events: 0; \
+               GENLIST_DESCRIPTION_LR("bg_dialogue_left", "bg_dialogue_right", \
+                       visible: 0; \
+                       image { \
+                               normal: "00_focus_01.#.png"; \
+                       } \
+                       color_class: "W161"; \
+               ) \
+               description { state: "focused" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+               } \
+               description { state: "top_focused" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+                       image { \
+                               normal: "00_list_group_bg_top_focus.png"; \
+                               border: 7 7 7 7; \
+                       } \
+               } \
+               description { state: "center_focused" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+                       image { \
+                               normal: "00_list_group_bg_center_focus.png"; \
+                               border: 7 7 7 7; \
+                       } \
+               } \
+               description { state: "bottom_focused" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+                       image { \
+                               normal: "00_list_group_bg_bottom_focus.png"; \
+                               border: 7 7 7 7; \
+                       } \
+               } \
+       ) \
+       GENLIST_PART_ICON("elm.icon.focus", \
+               repeat_events: 1; \
+               GENLIST_DESCRIPTION_ENVELOP("focus_part_dialogue", \
+                       fixed: 1 1; \
+               ) \
+       )
+#define GENLIST_DIALOGUE_EDITFIELD_INHERIT_BODY( _PARTS ) \
+       data.item: "treesize" 0; \
+       parts { \
+               GENLIST_PART_BG_NORMAL_OFF \
+               GENLIST_PART_BOTTOM_LINE_ADD \
+               GENLIST_PART_BG_DIALOGUE \
+               GENLIST_PART_PADDING_LEFT_SIZE( DIALOGUE_EDITFIELD_PADDING_SIZE_LEFT ) \
+               GENLIST_PART_PADDING_RIGHT_EDIT_SIZE( DIALOGUE_EDITFIELD_PADDING_SIZE_RIGHT ) \
+               _PARTS \
+               GENLIST_PART_FLIP \
+               GENLIST_PART_FOCUS_DIALOGUE \
+       }
+
+#define GENLIST_PROGRAM_FOCUS_DIALOGUE \
+       program { name: "focused"; \
+               signal: "elm,action,focus_highlight,show"; \
+               source: "elm"; \
+               script { \
+                       new st[31]; \
+                       new Float:vl; \
+                       get_state(PART:"bg_dialogue", st, 30, vl); \
+                       if (!strcmp(st, "top") || !strcmp(st, "top_selected") || !strcmp(st, "2depth_top")) \
+                               set_state(PART:"focus_part_dialogue", "top_focused", 0.0); \
+                       else if (!strcmp(st, "center") || !strcmp(st, "center_selected") || !strcmp(st, "2depth_center")) \
+                               set_state(PART:"focus_part_dialogue", "center_focused", 0.0); \
+                       else if (!strcmp(st, "bottom") || !strcmp(st, "bottom_selected") || !strcmp(st, "2depth_bottom")) \
+                               set_state(PART:"focus_part_dialogue", "bottom_focused", 0.0); \
+                       else if (!strcmp(st, "default") || !strcmp(st, "selected") || !strcmp(st, "2depth")) \
+                               set_state(PART:"focus_part_dialogue", "focused", 0.0); \
+               } \
+       } \
+       program { name: "unfocused"; \
+               signal: "elm,action,focus_highlight,hide"; \
+               source: "elm"; \
+               action: STATE_SET "default" 0.0; \
+               target: "focus_part_dialogue"; \
+       }
+#define GENLIST_PROGRAM_BG_DIALOGUE \
+       program { name: "bg_top"; \
+               signal: "elm,state,top"; \
+               source: "*"; \
+               script { \
+                       new st[31]; \
+                       new Float:vl; \
+                       new st2[31]; \
+                       new Float:vl2; \
+                       get_state(PART:"2depth", st, 30, vl); \
+                       get_state(PART:"bg_dialogue", st2, 30, vl2); \
+                       if (!strcmp(st2, "selected") || \
+                           !strcmp(st2, "top_selected") || \
+                           !strcmp(st2, "center_selected") ||  \
+                           !strcmp(st2, "bottom_selected")) \
+                               set_state(PART:"bg_dialogue", "top_selected", 0.0); \
+                       else if (!strcmp(st, "2depth")) \
+                               set_state(PART:"bg_dialogue", "2depth_top", 0.0); \
+                       else \
+                               set_state(PART:"bg_dialogue", "top", 0.0); \
+               } \
+       } \
+       program { name: "bg_center"; \
+               signal: "elm,state,center"; \
+               source: "*"; \
+               script { \
+                       new st[31]; \
+                       new Float:vl; \
+                       new st2[31]; \
+                       new Float:vl2; \
+                       get_state(PART:"2depth", st, 30, vl); \
+                       get_state(PART:"bg_dialogue", st2, 30, vl2); \
+                       if (!strcmp(st2, "selected") || \
+                           !strcmp(st2, "top_selected") || \
+                           !strcmp(st2, "center_selected") ||  \
+                           !strcmp(st2, "bottom_selected")) \
+                               set_state(PART:"bg_dialogue", "center_selected", 0.0); \
+                       else if (!strcmp(st, "2depth")) \
+                               set_state(PART:"bg_dialogue", "2depth_center", 0.0); \
+                       else \
+                               set_state(PART:"bg_dialogue", "center", 0.0); \
+               } \
+       } \
+       program { name: "bg_bottom"; \
+               signal: "elm,state,bottom"; \
+               source: "*"; \
+               script { \
+                       new st[31]; \
+                       new Float:vl; \
+                       new st2[31]; \
+                       new Float:vl2; \
+                       get_state(PART:"2depth", st, 30, vl); \
+                       get_state(PART:"bg_dialogue", st2, 30, vl2); \
+                       if (!strcmp(st2, "selected") || \
+                           !strcmp(st2, "top_selected") || \
+                           !strcmp(st2, "center_selected") || \
+                           !strcmp(st2, "bottom_selected")) \
+                               set_state(PART:"bg_dialogue", "bottom_selected", 0.0); \
+                       else if (!strcmp(st, "2depth")) \
+                               set_state(PART:"bg_dialogue", "2depth_bottom", 0.0); \
+                       else \
+                               set_state(PART:"bg_dialogue", "bottom", 0.0); \
+               } \
+       } \
+       program { name: "bg_normal"; \
+               signal: "elm,state,normal"; \
+               source: "*"; \
+               script { \
+                       new st[31]; \
+                       new Float:vl; \
+                       new st2[31]; \
+                       new Float:vl2; \
+                       get_state(PART:"2depth", st, 30, vl); \
+                       get_state(PART:"bg_dialogue", st2, 30, vl2); \
+                       if (!strcmp(st2, "selected") || \
+                           !strcmp(st2, "top_selected") || \
+                           !strcmp(st2, "center_selected") || \
+                           !strcmp(st2, "bottom_selected")) \
+                               set_state(PART:"bg_dialogue", "selected", 0.0); \
+                       else if (!strcmp(st, "2depth")) \
+                               set_state(PART:"bg_dialogue", "2depth", 0.0); \
+                       else \
+                               set_state(PART:"bg_dialogue", "default", 0.0); \
+               } \
+       }
+#define GENLIST_PROGRAM_EDITMODE \
+       program { name: "edit_enabled"; \
+               signal:  "elm,state,edit,enabled"; \
+               source:  "*"; \
+               action:  STATE_SET "editmode" 0.0; \
+               target: "elm.padding.right.edit"; \
+               target: "elm.icon.edit"; \
+               target: "bg_dialogue_right"; \
+       } \
+       program { name: "edit_disabled"; \
+               signal:  "elm,state,edit,disabled"; \
+               source:  "*"; \
+               action:  STATE_SET "default" 0.0; \
+               target: "elm.padding.right.edit"; \
+               target: "elm.icon.edit"; \
+               target: "bg_dialogue_right"; \
+       }
+#define GENLIST_NAME(NAME) \
+       name: "elm/genlist/item/"NAME;
+
+#define GENLIST_PROGRAM_FLIP \
+       program { name: "flip_enabled"; \
+               signal:  "elm,state,flip,enabled"; \
+               source:  "elm"; \
+               transition: DECELERATE 0.5; \
+               action:  STATE_SET "flipped" 0.0; \
+               target: "elm.flip.content"; \
+               target: "elm.flip.icon"; \
+       } \
+       program { name: "flip_disabled"; \
+               signal:  "elm,state,flip,disabled"; \
+               source:  "elm"; \
+               transition: DECELERATE 0.5; \
+               action:  STATE_SET "default" 0.0; \
+               target: "elm.flip.content"; \
+               target: "elm.flip.icon"; \
+       } \
+       program { name: "flip_enabled_bg"; \
+               signal:  "elm,state,flip,enabled"; \
+               source:  "elm"; \
+               action:  STATE_SET "flipped" 0.0; \
+               target: "elm.flip.bg"; \
+       } \
+       program { name: "flip_disabled_bg"; \
+               signal:  "elm,state,flip,disabled"; \
+               source:  "elm"; \
+               action:  STATE_SET "default" 0.0; \
+               target: "elm.flip.bg"; \
+       }
+
+#define GENLIST_PROGRAM_DEFAULT( TARGET ) \
+       program { name: "default"; \
+               signal: "elm,state,default"; \
+               source: "elm"; \
+               action: STATE_SET "default" 0.0; \
+               TARGET \
+       }
+
+#define GENLIST_PROGRAM_DISABLED( TARGET ) \
+       program { name: "enabled"; \
+               signal: "elm,state,enabled"; \
+               source: "elm"; \
+               action: STATE_SET "default" 0.0; \
+               TARGET \
+       } \
+       program { name: "disabled"; \
+               signal: "elm,state,disabled"; \
+               source: "elm"; \
+               action: STATE_SET "disabled" 0.0; \
+               TARGET \
+       }
+#define GENLIST_PROGRAM_DECORATE_REORDER( NAME, TARGET ) \
+       program { name: "reorder_enabled"NAME; \
+               signal: "elm,state,reorder,mode_set"; \
+               source: "elm"; \
+               script { \
+                       new st[31]; \
+                       new Float:vl; \
+                       get_state(PART:"state", st, 30, vl); \
+                       if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+                               run_program(PROGRAM:"decorate_reorder_set"NAME); \
+                       } else { \
+                               run_program(PROGRAM:"reorder_set"NAME); \
+                       } \
+               } \
+       } \
+       program { name: "reorder_disabled"NAME; \
+               signal: "elm,state,reorder,mode_unset"; \
+               source: "elm"; \
+               script { \
+                       new st[31]; \
+                       new Float:vl; \
+                       get_state(PART:"state", st, 30, vl); \
+                       if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+                               run_program(PROGRAM:"decorate_set"NAME); \
+                       } else { \
+                               run_program(PROGRAM:"default_set"NAME); \
+                       } \
+               } \
+       } \
+       program { name: "decorate_enabled_effect"NAME; \
+               signal: "elm,state,decorate,enabled,effect"; \
+               source: "elm"; \
+               script { \
+                       new st[31]; \
+                       new Float:vl; \
+                       get_state(PART:"state", st, 30, vl); \
+                       if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                               run_program(PROGRAM:"decorate_reorder_set"NAME); \
+                       } else { \
+                               run_program(PROGRAM:"decorate_set"NAME); \
+                       } \
+               } \
+       } \
+       program { name: "decorate_disabled_effect"NAME; \
+               signal: "elm,state,decorate,disabled,effect"; \
+               source: "elm"; \
+               script { \
+                       new st[31]; \
+                       new Float:vl; \
+                       get_state(PART:"state", st, 30, vl); \
+                       if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                               run_program(PROGRAM:"reorder_set"NAME); \
+                       } else { \
+                               run_program(PROGRAM:"default_set"NAME); \
+                       } \
+               } \
+       } \
+       program { name: "decorate_enabled"NAME; \
+               signal: "elm,state,decorate,enabled"; \
+               source: "elm"; \
+               script { \
+                       new st[31]; \
+                       new Float:vl; \
+                       get_state(PART:"state", st, 30, vl); \
+                       if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                               run_program(PROGRAM:"decorate_reorder_set"NAME); \
+                       } else { \
+                               run_program(PROGRAM:"decorate_set"NAME); \
+                       } \
+               } \
+       } \
+       program { name: "decorate_disabled"NAME; \
+               signal: "elm,state,decorate,disabled"; \
+               source: "elm"; \
+               script { \
+                       new st[31]; \
+                       new Float:vl; \
+                       get_state(PART:"state", st, 30, vl); \
+                       if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                               run_program(PROGRAM:"reorder_set"NAME); \
+                       } else { \
+                               run_program(PROGRAM:"default_set"NAME); \
+                       } \
+               } \
+       } \
+       program { name: "default_set"NAME; \
+               action: STATE_SET "default" 0.0; \
+               target: "state"; \
+               TARGET \
+       } \
+       program { name: "decorate_set"NAME; \
+               action: STATE_SET "decorate" 0.0; \
+               target: "state"; \
+               TARGET \
+       } \
+       program { name: "reorder_set"NAME; \
+               action: STATE_SET "reorder" 0.0; \
+               target: "state"; \
+               TARGET \
+       } \
+       program { name: "decorate_reorder_set"NAME; \
+               action: STATE_SET "decorate_reorder" 0.0; \
+               target: "state"; \
+               TARGET \
+       }
+
+#define GENLIST_PROGRAMS_DIALOGUE_ENTRY( TARGET ) \
+       GENLIST_PROGRAM_DEFAULT( TARGET \
+               target: "bg_dialogue"; \
+               target: "elm.padding.left"; \
+               target: "elm.padding.right"; \
+       ) \
+       GENLIST_PROGRAM_DISABLED( TARGET ) \
+       GENLIST_PROGRAM_FOCUS_DIALOGUE \
+       program { name: "bg_color_change"; \
+               signal: "bg_color_change"; \
+               source: "elm"; \
+               action: STATE_SET "2depth" 0.0; \
+               target: "2depth"; \
+       } \
+       GENLIST_PROGRAM_BG_DIALOGUE \
+       GENLIST_PROGRAM_DECORATE_REORDER( "normal", TARGET \
+               target: "elm.padding.left"; \
+               target: "elm.padding.right"; \
+       ) \
+       GENLIST_PROGRAM_FLIP \
+       GENLIST_PROGRAM_EDITMODE
+
+#define GENLIST_PROLOG \
+       data.item: "selectraise" "on"; \
+       data.item: "treesize" 0;
+
+#define GENLIST_PROLOG_NORMAL \
+       GENLIST_PROLOG \
+       data.item: "treesize" GENLIST_TREESIZE_DEFAULT; \
+       data.item: "flips" "elm.flip.icon elm.flip.content"; \
+       images { \
+               image : "00_focus_01.#.png" COMP; \
+               image : "00_list_group_bg_center_focus.png" COMP; \
+               image : "00_list_group_bg_top.#.png" COMP; \
+               image : "00_list_group_bg_top_press.png" COMP; \
+               image : "00_list_group_bg_top_focus.png" COMP; \
+               image : "00_list_group_bg_bottom.#.png" COMP; \
+               image : "00_list_group_bg_bottom_press.png" COMP; \
+               image : "00_list_group_bg_bottom_focus.png" COMP; \
+               image : "00_list_group_bg_center_press.png" COMP; \
+               image : "00_list_group_bg_center.#.png" COMP; \
+               image : "00_list_group_bg.#.png" COMP; \
+               image : "00_list_group_bg_press.png" COMP; \
+       }
+
+#define GENLIST_PART_BG_NORMAL \
+       GENLIST_PART_RECT("bg_clip", \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       visible: 1; \
+                       color: 255 255 255 255; \
+               } \
+               description { state: "decorate" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "reorder" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "decorate_reorder" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+       ) \
+       GENLIST_PART_RECT("bg_reorder_clip", \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "reorder" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+                       color: 255 255 255 255; \
+               } \
+               description { state: "decorate_reorder" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "decorate" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+               description { state: "reorder_flip" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+       ) \
+       GENLIST_PART_RECT("bg", \
+               clip_to: "bg_clip"; \
+               description { state: "default" 0.0; \
+                       color_class: "B011"; \
+               } \
+               description { state: "selected" 0.0; \
+                       inherit: "default" 0.0; \
+                       color_class: "B041P"; \
+               } \
+               description { state: "disabled" 0.0; \
+                       inherit: "default" 0.0; \
+                       color_class: "B041D"; \
+               } \
+       ) \
+       GENLIST_PART_SPACER("bg_reorder_left", \
+               description { state: "default" 0.0; \
+                       min: 16 0; \
+                       max: 16 -1; \
+                       fixed: 1 0; \
+                       align: 0 0.5; \
+                       rel2.relative: 0 1; \
+               } \
+       ) \
+       GENLIST_PART_SPACER("bg_reorder_right", \
+               description { state: "default" 0.0; \
+                       min: 16 0; \
+                       max: 16 -1; \
+                       fixed: 1 0; \
+                       align: 1.0 0.5; \
+                       rel1.relative: 1 0; \
+               } \
+       ) \
+       GENLIST_PART_IMAGE("bg_reorder", \
+               clip_to: "bg_reorder_clip"; \
+               GENLIST_DESCRIPTION_LR("bg_reorder_left", "bg_reorder_right", \
+                       image { \
+                               normal: "00_list_group_bg.#.png"; \
+                       } \
+                       color_class: "B0217L1"; \
+               ) \
+               description { state: "selected" 0.0; \
+                       inherit: "default"; \
+                       image { \
+                               normal: "00_list_group_bg_press.png"; \
+                               border: 17 17 8 8; \
+                               border_scale: 1; \
+                       } \
+               } \
+               description { state: "flipped" 0.0; \
+                       inherit: "default"; \
+                       visible: 0; \
+               } \
+       ) \
+       GENLIST_PART_RECT("sound", \
+               repeat_events: 1;  /*for play_sound to check selected state*/ \
+               description { state: "default" 0.0; \
+                       color: 0 0 0 0; \
+               } \
+       )
+
+#define GENLIST_PART_BOTTOM_LINE \
+       GENLIST_PART_RECT("bottom_line_clip", \
+               description { state: "default" 0.0; \
+                       color: 255 255 255 255; \
+               } \
+               description { state: "decorate" 0.0; \
+                       inherit: "default" 0.0; \
+                       color: 0 0 0 0; \
+               } \
+               description { state: "reorder" 0.0; \
+                       inherit: "default" 0.0; \
+                       color: 0 0 0 0; \
+               } \
+               description { state: "decorate_reorder" 0.0; \
+                       inherit: "default" 0.0; \
+                       color: 0 0 0 0; \
+               } \
+       ) \
+       GENLIST_PART_RECT("bottom_line", \
+               mouse_events: 0; \
+               clip_to: "bottom_line_clip"; \
+               description { state: "default" 0.0; \
+                       min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+                       max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+                       fixed: 0 1; \
+                       align: 0.5 1; \
+                       color_class: "B0223"; \
+                       rel1.to: "bottom_line2"; \
+                       rel2.to: "bottom_line2"; \
+                       rel2.relative: 1 0; \
+                       rel1.offset: -1 -1; \
+               } \
+               description { state: "flipped" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+       ) \
+       GENLIST_PART_RECT("bottom_line2", \
+               mouse_events: 0; \
+               clip_to: "bottom_line_clip"; \
+               description { state: "default" 0.0; \
+                       min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+                       max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+                       fixed: 0 1; \
+                       align: 0.5 1; \
+                       color: GENLIST_LIST_LINE2_COLOR; \
+                       rel1.to_x: "base"; \
+                       rel1.relative: 0 0; \
+                       rel2.to_x: "base"; \
+                       rel2.relative: 1 1; \
+                       rel1.offset: -1 -1; \
+               } \
+               description { state: "flipped" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+       )
+#define GENLIST_PART_BOTTOM_LINE_ADD \
+       GENLIST_PART_RECT("bottom_line_clip", \
+               description { state: "default" 0.0; \
+                       color: 255 255 255 255; \
+               } \
+               description { state: "decorate" 0.0; \
+                       inherit: "default" 0.0; \
+                       color: 0 0 0 0; \
+               } \
+               description { state: "reorder" 0.0; \
+                       inherit: "default" 0.0; \
+                       color: 0 0 0 0; \
+               } \
+               description { state: "decorate_reorder" 0.0; \
+                       inherit: "default" 0.0; \
+                       color: 0 0 0 0; \
+               } \
+       ) \
+       GENLIST_PART_RECT("bottom_line", \
+               mouse_events: 0; \
+               clip_to: "bottom_line_clip"; \
+               description { state: "default" 0.0; \
+                       min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+                       max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+                       fixed: 0 1; \
+                       align: 0.5 1; \
+                       color_class: "B0223"; \
+                       rel1.to: "bottom_line2"; \
+                       rel2.to: "bottom_line2"; \
+                       rel2.relative: 1 0; \
+                       rel1.offset: -1 -1; \
+               } \
+               description { state: "flipped" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+       ) \
+       GENLIST_PART_RECT("bottom_line2", \
+               mouse_events: 0; \
+               clip_to: "bottom_line_clip"; \
+               description { state: "default" 0.0; \
+                       min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+                       max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+                       fixed: 0 1; \
+                       align: 0.5 1; \
+                       color: GENLIST_LIST_LINE2_COLOR; \
+                       rel1.to_x: "base"; \
+                       rel1.relative: 0 0; \
+                       rel2.to_x: "base"; \
+                       rel2.relative: 1 1; \
+                       rel1.offset: 16 -1; \
+                       rel2.offset: -16 -1; \
+               } \
+               description { state: "flipped" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+       )
+#define GENLIST_PART_PADDING_RIGHT_SIZE( SIZE ) \
+       GENLIST_PART_SPACER("elm.padding.right", \
+               description { state: "default" 0.0; \
+                       min: SIZE 0; \
+                       max: SIZE -1; \
+                       fixed: 1 0; \
+                       align: 1.0 0.5; \
+                       rel1.to: "base"; \
+                       rel2.to: "base"; \
+                       rel1.relative: 1 0; \
+               } \
+               GENLIST_DESCRIPTION_DECORATE_PADDING \
+               GENLIST_DESCRIPTION_REORDER_PADDING \
+               GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+       )
+#define GENLIST_PART_PADDING_TOP_SIZE( SIZE ) \
+       GENLIST_PART_SPACER("elm.padding.top", \
+               description { \
+                       state: "default" 0.0; \
+                       min: 0 SIZE; \
+                       max: -1 SIZE; \
+                       fixed: 0 1; \
+                       rel1.to: "base"; \
+                       rel2.to: "base"; \
+                       rel2.relative: 1.0 0.0; \
+                       align: 0.5 0.0; \
+               } \
+       )
+#define GENLIST_PART_PADDING_BOTTOM_SIZE( SIZE ) \
+       GENLIST_PART_SPACER("elm.padding.bottom", \
+               description { state: "default" 0.0; \
+                       min: 0 SIZE; \
+                       max: -1 SIZE; \
+                       fixed: 0 1; \
+                       rel1.to: "base"; \
+                       rel2.to: "base"; \
+                       rel1.relative: 0.0 1.0; \
+                       align: 0.5 1.0; \
+               } \
+       )
+#define GENLIST_PART_PADDING_L_SIZE( NAME, LEFT, SIZE ) \
+       GENLIST_PART_SPACER(NAME, \
+               description { state: "default" 0.0; \
+                       fixed: 1 0; \
+                       min: SIZE 0; \
+                       max: SIZE -1; \
+                       align: 0 0.5; \
+                       rel1 { \
+                               relative: 1 0; \
+                               to_x: LEFT; \
+                       } \
+                       rel2 { \
+                               relative: 1 1; \
+                               to_x: LEFT; \
+                       } \
+               } \
+       )
+#define GENLIST_PART_TEXT(NAME, DESCRIPION) \
+       part { name: NAME; \
+               scale: 1; \
+               type: TEXT; \
+               repeat_events: 1; \
+               DESCRIPION \
+       }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT \
+       color: GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR; \
+       text { \
+               align: 0 0.5; \
+               min: 0 1; \
+               font: "Tizen:style=Bold"; \
+               size: GENLIST_LIST_SUB_TEXT_SIZE; \
+               text_class: "label"; \
+       }
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+       description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR; \
+       } \
+       description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_TEXT_FOCUS_COLOR; \
+       }
+
+#define GENLIST_PART_SUBITEM_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP) \
+       GENLIST_PART_TEXT(NAME, \
+               GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+                       min: 0 HEIGHT; \
+                       fixed: 0 1; \
+                       GENLIST_PARAM_SUBITEM_DEFAULT \
+               ) \
+               GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+       )
+#define GENLIST_PART_FOCUS \
+       GENLIST_PART_IMAGE("focus_part", \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       visible: 0; \
+                       image { \
+                               normal: "00_focus_01.#.png"; \
+                       } \
+                       color_class: "W161"; \
+               } \
+               description { state: "focused" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+               } \
+       ) \
+       GENLIST_PART_ICON("elm.icon.focus", \
+               repeat_events: 1; \
+               GENLIST_DESCRIPTION_ENVELOP("focus_part", \
+                       fixed: 1 1; \
+               ) \
+       )
+#define GENLIST_PART_FOCUS_REORDER \
+       GENLIST_PART_IMAGE("focus_part_reorder", \
+               mouse_events: 0; \
+               GENLIST_DESCRIPTION_LR("bg_reorder_left", "bg_reorder_right", \
+                       visible: 0; \
+                       image { \
+                               normal: "00_focus_01.#.png"; \
+                       } \
+                       color_class: "W161"; \
+               ) \
+               description { state: "focused" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+               } \
+       )
+#define GENLIST_PART_FOCUS_NORMAL \
+       GENLIST_PART_FOCUS \
+       GENLIST_PART_FOCUS_REORDER
+
+#define GENLIST_PROGRAM_FOCUS_NORMAL \
+       program { name: "focused"; \
+               signal: "elm,action,focus_highlight,show"; \
+               source: "elm"; \
+               script { \
+                       new st[31]; \
+                       new Float:vl; \
+                       get_state(PART:"bg_reorder_clip", st, 30, vl); \
+                       if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \
+                               set_state(PART:"focus_part_reorder", "focused", 0.0); \
+                       else \
+                               set_state(PART:"focus_part", "focused", 0.0); \
+               } \
+       } \
+       program { name: "unfocused"; \
+               signal: "elm,action,focus_highlight,hide"; \
+               source: "elm"; \
+               action: STATE_SET "default" 0.0; \
+               target: "focus_part_reorder"; \
+               target: "focus_part"; \
+       }
+#define GENLIST_PROGRAMS_ENTRY( TARGET ) \
+       GENLIST_PROGRAM_DEFAULT( TARGET \
+               target: "bg"; \
+               target: "bg_clip"; \
+               target: "bottom_line"; \
+               target: "bottom_line2"; \
+               target: "bottom_line_clip"; \
+               target: "bg_reorder"; \
+               target: "elm.padding.left"; \
+               target: "elm.padding.right"; \
+       ) \
+       GENLIST_PROGRAM_DISABLED( TARGET ) \
+//     GENLIST_PROGRAM_FOCUS_NORMAL \
+       GENLIST_PROGRAM_DECORATE_REORDER("editfield", TARGET \
+               target: "bg_clip"; \
+               target: "bg_reorder_clip"; \
+               target: "bottom_line_clip"; \
+               target: "elm.padding.left"; \
+               target: "elm.padding.right"; \
+       )
+#define GENLIST_PART_BASE_SIZE(HEIGHT) \
+       part { name: "base"; \
+               type: RECT; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       color: 0 0 0 0; \
+                       min: 0 HEIGHT; \
+               } \
+       } \
+       part { name: "state"; \
+               type: RECT; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       color: 0 0 0 0; \
+               } \
+               description { state: "decorate" 0.0; \
+                       inherit: "default"; \
+               } \
+               description { state: "reorder" 0.0; \
+                       inherit: "default"; \
+               } \
+               description { state: "decorate_reorder" 0.0; \
+                       inherit: "default"; \
+               } \
+       }
+
+#define GENLIST_PART_BASE \
+       GENLIST_PART_BASE_SIZE(0)
+// 2.2.6.2
+       group { GENLIST_NAME("editfield/title/default")
+               alias: "elm/layout/editfield/title/default";
+
+               GENLIST_PROLOG_NORMAL
+               data.item: "contents" "elm.icon.entry";
+               data.item: "texts" "elm.text";
+               parts {
+                       GENLIST_PART_BASE
+                       GENLIST_PART_BG_NORMAL
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT_SIZE( 16 )
+                       GENLIST_PART_PADDING_RIGHT_SIZE( 16 )
+                       GENLIST_PART_PADDING_TOP_SIZE((62 - GENLIST_HEIGHT_2LINE_SUB))
+                       GENLIST_PART_PADDING_BOTTOM_SIZE(16)
+
+                       GENLIST_PART_PADDING_L_SIZE("elm.padding.title", "elm.padding.left", 10)
+                       GENLIST_PART_SUBITEM_LRT("elm.text", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.title", "elm.padding.right", "elm.padding.top"
+                       )
+                       GENLIST_PART_ICON("elm.icon.entry",
+                               GENLIST_DESCRIPTION(
+                                       "elm.padding.left", "elm.padding.right",
+                                       "elm.text", "elm.padding.bottom",
+                                       min: 0 62; // This is tuned value for exact entry size.
+                               )
+                       )
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS_NORMAL
+               }
+               GENLIST_PROGRAMS_ENTRY( target: "elm.text"; target: "elm.icon.entry"; )
+
+       }
+// 2.4.3 (Dialogue)
+       group { GENLIST_NAME("dialogue/editfield/title/custom/default")
+               inherit: "elm/genlist/item/editfield/title/default";
+
+               data.item: "contents" "elm.icon.entry elm.icon.edit";
+
+               GENLIST_DIALOGUE_EDITFIELD_INHERIT_BODY( ; )
+
+               GENLIST_PROGRAMS_DIALOGUE_ENTRY( target: "elm.icon.entry"; target: "elm.icon.edit";)
+       }
+
+/* spinner */
+#define PADDING_RIGHT(param_padding_name, param_padding_size) \
+       part \
+       { \
+               name: param_padding_name; \
+               type: SPACER; \
+               scale: 1; \
+               mouse_events:  0;\
+               description \
+               { \
+                       state: "default" 0.0; \
+                       min: param_padding_size 0; \
+                       fixed: 1 0; \
+                       rel1{relative: 1.0 0.0;} \
+                       rel2{relative: 1.0 1.0;} \
+                       align: 1.0 0.0; \
+               } \
+       }
+
+#define PADDING_LEFT(param_padding_name, param_padding_size) \
+       part \
+       { \
+               name: param_padding_name; \
+               type: SPACER; \
+               scale: 1; \
+               mouse_events:  0;\
+               description \
+               { \
+                       state: "default" 0.0; \
+                       min: param_padding_size 0; \
+                       fixed: 1 0; \
+                       rel1{relative: 0.0 0.0;} \
+                       rel2{relative: 0.0 1.0;} \
+                       align: 0.0 0.0; \
+               } \
+       }
+
+#define MSGC_POPUP_INFO_TXT_COLOR_INC "#ffffff"
+#define MSGC_POPUP_INFO_TXT_SIZE 40
+#define MSGC_POPUP_ENTRY_FIELD_H 74
+
+styles {
+       style {
+               name: "popup_desc_style";
+               base: "font=Tizen:style=Roman font_size="MSGC_POPUP_INFO_TXT_SIZE" align=center color="MSGC_POPUP_INFO_TXT_COLOR_INC" wrap=mixed text_class=label";
+               tag:  "br" "\n";
+               tag:  "ps" "ps";
+               tag:  "whitecolor" "+ color=#ffffff";
+               tag:  "tab" "\t";
+       }
+}
+group {
+       name: "popup/spinner";
+       parts {
+               part {
+                       name: "base";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 272;
+                               fixed: 1 0;
+                       }
+               }
+               PADDING_LEFT("padding_left", 16);
+               PADDING_RIGHT("padding_right", 16);
+               part {
+                       name: "t_pad";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "base";
+                               rel2.to: "base";
+                               align: 0.0 0.0;
+                               min: 0 28;
+                               max: 0 28;
+                               fixed: 1 1;
+                       }
+               }
+               part {
+                       name: "rect.spinner";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 216;
+                               fixed: 0 1;
+                               rel1 {
+                                       to_x: "padding_left";
+                                       to_y: "t_pad";
+                                       relative: 1.0 1.0;
+                               }
+                               rel2 {
+                                       to_x: "padding_right";
+                                       to_y: "t_pad";
+                                       relative: 0.0 1.0;
+                               }
+                               align: 0.0 0.0;
+                       }
+               }
+               part{
+                       name: "swl.spinner";
+                       type: SWALLOW;
+                       scale : 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 216;
+                               max: -1 216;
+                               fixed: 1 1;
+                               align: 0.5 0.0;
+                               rel1 {
+                                       to: "rect.spinner";
+                                       relative: 0.0 0.0;
+                               }
+                               rel2 {
+                                       to: "rect.spinner";
+                                       relative: 1.0 1.0;
+                               }
+                       }
+               }
+       }
+}
+
+#define BUTTON_BODY_STYLES(style_name ,min_width, min_height) \
+   group { name: "elm/button/base/"style_name; \
+      images { \
+      } \
+      script { \
+         public mouse_down = 0; \
+         public multi_down = 0; \
+      } \
+      parts { \
+         part { name: "button_image"; \
+            type: SPACER; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: min_width min_height; \
+               max: min_width min_height; \
+            } \
+         } \
+         part { name: "button_center_part"; \
+                       type : SWALLOW ; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+            } \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+            } \
+         } \
+         part { name: "over1"; \
+            type: RECT; \
+            repeat_events: 1; \
+            ignore_flags: ON_HOLD; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "over2"; \
+            type: RECT; \
+            repeat_events: 1; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "disabler"; \
+            type: RECT; \
+            description { state: "default" 0.0; \
+               rel1.to: "button_image"; \
+               rel2.to: "button_image"; \
+               color: 0 0 0 0; \
+               visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+      } \
+      programs { \
+         program { name: "button_press"; \
+            signal: "mouse,down,1*"; \
+            source: "over1"; \
+            script { \
+               if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) \
+                 { \
+                     set_int(mouse_down, 1); \
+                     run_program(PROGRAM:"button_press2"); \
+                 } \
+            } \
+         } \
+         program { name: "button_press2"; \
+            action: SIGNAL_EMIT "elm,action,press" ""; \
+            after: "button_press_anim"; \
+         } \
+         program { name: "button_press_anim"; \
+            action: STATE_SET "pressed" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "key_press"; \
+            signal: "elm,action,pressed"; \
+            source: "elm"; \
+            action: STATE_SET "pressed" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "key_unpress"; \
+            signal: "elm,action,unpressed"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "button_unpress"; \
+            signal: "mouse,up,1*"; \
+            source: "over2"; \
+            script { \
+               if (get_int(mouse_down) == 1) \
+                 { \
+                    set_int(mouse_down, 0); \
+                    run_program(PROGRAM:"button_unpress2"); \
+                    run_program(PROGRAM:"button_unpress_anim"); \
+                 } \
+            } \
+         } \
+         program { name: "button_unpress2"; \
+            action: SIGNAL_EMIT "elm,action,unpress" ""; \
+         } \
+         program { name: "button_unpress_anim"; \
+            action: STATE_SET "default" 0.0; \
+            target: "button_center_part"; \
+         } \
+         program { name: "button_click"; \
+            signal: "mouse,clicked,1"; \
+            source: "over2"; \
+            script { \
+               if (get_int(multi_down) == 0) { \
+                 run_program(PROGRAM:"touch_sound"); \
+                 run_program(PROGRAM:"button_click2"); \
+               } \
+            } \
+         } \
+         program { name: "touch_sound"; \
+            action: RUN_PLUGIN "touch_sound"; \
+         } \
+         program { name: "button_click2"; \
+            action: SIGNAL_EMIT "elm,action,click" ""; \
+         } \
+         program { name: "disable"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            target: "disabler"; \
+            target: "button_center_part"; \
+         } \
+         program { name: "enable"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "disabler"; \
+            target: "button_center_part"; \
+         } \
+         program { \
+            name: "multi_down"; \
+            signal: "elm,action,multi,down"; \
+            source: "elm"; \
+            script { \
+               set_int(multi_down, 1); \
+            } \
+         } \
+         program { \
+            name: "multi_up"; \
+            signal: "elm,action,multi,up"; \
+            source: "elm"; \
+            script { \
+               set_int(multi_down, 0); \
+            } \
+         } \
+      } \
+   }
+
+BUTTON_BODY_STYLES("contact_button",46,46)
+
+STYLE_SIM_BUTTON("sim1_btn", "1", "B0561L1P")
+STYLE_SIM_BUTTON("sim2_btn", "2", "B0561L1")
+
+
+
+
+#define ITEM_STATE_ENABLED 0
+#define ITEM_STATE_DISABLED 1
+#define TOOLBAR_SLIDING_PER_FPS     2
+#define TOOLBAR_SLIDING_FPS         40.0
+#define TOOLBAR_SLIDING_TEXT_GAP    40
+#define TOOLBAR_SLIDING_TEXT_OFFSET 0
+#define TOOLBAR_SLIDING_WAIT_TIME 1.2
+
+// sliding motion
+#define TOOLBAR_SLIDING_NO_EFFECT 0
+#define TOOLBAR_SLIDING_DOING 1
+#define TOOLBAR_SLIDING_END 2
+
+#define TAG \
+      tag: "br" "\n"; \
+      tag: "ps" "ps"; \
+      tag: "hilight" "+ font_weight=Bold"; \
+      tag: "b" "+ font_weight=Bold"; \
+      tag: "tab" "\t";
+
+#define TABBAR_ITEM_TEXT_STYLE(_font_size, _font_class) \
+   style { name: "tabbar_icon_text_style_"_font_class; \
+      base: "font=Tizen:style=regular font_size="_font_size" align=center color=#FFFFFF wrap=word ellipsis=1 text_class=label color_class="_font_class" linegap=0"; \
+      TAG \
+   }
+
+#define TABBAR_TEXT_STYLE(_font_size, _font_class) \
+   style { name: "tabbar_text_style_"_font_class; \
+      base: "font=Tizen:style=regular font_size="_font_size" align=center color=#FFFFFF wrap=word ellipsis=1 text_class=label color_class="_font_class" linegap=0"; \
+      TAG \
+   }
+
+#define TABBAR_NAVI_TEXT_STYLE(_font_size, _font_class) \
+   style { name: "tabbar_navi_text_style_"_font_class; \
+      base: "font=Tizen:style=regular font_size="_font_size" align=center color=#FFFFFF wrap=word ellipsis=1 text_class=label color_class="_font_class" linegap=0"; \
+      TAG \
+   }
+
+styles{
+   TABBAR_ITEM_TEXT_STYLE(27, "T1117")
+   TABBAR_ITEM_TEXT_STYLE(27, "T1117P")
+   TABBAR_ITEM_TEXT_STYLE(27, "T1117S")
+   TABBAR_ITEM_TEXT_STYLE(27, "T1117D")
+   TABBAR_TEXT_STYLE(27, "T1117")
+   TABBAR_TEXT_STYLE(27, "T1117P")
+   TABBAR_TEXT_STYLE(27, "T1117S")
+   TABBAR_TEXT_STYLE(27, "T1117D")
+   TABBAR_NAVI_TEXT_STYLE(27, "T042")
+   TABBAR_NAVI_TEXT_STYLE(27, "T042P")
+   TABBAR_NAVI_TEXT_STYLE(27, "T042D")
+}
+
+group { name: "elm/toolbar/base/tabbar_with_title_32_32_custom";
+   parts {
+      part { name: "base";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+         }
+      }
+      part { name: "base_bg";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+            rel2.offset: -1 -1;
+            color_class: "B011";
+         }
+      }
+     part { name: "clipper";
+         type: RECT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+            rel2.offset: -1 -1;
+         }
+      }
+      part { name: "elm.swallow.content";
+         clip_to: "clipper";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+            rel2.offset: -1 -1;
+         }
+      }
+   }
+}
+
+group { name: "elm/toolbar/item/tabbar_with_title_32_32_custom";
+   script {
+      public selected = 0;
+      public pressed = 0;
+      public item_state = ITEM_STATE_ENABLED;
+      public items_number = 0;
+      public icon_text = 0;
+      public mouse_down = 0;
+      public multi_down = 0;
+      public landscape = 0;
+      public item_text = 0;
+   }
+   parts {
+      part { name: "bg";
+         type: SPACER;
+         scale: 1;
+         mouse_events: 0;
+         description { state: "default" 0.0;
+         }
+         description { state: "2items" 0.0;
+            inherit: "default" 0.0;
+            min: TABBAR_TWO_ITEMS_SIZE_INC;
+         }
+         description { state: "3items" 0.0;
+            inherit: "default" 0.0;
+            min: TABBAR_THREE_ITEMS_SIZE_INC;
+         }
+         description { state: "scrollable" 0.0;
+            inherit: "default" 0.0;
+            min: TABBAR_SCROLLABLE_ITEMS_SIZE_INC;
+         }
+         description { state: "2items_land" 0.0;
+            inherit: "default" 0.0;
+            min: TABBAR_LANDSCAPE_TWO_ITEMS_SIZE_INC;
+         }
+         description { state: "3items_land" 0.0;
+            inherit: "default" 0.0;
+            min: TABBAR_LANDSCAPE_THREE_ITEMS_SIZE_INC;
+         }
+         description { state: "4items_land" 0.0;
+            inherit: "default" 0.0;
+            min: TABBAR_LANDSCAPE_FOUR_ITEMS_SIZE_INC;
+         }
+         description { state: "scrollable_land" 0.0;
+            inherit: "default" 0.0;
+            min: TABBAR_LANDSCAPE_SCROLLABLE_ITEMS_SIZE_INC;
+         }
+      }
+      part { name: "selected_line";
+         type: RECT;
+         scale: 1;
+         mouse_events: 0;
+         description { state: "default" 0.0;
+            rel1 {
+                to: "elm.text";
+                relative: 0.0 1.0;
+            }
+            rel2 {
+                to: "elm.text";
+                relative: 1.0 1.0;
+            }
+            fixed: 0 1;
+            min: TABBAR_SELECTED_LINE_SIZE_INC;
+            visible: 0;
+            color_class: "B0514S";
+            align: 0.5 0.0;
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "bg_cover";
+         type: RECT;
+         scale: 1;
+         mouse_events: 0;
+         description { state: "default" 0.0;
+            visible: 0;
+            color_class: "B0514";
+         }
+         description { state: "pressed" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            color_class: "B0514P";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "padding_left_top";
+         type: SPACER;
+         scale: 1;
+         mouse_events: 0;
+         description { state: "default" 0.0;
+            align: 0.0 0.0;
+            rel2.relative: 0.0 0.0;
+            min: 0 0;
+            fixed: 1 1;
+         }
+         description { state: "text" 0.0;
+            inherit: "default" 0.0;
+            min: TABBAR_TEXT_LEFT_TOP_PADDING_SIZE_INC;
+         }
+         description { state: "icon_text" 0.0;
+            inherit: "default" 0.0;
+            min: TABBAR_ICON_TEXT_LAND_LEFT_TOP_PADDING_SIZE_INC;
+         }
+      }
+      part { name: "padding_right_bottom";
+         type: SPACER;
+         scale: 1;
+         mouse_events: 0;
+         description { state: "default" 0.0;
+            align: 1.0 1.0;
+            rel1.relative: 1.0 1.0;
+            min: 0 0;
+            fixed: 1 1;
+         }
+         description { state: "text" 0.0;
+            inherit: "default" 0.0;
+            min: TABBAR_TEXT_RIGHT_BOTTOM_PADDING_SIZE_INC;
+         }
+         description { state: "icon_text" 0.0;
+            inherit: "default" 0.0;
+            min: TABBAR_ICON_TEXT_LAND_RIGHT_BOTTOM_PADDING_SIZE_INC;
+         }
+      }
+      part {
+         name: "icon_rect";
+         type: SPACER;
+         scale: 1;
+         mouse_events: 0;
+         description { state: "default" 0.0;
+            min: 0 0;
+            fixed: 1 0;
+            rel2 {
+               relative: 0.0 1.0;
+            }
+            align: 0.0 0.5;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            min: TABBAR_ICON_RECT_SIZE_INC;
+         }
+      }
+
+      part { name: "padding_icon_text";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: TABBAR_ICON_TEXT_PAD_INC;
+            fixed: 1 0;
+            align: 1.0 0.5;
+            rel1 {
+               to: "elm.text";
+               relative: 0.0 0.0;
+            }
+            rel2 {
+               to: "elm.text";
+               relative: 0.0 1.0;
+            }
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+
+      part { name: "elm.swallow.icon";
+         type: SWALLOW;
+         scale: 1;
+         clip_to: "elm.icon.clipper";
+         description { state: "default" 0.0;
+            visible: 0;
+            aspect: 1.0 1.0;
+            aspect_preference: HORIZONTAL;
+         }
+         description { state: "visible" 0.0;
+            inherit: "default" 0.0;
+            min: TABBAR_ICON_SIZE_INC_32_32;
+            max: TABBAR_ICON_SIZE_INC_32_32;
+            visible: 1;
+            align: 1.0 0.5;
+            fixed: 1 1;
+            rel1 {
+               to: "padding_icon_text";
+               relative: 0.0 0.0;
+            }
+            rel2 {
+               to: "padding_icon_text";
+               relative: 0.0 1.0;
+            }
+         }
+         description { state: "visible_icon_only" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            align: 0.5 0.5;
+            fixed: 1 1;
+            rel1 {
+               to: "padding_left_top";
+               relative: 1.0 1.0;
+            }
+            rel2 {
+               to: "padding_right_bottom";
+               relative: 0.0 0.0;
+            }
+         }
+      }
+      part { name: "elm.text";
+         type: TEXTBLOCK;
+         mouse_events: 0;
+         scale: 1;
+         clip_to: "elm.text.clipper";
+         description { state: "default" 0.0;
+            visible: 0;
+         }
+         description { state: "text" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            rel1 {
+               to: "padding_left_top";
+               relative: 1.0 1.0;
+            }
+            rel2 {
+               to: "padding_right_bottom";
+               relative: 0.0 0.0;
+            }
+            fixed: 1 1;
+            text {
+               style: "tabbar_text_style_T1117";
+               min: 0 1;
+               max: 1 0;
+            }
+         }
+         description { state:"text_pressed" 0.0;
+            inherit: "text" 0.0;
+            text.style: "tabbar_text_style_T1117P";
+         }
+         description { state:"text_selected" 0.0;
+            inherit: "text" 0.0;
+            text.style: "tabbar_text_style_T1117S";
+         }
+         description { state:"text_disabled" 0.0;
+            inherit: "text" 0.0;
+            text.style: "tabbar_text_style_T1117D";
+         }
+         description { state: "icon_text" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            rel1 {
+               to_x: "icon_rect";
+               to_y: "padding_left_top";
+               relative: 1.0 1.0;
+            }
+            rel2 {
+               to: "padding_right_bottom";
+               relative: 0.0 0.0;
+            }
+            fixed: 1 1;
+            text {
+               style: "tabbar_icon_text_style_T1117";
+               min: 0 1;
+               max: 1 0;
+            }
+         }
+         description { state:"icon_text_pressed" 0.0;
+            inherit: "icon_text" 0.0;
+            text.style: "tabbar_icon_text_style_T1117P";
+         }
+         description { state:"icon_text_selected" 0.0;
+            inherit: "icon_text" 0.0;
+            text.style: "tabbar_icon_text_style_T1117S";
+         }
+         description { state:"icon_text_disabled" 0.0;
+            inherit: "icon_text" 0.0;
+            text.style: "tabbar_icon_text_style_T1117D";
+         }
+      }
+      part { name: "elm.icon.clipper";
+         type: RECT;
+         description { state: "default" 0.0;
+            color_class: "B052L6";
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            color_class: "B052L6S";
+         }
+         description { state: "pressed" 0.0;
+            inherit: "default" 0.0;
+            color_class: "B052L6P";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color_class: "B052L6D";
+         }
+      }
+      part { name: "elm.text.clipper";
+         type: RECT;
+         description { state: "default" 0.0;
+            color: 255 255 255 255;
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 255;
+         }
+      }
+      part { name: "event";
+         type: RECT;
+         mouse_events: 1;
+         description { state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+      }
+   }
+   programs {
+      program { name: "go_active";
+         signal:  "elm,state,selected";
+         source:  "elm";
+         action:  STATE_SET "selected" 0.0;
+         target:  "elm.icon.clipper";
+         target:  "selected_line";
+         after: "selected_text";
+      }
+      program { name: "selected_text";
+         script{
+            set_int(selected, 1);
+            if (!get_int(icon_text))
+              set_state(PART:"elm.text", "text_selected", 0.0);
+            else
+              set_state(PART:"elm.text", "icon_text_selected", 0.0);
+         }
+      }
+      program { name: "go_passive";
+         signal:  "elm,state,unselected";
+         source:  "elm";
+         action:  STATE_SET "default" 0.0;
+         target:  "elm.icon.clipper";
+         target:  "selected_line";
+         after: "unselected_text";
+      }
+      program { name: "unselected_text";
+         script{
+            set_int(selected, 0);
+            if (!get_int(icon_text))
+              set_state(PART:"elm.text", "text", 0.0);
+            else
+              set_state(PART:"elm.text", "icon_text", 0.0);
+         }
+      }
+      program { name: "key,pressed";
+         signal: "elm,action,pressed";
+         source: "elm";
+         after: "pressed";
+      }
+      program { name: "pressed";
+         signal:  "mouse,down,1";
+         source:  "event";
+         script {
+            if ((get_int(item_state) != ITEM_STATE_DISABLED)
+                && get_int(multi_down) == 0
+                && get_int(mouse_down) == 0)
+              {
+                set_int(mouse_down, 1);
+                set_state(PART:"bg_cover", "pressed", 0.0);
+                if (!get_int(icon_text))
+                  set_state(PART:"elm.text", "text_pressed", 0.0);
+                else
+                  set_state(PART:"elm.text", "icon_text_pressed", 0.0);
+                set_state(PART:"elm.icon.clipper", "pressed", 0.0);
+                set_int(pressed, 1);
+              }
+         }
+      }
+      program { name: "key,unpressed";
+         signal: "elm,action,unpressed";
+         source: "elm";
+         after: "unpressed";
+      }
+      program { name: "unpressed";
+         signal:  "mouse,up,1";
+         source:  "event";
+         script {
+            if ((get_int(item_state) != ITEM_STATE_DISABLED)
+                && get_int(mouse_down) == 1)
+              {
+                set_int(mouse_down, 0);
+                set_int(pressed, 0);
+                set_state(PART:"bg_cover", "default", 0.0);
+                if (get_int(selected))
+                  {
+                     if (!get_int(icon_text))
+                       set_state(PART:"elm.text", "text_selected", 0.0);
+                     else
+                       set_state(PART:"elm.text", "icon_text_selected", 0.0);
+                    set_state(PART:"elm.icon.clipper", "selected", 0.0);
+                  }
+                else
+                  {
+                     if (!get_int(icon_text))
+                       set_state(PART:"elm.text", "text", 0.0);
+                     else
+                       set_state(PART:"elm.text", "icon_text", 0.0);
+                    set_state(PART:"elm.icon.clipper", "default", 0.0);
+                  }
+              }
+         }
+      }
+      program { name: "go";
+         signal:  "mouse,clicked,1";
+         source:  "event";
+         script {
+            if (get_int(multi_down) == 0) {
+               emit("elm,action,click", "elm");
+               if (get_int(item_state) != ITEM_STATE_DISABLED)
+                  run_program(PROGRAM:"touch_sound");
+            }
+         }
+      }
+      program { name: "touch_sound";
+         action: RUN_PLUGIN "touch_sound";
+      }
+      program { name: "mouse,in";
+         signal:  "mouse,in";
+         source:  "event";
+         script {
+            if (get_int(multi_down) == 0)
+              emit("elm,mouse,in", "elm");
+         }
+      }
+      program { name: "mouse,out";
+         signal:  "mouse,out";
+         source:  "event";
+         script {
+            if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0))
+              emit("elm,mouse,out", "elm");
+         }
+      }
+      program { name: "enable";
+         signal: "elm,state,enabled";
+         source: "elm";
+         script {
+            set_int(item_state, ITEM_STATE_ENABLED);
+            set_state(PART:"bg_cover", "default", 0.0);
+            if (!get_int(icon_text))
+            {
+                if (!get_int(selected))
+                   set_state(PART:"elm.text", "text", 0.0);
+                else
+                   set_state(PART:"elm.text", "text_selected", 0.0);
+            }
+            else
+            {
+                if (!get_int(selected))
+                   set_state(PART:"elm.text", "icon_text", 0.0);
+                else
+                   set_state(PART:"elm.text", "icon_text_selected", 0.0);
+            }
+            set_state(PART:"elm.text.clipper", "default", 0.0);
+            set_state(PART:"elm.icon.clipper", "default", 0.0);
+         }
+      }
+      program { name: "disable";
+         signal: "elm,state,disabled";
+         source: "elm";
+         script {
+            set_int(item_state, ITEM_STATE_DISABLED);
+            set_state(PART:"bg_cover", "disabled", 0.0);
+            if (!get_int(icon_text))
+              set_state(PART:"elm.text", "text_disabled", 0.0);
+            else
+              set_state(PART:"elm.text", "icon_text_disabled", 0.0);
+            set_state(PART:"elm.text.clipper", "disabled", 0.0);
+            set_state(PART:"elm.icon.clipper", "disabled", 0.0);
+         }
+      }
+      program {name: "multi_down";
+         signal: "elm,action,multi,down";
+         source: "elm";
+         script {
+            set_int(multi_down, 1);
+         }
+      }
+      program {name: "multi_up";
+         signal: "elm,action,multi,cancel";
+         source: "elm";
+         script {
+            set_int(multi_down, 0);
+         }
+      }
+      program { name: "text_show";
+         signal: "elm,state,text,visible";
+         source: "elm";
+         script {
+            set_int(item_text, 1);
+            if (!get_int(icon_text))
+              {
+                set_state(PART:"elm.text", "text", 0.0);
+                set_state(PART:"padding_left_top", "text", 0.0);
+                set_state(PART:"padding_right_bottom", "text", 0.0);
+              }
+            else
+              {
+                set_state(PART:"elm.swallow.icon", "visible", 0.0);
+                set_state(PART:"icon_rect", "visible", 0.0);
+                set_state(PART:"elm.text", "icon_text", 0.0);
+                set_state(PART:"padding_left_top", "icon_text", 0.0);
+                set_state(PART:"padding_right_bottom", "icon_text", 0.0);
+              }
+         }
+      }
+      program { name: "text_hide";
+         signal: "elm,state,text,hidden";
+         source: "elm";
+         script {
+            set_int(item_text, 0);
+            set_state(PART:"elm.text", "default", 0.0);
+         }
+      }
+      program { name: "icon_show";
+         signal: "elm,state,icon,visible";
+         source: "elm";
+         script {
+            set_int(icon_text, 1);
+            if (get_int(item_text))
+              {
+                set_state(PART:"elm.swallow.icon", "visible", 0.0);
+                set_state(PART:"padding_icon_text", "visible", 0.0);
+                set_state(PART:"icon_rect", "visible", 0.0);
+                set_state(PART:"elm.text", "icon_text", 0.0);
+              }
+            else
+              set_state(PART:"elm.swallow.icon", "visible_icon_only", 0.0);
+            set_state(PART:"padding_left_top", "icon_text", 0.0);
+            set_state(PART:"padding_right_bottom", "icon_text", 0.0);
+         }
+      }
+      program { name: "icon_hide";
+         signal: "elm,state,icon,hidden";
+         source: "elm";
+         script {
+            set_int(icon_text, 0);
+            set_state(PART:"elm.swallow.icon", "default", 0.0);
+            set_state(PART:"padding_icon_text", "default", 0.0);
+            set_state(PART:"elm.text", "text", 0.0);
+            set_state(PART:"padding_left_top", "text", 0.0);
+            set_state(PART:"padding_right_bottom", "text", 0.0);
+         }
+      }
+      program { name: "tab_item_2";
+         signal: "elm,number,item,2";
+         source: "elm";
+         script {
+            set_int(items_number, 2);
+            set_state(PART:"bg", "2items", 0.0);
+         }
+      }
+      program { name: "tab_item_3";
+         signal: "elm,number,item,3";
+         source: "elm";
+         script {
+            set_int(items_number, 3);
+            set_state(PART:"bg", "3items", 0.0);
+         }
+      }
+      program { name: "tab_item_4";
+         signal: "elm,number,item,4";
+         source: "elm";
+         script {
+            set_int(items_number, 4);
+            if (get_int(icon_text))
+              {
+                if (get_int(landscape))
+                  set_state(PART:"bg", "4items_land", 0.0);
+                else
+                  set_state(PART:"bg", "4items", 0.0);
+              }
+            else
+              {
+                if (get_int(landscape))
+                  set_state(PART:"bg", "scrollable_land", 0.0);
+                else
+                  set_state(PART:"bg", "scrollable", 0.0);
+              }
+         }
+      }
+      program { name: "tab_item_5";
+         signal: "elm,number,item,5";
+         source: "elm";
+         script {
+            set_int(items_number, 5);
+         }
+         after: "tab_item_upper_5";
+      }
+      program { name: "tab_item_6";
+         signal: "elm,number,item,6";
+         source: "elm";
+         script {
+            set_int(items_number, 6);
+         }
+         after: "tab_item_upper_5";
+      }
+      program { name: "tab_item_7";
+         signal: "elm,number,item,7";
+         source: "elm";
+         script {
+            set_int(items_number, 7);
+         }
+         after: "tab_item_upper_5";
+      }
+      program { name: "tab_item_8";
+         signal: "elm,number,item,8";
+         source: "elm";
+         script {
+            set_int(items_number, 8);
+         }
+         after: "tab_item_upper_5";
+      }
+      program { name: "tab_item_9";
+         signal: "elm,number,item,9";
+         source: "elm";
+         script {
+            set_int(items_number, 9);
+         }
+         after: "tab_item_upper_5";
+      }
+      program { name: "tab_item_10";
+         signal: "elm,number,item,10";
+         source: "elm";
+         script {
+            set_int(items_number, 10);
+         }
+         after: "tab_item_upper_5";
+      }
+      program { name: "tab_item_upper_5";
+         script {
+            if (get_int(landscape))
+              set_state(PART:"bg", "scrollable_land", 0.0);
+            else
+              set_state(PART:"bg", "scrollable", 0.0);
+         }
+      }
+      program {
+         name: "change_to_landscape";
+         script {
+            if (!get_int(landscape)) {
+               set_int(landscape, 1);
+               if (get_int(items_number) == 4)
+                 set_state(PART:"bg", "4items_land", 0.0);
+               else if (get_int(items_number) == 3)
+                 set_state(PART:"bg", "3items_land", 0.0);
+               else if (get_int(items_number) == 2)
+                 set_state(PART:"bg", "2items_land", 0.0);
+               else if (get_int(items_number) > 4)
+                 set_state(PART:"bg", "scrollable_land", 0.0);
+            }
+         }
+      }
+      program {
+         name: "change_to_portrait";
+         script {
+            if (get_int(landscape)) {
+              set_int(landscape, 0);
+               if (get_int(items_number) == 4)
+                 {
+                   if (get_int(icon_text))
+                     set_state(PART:"bg", "4items", 0.0);
+                   else
+                     set_state(PART:"bg", "scrollable", 0.0);
+                 }
+               else if (get_int(items_number) == 3)
+                 set_state(PART:"bg", "3items", 0.0);
+               else if (get_int(items_number) == 2)
+                 set_state(PART:"bg", "2items", 0.0);
+               else if (get_int(items_number) > 4)
+                 set_state(PART:"bg", "scrollable", 0.0);
+            }
+         }
+      }
+      program { name: "landscape_mode";
+         source: "elm";
+         signal: "elm,state,orient,90";
+         after: "change_to_landscape";
+      }
+      program { name: "landscape_mode2";
+         source: "elm";
+         signal: "elm,state,orient,270";
+         after: "change_to_landscape";
+      }
+      program { name: "portrait_mode";
+         source: "elm";
+         signal: "elm,state,orient,0";
+         after: "change_to_portrait";
+      }
+      program { name: "portrait_mode2";
+         source: "elm";
+         signal: "elm,state,orient,180";
+         after: "change_to_portrait";
+      }
+   }
+}
+
+group { name: "processing_view_layout";
+   styles {
+      style { name: "popup_processing_style";
+         base: "font=Tizen:style=Regular align=left font_size="POPUP_TEXT_FONT_SIZE1" color=#FFFFFF color_class=T123 wrap=mixed ellipsis=1.0 text_class=label";
+         tag:  "br" "\n";
+         tag:  "tab" "\t";
+      }
+   }
+   parts {
+      part { name: "bg";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: POPUP_PROCESSING_VIEW_LAYOUT_BG_MIN_INC;
+            fixed: 1 0;
+         }
+      }
+      part { name: "pad_l";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 0;
+            fixed: 1 0;
+            rel1.relative: 0.0 0.0;
+            rel2.relative: 0.0 1.0;
+            align: 0.0 0.0;
+         }
+      }
+      part { name: "pad_r";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 0;
+            fixed: 1 0;
+            rel1.relative: 1.0 0.0;
+            rel2.relative: 1.0 1.0;
+            align: 1.0 0.0;
+         }
+      }
+      part { name: "processing";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: POPUP_PROCESSING_SWALLOW_VIEW_LAYOUT_MIN_INC;
+            max: POPUP_PROCESSING_SWALLOW_VIEW_LAYOUT_MAX_INC;
+            rel1 {
+               relative: 1.0 0.0;
+               to_x: "pad_l";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to_x: "pad_r";
+            }
+            align: 0.0 0.5;
+         }
+      }
+      part { name: "pad_after_processing";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            min: POPUP_PROCESSING_SWALLOW_VIEW_LAYOUT_PADDING_AFTER_INC;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "processing";
+            }
+            rel2.to: "processing";
+            align: 0.0 0.5;
+         }
+      }
+      part { name: "elm.text";
+         type: TEXTBLOCK;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: POPUP_PROCESSING_SWALLOW_VIEW_LAYOUT_TEXT_MIN_INC;
+            fixed: 0 1;
+            rel1 {
+               relative: 1.0 0.0;
+               to: "pad_after_processing";
+            }
+            rel2 {
+               relative: 0.0 1.0;
+               to_x: "pad_r";
+            }
+            align: 0.0 0.5;
+            text {
+               style: "popup_processing_style";
+               min: 0 1;
+            }
+         }
+      }
+   }
+}
+
+
+} //collections
+
+
diff --git a/sim_reset/CMakeLists.txt b/sim_reset/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..783f964
--- /dev/null
@@ -0,0 +1,49 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(message C)
+
+SET(MSG_SIM_RESET sim-reset-efl-lite)
+SET(SRCS ./msg-sim-reset-main.c)
+SET(CMAKE_SKIP_BUILD_RPATH TRUE)
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+       SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_COMMON_DIR}
+                       ${CMAKE_SOURCE_SIM_RESET_DIR}
+                       /usr/include/msg-service/
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED elementary aul dlog msg-service capi-appfw-application)
+
+FOREACH(flag ${pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fpie")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+       MESSAGE("add -DTARGET")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+ADD_DEFINITIONS("-DDEBUG")
+ADD_DEFINITIONS("-DDEBUG_ON")
+ADD_DEFINITIONS("-DLCD_TYPE_WVGA")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+
+ADD_EXECUTABLE(${MSG_SIM_RESET} ${SRCS})
+TARGET_LINK_LIBRARIES(${MSG_SIM_RESET} ${pkgs_LDFLAGS})
+
+INSTALL(TARGETS ${MSG_SIM_RESET} DESTINATION bin)
+
+# install desktop file & icon
+
+# i18n
+#ADD_SUBDIRECTORY(po)
diff --git a/sim_reset/msg-sim-reset-main.c b/sim_reset/msg-sim-reset-main.c
new file mode 100755 (executable)
index 0000000..651ec0b
--- /dev/null
@@ -0,0 +1,415 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-sim-reset-main.h"
+
+int g_msg_sim_reset_sig_to_handle[] = { SIGILL, SIGABRT, SIGBUS, SIGFPE, SIGSEGV, };
+#define NUM_EMAIL_SIG_TO_HANDLE ((int)(sizeof(g_msg_sim_reset_sig_to_handle) / sizeof(g_msg_sim_reset_sig_to_handle[0])))
+struct sigaction g_msg_sim_reset_oldact[NUM_EMAIL_SIG_TO_HANDLE];
+
+static void __msg_sim_reset_get_sim_status(struct appdata *ad)
+{
+       int i;
+       int ret;
+       TelSimCardStatus_t sim_status;
+       int card_changed;
+
+       for (i = 0; i < TAPI_HANDLE_MAX + 1; ++i) {
+               if (ad->sim_info.handle[i]) {
+                       ret = tel_get_sim_init_info(ad->sim_info.handle[i], &sim_status, &card_changed);
+                       if (ret == 0) {
+
+                               if (sim_status == TAPI_SIM_STATUS_SIM_INIT_COMPLETED) {
+                                       ad->sim_info.sim_card_ready[i] = EINA_TRUE;
+                               } else {
+                                       D_EMSG("SIM[%d] is not completed initialization [%d]", i, sim_status);
+                               }
+                       } else {
+                               D_EMSG("Could not get sim[%d] status[%d]", i, ret);
+                       }
+               }
+       }
+}
+
+void msg_sim_reset_deinitialize_telephony(struct appdata *ad)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(ad == NULL, "ad is NULL");
+
+       unsigned int i = 0;
+       while (ad->sim_info.handle[i]) {
+               /* De-initialize TAPI handle */
+               tel_deinit(ad->sim_info.handle[i]);
+               ad->sim_info.handle[i] = NULL;
+
+               /* Move to next handle */
+               i++;
+       }
+
+       /* free cp_list */
+       g_strfreev(ad->sim_info.cp_list);
+       ad->sim_info.cp_list = NULL;
+       D_LEAVE;
+}
+
+void msg_sim_reset_sim_controller_deinit(struct appdata *ad)
+{
+       D_ENTER;
+       msg_sim_reset_deinitialize_telephony(ad);
+}
+
+void msg_sim_reset_data_service_cb(TapiHandle *handle, int result, void *data, void *user_data)
+{
+       D_ENTER;
+
+       struct appdata *ad = user_data;
+
+       int ret = 0;
+
+       if (ad->msgHandle != NULL) {
+               ret = msg_close_msg_handle(&ad->msgHandle);
+               if (ret != MSG_SUCCESS) {
+                               D_EMSG("msg_close_msg_handle() is failed !! : ret value is %d", ret);
+               }
+       }
+       int curr_sim_idx = 0;
+       preference_get_int(KEY_MSG_APP_RESET_SIM_INDEX, &curr_sim_idx);
+       D_MSG("Reset Sim Index = [ %d ]", curr_sim_idx);
+       if (curr_sim_idx != 0) {
+               preference_set_int(KEY_MSG_APP_RESET_SIM_INDEX, 0);
+       }
+       msg_sim_reset_sim_controller_deinit(ad);
+
+       if (ad->msgThreadIdList)
+               ad->msgThreadIdList = eina_list_free(ad->msgThreadIdList);
+
+       elm_exit();
+}
+
+void msg_sim_reset_storage_change_cb(msg_handle_t handle, msg_storage_change_type_t type, msg_id_list_s *pMsgIdList, void *user_param)
+{
+       D_ENTER;
+       struct appdata *ad = user_param;
+       Eina_List *l = NULL;
+       PMSG_LIST_DATA list_data;
+       int i;
+       int thread_id;
+       msg_network_status_t networkStatus;
+       int msg_type;
+
+       msg_error_t err = MSG_SUCCESS;
+
+
+       switch (type) {
+               case MSG_STORAGE_CHANGE_INSERT:
+                       D_EMSG("MSG_STORAGE_CHANGE_INSERT");
+                       break;
+               case MSG_STORAGE_CHANGE_UPDATE:
+                       D_EMSG("MSG_STORAGE_CHANGE_UPDATE");
+
+                       EINA_LIST_FOREACH(ad->msgThreadIdList, l, list_data) {
+                               if (list_data->msg_id == 0) {
+                                       for (i = 0; i < pMsgIdList->nCount; i++) {
+                                               msg_struct_t conv = msg_create_struct(MSG_STRUCT_CONV_INFO);
+                                               err = msg_get_conversation(ad->msgHandle, pMsgIdList->msgIdList[i], conv);
+                                               if (err != MSG_SUCCESS) {
+                                                       D_EMSG("msg_get_conversation failed");
+                                                       msg_release_struct(&conv);
+                                                       return;
+                                               }
+                                               msg_get_int_value(conv, MSG_CONV_MSG_THREAD_ID_INT, &thread_id);
+                                               if (thread_id == list_data->thread_id) {
+                                                       D_MSG("IF executed");
+                                                       list_data->msg_id = pMsgIdList->msgIdList[i];
+                                                       msg_get_int_value(conv, MSG_CONV_MSG_TYPE_INT, &msg_type);
+                                                       msg_get_int_value(conv, MSG_CONV_MSG_NETWORK_STATUS_INT, (int *)(&networkStatus));
+                                                       if (msg_type == MSG_TYPE_MMS &&
+                                                               (networkStatus == MSG_NETWORK_SEND_SUCCESS ||
+                                                               networkStatus == MSG_NETWORK_SEND_FAIL ||
+                                                               networkStatus == MSG_NETWORK_RETRIEVE_SUCCESS ||
+                                                               networkStatus == MSG_NETWORK_RETRIEVE_FAIL)) {
+                                                               ad->msgThreadIdList = eina_list_remove(ad->msgThreadIdList, list_data);
+                                                               if (eina_list_count(ad->msgThreadIdList) == 0) {
+                                                                       int curr_sim_idx = 0;
+                                                                       preference_get_int(KEY_MSG_APP_RESET_SIM_INDEX, &curr_sim_idx);
+                                                                       D_MSG("List Count is ZERO . Reset Sim Index is :- [  %d  ]", curr_sim_idx);
+                                                                       if (curr_sim_idx > 0) {
+                                                                               if (TAPI_API_SUCCESS != tel_set_network_default_data_subscription(ad->sim_info.handle[curr_sim_idx-1], msg_sim_reset_data_service_cb, (void *)ad)) {
+                                                                                       D_EMSG("tel_set_network_default_data_subscription failed");
+                                                                               }
+                                                                       }
+                                                               }
+                                                               free(list_data);
+                                                       }
+                                               }
+                                               msg_release_struct(&conv);
+                                       }
+                               } else {
+                                       for (i = 0; i < pMsgIdList->nCount; i++) {
+                                               msg_struct_t conv = msg_create_struct(MSG_STRUCT_CONV_INFO);
+                                               err = msg_get_conversation(ad->msgHandle, pMsgIdList->msgIdList[i], conv);
+                                               if (err != MSG_SUCCESS) {
+                                                       D_EMSG("msg_get_conversation failed");
+                                                       msg_release_struct(&conv);
+                                                       return;
+                                               }
+                                               msg_get_int_value(conv, MSG_CONV_MSG_THREAD_ID_INT, &thread_id);
+                                               if (thread_id == list_data->thread_id && pMsgIdList->msgIdList[i] == list_data->msg_id) {
+                                                       D_MSG("ELSE executed");
+                                                       msg_get_int_value(conv, MSG_CONV_MSG_TYPE_INT, &msg_type);
+                                                       msg_get_int_value(conv, MSG_CONV_MSG_NETWORK_STATUS_INT, (int *)(&networkStatus));
+                                                       if ((msg_type == MSG_TYPE_MMS || msg_type == MSG_TYPE_MMS_NOTI) &&
+                                                               (networkStatus == MSG_NETWORK_SEND_SUCCESS ||
+                                                               networkStatus == MSG_NETWORK_SEND_FAIL ||
+                                                               networkStatus == MSG_NETWORK_RETRIEVE_SUCCESS ||
+                                                               networkStatus == MSG_NETWORK_RETRIEVE_FAIL)) {
+                                                               ad->msgThreadIdList = eina_list_remove(ad->msgThreadIdList, list_data);
+                                                               if (eina_list_count(ad->msgThreadIdList) == 0) {
+                                                                       int curr_sim_idx = 0;
+                                                                       preference_get_int(KEY_MSG_APP_RESET_SIM_INDEX, &curr_sim_idx);
+                                                                       if (curr_sim_idx > 0) {
+                                                                               D_MSG("List Count is ZERO . Reset Sim Index is :- [  %d  ]", curr_sim_idx);
+                                                                               if (TAPI_API_SUCCESS != tel_set_network_default_data_subscription(ad->sim_info.handle[curr_sim_idx-1], msg_sim_reset_data_service_cb, (void *)ad)) {
+                                                                                       D_EMSG("tel_set_network_default_data_subscription failed");
+                                                                               }
+                                                                       }
+                                                               }
+                                                               free(list_data);
+                                                       }
+                                               }
+                                               msg_release_struct(&conv);
+                                       }
+                               }
+                       }
+                       break;
+               case MSG_STORAGE_CHANGE_DELETE:
+                       D_EMSG("MSG_STORAGE_CHANGE_DELETE");
+                       /* If User Deletes the Message after switching and while sending is going on . Then we need to check the message Id present
+                        * in the Storage CHange Messgae List and the Eina_list . If Both matches and Eina list has no other element ,then we need to reset the SIM Back.*/
+                       EINA_LIST_FOREACH(ad->msgThreadIdList, l, list_data) {
+                               for (i = 0; i < pMsgIdList->nCount; i++) {
+                                       if (pMsgIdList->msgIdList[i] == list_data->msg_id) {
+                                               ad->msgThreadIdList = eina_list_remove(ad->msgThreadIdList, list_data);
+                                               if (eina_list_count(ad->msgThreadIdList) == 0) {
+                                                       int curr_sim_idx = 0;
+                                                       preference_get_int(KEY_MSG_APP_RESET_SIM_INDEX, &curr_sim_idx);
+                                                       if (curr_sim_idx > 0) {
+                                                               D_MSG("List Count is ZERO . Reset Sim Index is :- [  %d  ]", curr_sim_idx);
+                                                               if (TAPI_API_SUCCESS != tel_set_network_default_data_subscription(ad->sim_info.handle[curr_sim_idx-1], msg_sim_reset_data_service_cb, (void *)ad)) {
+                                                                       D_EMSG("tel_set_network_default_data_subscription failed");
+                                                               }
+                                                       }
+                                               }
+                                               free(list_data);
+                                       }
+                               }
+                       }
+                       break;
+       }
+
+       D_LEAVE;
+}
+
+static void _msg_sim_reset_main_signal_handler(int signum, siginfo_t *info, void *context)
+{
+       D_ENTER;
+       /* app_terminate() is called when the process receives the signals as following:
+        * SIGINT, SIGQUIT, SIGTERM */
+
+       D_EMSG("Received [%d] signal.", signum);
+
+       int idx;
+       for (idx = 0; idx < NUM_EMAIL_SIG_TO_HANDLE; idx++) {
+               if (g_msg_sim_reset_sig_to_handle[idx] == signum) {
+                       preference_set_int(KEY_MSG_APP_RESET_SIM_INDEX, 0);
+                       sigaction(signum, &g_msg_sim_reset_oldact[idx], NULL);
+                       break;
+               }
+       }
+
+       D_LEAVE;
+       raise(signum);
+}
+
+void msg_sim_reset_exception_handler(struct appdata *ad)
+{
+       D_ENTER;
+
+       int idx;
+       for (idx = 0; idx < NUM_EMAIL_SIG_TO_HANDLE; idx++) {
+               struct sigaction act;
+               act.sa_sigaction = (void *)_msg_sim_reset_main_signal_handler;
+               sigemptyset(&act.sa_mask);
+               act.sa_flags = SA_SIGINFO;
+               act.sa_flags |= SA_RESETHAND;
+               if (sigaction(g_msg_sim_reset_sig_to_handle[idx], &act, &g_msg_sim_reset_oldact[idx]) < 0) {
+                       D_EMSG("sigaction() failed!");
+               }
+       }
+}
+
+static bool app_create(void *data)
+{
+       D_ENTER;
+
+       struct appdata *ad = data;
+
+       msg_sim_reset_sim_controller_init(ad);
+
+       msg_sim_reset_exception_handler(ad);
+
+       return TRUE;
+}
+
+static void app_service(app_control_h service, void *data)
+{
+       D_ENTER;
+
+       struct appdata *ad = data;
+       PMSG_LIST_DATA list_data = NULL;
+       list_data = (PMSG_LIST_DATA)calloc(1, sizeof(MSG_LIST_DATA));
+       if (!list_data) {
+               D_EMSG("calloc list_data failed");
+               return;
+       }
+
+       if (!ad->msgHandle) {
+               D_MSG("Message Handle Is Null , Create Handle .");
+               int ret = 0;
+               char *resetId = NULL;
+               int *reset_index = NULL;
+               /* add message ID into first node of msgid_list */
+               if ((reset_index = malloc(sizeof(int))) == NULL) {
+                       D_EMSG("malloc reset_index is failed");
+                       free(list_data);
+                       list_data = NULL;
+                       return;
+               }
+               memset(reset_index, 0, sizeof(int));
+
+               ret = msg_open_msg_handle(&ad->msgHandle);
+               if (ret != MSG_SUCCESS) {
+                       D_EMSG("msg_open_msg_handle() is failed : ret = %d", ret);
+                       free(reset_index);
+                       reset_index = NULL;
+                       free(list_data);
+                       list_data = NULL;
+                       return;
+               }
+               /* Register For storage change callback */
+               msg_reg_storage_change_callback(ad->msgHandle, &msg_sim_reset_storage_change_cb, (void *)ad);
+
+               app_control_get_extra_data(service, MSG_BUNDLE_KEY_RESET_ID, &resetId);
+               *reset_index = atoi(resetId);
+               ad->reset_index = *reset_index;
+               free(resetId);
+               free(reset_index);
+               resetId = NULL;
+               reset_index = NULL;
+       }
+
+       char *strMsgId = NULL;
+       char *strTid = NULL;
+       int msgId = 0;
+       int thId = 0;
+
+       app_control_get_extra_data(service, MSG_BUNDLE_KEY_MSG_ID, &strMsgId);
+       if (strMsgId == NULL) {
+               D_EMSG("app_control_get_extra_data() strMsgId is failed !!");
+               free(list_data);
+               list_data = NULL;
+               return;
+       }
+       app_control_get_extra_data(service, MSG_BUNDLE_KEY_THREAD_ID, &strTid);
+
+       if (strTid == NULL) {
+               D_EMSG("app_control_get_extra_data() strTid is failed !!");
+               free(strMsgId);
+               free(list_data);
+               list_data = NULL;
+               strMsgId = NULL;
+               return;
+       }
+
+
+       msgId = atoi(strMsgId);
+       thId = atoi(strTid);
+       list_data->msg_id = msgId;
+       list_data->thread_id = thId;
+
+       D_MSG("Reset Id = [ %d ] Message Id = [ %d ] Thread Id = [ %d ]", ad->reset_index, list_data->msg_id, list_data->thread_id);
+       ad->msgThreadIdList = eina_list_append(ad->msgThreadIdList, list_data);
+
+       free(strMsgId);
+       free(strTid);
+       strMsgId = NULL;
+       strTid = NULL;
+
+       D_LEAVE;
+}
+
+static void app_terminate(void *data)
+{
+       struct appdata *ad = data;
+       int ret = 0;
+
+       if (ad->msgHandle != NULL) {
+               ret = msg_close_msg_handle(&ad->msgHandle);
+               if (ret != MSG_SUCCESS) {
+                               D_EMSG("msg_close_msg_handle() is failed !! : ret value is %d", ret);
+               }
+       }
+
+       preference_set_int(KEY_MSG_APP_RESET_SIM_INDEX, 0);
+
+       msg_sim_reset_sim_controller_deinit(ad);
+
+       if (ad->msgThreadIdList)
+               ad->msgThreadIdList = eina_list_free(ad->msgThreadIdList);
+}
+
+static void app_pause(void *data)
+{
+       D_ENTER;
+}
+
+static void app_resume(void *data)
+{
+       D_ENTER;
+}
+
+
+__EXPORT_API__ int main(int argc, char *argv[])
+{
+       D_ENTER;
+
+       msg_common_init_default_preference();
+
+       struct appdata ad;
+       memset(&ad, 0x0, sizeof(struct appdata));
+
+       ui_app_lifecycle_callback_s event_callback = {0,};
+
+       event_callback.create = app_create;
+       event_callback.terminate = app_terminate;
+       event_callback.pause = app_pause;
+       event_callback.resume = app_resume;
+       event_callback.app_control = app_service;
+
+       D_LEAVE;
+       return ui_app_main(argc, argv, &event_callback, &ad);
+}
diff --git a/sim_reset/msg-sim-reset-main.h b/sim_reset/msg-sim-reset-main.h
new file mode 100644 (file)
index 0000000..232207c
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <stdio.h>
+#include "ITapiSim.h"
+#include "ITapiNetwork.h"
+#include "ITapiCall.h"
+#include <ITapiModem.h>
+#include <app.h>
+#include "msg-ui-util.h"
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+#include <Elementary.h>
+#include <signal.h>
+
+#define KEY_MSG_APP_RESET_SIM_INDEX "db/private/org.tizen.message/reset_sim_index"
+
+#define MSG_BUNDLE_KEY_MSG_ID                  "msgId"
+#define MSG_BUNDLE_KEY_RESET_ID                        "resetSimId"
+#define MSG_BUNDLE_KEY_THREAD_ID               "threadId"
+#define TAPI_HANDLE_MAX  2
+
+typedef struct _COMPOSER_SIM_STATUS_INFO
+{
+       TapiHandle *handle[TAPI_HANDLE_MAX+1];
+       Eina_Bool sim_card_ready[TAPI_HANDLE_MAX + 1];
+       char **cp_list;
+} SIM_STATUS_INFO;
+
+/* AppData structure */
+struct appdata {
+       msg_handle_t msgHandle;
+       Eina_List *msgThreadIdList;
+       int reset_index;
+       SIM_STATUS_INFO sim_info;
+};
+
+typedef struct {
+       int msg_id;
+       int thread_id;
+}MSG_LIST_DATA, *PMSG_LIST_DATA;
diff --git a/thread/include/msg-ui-thread-main.h b/thread/include/msg-ui-thread-main.h
new file mode 100755 (executable)
index 0000000..1aa6130
--- /dev/null
@@ -0,0 +1,654 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __DEF_MSG_UI_THREAD_MAIN_H__
+#define __DEF_MSG_UI_THREAD_MAIN_H__
+
+#include <stdio.h>
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+
+#include <libintl.h>
+#include <bundle.h>
+#include <Ecore.h>
+#include <Ecore_IMF.h>
+#include <Elementary.h>
+#include <ui-gadget-module.h>
+#include <utilX.h>
+#include <time.h>
+#include <contacts.h>
+
+#include "message.h"
+#include "msg-ui-util.h"
+#include "msg-ui-image-resource.h"
+#include "msg-ui-common-utility.h"
+
+#define MSG_THREAD_THEME       EDJDIR"/thread_genlist.edj"
+#define MSG_THREAD_UNREAD_IMG_LAYOUT "unread_img_layout"
+
+#define MSG_THREAD_DELETE_NOTI_TIME 1.5
+#define MSG_THREAD_LIST_MAX_COUNT 10
+#define MSG_THREAD_LIST_PARTIAL_LOADING_CNT 20
+
+#define MSG_THREAD_LIST_POPUP_MAX_CNT (6)
+#define MSG_THREAD_LIST_POPUP_MAX_CNT_LANDSCAPE (2.5)
+#define MSG_THREAD_LIST_POPUP_MAX_HEIGHT 480
+#define MSG_THREAD_LIST_POPUP_MAX_HEIGHT_LANDSCAPE 360
+#define MSG_THREAD_LIST_POPUP_ITEM_HEIGHT 96
+#define MSG_THREAD_LIST_ADD_TAG_POPUP_MAX_HEIGHT_LANDSCAPE 252
+
+#define MSG_THREAD_LIST_INDICATOR_HEIGHT 36
+#define MSG_THREAD_LIST_PREV_DATA_LEN 60
+#define MSG_THREAD_LIST_SCRL_TIME 0.1
+
+
+typedef struct _MSG_THREAD_LIST_DATA MSG_THREAD_LIST_DATA, *PMSG_THREAD_LIST_DATA;
+typedef struct _MSG_APP_THREAD_CONV_DATA_S MSG_APP_THREAD_CONV_DATA_S, *PMSG_APP_THREAD_CONV_DATA_S;
+typedef struct _MSG_APP_THREAD_MSG_DATA_S MSG_APP_THREAD_MSG_DATA_S, *PMSG_APP_THREAD_MSG_DATA_S;
+typedef struct _MSG_APP_THREAD_ADDR_INFO_S MSG_APP_THREAD_ADDR_INFO_S, *PMSG_APP_THREAD_ADDR_INFO_S;
+typedef struct _MSG_APP_THREAD_SEARCH_TITLE_S MSG_APP_THREAD_SEARCH_TITLE_S, *PMSG_APP_THREAD_SEARCH_TITLE_S;
+
+typedef struct _MSG_APP_THREAD_POPUP MSG_APP_THREAD_POPUP, *PMSG_APP_THREAD_POPUP;
+typedef struct _MSG_APP_THREAD_POPUP_PROGRESS MSG_APP_THREAD_POPUP_PROGRESS, *PMSG_APP_THREAD_POPUP_PROGRESS;
+typedef struct _MSG_APP_THREAD_POPUP_ADDRESS MSG_APP_THREAD_POPUP_ADDRESS, *PMSG_APP_THREAD_POPUP_ADDRESS;
+typedef struct _MSG_APP_THREAD_POPUP_ACTION MSG_APP_THREAD_POPUP_ACTION, *PMSG_APP_THREAD_POPUP_ACTION;
+typedef struct _MSG_APP_THREAD_POPUP_CONTEXTUAL MSG_APP_THREAD_POPUP_CONTEXTUAL, *PMSG_APP_THREAD_POPUP_CONTEXTUAL;
+
+typedef enum {
+       THREAD_NORMAL_VIEW = 0,
+       THREAD_EDIT_VIEW,               /** Edit viw mode*/
+       THREAD_UNLOAD_VIEW, /* when it calls other gadgets or views. */
+} ThreadViewMode;
+
+typedef enum {
+       THREAD_NORMAL_LIST_TYPE,        /** Normal converstaion THREAD list */
+       THREAD_SIM_LIST_TYPE,           /** <More -Sim messages list> */
+       THREAD_CBMSG_LIST_TYPE, /** <More -CB Message list> */
+} ThreadMsgListType;
+
+typedef enum {
+       THREAD_LIST_APP_DATA_CONV = 0,
+       THREAD_LIST_APP_DATA_MSG,
+       THREAD_LIST_APP_DATA_SEARCH,
+} ThreadAppDataType;
+
+typedef enum {
+       THREAD_SEARCH_OFF = 0,
+       THREAD_SEARCH_ON,
+} ThreadSearchMode;
+
+typedef enum {
+       THREAD_ITC_EMPTY = 0,
+       THREAD_ITC_SEARCH_TITLE,
+       THREAD_ITC_POPUP,
+} ThreadItcType;
+
+typedef enum {
+       THREAD_ACTION_NONE = 0,
+       THREAD_ACTION_DELETE,
+       THREAD_ACTION_RESTORE,
+       THREAD_ACTION_COPY_TO_PHONE,
+       THREAD_ACTION_COPY_TO_SIM,
+       THREAD_ACTION_COPY_TEXT,
+} ThreadActionType;
+
+typedef enum {
+       THREAD_POPUP_NONE = 0,
+       THREAD_POPUP_MORE,
+       THREAD_POPUP_PROGRESS,
+       THREAD_POPUP_ADDRESS,
+       THREAD_POPUP_ACTION,
+       THREAD_POPUP_CONTEXTUAL,
+       THREAD_POPUP_SEARCH,
+} ThreadPopupType;
+
+typedef enum {
+       ADDR_POPUP_NONE = 0,
+       ADDR_POPUP_CALL,
+       ADDR_POPUP_VCALL,
+} AddrPopupAction;
+
+typedef enum {
+       THREAD_SEARCH_ALL = 0,
+       THREAD_SEARCH_CONV,
+       THREAD_SEARCH_MSG,
+} ThreadSearchType;
+
+typedef enum {
+       THREAD_SEARCH_STATE_NONE = 0,
+       THREAD_SEARCH_STATE_WAIT,
+} ThreadSearchState;
+
+typedef enum {
+       THREAD_UG_TYPE_NONE = 0,
+       THREAD_UG_TYPE_SETTING,
+       THREAD_UG_TYPE_VIEWER,
+       THREAD_UG_TYPE_CONTACT,
+       THREAD_UG_TYPE_HELP,
+} LoadedUgType;
+
+typedef enum {
+       THREAD_CT_UG_TYPE_NONE = 0,
+       THREAD_CT_UG_TYPE_DETAIL,
+       THREAD_CT_UG_TYPE_ADD,
+       THREAD_CT_UG_TYPE_UPDATE,
+} ContactUgType;
+
+typedef enum {
+       THREAD_CTXPOPUP_CALL,
+       THREAD_CTXPOPUP_DELETE_CONV,
+       THREAD_CTXPOPUP_DELETE_MSG,
+       THREAD_CTXPOPUP_VIEW_CT,
+       THREAD_CTXPOPUP_ADD_CT,
+       THREAD_CTXPOPUP_BLOCK,
+       THREAD_CTXPOPUP_UNBLOCK,
+       THREAD_CTXPOPUP_RESTORE,
+       THREAD_CTXPOPUP_VIEW_DETAIL,
+       THREAD_CTXPOPUP_COPY_PHONE,
+       THREAD_CTXPOPUP_COPY_SIM,
+       THREAD_CTXPOPUP_COPY_TEXT,
+       THREAD_CTXPOPUP_FORWARD,
+} CtxPopupType;
+
+enum {
+       THREAD_ROTATE_ANGLE_PORTRAIT = 0,
+       THREAD_ROTATE_ANGLE_PORTRAIT_UPSIDEDOWN = 180,
+       THREAD_ROTATE_ANGLE_LANDSCAPE = 270,
+       THREAD_ROTATE_ANGLE_LANDSCAPE_UPSIDEDOWN = 90,
+       THREAD_ROTATE_ANGLE_UNKNOWN = -1,
+};
+
+typedef enum {
+       THREAD_REUSABLE_LAYOUT_TYPE_NONE = 0,
+       THREAD_REUSABLE_LAYOUT_TYPE_THUMB,
+       THREAD_REUSABLE_LAYOUT_TYPE_UNREAD,
+       THREAD_REUSABLE_LAYOUT_TYPE_CHECK
+} ReusableLayoutType;
+
+typedef enum {
+       THREAD_THUMB_NONE = 0,
+       THREAD_THUMB_CONTACT,
+       THREAD_THUMB_GROUP,
+       THREAD_THUMB_USER,
+       THREAD_THUMB_CB,
+       THREAD_THUMB_PUSH,
+       THREAD_THUMB_OTA
+}ThumbType;
+
+typedef enum {
+       UPDATE_MODE_NORMAL = 0,
+       UPDATE_MODE_DELAY,
+       UPDATE_MODE_MANUAL
+}UpdateMode;
+
+typedef struct {
+       Ecore_Timer *timer;
+       int msg_id_cnt;
+       Eina_List *req_list;
+} MSG_DELAYED_UPDATE_DATA, *PMSG_DELAYED_UPDATE_DATA;
+
+typedef struct _MSG_THREAD_DATA {
+
+       msg_handle_t msgHandle;
+       int app_state;
+
+       Elm_Theme *th;
+       Evas_Object *win_main;
+       Evas_Object *conform;
+       Evas_Object *layout_main;
+       Evas_Object *navi_frame;
+       Evas_Object *done_button;
+
+       Elm_Genlist_Item_Class itc_empty;
+       Elm_Genlist_Item_Class itc_search_title;
+       Elm_Genlist_Item_Class itc_popup;
+
+       char *time_12h_ptn;
+       char *time_24h_ptn;
+       char *date_ptn_default;
+       char *date_ptn_year;
+       msg_time_format time_fmt;
+       char locale[DEF_BUF_LEN];
+
+       bool isRotate;                  /* Rotation state */
+       bool keypadIsShown;     /*bubble's keypad status */
+
+       bool redrawList;
+       int update_mode;                /* UpdateMode enum */
+       PMSG_DELAYED_UPDATE_DATA delayed_update;
+
+       Ecore_Idler *search_idler;
+       Ecore_Thread *th_search;
+
+       app_control_h callee_svc_handle;
+
+       PMSG_THREAD_LIST_DATA list_data[MSG_THREAD_LIST_MAX_COUNT];
+
+} MSG_THREAD_DATA, *PMSG_THREAD_DATA;
+
+typedef struct {
+       ThreadSearchType search_type;
+       char search_str[DEF_BUF_LEN+1];
+       msg_struct_list_s search_list;
+} MSG_SEARCH_LIST_DATA, *PMSG_SEARCH_LIST_DATA;
+
+typedef struct {
+       ThreadMsgListType list_type;
+       ThreadSearchType search_type;
+       char search_str[DEF_BUF_LEN+1];
+} MSG_SEARCH_DATA, *PMSG_SEARCH_DATA;
+
+typedef struct {
+       int type;                       /* ReusableLayoutType */
+       int sub_type;           /* ThumbType */
+       Evas_Object *layout;
+} MSG_CACHED_LAYOUT_DATA;
+
+typedef struct _MSG_THREAD_LIST_DATA {
+
+       Evas_Object *genlist;
+       Evas_Object *content_ly;
+       Evas_Object *noc_ly;
+       Elm_Object_Item *nf_it; //title, control bar naviframe item
+
+       Evas_Object *more_btn;
+       Evas_Object *composer_btn;
+       Evas_Object *toolbar;
+       Elm_Object_Item *toolbar_btn[CONTROLBAR_ITEM_MAX];
+
+       Evas_Object *search_entry;
+       Evas_Object *searchfield_ly;
+       Evas_Object *search_gl;
+       Ecore_Timer *search_timer;
+       Ecore_Idler *entry_focus_idler;
+       Ecore_Idler *toast_popup_idler;
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+       Evas_Object *adv_search_ly;
+       Evas_Object *adv_search_box;
+       Evas_Object *adv_search_thread_divider;
+       Evas_Object *adv_search_msg_divider;
+       Elm_Object_Item *adv_search_nf_it;
+       Elm_Theme *adv_search_bubble_theme;
+       Eina_List *search_bubble_list;
+       int search_append_cnt;
+#endif
+
+       Elm_Genlist_Item_Class itc_read;
+       Elm_Genlist_Item_Class itc_read_icon;
+       Elm_Genlist_Item_Class itc_unread;
+       Elm_Genlist_Item_Class itc_unread_icon;
+       Elm_Genlist_Item_Class itc_status;
+       Elm_Genlist_Item_Class itc_status_icon;
+       Elm_Genlist_Item_Class itc_msg;
+       Elm_Genlist_Item_Class itc_dummy;                       // dummy item to avoid overlapping by a floating composer button
+       Elm_Genlist_Item_Class itc_select_all;
+       Elm_Genlist_Item_Class itc_search;
+
+       ThreadViewMode view_mode;
+       ThreadMsgListType list_type;
+       ThreadAppDataType app_data_type;
+       ThreadActionType action_type;
+       ThreadSearchMode search_mode;
+       ThreadSearchType search_type;
+
+       Elm_Object_Item *sel_gen_item;
+       int sel_thread_id;
+       int sel_msg_id;
+       ThreadSearchType sel_gen_type;
+
+       struct ug_cbs cbs;
+       ui_gadget_h loaded_ug;
+       int loaded_ug_type;
+
+       Evas_Object *sel_all_btn;
+       Evas_Object *sel_all_check;
+       Eina_Bool sel_all_checked;
+       Eina_List *chk_list;
+       int sel_index;
+
+       char *search_str;
+       ThreadSearchState search_state;
+       msg_struct_list_s search_conv_list;
+       msg_struct_list_s search_msg_list;
+
+       int search_thread_cnt;
+       int search_msg_cnt;
+
+       int recv_bubble_style;
+       int sent_bubble_style;
+       Ecore_Animator *search_animator;
+
+       Ecore_Idler *load_idler;
+       Ecore_Timer *db_wait_timer;
+       int db_wait_cnt;
+       int loaded_cnt;
+       int unread_cnt;
+       int item_cnt;
+       int check_cnt;
+       int multi_action_item_cnt;
+       Ecore_Timer *scrl_timer;
+       Ecore_Timer *checkbox_timer;
+
+       PMSG_APP_THREAD_POPUP pPopup;
+       bool redrawList;
+       bool retain_list_pos;
+
+       Eina_Bool swipe_enable;
+
+       Eina_List *edit_view_update_id_list;
+       Eina_List *reusable_layout_list;
+} _MSG_THREAD_LIST_DATA;
+
+typedef struct _MSG_APP_THREAD_CONV_DATA_S {
+       int app_data_type;
+       msg_thread_id_t thread_id;
+       int last_msg_id;
+       char thread_data[DEF_BUF_LEN_S+1];
+       time_t *thread_time;
+       msg_direction_type_t direction;
+       int unread_cnt;
+       int sms_cnt;
+       int mms_cnt;
+       int msg_type;
+
+       PMSG_APP_THREAD_ADDR_INFO_S *addr_info;
+       int addr_cnt;
+       bool bDraft;
+       bool bFailed;
+       bool bSending;
+       bool bHighlight;
+       Eina_Bool is_check;
+       Eina_List *reusable_layouts;
+} _MSG_APP_THREAD_CONV_DATA_S;
+
+typedef struct _MSG_APP_THREAD_MSG_DATA_S {
+       int app_data_type;
+       int msg_id;
+       int thread_id;
+       char msg_body[MAX_MSG_TEXT_LEN+1];
+       time_t *msg_time;
+       int msg_type;
+       bool is_read;
+       int direction;
+
+       PMSG_APP_THREAD_ADDR_INFO_S *addr_info;
+       int addr_cnt;
+
+       Eina_Bool is_check;
+       bool bHighlight;
+} _MSG_APP_THREAD_MSG_DATA_S;
+
+typedef struct _MSG_APP_THREAD_SEARCH_TITLE_S {
+       Elm_Object_Item *title_it;
+       ThreadSearchType nType;
+       int subitem_cnt;
+} _MSG_APP_THREAD_SEARCH_TITLE_S;
+
+typedef struct _MSG_APP_THREAD_ADDR_INFO_S {
+       int contact_id;
+       int addr_type;
+       char display_name[DEF_THREAD_NAME_LEN+1];
+       char address[DEF_THREAD_ADDR_LEN+1];
+       char* thumb_path;
+
+       Eina_Bool is_check;
+       Evas_Object *chk;
+} _MSG_APP_THREAD_ADDR_INFO_S;
+
+/* thread list popup*/
+typedef struct _MSG_APP_THREAD_POPUP {
+       int popup_type;
+       Evas_Object *popup_object;
+} _MSG_APP_THREAD_POPUP;
+
+typedef struct _MSG_APP_THREAD_POPUP_PROGRESS {
+       int popup_type;
+       Evas_Object *popup_object;
+
+       bool include_protected_msg;
+       Evas_Object *progressbar;
+       Ecore_Thread *multi_action_thread;
+} _MSG_APP_THREAD_POPUP_PROGRESS;
+
+typedef struct _MSG_APP_THREAD_POPUP_ADDRESS {
+       int popup_type;
+       Evas_Object *popup_object;
+
+       AddrPopupAction addr_action;
+       Evas_Object *genlist;
+       Ecore_Job *job_popup_end;
+} _MSG_APP_THREAD_POPUP_ADDRESS;
+
+typedef struct _MSG_APP_THREAD_POPUP_ACTION {
+       int popup_type;
+       Evas_Object *popup_object;
+
+       bool include_protected_msg;
+       Evas_Object *btn_ok;
+} _MSG_APP_THREAD_POPUP_ACTION;
+
+typedef struct _MSG_APP_THREAD_POPUP_CONTEXTUAL {
+       int popup_type;
+       Evas_Object *popup_object;
+
+       Evas_Object *genlist;
+} _MSG_APP_THREAD_POPUP_CONTEXTUAL;
+
+#define MSG_THREAD_POPUP_DATA  "popup_data"
+#define MSG_THREAD_DEL_CONFIRM "del_confirm"
+#define MSG_THREAD_MULTI_ACTION        "multi_action_thread"
+
+PMSG_THREAD_DATA msg_ui_thread_get_data(void);
+msg_handle_t msg_ui_thread_get_data_handle(void);
+Elm_Genlist_Item_Class* msg_ui_thread_get_itc_type(ThreadItcType type);
+
+void *msg_ui_thread_init_thread_data(struct appdata *ad);
+void msg_ui_thread_deinit_thread_data(void *data);
+
+PMSG_THREAD_LIST_DATA msg_ui_thread_create_thread_list_data(ThreadMsgListType list_type, ThreadAppDataType app_data_type);
+void msg_ui_thread_destroy_thread_list_data(PMSG_THREAD_LIST_DATA pListData);
+PMSG_THREAD_LIST_DATA msg_ui_thread_get_default_list(void);
+PMSG_THREAD_LIST_DATA msg_ui_thread_get_current_list(void);
+PMSG_THREAD_LIST_DATA msg_ui_thread_get_prev_list(PMSG_THREAD_LIST_DATA pListData);
+
+void msg_ui_thread_load_thread_view(void *data, app_control_h service);
+void msg_ui_thread_load_message_box(int list_type);
+void msg_ui_thread_reset_thread_view(void *data, app_control_h service);
+
+void msg_ui_thread_fullview_launch(PMSG_THREAD_DATA pData, PMSG_THREAD_LIST_DATA pListData);
+Evas_Object *msg_ui_thread_create_content_layout(Evas_Object *parent);
+Evas_Object *msg_ui_thread_create_nocontent_layout(Evas_Object *parent, ThreadSearchMode search_mode);
+void msg_ui_thread_create_nocontent_layout_change(Evas_Object *parent, ThreadSearchMode search_mode);
+Evas_Object *msg_ui_thread_create_layout_main(PMSG_THREAD_DATA pData);
+Evas_Object *msg_ui_thread_create_genlist(Evas_Object *parent, PMSG_THREAD_LIST_DATA pListData);
+Evas_Object *msg_ui_thread_create_searchbar_item(Evas_Object *parent, PMSG_THREAD_LIST_DATA pListData);
+
+void msg_ui_thread_reg_msg_cb_func(PMSG_THREAD_DATA pData);
+void msg_ui_thread_set_navi_toolbar_item(PMSG_THREAD_LIST_DATA pListData, bool bReset);
+#ifdef BADGE_COUNT_ENABLE
+void msg_ui_thread_set_title_unread_cnt(PMSG_THREAD_LIST_DATA pListData);
+#endif /* BADGE_COUNT_ENABLE */
+void msg_ui_thread_set_title_status(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_rotation_set(void *data, int rot);
+bool msg_ui_thread_rotation_get(void);
+void msg_ui_thread_lang_changed(void *data);
+void msg_ui_thread_region_changed(void *data);
+
+
+/* THREAD LIST */
+void msg_ui_thread_set_conv_data(PMSG_THREAD_LIST_DATA pListData, PMSG_APP_THREAD_CONV_DATA_S thread_data, msg_struct_t msgThreadInfo);
+void msg_ui_thread_set_msg_data(PMSG_APP_THREAD_MSG_DATA_S msg_data, msg_struct_t msgInfo);
+void msg_ui_thread_swipe_start(void *data, Elm_Object_Item *it, const char *em, const char *src);
+void msg_ui_thread_swipe_stop_left(void *data, Elm_Object_Item *it, const char *em, const char *src);
+void msg_ui_thread_swipe_stop_right(void *data, Elm_Object_Item *it, const char *em, const char *src);
+void msg_ui_thread_swipe_stop(void *data, Elm_Object_Item *it, const char *em, const char *src);
+char *msg_ui_thread_search_title_gl_text_get(void *data, Evas_Object *obj, const char *part);
+char *msg_ui_thread_msg_gl_text_get(void *data, Evas_Object *obj, const char *part);
+Evas_Object *msg_ui_thread_msg_gl_content_get(void *data, Evas_Object *obj, const char *part);
+void msg_ui_thread_msg_gl_del(void *data, Evas_Object *obj);
+void msg_ui_search_title_gl_del(void *data, Evas_Object *obj);
+void msg_ui_thread_msg_gl_sel(void *data, Evas_Object *obj, void *event_info);
+char *msg_ui_thread_gl_empty_get(void *data, Evas_Object *obj, const char *part);
+void  msg_ui_thread_list_load(PMSG_THREAD_LIST_DATA pListData, Eina_Bool bLaunch);
+void msg_ui_thread_list_update(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_list_item_insert_ex(PMSG_THREAD_LIST_DATA pListData, msg_thread_id_t thread_id, msg_struct_list_s *p_preloaded_peerlist);
+Eina_Bool msg_ui_thread_list_item_update_ex(PMSG_THREAD_LIST_DATA pListData, msg_thread_id_t thread_id, msg_struct_list_s *p_preloaded_peerlist);
+void msg_ui_thread_list_item_delete(PMSG_THREAD_LIST_DATA pListData, msg_thread_id_t thread_id);
+void msg_ui_thread_search_list_update_ex(PMSG_THREAD_LIST_DATA pListData, msg_id_list_s *pMsgIdList, int thread_id, int item_idx, msg_struct_list_s *p_preloaded_peerlist);
+void msg_ui_thread_list_add_dummy_item(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_list_del_dummy_item(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_list_rotation_set(void);
+
+void msg_ui_thread_msg_list_load(PMSG_THREAD_LIST_DATA pListData, int listType);
+void msg_ui_thread_list_msg_list_update(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_list_msg_item_insert(PMSG_THREAD_LIST_DATA pListData, msg_message_id_t msg_id);
+Eina_Bool msg_ui_thread_list_msg_item_update(PMSG_THREAD_LIST_DATA pListData, msg_message_id_t msg_id);
+void msg_ui_thread_list_msg_item_delete(PMSG_THREAD_LIST_DATA pListData, msg_message_id_t msg_id);
+
+void msg_ui_thread_search_job_cancel(PMSG_THREAD_LIST_DATA pListData);
+Eina_Bool msg_ui_thread_search_job_request(PMSG_THREAD_LIST_DATA pListData);
+Eina_Bool  msg_ui_thread_search_list_load(void *data);
+void msg_ui_thread_search_list_redraw(PMSG_THREAD_LIST_DATA pListData, bool bTypeChanged);
+
+Elm_Object_Item *msg_ui_thread_selected_gen_item_by_id(PMSG_THREAD_LIST_DATA pListData, int app_data_type, int sel_id);
+void msg_ui_thread_common_style_set(PMSG_THREAD_DATA pData);
+Elm_Genlist_Item_Class* msg_ui_thread_conv_item_get_itc_type(PMSG_THREAD_LIST_DATA pListData, PMSG_APP_THREAD_CONV_DATA_S item_data);
+
+void msg_ui_thread_destroy_reusable_layout_list(Eina_List *list);
+MSG_CACHED_LAYOUT_DATA *msg_ui_thread_get_cashed_layout_obj(PMSG_THREAD_LIST_DATA pListData, int type);
+
+#define msg_ui_thread_list_item_insert(pListData, thread_id)   msg_ui_thread_list_item_insert_ex(pListData, thread_id, NULL)
+#define msg_ui_thread_list_item_update(pListData, thread_id)   msg_ui_thread_list_item_update_ex(pListData, thread_id, NULL)
+#define msg_ui_thread_search_list_update(pListData, pMsgIdList, thread_id, item_idx)   msg_ui_thread_search_list_update_ex(pListData, pMsgIdList, thread_id, item_idx, NULL)
+
+
+/* THREAD CALLBACK */
+void msg_ui_thread_clear_delayed_update(PMSG_DELAYED_UPDATE_DATA p_delay_data);
+void msg_ui_thread_set_update_mode(PMSG_THREAD_DATA pData, UpdateMode mode);
+
+void msg_ui_thread_storage_change_cb(msg_handle_t handle, msg_storage_change_type_t storageChangeType, msg_id_list_s *pMsgIdList, void *user_param);
+void msg_ui_thread_contact_changed_cb(const char *view_uri, void *user_data);
+void msg_ui_thread_contact_display_order_changed_cb(contacts_name_display_order_e name_display_order, void* user_data);
+void msg_ui_thread_change_contact(PMSG_THREAD_DATA pData);
+void msg_ui_thread_ctlbar_multi_action_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_multi_action_thread_fn(void *data, Ecore_Thread *thread);
+void msg_ui_thread_multi_action_thread_feedback_fn(void *data, Ecore_Thread *thread, void *msg_data);
+void msg_ui_thread_multi_action_thread_finish_cb(void* data, Ecore_Thread *thread);
+void msg_ui_thread_multi_action_thread_cancel_cb(void* data, Ecore_Thread *thread);
+void msg_ui_thread_ctlbar_checkbox_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctlbar_cancel_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctlbar_search_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctlbar_setting_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctlbar_compose_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctlbar_message_box_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_popup_back_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_action_popup_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
+void msg_ui_thread_add_select_all_item(void *data);
+void msg_ui_thread_remove_select_all_item(void *data);
+void msg_ui_thread_sel_all_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_list_checked_cb(void *data, Evas_Object *obj, void *event_info);
+Eina_Bool msg_ui_thread_back_btn_clicked_cb(void *data, Elm_Object_Item *it);
+void msg_ui_thread_searchbar_entry_change_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_searchbar_entry_click_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_searchbar_activated_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_msg_searchbar_entry_imf_state_cb(void * data, Ecore_IMF_Context *ctx, int value);
+void msg_ui_thread_ctx_menu_delete_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctx_menu_restore_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctx_menu_block_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctx_menu_unblock_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctx_menu_ct_detail_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctx_menu_add_contacts_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_add_contact_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctx_menu_msg_detail_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctx_menu_call_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctx_menu_copy_phone_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctx_menu_copy_sim_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctx_menu_copy_text_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_ctx_menu_forward_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_timezone_change_cb(system_settings_key_e key, void *user_data);
+void msg_ui_thread_gl_highlighted(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_thread_gl_unhighlighted(void *data, Evas_Object *obj, void *event_info);
+#ifdef MSG_LONGPRESS_SUPPORTED
+void msg_ui_thread_longpressed_cb(void *data, Evas_Object *obj, void *event_info);
+#endif
+void msg_ui_thread_scroll_cb(void *data, Evas_Object *obj, void *event_info);
+
+void msg_ui_thread_clear_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
+/* THREAD UTILS */
+int msg_ui_thread_launch_voice_call(const char *call_num);
+void msg_ui_thread_launch_setting(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_launch_contact_ug(PMSG_THREAD_LIST_DATA pListData, const char *addr, int contact_id, ContactUgType type);
+int msg_ui_thread_launch_viewer_ug(PMSG_THREAD_LIST_DATA pListData, int nMsgId, int nMsgType);
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+void msg_ui_thread_reload_search_detail_view(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_launch_search_detail_view(PMSG_THREAD_LIST_DATA pListData, char *search_str);
+Eina_Bool msg_ui_thread_destroy_search_detail_view(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_adv_search_lang_change(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_remove_search_bubble_by_msgid(PMSG_THREAD_LIST_DATA pListData, int msg_id);
+void msg_ui_thread_remove_search_bubble_by_thread_id(PMSG_THREAD_LIST_DATA pListData, int thread_id);
+void msg_ui_thread_update_thread_search_bubble(PMSG_THREAD_LIST_DATA pListData, msg_struct_t threadInfo);
+#endif
+
+void msg_ui_thread_get_time_format(PMSG_THREAD_DATA pData);
+void msg_ui_thread_get_locale(PMSG_THREAD_DATA pData);
+
+void msg_ui_thread_get_bubble_data(PMSG_APP_THREAD_CONV_DATA_S item_data, app_control_h svc_handle);
+void msg_ui_thread_get_composer_data(int msg_id, app_control_h svc_handle);
+void msg_ui_thread_get_addr_info(PMSG_APP_THREAD_ADDR_INFO_S *addr_info, int count, msg_struct_list_s *addrList_S, msg_list_handle_t addrList_H);
+void msg_ui_thread_cancel_edit_mode(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_show_normal_mode(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_select_item_by_thread_id(PMSG_THREAD_LIST_DATA pListData, int thread_id);
+void msg_ui_thread_select_item_by_msg_id(PMSG_THREAD_LIST_DATA pListData, int msg_id);
+void msg_ui_thread_show_notify(PMSG_THREAD_LIST_DATA pListData, const char *msg);
+void msg_ui_thread_show_notify_translatable(PMSG_THREAD_LIST_DATA pListData, const char *msg_id);
+void msg_ui_thread_show_action_popup(PMSG_THREAD_LIST_DATA pListData, int actionType, const char *msg, void *data);
+void msg_ui_thread_action_process(void *pListData, void *item, bool include_protected_msg);
+void msg_ui_thread_multi_action_finish(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_delete_msg_by_list(PMSG_THREAD_LIST_DATA pListData, int count, bool include_protected_msg);
+void msg_ui_thread_show_notify_with_progressbar(PMSG_THREAD_LIST_DATA pListData, int count, bool include_protected_msg);
+void msg_ui_thread_show_select_info(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_show_action_finish_info(PMSG_THREAD_LIST_DATA pListData, int actionType, void *pData);
+void msg_ui_thread_addr_select_popup(PMSG_THREAD_LIST_DATA pListData, int actionType, PMSG_APP_THREAD_ADDR_INFO_S *addr_info, int addr_cnt);
+
+void msg_ui_thread_set_app_state(int app_state);
+int msg_ui_thread_get_app_state(PMSG_THREAD_DATA pData);
+void msg_ui_thread_cancel_search_mode(PMSG_THREAD_LIST_DATA pListData, bool destroyUg);
+void msg_ui_thread_destroy_popup(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_get_title_text(PMSG_THREAD_LIST_DATA pListData, char *label, int label_len, bool show_count);
+int msg_ui_thread_create_bubble_by_msgid(PMSG_THREAD_LIST_DATA pListData, int msg_id, bool isListItem);
+void msg_ui_thread_add_title_buttons(PMSG_THREAD_LIST_DATA pListData);
+
+bool msg_ui_thread_cancel_ecore_thread(Ecore_Thread *th, char *cancel_sign_str);
+bool msg_ui_thread_check_ecore_thread_cancel_sign(Ecore_Thread *th, char *cancel_sign_str);
+void msg_ui_thread_delete_ecore_thread_cancel_sign(Ecore_Thread *th, char *cancel_sign_str);
+
+const char *msg_ui_thread_make_search_result_string(const char *string, char *searchword, bool *result);
+void msg_ui_thread_make_time_string(time_t *msg_t, char *buf, int buf_len);
+void msg_ui_thread_signal_emit(Evas_Object *obj, const char *signal, const char *source);
+void msg_ui_thread_hide_composer_btn(PMSG_THREAD_DATA pData);
+void msg_ui_thread_show_composer_btn(PMSG_THREAD_LIST_DATA pListData);
+void msg_ui_thread_delete_composer_btn(PMSG_THREAD_LIST_DATA pListData);
+Evas_Object *msg_ui_thread_create_composer_btn(PMSG_THREAD_DATA pData);
+
+void msg_ui_thread_count_from_int_to_str(char *buf, int buf_size, int count);
+
+#endif /* __DEF_MSG_UI_THREAD_MAIN_H__ */
diff --git a/thread/src/msg-ui-thread-callback.c b/thread/src/msg-ui-thread-callback.c
new file mode 100755 (executable)
index 0000000..777204f
--- /dev/null
@@ -0,0 +1,2628 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <shortcut.h>
+#include <notification.h>
+#include "msg-ui-thread-main.h"
+#include "msg-ui-common-utility.h"
+
+typedef struct {
+       msg_storage_change_type_t type;
+       msg_id_list_s msg_ids;
+} __STORAGE_CHANGE_REQ;
+
+typedef struct {
+       ThreadActionType action_type;
+       int thread_id;
+       int msg_id;
+       int ret;
+} __MULTI_ACTION_FEEDBACK_DATA;
+
+
+static void __msg_ui_thread_do_storage_change(UpdateMode update_mode, msg_storage_change_type_t type, msg_id_list_s *pMsgIdList, void *user_param);
+static Eina_Bool __msg_ui_thread_searchbar_entry_timer_cb(void *data);
+
+static void __msg_ui_thread_popup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void __msg_ui_thread_popup_dismissed_cb(void *data, Evas_Object *obj, void *event_info);
+static Eina_Bool __msg_ui_thread_scrl_timer(void *data);
+static void __msg_ui_thread_timezone_change_cb(void *user_data);
+#ifdef MSG_LONGPRESS_SUPPORTED
+static char *__msg_ui_thread_ctx_popup_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_thread_longpressed_gl_realized_cb(void *data, Evas_Object *obj, void *event_info);
+#endif
+
+Elm_Gengrid_Item_Class more_options_list_itc;
+
+static void msg_ui_thread_sel_all_layout_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       D_ENTER;
+       msg_ui_thread_sel_all_clicked_cb(data, NULL, NULL);
+}
+
+void msg_ui_thread_add_select_all_item(void *data)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       D_MSG_RETM_IF(!pListData->genlist, "pListData->genlist is NULL");
+
+       Evas_Object *sel_all_layout = NULL;
+       Evas_Object *sel_check = NULL;
+
+       edje_object_signal_emit(_EDJ(pListData->content_ly), "show,select,all", "");
+       sel_all_layout = msg_common_create_select_all_layout(pData->navi_frame);
+       elm_object_part_content_set(pListData->content_ly, "swl.sel_all", sel_all_layout);
+       elm_object_signal_callback_add(sel_all_layout, "sel_all_layout,clicked", "", msg_ui_thread_sel_all_layout_clicked_cb, pListData);
+
+       sel_check = elm_check_add(sel_all_layout);
+       evas_object_smart_callback_add(sel_check, "changed", msg_ui_thread_sel_all_clicked_cb, pListData);
+       evas_object_propagate_events_set(sel_check, EINA_FALSE);
+       elm_object_part_content_set(sel_all_layout, "elm.swallow.select_icon", sel_check);
+       pListData->sel_all_check = sel_check;
+       evas_object_show(sel_check);
+
+       elm_object_part_text_set(sel_all_layout, "elm.select_all_text", dgettext(MESSAGE_PKGNAME, "IDS_MSG_MBODY_SELECT_ALL"));
+
+}
+
+void msg_ui_thread_remove_select_all_item(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       Evas_Object *sel_all_layout = elm_object_part_content_get(pListData->content_ly, "swl.sel_all");
+
+       if (sel_all_layout) {
+               Evas_Object *sel_check = elm_object_part_content_get(sel_all_layout, "elm.swallow.select_icon");
+               if (sel_check) {
+                       elm_object_part_content_unset(sel_all_layout, "elm.swallow.select_icon");
+                       evas_object_del(sel_check);
+                       pListData->sel_all_check = NULL;
+               }
+               elm_object_part_text_set(sel_all_layout, "elm.select_all_text", "");
+               elm_object_part_content_unset(pListData->content_ly, "swl.sel_all");
+               evas_object_del(sel_all_layout);
+       }
+       edje_object_signal_emit(_EDJ(pListData->content_ly), "hide,select,all", "");
+
+}
+
+static void __msg_ui_thread_redraw_list(void *data)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       Elm_Object_Item *gen_item = NULL;
+       int posret = 0;
+       int idx = 0;
+       Evas_Coord x = 0;
+       Evas_Coord y = 0;
+       Evas_Coord w = 0;
+       Evas_Coord h = 0;
+
+       D_IMSG("pListData(%d,%d,%d) will be redrawed.", pListData->app_data_type, pListData->view_mode, pListData->search_mode);
+
+       evas_object_geometry_get(pListData->genlist, &x, &y, &w, &h);
+       gen_item = elm_genlist_at_xy_item_get(pListData->genlist, x, y, &posret);
+       if (gen_item)
+               idx = elm_genlist_item_index_get(gen_item);
+
+       if (pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH) {
+               msg_ui_thread_search_list_load(pListData);
+               elm_genlist_realized_items_update(pListData->genlist);
+       } else if (pListData->app_data_type == THREAD_LIST_APP_DATA_MSG) {
+               msg_ui_thread_msg_list_load(pListData, pListData->list_type);
+       } else {
+               msg_ui_thread_list_load(pListData, EINA_FALSE);
+       }
+       msg_ui_thread_set_title_status(pListData);
+
+       if (idx > 1) {
+               gen_item = elm_genlist_nth_item_get(pListData->genlist, idx);
+               elm_genlist_item_show(gen_item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+       }
+
+       D_LEAVE;
+}
+
+static msg_error_t __msg_ui_thread_get_peerlist(msg_handle_t msg_handle, msg_struct_list_s *p_peerlist)
+{
+       D_MSG_RETVM_IF(!msg_handle, -1, "msg_handle is NULL");
+       D_MSG_RETVM_IF(!p_peerlist, -1, "p_peerlist is NULL");
+
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_t sort_rule_t = msg_create_struct(MSG_STRUCT_SORT_RULE);
+
+       msg_set_int_value(sort_rule_t, MSG_SORT_RULE_SORT_TYPE_INT, MSG_SORT_BY_THREAD_DATE);
+       msg_set_bool_value(sort_rule_t, MSG_SORT_RULE_ACSCEND_BOOL, false);
+
+       err = msg_get_thread_view_list(msg_handle, sort_rule_t, p_peerlist);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_thread_view_list failed (%d)", err);
+       }
+       msg_release_struct(&sort_rule_t);
+
+       return err;
+}
+
+static msg_error_t __msg_ui_thread_get_thread_id(msg_handle_t msg_handle, int msg_id, int *out_thread_id)
+{
+       D_MSG_RETVM_IF(!msg_handle, -1, "msg_handle is NULL");
+       D_MSG_RETVM_IF(!out_thread_id, -1, "out_thread_id is NULL");
+
+       int thread_id = 0;
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_t convInfo = msg_create_struct(MSG_STRUCT_CONV_INFO);
+
+       /* get thread_id from msg_id */
+       err = msg_get_conversation(msg_handle, msg_id, convInfo);
+       if (err != MSG_SUCCESS) {
+               msg_release_struct(&convInfo);
+               D_EMSG("error : msg_id : %d, error : %d", msg_id, err);
+               return err;
+       }
+       msg_get_int_value(convInfo, MSG_CONV_MSG_THREAD_ID_INT, &thread_id);
+       msg_release_struct(&convInfo);
+
+       *out_thread_id = thread_id;
+
+       return err;
+}
+
+void msg_ui_thread_clear_delayed_update(PMSG_DELAYED_UPDATE_DATA p_delay_data)
+{
+       if (p_delay_data) {
+               MSG_TIMER_OBJECT_DEL(p_delay_data->timer);
+
+               p_delay_data->msg_id_cnt = 0;
+               if (p_delay_data->req_list) {
+                       __STORAGE_CHANGE_REQ *p_req = NULL;
+
+                       EINA_LIST_FREE(p_delay_data->req_list, p_req) {
+                               if (p_req) {
+                                       if (p_req->msg_ids.msgIdList)
+                                               free(p_req->msg_ids.msgIdList);
+                                       free(p_req);
+                               }
+                       }
+               }
+       }
+}
+
+static Eina_Bool __msg_ui_thread_delayed_update_timer_cb(void *data)
+{
+       D_ENTER;
+
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)data;
+
+       if (pData == NULL) {
+               D_EMSG("pData is NULL");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (pData->delayed_update == NULL) {
+               D_EMSG("delayed_update data is NULL");
+               msg_ui_thread_set_update_mode(pData, UPDATE_MODE_NORMAL);
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       PMSG_DELAYED_UPDATE_DATA p_delay_data = pData->delayed_update;
+       p_delay_data->timer = NULL;
+
+       if (p_delay_data->req_list) {
+               Eina_List *l = NULL, *l_next = NULL;
+               __STORAGE_CHANGE_REQ *p_req = NULL;
+
+               msg_id_list_s dmsg_id_list = {0, };
+
+               dmsg_id_list.msgIdList = (msg_message_id_t *)malloc(sizeof(msg_message_id_t)*p_delay_data->msg_id_cnt);
+               if (dmsg_id_list.msgIdList == NULL) {
+                       D_EMSG("malloc fail");
+                       goto exit;
+               }
+               memset(dmsg_id_list.msgIdList, 0, sizeof(msg_message_id_t)*p_delay_data->msg_id_cnt);
+
+               /* make one msg_id_list and process it*/
+               EINA_LIST_FOREACH_SAFE(p_delay_data->req_list, l, l_next, p_req) {
+                       if (p_req == NULL) {
+                               p_delay_data->req_list = eina_list_remove_list(p_delay_data->req_list, l);
+                               continue;
+                       }
+
+                       if ((p_req->type == MSG_STORAGE_CHANGE_INSERT) && p_req->msg_ids.msgIdList) {
+                               register int i = 0;
+
+                               if (dmsg_id_list.nCount + p_req->msg_ids.nCount > p_delay_data->msg_id_cnt)
+                                       break;
+
+                               for ( ; i < p_req->msg_ids.nCount ; i++) {
+                                       dmsg_id_list.msgIdList[dmsg_id_list.nCount++] = p_req->msg_ids.msgIdList[i];
+                               }
+                       } else
+                               D_WMSG("change_type is %d", p_req->type);
+               }
+
+               /* do update */
+               __msg_ui_thread_do_storage_change(UPDATE_MODE_NORMAL, MSG_STORAGE_CHANGE_INSERT, &dmsg_id_list, pData);
+
+               free(dmsg_id_list.msgIdList);
+       }
+
+exit:
+       /* free data */
+       msg_ui_thread_clear_delayed_update(p_delay_data);
+       if (pData->update_mode == UPDATE_MODE_NORMAL) {
+               free(pData->delayed_update);
+               pData->delayed_update = NULL;
+       }
+
+       D_LEAVE;
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __msg_ui_thread_storage_change_add_delayed_req(PMSG_THREAD_DATA pData, int type, msg_id_list_s *pMsgIdList)
+{
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       D_MSG_RETM_IF(!pMsgIdList, "pMsgIdList is NULL");
+       D_MSG_RETM_IF(pMsgIdList->nCount <= 0, "count is zero");
+
+       if (pData->update_mode != UPDATE_MODE_DELAY) {
+               D_EMSG("update mode error(%d)", pData->update_mode);
+               return;
+       }
+
+       if (pData->delayed_update == NULL) {
+               D_EMSG("delayed_update is NULL, change to normal mode");
+               pData->update_mode = UPDATE_MODE_NORMAL;
+               return;
+       }
+
+       /* make req_data and append req_list*/
+       __STORAGE_CHANGE_REQ *p_req = NULL;
+       p_req = (__STORAGE_CHANGE_REQ *)malloc(sizeof(__STORAGE_CHANGE_REQ));
+       D_MSG_RETM_IF(!p_req, "malloc failed.");
+       memset(p_req, 0, sizeof(__STORAGE_CHANGE_REQ));
+
+       p_req->msg_ids.msgIdList = (msg_message_id_t *)malloc(sizeof(msg_message_id_t)*pMsgIdList->nCount);
+       if (!p_req->msg_ids.msgIdList) {
+               D_EMSG("malloc failed.");
+               free(p_req);
+               return;
+       }
+       memset(p_req->msg_ids.msgIdList, 0, sizeof(msg_message_id_t)*pMsgIdList->nCount);
+
+       p_req->type = type;
+       p_req->msg_ids.nCount = pMsgIdList->nCount;
+       memcpy(p_req->msg_ids.msgIdList, pMsgIdList->msgIdList, sizeof(msg_message_id_t)*pMsgIdList->nCount);
+
+       pData->delayed_update->msg_id_cnt += p_req->msg_ids.nCount;
+       pData->delayed_update->req_list = eina_list_append(pData->delayed_update->req_list, p_req);
+
+       /* start delay update timer */
+       if (pData->delayed_update->timer == NULL) {
+               pData->delayed_update->timer = ecore_timer_add(10.0, __msg_ui_thread_delayed_update_timer_cb, pData);
+               D_IMSG("delayed update timer is created");
+       }
+}
+
+void msg_ui_thread_set_update_mode(PMSG_THREAD_DATA pData, UpdateMode mode)
+{
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       D_IMSG("cur mode(%d) -> to_be mode(%d)", pData->update_mode, mode);
+
+       if (mode == UPDATE_MODE_NORMAL) {
+               if (pData->delayed_update) {
+                       msg_ui_thread_clear_delayed_update(pData->delayed_update);
+                       free(pData->delayed_update);
+                       pData->delayed_update = NULL;
+               }
+       } else {
+               if (pData->delayed_update == NULL) {
+                       pData->delayed_update = (PMSG_DELAYED_UPDATE_DATA)malloc(sizeof(MSG_DELAYED_UPDATE_DATA));
+                       if (!pData->delayed_update) {
+                               D_EMSG("malloc failed");
+                               return;
+                       }
+                       memset(pData->delayed_update, 0, sizeof(MSG_DELAYED_UPDATE_DATA));
+               }
+       }
+
+       pData->update_mode = mode;
+}
+
+void msg_ui_thread_storage_change_cb(msg_handle_t handle, msg_storage_change_type_t type, msg_id_list_s *pMsgIdList, void *user_param)
+{
+       D_MSG_RETM_IF(!user_param, "user_param is NULL");
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA) user_param;
+
+       __msg_ui_thread_do_storage_change(pData->update_mode, type, pMsgIdList, user_param);
+}
+
+static void __msg_ui_thread_do_storage_change(UpdateMode update_mode, msg_storage_change_type_t type, msg_id_list_s *pMsgIdList, void *user_param)
+{
+       int list_idx = 0;
+       int item_idx = 0;
+       if (!user_param || !pMsgIdList)
+               return;
+
+       PMSG_THREAD_DATA pData = user_param;
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+
+       if (msg_ui_thread_get_app_state(pData) == MSG_UI_STATE_DESTROY) {
+               return;
+       } else if (msg_ui_thread_get_app_state(pData) == MSG_UI_STATE_PAUSE) {
+               /*
+               app_pause status, just set pData->redrawList and pListData->redrawList flag and do nothing.
+               app status change to running, reset the list.
+               Exception1. in edit mode, do insert, delete, update because keeping checkbox status
+               Exception2. contact changed, just update list (pListData->redrawList = false) when change app status
+               Exception3. in edit mode and deleting messages, do noting. (after deleting, reset list automatically)
+               */
+               D_MSG("app_state is pause");
+               for (list_idx = MSG_THREAD_LIST_MAX_COUNT-1; list_idx >= 0; list_idx--) {
+                       if (pData->list_data[list_idx] != NULL) {
+                               pListData = pData->list_data[list_idx];
+
+                               if (type != MSG_STORAGE_CHANGE_CONTACT) {
+                                       if (pListData->view_mode != THREAD_EDIT_VIEW) {
+                                               pData->redrawList = true;
+                                               pListData->redrawList = true;
+                                       }
+                               } else {
+                                       pData->redrawList = true;
+                               }
+                       }
+               }
+       }
+
+       /* If msg backup by Kies is on going, we ignore INSERT and redraw list periodically*/
+       if (type == MSG_STORAGE_CHANGE_INSERT && update_mode == UPDATE_MODE_DELAY) {
+               __msg_ui_thread_storage_change_add_delayed_req(pData, type, pMsgIdList);
+               return;
+       }
+
+       D_MSG(" ----------- update_mode(%d), type is %d, id_cnt(%d)", update_mode, type, pMsgIdList->nCount);
+
+       for (list_idx = MSG_THREAD_LIST_MAX_COUNT-1; list_idx >= 0; list_idx--) {
+               if (pData->list_data[list_idx] != NULL) {
+                       Ecore_Thread *multi_action_thread = NULL;
+
+                       pListData = pData->list_data[list_idx];
+
+                       if (pListData->redrawList == true)
+                               continue;
+
+                       if (pListData->pPopup && pListData->pPopup->popup_type == THREAD_POPUP_PROGRESS) {
+                               PMSG_APP_THREAD_POPUP_PROGRESS pPopup = (PMSG_APP_THREAD_POPUP_PROGRESS)pListData->pPopup;
+                               multi_action_thread = pPopup->multi_action_thread;
+                       }
+
+                       if (multi_action_thread != NULL) {
+                               if (msg_ui_thread_get_app_state(pData) == MSG_UI_STATE_PAUSE)
+                                       pListData->redrawList = true;
+                               break;  /* finish multi action, reload msg list */
+                       }
+
+                       if (type == MSG_STORAGE_CHANGE_INSERT) {
+                               if (pListData->item_cnt == 0) {
+                                       if (pListData->search_mode == THREAD_SEARCH_ON) {
+                                               msg_ui_thread_search_list_load(pListData);
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+                                               if (pListData->adv_search_ly)
+                                                       msg_ui_thread_reload_search_detail_view(pListData);
+#endif
+                                       } else {
+                                               if (pListData->list_type == THREAD_NORMAL_LIST_TYPE)
+                                                       msg_ui_thread_list_load(pListData, FALSE);
+                                               else
+                                                       msg_ui_thread_msg_list_load(pListData, pListData->list_type);
+                                       }
+                               } else {
+                                       msg_struct_list_s peer_list = {0, };
+                                       msg_struct_list_s *p_peer_list = NULL;
+
+                                       /* get peerList here if nCount > 1 */
+                                       if (pMsgIdList->nCount > 1) {
+                                               msg_error_t err = MSG_SUCCESS;
+                                               err = __msg_ui_thread_get_peerlist(pData->msgHandle, &peer_list);
+                                               if (err != MSG_SUCCESS) {
+                                                       D_EMSG("msg_get_thread_view_list failed (%d)", err);
+                                               } else
+                                                       p_peer_list = &peer_list;
+                                       }
+
+                                       for (item_idx = 0; item_idx < pMsgIdList->nCount; item_idx++) {
+                                               if (pListData->list_type == THREAD_NORMAL_LIST_TYPE) {
+                                                       int thread_id = 0;
+                                                       msg_error_t err = MSG_SUCCESS;
+
+                                                       /* get thread_id from msg_id */
+                                                       err = __msg_ui_thread_get_thread_id(pData->msgHandle, pMsgIdList->msgIdList[item_idx], &thread_id);
+                                                       if (err != MSG_SUCCESS) {
+                                                               msg_release_list_struct(&peer_list);
+                                                               D_EMSG("error : msg_id : %d, error : %d", pMsgIdList->msgIdList[item_idx], err);
+                                                               return;
+                                                       }
+
+                                                       ugdata *composer_data = NULL;
+                                                       composer_data = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_CONV, thread_id);
+                                                       if (composer_data) {
+                                                               Elm_Object_Item *selected_item = NULL;
+                                                               int list_org_sel_thread_id = pListData->sel_thread_id;
+
+                                                               selected_item = msg_ui_thread_selected_gen_item_by_id(pListData, THREAD_LIST_APP_DATA_CONV, thread_id);
+                                                               if (selected_item) {
+                                                                       pListData->sel_gen_item = selected_item;
+                                                                       pListData->sel_thread_id = thread_id;
+
+                                                                       composer_data->sel_gen_item = selected_item;
+                                                               }
+
+                                                               /* If send from the full composer, list_sel_thread_id can be different with thread_id */
+                                                               if ((list_org_sel_thread_id == thread_id) && composer_data->ug_type == MSG_COMPOSER_UG_TYPE_VIEWER) {
+                                                                       D_IMSG("ignore INSERT of thread_id(%d). this thread exists.", thread_id);
+                                                                       return;
+                                                               }
+                                                       }
+
+                                                       if (pListData->search_mode == THREAD_SEARCH_ON) {
+                                                               msg_ui_thread_search_list_update_ex(pListData, pMsgIdList, thread_id, item_idx, p_peer_list);
+                                                       } else {
+                                                               if (msg_ui_thread_list_item_update_ex(pListData, thread_id, p_peer_list) == EINA_FALSE)
+                                                                       msg_ui_thread_list_item_insert_ex(pListData, thread_id, p_peer_list);
+                                                       }
+                                               }
+
+                                               if (pListData->app_data_type != THREAD_LIST_APP_DATA_CONV) {
+                                                       /* update content search i.e. by msg_id, check if search type is not conversation. */
+                                                       if (pListData->search_mode == THREAD_SEARCH_ON) {
+                                                               if (pListData->search_type != THREAD_SEARCH_CONV)
+                                                                       msg_ui_thread_search_list_update_ex(pListData, pMsgIdList, 0, item_idx, p_peer_list);
+                                                       } else if (msg_ui_thread_list_msg_item_update(pListData, pMsgIdList->msgIdList[item_idx]) == EINA_FALSE) {
+                                                               msg_ui_thread_list_msg_item_insert(pListData, pMsgIdList->msgIdList[item_idx]);
+                                                       }
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+                                                       if (pListData->search_mode == THREAD_SEARCH_ON && pListData->adv_search_ly)
+                                                               msg_ui_thread_reload_search_detail_view(pListData);
+#endif
+                                               }
+                                       }
+                                       if (p_peer_list)
+                                               msg_release_list_struct(p_peer_list);
+                               }
+                       } else if (type == MSG_STORAGE_CHANGE_DELETE) {
+                               if (pListData->app_data_type != THREAD_LIST_APP_DATA_CONV) {
+                                       for (item_idx = 0; item_idx < pMsgIdList->nCount; item_idx++) {
+                                               msg_ui_thread_list_msg_item_delete(pListData, pMsgIdList->msgIdList[item_idx]);
+                                       }
+                                       msg_ui_thread_show_normal_mode(pListData);
+                               }
+                               if (pListData->app_data_type != THREAD_LIST_APP_DATA_MSG) {
+                                       for (item_idx = 0; item_idx < pMsgIdList->nCount; item_idx++) {
+                                               Elm_Object_Item *gen_item = elm_genlist_first_item_get(pListData->genlist);
+                                               PMSG_APP_THREAD_CONV_DATA_S item_data = NULL;
+
+                                               while (gen_item) {
+                                                       if (pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH && elm_genlist_item_parent_get(gen_item) == NULL) {
+                                                               gen_item = elm_genlist_item_next_get(gen_item);
+                                                               continue;
+                                                       }
+
+                                                       item_data = (PMSG_APP_THREAD_CONV_DATA_S)elm_object_item_data_get(gen_item);
+                                                       if (item_data && item_data->app_data_type != THREAD_LIST_APP_DATA_CONV) {
+                                                               gen_item = elm_genlist_item_next_get(gen_item);
+                                                               continue;
+                                                       }
+
+                                                       if (item_data && pMsgIdList->msgIdList[item_idx] == item_data->last_msg_id)
+                                                               break;
+
+                                                       gen_item = elm_genlist_item_next_get(gen_item);
+                                                       item_data = NULL;
+                                               }
+
+                                               if (item_data) {
+                                                       if (msg_ui_thread_list_item_update(pListData, item_data->thread_id) == EINA_FALSE)
+                                                               msg_ui_thread_list_item_delete(pListData, item_data->thread_id);
+                                               }
+                                       }
+                               }
+                       } else if (type == MSG_STORAGE_CHANGE_UPDATE) {
+                               int prev_update_thread_id = -1;
+
+                               if (pMsgIdList->nCount > 50) {
+                                       D_IMSG("too many updates. redraw thread list");
+                                       __msg_ui_thread_redraw_list(pListData);
+                                       continue;
+                               }
+
+                               for (item_idx = 0; item_idx < pMsgIdList->nCount; item_idx++) {
+                                       if (pListData->list_type == THREAD_NORMAL_LIST_TYPE) {
+                                               msg_error_t err = MSG_SUCCESS;
+                                               int thread_id = 0;
+                                               msg_struct_t convInfo = msg_create_struct(MSG_STRUCT_CONV_INFO);
+
+                                               /* get thread_id from msg_id */
+                                               err = msg_get_conversation(pData->msgHandle, pMsgIdList->msgIdList[item_idx], convInfo);
+                                               if (err != MSG_SUCCESS) {
+                                                       msg_release_struct(&convInfo);
+                                                       D_EMSG("error : msg_id : %d, error : %d", pMsgIdList->msgIdList[item_idx], err);
+                                                       return;
+                                               }
+                                               msg_get_int_value(convInfo, MSG_CONV_MSG_THREAD_ID_INT, &thread_id);
+                                               msg_release_struct(&convInfo);
+
+                                               D_MSG("thread_id : %d", thread_id);
+                                               if (prev_update_thread_id >= 0 && prev_update_thread_id == thread_id) {
+                                                       continue;
+                                               } else
+                                                       prev_update_thread_id = thread_id;
+
+                                               /* check if bubble view of this thread_id is opened */
+                                               ugdata *composer_data = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_CONV, thread_id);
+                                               if (composer_data && composer_data->ug_type == MSG_COMPOSER_UG_TYPE_VIEWER) {
+                                                       D_IMSG("ignore UPDATE of thread_id(%d). Bubble view of this thread is opened.", thread_id);
+                                                       return;
+                                               }
+
+                                               if (pListData->search_mode == THREAD_SEARCH_ON) {
+                                                       msg_ui_thread_search_list_update(pListData, pMsgIdList, thread_id, item_idx);
+                                               } else {
+                                                       if (msg_ui_thread_list_item_update(pListData, thread_id) == EINA_FALSE) {
+                                                               msg_ui_thread_list_item_insert(pListData, thread_id);
+                                                               msg_ui_thread_list_load(pListData, FALSE);
+                                                       }
+                                               }
+                                       }
+
+                                       if (pListData->app_data_type != THREAD_LIST_APP_DATA_CONV) {
+                                               /* update content search i.e. by msg_id, check if search type is not conversation. */
+                                               if (pListData->search_mode == THREAD_SEARCH_ON) {
+                                                       if (pListData->search_type != THREAD_SEARCH_CONV)
+                                                               msg_ui_thread_search_list_update(pListData, pMsgIdList, 0, item_idx);
+                                               } else if (msg_ui_thread_list_msg_item_update(pListData, pMsgIdList->msgIdList[item_idx]) == EINA_FALSE) {
+                                                       msg_ui_thread_list_msg_item_insert(pListData, pMsgIdList->msgIdList[item_idx]);
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+       D_LEAVE;
+}
+
+void msg_ui_thread_contact_changed_cb(const char *view_uri, void *user_data)
+{
+       D_ENTER;
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)user_data;
+
+       if (msg_ui_thread_get_app_state(pData) == MSG_UI_STATE_DESTROY) {
+               return;
+       } else if (msg_ui_thread_get_app_state(pData) == MSG_UI_STATE_PAUSE) {
+               pData->redrawList = true;
+               return;
+       }
+
+       msg_ui_thread_change_contact(pData);
+}
+
+void msg_ui_thread_contact_display_order_changed_cb(contacts_name_display_order_e name_display_order, void *user_data)
+{
+       D_ENTER;
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)user_data;
+
+       if (msg_ui_thread_get_app_state(pData) == MSG_UI_STATE_DESTROY) {
+               return;
+       } else if (msg_ui_thread_get_app_state(pData) == MSG_UI_STATE_PAUSE) {
+               pData->redrawList = true;
+               return;
+       }
+
+       msg_ui_thread_change_contact(pData);
+}
+
+void msg_ui_thread_change_contact(PMSG_THREAD_DATA pData)
+{
+       D_ENTER;
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+       int list_idx = 0;
+
+       for (list_idx = MSG_THREAD_LIST_MAX_COUNT-1; list_idx >= 0; list_idx--) {
+               if (pData->list_data[list_idx] != NULL) {
+                       Ecore_Thread *multi_action_thread = NULL;
+
+                       pListData = pData->list_data[list_idx];
+                       if (pListData->redrawList == true)
+                               continue;
+
+                       if (pListData->pPopup && pListData->pPopup->popup_type == THREAD_POPUP_PROGRESS) {
+                               PMSG_APP_THREAD_POPUP_PROGRESS pPopup = (PMSG_APP_THREAD_POPUP_PROGRESS)pListData->pPopup;
+                               multi_action_thread = pPopup->multi_action_thread;
+                       }
+
+                       if (multi_action_thread != NULL) {
+                               if (msg_ui_thread_get_app_state(pData) == MSG_UI_STATE_PAUSE)
+                                       pListData->redrawList = true;
+                               break;  /* finish multi action, reload msg list */
+                       }
+
+                       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+                               if (pListData->app_data_type == THREAD_LIST_APP_DATA_MSG)
+                                       msg_ui_thread_list_msg_list_update(pListData);
+                               else
+                                       msg_ui_thread_list_update(pListData);
+#ifdef BADGE_COUNT_ENABLE
+                               msg_ui_thread_set_title_unread_cnt(pListData);
+#endif /* BADGE_COUNT_ENABLE */
+                       } else {
+                               Elm_Object_Item *gen_item = NULL;
+                               int posret = 0;
+                               int idx = 0;
+                               Evas_Coord x = 0;
+                               Evas_Coord y = 0;
+                               Evas_Coord w = 0;
+                               Evas_Coord h = 0;
+
+                               evas_object_geometry_get(pListData->genlist, &x, &y, &w, &h);
+                               gen_item = elm_genlist_at_xy_item_get(pListData->genlist, x, y, &posret);
+                               if (gen_item)
+                                       idx = elm_genlist_item_index_get(gen_item);
+
+                               if (pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH) {
+                                       msg_ui_thread_search_list_load(pListData);
+                                       elm_genlist_realized_items_update(pListData->genlist);
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+                                       if (pListData->adv_search_ly)
+                                               msg_ui_thread_reload_search_detail_view(pListData);
+#endif
+                               } else if (pListData->app_data_type == THREAD_LIST_APP_DATA_MSG) {
+                                       msg_ui_thread_msg_list_load(pListData, pListData->list_type);
+                               } else {
+                                       msg_ui_thread_list_load(pListData, EINA_FALSE);
+                               }
+
+                               /*update unread count when add contact on bubble list. because sel_item's unread count is already updated to 0 after msg_ui_thread_list_load*/
+#ifdef BADGE_COUNT_ENABLE
+                               msg_ui_thread_set_title_unread_cnt(pListData);
+#endif /* BADGE_COUNT_ENABLE */
+
+                               if (idx > 1) {
+                                       gen_item = elm_genlist_nth_item_get(pListData->genlist, idx);
+                                       elm_genlist_item_show(gen_item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+                               }
+                       }
+               }
+       }
+}
+
+void msg_ui_thread_ctlbar_multi_action_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       D_MSG("check_cnt (%d)", pListData->check_cnt);
+
+       pListData->multi_action_item_cnt = pListData->check_cnt;
+
+       msg_ui_thread_destroy_popup(pListData);
+
+       D_MSG("pListData->action_type is %d", pListData->action_type);
+       if (pListData->action_type == THREAD_ACTION_DELETE) {
+               msg_ui_thread_show_action_popup(pListData, THREAD_ACTION_DELETE, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_DELETE_Q"), NULL);
+
+               if (pListData->pPopup == NULL) {
+                       if (pListData->list_type == THREAD_NORMAL_LIST_TYPE || pListData->list_type == THREAD_SIM_LIST_TYPE)
+                               msg_ui_thread_show_notify_with_progressbar(pListData, pListData->check_cnt, true);
+                       else
+                               msg_ui_thread_delete_msg_by_list(pListData, pListData->check_cnt, true);
+               }
+       } else {
+               if (pListData->action_type == THREAD_ACTION_RESTORE) {
+                       if (pListData->multi_action_item_cnt == 1) {
+                               int err = MSG_SUCCESS;
+                               void *item_data = eina_list_nth(pListData->chk_list, 0);
+                               PMSG_APP_THREAD_MSG_DATA_S data = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+
+                               err = msg_move_msg_to_folder(msg_ui_thread_get_data_handle(), data->msg_id, MSG_INBOX_ID);
+                               if (err != MSG_SUCCESS) {
+                                       D_EMSG("msg_move_msg_to_folder() failed(%x), msg_id(%d)", err, data->msg_id);
+                                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"));
+                                       pListData->multi_action_item_cnt = 0;
+                               }
+                               msg_ui_thread_multi_action_finish(pListData);
+                               return;
+                       }
+               }
+
+               if (pListData->pPopup == NULL)
+                       msg_ui_thread_show_notify_with_progressbar(pListData, pListData->check_cnt, false);
+       }
+}
+
+void msg_ui_thread_multi_action_thread_feedback_fn(void *data, Ecore_Thread *thread, void *msg_data)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !msg_data);
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       __MULTI_ACTION_FEEDBACK_DATA *feedback_data = (__MULTI_ACTION_FEEDBACK_DATA *)msg_data;
+
+       if (feedback_data->ret == MSG_SUCCESS) {
+               if (pListData->pPopup && pListData->pPopup->popup_type == THREAD_POPUP_PROGRESS) {
+                       PMSG_APP_THREAD_POPUP_PROGRESS pPopup = (PMSG_APP_THREAD_POPUP_PROGRESS)pListData->pPopup;
+
+                       if (pPopup->progressbar)
+                               elm_progressbar_value_set(pPopup->progressbar, (double)(pListData->sel_index+1)/pListData->check_cnt);
+               }
+               if (feedback_data->action_type == THREAD_ACTION_DELETE && pListData->action_type == THREAD_ACTION_DELETE) {
+                       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+                               pListData->edit_view_update_id_list = eina_list_append(pListData->edit_view_update_id_list, (void *)feedback_data->thread_id);
+                       }
+               }
+               if (feedback_data->action_type == THREAD_ACTION_RESTORE && pListData->action_type == THREAD_ACTION_RESTORE) {
+                       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+                               pListData->edit_view_update_id_list = eina_list_append(pListData->edit_view_update_id_list, (void *)feedback_data->msg_id);
+                       }
+               }
+       } else {
+               D_EMSG("fail action. %d", feedback_data->ret);
+
+               /** msg_ui_thread_multi_action_finish function contains evas_object_del(thread_data->popup), */
+               /** so, call msg_ui_thread_multi_action_finish() first, after that make "unable to delete" popup  */
+               msg_ui_thread_multi_action_finish(pListData);
+
+               if (pListData->action_type == THREAD_ACTION_DELETE)
+                       msg_ui_thread_show_notify_translatable(pListData, "IDS_MSGF_POP_UNABLE_TO_DELETE");
+               else if (pListData->action_type == THREAD_ACTION_COPY_TO_PHONE)
+                       msg_ui_thread_show_notify_translatable(pListData, "IDS_MSGF_POP_UNABLE_TO_COPY");
+               else if (pListData->action_type == THREAD_ACTION_RESTORE)
+                       msg_ui_thread_show_notify(pListData, dgettext("sys_string", "IDS_COM_POP_MOVING_FAILED"));
+
+               pListData->action_type = THREAD_ACTION_NONE;
+               if (feedback_data)
+                       free(feedback_data);
+               return;
+       }
+
+       if (pListData->sel_index + 1 == pListData->check_cnt)
+               msg_ui_thread_multi_action_finish(pListData);
+       else
+               pListData->sel_index++;
+
+       if (feedback_data)
+               free(feedback_data);
+}
+
+void msg_ui_thread_multi_action_thread_fn(void *data, Ecore_Thread *thread)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       Eina_List *list = NULL;
+
+       void *item_data = NULL;
+       bool include_protected_msg = false;
+
+       msg_error_t err = MSG_SUCCESS;
+       msg_handle_t temp_msgHandle = NULL;
+
+       err = msg_open_msg_handle(&temp_msgHandle);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_open_msg_handle failed, Error=[%d]\n", err);
+               return;
+       }
+
+       if (pListData->pPopup) {
+               if (pListData->pPopup->popup_type == THREAD_POPUP_ACTION) {
+                       PMSG_APP_THREAD_POPUP_ACTION pPopup = (PMSG_APP_THREAD_POPUP_ACTION)pListData->pPopup;
+                       include_protected_msg = pPopup->include_protected_msg;
+               } else if (pListData->pPopup->popup_type == THREAD_POPUP_PROGRESS) {
+                       PMSG_APP_THREAD_POPUP_PROGRESS pPopup = (PMSG_APP_THREAD_POPUP_PROGRESS)pListData->pPopup;
+                       include_protected_msg = pPopup->include_protected_msg;
+               }
+               D_MSG("include_protected_msg = %d", include_protected_msg);
+       }
+
+       EINA_LIST_FOREACH(pListData->chk_list, list, item_data) {
+               __MULTI_ACTION_FEEDBACK_DATA *feedback_data = NULL;
+               int ret = MSG_SUCCESS;
+               int thread_id = -1;
+
+               if (msg_ui_thread_check_ecore_thread_cancel_sign(thread, MSG_THREAD_MULTI_ACTION)) {
+                       D_IMSG("thread cancel_sign is ON. return here.");
+                       break;
+               }
+
+               feedback_data = (__MULTI_ACTION_FEEDBACK_DATA *)calloc(1, sizeof(__MULTI_ACTION_FEEDBACK_DATA));
+               if (!feedback_data) {
+                       D_EMSG("calloc fail");
+                       break;
+               }
+               feedback_data->action_type = pListData->action_type;
+
+               if (item_data) {
+                       if (pListData->action_type == THREAD_ACTION_DELETE) {
+                               if (pListData->list_type == THREAD_NORMAL_LIST_TYPE) {
+                                       PMSG_APP_THREAD_CONV_DATA_S data = (PMSG_APP_THREAD_CONV_DATA_S)item_data;
+                                       thread_id = data->thread_id;
+                                       ret = msg_delete_thread_message_list(temp_msgHandle, data->thread_id, include_protected_msg);
+                               } else {
+                                       PMSG_APP_THREAD_MSG_DATA_S data = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+                                       thread_id = data->thread_id;
+
+                                       ret = msg_delete_message(temp_msgHandle, data->msg_id);
+                               }
+                       } else if (pListData->action_type == THREAD_ACTION_RESTORE) {
+                               PMSG_APP_THREAD_MSG_DATA_S data = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+                               thread_id = data->thread_id;
+                               ret = msg_move_msg_to_folder(temp_msgHandle, data->msg_id, MSG_INBOX_ID);
+                               feedback_data->msg_id = data->msg_id;
+                       } else if (pListData->action_type == THREAD_ACTION_COPY_TO_PHONE) {
+                               PMSG_APP_THREAD_MSG_DATA_S data = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+                               thread_id = data->thread_id;
+
+                               msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+                               msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+                               ret = msg_get_message(temp_msgHandle, (msg_message_id_t)data->msg_id, msgInfo, sendOpt);
+                               if (ret != MSG_SUCCESS) {
+                                       D_EMSG("msg_get_message() is failed : err = %d, msgid = %d", ret, data->msg_id);
+                                       msg_release_struct(&msgInfo);
+                                       msg_release_struct(&sendOpt);
+                                       goto MSG_FAIL;
+                               }
+
+                               msg_set_int_value(msgInfo, MSG_MESSAGE_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+                               ret = msg_add_message(temp_msgHandle, msgInfo, sendOpt);
+                               if (ret != MSG_SUCCESS) {
+                                       D_EMSG("msg_add_message() is failed : err = %d, msgid = %d", ret, data->msg_id);
+                               }
+
+                               msg_release_struct(&msgInfo);
+                               msg_release_struct(&sendOpt);
+                       }
+
+MSG_FAIL:
+                       feedback_data->ret = ret;
+                       feedback_data->thread_id = thread_id;
+
+                       ecore_thread_feedback(thread, (void *)feedback_data);
+
+                       if (ret != MSG_SUCCESS) {
+                               D_EMSG("call ecore_thread_feedback. ret is %d", ret);
+                               break;
+                       }
+               } else {
+                       feedback_data->ret = MSG_ERR_NULL_POINTER;
+                       feedback_data->thread_id = -1;
+                       ecore_thread_feedback(thread, (void *)feedback_data);
+                       break;
+               }
+       }
+
+       if (temp_msgHandle != NULL) {
+               err = msg_close_msg_handle(&temp_msgHandle);
+               if (err != MSG_SUCCESS)
+                       D_EMSG("msg_close_msg_handle error, ret = [%d]", err);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_multi_action_thread_finish_cb(void *data, Ecore_Thread *thread)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+               if (pListData->edit_view_update_id_list) {
+                       eina_list_free(pListData->edit_view_update_id_list);
+                       pListData->edit_view_update_id_list = NULL;
+               }
+
+               msg_ui_thread_multi_action_finish(pListData);
+       }
+
+       msg_ui_thread_delete_ecore_thread_cancel_sign(thread, MSG_THREAD_MULTI_ACTION);
+       return;
+}
+
+void msg_ui_thread_multi_action_thread_cancel_cb(void *data, Ecore_Thread *thread)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       msg_ui_thread_delete_ecore_thread_cancel_sign(thread, MSG_THREAD_MULTI_ACTION);
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+               if (pListData->pPopup)
+                       msg_ui_thread_destroy_popup(pListData);
+
+               /* redraw  list*/
+               if (pListData->action_type == THREAD_ACTION_DELETE) {
+                       int *data = NULL;
+                       int err = MSG_SUCCESS;
+                       msg_struct_list_s peer_list = {0, };
+                       register int i = 0;
+
+                       D_IMSG("deleted item : %d items", eina_list_count(pListData->edit_view_update_id_list));
+                       /* remove thread_id of current peerlist from edit_view_update_id_list */
+                       err = __msg_ui_thread_get_peerlist(msg_ui_thread_get_data_handle(), &peer_list);
+                       if (err == MSG_SUCCESS) {
+                               for (i = 0; i < peer_list.nCount; i++) {
+                                       int exist_thread_id = 0;
+
+                                       if (pListData->edit_view_update_id_list == NULL)
+                                               break;
+
+                                       msg_get_int_value(peer_list.msg_struct_info[i], MSG_THREAD_ID_INT, &exist_thread_id);
+                                       pListData->edit_view_update_id_list = eina_list_remove(pListData->edit_view_update_id_list, (void *)exist_thread_id);
+                               }
+                               msg_release_list_struct(&peer_list);
+                       }
+
+                       D_IMSG("update edit_view for %d items", eina_list_count(pListData->edit_view_update_id_list));
+                       EINA_LIST_FREE(pListData->edit_view_update_id_list, data) {
+                               msg_ui_thread_list_item_delete(pListData, (int)data);
+                       }
+
+                       msg_ui_thread_show_select_info(pListData);
+               } else if (pListData->action_type == THREAD_ACTION_RESTORE) {
+                       if (eina_list_count(pListData->edit_view_update_id_list) > 0) {
+                               EINA_LIST_FREE(pListData->edit_view_update_id_list, data) {
+                                       msg_ui_thread_list_msg_item_delete(pListData, (int)data);
+                               }
+                               msg_ui_thread_show_select_info(pListData);
+                       }
+               }
+               msg_ui_thread_delete_ecore_thread_cancel_sign(thread, MSG_THREAD_MULTI_ACTION);
+               pListData->sel_index = 0;
+       }
+
+       if (pListData->edit_view_update_id_list) {
+               D_MSG("free edit_view_update_id_list");
+               eina_list_free(pListData->edit_view_update_id_list);
+       }
+
+       pListData->edit_view_update_id_list = NULL;
+
+       return;
+}
+
+void msg_ui_thread_ctlbar_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       const char *label = elm_object_item_text_get((Elm_Object_Item *)event_info);
+
+       if (label) {
+               if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE")) == 0 || strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_DELETE_MESSAGES")) == 0 || strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE")) == 0) {
+                       pListData->action_type = THREAD_ACTION_DELETE;
+               } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_SK_RESTORE")) == 0) {
+                       pListData->action_type = THREAD_ACTION_RESTORE;
+               } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_DEVICE_ABB")) == 0) {
+                       pListData->action_type = THREAD_ACTION_COPY_TO_PHONE;
+               } else {
+                       D_EMSG("invalid type");
+                       return;
+               }
+       } else {
+               pListData->action_type = THREAD_ACTION_DELETE;
+       }
+
+       msg_ui_thread_add_title_buttons(pListData);
+       if (pData->done_button != NULL)
+               elm_object_disabled_set(pData->done_button, EINA_TRUE);
+
+       pListData->view_mode = THREAD_EDIT_VIEW;
+       pListData->check_cnt = 0;
+       pListData->multi_action_item_cnt = 0;
+       pListData->sel_index = 0;
+
+       if (pListData->action_type == THREAD_ACTION_NONE)
+               pListData->action_type = THREAD_ACTION_DELETE;
+
+       msg_ui_thread_destroy_popup(pListData);
+
+       msg_ui_thread_list_del_dummy_item(pListData);
+
+       elm_genlist_decorate_mode_set(pListData->genlist, EINA_TRUE);
+
+       Eina_List *realized_list = elm_genlist_realized_items_get(pListData->genlist);
+       Elm_Object_Item *realized_it = NULL;
+       Eina_List *l = NULL;
+
+       EINA_LIST_FOREACH(realized_list, l, realized_it) {
+               elm_object_item_signal_emit(realized_it, "elm,swipe,disabled", "");
+
+               Evas_Object *contact_btn = NULL;
+               contact_btn =  elm_object_item_part_content_get(realized_it, "elm.icon.1");
+               if (contact_btn)
+                       elm_object_disabled_set(contact_btn, EINA_TRUE);
+
+               if (pListData->action_type == THREAD_ACTION_DELETE || pListData->action_type == THREAD_ACTION_RESTORE)
+                       elm_genlist_item_selected_set(realized_it, EINA_FALSE);
+       }
+       eina_list_free(realized_list);
+       if (pListData->action_type == THREAD_ACTION_DELETE || pListData->action_type == THREAD_ACTION_RESTORE) {
+               msg_ui_thread_add_select_all_item(pListData);
+               elm_genlist_realized_items_update(pListData->genlist);
+               elm_genlist_mode_set(pListData->genlist, ELM_LIST_COMPRESS);
+       }
+       msg_ui_thread_set_title_status(pListData);
+       msg_ui_thread_set_navi_toolbar_item(pListData, true);
+       if (pListData->composer_btn) {
+               msg_ui_thread_hide_composer_btn(pData);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_ctlbar_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       if (!data) {
+               D_EMSG("data is NULL");
+               return;
+       }
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW)
+               msg_ui_thread_show_normal_mode(pListData);
+
+       D_LEAVE;
+       return;
+}
+
+void msg_ui_thread_ctlbar_search_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       msg_ui_thread_destroy_popup(pListData);
+       if (pListData->composer_btn) {
+               msg_ui_thread_hide_composer_btn(pData);
+       }
+
+       if (pListData->item_cnt <= 0)
+               return;
+
+       msg_ui_thread_list_del_dummy_item(pListData);
+
+       if (!pListData->search_gl)
+               pListData->search_gl = msg_ui_thread_create_searchbar_item(pListData->content_ly, pListData);
+
+       elm_object_part_content_unset(pListData->content_ly, "thread_list");
+       if (pListData->search_gl) {
+               elm_object_part_content_set(pListData->content_ly, "search", pListData->search_gl);
+       }
+       if (pListData->genlist) {
+               elm_object_part_content_set(pListData->content_ly, "search_list", pListData->genlist);
+       }
+
+       pListData->search_mode = THREAD_SEARCH_ON;
+
+       msg_ui_thread_set_title_status(pListData);
+       msg_ui_thread_set_navi_toolbar_item(pListData, true);
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_ctlbar_setting_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       msg_ui_thread_destroy_popup(pListData);
+       if (pListData->composer_btn) {
+               msg_ui_thread_hide_composer_btn(pData);
+       }
+       msg_ui_thread_launch_setting(pListData);
+}
+
+void msg_ui_thread_ctlbar_compose_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       app_control_h svc_handle = NULL;
+
+       msg_ui_thread_destroy_popup(pListData);
+       if (pListData->composer_btn)
+               msg_ui_thread_hide_composer_btn(pData);
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return;
+       }
+
+       if (msg_ui_load_composer_ug(svc_handle, MSG_COMPOSER_UG_TYPE_COMPOSER, false) == MSG_UI_RET_ERR)
+               D_EMSG("Failed to load composer ug");
+
+       app_control_destroy(svc_handle);
+       D_LEAVE;
+}
+
+static char *__msg_ui_thread_more_options_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, NULL, "data is NULL");
+       const char *ids = (const char *)data;
+       return strdup(dgettext(MESSAGE_PKGNAME, ids));
+}
+
+void msg_ui_thread_ctlbar_message_box_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       /* do not show ctx popup if thread is already selected and viewer ug is launched */
+       if (pListData->loaded_ug)
+               return;
+
+       if (pListData->pPopup) {
+               if (pListData->pPopup->popup_type == THREAD_POPUP_MORE) {
+                       elm_popup_dismiss(pListData->pPopup->popup_object);
+                       return;
+               } else {
+                       msg_ui_thread_destroy_popup(pListData);
+               }
+       }
+
+       if (pListData->list_type != THREAD_NORMAL_LIST_TYPE && pListData->item_cnt <= 0)
+               return;
+
+       /* Create pop-up (  Spam / SIM (it will be extended) ) */
+       Evas_Object *more_popup = NULL;
+       more_popup = elm_popup_add(pData->win_main);
+
+       elm_popup_align_set(more_popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(more_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       evas_object_event_callback_add(more_popup, EVAS_CALLBACK_DEL, __msg_ui_thread_popup_delete_cb, (void *)pListData);
+       evas_object_smart_callback_add(more_popup, "dismissed", __msg_ui_thread_popup_dismissed_cb, (void *)pListData);
+       eext_object_event_callback_add(more_popup, EEXT_CALLBACK_BACK, msg_ui_thread_popup_back_cb, (void *)pListData);
+       eext_object_event_callback_add(more_popup, EEXT_CALLBACK_MORE, msg_ui_thread_popup_back_cb, (void *)pListData);
+       evas_object_smart_callback_add(more_popup, "block,clicked", msg_ui_thread_popup_back_cb, (void *)pListData);
+
+       Evas_Object *genlist = elm_genlist_add(more_popup);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+
+       more_options_list_itc.item_style = "default";
+       more_options_list_itc.func.text_get = __msg_ui_thread_more_options_gl_text_get;
+       more_options_list_itc.func.content_get = NULL;
+       more_options_list_itc.func.state_get = NULL;
+       more_options_list_itc.func.del = NULL;
+
+       switch (pListData->list_type) {
+               case THREAD_NORMAL_LIST_TYPE:
+                       if (pListData->item_cnt > 0) {
+                               elm_genlist_item_append(genlist, &more_options_list_itc, "IDS_MSG_OPT_SEARCH", NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctlbar_search_cb, pListData);
+                               elm_genlist_item_append(genlist, &more_options_list_itc, "IDS_MSG_OPT_DELETE", NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctlbar_checkbox_cb, pListData);
+                       }
+
+                       elm_genlist_item_append(genlist, &more_options_list_itc, "IDS_MSG_OPT_SETTINGS", NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctlbar_setting_cb, pListData);
+                       break;
+
+               case THREAD_SIM_LIST_TYPE:
+                       if (pListData->item_cnt > 0) {
+                               elm_genlist_item_append(genlist, &more_options_list_itc, "IDS_MSGF_OPT_DELETE_MESSAGES", NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctlbar_checkbox_cb, pListData);
+                               elm_genlist_item_append(genlist, &more_options_list_itc, "IDS_MSG_OPT_COPY_TO_DEVICE_ABB", NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctlbar_checkbox_cb, pListData);
+                       }
+                       break;
+
+               case THREAD_CBMSG_LIST_TYPE:
+                       if (pListData->item_cnt > 0) {
+                               elm_genlist_item_append(genlist, &more_options_list_itc, "IDS_MSGF_OPT_DELETE_MESSAGES", NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctlbar_checkbox_cb, pListData);
+                       }
+                       break;
+
+               default:
+                       D_EMSG("invalid viewmode");
+                       break;
+       }
+
+       evas_object_show(genlist);
+       elm_object_content_set(more_popup, genlist);
+       evas_object_show(more_popup);
+
+       PMSG_APP_THREAD_POPUP pPopup = (PMSG_APP_THREAD_POPUP)calloc(1, sizeof(MSG_APP_THREAD_POPUP));
+       if (pPopup) {
+               pPopup->popup_object = more_popup;
+               pPopup->popup_type = THREAD_POPUP_MORE;
+               pListData->pPopup = pPopup;
+       } else {
+               D_EMSG("calloc is failed (%s)", strerror(errno));
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_thread_popup_dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       if (pListData->pPopup)
+               msg_ui_thread_destroy_popup(pListData);
+
+       pListData->action_type = THREAD_ACTION_NONE;
+
+       D_LEAVE;
+}
+
+static void __msg_ui_thread_popup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       Elm_Object_Item *item = NULL;
+
+       if (pListData->pPopup && pListData->pPopup->popup_type == THREAD_POPUP_CONTEXTUAL) {
+               item = evas_object_data_get(obj, "selected_item");
+               if (item) {
+                       D_MSG("Longpressed popup is deleted, swipe is enabled.");
+                       elm_object_item_signal_emit(item, "elm,swipe,enabled", "");
+               }
+       }
+
+       evas_object_smart_callback_del(obj, "dismissed", __msg_ui_thread_popup_dismissed_cb);
+       evas_object_event_callback_del_full(obj, EVAS_CALLBACK_DEL, __msg_ui_thread_popup_delete_cb, pListData);
+}
+
+void msg_ui_thread_popup_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       bool show_info = false;
+
+       D_MSG("view_mode : %d, action_type : %d", pListData->view_mode, pListData->action_type);
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+               if (pListData->pPopup) {
+                       if (pListData->pPopup->popup_type == THREAD_POPUP_PROGRESS) {
+                               PMSG_APP_THREAD_POPUP_PROGRESS pPopup = (PMSG_APP_THREAD_POPUP_PROGRESS)pListData->pPopup;
+
+                               if (pListData->action_type == THREAD_ACTION_DELETE)
+                                       elm_object_disabled_set(obj, EINA_TRUE);
+
+                               if (msg_ui_thread_cancel_ecore_thread(pPopup->multi_action_thread, MSG_THREAD_MULTI_ACTION))
+                                       pPopup->multi_action_thread = NULL;
+                               else
+                                       return;
+
+                               show_info = true;
+                       }
+
+                       msg_ui_thread_destroy_popup(pListData);
+               }
+
+               if (show_info == true) {
+                       msg_ui_thread_show_action_finish_info(pListData, pListData->action_type, NULL);
+                       msg_ui_thread_show_normal_mode(pListData);
+
+                       if (pListData->list_type == THREAD_NORMAL_LIST_TYPE) {
+                               msg_ui_thread_list_load(pListData, FALSE);
+                       } else {
+                               PMSG_THREAD_LIST_DATA pDefaultList = msg_ui_thread_get_default_list();
+
+                               msg_ui_thread_msg_list_load(pListData, pListData->list_type);
+
+                               if (pDefaultList)
+                                       msg_ui_thread_list_load(pDefaultList, FALSE); /* might be changed */
+                       }
+                       pListData->action_type = THREAD_ACTION_NONE;
+                       msg_ui_thread_show_normal_mode(pListData);
+               }
+       } else {
+               if (pListData->pPopup)
+                       msg_ui_thread_destroy_popup(pListData);
+
+               pListData->action_type = THREAD_ACTION_NONE;
+       }
+}
+
+void msg_ui_thread_sel_all_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       Elm_Object_Item *it;
+       Evas_Object *ic_ly = NULL;
+       void *item_data = NULL;
+
+       pListData->sel_all_checked = !pListData->sel_all_checked;
+
+       if (pListData->sel_all_checked) {
+               pListData->check_cnt = pListData->item_cnt;
+               if (pListData->sel_all_check)
+                       elm_check_state_set(pListData->sel_all_check, EINA_TRUE);
+       } else {
+               pListData->check_cnt = 0;
+               pListData->chk_list = eina_list_free(pListData->chk_list);
+               if (pListData->sel_all_check)
+                       elm_check_state_set(pListData->sel_all_check, EINA_FALSE);
+       }
+
+
+
+       it = elm_genlist_first_item_get(pListData->genlist);
+
+       while (it) {
+               item_data = elm_object_item_data_get(it);
+               if (item_data) {
+                       Evas_Object *check = NULL;
+
+                       if (pListData->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                               PMSG_APP_THREAD_CONV_DATA_S data = (PMSG_APP_THREAD_CONV_DATA_S)item_data;
+                               data->is_check = pListData->sel_all_checked;
+                       } else {
+                               PMSG_APP_THREAD_MSG_DATA_S data = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+                               data->is_check = pListData->sel_all_checked;
+                       }
+
+                       ic_ly = elm_object_item_part_content_get(it, "elm.icon.2");
+                       check = elm_layout_content_get(ic_ly, "elm.swallow.content");
+                       if (check)
+                               elm_check_state_set(check, pListData->sel_all_checked);
+
+                       if (pListData->sel_all_checked && !eina_list_data_find(pListData->chk_list, item_data))
+                               pListData->chk_list = eina_list_append(pListData->chk_list, item_data);
+               }
+
+               it = elm_genlist_item_next_get(it);
+       }
+       msg_ui_thread_show_select_info(pListData);
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_list_checked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       void *item_data = NULL;
+       Eina_Bool is_check = EINA_FALSE;
+
+       item_data = evas_object_data_get(obj, "item_data");
+
+       if (item_data) {
+               if (pListData->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                       PMSG_APP_THREAD_CONV_DATA_S data = (PMSG_APP_THREAD_CONV_DATA_S)item_data;
+                       is_check = data->is_check;
+               } else {
+                       PMSG_APP_THREAD_MSG_DATA_S data = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+                       is_check = data->is_check;
+               }
+
+               if (is_check) {
+                       pListData->check_cnt++;
+                       if (!eina_list_data_find(pListData->chk_list, item_data))
+                               pListData->chk_list = eina_list_append(pListData->chk_list, item_data);
+               } else {
+                       pListData->check_cnt--;
+                       pListData->chk_list = eina_list_remove(pListData->chk_list, item_data);
+               }
+
+               if (pListData->item_cnt == pListData->check_cnt) {
+                       if (pListData->sel_all_check)
+                               elm_check_state_set(pListData->sel_all_check, EINA_TRUE);
+                       pListData->sel_all_checked = true;
+               } else {
+                       if (pListData->sel_all_check)
+                               elm_check_state_set(pListData->sel_all_check, EINA_FALSE);
+                       pListData->sel_all_checked = false;
+               }
+       }
+
+       msg_ui_thread_show_select_info(pListData);
+
+       D_LEAVE;
+}
+
+Eina_Bool msg_ui_thread_back_btn_clicked_cb(void *data, Elm_Object_Item *it)
+{
+       D_ENTER;
+       MSG_UI_RETVM_IF(MSG_UI_LEVEL_ERR, !data, EINA_FALSE, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, EINA_FALSE, "pData is NULL");
+
+       Eina_Bool ret = EINA_FALSE;
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+       if (pListData->adv_search_ly)
+               return msg_ui_thread_destroy_search_detail_view(pListData);
+#endif
+
+       if (pListData->search_mode == THREAD_SEARCH_ON) {
+               msg_ui_thread_cancel_search_mode(pListData, true);
+               if (pListData->composer_btn)
+                       msg_ui_thread_show_composer_btn(pListData);
+               return EINA_FALSE;
+       }
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+               msg_ui_thread_show_normal_mode(pListData);
+               msg_ui_thread_list_update(pListData);
+               ret = EINA_FALSE;
+       } else {
+               if (pListData->list_type == THREAD_NORMAL_LIST_TYPE) {
+                       elm_win_lower(pData->win_main);
+               } else {
+                       PMSG_THREAD_LIST_DATA pPrevList = msg_ui_thread_get_prev_list(pListData);
+                       if (pPrevList) {
+                               msg_ui_thread_set_navi_toolbar_item(pPrevList, false);
+                               msg_ui_thread_set_title_status(pPrevList);
+
+                               msg_ui_thread_destroy_thread_list_data(pListData);
+                               if (pListData->composer_btn)
+                                       msg_ui_thread_show_composer_btn(pListData);
+                               else
+                                       pListData->composer_btn = msg_ui_thread_create_composer_btn(pData);
+
+                               if (pPrevList->item_cnt == 0) {
+                                       if (!pPrevList->noc_ly) {
+                                               pPrevList->noc_ly = msg_ui_thread_create_nocontent_layout(pData->navi_frame, pPrevList->search_mode);
+                                       } else {
+                                               msg_ui_thread_create_nocontent_layout_change(pPrevList->noc_ly, pPrevList->search_mode);
+                                       }
+                               }
+                       }
+                       ret = EINA_TRUE;
+               }
+       }
+
+       D_LEAVE;
+       return ret;
+}
+
+void msg_ui_thread_searchbar_entry_change_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       if (!elm_entry_is_empty(pListData->search_entry)) {
+               elm_object_signal_emit(pListData->searchfield_ly, "elm,action,show,button", "");
+
+       } else {
+               elm_object_signal_emit(pListData->searchfield_ly, "elm,action,hide,button", "");
+       }
+
+       if (msg_ui_thread_get_app_state(pData) == MSG_UI_STATE_PAUSE)
+               return;
+
+       if (pListData->sel_thread_id == 0) {    /* do not reset list on selection of genlist */
+               /* Make timer for check user's input */
+               if (pListData->search_timer) {
+                       ecore_timer_del(pListData->search_timer);
+                       pListData->search_timer = NULL;
+               }
+
+               if (pListData->search_mode == THREAD_SEARCH_OFF || pListData->search_gl == NULL)
+                       return;
+
+               pListData->search_timer = ecore_timer_add(0.3, __msg_ui_thread_searchbar_entry_timer_cb, pListData);
+       }
+
+       D_LEAVE;
+}
+
+static Eina_Bool __msg_ui_thread_searchbar_entry_timer_cb(void *data)
+{
+       D_ENTER;
+       if (!data) {
+               D_EMSG("data is NULL");
+               return EINA_FALSE;
+       }
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, EINA_FALSE, "pData is NULL.");
+
+       pListData->search_timer = NULL;
+
+       if (pListData->search_mode == THREAD_SEARCH_OFF || pListData->search_gl == NULL)
+               return ECORE_CALLBACK_CANCEL;
+
+       if (!msg_ui_thread_search_job_request(pListData))
+               msg_ui_thread_search_list_redraw(pListData, false);
+
+       D_LEAVE;
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void msg_ui_thread_searchbar_activated_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       if (!data) {
+               D_EMSG("data is NULL");
+               return;
+       }
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       Evas_Object *entry = NULL;
+       char *search_str = NULL;
+
+       search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+
+       if (search_str && strlen(search_str) > 0) {
+               if (pListData->search_str) {
+                       if (strcmp(search_str, pListData->search_str) != 0)
+                               msg_ui_thread_search_list_load(pListData);
+               } else {
+                       msg_ui_thread_search_list_load(pListData);
+               }
+               if (!pListData->item_cnt)
+                       elm_entry_input_panel_hide(entry);
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+               msg_ui_thread_launch_search_detail_view(pListData, search_str);
+#else
+               elm_object_focus_set(entry, EINA_FALSE);
+#endif
+       }
+
+       if (search_str) {
+               free(search_str);
+               search_str = NULL;
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_msg_searchbar_entry_imf_state_cb(void *data, Ecore_IMF_Context *ctx, int value)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       D_MSG_RETM_IF(!ctx, "ctx is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA) data;
+       PMSG_APP_THREAD_MSG_DATA_S item_data = NULL;
+
+       D_MSG("key state = %d", value);
+
+       if (pListData->sel_gen_item) {
+               D_MSG("sel_gen_item exists ");
+       } else {
+               D_MSG("sel_gen_item is NULL ");
+       }
+
+       if (value == ECORE_IMF_INPUT_PANEL_STATE_HIDE && pListData->sel_gen_type == THREAD_SEARCH_MSG) {
+               item_data = (PMSG_APP_THREAD_MSG_DATA_S) elm_object_item_data_get(pListData->sel_gen_item);
+               D_MSG_RETM_IF(item_data == NULL, "item_data is NULL");
+               D_MSG("pListData->sel_thread_id : %d, pListData->sel_msg_id : %d", pListData->sel_thread_id, item_data->msg_id);
+               D_MSG_RETM_IF(pListData->sel_msg_id == item_data->msg_id, "Already selected item. %d, %p", pListData->sel_msg_id, pListData->sel_gen_item);
+               D_MSG_RETM_IF(item_data->msg_id <= 0, "Msg Id is 0");
+
+               switch (pListData->view_mode) {
+                       case THREAD_NORMAL_VIEW:
+                       case THREAD_UNLOAD_VIEW:
+                                       /* pListData->sel_gen_item = pListData->sel_gen_item; */
+                                       pListData->sel_msg_id = item_data->msg_id;
+                                       if (pListData->sel_thread_id > 0)
+                                               pListData->sel_thread_id = 0;
+
+                                       if (msg_ui_thread_create_bubble_by_msgid(pListData, item_data->msg_id, true) == MSG_UI_RET_ERR) {
+                                               D_EMSG("Failed to load bubble viewer");
+
+                                               if (pListData->sel_gen_item)
+                                                       elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+                                               pListData->sel_gen_item = NULL;
+                                               pListData->sel_msg_id = 0;
+                                               break;
+                                       }
+
+                               elm_genlist_item_item_class_update(pListData->sel_gen_item, &pListData->itc_msg);
+                               elm_genlist_item_update(pListData->sel_gen_item);
+                               break;
+                       case THREAD_EDIT_VIEW:
+                               if (pListData->sel_gen_item)
+                                       elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+                               item_data->is_check = !item_data->is_check;
+
+                               Evas_Object *ic_ly = elm_object_item_part_content_get(pListData->sel_gen_item, "elm.icon.2");
+                               Evas_Object *check = elm_layout_content_get(ic_ly, "elm.swallow.content");
+                               if (check) {
+                                       elm_check_state_set(check, item_data->is_check);
+                                       evas_object_smart_callback_call(check, "changed", NULL);
+                               }
+                               break;
+                       default:
+                               break;
+               }
+               pListData->sel_gen_type = THREAD_SEARCH_ALL;
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_ctx_menu_delete_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !obj || !data);
+       PMSG_THREAD_LIST_DATA pListData = data;
+       void *item_data = evas_object_data_get(obj, "item_data");
+
+       msg_ui_thread_destroy_popup(pListData);
+       pListData->action_type = THREAD_ACTION_DELETE;
+       msg_ui_thread_action_process(pListData, item_data, false);
+       return;
+}
+
+void msg_ui_thread_ctx_menu_restore_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !obj || !data);
+       PMSG_THREAD_LIST_DATA pListData = data;
+       void *item_data = evas_object_data_get(obj, "item_data");
+
+       msg_ui_thread_destroy_popup(pListData);
+       pListData->action_type = THREAD_ACTION_RESTORE;
+       msg_ui_thread_action_process(pListData, item_data, false);
+       return;
+}
+
+void msg_ui_thread_ctx_menu_ct_detail_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !obj || !data);
+
+       PMSG_THREAD_LIST_DATA pListData = data;
+       int contact_id = 0;
+       PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S)evas_object_data_get(obj, "item_data");
+       D_MSG_RETM_IF(!item_data, "item_data is NULL");
+
+       msg_ui_thread_destroy_popup(pListData);
+
+       if (item_data) {
+               if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                       if (item_data->thread_id <= 0) {
+                               D_EMSG("[ERROR] msg_data : %p (msg_id : %d) is already deleted", item_data, item_data->thread_id);
+                               return;
+                       }
+                       if (item_data->addr_info[0])
+                               contact_id = item_data->addr_info[0]->contact_id;
+               } else {
+                       PMSG_APP_THREAD_MSG_DATA_S msg_data = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+
+                       if (msg_data->msg_id <= 0) {
+                               D_EMSG("[ERROR] msg_data : %p (msg_id : %d) is already deleted", msg_data, msg_data->msg_id);
+                               return;
+                       }
+
+                       if (msg_data->addr_info[0])
+                               contact_id = msg_data->addr_info[0]->contact_id;
+               }
+       } else {
+               D_EMSG("item_data is NULL");
+       }
+
+       msg_ui_thread_launch_contact_ug(pListData, NULL, contact_id, THREAD_CT_UG_TYPE_DETAIL);
+}
+
+
+void msg_ui_thread_ctx_menu_add_contacts_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !obj || !data);
+       PMSG_THREAD_LIST_DATA pListData = data;
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       char addr[DEF_THREAD_ADDR_LEN+1] = {0,};
+       PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S)evas_object_data_get(obj, "item_data");
+       D_MSG_RETM_IF(!item_data, "item_data is NULL");
+       Evas_Object *popup = NULL;
+
+       msg_ui_thread_destroy_popup(pListData);
+
+       if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+               if (item_data->thread_id <= 0) {
+                       D_EMSG("[ERROR] item_data : %p (thread_id : %d) is already deleted", item_data, item_data->thread_id);
+                       return;
+               }
+
+               if (item_data->addr_info[0] && item_data->addr_info[0]->address[0] != '\0') {
+                       snprintf(addr, sizeof(addr), "%s", item_data->addr_info[0]->address);
+               } else {
+                       D_EMSG("item_data->addr_info[0] is NULL");
+               }
+       } else {
+               PMSG_APP_THREAD_MSG_DATA_S msg_data = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+
+               if (msg_data->msg_id <= 0) {
+                       D_EMSG("[ERROR] msg_data : %p (msg_id : %d) is already deleted", msg_data, msg_data->msg_id);
+                       return;
+               }
+
+               if (msg_data->addr_info[0] && msg_data->addr_info[0]->address[0] != '\0') {
+                       snprintf(addr, sizeof(addr), "%s", msg_data->addr_info[0]->address);
+               } else {
+                       D_EMSG("msg_data->addr_info[0] is NULL");
+               }
+       }
+
+       popup = elm_popup_add(pData->win_main);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_thread_popup_back_cb, (void *)pListData);
+       evas_object_smart_callback_add(popup, "block,clicked", msg_ui_thread_popup_back_cb, (void *)pListData);
+
+       elm_object_part_text_set(popup, "title,text", addr);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_popup_item_append(popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB"), NULL, msg_ui_thread_add_contact_cb, pListData);
+       elm_popup_item_append(popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_UPDATE_CONTACT"), NULL, msg_ui_thread_add_contact_cb, pListData);
+
+       evas_object_show(popup);
+
+       PMSG_APP_THREAD_POPUP pPopup = (PMSG_APP_THREAD_POPUP)calloc(1, sizeof(MSG_APP_THREAD_POPUP));
+       D_MSG_RETM_IF(!pPopup, "pPopup is NULL. Memory cannot be allocated");
+
+       pPopup->popup_object = popup;
+       pPopup->popup_type = THREAD_POPUP_NONE;
+
+       pListData->pPopup = (PMSG_APP_THREAD_POPUP)pPopup;
+}
+
+void msg_ui_thread_add_contact_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !obj || !data);
+
+       PMSG_THREAD_LIST_DATA pListData = data;
+       Elm_Object_Item *list_item = event_info;
+       const char *title = NULL;
+       const char *item_str = NULL;
+       ContactUgType type = THREAD_CT_UG_TYPE_NONE;
+
+       if (pListData->pPopup)
+               title = elm_object_part_text_get(pListData->pPopup->popup_object, "title,text");
+
+       item_str = elm_object_item_text_get(list_item);
+       if (strcmp(item_str, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB")) == 0)
+               type = THREAD_CT_UG_TYPE_ADD;
+       else
+               type = THREAD_CT_UG_TYPE_UPDATE;
+
+       msg_ui_thread_destroy_popup(pListData);
+       if (title)
+               msg_ui_thread_launch_contact_ug(pListData, title, 0, type);
+}
+
+void msg_ui_thread_ctx_menu_msg_detail_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!obj, "obj is NULL");
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = data;
+       PMSG_APP_THREAD_MSG_DATA_S item_data = (PMSG_APP_THREAD_MSG_DATA_S)evas_object_data_get(obj, "item_data");
+       Evas_Object *popup = NULL;
+
+       msg_ui_thread_destroy_popup(pListData);
+
+       /* create popup */
+       popup = elm_popup_add(pData->win_main);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       /* set title text */
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSGF_HEADER_MESSAGE_DETAILS");
+
+       if (item_data) {
+               /* set popup text */
+               char *str = msg_common_make_message_detail_text(pData->msgHandle, item_data->msg_id);
+
+               if (str) {
+                       elm_object_text_set(popup, str);
+                       free(str);
+               } else {
+                       D_EMSG("msg_common_make_message_detail_text is failed");
+                       return;
+               }
+       } else {
+               D_EMSG("item_data is NULL");
+       }
+
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_thread_popup_back_cb, (void *)pListData);
+       evas_object_smart_callback_add(popup, "block,clicked", msg_ui_thread_popup_back_cb, (void *)pListData);
+
+       Evas_Object *btn = elm_button_add(popup);
+       elm_object_style_set(btn, "popup");
+       elm_object_domain_translatable_text_set(btn, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       elm_object_part_content_set(popup, "button1", btn);
+       evas_object_smart_callback_add(btn, "clicked", msg_ui_thread_popup_back_cb, pListData);
+
+       evas_object_show(popup);
+
+       PMSG_APP_THREAD_POPUP pPopup = (PMSG_APP_THREAD_POPUP)calloc(1, sizeof(MSG_APP_THREAD_POPUP));
+       if (pPopup) {
+               pPopup->popup_object = popup;
+               pPopup->popup_type = THREAD_POPUP_NONE;
+
+               pListData->pPopup = (PMSG_APP_THREAD_POPUP)pPopup;
+       } else {
+               D_EMSG("calloc is failed (%s)", strerror(errno));
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_ctx_menu_call_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !obj || !data);
+
+       PMSG_THREAD_LIST_DATA pListData = data;
+       PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S)evas_object_data_get(obj, "item_data");
+       D_MSG_RETM_IF(!item_data, "item_data is NULL");
+
+
+       msg_ui_thread_destroy_popup(pListData);
+
+       if (item_data) {
+               if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                       if (item_data->addr_cnt == 1) {
+                               if (item_data->addr_info[0])
+                                       msg_ui_thread_launch_voice_call(item_data->addr_info[0]->address);
+                       } else {
+                               msg_ui_thread_addr_select_popup(pListData, ADDR_POPUP_CALL, item_data->addr_info, item_data->addr_cnt);
+                       }
+               } else {
+                       PMSG_APP_THREAD_MSG_DATA_S msg_data  = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+
+                       if (msg_data->addr_cnt == 1) {
+                               if (msg_data->addr_info[0])
+                                       msg_ui_thread_launch_voice_call(msg_data->addr_info[0]->address);
+                       } else {
+                               msg_ui_thread_addr_select_popup(pListData, ADDR_POPUP_CALL, msg_data->addr_info, msg_data->addr_cnt);
+                       }
+               }
+       }
+}
+
+void msg_ui_thread_ctx_menu_copy_phone_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !obj || !data);
+       PMSG_THREAD_LIST_DATA pListData = data;
+       int msg_id = 0;
+       PMSG_APP_THREAD_MSG_DATA_S item_data  = (PMSG_APP_THREAD_MSG_DATA_S)evas_object_data_get(obj, "item_data");
+       msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+       msg_error_t err =  MSG_SUCCESS;
+
+       msg_ui_thread_destroy_popup(pListData);
+
+       if (item_data) {
+               err = msg_get_message(msg_ui_thread_get_data_handle(), (msg_message_id_t)item_data->msg_id, msgInfo, sendOpt);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_get_message() is failed : err = %d, msgid = %d", err, item_data->msg_id);
+                       msg_release_struct(&msgInfo);
+                       msg_release_struct(&sendOpt);
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_COPY"));
+                       return;
+               }
+       } else {
+               D_EMSG("item_data is NULL");
+       }
+
+       msg_set_int_value(msgInfo, MSG_MESSAGE_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+       msg_id = msg_add_message(msg_ui_thread_get_data_handle(), msgInfo, sendOpt);
+       if (msg_id >= 0)
+               msg_ui_thread_show_action_finish_info(pListData, THREAD_ACTION_COPY_TO_PHONE, NULL);
+
+       msg_release_struct(&msgInfo);
+       msg_release_struct(&sendOpt);
+       return;
+}
+
+void msg_ui_thread_ctx_menu_copy_sim_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!obj, "obj is NULL");
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = data;
+       int msg_id = 0;
+       PMSG_APP_THREAD_MSG_DATA_S item_data  = (PMSG_APP_THREAD_MSG_DATA_S)evas_object_data_get(obj, "item_data");
+       msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+       msg_error_t err =  MSG_SUCCESS;
+
+       msg_ui_thread_destroy_popup(pListData);
+
+       if (item_data) {
+               err = msg_get_message(msg_ui_thread_get_data_handle(), (msg_message_id_t)item_data->msg_id, msgInfo, sendOpt);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_get_message() is failed : err = %d, msgid = %d", err, item_data->msg_id);
+                       goto CATCH_COPY_FAILED;
+               }
+       } else {
+               D_EMSG("item_data is NULL");
+       }
+
+       msg_id = msg_add_message(msg_ui_thread_get_data_handle(), msgInfo, sendOpt);
+       if (msg_id <= 0) {
+               D_EMSG("msg_id <= 0");
+               goto CATCH_COPY_FAILED;
+       }
+
+       err = msg_move_msg_to_storage(msg_ui_thread_get_data_handle(), msg_id, MSG_STORAGE_SIM);
+       if (err == MSG_SUCCESS) {
+               msg_ui_thread_show_action_finish_info(pListData, THREAD_ACTION_COPY_TO_SIM, NULL);
+       } else if (err == MSG_ERR_SIM_STORAGE_FULL) {
+               PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+               if (!pData) {
+                       D_EMSG("pData is NULL");
+                       goto CATCH_COPY_FAILED;
+               }
+
+               Evas_Object *popup = NULL;
+               Evas_Object *btn_ok = NULL;
+
+               popup = elm_popup_add(pData->win_main);
+               elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+               evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_thread_popup_back_cb, (void *)pListData);
+               elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS");
+
+               btn_ok = elm_button_add(popup);
+               elm_object_style_set(btn_ok, "popup");
+               elm_object_domain_translatable_text_set(btn_ok, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+
+               elm_object_part_content_set(popup, "button1", btn_ok);
+               evas_object_smart_callback_add(btn_ok, "clicked", msg_ui_thread_popup_back_cb, pListData);
+               evas_object_show(popup);
+
+               PMSG_APP_THREAD_POPUP_ACTION pPopup = (PMSG_APP_THREAD_POPUP_ACTION)calloc(1, sizeof(MSG_APP_THREAD_POPUP_ACTION));
+               pPopup->popup_object = popup;
+               pPopup->popup_type = THREAD_POPUP_NONE;
+
+               pListData->pPopup = (PMSG_APP_THREAD_POPUP)pPopup;
+
+               msg_delete_message(msg_ui_thread_get_data_handle(), msg_id);
+       } else {
+               msg_delete_message(msg_ui_thread_get_data_handle(), msg_id);
+               goto CATCH_COPY_FAILED;
+       }
+
+       msg_release_struct(&msgInfo);
+       msg_release_struct(&sendOpt);
+       return;
+
+CATCH_COPY_FAILED:
+       msg_release_struct(&msgInfo);
+       msg_release_struct(&sendOpt);
+       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_COPY"));
+       return;
+}
+
+void msg_ui_thread_ctx_menu_copy_text_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !obj || !data);
+
+       PMSG_THREAD_LIST_DATA pListData = data;
+       PMSG_APP_THREAD_MSG_DATA_S item_data  = (PMSG_APP_THREAD_MSG_DATA_S)evas_object_data_get(obj, "item_data");
+       msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+       msg_error_t err =  MSG_SUCCESS;
+
+       msg_ui_thread_destroy_popup(pListData);
+
+       if (item_data) {
+               err = msg_get_message(msg_ui_thread_get_data_handle(), (msg_message_id_t)item_data->msg_id, msgInfo, sendOpt);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_get_message() is failed : err = %d, msgid = %d", err, item_data->msg_id);
+                       msg_release_struct(&msgInfo);
+                       msg_release_struct(&sendOpt);
+                       return;
+               }
+       } else {
+               D_EMSG("item_data is NULL");
+       }
+
+       int msgSize = 0;
+       msg_get_int_value(msgInfo, MSG_MESSAGE_DATA_SIZE_INT, &msgSize);
+
+       char msgText[msgSize + 1];
+       memset(msgText, 0, msgSize + 1);
+       msg_get_str_value(msgInfo, MSG_MESSAGE_SMS_DATA_STR, msgText, msgSize);
+
+       Evas_Object *entry = elm_entry_add(pListData->content_ly);
+       elm_entry_entry_set(entry, "");
+       elm_cnp_selection_set(entry, ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_TEXT, msgText, strlen(msgText));
+       evas_object_del(entry);
+
+       msg_release_struct(&msgInfo);
+       msg_release_struct(&sendOpt);
+}
+
+void msg_ui_thread_ctx_menu_forward_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       PMSG_THREAD_LIST_DATA pListData = data;
+       PMSG_APP_THREAD_MSG_DATA_S item_data  = (PMSG_APP_THREAD_MSG_DATA_S)evas_object_data_get(obj, "item_data");
+       char buf[DEF_BUF_LEN_S] = { 0, };
+       app_control_h svc_handle;
+
+       msg_ui_thread_destroy_popup(pListData);
+       D_MSG_RETM_IF(!item_data, "item_data is NULL");
+       /* create and call composer-ug */
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               if (item_data->msg_id) {
+                       snprintf(buf, sizeof(buf), "%d", item_data->msg_id);
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, buf);
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_FORWARD);
+               } else {
+                       D_EMSG("item_data->msg_id is NULL");
+               }
+
+               if (msg_ui_load_composer_ug(svc_handle, MSG_COMPOSER_UG_TYPE_COMPOSER, false) == MSG_UI_RET_ERR)
+                       D_EMSG("Failed to load composer ug");
+
+               app_control_destroy(svc_handle);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_timezone_change_cb(system_settings_key_e key, void *user_data)
+{
+       __msg_ui_thread_timezone_change_cb(user_data);
+}
+
+static void __msg_ui_thread_timezone_change_cb(void *user_data)
+{
+       D_ENTER;
+
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)user_data;
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+
+       char *timezone_id = NULL;
+       i18n_uchar utimezone_id[DEF_BUF_LEN] = {0,};
+       int status = I18N_ERROR_NONE;
+       int i = 0;
+
+       system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, &timezone_id);
+
+       if (!timezone_id)
+               return;
+
+       i18n_ustring_copy_ua(utimezone_id, timezone_id);
+
+       status = i18n_ucalendar_set_default_timezone(utimezone_id);
+
+       if (timezone_id)
+               free(timezone_id);
+
+       if (status != I18N_ERROR_NONE) {
+               D_EMSG("i18n_ucalendar_set_default_timezone failed");
+               return;
+       }
+
+       msg_ui_thread_get_locale(pData);
+       msg_ui_thread_get_time_format(pData);
+
+       if (pData->time_12h_ptn) {
+               free(pData->time_12h_ptn);
+               pData->time_12h_ptn = NULL;
+       }
+
+       if (pData->time_24h_ptn) {
+               free(pData->time_24h_ptn);
+               pData->time_24h_ptn = NULL;
+       }
+
+       if (pData->date_ptn_default) {
+               free(pData->date_ptn_default);
+               pData->date_ptn_default = NULL;
+       }
+
+       if (pData->date_ptn_year) {
+               free(pData->date_ptn_year);
+               pData->date_ptn_year = NULL;
+       }
+
+       pData->time_12h_ptn = msg_common_get_date_best_pattern(pData->locale, MSG_UI_TIME_PATTERN_12H);
+       pData->time_24h_ptn = msg_common_get_date_best_pattern(pData->locale, MSG_UI_TIME_PATTERN_24H);
+       pData->date_ptn_default = msg_common_get_date_best_pattern(pData->locale, MSG_UI_DATE_PATTERN_LIST_DEFAULT);
+       pData->date_ptn_year = msg_common_get_date_best_pattern(pData->locale, MSG_UI_DATE_PATTERN_LIST_YEAR);
+
+       for (i = 0; i < MSG_THREAD_LIST_MAX_COUNT; i++) {
+               if (pData->list_data[i] != NULL) {
+                       pListData = pData->list_data[i];
+                       elm_genlist_realized_items_update(pListData->genlist);
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_gl_highlighted(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !event_info);
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       Elm_Object_Item *gen_item = event_info;
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S) elm_object_item_data_get(gen_item);
+
+       if (item_data == NULL)
+               return;
+
+       if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+               item_data->bHighlight = true;
+               elm_genlist_item_fields_update(gen_item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
+       } else {
+               PMSG_APP_THREAD_MSG_DATA_S msg_data = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+               msg_data->bHighlight = true;
+               elm_genlist_item_fields_update(gen_item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
+       }
+}
+
+void msg_ui_thread_gl_unhighlighted(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !event_info);
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       Elm_Object_Item *gen_item = event_info;
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S) elm_object_item_data_get(gen_item);
+
+       if (item_data == NULL)
+               return;
+
+       if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+               item_data->bHighlight = false;
+               elm_genlist_item_fields_update(gen_item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
+       } else {
+               PMSG_APP_THREAD_MSG_DATA_S msg_data = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+               msg_data->bHighlight = false;
+               elm_genlist_item_fields_update(gen_item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
+       }
+}
+
+#ifdef MSG_LONGPRESS_SUPPORTED
+static void __msg_ui_thread_longpressed_gl_realized_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!obj || !event_info, "Inparameters are NULL");
+       Elm_Object_Item *item = event_info;
+
+       if (item == elm_genlist_last_item_get(obj))
+               elm_object_item_signal_emit(item, "elm,state,bottomline,hide", "");
+
+       return;
+}
+
+void msg_ui_thread_longpressed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!event_info, "event_info is NULL");
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       if (pListData->swipe_enable) {
+               D_MSG("swipe is enabeld, longpressed popup cb is exit.");
+               return;
+       }
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       Elm_Object_Item *gen_item = (Elm_Object_Item *)event_info;
+       PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S)elm_object_item_data_get(gen_item);
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW || pListData->search_mode == THREAD_SEARCH_ON)
+               return;
+
+       msg_ui_thread_destroy_popup(pListData);
+
+       Evas_Object *popup = NULL;
+       Evas_Object *box = NULL;
+       Evas_Object *genlist = NULL;
+       int list_cnt = 0;
+
+       if (item_data == NULL) {
+               D_EMSG("item_data is NULL");
+               return;
+       }
+
+       elm_genlist_item_selected_set(gen_item, EINA_FALSE);
+
+       /** create popup */
+       popup = elm_popup_add(pData->win_main);
+       if (!popup) {
+               D_EMSG("elm_popup_add returns NULL");
+               return;
+       }
+
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       elm_popup_orient_set(popup, ELM_POPUP_ORIENT_BOTTOM);
+       evas_object_data_set(popup, "selected_item", gen_item);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_thread_popup_back_cb, (void *)pListData);
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __msg_ui_thread_popup_delete_cb, (void *)pListData);
+       evas_object_smart_callback_add(popup, "block,clicked", msg_ui_thread_popup_back_cb, (void *)pListData);
+       evas_object_smart_callback_add(pData->win_main, "rotation,changed", __msg_ui_thread_popup_rotate_cb, (void *)pListData);
+
+       box = elm_box_add(popup);
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       /** create menu list */
+       genlist = elm_genlist_add(popup);
+       if (!genlist) {
+               D_EMSG("elm_genlist_add failed");
+               return;
+       }
+
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+       evas_object_data_set(genlist, "item_data", item_data);
+
+       evas_object_smart_callback_add(genlist, "realized", __msg_ui_thread_longpressed_gl_realized_cb, NULL);
+
+       memset(&pData->itc_popup, 0x00, sizeof(Elm_Genlist_Item_Class));
+       pData->itc_popup.item_style = "default";
+       pData->itc_popup.func.text_get = __msg_ui_thread_ctx_popup_gl_text_get;
+       pData->itc_popup.func.content_get = NULL;
+       pData->itc_popup.func.state_get = NULL;
+       pData->itc_popup.func.del = NULL;
+
+       if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+               if (item_data->addr_cnt == 0) {
+                       char buf[DEF_BUF_LEN+1] = { 0, };
+
+                       elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_DELETE_CONV, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_delete_cb, pListData);
+                       list_cnt++;
+
+                       snprintf(buf, sizeof(buf), "%s", dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+
+                       char *markup_text = elm_entry_utf8_to_markup(buf);
+                       if (markup_text) {
+                               elm_object_part_text_set(popup, "title,text", markup_text);
+                               free(markup_text);
+                       }
+                       goto __UNABLE_TO_USE_ADDRLIST;
+               }
+
+               if (item_data->addr_cnt > 1 || (item_data->addr_info[0] && item_data->addr_info[0]->addr_type == MSG_ADDRESS_TYPE_UNKNOWN)) {
+                       int i = 0;
+                       char temp[DEF_BUF_LEN+1] = { 0, };
+                       char buf[DEF_BUF_LEN+1] = { 0, };
+
+                       elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_DELETE_CONV, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_delete_cb, pListData);
+                       list_cnt++;
+
+                       for (i = 0; i < item_data->addr_cnt; i++) {
+                               snprintf(temp, sizeof(temp), "%s", buf);
+
+                               if (*temp) {
+                                       if (item_data->addr_info[i]->display_name[0] != '\0')
+                                               snprintf(buf, sizeof(buf), "%s, %s", temp, item_data->addr_info[i]->display_name);
+                                       else if (item_data->addr_info[i]->address[0] != '\0')
+                                               snprintf(buf, sizeof(buf), "%s, %s", temp, item_data->addr_info[i]->address);
+                                       else
+                                               snprintf(buf, sizeof(buf), "%s, %s", temp, dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+                               } else {
+                                       if (item_data->addr_info[i]->display_name[0] != '\0')
+                                               snprintf(buf, sizeof(buf), "%s", item_data->addr_info[i]->display_name);
+                                       else if (item_data->addr_info[i]->address[0] != '\0')
+                                               snprintf(buf, sizeof(buf), "%s", item_data->addr_info[i]->address);
+                                       else
+                                               snprintf(buf, sizeof(buf), "%s", dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+                               }
+                       }
+                       char *markup_text = elm_entry_utf8_to_markup(buf);
+                       if (markup_text) {
+                               elm_object_part_text_set(popup, "title,text", markup_text);
+                               free(markup_text);
+                       }
+
+                       /* In case of Push message and CB message */
+                       if (item_data->msg_type == MSG_TYPE_SMS_CB || item_data->msg_type == MSG_TYPE_SMS_WAPPUSH || item_data->msg_type == MSG_TYPE_SMS_SYNCML) {
+                               if (item_data->msg_type == MSG_TYPE_SMS_CB) {
+                                       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSGF_BODY_CB_MESSAGES");
+                               } else if (item_data->msg_type == MSG_TYPE_SMS_WAPPUSH) {
+                                       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSGF_BODY_PUSH_MESSAGES");
+                               } else if (item_data->msg_type == MSG_TYPE_SMS_SYNCML) {
+                                       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSGF_BODY_CP_MESSAGES");
+                               }
+                       }
+               } else {
+                       bool isBlock = false;
+
+                       if (item_data->addr_info[0])
+                               msg_common_check_block_number(msg_ui_thread_get_data_handle(), item_data->addr_info[0]->address, &isBlock);
+
+                       elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_DELETE_CONV, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_delete_cb, pListData);
+                       list_cnt++;
+
+#ifdef _MSG_CONTACT_IMG_MENU_DISABLE
+                       if (item_data->addr_info[0] && item_data->addr_info[0]->addr_type == MSG_ADDRESS_TYPE_PLMN) {
+                               elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_CALL, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_call_cb, pListData);
+                               list_cnt++;
+                       }
+#endif /* _MSG_CONTACT_IMG_MENU_DISABLE */
+
+                       if ((item_data->addr_info[0]->addr_type != MSG_ADDRESS_TYPE_EMAIL) && (item_data->msg_type != MSG_TYPE_SMS_SYNCML)) {
+                               if (isBlock)
+                                       elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_UNBLOCK, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_unblock_cb, pListData);
+                               else
+                                       elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_BLOCK, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_block_cb, pListData);
+                               list_cnt++;
+                       }
+
+                       if (item_data->addr_info[0]) {
+#ifdef _MSG_CONTACT_IMG_MENU_DISABLE
+                               if (item_data->addr_info[0]->contact_id > 0)
+                                       elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_VIEW_CT, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_ct_detail_cb, pListData);
+                               else
+                                       elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_ADD_CT, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_add_contacts_cb, pListData);
+                               list_cnt++;
+#endif /* _MSG_CONTACT_IMG_MENU_DISABLE */
+                       } else {
+                               D_EMSG("item_data->addr_info[0] is NULL");
+                       }
+
+                       char *markup_text = NULL;
+                       if (item_data->addr_info[0]) {
+                               if (strlen(item_data->addr_info[0]->display_name) > 0)
+                                       markup_text = elm_entry_utf8_to_markup(item_data->addr_info[0]->display_name);
+                               else if (strlen(item_data->addr_info[0]->address) > 0)
+                                       markup_text = elm_entry_utf8_to_markup(item_data->addr_info[0]->address);
+                       }
+
+                       if (markup_text) {
+                               elm_object_part_text_set(popup, "title,text", markup_text);
+                               free(markup_text);
+                       } else {
+                               elm_object_part_text_set(popup, "title,text", dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+                       }
+               }
+       } else {
+               PMSG_APP_THREAD_MSG_DATA_S msg_data  = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+
+               switch (pListData->list_type) {
+                       case THREAD_NORMAL_LIST_TYPE:
+                               if (msg_data->addr_cnt > 1 || (msg_data->addr_info[0] && msg_data->addr_info[0]->addr_type == MSG_ADDRESS_TYPE_UNKNOWN)) {
+                                       elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_DELETE_MSG, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_delete_cb, pListData);
+                                       list_cnt++;
+                               } else {
+                                       if (msg_data->addr_info[0])
+                                               msg_common_check_block_number(msg_ui_thread_get_data_handle(), msg_data->addr_info[0]->address, &isBlock);
+
+                                       elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_DELETE_MSG, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_delete_cb, pListData);
+                                       list_cnt++;
+
+#ifdef _MSG_CONTACT_IMG_MENU_DISABLE
+                                       if (msg_data->addr_info[0] && msg_data->addr_info[0]->addr_type == MSG_ADDRESS_TYPE_PLMN) {
+                                               elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_CALL, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_call_cb, pListData);
+                                               list_cnt++;
+                                       }
+#endif /* _MSG_CONTACT_IMG_MENU_DISABLE */
+
+                                       if (item_data->addr_info[0]->addr_type != MSG_ADDRESS_TYPE_EMAIL) {
+                                               if (isBlock)
+                                                       elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_UNBLOCK, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_unblock_cb, pListData);
+                                               else
+                                                       elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_BLOCK, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_block_cb, pListData);
+                                               list_cnt++;
+                                       }
+
+                                       if (msg_data->addr_info[0]) {
+#ifdef _MSG_CONTACT_IMG_MENU_DISABLE
+                                               if (msg_data->addr_info[0]->contact_id > 0)
+                                                       elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_VIEW_CT, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_ct_detail_cb, pListData);
+                                               else
+                                                       elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_ADD_CT, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_add_contacts_cb, pListData);
+                                               list_cnt++;
+#endif /* _MSG_CONTACT_IMG_MENU_DISABLE */
+                                       } else {
+                                               D_EMSG("msg_data->addr_info[0] is NULL");
+                                       }
+                               }
+                               break;
+
+                       case THREAD_CBMSG_LIST_TYPE:
+                               elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_DELETE_MSG, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_delete_cb, pListData);
+                               list_cnt++;
+                               break;
+
+                       case THREAD_SIM_LIST_TYPE:
+                               elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_DELETE_MSG, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_delete_cb, pListData);
+                               list_cnt++;
+                               elm_genlist_item_append(genlist, &pData->itc_popup, (void *)THREAD_CTXPOPUP_COPY_PHONE, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_ctx_menu_copy_phone_cb, pListData);
+                               list_cnt++;
+                               break;
+
+                       default:
+                               break;
+               }
+
+               int i = 0;
+               char temp[DEF_BUF_LEN+1] = { 0, };
+               char buf[DEF_BUF_LEN+1] = { 0, };
+               char str_name[DEF_BUF_LEN+1] = { 0, };
+
+               for (i = 0; i < msg_data->addr_cnt; i++) {
+                       if (msg_data->addr_info[i]) {
+                               if (msg_data->addr_info[i]->contact_id > 0 && msg_data->addr_info[i]->display_name[0] != '\0') {
+                                       snprintf(str_name, sizeof(str_name), "%s", msg_data->addr_info[i]->display_name);
+                               } else {
+                                       if (msg_data->addr_info[i]->address[0] != '\0')
+                                               snprintf(str_name, sizeof(str_name), "%s", msg_data->addr_info[i]->address);
+                                       else
+                                               snprintf(str_name, sizeof(str_name), dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+                               }
+                       } else {
+                               D_EMSG("msg_data->addr_info[%d] is NULL", i);
+                               snprintf(str_name, sizeof(str_name), dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+                       }
+
+                       snprintf(temp, sizeof(temp), "%s", buf);
+
+                       if (*temp)
+                               snprintf(buf, sizeof(buf), "%s, %s", temp, str_name);
+                       else
+                               snprintf(buf, sizeof(buf), "%s", str_name);
+               }
+               char *markup_text = elm_entry_utf8_to_markup(buf);
+               if (markup_text) {
+                       elm_object_part_text_set(popup, "title,text", markup_text);
+                       free(markup_text);
+               }
+       }
+
+
+__UNABLE_TO_USE_ADDRLIST:
+
+       evas_object_show(genlist);
+       elm_box_pack_end(box, genlist);
+       elm_object_content_set(popup, box);
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+       evas_object_data_set(pListData->genlist, "popup", popup);
+       elm_object_scroll_freeze_push(pListData->genlist);
+
+       PMSG_APP_THREAD_POPUP_CONTEXTUAL pPopup = (PMSG_APP_THREAD_POPUP_CONTEXTUAL)calloc(1, sizeof(MSG_APP_THREAD_POPUP_CONTEXTUAL));
+       pPopup->popup_object = popup;
+       pPopup->popup_type = THREAD_POPUP_CONTEXTUAL;
+       pPopup->genlist = genlist;
+
+       pListData->pPopup = (PMSG_APP_THREAD_POPUP)pPopup;
+}
+
+static char *__msg_ui_thread_ctx_popup_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       CtxPopupType item_type = (CtxPopupType)data;
+
+       if (!g_strcmp0(part, "elm.text")) {
+               switch (item_type) {
+                       case THREAD_CTXPOPUP_CALL:
+                               return strdup(dgettext("sys_string", "IDS_COM_BODY_CALL"));
+                       case THREAD_CTXPOPUP_DELETE_CONV:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE_CONVERSATION_ABB"));
+                       case THREAD_CTXPOPUP_DELETE_MSG:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE_MESSAGE"));
+                       case THREAD_CTXPOPUP_VIEW_CT:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"));
+                       case THREAD_CTXPOPUP_ADD_CT:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"));
+                       case THREAD_CTXPOPUP_UNBLOCK:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"));
+                       case THREAD_CTXPOPUP_BLOCK:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"));
+                       case THREAD_CTXPOPUP_RESTORE:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_SK_RESTORE"));
+                       case THREAD_CTXPOPUP_VIEW_DETAIL:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_DETAILS_ABB"));
+                       case THREAD_CTXPOPUP_COPY_PHONE:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"));
+                       case THREAD_CTXPOPUP_COPY_SIM:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"));
+                       case THREAD_CTXPOPUP_FORWARD:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_FORWARD"));
+                       case THREAD_CTXPOPUP_COPY_TEXT:
+                               return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_COPY_TEXT"));
+                       default:
+                               break;
+               }
+       }
+       return NULL;
+}
+#endif
+
+void msg_ui_thread_scroll_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       if (pListData->scrl_timer)
+               ecore_timer_del(pListData->scrl_timer);
+
+       pListData->scrl_timer = ecore_timer_add(MSG_THREAD_LIST_SCRL_TIME, __msg_ui_thread_scrl_timer, (void *)pListData);
+}
+
+static Eina_Bool __msg_ui_thread_scrl_timer(void *data)
+{
+       MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, EINA_FALSE);
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       if (pListData->scrl_timer)
+               pListData->scrl_timer = NULL;
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void msg_ui_thread_clear_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       elm_entry_entry_set(pListData->search_entry, "");
+}
+
diff --git a/thread/src/msg-ui-thread-list.c b/thread/src/msg-ui-thread-list.c
new file mode 100755 (executable)
index 0000000..cb5ca78
--- /dev/null
@@ -0,0 +1,4800 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-thread-main.h"
+
+#define __SCREEN_ITEM_COUNT ((msg_ui_thread_rotation_get()) ? 5 : 8)   /* item count that can be displayed in a screen */
+
+static int __msg_ui_thread_init_genlist(PMSG_THREAD_LIST_DATA pListData);
+static char *__msg_ui_thread_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__msg_ui_thread_gl_content_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_thread_gl_del(void *data, Evas_Object *obj);
+static void __msg_ui_thread_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static Eina_Bool __msg_ui_thread_db_wait_timer_cb(void *data);
+static Eina_Bool __msg_ui_thread_list_load_remain_item(void *data);
+static int _msg_ui_thread_last_msg_id_get();
+static PMSG_APP_THREAD_SEARCH_TITLE_S __msg_ui_thread_insert_search_title(void *data, ThreadSearchType nType, int nCount);
+static void __msg_ui_thread_genlist_style_set(PMSG_THREAD_LIST_DATA pListData, ThreadAppDataType nType);
+static void __msg_ui_thread_genlist_style_data_set(PMSG_THREAD_LIST_DATA pListData, ThreadAppDataType nType, Elm_Genlist_Item_Class *genlist_itc);
+
+static int __msg_ui_thread_init_genlist(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!pListData, MSG_UI_RET_ERR, "pListData is NULL");
+
+       if (pListData->genlist) {
+               if (elm_genlist_items_count(pListData->genlist) > 0)
+                       elm_genlist_clear(pListData->genlist);
+       }
+
+       return MSG_UI_RET_SUCCESS;
+}
+
+static int _msg_ui_thread_last_msg_id_get(int thread_id, int *result)
+{
+       msg_struct_list_s msg_list;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       int error = 0;
+       if (pData) {
+               error = msg_get_conversation_view_list(pData->msgHandle, thread_id, &msg_list);
+               if (MSG_SUCCESS == error) {
+                       error = msg_get_int_value(msg_list.msg_struct_info[msg_list.nCount - 1], MSG_CONV_MSG_ID_INT, result);
+               }
+       } else {
+               D_EMSG("pData is NULL");
+       }
+
+       return error;
+}
+
+void msg_ui_thread_set_conv_data(PMSG_THREAD_LIST_DATA pListData, PMSG_APP_THREAD_CONV_DATA_S thread_data, msg_struct_t msgThreadInfo)
+{
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+       D_MSG_RETM_IF(!thread_data, "thread_data is NULL");
+       D_MSG_RETM_IF(!msgThreadInfo, "msgThreadInfo is NULL");
+
+       int thread_id = 0, last_msg_id = 0, unreadCnt = 0, msgType = 0, direction = 0, smsCnt = 0, mmsCnt = 0;
+       char threadData[DEF_BUF_LEN_S+1] = {0,};
+
+       bool bDraft = false;
+       bool bFailed = false;
+       bool bSending = false;
+       gint prev_len = 0;
+
+       thread_data->app_data_type = THREAD_LIST_APP_DATA_CONV;
+
+       msg_get_int_value(msgThreadInfo, MSG_THREAD_ID_INT, &thread_id);
+       thread_data->thread_id = thread_id;
+
+       _msg_ui_thread_last_msg_id_get(thread_data->thread_id, &last_msg_id);
+       thread_data->last_msg_id = last_msg_id;
+
+       msg_get_str_value(msgThreadInfo, MSG_THREAD_MSG_DATA_STR, threadData, DEF_BUF_LEN_S);
+       bzero(thread_data->thread_data, sizeof(thread_data->thread_data));
+
+       prev_len = g_utf8_strlen(threadData, -1);
+       if (prev_len > MSG_THREAD_LIST_PREV_DATA_LEN)
+               prev_len = MSG_THREAD_LIST_PREV_DATA_LEN;
+       g_utf8_strncpy(thread_data->thread_data, threadData, prev_len);
+
+       if (thread_data->thread_time == NULL)
+               thread_data->thread_time = (time_t *)calloc(1, sizeof(time_t));
+
+       if (thread_data->thread_time) {
+               bzero(thread_data->thread_time, sizeof(time_t));
+               msg_get_int_value(msgThreadInfo, MSG_THREAD_MSG_TIME_INT, (int *)thread_data->thread_time);
+       }
+
+       msg_get_int_value(msgThreadInfo, MSG_THREAD_MSG_TYPE_INT, &msgType);
+       thread_data->msg_type =  msgType;
+       msg_get_int_value(msgThreadInfo, MSG_THREAD_MMS_COUNT_INT, &mmsCnt);
+       thread_data->mms_cnt = mmsCnt;
+       msg_get_int_value(msgThreadInfo, MSG_THREAD_SMS_COUNT_INT, &smsCnt);
+       thread_data->sms_cnt = smsCnt;
+       msg_get_int_value(msgThreadInfo, MSG_THREAD_DIRECTION_INT, &direction);
+       thread_data->direction = direction;
+
+       msg_get_bool_value(msgThreadInfo, MSG_THREAD_DRAFT_BOOL, &bDraft);
+       thread_data->bDraft = bDraft;
+       msg_get_bool_value(msgThreadInfo, MSG_THREAD_SEND_FAILED_BOOL, &bFailed);
+       thread_data->bFailed = bFailed;
+       msg_get_bool_value(msgThreadInfo, MSG_THREAD_SENDING_BOOL, &bSending);
+       thread_data->bSending = bSending;
+       thread_data->bHighlight = false;
+
+       if (pListData && pListData->sel_thread_id == thread_data->thread_id) {
+               thread_data->unread_cnt = 0;
+       } else {
+               msg_get_int_value(msgThreadInfo, MSG_THREAD_UNREAD_COUNT_INT, &unreadCnt);
+               thread_data->unread_cnt = unreadCnt;
+       }
+}
+
+void msg_ui_thread_set_msg_data(PMSG_APP_THREAD_MSG_DATA_S msg_data, msg_struct_t msgInfo)
+{
+       D_MSG_RETM_IF(!msg_data, "msg_data is NULL");
+       D_MSG_RETM_IF(!msgInfo, "msgInfo is NULL");
+
+       int msgId = 0;
+       int threadId = 0;
+       int msgType = 0;
+       int direction = 0;
+       bool read_status = 0;
+
+       msg_list_handle_t addr_list = NULL;
+       msg_error_t err = MSG_SUCCESS;
+
+       msg_data->app_data_type = THREAD_LIST_APP_DATA_MSG;
+
+       /* msg_id */
+       msg_get_int_value(msgInfo, MSG_MESSAGE_ID_INT, &msgId);
+       msg_data->msg_id = msgId;
+       /* thread_id */
+       msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, &threadId);
+       msg_data->thread_id = threadId;
+       /* msg_type */
+       msg_get_int_value(msgInfo, MSG_MESSAGE_TYPE_INT, &msgType);
+       msg_data->msg_type = msgType;
+       /* read status */
+       msg_get_bool_value(msgInfo, MSG_MESSAGE_READ_BOOL, &read_status);
+       msg_data->is_read = read_status;
+
+       msg_get_int_value(msgInfo, MSG_MESSAGE_DIRECTION_INT, &direction);
+       msg_data->direction = direction;
+
+       /* addr_info */
+       err = msg_get_list_handle(msgInfo, MSG_MESSAGE_ADDR_LIST_HND, (void **)&addr_list);
+       if (err == MSG_SUCCESS) {
+               msg_data->addr_cnt = msg_list_length(addr_list);
+               msg_data->addr_info = (PMSG_APP_THREAD_ADDR_INFO_S *)calloc(1, sizeof(PMSG_APP_THREAD_ADDR_INFO_S) *msg_data->addr_cnt);
+
+               if (msg_data->addr_info)
+                       msg_ui_thread_get_addr_info(msg_data->addr_info, msg_data->addr_cnt, NULL, addr_list);
+       }
+
+       /*body*/
+       const char *pContent = NULL;
+       int msgSize = 0;
+       msg_get_int_value(msgInfo, MSG_MESSAGE_DATA_SIZE_INT, &msgSize);
+       char msgText[msgSize + 1];
+       char subject[DEF_BUF_LEN_S+1] = {0,};
+       memset(msgText, 0, msgSize + 1);
+
+       msg_get_str_value(msgInfo, MSG_MESSAGE_SMS_DATA_STR, msgText, msgSize);
+       msg_get_str_value(msgInfo, MSG_MESSAGE_SUBJECT_STR, subject, DEF_BUF_LEN_S);
+
+       if (msg_data->msg_type >= MSG_TYPE_MMS && msg_data->msg_type <= MSG_TYPE_MMS_NOTI) {
+               if (strlen(subject) > 0)
+                       pContent = subject;
+               else
+                       pContent = msgText;
+       } else {
+               pContent = msgText;
+       }
+
+       if (strlen(pContent) > 0)
+               strncpy(msg_data->msg_body, pContent, sizeof(msg_data->msg_body)-1);
+       else
+               strncpy(msg_data->msg_body, "", sizeof(msg_data->msg_body)-1);
+
+       if (msg_data->msg_time == NULL)
+               msg_data->msg_time = (time_t *)calloc(1, sizeof(time_t));
+
+       if (msg_data->msg_time) {
+               bzero(msg_data->msg_time, sizeof(time_t));
+               msg_get_int_value(msgInfo, MSG_MESSAGE_DISPLAY_TIME_INT, (int *)msg_data->msg_time);
+       }
+
+       msg_data->bHighlight = false;
+}
+
+static bool msg_ui_get_caption(enum _MSG_MESSAGE_TYPE_E msg_type, int buf_size, char *out_caption)
+{
+       D_ENTER;
+       bool found = false;
+       switch (msg_type) {
+               case MSG_TYPE_SMS_CB:
+                       snprintf(out_caption, buf_size, dgettext("message", "IDS_MSGF_BODY_CB_MESSAGES"));
+                       found = true;
+                       break;
+               case MSG_TYPE_SMS_WAPPUSH:
+                       snprintf(out_caption, buf_size, dgettext("message", "IDS_MSGF_BODY_PUSH_MESSAGES"));
+                       found = true;
+                       break;
+               case MSG_TYPE_SMS_SYNCML:
+                       snprintf(out_caption, buf_size, dgettext("message", "IDS_MSGF_BODY_CP_MESSAGES"));
+                       found = true;
+                       break;
+               default:
+                       D_WMSG("Unsupported message-type: %d, ", msg_type);
+                       break;
+       }
+       return found;
+}
+
+static char *__msg_ui_thread_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, NULL, "data is NULL");
+
+       PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S)data;
+       char buf[DEF_BUF_LEN+1] = { 0, };
+
+       if (g_strcmp0(part, "elm.text.1") == 0 || g_strcmp0(part, "elm.text.main.left.top") == 0) {
+               int i = 0;
+               char str_name[DEF_BUF_LEN+1] = { 0, };
+               char temp[DEF_BUF_LEN+1] = { 0, };
+               PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+
+               if (!msg_ui_get_caption(item_data->msg_type, DEF_BUF_LEN+1, buf)) {
+
+                       if (item_data->addr_info == NULL) {
+                               msg_struct_list_s addrList;
+                               msg_error_t err = MSG_SUCCESS;
+
+                               memset(&addrList, 0x00, sizeof(msg_struct_list_s));
+                               err = msg_get_address_list(msg_ui_thread_get_data_handle(), item_data->thread_id, &addrList);
+                               if (err == MSG_SUCCESS) {
+                                       item_data->addr_cnt = addrList.nCount;
+                                       item_data->addr_info = (PMSG_APP_THREAD_ADDR_INFO_S *)calloc(1, sizeof(PMSG_APP_THREAD_ADDR_INFO_S) *item_data->addr_cnt);
+
+                                       if (item_data->addr_info) {
+                                               msg_ui_thread_get_addr_info(item_data->addr_info, item_data->addr_cnt, &addrList, NULL);
+                                               msg_release_list_struct(&addrList);
+                                       } else {
+                                               msg_release_list_struct(&addrList);
+                                               return NULL;
+                                       }
+                               } else {
+                                       D_EMSG("msg_get_address_list is failed");
+                                       return NULL;
+                               }
+                       }
+
+                       for (i = 0; i < item_data->addr_cnt; i++) {
+                               if (item_data->addr_info[i]) {
+                                       if (item_data->addr_info[i]->contact_id > 0 && item_data->addr_info[i]->display_name[0] != '\0') {
+                                               snprintf(str_name, sizeof(str_name), "%s", item_data->addr_info[i]->display_name);
+                                       } else {
+                                               if (item_data->addr_info[i]->address[0] != '\0')
+                                                       snprintf(str_name, sizeof(str_name), "%s", item_data->addr_info[i]->address);
+                                               else
+                                                       snprintf(str_name, sizeof(str_name), dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+                                       }
+                               } else {
+                                       D_EMSG("item_data->addr_info[%d] is NULL", i);
+                               }
+
+                               snprintf(temp, sizeof(temp), "%s", buf);
+
+                               if (*temp)
+                                       snprintf(buf, sizeof(buf), "%s, %s", temp, str_name);
+                               else
+                                       snprintf(buf, sizeof(buf), "%s", str_name);
+
+                               D_MSG("str_name = %s", str_name);
+                       }
+               }
+               if (pListData && pListData->search_mode == THREAD_SEARCH_ON) {
+                       char *search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+                       bool result = false;
+
+                       if (search_str) {
+                               if (strlen(search_str) > 0) {
+                                       const char *str = msg_ui_thread_make_search_result_string(buf, search_str, &result);
+                                       free(search_str);
+                                       return strdup(str);
+                               }
+                               free(search_str);
+                       }
+               }
+       } else if (g_strcmp0(part, "elm.text.2") == 0 || g_strcmp0(part, "elm.text.sub.left.bottom") == 0) {
+               int idx = 0;
+               char msg[DEF_BUF_LEN] = { 0, };
+
+               if (item_data->thread_data[0] != '\0') {
+                       strncpy(msg, item_data->thread_data, sizeof(msg) - 1);
+                       while (msg[idx]) {
+                               if (g_ascii_iscntrl(msg[idx]))
+                                       msg[idx] = ' ';
+                               idx++;
+                       }
+                       snprintf(buf, sizeof(buf), "%s", msg);
+               } else {
+                       if (item_data->msg_type >= MSG_TYPE_MMS && item_data->msg_type <= MSG_TYPE_MMS_NOTI)
+                               snprintf(buf, sizeof(buf), "(%s)", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_NO_SUBJECT"));
+               }
+       } else if (g_strcmp0(part, "elm.text.4") == 0 || g_strcmp0(part, "elm.text.sub.right.top") == 0) {
+               if (item_data->bSending && item_data->unread_cnt <= 0) {
+                       return NULL;
+               } else {
+                       if (item_data->thread_time == NULL || *item_data->thread_time <= 0)
+                               return NULL;
+                       else
+                               msg_ui_thread_make_time_string(item_data->thread_time, buf, sizeof(buf));
+               }
+       } else if (g_strcmp0(part, "elm.text.3") == 0 || g_strcmp0(part, "elm.text.sub.right.bottom") == 0) {
+               if (item_data->unread_cnt > 0) {
+                       return NULL;
+               } else if (item_data->bSending) {
+                       snprintf(buf, sizeof(buf), "%s", dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_SENDING_ING_M_STATUS_ABB"));
+               } else if (item_data->bDraft) {
+                       int r = 0, g = 0, b = 0, a = 0;
+                       snprintf(buf, sizeof(buf), dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_DRAFT_M_STATUS_ABB"));
+                       char *markup_text = elm_entry_utf8_to_markup(buf);
+                       if (markup_text) {
+                               memset(buf, 0, sizeof(buf));
+                               snprintf(buf, sizeof(buf), "<color=#%02x%02x%02x%02x>%s</color>", COLOR_RED, markup_text);
+                               free(markup_text);
+                       }
+                       return strdup(buf);
+               } else if (item_data->bFailed) {
+                       int r = 0, g = 0, b = 0, a = 0;
+                       snprintf(buf, sizeof(buf), dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"));
+                       char *markup_text = elm_entry_utf8_to_markup(buf);
+                       if (markup_text) {
+                               memset(buf, 0, sizeof(buf));
+                               snprintf(buf, sizeof(buf), "<color=#%02x%02x%02x%02x>%s</color>", COLOR_RED, markup_text);
+                               free(markup_text);
+                       }
+                       return strdup(buf);
+               }
+       } else if (g_strcmp0(part, "elm.text.swipe.left") == 0) {
+               snprintf(buf, sizeof(buf), dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_MESSAGE"));
+       } else if (g_strcmp0(part, "elm.text.swipe.right") == 0) {
+               if (item_data->addr_info == NULL) {
+                       msg_struct_list_s addrList;
+                       msg_error_t err = MSG_SUCCESS;
+
+                       memset(&addrList, 0x00, sizeof(msg_struct_list_s));
+                       err = msg_get_address_list(msg_ui_thread_get_data_handle(), item_data->thread_id, &addrList);
+                       if (err == MSG_SUCCESS) {
+                               item_data->addr_cnt = addrList.nCount;
+                               item_data->addr_info = (PMSG_APP_THREAD_ADDR_INFO_S *)calloc(1, sizeof(PMSG_APP_THREAD_ADDR_INFO_S) *item_data->addr_cnt);
+
+                               if (item_data->addr_info)
+                                       msg_ui_thread_get_addr_info(item_data->addr_info, item_data->addr_cnt, &addrList, NULL);
+                       }
+                       msg_release_list_struct(&addrList);
+               }
+
+               if (item_data->addr_cnt > 0 && item_data->addr_info && item_data->addr_info[0]) {
+                       if (item_data->addr_info[0]->addr_type == MSG_ADDRESS_TYPE_PLMN)
+                               snprintf(buf, sizeof(buf), dgettext("sys_string", "IDS_COM_BODY_CALL"));
+                       else
+                               snprintf(buf, sizeof(buf), dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_NO_NUMBER"));
+               } else {
+                       snprintf(buf, sizeof(buf), dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_NO_NUMBER"));
+               }
+       }
+
+       char *markup_text = elm_entry_utf8_to_markup(buf);
+       if (markup_text) {
+               memset(buf, 0, sizeof(buf));
+               snprintf(buf, sizeof(buf), "%s", markup_text);
+               free(markup_text);
+       }
+
+       return strdup(buf);
+}
+
+static Evas_Object *msg_ui_thread_unread_create_image_layout(Evas_Object *parent)
+{
+       Evas_Object *layout = NULL;
+
+       layout = elm_layout_add(parent);
+       elm_layout_file_set(layout, MSG_THREAD_THEME, MSG_THREAD_UNREAD_IMG_LAYOUT);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_fill_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       return layout;
+}
+
+void msg_ui_thread_destroy_reusable_layout_list(Eina_List *list)
+{
+       Eina_List *l = NULL, *l_next = NULL;
+       MSG_CACHED_LAYOUT_DATA *data = NULL;
+
+       EINA_LIST_FOREACH_SAFE(list, l, l_next, data)
+       {
+               if (data == NULL) {
+                       list = eina_list_remove_list(list, l);
+                       D_WMSG("null data item exists.");
+                       continue;
+               }
+               evas_object_del(data->layout);
+               free(data);
+               list = eina_list_remove_list(list, l);
+       }
+}
+
+MSG_CACHED_LAYOUT_DATA *msg_ui_thread_get_reusable_layout(PMSG_THREAD_LIST_DATA pListData, int type)
+{
+       D_MSG_RETVM_IF(!pListData, NULL, "pListData is NULL.");
+       D_MSG_RETVM_IF(!pListData->genlist, NULL, "pListData->genlist is NULL.");
+
+       MSG_CACHED_LAYOUT_DATA *data = NULL;
+
+       /* get cached layout */
+       if (pListData->reusable_layout_list) {
+               Eina_List *l = NULL, *l_next = NULL;
+
+               EINA_LIST_FOREACH_SAFE(pListData->reusable_layout_list, l, l_next, data)
+               {
+                       if (data == NULL) {
+                               pListData->reusable_layout_list = eina_list_remove_list(pListData->reusable_layout_list, l);
+                               D_WMSG("null data item exists.");
+                               continue;
+                       }
+                       if (data->type == type) {
+                               evas_object_show(data->layout);
+                               pListData->reusable_layout_list = eina_list_remove_list(pListData->reusable_layout_list, l);
+                               break;
+                       }
+               }
+       }
+
+       /* create new layout if it's failed to get from cached layout list */
+       if (data == NULL) {
+               Evas_Object *layout = NULL;
+               switch (type) {
+                       case THREAD_REUSABLE_LAYOUT_TYPE_THUMB:
+                               {
+                                       layout = elm_layout_add(pListData->genlist);
+                                       elm_layout_theme_set(layout, "layout", "list/B/type.2", "default");
+
+                                       Evas_Object *ct_image_ly = elm_layout_add(layout);
+                                       elm_layout_file_set(ct_image_ly, MSG_THREAD_THEME, "contact_thumbnail_tagged");
+                                       evas_object_size_hint_weight_set(ct_image_ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                                       evas_object_size_hint_fill_set(ct_image_ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
+                                       evas_object_show(ct_image_ly);
+
+                                       elm_object_part_content_set(layout, "elm.swallow.content", ct_image_ly);
+                               }
+                               break;
+                       case THREAD_REUSABLE_LAYOUT_TYPE_UNREAD:
+                               {
+                                       Evas_Object *unread_ly = NULL;
+
+                                       layout = elm_layout_add(pListData->genlist);
+                                       elm_layout_theme_set(layout, "layout", "list/A/right.icon", "default");
+
+                                       unread_ly = msg_ui_thread_unread_create_image_layout(layout);
+                                       elm_object_signal_emit(unread_ly, "count.show", "");
+
+                                       char buf[DEF_BUF_LEN] = { 0, };
+                                       msg_ui_thread_count_from_int_to_str(buf, DEF_BUF_LEN, pListData->unread_cnt);
+
+                                       elm_object_part_text_set(unread_ly, "elm.text.count", buf);
+
+                                       evas_object_show(unread_ly);
+                                       elm_layout_content_set(layout, "elm.swallow.content", unread_ly);
+                               }
+                               break;
+                       case THREAD_REUSABLE_LAYOUT_TYPE_CHECK:
+                               {
+                                       layout = elm_layout_add(pListData->genlist);
+                                       elm_layout_theme_set(layout, "layout", "list/C/type.2", "default");
+                               }
+                               break;
+                       default:
+                               D_EMSG("type (%d) error.", type);
+                               return NULL;
+               }
+
+               data = (MSG_CACHED_LAYOUT_DATA *)malloc(sizeof(MSG_CACHED_LAYOUT_DATA));
+               if (!data) {
+                       D_EMSG("malloc failed.");
+                       evas_object_del(layout);
+                       return NULL;
+               }
+               memset(data, 0, sizeof(MSG_CACHED_LAYOUT_DATA));
+
+               data->type = type;
+               data->layout = layout;
+       }
+
+       return data;
+}
+
+static Evas_Object *__msg_ui_thread_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, NULL, "data is NULL");
+       PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S)data;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, NULL, "pData is NULL");
+
+       D_MSG("part = %s", part);
+
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+       Evas_Object *ic = NULL;
+       MSG_CACHED_LAYOUT_DATA *ly_data = NULL;
+
+       /* find pListData of THIS genlist */
+       register int i = 0;
+       for (i = MSG_THREAD_LIST_MAX_COUNT-1; i >= 0; i--) {
+               if (pData->list_data[i] != NULL) {
+                       if (pData->list_data[i]->genlist == obj) {
+                               pListData = pData->list_data[i];
+                               break;
+                       }
+               }
+       }
+       D_MSG_RETVM_IF(!pListData, NULL, "pListData is NULL");
+
+       if (g_strcmp0(part, "elm.icon.1") == 0) {
+               ly_data = msg_ui_thread_get_reusable_layout(pListData, THREAD_REUSABLE_LAYOUT_TYPE_THUMB);
+               if (!ly_data)
+                       return NULL;
+
+               if (item_data->addr_info == NULL) {
+                       msg_struct_list_s addrList;
+                       msg_error_t err = MSG_SUCCESS;
+
+                       memset(&addrList, 0x00, sizeof(msg_struct_list_s));
+                       err = msg_get_address_list(msg_ui_thread_get_data_handle(), item_data->thread_id, &addrList);
+                       if (err == MSG_SUCCESS) {
+                               item_data->addr_cnt = addrList.nCount;
+                               item_data->addr_info = (PMSG_APP_THREAD_ADDR_INFO_S *)calloc(1, sizeof(PMSG_APP_THREAD_ADDR_INFO_S) *item_data->addr_cnt);
+
+                               if (item_data->addr_info)
+                                       msg_ui_thread_get_addr_info(item_data->addr_info, item_data->addr_cnt, &addrList, NULL);
+                       }
+                       msg_release_list_struct(&addrList);
+               }
+
+               /* set thumbnail image */
+               Evas_Object *ct_image_ly = elm_object_part_content_get(ly_data->layout, "elm.swallow.content");
+               if (ct_image_ly) {
+                       int thumb_type = THREAD_THUMB_NONE;
+                       char *img_path = NULL;
+                       evas_object_show(ct_image_ly);
+
+                       switch (item_data->msg_type) {
+                       case MSG_TYPE_SMS_CB:
+                               thumb_type = THREAD_THUMB_CB;
+                               img_path = MSG_LIST_THUMB_CB;
+                               break;
+                       case MSG_TYPE_SMS_WAPPUSH:
+                               thumb_type = THREAD_THUMB_PUSH;
+                               img_path = MSG_LIST_THUMB_PUSH;
+                               break;
+                       case MSG_TYPE_SMS_SYNCML:
+                               thumb_type = THREAD_THUMB_OTA;
+                               img_path = MSG_LIST_THUMB_OTA;
+                               break;
+                       default:
+                               if (item_data->addr_cnt > 1) {
+                                       thumb_type = THREAD_THUMB_GROUP;
+                                       img_path = MSG_LIST_THUMB_GROUP;
+                               } else {
+                                       if (item_data->addr_info && item_data->addr_info[0] && item_data->addr_info[0]->thumb_path != NULL) {
+                                               thumb_type = THREAD_THUMB_USER;
+                                               img_path = item_data->addr_info[0]->thumb_path;
+                                       } else {
+                                               thumb_type = THREAD_THUMB_CONTACT;
+                                               img_path = MSG_LIST_THUMB_CONTACT;
+                                       }
+                               }
+                               break;
+                       }
+
+                       if (ly_data->sub_type != THREAD_THUMB_NONE) {
+                               /* delete if reusable thumnail object cannot be used */
+                               if (ly_data->sub_type != thumb_type) {
+                                       Evas_Object *icon = elm_object_part_content_unset(ct_image_ly, "contact_thumbnail");
+                                       if (icon)
+                                               evas_object_del(icon);
+                                       ly_data->sub_type = THREAD_THUMB_NONE;
+                               }
+                       }
+
+                       if (ly_data->sub_type == THREAD_THUMB_NONE) {
+                               /* create a new masking thumbnail image */
+                               if (thumb_type == THREAD_THUMB_USER) {
+                                       ic = msg_common_get_thumbnail(ct_image_ly, img_path, MSG_THUMB_TYPE_USER, MSG_THUMB_SIZE_LIST);
+                               } else {
+                                       ic = msg_common_get_thumbnail(ct_image_ly, img_path, MSG_THUMB_TYPE_ICON, MSG_THUMB_SIZE_LIST);
+                               }
+                               ly_data->sub_type = thumb_type;
+                               elm_object_part_content_set(ct_image_ly, "contact_thumbnail", ic);
+                       } else {
+                               /* reuse the cached thumbnail image */
+                               Evas_Object *icon = elm_object_part_content_get(ct_image_ly, "contact_thumbnail");
+                                       if (icon)
+                                               evas_object_show(icon);
+                       }
+               }
+
+               item_data->reusable_layouts = eina_list_append(item_data->reusable_layouts, ly_data);
+               return ly_data->layout;
+       } else if (g_strcmp0(part, "elm.icon.2") == 0) {
+
+               if (pListData->view_mode == THREAD_EDIT_VIEW) {
+                       if (elm_genlist_decorate_mode_get(obj)) {
+                               ly_data = msg_ui_thread_get_reusable_layout(pListData, THREAD_REUSABLE_LAYOUT_TYPE_CHECK);
+                               if (!ly_data)
+                                       return NULL;
+
+                               ic = elm_check_add(ly_data->layout);
+                               elm_check_state_pointer_set(ic, &item_data->is_check);
+                               evas_object_propagate_events_set(ic, EINA_FALSE);
+                               evas_object_data_set(ic, "item_data", item_data);
+                               evas_object_smart_callback_add(ic, "changed",
+                                               msg_ui_thread_list_checked_cb, pListData);
+
+                               elm_layout_content_set(ly_data->layout, "elm.swallow.content", ic);
+                               item_data->reusable_layouts = eina_list_append(item_data->reusable_layouts, ly_data);
+                               return ly_data->layout;
+                       }
+               }
+       } else if (g_strcmp0(part, "elm.icon.right.bottom") == 0) {
+               if (item_data->unread_cnt > 0) {
+                       pListData->unread_cnt = item_data->unread_cnt;
+                       ly_data = msg_ui_thread_get_reusable_layout(pListData, THREAD_REUSABLE_LAYOUT_TYPE_UNREAD);
+
+                       D_MSG("ly_data = %p", ly_data);
+                       if (!ly_data)
+                       return NULL;
+
+                       evas_object_show(ly_data->layout);
+                       item_data->reusable_layouts = eina_list_append(item_data->reusable_layouts, ly_data);
+                       return ly_data->layout;
+               }
+       }
+       return NULL;
+}
+
+static void __msg_ui_thread_gl_del(void *data, Evas_Object *obj)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_APP_THREAD_CONV_DATA_S del_data = (PMSG_APP_THREAD_CONV_DATA_S) data;
+
+       if (del_data) {
+               if (del_data->addr_info) {
+                       int i = 0;
+                       for (i = 0; i < del_data->addr_cnt; i++) {
+                               if (del_data->addr_info[i]) {
+                                       if (del_data->addr_info[i]->thumb_path)
+                                               free(del_data->addr_info[i]->thumb_path);
+                                       free(del_data->addr_info[i]);
+                               }
+                       }
+                       free(del_data->addr_info);
+                       del_data->addr_info = NULL;
+               }
+
+               if (del_data->thread_time) {
+                       free(del_data->thread_time);
+                       del_data->thread_time = NULL;
+               }
+
+               msg_ui_thread_destroy_reusable_layout_list(del_data->reusable_layouts);
+               free(del_data);
+               del_data = NULL;
+       }
+}
+
+static void __msg_ui_thread_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       D_MSG_RETM_IF(!obj, "obj is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA) data;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       Elm_Object_Item *item = NULL;
+       PMSG_APP_THREAD_CONV_DATA_S item_data = NULL;
+       app_control_h svc_handle = NULL;
+
+       Evas_Object *popup = evas_object_data_get(obj, "popup");
+       if (popup) {
+               D_WMSG("popup exists");
+               elm_genlist_item_selected_set(event_info, EINA_FALSE);
+               return;
+       }
+
+       item = (Elm_Object_Item *)event_info;
+       D_MSG_RETM_IF(item == NULL, "Item is  NULL or Item is not Message item");
+
+       /* If sweep is started, ignore select callback */
+       if (elm_object_scroll_freeze_get(obj)) {
+               D_WMSG("elm_object_scroll_freeze_get returns TRUE");
+               elm_genlist_item_selected_set(item, EINA_FALSE);
+               return;
+       }
+       if (pListData->composer_btn) {
+               msg_ui_thread_hide_composer_btn(pData);
+       }
+
+       if (pListData->search_mode == THREAD_SEARCH_ON) {
+               Evas_Object *entry = NULL;
+               char *search_str = NULL;
+
+               search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+
+               if (!search_str || strlen(search_str) == 0) {
+                       /* msg_ui_thread_cancel_search_mode(pListData, false); */
+
+                       if (pListData->sel_thread_id > 0) {
+                               Elm_Object_Item *selected_item = NULL;
+
+                               selected_item = msg_ui_thread_selected_gen_item_by_id(pListData, THREAD_LIST_APP_DATA_CONV, pListData->sel_thread_id);
+                               if (selected_item) {
+                                       elm_genlist_item_selected_set(selected_item, false);
+
+                                       ugdata *composer_data = NULL;
+                                       composer_data = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_CONV, pListData->sel_thread_id);
+                                       if (composer_data)
+                                               msg_ui_destroy_composer_ug(composer_data->ug_h, false);
+                               }
+                       }
+               }
+               if (search_str)
+                       free(search_str);
+       }
+
+       item_data = (PMSG_APP_THREAD_CONV_DATA_S)elm_object_item_data_get(item);
+       D_MSG_RETM_IF(item_data == NULL, "item_data is NULL");
+       D_MSG("pListData->sel_thread_id : %d, item_data->thread_id : %d", pListData->sel_thread_id, item_data->thread_id);
+       D_MSG_RETM_IF(pListData->sel_thread_id == item_data->thread_id, "Already selected item. %d, %p", pListData->sel_thread_id, pListData->sel_gen_item);
+
+       switch (pListData->view_mode) {
+               case THREAD_NORMAL_VIEW:
+               case THREAD_UNLOAD_VIEW:
+                       pListData->sel_gen_item = item;
+                       pListData->sel_thread_id = item_data->thread_id;
+                       if (pListData->sel_msg_id > 0)
+                               pListData->sel_msg_id = 0;
+
+                       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                               D_EMSG("app_control_create() is failed !!");
+                               if (pListData->sel_gen_item)
+                                       elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+                               pListData->sel_gen_item = NULL;
+                               pListData->sel_thread_id = 0;
+                       } else {
+                               MessageComposerUgType ug_type = MSG_COMPOSER_UG_TYPE_NONE;
+#if 0
+                               if (item_data->bDraft && (item_data->sms_cnt + item_data->mms_cnt) == 1) {
+                                       msg_ui_thread_get_composer_data(item_data->last_msg_id, svc_handle);
+                                       ug_type = MSG_COMPOSER_UG_TYPE_COMPOSER;
+                               } else {
+#endif
+                                       msg_ui_thread_get_bubble_data(item_data, svc_handle);
+                                       ug_type = MSG_COMPOSER_UG_TYPE_VIEWER;
+#if 0
+                               }
+#endif
+
+                               if (msg_ui_load_composer_ug(svc_handle, ug_type, true) == MSG_UI_RET_ERR) {
+                                       D_EMSG("Failed to load composer ug");
+
+                                       if (pListData->sel_gen_item)
+                                               elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+                                       pListData->sel_gen_item = NULL;
+                                       pListData->sel_thread_id = 0;
+                                       app_control_destroy(svc_handle);
+                                       break;
+                               }
+                               app_control_destroy(svc_handle);
+
+                               elm_genlist_item_item_class_update(item, &pListData->itc_read);
+                               elm_genlist_item_update(item);
+                       }
+                       break;
+               case THREAD_EDIT_VIEW:
+                       if (item)
+                               elm_genlist_item_selected_set(item, false);
+                       item_data->is_check = !item_data->is_check;
+
+                       Evas_Object *ic_ly = elm_object_item_part_content_get(item, "elm.icon.2");
+                       Evas_Object *check = elm_layout_content_get(ic_ly, "elm.swallow.content");
+                       if (check) {
+                               elm_check_state_set(check, item_data->is_check);
+                               evas_object_smart_callback_call(check, "changed", NULL);
+                       }
+
+                       if (pListData->sel_all_check) {
+                               if (pListData->check_cnt != pListData->item_cnt)
+                                       elm_check_state_set(pListData->sel_all_check, EINA_FALSE);
+                               else
+                                       elm_check_state_set(pListData->sel_all_check, EINA_TRUE);
+                       }
+
+                       break;
+               default:
+                       break;
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_swipe_start(void *data, Elm_Object_Item *it, const char *em, const char *src)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       D_MSG_RETM_IF(!it, "it is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       if (pListData->pPopup && pListData->pPopup->popup_type == THREAD_POPUP_CONTEXTUAL) {
+               D_MSG("Longpressed popup is show, swipe is disabled.");
+               elm_object_item_signal_emit(it, "elm,swipe,disabled", "");
+               return;
+       }
+
+       if (pListData->scrl_timer) {
+               printf("Swipe start but reverted\n");
+               elm_object_item_signal_emit(it, "elm,swipe,revert", "");
+               return;
+       }
+
+       /* freeze scroller when swipe is started */
+       elm_object_scroll_freeze_push(pListData->genlist);
+
+       pListData->swipe_enable = EINA_TRUE;
+}
+
+void msg_ui_thread_swipe_stop_left(void *data, Elm_Object_Item *it, const char *em, const char *src)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       D_MSG_RETM_IF(!it, "it is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S)elm_object_item_data_get(it);
+       app_control_h svc_handle = NULL;
+       char buf[DEF_BUF_LEN_S] = {'0',};
+
+       /* unfreeze scroller when swipe is stopped */
+       elm_object_scroll_freeze_pop(pListData->genlist);
+
+       pListData->swipe_enable = EINA_FALSE;
+
+       msg_ui_thread_destroy_popup(pListData);
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return;
+       }
+
+       if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+               if (item_data->bDraft) {
+                       msg_struct_t listCond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+                       msg_struct_list_s draft_list;
+                       msg_error_t err = MSG_SUCCESS;
+
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_THREAD_ID_INT, item_data->thread_id);
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_DRAFT_ID);
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+                       err =  msg_get_message_list2(msg_ui_thread_get_data_handle(), listCond, &draft_list);
+
+                       if (err == MSG_SUCCESS && (item_data->sms_cnt + item_data->mms_cnt) == draft_list.nCount) {
+                               int draft_id = 0;
+
+                               msg_get_int_value(draft_list.msg_struct_info[0], MSG_MESSAGE_ID_INT, &draft_id);
+                               msg_ui_thread_get_composer_data(draft_id, svc_handle);
+                       } else {
+                               snprintf(buf, DEF_BUF_LEN_S, "%d", item_data->thread_id);
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+                       }
+
+                       msg_release_list_struct(&draft_list);
+                       msg_release_struct(&listCond);
+               } else {
+                       snprintf(buf, DEF_BUF_LEN_S, "%d", item_data->thread_id);
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+               }
+
+               pListData->sel_gen_item = it;
+               pListData->sel_thread_id = item_data->thread_id;
+               if (pListData->sel_msg_id > 0)
+                       pListData->sel_msg_id = 0;
+       } else {
+               PMSG_APP_THREAD_MSG_DATA_S msg_data = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+               msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+               msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+               msg_error_t err = MSG_SUCCESS;
+               int thread_id = 0;
+
+               err = msg_get_message(msg_ui_thread_get_data_handle(), msg_data->msg_id, msgInfo, sendOpt);
+
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("Fail to msg_get_message : err = %d", err);
+                       msg_release_struct(&msgInfo);
+                       msg_release_struct(&sendOpt);
+                       app_control_destroy(svc_handle);
+                       return;
+               }
+
+               msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, &thread_id);
+
+               if (pListData->list_type == THREAD_SIM_LIST_TYPE) {
+                       msg_struct_t threadInfo = NULL;
+                       int mmsCnt = 0;
+                       int smsCnt = 0;
+
+                       threadInfo = msg_create_struct(MSG_STRUCT_THREAD_INFO);
+                       err = msg_get_thread(msg_ui_thread_get_data_handle(), thread_id, threadInfo);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_get_message() is failed : err = %d", err);
+                               msg_release_struct(&msgInfo);
+                               msg_release_struct(&sendOpt);
+                               msg_release_struct(&threadInfo);
+                               app_control_destroy(svc_handle);
+                               return;
+                       }
+
+                       msg_get_int_value(threadInfo, MSG_THREAD_MMS_COUNT_INT, &mmsCnt);
+                       msg_get_int_value(threadInfo, MSG_THREAD_SMS_COUNT_INT, &smsCnt);
+
+                       msg_struct_t listCond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+                       msg_struct_list_s draft_list;
+
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_THREAD_ID_INT, thread_id);
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_DRAFT_ID);
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+                       err = msg_get_message_list2(msg_ui_thread_get_data_handle(), listCond, &draft_list);
+
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_get_message_list2() is failed !!: err = %d", err);
+
+                               msg_release_list_struct(&draft_list);
+                               msg_release_struct(&listCond);
+
+                               msg_release_struct(&threadInfo);
+                               msg_release_struct(&sendOpt);
+                               msg_release_struct(&msgInfo);
+
+                               app_control_destroy(svc_handle);
+                               return;
+                       }
+
+                       if ((mmsCnt + smsCnt) == 0) {
+                               /*sim message only*/
+                               char buf[DEF_THREAD_ADDR_LEN+1] = {0,};
+
+                               snprintf(buf, DEF_THREAD_ADDR_LEN, "%s", msg_data->addr_info[0]->address);
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TO, buf);
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, MSG_BUNDLE_VALUE_INTERNAL);
+                       } else {
+                               if ((mmsCnt + smsCnt) == draft_list.nCount) {
+                                       char buf[DEF_THREAD_ADDR_LEN+1] = {0,};
+
+                                       snprintf(buf, DEF_THREAD_ADDR_LEN, "%s", msg_data->addr_info[0]->address);
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TO, buf);
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, MSG_BUNDLE_VALUE_INTERNAL);
+                               } else {
+                                       snprintf(buf, DEF_BUF_LEN_S, "%d", thread_id);
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+                               }
+                       }
+                       msg_release_struct(&threadInfo);
+                       msg_release_list_struct(&draft_list);
+                       msg_release_struct(&listCond);
+               } else {
+                       if (thread_id > 0) {
+                               snprintf(buf, DEF_BUF_LEN_S, "%d", thread_id);
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+                       } else {
+                               char buf[DEF_THREAD_ADDR_LEN+1] = {0,};
+
+                               snprintf(buf, DEF_THREAD_ADDR_LEN, "%s", msg_data->addr_info[0]->address);
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TO, buf);
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, MSG_BUNDLE_VALUE_INTERNAL);
+                       }
+               }
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+
+               pListData->sel_gen_item = it;
+               pListData->sel_msg_id = msg_data->msg_id;
+               if (pListData->sel_thread_id > 0)
+                       pListData->sel_thread_id = 0;
+       }
+
+       if (msg_ui_load_composer_ug(svc_handle, MSG_COMPOSER_UG_TYPE_COMPOSER, true) == MSG_UI_RET_ERR) {
+               D_EMSG("Failed to load composer ug");
+
+               if (pListData->sel_gen_item)
+                       elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+               pListData->sel_gen_item = NULL;
+               pListData->sel_thread_id = 0;
+               pListData->sel_msg_id = 0;
+       }
+
+       app_control_destroy(svc_handle);
+}
+
+void msg_ui_thread_swipe_stop_right(void *data, Elm_Object_Item *it, const char *em, const char *src)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       D_MSG_RETM_IF(!it, "it is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = data;
+       PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S)elm_object_item_data_get(it);
+
+       /* unfreeze scroller when swipe is stopped */
+       elm_object_scroll_freeze_pop(pListData->genlist);
+
+       pListData->swipe_enable = EINA_FALSE;
+
+       msg_ui_thread_destroy_popup(pListData);
+
+       if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+               if (item_data->addr_cnt > 0 && item_data->addr_info[0] && msg_common_is_valid_phone_number(item_data->addr_info[0]->address))
+                       msg_ui_thread_launch_voice_call(item_data->addr_info[0]->address);
+       } else {
+               PMSG_APP_THREAD_MSG_DATA_S msg_data  = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+               if (msg_data->addr_cnt > 0 && msg_data->addr_info[0] && msg_common_is_valid_phone_number(msg_data->addr_info[0]->address)) {
+                       msg_ui_thread_launch_voice_call(msg_data->addr_info[0]->address);
+               }
+       }
+}
+
+void msg_ui_thread_swipe_stop(void *data, Elm_Object_Item *it, const char *em, const char *src)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       if (pListData->pPopup && pListData->pPopup->popup_type == THREAD_POPUP_CONTEXTUAL) {
+               D_MSG("Longpressed popup is show.");
+               return;
+       }
+
+       /* unfreeze scroller when swipe is stopped */
+       elm_object_scroll_freeze_pop(pListData->genlist);
+
+       pListData->swipe_enable = EINA_FALSE;
+}
+
+char *msg_ui_thread_search_title_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_MSG_RETVM_IF(!data, NULL, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+       char buf[DEF_BUF_LEN+1] = { 0, };
+       PMSG_APP_THREAD_SEARCH_TITLE_S searchtitle_data = (PMSG_APP_THREAD_SEARCH_TITLE_S)data;
+
+       pListData = msg_ui_thread_get_current_list();
+       D_MSG_RETVM_IF(!pListData, NULL, "pListData is NULL");
+
+       if (0 == strcmp(part, "elm.text.main")) {
+               if (searchtitle_data->subitem_cnt > 1) {
+                       const char *str = NULL;
+
+                       if (searchtitle_data->nType == THREAD_SEARCH_CONV)
+                               str = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_PD_CONVERSATIONS");
+                       else
+                               str = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_PD_MESSAGES");
+                       snprintf(buf, sizeof(buf), str, searchtitle_data->subitem_cnt);
+               } else {
+                       if (searchtitle_data->nType == THREAD_SEARCH_CONV)
+                               snprintf(buf, sizeof(buf), "%s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_1_CONVERSATION"));
+                       else
+                               snprintf(buf, sizeof(buf), "%s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_1_MESSAGE"));
+               }
+       }
+
+       return strdup(buf);
+}
+
+char *msg_ui_thread_msg_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, NULL, "data is NULL");
+
+       PMSG_APP_THREAD_MSG_DATA_S item_data = (PMSG_APP_THREAD_MSG_DATA_S)data;
+       char buf[DEF_BUF_LEN+1] = { 0, };
+
+       MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, !item_data, NULL);
+
+       if (g_strcmp0(part, "elm.text.1") == 0 || g_strcmp0(part, "elm.text.main.left.top") == 0) {
+               int i = 0;
+               char str_name[DEF_BUF_LEN+1] = { 0, };
+               char temp[DEF_BUF_LEN+1] = { 0, };
+
+               if (!msg_ui_get_caption(item_data->msg_type, DEF_BUF_LEN+1, buf)) {
+
+                       for (i = 0; i < item_data->addr_cnt; i++) {
+                               if (item_data->addr_info[i]) {
+                                       if (item_data->addr_info[i]->contact_id > 0 && item_data->addr_info[i]->display_name[0] != '\0') {
+                                               snprintf(str_name, sizeof(str_name), "%s", item_data->addr_info[i]->display_name);
+                                       } else {
+                                               if (item_data->addr_info[i]->address[0] != '\0')
+                                                       snprintf(str_name, sizeof(str_name), "%s", item_data->addr_info[i]->address);
+                                               else
+                                                       snprintf(str_name, sizeof(str_name), dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+                                       }
+                               } else {
+                                       D_EMSG("item_data->addr_info[%d] is NULL", i);
+                                       snprintf(str_name, sizeof(str_name), dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+                               }
+
+                               snprintf(temp, sizeof(temp), "%s", buf);
+
+                               if (*temp)
+                                       snprintf(buf, sizeof(buf), "%s, %s", temp, str_name);
+                               else
+                                       snprintf(buf, sizeof(buf), "%s", str_name);
+                       }
+               }
+
+               PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+
+               if (pListData && pListData->search_mode == THREAD_SEARCH_ON && pListData->list_type != THREAD_NORMAL_LIST_TYPE) {
+                       char *search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+                       bool result = false;
+
+                       if (search_str) {
+                               if (strlen(search_str) > 0) {
+                                       const char *str = msg_ui_thread_make_search_result_string(buf, search_str, &result);
+                                       free(search_str);
+                                       return strdup(str);
+                               }
+                               free(search_str);
+                       }
+               }
+       } else if (g_strcmp0(part, "elm.text.2") == 0 || g_strcmp0(part, "elm.text.sub.left.bottom") == 0) {
+               PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+               char msg[DEF_BUF_LEN] = { 0, };
+               int idx = 0;
+
+               if (item_data->msg_body[0] != '\0') {
+                       strncpy(msg, item_data->msg_body, sizeof(msg) - 1);
+                       while (msg[idx]) {
+                               if (g_ascii_iscntrl(msg[idx]))
+                                       msg[idx] = ' ';
+                               idx++;
+                       }
+               } else if ((item_data->msg_type >= MSG_TYPE_MMS && item_data->msg_type <= MSG_TYPE_MMS_NOTI)) {
+                       snprintf(msg, sizeof(msg), "(%s)", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_NO_SUBJECT"));
+               }
+               snprintf(buf, sizeof(buf), "%s", msg);
+
+               if (pListData && pListData->search_mode == THREAD_SEARCH_ON) {
+                       char *search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+                       bool result = false;
+
+                       if (search_str) {
+                               if (strlen(search_str) > 0) {
+                                       const char *str = msg_ui_thread_make_search_result_string(buf, search_str, &result);
+                                       free(search_str);
+                                       return strdup(str);
+                               }
+                               free(search_str);
+                       }
+               }
+       } else if (g_strcmp0(part, "elm.text.4") == 0 || g_strcmp0(part, "elm.text.sub.right.top") == 0) {
+               msg_ui_thread_make_time_string(item_data->msg_time, buf, sizeof(buf));
+       } else if (g_strcmp0(part, "elm.text.swipe.left") == 0) {
+               snprintf(buf, sizeof(buf), dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_MESSAGE"));
+       } else if (g_strcmp0(part, "elm.text.swipe.right") == 0) {
+               if (item_data->addr_cnt > 0 && item_data->addr_info[0]) {
+                       if (item_data->addr_info[0]->addr_type == MSG_ADDRESS_TYPE_PLMN)
+                               snprintf(buf, sizeof(buf), dgettext("sys_string", "IDS_COM_BODY_CALL"));
+                       else
+                               snprintf(buf, sizeof(buf), dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_NO_NUMBER"));
+               } else {
+                       snprintf(buf, sizeof(buf), dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_NO_NUMBER"));
+               }
+       } else {
+               return NULL;
+       }
+
+       char *markup_text = elm_entry_utf8_to_markup(buf);
+       if (markup_text) {
+               memset(buf, 0, sizeof(buf));
+               snprintf(buf, sizeof(buf), "%s", markup_text);
+               free(markup_text);
+       }
+
+       return strdup(buf);
+}
+
+Evas_Object *msg_ui_thread_msg_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, NULL, "data is NULL");
+       PMSG_APP_THREAD_MSG_DATA_S item_data = (PMSG_APP_THREAD_MSG_DATA_S)data;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, NULL, "pData is NULL");
+       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+       D_MSG_RETVM_IF(!pListData, NULL, "pListData is NULL");
+
+       Evas_Object *ic = NULL;
+
+       if (g_strcmp0(part, "elm.icon.1") == 0) {
+               Evas_Object *b_type2_layout = elm_layout_add(obj);
+               elm_layout_theme_set(b_type2_layout, "layout", "list/B/type.2", "default");
+
+               Evas_Object *ct_tag_layout = elm_layout_add(b_type2_layout);
+               elm_layout_file_set(ct_tag_layout, MSG_THREAD_THEME, "contact_thumbnail_tagged");
+               evas_object_size_hint_weight_set(ct_tag_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_fill_set(ct_tag_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_show(ct_tag_layout);
+               elm_object_part_content_set(b_type2_layout, "elm.swallow.content", ct_tag_layout);
+
+               /* get contact thumbnail */
+               if (item_data->msg_type == MSG_TYPE_SMS_CB) {
+                       ic = msg_common_get_thumbnail(ct_tag_layout, MSG_LIST_THUMB_CB, MSG_THUMB_TYPE_ICON, MSG_THUMB_SIZE_LIST);
+               } else if (item_data->msg_type == MSG_TYPE_SMS_WAPPUSH) {
+                       ic = msg_common_get_thumbnail(ct_tag_layout, MSG_LIST_THUMB_PUSH, MSG_THUMB_TYPE_ICON, MSG_THUMB_SIZE_LIST);
+               } else if (item_data->msg_type == MSG_TYPE_SMS_SYNCML) {
+                       ic = msg_common_get_thumbnail(ct_tag_layout, MSG_LIST_THUMB_OTA, MSG_THUMB_TYPE_ICON, MSG_THUMB_SIZE_LIST);
+               } else {
+                       if (item_data->addr_cnt > 1) {
+                               ic = msg_common_get_thumbnail(ct_tag_layout, MSG_LIST_THUMB_GROUP, MSG_THUMB_TYPE_ICON, MSG_THUMB_SIZE_LIST);
+                       } else {
+                               if (item_data->addr_info[0] && item_data->addr_info[0]->thumb_path != NULL) {
+                                       ic = msg_common_get_thumbnail(ct_tag_layout, item_data->addr_info[0]->thumb_path, MSG_THUMB_TYPE_USER, MSG_THUMB_SIZE_LIST);
+                               } else {
+                                       ic = msg_common_get_thumbnail(ct_tag_layout, MSG_LIST_THUMB_CONTACT, MSG_THUMB_TYPE_ICON, MSG_THUMB_SIZE_LIST);
+                               }
+                       }
+               }
+               elm_object_part_content_set(ct_tag_layout, "contact_thumbnail", ic);
+
+               return b_type2_layout;
+       } else if (g_strcmp0(part, "elm.icon.2") == 0) {
+               if (elm_genlist_decorate_mode_get(obj)) {
+                       Evas_Object *ic_ly = elm_layout_add(obj);
+                       elm_layout_theme_set(ic_ly, "layout", "list/C/type.2", "default");
+                       ic = elm_check_add(ic_ly);
+                       elm_check_state_pointer_set(ic, &item_data->is_check);
+                       evas_object_repeat_events_set(ic, EINA_TRUE);
+                       evas_object_propagate_events_set(ic, EINA_FALSE);
+                       evas_object_data_set(ic, "item_data", item_data);
+                       evas_object_smart_callback_add(ic, "changed", msg_ui_thread_list_checked_cb, (void *) pListData);
+
+                       elm_layout_content_set(ic_ly, "elm.swallow.content", ic);
+                       return ic_ly;
+               }
+       } else if (g_strcmp0(part, "elm.icon.right.bottom") == 0) {
+               ic = elm_icon_add(obj);
+
+               if (item_data->msg_type >= MSG_TYPE_MMS && item_data->msg_type <= MSG_TYPE_MMS_NOTI) {
+                       if (item_data->direction == MSG_DIRECTION_TYPE_MO)
+                               elm_image_file_set(ic, MSG_IMAGES_EDJ, MSG_UI_THREAD_LIST_STATUS_MMS_SENT);
+                       else if (item_data->is_read == false)
+                               elm_image_file_set(ic, MSG_IMAGES_EDJ, MSG_UI_THREAD_LIST_STATUS_MMS_UNREAD);
+                       else
+                               elm_image_file_set(ic, MSG_IMAGES_EDJ, MSG_UI_THREAD_LIST_STATUS_MMS_READ);
+               } else {
+                       if (item_data->direction == MSG_DIRECTION_TYPE_MO)
+                               elm_image_file_set(ic, MSG_IMAGES_EDJ, MSG_UI_THREAD_LIST_STATUS_SMS_SENT);
+                       else if (item_data->is_read == false)
+                               elm_image_file_set(ic, MSG_IMAGES_EDJ, MSG_UI_THREAD_LIST_STATUS_SMS_UNREAD);
+                       else
+                               elm_image_file_set(ic, MSG_IMAGES_EDJ, MSG_UI_THREAD_LIST_STATUS_SMS_READ);
+               }
+
+               evas_object_color_set(ic, COLOR_BLUE);
+
+               if (ic) {
+                       evas_object_repeat_events_set(ic, EINA_TRUE);
+                       evas_object_propagate_events_set(ic, EINA_TRUE);
+                       evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+                       evas_object_show(ic);
+                       return ic;
+               }
+       }
+       return NULL;
+}
+
+void msg_ui_thread_msg_gl_del(void *data, Evas_Object *obj)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_APP_THREAD_MSG_DATA_S del_data = (PMSG_APP_THREAD_MSG_DATA_S)data;
+       if (del_data) {
+               if (del_data->msg_time) {
+                       free(del_data->msg_time);
+                       del_data->msg_time = NULL;
+               }
+
+               if (del_data->addr_info) {
+                       int i = 0;
+                       for (i = 0; i < del_data->addr_cnt; i++) {
+                               if (del_data->addr_info[i]) {
+                                       if (del_data->addr_info[i]->thumb_path)
+                                               free(del_data->addr_info[i]->thumb_path);
+                                       free(del_data->addr_info[i]);
+                               }
+                       }
+                       free(del_data->addr_info);
+                       del_data->addr_info = NULL;
+               }
+
+               free(del_data);
+               del_data = NULL;
+       }
+}
+
+void msg_ui_search_title_gl_del(void *data, Evas_Object *obj)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_APP_THREAD_SEARCH_TITLE_S del_data = (PMSG_APP_THREAD_SEARCH_TITLE_S) data;
+       if (del_data) {
+               free(del_data);
+               del_data = NULL;
+       }
+}
+
+void msg_ui_thread_msg_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA) data;
+       Elm_Object_Item *item = NULL;
+       PMSG_APP_THREAD_MSG_DATA_S item_data = NULL;
+
+       Evas_Object *popup = evas_object_data_get(obj, "popup");
+       if (popup) {
+               D_WMSG("popup exists");
+               elm_genlist_item_selected_set(event_info, EINA_FALSE);
+               return;
+       }
+
+       item = (Elm_Object_Item *) event_info;
+       D_MSG_RETM_IF(item == NULL, "Item is  NULL or Item is not Message item");
+
+       /* If sweep is started, ignore select callback */
+       if (elm_object_scroll_freeze_get(obj)) {
+               D_WMSG("elm_object_scroll_freeze_get returns TRUE");
+               elm_genlist_item_selected_set(item, EINA_FALSE);
+               return;
+       }
+
+       if (pListData->search_mode == THREAD_SEARCH_ON) {
+               char *search_str = NULL;
+
+               search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+
+               if (!search_str || strlen(search_str) == 0) {
+                       /*msg_ui_thread_cancel_search_mode(pListData, false);*/
+                       if (item)
+                               elm_genlist_item_selected_set(item, false);
+
+                       if (pListData->sel_msg_id > 0) {
+                               Elm_Object_Item *selected_item = NULL;
+
+                               selected_item = msg_ui_thread_selected_gen_item_by_id(pListData, THREAD_LIST_APP_DATA_MSG, pListData->sel_msg_id);
+                               if (selected_item) {
+                                       elm_genlist_item_selected_set(selected_item, true);
+                                       pListData->sel_gen_item = selected_item;
+
+                                       ugdata *composer_data = NULL;
+                                       composer_data = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_MSG, pListData->sel_msg_id);
+                                       if (composer_data)
+                                               composer_data->sel_gen_item = selected_item;
+                               }
+                       }
+
+                       if (search_str)
+                               free(search_str);
+                       return;
+               }
+               if (search_str)
+                       free(search_str);
+       }
+
+       if (pListData->search_mode == THREAD_SEARCH_ON && pListData->search_gl) {
+               D_MSG("Search Mode and searchbar layout exists !!!")
+               Evas_Object *entry = pListData->search_entry;
+               Ecore_IMF_Context *context = NULL;
+               Ecore_IMF_Input_Panel_State state = -1;
+
+               context = elm_entry_imf_context_get(entry);
+               state = ecore_imf_context_input_panel_state_get((Ecore_IMF_Context *)context);
+               D_MSG("keypad state = %d", state);
+
+               if (state ==  ECORE_IMF_INPUT_PANEL_STATE_SHOW) {
+                       item_data = (PMSG_APP_THREAD_MSG_DATA_S) elm_object_item_data_get(item);
+                       D_MSG_RETM_IF(item_data == NULL, "item_data is NULL");
+
+                       pListData->sel_gen_item = item;
+                       pListData->sel_gen_type = THREAD_SEARCH_MSG;
+
+                       ecore_imf_context_input_panel_event_callback_add((Ecore_IMF_Context *)context, ECORE_IMF_INPUT_PANEL_STATE_EVENT, msg_ui_thread_msg_searchbar_entry_imf_state_cb, data);
+                       D_MSG("Hiding Keypad");
+                       elm_entry_input_panel_hide(entry);
+                       D_MSG("Return after keypad hide");
+                       return;
+               }
+       }
+
+       item_data = (PMSG_APP_THREAD_MSG_DATA_S) elm_object_item_data_get(item);
+       D_MSG_RETM_IF(item_data == NULL, "item_data is NULL");
+       D_MSG("pListData->sel_msg_id : %d, item_data->msg_id : %d", pListData->sel_thread_id, item_data->msg_id);
+       D_MSG_RETM_IF(pListData->sel_msg_id == item_data->msg_id, "Already selected item. %d, %p", pListData->sel_msg_id, pListData->sel_gen_item);
+
+       switch (pListData->view_mode) {
+               case THREAD_NORMAL_VIEW:
+               case THREAD_UNLOAD_VIEW:
+                       pListData->sel_gen_item = item;
+                       pListData->sel_msg_id = item_data->msg_id;
+                       if (pListData->sel_thread_id > 0)
+                               pListData->sel_thread_id = 0;
+
+                       if (msg_ui_thread_create_bubble_by_msgid(pListData, item_data->msg_id, true) == MSG_UI_RET_ERR) {
+                               D_EMSG("Failed to load bubble viewer");
+
+                               if (pListData->sel_gen_item)
+                                       elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+                               pListData->sel_gen_item = NULL;
+                               pListData->sel_msg_id = 0;
+                               break;
+                       }
+
+                       elm_genlist_item_item_class_update(item, &pListData->itc_msg);
+                       elm_genlist_item_update(item);
+                       break;
+               case THREAD_EDIT_VIEW:
+                       if (item)
+                               elm_genlist_item_selected_set(item, false);
+                       item_data->is_check = !item_data->is_check;
+
+                       Evas_Object *ic_ly = elm_object_item_part_content_get(item, "elm.icon.2");
+                       Evas_Object *check = elm_layout_content_get(ic_ly, "elm.swallow.content");
+                       if (check) {
+                               elm_check_state_set(check, item_data->is_check);
+                               evas_object_smart_callback_call(check, "changed", NULL);
+                       }
+                       break;
+               default:
+                       break;
+       }
+
+       D_LEAVE;
+}
+
+int msg_ui_thread_create_bubble_by_msgid(PMSG_THREAD_LIST_DATA pListData, int msg_id, bool isListItem)
+{
+       D_MSG_RETVM_IF(!pListData, MSG_UI_RET_ERR, "pListData is NULL");
+
+       msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+       msg_struct_t threadInfo = NULL;
+       PMSG_APP_THREAD_CONV_DATA_S thread_data = NULL;
+       msg_error_t err =  MSG_SUCCESS;
+       int thread_id = 0;
+       app_control_h svc_handle = NULL;
+
+       err = msg_get_message(msg_ui_thread_get_data_handle(), (msg_message_id_t)msg_id, msgInfo, sendOpt);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_message() is failed : err = %d", err);
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               return MSG_UI_RET_ERR;
+       }
+       msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, &thread_id);
+
+       threadInfo = msg_create_struct(MSG_STRUCT_THREAD_INFO);
+       err = msg_get_thread(msg_ui_thread_get_data_handle(), thread_id, threadInfo);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_message() is failed : err = %d", err);
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               msg_release_struct(&threadInfo);
+               return MSG_UI_RET_ERR;
+       }
+
+       thread_data = (PMSG_APP_THREAD_CONV_DATA_S) calloc(1, sizeof(MSG_APP_THREAD_CONV_DATA_S));
+       if (thread_data == NULL) {
+               D_EMSG("thread_data calloc failed");
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               msg_release_struct(&threadInfo);
+               return MSG_UI_RET_ERR;
+       }
+
+       msg_ui_thread_set_conv_data(pListData, thread_data, threadInfo);
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               MessageComposerUgType ug_type = MSG_COMPOSER_UG_TYPE_NONE;
+               msg_struct_t listCond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+               msg_struct_list_s draft_list;
+
+               msg_set_int_value(listCond, MSG_LIST_CONDITION_THREAD_ID_INT, thread_data->thread_id);
+               msg_set_int_value(listCond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_DRAFT_ID);
+               msg_set_int_value(listCond, MSG_LIST_CONDITION_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+               err = msg_get_message_list2(msg_ui_thread_get_data_handle(), listCond, &draft_list);
+
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_get_message_list2() is failed !!: err = %d", err);
+                       if (thread_data->thread_time) {
+                               free(thread_data->thread_time);
+                               thread_data->thread_time = NULL;
+                       }
+                       free(thread_data);
+                       msg_release_list_struct(&draft_list);
+                       msg_release_struct(&listCond);
+
+                       msg_release_struct(&threadInfo);
+                       msg_release_struct(&sendOpt);
+                       msg_release_struct(&msgInfo);
+
+                       app_control_destroy(svc_handle);
+                       return MSG_UI_RET_ERR;
+               }
+
+               {
+                       int folder_id = 0;
+                       msg_get_int_value(msgInfo, MSG_MESSAGE_FOLDER_ID_INT, &folder_id);
+
+                       if (folder_id == MSG_DRAFT_ID && (thread_data->sms_cnt + thread_data->mms_cnt) == draft_list.nCount) {
+                               msg_ui_thread_get_composer_data(msg_id, svc_handle);
+                               ug_type = MSG_COMPOSER_UG_TYPE_COMPOSER;
+                       } else {
+                               char buf_id[DEF_BUF_LEN_S] = {0,};
+                               snprintf(buf_id, DEF_BUF_LEN_S, "%d", msg_id);
+
+                               msg_ui_thread_get_bubble_data(thread_data, svc_handle);
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_SEARCH_ID, buf_id);
+
+                               if (pListData->search_mode == THREAD_SEARCH_ON)
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_SEARCH_WORD, pListData->search_str);
+
+                               ug_type = MSG_COMPOSER_UG_TYPE_VIEWER;
+                       }
+               }
+
+               msg_release_list_struct(&draft_list);
+               msg_release_struct(&listCond);
+
+               if (msg_ui_load_composer_ug(svc_handle, ug_type, isListItem) == MSG_UI_RET_ERR) {
+                       D_EMSG("Failed to load composer ug");
+                       if (thread_data->thread_time) {
+                               free(thread_data->thread_time);
+                               thread_data->thread_time = NULL;
+                       }
+                       free(thread_data);
+                       msg_release_struct(&threadInfo);
+                       msg_release_struct(&sendOpt);
+                       msg_release_struct(&msgInfo);
+                       app_control_destroy(svc_handle);
+                       return MSG_UI_RET_ERR;
+               }
+
+               app_control_destroy(svc_handle);
+       }
+       if (thread_data->thread_time) {
+               free(thread_data->thread_time);
+               thread_data->thread_time = NULL;
+       }
+       free(thread_data);
+       msg_release_struct(&threadInfo);
+       msg_release_struct(&sendOpt);
+       msg_release_struct(&msgInfo);
+
+       return MSG_UI_RET_SUCCESS;
+}
+
+char *msg_ui_thread_gl_empty_get(void *data, Evas_Object *obj, const char *part)
+{
+       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+       D_MSG_RETVM_IF(!pListData, NULL, "pListData is NULL");
+
+       char buf[DEF_BUF_LEN] = { '0', };
+
+       if (pListData->search_mode == THREAD_SEARCH_ON)
+               snprintf(buf, sizeof(buf), "%s", dgettext(MESSAGE_PKGNAME, "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB"));
+       else
+               snprintf(buf, sizeof(buf), "%s", dgettext(MESSAGE_PKGNAME, "IDS_MSG_SBODY_NONE_M_STATUS"));
+
+       return strdup(buf);
+}
+
+void msg_ui_thread_list_load(PMSG_THREAD_LIST_DATA pListData, Eina_Bool bLaunch)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       Evas_Object *swl_ly = NULL;
+
+       Elm_Object_Item *sel_gen_item = NULL;
+       int sel_thread_id = 0;
+
+       if (msg_ui_thread_get_app_state(pData) == MSG_UI_STATE_PAUSE) {
+               pData->redrawList = true;
+               pListData->redrawList = true;
+               D_MSG("app_state is PAUSE. skip.");
+               return;
+       } else {
+               pListData->redrawList = false;
+       }
+
+       sel_gen_item = pListData->sel_gen_item;
+       sel_thread_id = pListData->sel_thread_id;
+
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_list_s peerList;
+
+       __msg_ui_thread_init_genlist(pListData);
+
+       memset(&peerList, 0x00, sizeof(msg_struct_list_s));
+       if (msg_ui_get_launch_list(&peerList) ==  false) {
+               msg_struct_t sort_rule_t = msg_create_struct(MSG_STRUCT_SORT_RULE);
+
+               msg_set_int_value(sort_rule_t, MSG_SORT_RULE_SORT_TYPE_INT, MSG_SORT_BY_THREAD_DATE);
+               msg_set_bool_value(sort_rule_t, MSG_SORT_RULE_ACSCEND_BOOL, false);
+
+               err = msg_get_thread_view_list(pData->msgHandle, sort_rule_t, &peerList);
+               msg_release_struct(&sort_rule_t);
+       }
+
+       D_IMSG("peercount : %d, err : %d", peerList.nCount, err);
+
+       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+               swl_ly = elm_object_part_content_get(pListData->content_ly, "thread_list");
+       } else {
+               swl_ly = elm_object_part_content_get(pListData->content_ly, "search_list");
+       }
+
+       pListData->app_data_type = THREAD_LIST_APP_DATA_CONV;
+
+       if (peerList.nCount <= 0 || err != MSG_SUCCESS) {
+               pListData->item_cnt = peerList.nCount;
+
+               if (!pListData->noc_ly) {
+                       pListData->noc_ly = msg_ui_thread_create_nocontent_layout(pData->navi_frame, pListData->search_mode);
+               } else {
+                       msg_ui_thread_create_nocontent_layout_change(pListData->noc_ly, pListData->search_mode);
+               }
+
+               if (swl_ly != pListData->noc_ly) {
+                       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                               elm_object_part_content_unset(pListData->content_ly, "thread_list");
+                               evas_object_hide(swl_ly);
+                               elm_object_part_content_set(pListData->content_ly, "thread_list", pListData->noc_ly);
+                       } else {
+                               elm_object_part_content_unset(pListData->content_ly, "search_list");
+                               evas_object_hide(swl_ly);
+                               if (pListData->noc_ly) {
+                                       elm_object_part_content_set(pListData->content_ly, "search_list", pListData->noc_ly);
+                               }
+                       }
+               }
+
+               if (err == MSG_ERR_DB_BUSY) {
+                       D_EMSG("msg_get_thread_view_list return error [%d]", err);
+
+                       if (pListData->db_wait_timer == NULL) {
+                               pListData->db_wait_timer = ecore_timer_add(0.3, __msg_ui_thread_db_wait_timer_cb, pListData);
+                               pListData->db_wait_cnt++;
+                       }
+               }
+       } else {
+               __msg_ui_thread_genlist_style_set(pListData, THREAD_LIST_APP_DATA_CONV);
+
+               if (swl_ly != pListData->genlist) {
+                       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                               elm_object_part_content_unset(pListData->content_ly, "thread_list");
+                               evas_object_hide(swl_ly);
+                               elm_object_part_content_set(pListData->content_ly, "thread_list", pListData->genlist);
+                       } else {
+                               elm_object_part_content_unset(pListData->content_ly, "search_list");
+                               evas_object_hide(swl_ly);
+                               if (pListData->genlist) {
+                                       elm_object_part_content_set(pListData->content_ly, "search_list", pListData->genlist);
+                               }
+                       }
+               }
+
+               PMSG_APP_THREAD_CONV_DATA_S cur_thread = NULL;
+               int row = 0;
+               int load_cnt = 0;
+
+               if (peerList.nCount > MSG_THREAD_LIST_PARTIAL_LOADING_CNT && bLaunch == TRUE) {
+                       pListData->loaded_cnt = MSG_THREAD_LIST_PARTIAL_LOADING_CNT;
+                       pListData->item_cnt = pListData->loaded_cnt;
+                       load_cnt = pListData->loaded_cnt;
+
+                       if (pListData->load_idler == NULL)
+                               pListData->load_idler = ecore_idler_add(__msg_ui_thread_list_load_remain_item, pListData);
+               } else {
+                       pListData->item_cnt = peerList.nCount;
+                       load_cnt = peerList.nCount;
+               }
+
+               Elm_Genlist_Item_Class *itc = NULL;
+
+               for (row = 0; row < load_cnt; row++) {
+                       cur_thread = (PMSG_APP_THREAD_CONV_DATA_S) calloc(1, sizeof(MSG_APP_THREAD_CONV_DATA_S));
+
+                       if (cur_thread) {
+                               msg_ui_thread_set_conv_data(pListData, cur_thread, peerList.msg_struct_info[row]);
+
+                               itc = msg_ui_thread_conv_item_get_itc_type(pListData, cur_thread);
+
+                               elm_genlist_item_append(pListData->genlist, itc, cur_thread, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_thread_gl_sel, pListData);
+
+                       } else {
+                               D_EMSG("calloc is failed (%s)", strerror(errno));
+                       }
+               }
+
+               msg_ui_thread_list_add_dummy_item(pListData);
+       }
+
+       if (msg_ui_get_launch_list(NULL) == true) {
+               if (pListData->load_idler == NULL)
+                       msg_ui_remove_launch_list();
+       } else {
+               msg_release_list_struct(&peerList);
+       }
+
+       if (sel_gen_item != NULL && sel_thread_id > 0) {
+               Elm_Object_Item *new_item = NULL;
+               PMSG_APP_THREAD_CONV_DATA_S cur_sel_thread = NULL;
+               ugdata *composer_data = NULL;
+               composer_data = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_CONV, sel_thread_id);
+
+               new_item = elm_genlist_first_item_get(pListData->genlist);
+               while (new_item) {
+                       cur_sel_thread = elm_object_item_data_get(new_item);
+                       if (cur_sel_thread && cur_sel_thread->thread_id == sel_thread_id)
+                               break;
+
+                       new_item = elm_genlist_item_next_get(new_item);
+               }
+
+               if (new_item) {
+                       pListData->sel_gen_item = new_item;
+                       pListData->sel_thread_id = sel_thread_id;
+
+                       if (composer_data)
+                               composer_data->sel_gen_item = new_item;
+               } else {
+                       pListData->sel_gen_item = NULL;
+                       pListData->sel_thread_id = 0;
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_search_list_update_ex(PMSG_THREAD_LIST_DATA pListData, msg_id_list_s *pMsgIdList, int thread_id, int item_idx, msg_struct_list_s *p_preloaded_peerlist)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+       D_MSG_RETM_IF(!pMsgIdList, "pMsgIdList is NULL");
+
+       Elm_Object_Item *gen_item = elm_genlist_first_item_get(pListData->genlist);
+       PMSG_APP_THREAD_CONV_DATA_S item_data = NULL;
+
+       while (gen_item) {
+               if (pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH && elm_genlist_item_parent_get(gen_item) == NULL) {
+                       gen_item = elm_genlist_item_next_get(gen_item);
+                       continue;
+               }
+
+               item_data = (PMSG_APP_THREAD_CONV_DATA_S)elm_object_item_data_get(gen_item);
+
+               if (item_data)
+                       D_MSG("item_data->app_data_type = %d, item_data->last_msg_id = %d", item_data->app_data_type, item_data->last_msg_id);
+
+               if (item_data && item_data->app_data_type != THREAD_LIST_APP_DATA_CONV) {
+                       gen_item = elm_genlist_item_next_get(gen_item);
+                       continue;
+               }
+
+               if (item_data && pMsgIdList->msgIdList[item_idx] == item_data->last_msg_id)
+                       break;
+
+               gen_item = elm_genlist_item_next_get(gen_item);
+               item_data = NULL;
+       }
+
+       if (item_data) {
+               if (pListData->search_type == THREAD_SEARCH_CONV) {
+                       if (msg_ui_thread_list_item_update_ex(pListData, thread_id, p_preloaded_peerlist) == EINA_FALSE)
+                               msg_ui_thread_list_item_insert_ex(pListData, thread_id, p_preloaded_peerlist);
+               } else if (pListData->search_type == THREAD_SEARCH_MSG) {
+                       if (msg_ui_thread_list_msg_item_update(pListData, pMsgIdList->msgIdList[item_idx]) == EINA_FALSE) {
+                               msg_ui_thread_list_msg_item_insert(pListData, pMsgIdList->msgIdList[item_idx]);
+                       }
+               } else if (pListData->search_type == THREAD_SEARCH_ALL) {
+                       if (msg_ui_thread_list_item_update_ex(pListData, thread_id, p_preloaded_peerlist) == EINA_FALSE)
+                               msg_ui_thread_list_item_insert_ex(pListData, thread_id, p_preloaded_peerlist);
+
+                       if (pListData->app_data_type != THREAD_LIST_APP_DATA_CONV) {
+                               if (msg_ui_thread_list_msg_item_update(pListData, pMsgIdList->msgIdList[item_idx]) == EINA_FALSE) {
+                                       msg_ui_thread_list_msg_item_insert(pListData, pMsgIdList->msgIdList[item_idx]);
+                               }
+                       }
+               }
+       } else {
+               /*Since item data does not exists, if search by sender update conversation, else insert it.*/
+               if (msg_ui_thread_list_item_update_ex(pListData, thread_id, p_preloaded_peerlist) == EINA_FALSE)
+                       msg_ui_thread_list_item_insert_ex(pListData, thread_id, p_preloaded_peerlist);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_list_update(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       Evas_Object *swl_ly = NULL;
+
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_t sort_rule_t = msg_create_struct(MSG_STRUCT_SORT_RULE);
+       msg_struct_list_s peerList;
+       Elm_Object_Item *gen_item = NULL;
+       int row = 0;
+
+       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+               swl_ly = elm_object_part_content_get(pListData->content_ly, "thread_list");
+       } else {
+               swl_ly = elm_object_part_content_get(pListData->content_ly, "search_list");
+       }
+
+       msg_set_int_value(sort_rule_t, MSG_SORT_RULE_SORT_TYPE_INT, MSG_SORT_BY_THREAD_DATE);
+       msg_set_bool_value(sort_rule_t, MSG_SORT_RULE_ACSCEND_BOOL, false);
+
+       err = msg_get_thread_view_list(pData->msgHandle, sort_rule_t, &peerList);
+       msg_release_struct(&sort_rule_t);
+       pListData->item_cnt = peerList.nCount;
+
+       D_IMSG("peercount : %d, err : %d", peerList.nCount, err);
+
+       if (peerList.nCount <= 0 || err != MSG_SUCCESS) {
+               if (!pListData->noc_ly) {
+                       pListData->noc_ly = msg_ui_thread_create_nocontent_layout(pData->navi_frame, pListData->search_mode);
+               } else {
+                       msg_ui_thread_create_nocontent_layout_change(pListData->noc_ly, pListData->search_mode);
+               }
+
+               if (swl_ly != pListData->noc_ly) {
+                       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                               elm_object_part_content_unset(pListData->content_ly, "thread_list");
+                               evas_object_hide(swl_ly);
+                               elm_object_part_content_set(pListData->content_ly, "thread_list", pListData->noc_ly);
+                       } else {
+                               elm_object_part_content_unset(pListData->content_ly, "search_list");
+                               evas_object_hide(swl_ly);
+                               if (pListData->noc_ly) {
+                                       elm_object_part_content_set(pListData->content_ly, "search_list", pListData->noc_ly);
+                               }
+                       }
+               }
+
+       } else {
+               if (swl_ly != pListData->genlist) {
+                       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                               elm_object_part_content_unset(pListData->content_ly, "thread_list");
+                               evas_object_hide(swl_ly);
+                               elm_object_part_content_set(pListData->content_ly, "thread_list", pListData->genlist);
+                       } else {
+                               elm_object_part_content_unset(pListData->content_ly, "search_list");
+                               evas_object_hide(swl_ly);
+                               elm_object_part_content_set(pListData->content_ly, "search_list", pListData->genlist);
+                       }
+               }
+
+               gen_item = elm_genlist_first_item_get(pListData->genlist);
+
+               while (gen_item && (row < peerList.nCount)) {
+                       int thread_id = 0;
+                       PMSG_APP_THREAD_CONV_DATA_S old_data = NULL;
+                       PMSG_APP_THREAD_CONV_DATA_S new_data = NULL;
+
+                       old_data = elm_object_item_data_get(gen_item);
+                       msg_get_int_value(peerList.msg_struct_info[row], MSG_THREAD_ID_INT, &thread_id);
+
+                       if (old_data && old_data->thread_id == thread_id) {
+                               new_data = (PMSG_APP_THREAD_CONV_DATA_S) calloc(1, sizeof(MSG_APP_THREAD_CONV_DATA_S));
+                               if (!new_data) {
+                                       D_EMSG("new_data calloc failed");
+                                       return;
+                               }
+
+                               msg_ui_thread_set_conv_data(pListData, new_data, peerList.msg_struct_info[row]);
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+                               if (pListData->adv_search_ly)
+                                       msg_ui_thread_update_thread_search_bubble(pListData, peerList.msg_struct_info[row]);
+#endif
+
+                               new_data->is_check = old_data->is_check;
+
+                               elm_genlist_item_item_class_update(gen_item, msg_ui_thread_conv_item_get_itc_type(pListData, new_data));
+                               elm_object_item_data_set(gen_item, new_data);
+                               elm_genlist_item_update(gen_item);
+
+                               if (pListData->pPopup && pListData->pPopup->popup_type == THREAD_POPUP_CONTEXTUAL) {
+                                       PMSG_APP_THREAD_POPUP_CONTEXTUAL pPopup = (PMSG_APP_THREAD_POPUP_CONTEXTUAL)pListData->pPopup;
+                                       if (old_data == evas_object_data_get(pPopup->genlist, "item_data"))
+                                               evas_object_data_set(pPopup->genlist, "item_data", new_data);
+                               }
+
+                               if (pListData->view_mode == THREAD_EDIT_VIEW) {
+                                       if (new_data->unread_cnt > old_data->unread_cnt) {
+                                               if (new_data->is_check) {
+                                                       new_data->is_check = !new_data->is_check;
+
+                                                       Evas_Object *ic_ly = elm_object_item_part_content_get(gen_item, "elm.icon.2");
+                                                       Evas_Object *check = elm_layout_content_get(ic_ly, "elm.swallow.content");
+                                                       if (check) {
+                                                               elm_check_state_set(check, new_data->is_check);
+                                                               evas_object_smart_callback_call(check, "changed", NULL);
+                                                       }
+                                               }
+                                       } else {
+                                               if (eina_list_data_find(pListData->chk_list, old_data)) {
+                                                       pListData->chk_list = eina_list_remove(pListData->chk_list, old_data);
+                                                       pListData->chk_list = eina_list_append(pListData->chk_list, new_data);
+                                               }
+                                       }
+                               }
+
+                               if (old_data->addr_info) {
+                                       int i = 0;
+                                       for (i = 0; i < old_data->addr_cnt; i++) {
+                                               if (old_data->addr_info[i]) {
+                                                       if (old_data->addr_info[i]->thumb_path)
+                                                               free(old_data->addr_info[i]->thumb_path);
+                                                       free(old_data->addr_info[i]);
+                                               }
+                                       }
+                                       free(old_data->addr_info);
+                                       old_data->addr_info = NULL;
+                               }
+
+                               if (old_data->thread_time) {
+                                       free(old_data->thread_time);
+                                       old_data->thread_time = NULL;
+                               }
+                               free(old_data);
+                       }
+                       gen_item = elm_genlist_item_next_get(gen_item);
+                       row++;
+               }
+       }
+
+#ifdef BADGE_COUNT_ENABLE
+       msg_ui_thread_set_title_unread_cnt(pListData);
+#endif /* BADGE_COUNT_ENABLE */
+       msg_release_list_struct(&peerList);
+       elm_genlist_realized_items_update(pListData->genlist);
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_list_item_insert_ex(PMSG_THREAD_LIST_DATA pListData, msg_thread_id_t thread_id, msg_struct_list_s *p_preloaded_peerlist)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       int row = 0;
+       bool bSearchList = false;
+       char *search_str = NULL;
+       int start_index = 0;
+       Elm_Object_Item *gen_item = NULL;
+       Elm_Object_Item *new_item = NULL;
+
+       msg_struct_list_s peerList = {0, };
+       msg_struct_list_s *p_peerList = &peerList;
+       int threadId = 0;
+
+       if (pListData->search_mode == THREAD_SEARCH_ON) {
+               Evas_Object *entry = NULL;
+
+               if (pListData->search_gl) {
+                       search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+               }
+
+               if (!search_str || strlen(search_str) == 0)
+                       bSearchList = false;
+               else
+                       bSearchList = true;
+       }
+
+       if (bSearchList == true) {
+               PMSG_APP_THREAD_SEARCH_TITLE_S search_title = NULL;
+
+               gen_item = elm_genlist_first_item_get(pListData->genlist);
+               if (gen_item) {
+                       search_title = elm_object_item_data_get(gen_item);
+
+                       if (search_title && search_title->nType == THREAD_SEARCH_CONV)
+                               start_index++;
+               }
+
+               if (pListData->search_conv_list.nCount > 0) {
+                       pListData->search_thread_cnt = 0;
+                       msg_release_list_struct(&pListData->search_conv_list);
+               }
+
+               msg_search_message_for_thread_view(msg_ui_thread_get_data_handle(), search_str, &peerList);
+               msg_search_message_for_thread_view(msg_ui_thread_get_data_handle(), search_str, &pListData->search_conv_list);
+               pListData->search_thread_cnt = pListData->search_conv_list.nCount;
+       } else {
+               if (p_preloaded_peerlist == NULL) {
+                       msg_struct_t sort_rule_t = msg_create_struct(MSG_STRUCT_SORT_RULE);
+
+                       msg_set_int_value(sort_rule_t, MSG_SORT_RULE_SORT_TYPE_INT, MSG_SORT_BY_THREAD_DATE);
+                       msg_set_bool_value(sort_rule_t, MSG_SORT_RULE_ACSCEND_BOOL, false);
+                       msg_get_thread_view_list(msg_ui_thread_get_data_handle(), sort_rule_t, &peerList);
+
+                       msg_release_struct(&sort_rule_t);
+               } else
+                       p_peerList = p_preloaded_peerlist;
+       }
+
+       if (search_str) {
+               free(search_str);
+               search_str = NULL;
+       }
+
+
+       D_MSG("start_index (%d)", start_index);
+
+       for (row = 0; row < p_peerList->nCount; row++) {
+               msg_get_int_value(p_peerList->msg_struct_info[row], MSG_THREAD_ID_INT, &threadId);
+
+               if (thread_id == threadId) {
+                       PMSG_APP_THREAD_CONV_DATA_S cur_thread = NULL;
+                       Elm_Object_Item *search_item = NULL;
+                       Elm_Object_Item *next_item = NULL;
+
+                       cur_thread = (PMSG_APP_THREAD_CONV_DATA_S) calloc(1, sizeof(MSG_APP_THREAD_CONV_DATA_S));
+                       if (cur_thread) {
+                               msg_ui_thread_set_conv_data(pListData, cur_thread, p_peerList->msg_struct_info[row]);
+
+                               D_IMSG("start_index : %d, row : %d", start_index, row);
+
+                               next_item = elm_genlist_nth_item_get(pListData->genlist, start_index+row);
+
+                               if (bSearchList == true) {
+                                       PMSG_APP_THREAD_SEARCH_TITLE_S search_title = NULL;
+
+                                       if (next_item)
+                                               search_item = elm_genlist_item_parent_get(next_item);
+
+                                       if (search_item == NULL) {
+                                               Elm_Object_Item *before_item = NULL;
+                                               if (start_index+row-1 > 0)
+                                                       before_item = elm_genlist_nth_item_get(pListData->genlist, start_index+row-1);
+
+                                               if (before_item)
+                                                       search_item = elm_genlist_item_parent_get(before_item);
+                                       }
+
+                                       if (search_item) {
+                                               search_title = elm_object_item_data_get(search_item);
+                                               search_title->subitem_cnt++;
+                                               elm_genlist_item_update(search_title->title_it);
+                                       } else {
+                                               __msg_ui_thread_insert_search_title(pListData, THREAD_SEARCH_CONV, 1);
+                                               search_item = elm_genlist_first_item_get(pListData->genlist);
+                                       }
+                               }
+
+                               /* check if dummy item is the last item */
+                               if (next_item == NULL) {
+                                       Elm_Object_Item *last_item = elm_genlist_last_item_get(pListData->genlist);
+                                       if (last_item && !elm_object_item_data_get(last_item)) {
+                                               next_item = last_item;
+                                       }
+                               }
+
+                               if (next_item) {
+                                       new_item = elm_genlist_item_insert_before(pListData->genlist, msg_ui_thread_conv_item_get_itc_type(pListData, cur_thread), cur_thread, search_item, next_item, ELM_GENLIST_ITEM_NONE, __msg_ui_thread_gl_sel, pListData);
+                               } else {
+                                       new_item = elm_genlist_item_append(pListData->genlist, msg_ui_thread_conv_item_get_itc_type(pListData, cur_thread), cur_thread, search_item, ELM_GENLIST_ITEM_NONE, __msg_ui_thread_gl_sel, pListData);
+                               }
+
+                               pListData->item_cnt++;
+                               msg_ui_thread_list_add_dummy_item(pListData);
+
+                       } else {
+                               D_EMSG("calloc is failed (%s)", strerror(errno));
+                       }
+
+                       break;
+               }
+       }
+       if (bSearchList == false) {
+               if (p_peerList != p_preloaded_peerlist)
+                       msg_release_list_struct(p_peerList);
+       }
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+               if (pListData->item_cnt == pListData->check_cnt)
+                       pListData->sel_all_checked = true;
+               else {
+                       pListData->sel_all_checked = false;
+                       if (pListData->sel_all_check)
+                               elm_check_state_set(pListData->sel_all_check, EINA_FALSE);
+               }
+       }
+
+       if (new_item) {
+               ugdata *composer_data = NULL;
+               composer_data = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_CONV, thread_id);
+               if (composer_data) {
+                       pListData->sel_gen_item = new_item;
+                       pListData->sel_thread_id = thread_id;
+
+                       composer_data->sel_gen_item = new_item;
+                       elm_genlist_item_selected_set(new_item, true);
+               }
+       }
+#ifdef BADGE_COUNT_ENABLE
+       msg_ui_thread_set_title_unread_cnt(pListData);
+#endif /* BADGE_COUNT_ENABLE */
+       D_LEAVE;
+}
+
+Eina_Bool msg_ui_thread_list_item_update_ex(PMSG_THREAD_LIST_DATA pListData, msg_thread_id_t thread_id, msg_struct_list_s *p_preloaded_peerlist)
+{
+       D_MSG_RETVM_IF(!pListData, EINA_FALSE, "pListData is NULL");
+
+       PMSG_APP_THREAD_CONV_DATA_S old_data = NULL;
+       PMSG_APP_THREAD_CONV_DATA_S new_data = NULL;
+
+       msg_error_t err = MSG_SUCCESS;
+       Elm_Object_Item *gen_item = NULL;
+       Elm_Object_Item *new_item = NULL;
+
+       bool bSearchList = false;
+       char *search_str = NULL;
+       int start_index = 0;
+       int conv_index = 0;
+
+       D_IMSG("thread_id = [%d] ", thread_id);
+
+       if (pListData->search_mode == THREAD_SEARCH_ON) {
+               Evas_Object *entry = NULL;
+
+               if (pListData->search_gl) {
+                       search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+               }
+
+               if (!search_str || strlen(search_str) == 0)
+                       bSearchList = false;
+               else
+                       bSearchList = true;
+       }
+
+       gen_item = elm_genlist_first_item_get(pListData->genlist);
+
+       /* Update genlist item */
+       while (gen_item) {
+               if (bSearchList == true && elm_genlist_item_parent_get(gen_item) == NULL) {
+                       start_index++;
+                       gen_item = elm_genlist_item_next_get(gen_item);
+                       continue;
+               }
+
+               old_data = (PMSG_APP_THREAD_CONV_DATA_S) elm_object_item_data_get(gen_item);
+               if (old_data) {
+                       if (old_data->app_data_type == THREAD_LIST_APP_DATA_MSG) {
+                               if (search_str)
+                                       free(search_str);
+
+                               return EINA_FALSE;
+                       }
+
+                       if (old_data->thread_id == thread_id)
+                               break;
+               }
+               gen_item = elm_genlist_item_next_get(gen_item);
+
+               conv_index++;
+       }
+
+       if (!gen_item) {
+               D_EMSG("gen_item is NULL");
+               if (search_str)
+                       free(search_str);
+               return EINA_FALSE;
+       }
+
+       if (!old_data) {
+               D_EMSG("old_data is NULL");
+               if (search_str)
+                       free(search_str);
+               return EINA_FALSE;
+       }
+
+       msg_struct_list_s peerList = {0, };
+       msg_struct_list_s *p_peerList = &peerList;
+       int base_id = 0;
+
+       if (bSearchList == true) {
+               if (pListData->search_conv_list.nCount > 0) {
+                       pListData->search_thread_cnt = 0;
+                       msg_release_list_struct(&pListData->search_conv_list);
+
+                       err = msg_search_message_for_thread_view(msg_ui_thread_get_data_handle(), search_str, &pListData->search_conv_list);
+                       err = msg_search_message_for_thread_view(msg_ui_thread_get_data_handle(), search_str, &peerList);
+                       pListData->search_thread_cnt = pListData->search_conv_list.nCount;
+               }
+       } else {
+               if (p_preloaded_peerlist == NULL) {
+                       msg_struct_t sort_rule_t = msg_create_struct(MSG_STRUCT_SORT_RULE);
+                       msg_set_int_value(sort_rule_t, MSG_SORT_RULE_SORT_TYPE_INT, MSG_SORT_BY_THREAD_DATE);
+                       msg_set_bool_value(sort_rule_t, MSG_SORT_RULE_ACSCEND_BOOL, false);
+
+                       err = msg_get_thread_view_list(msg_ui_thread_get_data_handle(), sort_rule_t, &peerList);
+
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_get_thread_view_list() is failed : err = %d", err);
+                               msg_release_struct(&sort_rule_t);
+                               free(search_str);
+                               return EINA_FALSE;
+                       }
+
+                       msg_release_struct(&sort_rule_t);
+               } else {
+                       p_peerList = p_preloaded_peerlist;
+               }
+       }
+
+       if (search_str) {
+               free(search_str);
+               search_str = NULL;
+       }
+
+       if (p_peerList->nCount <= 0) {
+               return EINA_FALSE;
+       }
+
+       if (conv_index < p_peerList->nCount && p_peerList->msg_struct_info[conv_index] != NULL)
+               msg_get_int_value(p_peerList->msg_struct_info[conv_index], MSG_THREAD_ID_INT, &base_id);
+
+       D_IMSG("start_index :  %d, conv_index : %d, base_id : %d, thread_id : %d", start_index, conv_index, base_id, thread_id);
+
+       if (base_id <= 0) {
+               return EINA_FALSE;
+       }
+       int row = 0;
+       int threadId = 0;
+
+       if (pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH) {
+               Elm_Object_Item *it_search = NULL;
+               PMSG_APP_THREAD_SEARCH_TITLE_S search_title = NULL;
+
+               it_search = elm_genlist_item_parent_get(gen_item);
+               if (it_search) {
+                       search_title = elm_object_item_data_get(it_search);
+                       if (search_title) {
+                               search_title->subitem_cnt--;
+                               if (search_title->subitem_cnt == 0)
+                                       elm_object_item_del((Elm_Object_Item *)it_search);
+                               else
+                                       elm_genlist_item_update(search_title->title_it);
+                       }
+               }
+       }
+
+       if (elm_genlist_item_selected_get(gen_item))
+               elm_genlist_item_selected_set(gen_item, false);
+       elm_object_item_del((Elm_Object_Item *)gen_item);
+       pListData->item_cnt--;
+       if (pListData->item_cnt < __SCREEN_ITEM_COUNT)
+               msg_ui_thread_list_del_dummy_item(pListData);
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW && eina_list_data_find(pListData->chk_list, old_data)) {
+               pListData->check_cnt--;
+               pListData->chk_list = eina_list_remove(pListData->chk_list, old_data);
+               msg_ui_thread_show_select_info(pListData);
+
+               if (pListData->item_cnt == pListData->check_cnt)
+                       pListData->sel_all_checked = true;
+               else {
+                       pListData->sel_all_checked = false;
+                       if (pListData->sel_all_check)
+                               elm_check_state_set(pListData->sel_all_check, EINA_FALSE);
+               }
+       }
+
+       D_MSG("start_index (%d)", start_index);
+
+       for (row = 0; row < p_peerList->nCount; row++) {
+               msg_get_int_value(p_peerList->msg_struct_info[row], MSG_THREAD_ID_INT, &threadId);
+
+               if (thread_id == threadId) {
+                       PMSG_APP_THREAD_CONV_DATA_S cur_thread = NULL;
+                       Elm_Object_Item *search_item = NULL;
+                       Elm_Object_Item *next_item = NULL;
+
+                       cur_thread = (PMSG_APP_THREAD_CONV_DATA_S) calloc(1, sizeof(MSG_APP_THREAD_CONV_DATA_S));
+
+                       if (cur_thread) {
+
+                               msg_ui_thread_set_conv_data(pListData, cur_thread, p_peerList->msg_struct_info[row]);
+
+                               D_IMSG("conv_index : %d, row : %d", conv_index, row);
+
+                               next_item = elm_genlist_nth_item_get(pListData->genlist, start_index+row);
+
+                               if (bSearchList == true) {
+                                       if (next_item)
+                                               search_item = elm_genlist_item_parent_get(next_item);
+
+                                       if (search_item == NULL) {
+                                               Elm_Object_Item *before_item = NULL;
+                                               if (start_index+row-1 > 0)
+                                                       before_item = elm_genlist_nth_item_get(pListData->genlist, start_index+row-1);
+                                               if (before_item)
+                                                       search_item = elm_genlist_item_parent_get(before_item);
+                                       }
+
+                                       if (!search_item) {
+                                               __msg_ui_thread_insert_search_title(pListData, THREAD_SEARCH_CONV, 1);
+                                               search_item = elm_genlist_first_item_get(pListData->genlist);
+                                       }
+                               }
+
+                               /* check if dummy item is the last item */
+                               if (next_item == NULL) {
+                                       Elm_Object_Item *last_item = elm_genlist_last_item_get(pListData->genlist);
+                                       if (last_item && !elm_object_item_data_get(last_item)) {
+                                               next_item = last_item;
+                                       }
+                               }
+
+                               if (next_item) {
+                                       new_item = elm_genlist_item_insert_before(pListData->genlist, msg_ui_thread_conv_item_get_itc_type(pListData, cur_thread), cur_thread, search_item, next_item, ELM_GENLIST_ITEM_NONE, __msg_ui_thread_gl_sel, pListData);
+                               } else {
+                                       new_item = elm_genlist_item_append(pListData->genlist, msg_ui_thread_conv_item_get_itc_type(pListData, cur_thread), cur_thread, search_item, ELM_GENLIST_ITEM_NONE, __msg_ui_thread_gl_sel, pListData);
+                               }
+                       } else {
+                               D_EMSG("calloc is failed (%s)", strerror(errno));
+                       }
+
+#ifdef BADGE_COUNT_ENABLE
+                       msg_ui_thread_set_title_unread_cnt(pListData);
+#endif /* BADGE_COUNT_ENABLE */
+                       pListData->item_cnt++;
+                       msg_ui_thread_list_add_dummy_item(pListData);
+
+                       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+                               if (pListData->item_cnt == pListData->check_cnt)
+                                       pListData->sel_all_checked = true;
+                               else {
+                                       pListData->sel_all_checked = false;
+                                       if (pListData->sel_all_check)
+                                               elm_check_state_set(pListData->sel_all_check, EINA_FALSE);
+                               }
+                       }
+
+                       if (search_item) {
+                               PMSG_APP_THREAD_SEARCH_TITLE_S search_title = NULL;
+
+                               search_title = elm_object_item_data_get(search_item);
+                               search_title->subitem_cnt++;
+                               elm_genlist_item_update(search_title->title_it);
+                       }
+                       break;
+               }
+       }
+
+       if (bSearchList == false) {
+               if (p_peerList != p_preloaded_peerlist)
+                       msg_release_list_struct(p_peerList);
+       }
+
+       if (new_item == NULL) {
+               elm_genlist_item_update(elm_genlist_last_item_get(pListData->genlist));
+               msg_ui_thread_set_title_status(pListData);
+       }
+
+       if (thread_id == pListData->sel_thread_id) {
+               pListData->sel_gen_item = new_item;
+
+               ugdata *composer_data = NULL;
+               composer_data = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_CONV, pListData->sel_thread_id);
+               if (composer_data)
+                       composer_data->sel_gen_item = new_item;
+       }
+
+       if (pListData->pPopup && pListData->pPopup->popup_type == THREAD_POPUP_CONTEXTUAL) {
+               PMSG_APP_THREAD_POPUP_CONTEXTUAL pPopup = (PMSG_APP_THREAD_POPUP_CONTEXTUAL)pListData->pPopup;
+
+               if (old_data == evas_object_data_get(pPopup->genlist, "item_data")) {
+                       if (new_item) {
+                               PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S)elm_object_item_data_get(new_item);
+                               evas_object_data_set(pPopup->genlist, "item_data", item_data);
+                       }
+               }
+       }
+
+       if (pListData->sel_gen_item && pListData->sel_thread_id > 0) {
+               D_MSG("pListData->sel_gen_item : %p, pListData->sel_thread_id : %d", pListData->sel_gen_item, pListData->sel_thread_id);
+               msg_ui_thread_select_item_by_thread_id(pListData, thread_id);
+       }
+
+       D_LEAVE;
+       return EINA_TRUE;
+}
+
+void msg_ui_thread_list_item_delete(PMSG_THREAD_LIST_DATA pListData, msg_thread_id_t thread_id)
+{
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       PMSG_APP_THREAD_CONV_DATA_S item_data = NULL;
+       Elm_Object_Item *gen_item = NULL;
+
+       D_IMSG("thread_id = [%d] ", thread_id);
+
+       gen_item = elm_genlist_first_item_get(pListData->genlist);
+
+       while (gen_item) {
+               if (pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH && elm_genlist_item_parent_get(gen_item) == NULL) {
+                       gen_item = elm_genlist_item_next_get(gen_item);
+                       continue;
+               }
+
+               item_data = (PMSG_APP_THREAD_CONV_DATA_S) elm_object_item_data_get(gen_item);
+
+               if (item_data) {
+                       if (item_data->app_data_type == THREAD_LIST_APP_DATA_MSG)
+                               return;
+
+                       if (thread_id == item_data->thread_id) {
+#ifdef BADGE_COUNT_ENABLE
+                               if (item_data->unread_cnt != 0)
+                                       msg_ui_thread_set_title_unread_cnt(pListData);
+#endif /* BADGE_COUNT_ENABLE */
+                               break;
+                       }
+               }
+               gen_item = elm_genlist_item_next_get(gen_item);
+       }
+
+       if (!gen_item) {
+               D_EMSG("gen_item is NULL");
+               return;
+       }
+
+       if (pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH) {
+               Elm_Object_Item *it_search = NULL;
+               PMSG_APP_THREAD_SEARCH_TITLE_S search_title = NULL;
+
+               it_search = elm_genlist_item_parent_get(gen_item);
+               if (it_search) {
+                       search_title = elm_object_item_data_get(it_search);
+                       if (search_title) {
+                               search_title->subitem_cnt--;
+                               if (search_title->subitem_cnt == 0)
+                                       elm_object_item_del((Elm_Object_Item *)it_search);
+                               else
+                                       elm_genlist_item_update(search_title->title_it);
+                       }
+               }
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+               if (pListData->adv_search_ly)
+                       msg_ui_thread_remove_search_bubble_by_thread_id(pListData, thread_id);
+#endif
+       }
+
+       if (pListData->search_mode == THREAD_SEARCH_ON) {
+               char *search_str = NULL;
+               Evas_Object *entry = NULL;
+
+               if (pListData->search_gl) {
+                       search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+               }
+
+               if (search_str && strlen(search_str) > 0) {
+                       if (pListData->search_conv_list.nCount > 0) {
+                               pListData->search_thread_cnt = 0;
+                               msg_release_list_struct(&pListData->search_conv_list);
+                       }
+                       msg_search_message_for_thread_view(msg_ui_thread_get_data_handle(), search_str, &pListData->search_conv_list);
+                       pListData->search_thread_cnt = pListData->search_conv_list.nCount;
+               }
+
+               if (search_str) {
+                       free(search_str);
+                       search_str = NULL;
+               }
+       }
+
+       if (pListData->sel_gen_item == gen_item) {
+               pListData->sel_gen_item = NULL;
+               pListData->sel_msg_id = 0;
+               pListData->sel_thread_id = 0;
+       }
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+               if (item_data && item_data->is_check == EINA_TRUE) {
+                       pListData->check_cnt--;
+                       pListData->chk_list = eina_list_remove(pListData->chk_list, item_data);
+               }
+       }
+
+       if (elm_genlist_item_selected_get(gen_item))
+               elm_genlist_item_selected_set(gen_item, false);
+
+       elm_object_item_data_set(gen_item, NULL);
+
+       elm_object_item_del((Elm_Object_Item *)gen_item);
+       pListData->item_cnt--;
+       if (pListData->item_cnt < __SCREEN_ITEM_COUNT)
+               msg_ui_thread_list_del_dummy_item(pListData);
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+               if (pListData->item_cnt == pListData->check_cnt)
+                       pListData->sel_all_checked = true;
+               else {
+                       pListData->sel_all_checked = false;
+                       if (pListData->sel_all_check)
+                               elm_check_state_set(pListData->sel_all_check, EINA_FALSE);
+               }
+       }
+
+       if (pListData->item_cnt <= 0) {
+               /* show non cotent */
+               PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+               D_MSG_RETM_IF(!pData, "pData is NULL");
+               Evas_Object *swl_ly = NULL;
+
+               if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                       swl_ly = elm_object_part_content_get(pListData->content_ly, "thread_list");
+               } else {
+                       swl_ly = elm_object_part_content_get(pListData->content_ly, "search_list");
+               }
+
+               if (!pListData->noc_ly) {
+                       pListData->noc_ly = msg_ui_thread_create_nocontent_layout(pData->navi_frame, pListData->search_mode);
+               } else {
+                       msg_ui_thread_create_nocontent_layout_change(pListData->noc_ly, pListData->search_mode);
+               }
+
+               if (swl_ly != pListData->noc_ly) {
+                       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                               elm_object_part_content_unset(pListData->content_ly, "thread_list");
+                               evas_object_hide(swl_ly);
+                               elm_object_part_content_set(pListData->content_ly, "thread_list", pListData->noc_ly);
+                       } else {
+                               elm_object_part_content_unset(pListData->content_ly, "search_list");
+                               evas_object_hide(swl_ly);
+                               if (pListData->noc_ly) {
+                                       elm_object_part_content_set(pListData->content_ly, "search_list", pListData->noc_ly);
+                               }
+                       }
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_list_add_dummy_item(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       /* check normal thread list */
+       if (pListData->genlist && pListData->list_type == THREAD_NORMAL_LIST_TYPE
+               && pListData->app_data_type == THREAD_LIST_APP_DATA_CONV
+               && pListData->view_mode == THREAD_NORMAL_VIEW
+               && pListData->search_mode == THREAD_SEARCH_OFF) {
+
+               /* check if dummy item should be added as last item of genlist */
+               if (pListData->load_idler == NULL && pListData->item_cnt >= __SCREEN_ITEM_COUNT) {
+                       Elm_Object_Item *dummy_item = NULL;
+
+                       /* return if dummy_item exists in this genlist */
+                       dummy_item = elm_genlist_last_item_get(pListData->genlist);
+                       if (dummy_item && !elm_object_item_data_get(dummy_item))
+                               return;
+
+                       D_IMSG("add a dummy item in this list.");
+                       pListData->itc_dummy.item_style = "default";
+                       dummy_item = elm_genlist_item_append(pListData->genlist, &pListData->itc_dummy, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+                       elm_genlist_item_select_mode_set(dummy_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               }
+       }
+}
+
+void msg_ui_thread_list_del_dummy_item(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       if (pListData->genlist) {
+               Elm_Object_Item *last_item = elm_genlist_last_item_get(pListData->genlist);
+               if (last_item && !elm_object_item_data_get(last_item)) {
+                       D_IMSG("delete a dummy item from this list.");
+                       elm_object_item_del(last_item);
+               }
+       }
+}
+
+void msg_ui_thread_list_rotation_set(void)
+{
+       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+
+       msg_ui_thread_list_del_dummy_item(pListData);
+       msg_ui_thread_list_add_dummy_item(pListData);
+}
+
+void msg_ui_thread_msg_list_load(PMSG_THREAD_LIST_DATA pListData, int listType)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       Evas_Object *swl_ly = NULL;
+       Elm_Object_Item *sel_gen_item = NULL;
+       int sel_msg_id = 0;
+
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_list_s msg_list;
+       msg_struct_t listCond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+
+       if (msg_ui_thread_get_app_state(pData) == MSG_UI_STATE_PAUSE) {
+               pData->redrawList = true;
+               pListData->redrawList = true;
+               msg_release_struct(&listCond);
+               return;
+       } else {
+               pListData->redrawList = false;
+       }
+
+       sel_gen_item = pListData->sel_gen_item;
+       sel_msg_id = pListData->sel_msg_id;
+
+       __msg_ui_thread_init_genlist(pListData);
+
+       switch (listType) {
+               case THREAD_NORMAL_LIST_TYPE:
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_ALLBOX_ID);
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+                       break;
+               default:
+                       D_EMSG("[WARNING] invalid view mode");
+                       msg_release_struct(&listCond);
+                       return;
+       }
+
+       err =  msg_get_message_list2(msg_ui_thread_get_data_handle(), listCond, &msg_list);
+       msg_release_struct(&listCond);
+
+       if (err != MSG_SUCCESS && err != MSG_ERR_DB_NORECORD) {
+               D_EMSG("msg_get_message_list2() is failed = %d", err);
+               return;
+       }
+       D_IMSG("msg_list count : %d", msg_list.nCount);
+
+       pListData->item_cnt = msg_list.nCount;
+       pListData->app_data_type = THREAD_LIST_APP_DATA_MSG;
+
+       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+               swl_ly = elm_object_part_content_get(pListData->content_ly, "thread_list");
+       } else {
+               swl_ly = elm_object_part_content_get(pListData->content_ly, "search_list");
+       }
+
+       if (msg_list.nCount <= 0 || err != MSG_SUCCESS) {
+               /* show non cotent */
+               if (!pListData->noc_ly) {
+                       pListData->noc_ly = msg_ui_thread_create_nocontent_layout(pData->navi_frame, pListData->search_mode);
+               } else {
+                       msg_ui_thread_create_nocontent_layout_change(pListData->noc_ly, pListData->search_mode);
+               }
+
+               if (swl_ly != pListData->noc_ly) {
+                       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                               elm_object_part_content_unset(pListData->content_ly, "thread_list");
+                               evas_object_hide(swl_ly);
+                               elm_object_part_content_set(pListData->content_ly, "thread_list", pListData->noc_ly);
+                       } else {
+                               elm_object_part_content_unset(pListData->content_ly, "search_list");
+                               evas_object_hide(swl_ly);
+                               if (pListData->noc_ly) {
+                                       elm_object_part_content_set(pListData->content_ly, "search_list", pListData->noc_ly);
+                               }
+                       }
+               }
+       } else {
+               /* fill the genlist */
+               __msg_ui_thread_genlist_style_set(pListData, THREAD_LIST_APP_DATA_MSG);
+
+               if (swl_ly != pListData->genlist) {
+                       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                               elm_object_part_content_unset(pListData->content_ly, "thread_list");
+                               evas_object_hide(swl_ly);
+                               elm_object_part_content_set(pListData->content_ly, "thread_list", pListData->genlist);
+                       } else {
+                               elm_object_part_content_unset(pListData->content_ly, "search_list");
+                               evas_object_hide(swl_ly);
+                               if (pListData->genlist) {
+                                       elm_object_part_content_set(pListData->content_ly, "search_list", pListData->genlist);
+                               }
+                       }
+               }
+
+               PMSG_APP_THREAD_MSG_DATA_S cur_item = NULL;
+               int row = 0;
+
+               for (row = 0; row < msg_list.nCount; row++) {
+                       cur_item = (PMSG_APP_THREAD_MSG_DATA_S) calloc(1, sizeof(MSG_APP_THREAD_MSG_DATA_S));
+                       msg_ui_thread_set_msg_data(cur_item, msg_list.msg_struct_info[row]);
+
+                       elm_genlist_item_append(pListData->genlist, &pListData->itc_msg, cur_item, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_msg_gl_sel, (void *)pListData);
+               }
+       }
+       msg_release_list_struct(&msg_list);
+
+       if (sel_gen_item != NULL && sel_msg_id > 0) {
+               Elm_Object_Item *new_item = NULL;
+               PMSG_APP_THREAD_MSG_DATA_S cur_sel_msg = NULL;
+
+               new_item = elm_genlist_first_item_get(pListData->genlist);
+
+               while (new_item) {
+                       cur_sel_msg = elm_object_item_data_get(new_item);
+                       if (cur_sel_msg && cur_sel_msg->msg_id == sel_msg_id)
+                               break;
+
+                       new_item = elm_genlist_item_next_get(new_item);
+               }
+
+               ugdata *composer_data = NULL;
+               composer_data = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_MSG, sel_msg_id);
+
+               if (new_item) {
+                       pListData->sel_gen_item = new_item;
+                       pListData->sel_msg_id = sel_msg_id;
+                       if (composer_data)
+                               composer_data->sel_gen_item = new_item;
+               } else {
+                       pListData->sel_gen_item = NULL;
+                       pListData->sel_msg_id = 0;
+                       if (composer_data)
+                               msg_ui_destroy_composer_ug(composer_data->ug_h, false);
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_list_msg_list_update(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       Evas_Object *swl_ly = NULL;
+
+       int row = 0;
+       Elm_Object_Item *gen_item = NULL;
+
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_list_s msg_list;
+       msg_struct_t listCond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+
+       switch (pListData->list_type) {
+               case THREAD_NORMAL_LIST_TYPE:
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_ALLBOX_ID);
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+                       break;
+               default:
+                       D_EMSG("[WARNING] invalid view mode");
+                       msg_release_struct(&listCond);
+                       return;
+       }
+
+       err =  msg_get_message_list2(msg_ui_thread_get_data_handle(), listCond, &msg_list);
+       msg_release_struct(&listCond);
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, err != MSG_SUCCESS);
+       pListData->item_cnt = msg_list.nCount;
+
+       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+               swl_ly = elm_object_part_content_get(pListData->content_ly, "thread_list");
+       } else {
+               swl_ly = elm_object_part_content_get(pListData->content_ly, "search_list");
+       }
+
+       if (msg_list.nCount <= 0 || err != MSG_SUCCESS) {
+               if (!pListData->noc_ly) {
+                       pListData->noc_ly = msg_ui_thread_create_nocontent_layout(pData->navi_frame, pListData->search_mode);
+               } else {
+                       msg_ui_thread_create_nocontent_layout_change(pListData->noc_ly, pListData->search_mode);
+               }
+
+               if (swl_ly != pListData->noc_ly) {
+                       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                               elm_object_part_content_unset(pListData->content_ly, "thread_list");
+                               evas_object_hide(swl_ly);
+                               elm_object_part_content_set(pListData->content_ly, "thread_list", pListData->noc_ly);
+                       } else {
+                               elm_object_part_content_unset(pListData->content_ly, "search_list");
+                               evas_object_hide(swl_ly);
+                               if (pListData->noc_ly) {
+                                       elm_object_part_content_set(pListData->content_ly, "search_list", pListData->noc_ly);
+                               }
+                       }
+               }
+       } else {
+               if (swl_ly != pListData->genlist) {
+                       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                               elm_object_part_content_unset(pListData->content_ly, "thread_list");
+                               evas_object_hide(swl_ly);
+                               elm_object_part_content_set(pListData->content_ly, "thread_list", pListData->genlist);
+                       } else {
+                               elm_object_part_content_unset(pListData->content_ly, "search_list");
+                               evas_object_hide(swl_ly);
+                               if (pListData->genlist) {
+                                       elm_object_part_content_set(pListData->content_ly, "search_list", pListData->genlist);
+                               }
+                       }
+               }
+
+               gen_item = elm_genlist_first_item_get(pListData->genlist);
+
+               while (gen_item && (row < msg_list.nCount)) {
+                       int msg_id = 0;
+                       PMSG_APP_THREAD_MSG_DATA_S old_data = NULL;
+                       PMSG_APP_THREAD_MSG_DATA_S new_data = NULL;
+
+                       old_data = elm_object_item_data_get(gen_item);
+                       msg_get_int_value(msg_list.msg_struct_info[row], MSG_MESSAGE_ID_INT, &msg_id);
+
+                       if (old_data && old_data->msg_id == msg_id) {
+                               new_data = (PMSG_APP_THREAD_MSG_DATA_S)calloc(1, sizeof(MSG_APP_THREAD_MSG_DATA_S));
+                               if (!new_data) {
+                                       D_EMSG("new_data is NULL");
+                                       return;
+                               }
+
+                               msg_ui_thread_set_msg_data(new_data, msg_list.msg_struct_info[row]);
+
+#ifdef BADGE_COUNT_ENABLE
+                               if (new_data->is_read != old_data->is_read)
+                                       msg_ui_thread_set_title_unread_cnt(pListData);
+#endif /* BADGE_COUNT_ENABLE */
+
+                               new_data->is_check = old_data->is_check;
+
+                               elm_object_item_data_set(gen_item, new_data);
+                               elm_genlist_item_update(gen_item);
+                               msg_ui_thread_set_title_status(pListData);
+
+                               if (pListData->pPopup && pListData->pPopup->popup_type == THREAD_POPUP_CONTEXTUAL) {
+                                       PMSG_APP_THREAD_POPUP_CONTEXTUAL pPopup = (PMSG_APP_THREAD_POPUP_CONTEXTUAL)pListData->pPopup;
+                                       if (old_data == evas_object_data_get(pPopup->genlist, "item_data"))
+                                               evas_object_data_set(pPopup->genlist, "item_data", new_data);
+                               }
+
+                               if (pListData->view_mode == THREAD_EDIT_VIEW) {
+                                       if (eina_list_data_find(pListData->chk_list, old_data)) {
+                                               pListData->chk_list = eina_list_remove(pListData->chk_list, old_data);
+                                               pListData->chk_list = eina_list_append(pListData->chk_list, new_data);
+                                       }
+                               }
+
+                               if (old_data->addr_info) {
+                                       int i = 0;
+                                       for (i = 0; i < old_data->addr_cnt; i++) {
+                                               if (old_data->addr_info[i]) {
+                                                       if (old_data->addr_info[i]->thumb_path)
+                                                               free(old_data->addr_info[i]->thumb_path);
+                                                       free(old_data->addr_info[i]);
+                                               }
+                                       }
+                                       free(old_data->addr_info);
+                                       old_data->addr_info = NULL;
+                               }
+
+                               if (old_data->msg_time) {
+                                       free(old_data->msg_time);
+                                       old_data->msg_time = NULL;
+                               }
+                               free(old_data);
+                       }
+                       gen_item = elm_genlist_item_next_get(gen_item);
+                       row++;
+               }
+       }
+
+       msg_release_list_struct(&msg_list);
+       elm_genlist_realized_items_update(pListData->genlist);
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_list_msg_item_insert(PMSG_THREAD_LIST_DATA pListData, msg_message_id_t msg_id)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       msg_error_t err = MSG_SUCCESS;
+       int row = 0;
+
+       bool bSearchList = false;
+       char *search_str = NULL;
+       Elm_Object_Item *gen_item = NULL;
+       int start_index = 0;
+
+       msg_struct_list_s msg_list;
+       msg_struct_t listCond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+       int msgId = 0;
+
+       switch (pListData->list_type) {
+               case THREAD_NORMAL_LIST_TYPE:
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_ALLBOX_ID);
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+                       break;
+               default:
+                       D_EMSG("[WARNING] invalid view mode");
+                       msg_release_struct(&listCond);
+                       return;
+       }
+
+       if (pListData->search_mode == THREAD_SEARCH_ON) {
+               Evas_Object *entry = NULL;
+
+               if (pListData->search_gl) {
+                       search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+               }
+
+               if (!search_str || strlen(search_str) == 0)
+                       bSearchList = false;
+               else
+                       bSearchList = true;
+       }
+
+       gen_item = elm_genlist_first_item_get(pListData->genlist);
+
+       if (bSearchList == true) {
+               PMSG_APP_THREAD_MSG_DATA_S item_data = NULL;
+               while (gen_item) {
+                       if (elm_genlist_item_parent_get(gen_item) == NULL) {
+                               gen_item = elm_genlist_item_next_get(gen_item);
+                               start_index++;
+                               continue;
+                       }
+
+                       item_data = (PMSG_APP_THREAD_MSG_DATA_S) elm_object_item_data_get(gen_item);
+                       if (item_data) {
+                               if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                                       gen_item = elm_genlist_item_next_get(gen_item);
+                                       start_index++;
+                                       continue;
+                               } else {
+                                       break;
+                               }
+                       }
+               }
+
+               if (pListData->search_msg_list.nCount > 0) {
+                       pListData->search_msg_cnt = 0;
+                       msg_release_list_struct(&pListData->search_msg_list);
+               }
+
+               if (search_str) {
+                       msg_set_str_value(listCond, MSG_LIST_CONDITION_TEXT_VALUE_STR, search_str, strlen(search_str));
+                       if (pListData->list_type != THREAD_NORMAL_LIST_TYPE)
+                               msg_set_str_value(listCond, MSG_LIST_CONDITION_ADDRESS_VALUE_STR, search_str, strlen(search_str));
+               }
+       }
+
+       err =  msg_get_message_list2(msg_ui_thread_get_data_handle(), listCond, &pListData->search_msg_list);
+       err =  msg_get_message_list2(msg_ui_thread_get_data_handle(), listCond, &msg_list);
+       if (pListData->search_msg_list.nCount > 0 && bSearchList == true) {
+               pListData->search_msg_cnt = pListData->search_msg_list.nCount;
+       }
+       msg_release_struct(&listCond);
+       if (search_str) {
+               free(search_str);
+               search_str = NULL;
+       }
+
+       if (err != MSG_SUCCESS && err != MSG_ERR_DB_NORECORD) {
+               D_EMSG("msg_get_message_list2() is failed = %d", err);
+               return;
+       }
+
+       for (row = 0; row < msg_list.nCount; row++) {
+               msg_get_int_value(msg_list.msg_struct_info[row], MSG_MESSAGE_ID_INT, &msgId);
+
+               if (msg_id == msgId) {
+                       PMSG_APP_THREAD_MSG_DATA_S cur_item = NULL;
+                       Elm_Object_Item *search_item = NULL;
+                       Elm_Object_Item *next_item = NULL;
+
+                       cur_item = (PMSG_APP_THREAD_MSG_DATA_S) calloc(1, sizeof(MSG_APP_THREAD_MSG_DATA_S));
+                       msg_ui_thread_set_msg_data(cur_item, msg_list.msg_struct_info[row]);
+                       next_item = elm_genlist_nth_item_get(pListData->genlist, start_index+row);
+
+                       D_IMSG("start_index : %d, row : %d ", start_index, row);
+
+                       if (bSearchList == true) {
+                               PMSG_APP_THREAD_SEARCH_TITLE_S search_title = NULL;
+
+                               if (next_item) {
+                                       search_item = elm_genlist_item_parent_get(next_item);
+                               } else {
+                                       Elm_Object_Item *before_item = NULL;
+                                       if (start_index+row-1 > 0)
+                                               before_item = elm_genlist_nth_item_get(pListData->genlist, start_index+row-1);
+                                       if (before_item) {
+                                               PMSG_APP_THREAD_MSG_DATA_S before_data = NULL;
+
+                                               before_data = (PMSG_APP_THREAD_MSG_DATA_S) elm_object_item_data_get(before_item);
+                                               if (before_data && before_data->app_data_type == THREAD_LIST_APP_DATA_MSG)
+                                                       search_item = elm_genlist_item_parent_get(before_item);
+                                       }
+                               }
+
+                               if (search_item) {
+                                       search_title = elm_object_item_data_get(search_item);
+                                       search_title->subitem_cnt++;
+                                       elm_genlist_item_update(search_title->title_it);
+                               } else {
+                                       __msg_ui_thread_insert_search_title(pListData, THREAD_SEARCH_MSG, 1);
+                                       search_item = elm_genlist_nth_item_get(pListData->genlist, start_index);
+                               }
+                       }
+
+                       if (next_item) {
+                               elm_genlist_item_insert_before(pListData->genlist, &pListData->itc_msg, cur_item, search_item, next_item, ELM_GENLIST_ITEM_NONE, msg_ui_thread_msg_gl_sel, (void *)pListData);
+                       } else {
+                               elm_genlist_item_append(pListData->genlist, &pListData->itc_msg, cur_item, search_item, ELM_GENLIST_ITEM_NONE, msg_ui_thread_msg_gl_sel, (void *)pListData);
+                       }
+                       pListData->item_cnt++;
+                       break;
+               }
+       }
+
+       if (bSearchList == false)
+               msg_release_list_struct(&msg_list);
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+               if (pListData->item_cnt == pListData->check_cnt)
+                       pListData->sel_all_checked = true;
+               else {
+                       pListData->sel_all_checked = false;
+                       if (pListData->sel_all_check)
+                               elm_check_state_set(pListData->sel_all_check, EINA_FALSE);
+               }
+       }
+
+#ifdef BADGE_COUNT_ENABLE
+       msg_ui_thread_set_title_unread_cnt(pListData);
+#endif /* BADGE_COUNT_ENABLE */
+
+       D_LEAVE;
+}
+
+Eina_Bool msg_ui_thread_list_msg_item_update(PMSG_THREAD_LIST_DATA pListData, msg_message_id_t msg_id)
+{
+       D_MSG_RETVM_IF(!pListData, EINA_FALSE, "pListData is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, EINA_FALSE, "pData is NULL");
+
+       PMSG_APP_THREAD_MSG_DATA_S old_data = NULL;
+       PMSG_APP_THREAD_MSG_DATA_S new_data = NULL;
+       Elm_Object_Item *gen_item = NULL;
+       Elm_Object_Item *new_item = NULL;
+
+       msg_error_t err = MSG_SUCCESS;
+       bool bSearchList = false;
+       char *search_str = NULL;
+       int start_index = 0;
+       int msg_index = 0;
+
+       D_IMSG("msg_id = [%d] ", msg_id);
+
+       msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+       err = msg_get_message(pData->msgHandle, msg_id, msgInfo, sendOpt);
+
+       if (err != MSG_SUCCESS) {
+               D_EMSG("error : msg_id : %d, error : %d", msg_id, err);
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               return EINA_FALSE;
+       }
+
+       if (pListData->search_mode == THREAD_SEARCH_ON) {
+               Evas_Object *entry = NULL;
+
+               if (pListData->search_gl) {
+                       search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+               }
+
+               if (!search_str || strlen(search_str) == 0)
+                       bSearchList = false;
+               else
+                       bSearchList = true;
+       }
+
+       gen_item = elm_genlist_first_item_get(pListData->genlist);
+
+       /* Update genlist item */
+       while (gen_item) {
+               if (bSearchList == true && elm_genlist_item_parent_get(gen_item) == NULL) {
+                       gen_item = elm_genlist_item_next_get(gen_item);
+                       start_index++;
+                       continue;
+               }
+
+               old_data = (PMSG_APP_THREAD_MSG_DATA_S) elm_object_item_data_get(gen_item);
+               if (old_data) {
+                       if (old_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                               gen_item = elm_genlist_item_next_get(gen_item);
+                               start_index++;
+                               continue;
+                       }
+
+                       if (msg_id == old_data->msg_id) {
+                               break;
+                       }
+               }
+               gen_item = elm_genlist_item_next_get(gen_item);
+               msg_index++;
+       }
+
+       if (!gen_item) {
+               D_EMSG("gen_item is NULL");
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+
+               if (search_str)
+                       free(search_str);
+               return EINA_FALSE;
+       }
+
+       msg_struct_list_s msg_list;
+       msg_struct_t listCond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+       int base_id = 0;
+
+       switch (pListData->list_type) {
+               case THREAD_NORMAL_LIST_TYPE:
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_ALLBOX_ID);
+                       msg_set_int_value(listCond, MSG_LIST_CONDITION_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+                       break;
+               default:
+                       D_EMSG("[WARNING] invalid view mode");
+                       msg_release_struct(&listCond);
+                       msg_release_struct(&msgInfo);
+                       msg_release_struct(&sendOpt);
+
+                       if (search_str)
+                               free(search_str);
+                       return EINA_FALSE;
+       }
+
+       if (bSearchList == true) {
+               if (pListData->search_msg_list.nCount > 0) {
+                       pListData->search_msg_cnt = 0;
+                       msg_release_list_struct(&pListData->search_msg_list);
+               }
+               if (search_str) {
+                       msg_set_str_value(listCond, MSG_LIST_CONDITION_TEXT_VALUE_STR, search_str, strlen(search_str));
+                       if (pListData->list_type != THREAD_NORMAL_LIST_TYPE)
+                               msg_set_str_value(listCond, MSG_LIST_CONDITION_ADDRESS_VALUE_STR, search_str, strlen(search_str));
+               }
+       }
+
+       err =  msg_get_message_list2(msg_ui_thread_get_data_handle(), listCond, &pListData->search_msg_list);
+       err =  msg_get_message_list2(msg_ui_thread_get_data_handle(), listCond, &msg_list);
+       if (pListData->search_msg_list.nCount > 0 && bSearchList == true) {
+               pListData->search_msg_cnt = pListData->search_msg_list.nCount;
+       }
+       msg_release_struct(&listCond);
+       if (search_str) {
+               free(search_str);
+               search_str = NULL;
+       }
+
+       if (err != MSG_SUCCESS && err != MSG_ERR_DB_NORECORD) {
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               D_EMSG("msg_get_message_list2() is failed = %d", err);
+               return EINA_FALSE;
+       }
+
+       if (msg_list.nCount <= 0) {
+               msg_release_struct(&msgInfo);
+               msg_release_struct(&sendOpt);
+               return EINA_FALSE;
+       }
+
+       if (msg_index < msg_list.nCount && msg_list.msg_struct_info[msg_index] != NULL)
+               msg_get_int_value(msg_list.msg_struct_info[msg_index], MSG_MESSAGE_ID_INT, &base_id);
+
+       D_IMSG("start_index :  %d, msg_index : %d, base_id : %d, msg_id : %d", start_index, msg_index, base_id, msg_id);
+
+       if (base_id != msg_id) {
+               if (base_id <= 0) {
+                       msg_release_struct(&msgInfo);
+                       msg_release_struct(&sendOpt);
+                       return EINA_FALSE;
+               }
+
+               int row = 0;
+               int msgId = 0;
+
+               if (pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH) {
+                       Elm_Object_Item *it_search = NULL;
+                       PMSG_APP_THREAD_SEARCH_TITLE_S search_title = NULL;
+
+                       it_search = elm_genlist_item_parent_get(gen_item);
+                       if (it_search) {
+                               search_title = elm_object_item_data_get(it_search);
+                               if (search_title) {
+                                       search_title->subitem_cnt--;
+                                       if (search_title->subitem_cnt == 0)
+                                               elm_object_item_del((Elm_Object_Item *)it_search);
+                                       else
+                                               elm_genlist_item_update(search_title->title_it);
+                               }
+                       }
+               }
+
+               if (elm_genlist_item_selected_get(gen_item))
+                       elm_genlist_item_selected_set(gen_item, false);
+               elm_object_item_del((Elm_Object_Item *)gen_item);
+               pListData->item_cnt--;
+
+               if (pListData->view_mode == THREAD_EDIT_VIEW && eina_list_data_find(pListData->chk_list, old_data)) {
+                       pListData->check_cnt--;
+                       pListData->chk_list = eina_list_remove(pListData->chk_list, old_data);
+                       msg_ui_thread_show_select_info(pListData);
+
+                       if (pListData->item_cnt == pListData->check_cnt)
+                               pListData->sel_all_checked = true;
+                       else {
+                               pListData->sel_all_checked = false;
+                               if (pListData->sel_all_check)
+                                       elm_check_state_set(pListData->sel_all_check, EINA_FALSE);
+                       }
+               }
+               D_MSG("start_index (%d)", start_index);
+
+               for (row = 0; row < msg_list.nCount; row++) {
+                       msg_get_int_value(msg_list.msg_struct_info[row], MSG_MESSAGE_ID_INT, &msgId);
+
+                       if (msg_id == msgId) {
+                               PMSG_APP_THREAD_MSG_DATA_S cur_item = NULL;
+                               Elm_Object_Item *search_item = NULL;
+                               Elm_Object_Item *next_item = NULL;
+
+                               cur_item = (PMSG_APP_THREAD_MSG_DATA_S) calloc(1, sizeof(MSG_APP_THREAD_MSG_DATA_S));
+                               msg_ui_thread_set_msg_data(cur_item, msg_list.msg_struct_info[row]);
+                               next_item = elm_genlist_nth_item_get(pListData->genlist, start_index+row);
+
+                               D_IMSG("msg_index : %d, row : %d", msg_index, row);
+
+                               if (bSearchList == true) {
+                                       if (next_item) {
+                                               search_item = elm_genlist_item_parent_get(next_item);
+                                       } else {
+                                               Elm_Object_Item *before_item = NULL;
+                                               if (start_index+row-1 > 0)
+                                                       before_item = elm_genlist_nth_item_get(pListData->genlist, start_index+row-1);
+                                               if (before_item)
+                                                       search_item = elm_genlist_item_parent_get(before_item);
+                                       }
+
+                                       if (!search_item) {
+                                               __msg_ui_thread_insert_search_title(pListData, THREAD_SEARCH_MSG, 1);
+                                               search_item = elm_genlist_nth_item_get(pListData->genlist, start_index);
+                                       }
+                               }
+
+                               if (next_item) {
+                                       new_item = elm_genlist_item_insert_before(pListData->genlist, &pListData->itc_msg, cur_item, search_item, next_item, ELM_GENLIST_ITEM_NONE, msg_ui_thread_msg_gl_sel, (void *)pListData);
+                               } else {
+                                       new_item = elm_genlist_item_append(pListData->genlist, &pListData->itc_msg, cur_item, search_item, ELM_GENLIST_ITEM_NONE, msg_ui_thread_msg_gl_sel, (void *)pListData);
+                               }
+
+                               pListData->item_cnt++;
+
+                               if (pListData->view_mode == THREAD_EDIT_VIEW) {
+                                       if (pListData->item_cnt == pListData->check_cnt)
+                                               pListData->sel_all_checked = true;
+                                       else {
+                                               pListData->sel_all_checked = false;
+                                               if (pListData->sel_all_check)
+                                                       elm_check_state_set(pListData->sel_all_check, EINA_FALSE);
+                                       }
+                               }
+
+                               if (search_item) {
+                                       PMSG_APP_THREAD_SEARCH_TITLE_S search_title = NULL;
+
+                                       search_title = elm_object_item_data_get(search_item);
+                                       search_title->subitem_cnt++;
+                                       elm_genlist_item_update(search_title->title_it);
+                               }
+                               break;
+                       }
+               }
+               if (bSearchList == false)
+                       msg_release_list_struct(&msg_list);
+               if (new_item == NULL) {
+                       elm_genlist_item_update(elm_genlist_last_item_get(pListData->genlist));
+                       msg_ui_thread_set_title_status(pListData);
+               }
+
+               if (msg_id == pListData->sel_msg_id) {
+                       pListData->sel_gen_item = new_item;
+
+                       ugdata *composer_data = NULL;
+                       composer_data = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_MSG, pListData->sel_msg_id);
+                       if (composer_data)
+                               composer_data->sel_gen_item = new_item;
+               }
+
+               if (pListData->pPopup && pListData->pPopup->popup_type == THREAD_POPUP_CONTEXTUAL) {
+                       PMSG_APP_THREAD_POPUP_CONTEXTUAL pPopup = (PMSG_APP_THREAD_POPUP_CONTEXTUAL)pListData->pPopup;
+
+                       if (old_data == evas_object_data_get(pPopup->genlist, "item_data")) {
+                               if (new_item) {
+                                       PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S)elm_object_item_data_get(new_item);
+                                       evas_object_data_set(pPopup->genlist, "item_data", item_data);
+                               }
+                       }
+               }
+       } else {
+               if (bSearchList == false)
+                       msg_release_list_struct(&msg_list);
+
+               new_data = (PMSG_APP_THREAD_MSG_DATA_S)calloc(1, sizeof(MSG_APP_THREAD_MSG_DATA_S));
+               if (!new_data) {
+                       msg_release_struct(&msgInfo);
+                       msg_release_struct(&sendOpt);
+                       D_EMSG("new_data is NULL");
+                       return EINA_FALSE;
+               }
+
+               msg_ui_thread_set_msg_data(new_data, msgInfo);
+
+#ifdef BADGE_COUNT_ENABLE
+               if (new_data->is_read != old_data->is_read)
+                       msg_ui_thread_set_title_unread_cnt(pListData);
+#endif /* BADGE_COUNT_ENABLE */
+
+               new_data->is_check = old_data->is_check;
+
+               elm_object_item_data_set(gen_item, new_data);
+               elm_genlist_item_update(gen_item);
+               msg_ui_thread_set_title_status(pListData);
+
+               if (pListData->pPopup && pListData->pPopup->popup_type == THREAD_POPUP_CONTEXTUAL) {
+                       PMSG_APP_THREAD_POPUP_CONTEXTUAL pPopup = (PMSG_APP_THREAD_POPUP_CONTEXTUAL)pListData->pPopup;
+                       if (old_data == evas_object_data_get(pPopup->genlist, "item_data"))
+                               evas_object_data_set(pPopup->genlist, "item_data", new_data);
+               }
+
+               if (pListData->view_mode == THREAD_EDIT_VIEW) {
+                       if (eina_list_data_find(pListData->chk_list, old_data)) {
+                               pListData->chk_list = eina_list_remove(pListData->chk_list, old_data);
+                               pListData->chk_list = eina_list_append(pListData->chk_list, new_data);
+                       }
+               }
+
+               if (old_data->addr_info) {
+                       int i = 0;
+                       for (i = 0; i < old_data->addr_cnt; i++) {
+                               if (old_data->addr_info[i]) {
+                                       if (old_data->addr_info[i]->thumb_path)
+                                               free(old_data->addr_info[i]->thumb_path);
+                                       free(old_data->addr_info[i]);
+                               }
+                       }
+                       free(old_data->addr_info);
+                       old_data->addr_info = NULL;
+               }
+
+               if (old_data->msg_time) {
+                       free(old_data->msg_time);
+                       old_data->msg_time = NULL;
+               }
+               free(old_data);
+       }
+
+       msg_release_struct(&msgInfo);
+       msg_release_struct(&sendOpt);
+
+       if (pListData->sel_gen_item && pListData->sel_msg_id > 0) {
+               D_MSG("pListData->sel_gen_item : %p, pListData->sel_msg_id : %d", pListData->sel_gen_item, pListData->sel_msg_id);
+               msg_ui_thread_select_item_by_msg_id(pListData, msg_id);
+       }
+
+       D_LEAVE;
+       return EINA_TRUE;
+}
+
+void msg_ui_thread_list_msg_item_delete(PMSG_THREAD_LIST_DATA pListData, msg_message_id_t msg_id)
+{
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       PMSG_APP_THREAD_MSG_DATA_S item_data = NULL;
+       Elm_Object_Item *gen_item = NULL;
+       Elm_Object_Item *del_item = NULL;
+
+       D_MSG("msg_id = [%d] ", msg_id);
+
+       gen_item = elm_genlist_first_item_get(pListData->genlist);
+       while (gen_item) {
+               if (pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH && elm_genlist_item_parent_get(gen_item) == NULL) {
+                       gen_item = elm_genlist_item_next_get(gen_item);
+                       continue;
+               }
+
+               /*120803 - can exist multiple message with the same address in search result list*/
+               item_data = (PMSG_APP_THREAD_MSG_DATA_S) elm_object_item_data_get(gen_item);
+               if (item_data) {
+                       if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                               gen_item = elm_genlist_item_next_get(gen_item);
+                               continue;
+                       }
+
+                       if (msg_id == item_data->msg_id) {
+                               del_item = gen_item;
+
+#ifdef BADGE_COUNT_ENABLE
+                               if (item_data->is_read == false)
+                                       msg_ui_thread_set_title_unread_cnt(pListData);
+#endif /* BADGE_COUNT_ENABLE */
+                       }
+               }
+               gen_item = elm_genlist_item_next_get(gen_item);
+
+               if (del_item) {
+                       if (pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH) {
+                               Elm_Object_Item *it_search = NULL;
+                               PMSG_APP_THREAD_SEARCH_TITLE_S search_title = NULL;
+
+                               it_search = elm_genlist_item_parent_get(del_item);
+                               if (it_search) {
+                                       search_title = elm_object_item_data_get(it_search);
+                                       if (search_title) {
+                                               search_title->subitem_cnt--;
+                                               if (search_title->subitem_cnt == 0)
+                                                       elm_object_item_del((Elm_Object_Item *)it_search);
+                                               else
+                                                       elm_genlist_item_update(search_title->title_it);
+                                       }
+                               }
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+                               if (pListData->adv_search_ly)
+                                       msg_ui_thread_remove_search_bubble_by_msgid(pListData, msg_id);
+#endif
+                       }
+
+                       if (pListData->sel_gen_item == del_item) {
+                               pListData->sel_gen_item = NULL;
+                               pListData->sel_msg_id = 0;
+                               pListData->sel_thread_id = 0;
+                       }
+
+                       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+                               if (item_data && item_data->is_check == EINA_TRUE) {
+                                       pListData->check_cnt--;
+                                       pListData->chk_list = eina_list_remove(pListData->chk_list, item_data);
+                               }
+                       }
+
+                       if (elm_genlist_item_selected_get(del_item))
+                               elm_genlist_item_selected_set(del_item, false);
+                       elm_object_item_del(del_item);
+                       pListData->item_cnt--;
+                       del_item = NULL;
+                       elm_genlist_item_update(elm_genlist_last_item_get(pListData->genlist));
+                       msg_ui_thread_set_title_status(pListData);
+               }
+       }
+
+       if (pListData->search_mode == THREAD_SEARCH_ON) {
+               char *search_str = NULL;
+               Evas_Object *entry = NULL;
+
+               if (pListData->search_gl) {
+                       search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+               }
+
+               if (search_str && strlen(search_str) > 0) {
+                       msg_struct_t listCond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+
+                       switch (pListData->list_type) {
+                               case THREAD_NORMAL_LIST_TYPE:
+                                       msg_set_int_value(listCond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_ALLBOX_ID);
+                                       msg_set_int_value(listCond, MSG_LIST_CONDITION_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+                                       break;
+                               default:
+                                       D_EMSG("[WARNING] invalid view mode");
+                                       msg_release_struct(&listCond);
+                       }
+
+                       if (pListData->search_msg_list.nCount > 0) {
+                               pListData->search_msg_cnt = 0;
+                               msg_release_list_struct(&pListData->search_msg_list);
+                       }
+                       msg_set_str_value(listCond, MSG_LIST_CONDITION_TEXT_VALUE_STR, search_str, strlen(search_str));
+                       if (pListData->list_type != THREAD_NORMAL_LIST_TYPE)
+                               msg_set_str_value(listCond, MSG_LIST_CONDITION_ADDRESS_VALUE_STR, search_str, strlen(search_str));
+
+                       msg_get_message_list2(msg_ui_thread_get_data_handle(), listCond, &pListData->search_msg_list);
+                       pListData->search_msg_cnt = pListData->search_msg_list.nCount;
+                       msg_release_struct(&listCond);
+               }
+
+               if (search_str) {
+                       free(search_str);
+                       search_str = NULL;
+               }
+       }
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+               if (pListData->item_cnt == pListData->check_cnt)
+                       pListData->sel_all_checked = true;
+               else {
+                       pListData->sel_all_checked = false;
+                       if (pListData->sel_all_check)
+                               elm_check_state_set(pListData->sel_all_check, EINA_FALSE);
+               }
+       }
+
+       if (pListData->item_cnt <= 0) {
+               /* show non cotent */
+               PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+               D_MSG_RETM_IF(!pData, "pData is NULL");
+               Evas_Object *swl_ly = NULL;
+
+               if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                       swl_ly = elm_object_part_content_get(pListData->content_ly, "thread_list");
+               } else {
+                       swl_ly = elm_object_part_content_get(pListData->content_ly, "search_list");
+               }
+
+               if (!pListData->noc_ly) {
+                       pListData->noc_ly = msg_ui_thread_create_nocontent_layout(pData->navi_frame, pListData->search_mode);
+               } else {
+                       msg_ui_thread_create_nocontent_layout_change(pListData->noc_ly, pListData->search_mode);
+               }
+
+               if (swl_ly != pListData->noc_ly) {
+                       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                               elm_object_part_content_unset(pListData->content_ly, "thread_list");
+                               evas_object_hide(swl_ly);
+                               elm_object_part_content_set(pListData->content_ly, "thread_list", pListData->noc_ly);
+                       } else {
+                               elm_object_part_content_unset(pListData->content_ly, "search_list");
+                               evas_object_hide(swl_ly);
+                               if (pListData->noc_ly) {
+                                       elm_object_part_content_set(pListData->content_ly, "search_list", pListData->noc_ly);
+                               }
+                       }
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_thread_search_job_cb(void *data, Ecore_Thread *th)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_SEARCH_DATA pSearchData = (PMSG_SEARCH_DATA) data;
+
+       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       msg_error_t err = MSG_SUCCESS;
+       msg_handle_t msgHandle;
+
+       D_SEC_MSG("search_str[%s], search_type[%d]", pSearchData->search_str, pSearchData->search_type);
+
+       if (msg_ui_thread_check_ecore_thread_cancel_sign(th, pSearchData->search_str)) {
+               D_EMSG("search request is cancelled.");
+               return;
+       }
+
+       /* reset item counts */
+       pListData->item_cnt = 0;
+       pListData->search_thread_cnt = 0;
+       pListData->search_msg_cnt = 0;
+
+       /* search thread list */
+       if (pSearchData->list_type == THREAD_NORMAL_LIST_TYPE && pSearchData->search_type != THREAD_SEARCH_MSG) {
+               D_MSG("search conversation list");
+               PMSG_SEARCH_LIST_DATA p_conv_list = (PMSG_SEARCH_LIST_DATA)malloc(sizeof(MSG_SEARCH_LIST_DATA));
+               if (p_conv_list) {
+                       memset(p_conv_list, 0, sizeof(MSG_SEARCH_LIST_DATA));
+                       p_conv_list->search_type =  THREAD_SEARCH_CONV;
+                       strncpy(p_conv_list->search_str, pSearchData->search_str, sizeof(p_conv_list->search_str) - 1);
+/* As search operation is performed in new thread same database handle can't be used for databse operation as msg-service will check thread id and
+msg handle to get the handle if it is different they will allocate memory for new handle which create memory leak. Hence if msg db operation is used in
+separate thread we need to open a new database handle and close it when the operation is completed  */
+                       err = msg_open_msg_handle(&msgHandle);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_open_msg_handle failed, Error=[%d]\n", err);
+                               free(p_conv_list);
+                               return;
+                       }
+                       err = msg_search_message_for_thread_view(msgHandle, p_conv_list->search_str, &p_conv_list->search_list);
+                       D_SEC_MSG("Thread Search result [ count = %d ] ", p_conv_list->search_list.nCount);
+
+                       if (err != MSG_SUCCESS)
+                               D_EMSG("msg_search_message_for_thread_view error (%d)", err);
+
+                       err = msg_close_msg_handle(&msgHandle);
+                       if (err != MSG_SUCCESS)
+                               D_EMSG("msg_close_msg_handle error, ret = [%d]", err);
+
+                       ecore_thread_feedback(th, p_conv_list);
+                       p_conv_list = NULL;
+               } else {
+                       D_EMSG("malloc failed.");
+               }
+       }
+
+       if (msg_ui_thread_check_ecore_thread_cancel_sign(th, pSearchData->search_str)) {
+               D_EMSG("search request is cancelled.");
+               return;
+       }
+
+       /* search msg list */
+       if (pSearchData->search_type != THREAD_SEARCH_CONV) {
+               D_MSG("search msg list");
+               msg_struct_t listCond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+
+               switch (pSearchData->list_type) {
+                       case THREAD_NORMAL_LIST_TYPE:
+                               msg_set_int_value(listCond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_ALLBOX_ID);
+                               msg_set_int_value(listCond, MSG_LIST_CONDITION_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+                               break;
+                       default:
+                               D_EMSG("[WARNING] invalid view mode");
+                               msg_release_struct(&listCond);
+                               return;
+               }
+
+               PMSG_SEARCH_LIST_DATA p_msg_list = (PMSG_SEARCH_LIST_DATA)malloc(sizeof(MSG_SEARCH_LIST_DATA));
+               if (p_msg_list) {
+                       memset(p_msg_list, 0, sizeof(MSG_SEARCH_LIST_DATA));
+                       p_msg_list->search_type = THREAD_SEARCH_MSG;
+                       strncpy(p_msg_list->search_str, pSearchData->search_str, sizeof(p_msg_list->search_str) - 1);
+
+                       msg_set_str_value(listCond, MSG_LIST_CONDITION_TEXT_VALUE_STR, pSearchData->search_str, strlen(pSearchData->search_str));
+                       if (pSearchData->list_type != THREAD_NORMAL_LIST_TYPE)
+                               msg_set_str_value(listCond, MSG_LIST_CONDITION_ADDRESS_VALUE_STR, pSearchData->search_str, strlen(pSearchData->search_str));
+/* As search operation is performed in new thread same database handle can't be used for databse operation as msg-service will check thread id and
+msg handle to get the handle if it is different they will allocate memory for new handle which create memory leak. Hence if msg db operation is used in
+separate thread we need to open a new database handle and close it when the operation is completed  */
+                       err = msg_open_msg_handle(&msgHandle);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_open_msg_handle failed, Error=[%d]\n", err);
+                               free(p_msg_list);
+                               msg_release_struct(&listCond);
+                               return;
+                       }
+                       err =  msg_get_message_list2(msgHandle, listCond, &p_msg_list->search_list);
+                       D_SEC_MSG("Msg Search result [ count = %d ] ", p_msg_list->search_list.nCount);
+
+                       if (err != MSG_SUCCESS && err != MSG_ERR_DB_NORECORD)
+                               D_EMSG("msg_get_message_list2 error (%d)", err);
+
+                       err = msg_close_msg_handle(&msgHandle);
+                       if (err != MSG_SUCCESS)
+                               D_EMSG("msg_close_msg_handle error, ret = [%d]", err);
+
+                       ecore_thread_feedback(th, p_msg_list);
+                       p_msg_list = NULL;
+               }
+               msg_release_struct(&listCond);
+       }
+       D_LEAVE;
+}
+
+static void __msg_ui_thread_search_job_end_cb(void *data, Ecore_Thread *th)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+       PMSG_SEARCH_DATA pSearchData = (PMSG_SEARCH_DATA)data;
+
+       D_SEC_MSG("search_str[%s], search_type[%d]", pSearchData->search_str, pSearchData->search_type);
+
+       if (pListData && pData && pData->th_search ==  th) {
+               pData->th_search = NULL;
+               if (pListData->search_state != THREAD_SEARCH_STATE_NONE)
+                       pListData->search_state = THREAD_SEARCH_STATE_NONE;
+       }
+
+       msg_ui_thread_delete_ecore_thread_cancel_sign(th, pSearchData->search_str);
+
+       free(pSearchData);
+}
+
+static void __msg_ui_thread_search_job_cancel_cb(void *data, Ecore_Thread *th)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+       PMSG_SEARCH_DATA pSearchData = (PMSG_SEARCH_DATA)data;
+
+       D_SEC_MSG("%x, search_str[%s], search_type[%d]", th, pSearchData->search_str, pSearchData->search_type);
+
+       if (pListData && pData && pData->th_search ==  th) {
+               pData->th_search = NULL;
+               if (pListData->search_state != THREAD_SEARCH_STATE_NONE)
+                       pListData->search_state = THREAD_SEARCH_STATE_NONE;
+       }
+
+       msg_ui_thread_delete_ecore_thread_cancel_sign(th, pSearchData->search_str);
+       free(pSearchData);
+}
+
+
+static void __msg_ui_thread_search_job_feedback_cb(void *data, Ecore_Thread *th, void *msg_data)
+{
+       D_MSG_RETM_IF(!msg_data, "msg_data is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+
+       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+       D_MSG_RETM_IF(pListData == NULL, "pListData is NULL");
+
+       PMSG_SEARCH_LIST_DATA pSearchResult = (PMSG_SEARCH_LIST_DATA)msg_data;
+       bool bClearGenlist = false;
+       bool bWaitMsgList = false;
+
+       int load_cnt = 0;
+       int row = 0;
+
+       if (pData == NULL) {
+               goto ignore_exit;
+       }
+
+       D_SEC_MSG("search_str[%s] result_type[%d] - cnt(%d)", pSearchResult->search_str, pSearchResult->search_type, pSearchResult->search_list.nCount);
+
+       if (pData->th_search != th) {
+               D_EMSG("th_search is not matched.");
+               goto ignore_exit;
+       }
+       if (pListData->search_mode != THREAD_SEARCH_ON || pListData->search_state != THREAD_SEARCH_STATE_WAIT) {
+               D_EMSG("search_mode(%d), search_state(%d)dump msg_data", pListData->search_mode, pListData->search_state);
+               goto ignore_exit;
+       }
+
+       if (pListData->search_str == NULL) {
+               D_EMSG("pListData->search_str is NULL");
+               goto ignore_exit;
+       } else if (strcmp(pListData->search_str, pSearchResult->search_str) != 0) {
+               D_EMSG("pListData->search_str[%s] != pSearchData->search_str[%s]", pListData->search_str, pSearchResult->search_str);
+               goto ignore_exit;
+       }
+
+
+       if (pSearchResult->search_type == THREAD_SEARCH_CONV) {
+               if ((pSearchResult->search_list.nCount > 0) || (pListData->search_type == THREAD_SEARCH_CONV))
+                       bClearGenlist = true;
+               if (pListData->search_type != THREAD_SEARCH_CONV)
+                       bWaitMsgList = true;
+       } else if (pSearchResult->search_type == THREAD_SEARCH_MSG) {
+               if ((pListData->search_type != THREAD_SEARCH_MSG) && (pListData->search_thread_cnt == 0))
+                       bClearGenlist = true;
+       }
+
+       if (bClearGenlist == true) {
+               elm_genlist_clear(pListData->genlist);
+               elm_genlist_mode_set(pListData->genlist, ELM_LIST_COMPRESS);
+               pListData->item_cnt = 0;
+               pListData->app_data_type = THREAD_LIST_APP_DATA_SEARCH;
+       }
+
+       /* process thread search list */
+       if (pSearchResult->search_type == THREAD_SEARCH_CONV) {
+
+               if (pListData->search_conv_list.nCount > 0) {
+                       pListData->search_thread_cnt = 0;
+                       msg_release_list_struct(&pListData->search_conv_list);
+               }
+
+               if (pSearchResult->search_list.nCount > 0) {
+                       pListData->search_thread_cnt = pSearchResult->search_list.nCount;
+                       pListData->search_conv_list = pSearchResult->search_list;
+
+                       if (pListData->list_type == THREAD_NORMAL_LIST_TYPE && pListData->search_type != THREAD_SEARCH_MSG) {
+                               if (pListData->search_thread_cnt > MSG_THREAD_LIST_PARTIAL_LOADING_CNT) {
+                                       pListData->loaded_cnt = MSG_THREAD_LIST_PARTIAL_LOADING_CNT;
+                                       pListData->item_cnt = pListData->loaded_cnt;
+                                       load_cnt = pListData->loaded_cnt;
+
+                                       if (pListData->load_idler == NULL)
+                                               pListData->load_idler = ecore_idler_add(__msg_ui_thread_list_load_remain_item, pListData);
+                               } else {
+                                       pListData->item_cnt = pListData->search_thread_cnt;
+                                       load_cnt = pListData->item_cnt;
+                               }
+
+                               PMSG_APP_THREAD_CONV_DATA_S item_data = NULL;
+
+                               __msg_ui_thread_genlist_style_set(pListData, THREAD_LIST_APP_DATA_CONV);
+                               for (row = 0; row < load_cnt; row++) {
+                                       item_data = (PMSG_APP_THREAD_CONV_DATA_S)calloc(1, sizeof(MSG_APP_THREAD_CONV_DATA_S));
+                                       if (item_data) {
+                                               msg_ui_thread_set_conv_data(pListData, item_data, pListData->search_conv_list.msg_struct_info[row]);
+                                               elm_genlist_item_append(pListData->genlist, msg_ui_thread_conv_item_get_itc_type(pListData, item_data), item_data, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_thread_gl_sel, pListData);
+                                       }
+                               }
+                       }
+               }
+
+               if (bWaitMsgList == false)
+                       pListData->search_state = THREAD_SEARCH_STATE_NONE;
+       }
+
+       /* process message search list */
+       if (pSearchResult->search_type == THREAD_SEARCH_MSG) {
+
+               if (pListData->search_msg_list.nCount > 0) {
+                       pListData->search_msg_cnt = 0;
+                       msg_release_list_struct(&pListData->search_msg_list);
+               }
+
+               if (pSearchResult->search_list.nCount > 0) {
+                       pListData->search_msg_cnt = pSearchResult->search_list.nCount;
+                       pListData->search_msg_list = pSearchResult->search_list;
+
+                       if (pListData->search_thread_cnt < MSG_THREAD_LIST_PARTIAL_LOADING_CNT) {
+                               if (pListData->search_thread_cnt + pListData->search_msg_cnt > MSG_THREAD_LIST_PARTIAL_LOADING_CNT) {
+                                       pListData->loaded_cnt = MSG_THREAD_LIST_PARTIAL_LOADING_CNT;
+                                       pListData->item_cnt = pListData->loaded_cnt;
+                                       load_cnt = pListData->loaded_cnt;
+
+                                       if (pListData->load_idler == NULL)
+                                               pListData->load_idler = ecore_idler_add(__msg_ui_thread_list_load_remain_item, pListData);
+                               } else {
+                                       pListData->item_cnt = pListData->search_thread_cnt + pListData->search_msg_cnt;
+                                       load_cnt = pListData->item_cnt;
+                               }
+
+                               PMSG_APP_THREAD_MSG_DATA_S item_data = NULL;
+
+                               __msg_ui_thread_genlist_style_set(pListData, THREAD_LIST_APP_DATA_MSG);
+                               int row = 0;
+
+                               for (row = 0; row < load_cnt - pListData->search_thread_cnt; row++) {
+                                       item_data = (PMSG_APP_THREAD_MSG_DATA_S)calloc(1, sizeof(MSG_APP_THREAD_MSG_DATA_S));
+                                       if (item_data) {
+                                               msg_ui_thread_set_msg_data(item_data, pListData->search_msg_list.msg_struct_info[row]);
+                                               elm_genlist_item_append(pListData->genlist, &pListData->itc_msg, item_data, NULL, ELM_GENLIST_ITEM_NONE, msg_ui_thread_msg_gl_sel, pListData);
+                                       }
+                               }
+                       }
+               }
+               pListData->search_state = THREAD_SEARCH_STATE_NONE;
+       }
+
+       Evas_Object *swl_ly = elm_object_part_content_get(pListData->content_ly, "search_list");
+
+       if ((pListData->item_cnt == 0) && (pListData->search_state == THREAD_SEARCH_STATE_NONE)) {
+               D_MSG("SEARCH RESULT - show no_contents screen");
+
+               if (!pListData->noc_ly) {
+                       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+                       D_MSG_RETM_IF(!pData, "pData is NULL");
+                       pListData->noc_ly = msg_ui_thread_create_nocontent_layout(pData->navi_frame, pListData->search_mode);
+               } else {
+                       msg_ui_thread_create_nocontent_layout_change(pListData->noc_ly, pListData->search_mode);
+               }
+
+               if (swl_ly != pListData->noc_ly) {
+                       elm_object_part_content_unset(pListData->content_ly, "search_list");
+                       evas_object_hide(swl_ly);
+                       if (pListData->noc_ly) {
+                               elm_object_part_content_set(pListData->content_ly, "search_list", pListData->noc_ly);
+                       }
+               }
+       } else {
+               D_MSG("SEARCH RESULT - show search result(%d) list", pListData->item_cnt);
+               if (swl_ly != pListData->genlist) {
+                       elm_object_part_content_unset(pListData->content_ly, "search_list");
+                       evas_object_hide(swl_ly);
+                       if (pListData->genlist) {
+                               elm_object_part_content_set(pListData->content_ly, "search_list", pListData->genlist);
+                       }
+               }
+       }
+
+       free(pSearchResult);
+       return;
+
+ignore_exit:
+       if (pSearchResult->search_list.nCount > 0)
+               msg_release_list_struct(&pSearchResult->search_list);
+       if (pListData->search_conv_list.nCount > 0) {
+               pListData->search_thread_cnt = 0;
+               msg_release_list_struct(&pListData->search_conv_list);
+       }
+       if (pListData->search_msg_list.nCount > 0) {
+               pListData->search_msg_cnt = 0;
+               msg_release_list_struct(&pListData->search_msg_list);
+       }
+       free(pSearchResult);
+}
+
+void msg_ui_thread_search_job_cancel(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       pListData->search_state = THREAD_SEARCH_STATE_NONE;
+
+       msg_ui_thread_cancel_ecore_thread(pData->th_search, pListData->search_str);
+}
+
+Eina_Bool msg_ui_thread_search_job_request(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!pListData, EINA_FALSE, "pListData is NULL");
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, EINA_FALSE, "pData is NULL");
+
+       Evas_Object *entry = NULL;
+       char *search_str = NULL;
+
+       if (pListData->search_gl) {
+               search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+       }
+
+       if (pListData->search_timer) {
+               ecore_timer_del(pListData->search_timer);
+               pListData->search_timer = NULL;
+       }
+
+       if (!search_str || strlen(search_str) == 0) {
+               D_MSG("search_str is null");
+               Evas_Object *swl = elm_object_part_content_unset(pListData->content_ly, "search_list");
+               evas_object_hide(swl);
+               if (pListData->list_type == THREAD_NORMAL_LIST_TYPE)
+                       msg_ui_thread_list_load(pListData, FALSE);
+               else
+                       msg_ui_thread_msg_list_load(pListData, pListData->list_type);
+
+               if (search_str)
+                       free(search_str);
+
+               return EINA_TRUE;
+       }
+
+       D_SEC_MSG("Search string word = [%s] ", search_str);
+
+       if (pListData->search_str) {
+               if (strcmp(pListData->search_str, search_str) == 0 && (pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH)) {
+                       D_MSG("request same word.");
+                       if (search_str) {
+                               free(search_str);
+                               search_str = NULL;
+                       }
+
+                       return EINA_TRUE;
+               }
+
+               if (pData->th_search && pListData->search_state == THREAD_SEARCH_STATE_WAIT)
+                       msg_ui_thread_cancel_ecore_thread(pData->th_search, pListData->search_str);
+
+               free(pListData->search_str);
+               pListData->search_str = NULL;
+       }
+       pListData->search_str = (char *)calloc(1, (sizeof(char) *strlen(search_str)) + 1);
+       if (pListData->search_str)
+               strncpy(pListData->search_str, search_str, sizeof(char) *strlen(search_str));
+
+       if (search_str) {
+               free(search_str);
+               search_str = NULL;
+       }
+
+       PMSG_SEARCH_DATA pSearchData = (PMSG_SEARCH_DATA)malloc(sizeof(MSG_SEARCH_DATA));
+       if (pSearchData) {
+               memset(pSearchData, 0, sizeof(MSG_SEARCH_DATA));
+               pSearchData->list_type = pListData->list_type;
+               pSearchData->search_type = pListData->search_type;
+               strncpy(pSearchData->search_str, pListData->search_str, sizeof(pSearchData->search_str) - 1);
+
+               /* request to run a search job thread */
+               msg_ui_thread_cancel_ecore_thread(pData->th_search, NULL);
+
+               pData->th_search = ecore_thread_feedback_run(__msg_ui_thread_search_job_cb,
+                                                                       __msg_ui_thread_search_job_feedback_cb,
+                                                                       __msg_ui_thread_search_job_end_cb,
+                                                                       __msg_ui_thread_search_job_cancel_cb,
+                                                                       pSearchData,
+                                                                       EINA_FALSE);
+               if (pData->th_search) {
+                       D_MSG("run search_job_thread");
+                       pListData->search_state = THREAD_SEARCH_STATE_WAIT;
+               } else {
+                       D_EMSG("failed to run search_job_thread");
+                       free(pSearchData);
+                       return EINA_FALSE;
+               }
+       }
+
+       D_LEAVE;
+       return EINA_TRUE;
+}
+
+Eina_Bool msg_ui_thread_search_list_load(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, EINA_FALSE, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       Evas_Object *entry = NULL;
+       char *search_str = NULL;
+       msg_struct_t listCond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+       msg_error_t err = MSG_SUCCESS;
+       int load_cnt = 0;
+       int row = 0;
+       Elm_Object_Item *sel_gen_item = NULL;
+       int sel_thread_id = 0;
+       int sel_msg_id = 0;
+
+       sel_gen_item = pListData->sel_gen_item;
+       sel_thread_id = pListData->sel_thread_id;
+       sel_msg_id = pListData->sel_msg_id;
+
+       if (pListData->search_gl) {
+               search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+       }
+
+       if (pListData->search_timer) {
+               ecore_timer_del(pListData->search_timer);
+               pListData->search_timer = NULL;
+       }
+
+       if (!search_str || strlen(search_str) == 0) {
+               D_MSG("empty search_str");
+               if (pListData->list_type == THREAD_NORMAL_LIST_TYPE)
+                       msg_ui_thread_list_load(pListData, FALSE);
+               else
+                       msg_ui_thread_msg_list_load(pListData, pListData->list_type);
+
+               msg_release_struct(&listCond);
+               if (search_str)
+                       free(search_str);
+
+               return EINA_FALSE;
+       }
+
+       D_SEC_MSG("Search string word = [%s] ", search_str);
+
+       if (pListData->search_str) {
+               free(pListData->search_str);
+               pListData->search_str = NULL;
+       }
+       pListData->search_str = (char *)calloc(1, (sizeof(char) *strlen(search_str)) + 1);
+
+       if (pListData->search_str)
+               strncpy(pListData->search_str, search_str, sizeof(char) *strlen(search_str));
+
+       /** hide control bar */
+       elm_genlist_clear(pListData->genlist);
+       elm_genlist_mode_set(pListData->genlist, ELM_LIST_COMPRESS);
+       pListData->item_cnt = 0;
+       pListData->app_data_type = THREAD_LIST_APP_DATA_SEARCH;
+
+       if (pListData->search_conv_list.nCount > 0) {
+               pListData->search_thread_cnt = 0;
+               msg_release_list_struct(&pListData->search_conv_list);
+       }
+
+       if (pListData->search_msg_list.nCount > 0) {
+               pListData->search_msg_cnt = 0;
+               msg_release_list_struct(&pListData->search_msg_list);
+       }
+
+       if (pListData->list_type == THREAD_NORMAL_LIST_TYPE && pListData->search_type != THREAD_SEARCH_MSG) {
+               err = msg_search_message_for_thread_view(msg_ui_thread_get_data_handle(), search_str, &pListData->search_conv_list);
+               D_SEC_MSG("Search result [ count = %d ] ", pListData->search_conv_list.nCount);
+
+               if (pListData->search_conv_list.nCount > 0 && err == MSG_SUCCESS) {
+                       pListData->search_thread_cnt = pListData->search_conv_list.nCount;
+                       if (pListData->search_thread_cnt > MSG_THREAD_LIST_PARTIAL_LOADING_CNT) {
+                               pListData->loaded_cnt = MSG_THREAD_LIST_PARTIAL_LOADING_CNT;
+                               pListData->item_cnt = pListData->loaded_cnt;
+                               load_cnt = pListData->loaded_cnt;
+
+                               if (pListData->load_idler == NULL)
+                                       pListData->load_idler = ecore_idler_add(__msg_ui_thread_list_load_remain_item, pListData);
+                       } else {
+                               pListData->item_cnt = pListData->search_thread_cnt;
+                               load_cnt = pListData->item_cnt;
+                       }
+
+                       PMSG_APP_THREAD_CONV_DATA_S item_data = NULL;
+                       PMSG_APP_THREAD_SEARCH_TITLE_S search_title = NULL;
+
+                       __msg_ui_thread_genlist_style_set(pListData, THREAD_LIST_APP_DATA_CONV);
+                       search_title = __msg_ui_thread_insert_search_title(pListData, THREAD_SEARCH_CONV, pListData->search_conv_list.nCount);
+
+                       for (row = 0; row < load_cnt; row++) {
+                               if (search_title) {
+                                       item_data = (PMSG_APP_THREAD_CONV_DATA_S)calloc(1, sizeof(MSG_APP_THREAD_CONV_DATA_S));
+                                       if (item_data) {
+                                               msg_ui_thread_set_conv_data(pListData, item_data, pListData->search_conv_list.msg_struct_info[row]);
+                                               elm_genlist_item_append(pListData->genlist, msg_ui_thread_conv_item_get_itc_type(pListData, item_data), item_data, search_title->title_it, ELM_GENLIST_ITEM_NONE, __msg_ui_thread_gl_sel, pListData);
+                                       }
+                               } else {
+                                       D_EMSG("item_data or search_title are NULL");
+                               }
+                       }
+               }
+       }
+
+       if (pListData->search_type != THREAD_SEARCH_CONV) {
+               switch (pListData->list_type) {
+                       case THREAD_NORMAL_LIST_TYPE:
+                               msg_set_int_value(listCond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_ALLBOX_ID);
+                               msg_set_int_value(listCond, MSG_LIST_CONDITION_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+                               break;
+                       default:
+                               D_EMSG("[WARNING] invalid view mode");
+                               msg_release_struct(&listCond);
+                               if (search_str) {
+                                       free(search_str);
+                                       search_str = NULL;
+                               }
+
+                               return EINA_FALSE;
+               }
+
+               msg_set_str_value(listCond, MSG_LIST_CONDITION_TEXT_VALUE_STR, search_str, strlen(search_str));
+               if (pListData->list_type != THREAD_NORMAL_LIST_TYPE)
+                       msg_set_str_value(listCond, MSG_LIST_CONDITION_ADDRESS_VALUE_STR, search_str, strlen(search_str));
+
+               err =  msg_get_message_list2(msg_ui_thread_get_data_handle(), listCond, &pListData->search_msg_list);
+
+               if (err != MSG_SUCCESS && err != MSG_ERR_DB_NORECORD) {
+                       D_EMSG("msg_get_message_list2() is failed = %d", err);
+                       msg_release_struct(&listCond);
+                       if (search_str) {
+                               free(search_str);
+                               search_str = NULL;
+                       }
+
+                       if (pListData->item_cnt == 0) {
+                               Evas_Object *swl_ly = elm_object_part_content_get(pListData->content_ly, "search_list");
+
+                               /* show non cotent */
+                               if (!pListData->noc_ly) {
+                                       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+                                       D_MSG_RETVM_IF(!pData, EINA_FALSE, "pData is NULL");
+                                       pListData->noc_ly = msg_ui_thread_create_nocontent_layout(pData->navi_frame, pListData->search_mode);
+                               } else {
+                                       msg_ui_thread_create_nocontent_layout_change(pListData->noc_ly, pListData->search_mode);
+                               }
+
+                               if (swl_ly != pListData->noc_ly) {
+                                       elm_object_part_content_unset(pListData->content_ly, "search_list");
+                                       evas_object_hide(swl_ly);
+                                       if (pListData->noc_ly) {
+                                               elm_object_part_content_set(pListData->content_ly, "search_list", pListData->noc_ly);
+                                       }
+                               }
+                       }
+                       return EINA_FALSE;
+               }
+
+               D_SEC_MSG("Search result [ count = %d ] ", pListData->search_msg_list.nCount);
+
+               if (pListData->search_msg_list.nCount > 0 && err == MSG_SUCCESS) {
+                       pListData->search_msg_cnt = pListData->search_msg_list.nCount;
+                       if (pListData->search_thread_cnt < MSG_THREAD_LIST_PARTIAL_LOADING_CNT) {
+                               if (pListData->search_thread_cnt + pListData->search_msg_cnt > MSG_THREAD_LIST_PARTIAL_LOADING_CNT) {
+                                       pListData->loaded_cnt = MSG_THREAD_LIST_PARTIAL_LOADING_CNT;
+                                       pListData->item_cnt = pListData->loaded_cnt;
+                                       load_cnt = pListData->loaded_cnt;
+
+                                       if (pListData->load_idler == NULL)
+                                               pListData->load_idler = ecore_idler_add(__msg_ui_thread_list_load_remain_item, pListData);
+                               } else {
+                                       pListData->item_cnt = pListData->search_thread_cnt + pListData->search_msg_cnt;
+                                       load_cnt = pListData->item_cnt;
+                               }
+
+                               PMSG_APP_THREAD_MSG_DATA_S item_data = NULL;
+                               PMSG_APP_THREAD_SEARCH_TITLE_S search_title = NULL;
+
+                               __msg_ui_thread_genlist_style_set(pListData, THREAD_LIST_APP_DATA_MSG);
+                               int row = 0;
+
+                               for (row = 0; row < load_cnt - pListData->search_thread_cnt; row++) {
+                                       if (search_title == NULL)
+                                               search_title = __msg_ui_thread_insert_search_title(pListData, THREAD_SEARCH_MSG, pListData->search_msg_list.nCount);
+
+                                       item_data = (PMSG_APP_THREAD_MSG_DATA_S)calloc(1, sizeof(MSG_APP_THREAD_MSG_DATA_S));
+                                       msg_ui_thread_set_msg_data(item_data, pListData->search_msg_list.msg_struct_info[row]);
+
+                                       elm_genlist_item_append(pListData->genlist, &pListData->itc_msg, item_data, search_title->title_it, ELM_GENLIST_ITEM_NONE, msg_ui_thread_msg_gl_sel, pListData);
+                               }
+                       }
+               }
+       }
+
+       Evas_Object *swl_ly = elm_object_part_content_get(pListData->content_ly, "search_list");
+
+       if (pListData->item_cnt == 0) {
+               /* show non cotent */
+               if (!pListData->noc_ly) {
+                       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+                       if (!pData) {
+                               D_EMSG("pData is NULL");
+                               msg_release_struct(&listCond);
+                               if (search_str) {
+                                       free(search_str);
+                                       search_str = NULL;
+                               }
+
+                               return EINA_FALSE;
+                       }
+
+                       pListData->noc_ly = msg_ui_thread_create_nocontent_layout(pData->navi_frame, pListData->search_mode);
+               } else {
+                       msg_ui_thread_create_nocontent_layout_change(pListData->noc_ly, pListData->search_mode);
+               }
+
+               if (swl_ly != pListData->noc_ly) {
+                       elm_object_part_content_unset(pListData->content_ly, "search_list");
+                       evas_object_hide(swl_ly);
+                       if (pListData->noc_ly) {
+                               elm_object_part_content_set(pListData->content_ly, "search_list", pListData->noc_ly);
+                       }
+               }
+       } else {
+               if (swl_ly != pListData->genlist) {
+                       elm_object_part_content_unset(pListData->content_ly, "search_list");
+                       evas_object_hide(swl_ly);
+                       if (pListData->genlist) {
+                               elm_object_part_content_set(pListData->content_ly, "search_list", pListData->genlist);
+                       }
+               }
+       }
+
+       msg_release_struct(&listCond);
+       if (search_str) {
+               free(search_str);
+               search_str = NULL;
+       }
+
+       if (sel_gen_item != NULL) {
+               if (sel_thread_id > 0) {
+                       Elm_Object_Item *new_item = NULL;
+                       PMSG_APP_THREAD_CONV_DATA_S cur_sel_thread = NULL;
+
+                       new_item = elm_genlist_first_item_get(pListData->genlist);
+
+                       while (new_item) {
+                               if (elm_genlist_item_parent_get(new_item) == NULL) {
+                                       new_item = elm_genlist_item_next_get(new_item);
+                                       continue;
+                               }
+
+                               cur_sel_thread = elm_object_item_data_get(new_item);
+                               if (cur_sel_thread && cur_sel_thread->thread_id == sel_thread_id)
+                                       break;
+
+                               new_item = elm_genlist_item_next_get(new_item);
+                       }
+
+                       ugdata *composer_data = NULL;
+                       composer_data = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_CONV, sel_thread_id);
+
+                       if (new_item) {
+                               pListData->sel_gen_item = new_item;
+                               pListData->sel_thread_id = sel_thread_id;
+                               if (composer_data)
+                                       composer_data->sel_gen_item = new_item;
+                       } else {
+                               pListData->sel_gen_item = NULL;
+                               pListData->sel_thread_id = 0;
+                               if (composer_data)
+                                       msg_ui_destroy_composer_ug(composer_data->ug_h, false);
+                       }
+               } else if (sel_msg_id > 0) {
+                       Elm_Object_Item *new_item = NULL;
+                       PMSG_APP_THREAD_MSG_DATA_S cur_sel_msg = NULL;
+
+                       new_item = elm_genlist_first_item_get(pListData->genlist);
+
+                       while (new_item) {
+                               if (elm_genlist_item_parent_get(new_item) == NULL) {
+                                       new_item = elm_genlist_item_next_get(new_item);
+                                       continue;
+                               }
+
+                               cur_sel_msg = elm_object_item_data_get(new_item);
+                               if (cur_sel_msg) {
+                                       if (cur_sel_msg->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                                               new_item = elm_genlist_item_next_get(new_item);
+                                               continue;
+                                       }
+
+                                       if (cur_sel_msg->msg_id == sel_msg_id)
+                                               break;
+                               }
+                               new_item = elm_genlist_item_next_get(new_item);
+                       }
+
+                       ugdata *composer_data = NULL;
+                       composer_data = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_MSG, sel_msg_id);
+
+                       if (new_item) {
+                               pListData->sel_gen_item = new_item;
+                               pListData->sel_msg_id = sel_msg_id;
+                               if (composer_data)
+                                       composer_data->sel_gen_item = new_item;
+                       } else {
+                               pListData->sel_gen_item = NULL;
+                               pListData->sel_msg_id = 0;
+                               if (composer_data)
+                                       msg_ui_destroy_composer_ug(composer_data->ug_h, false);
+                       }
+               }
+       }
+
+       D_LEAVE;
+       return EINA_TRUE;
+}
+
+void msg_ui_thread_search_list_redraw(PMSG_THREAD_LIST_DATA pListData, bool bTypeChanged)
+{
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       char *search_str = NULL;
+
+       if (pListData->search_str) {
+               if (pListData->search_gl) {
+                       search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+               }
+               if (search_str && strlen(search_str) > 0) {
+                       if (strcmp(search_str, pListData->search_str) != 0 || bTypeChanged == true)
+                               msg_ui_thread_search_list_load(pListData);
+               } else {
+                       if (pListData->search_str) {
+                               free(pListData->search_str);
+                               pListData->search_str = NULL;
+                       }
+
+                       if (pListData->search_msg_list.nCount > 0) {
+                               msg_release_list_struct(&pListData->search_msg_list);
+                       }
+
+                       if (pListData->search_conv_list.nCount > 0) {
+                               msg_release_list_struct(&pListData->search_conv_list);
+                       }
+
+                       pListData->search_thread_cnt = 0;
+                       pListData->search_msg_cnt = 0;
+
+                       if (pListData->list_type == THREAD_NORMAL_LIST_TYPE)
+                               msg_ui_thread_list_load(pListData, FALSE);
+                       else
+                               msg_ui_thread_msg_list_load(pListData, pListData->list_type);
+               }
+
+               if (search_str)
+                       free(search_str);
+       } else {
+               msg_ui_thread_search_list_load(pListData);
+       }
+}
+
+static PMSG_APP_THREAD_SEARCH_TITLE_S __msg_ui_thread_insert_search_title(void *data, ThreadSearchType nType, int nCount)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, NULL, "data is NULL");
+
+       PMSG_APP_THREAD_SEARCH_TITLE_S searchtitle_data = NULL;
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       searchtitle_data = (PMSG_APP_THREAD_SEARCH_TITLE_S) calloc(1, sizeof(MSG_APP_THREAD_SEARCH_TITLE_S));
+
+       if (searchtitle_data) {
+               searchtitle_data->nType = nType;
+               searchtitle_data->subitem_cnt = nCount;
+
+               searchtitle_data->title_it = elm_genlist_item_append(pListData->genlist, msg_ui_thread_get_itc_type(THREAD_ITC_SEARCH_TITLE), searchtitle_data, NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL);
+               elm_genlist_item_select_mode_set(searchtitle_data->title_it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       }
+
+       D_LEAVE;
+       return searchtitle_data;
+}
+
+static Eina_Bool __msg_ui_thread_db_wait_timer_cb(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, EINA_FALSE, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       pListData->db_wait_timer = NULL;
+
+       __msg_ui_thread_list_load_remain_item(pListData);
+
+       D_LEAVE;
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static Eina_Bool __msg_ui_thread_list_load_remain_item(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, EINA_FALSE, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, EINA_FALSE, "pData is NULL");
+       int row = 0;
+       int start = 0;
+
+       if (pListData->search_mode == THREAD_SEARCH_ON) {
+               if (pListData->search_thread_cnt > MSG_THREAD_LIST_PARTIAL_LOADING_CNT) {
+                       PMSG_APP_THREAD_CONV_DATA_S item_data = NULL;
+                       PMSG_APP_THREAD_SEARCH_TITLE_S search_title = NULL;
+                       Elm_Object_Item *gen_item = NULL;
+
+                       start = pListData->loaded_cnt;
+                       D_IMSG("pListData->search_thread_cnt : %d, start : %d", pListData->search_thread_cnt, start);
+
+                       gen_item = elm_genlist_first_item_get(pListData->genlist);
+                       search_title = elm_object_item_data_get(gen_item);
+
+                       __msg_ui_thread_genlist_style_set(pListData, THREAD_LIST_APP_DATA_CONV);
+                       if (!search_title || search_title->nType != THREAD_SEARCH_CONV)
+                               search_title = __msg_ui_thread_insert_search_title(pListData, THREAD_SEARCH_CONV, pListData->search_conv_list.nCount);
+
+                       if (search_title) {
+                               for (row = start; row < pListData->search_thread_cnt; row++) {
+                                       item_data = (PMSG_APP_THREAD_CONV_DATA_S)calloc(1, sizeof(MSG_APP_THREAD_CONV_DATA_S));
+
+                                       if (item_data) {
+                                               msg_ui_thread_set_conv_data(pListData, item_data, pListData->search_conv_list.msg_struct_info[row]);
+                                               elm_genlist_item_append(pListData->genlist, msg_ui_thread_conv_item_get_itc_type(pListData, item_data), item_data, search_title->title_it, ELM_GENLIST_ITEM_NONE, __msg_ui_thread_gl_sel, pListData);
+                                       } else {
+                                               D_EMSG("item_data is NULL. Memory cannot be allocated");
+                                       }
+                               }
+                       }
+                       pListData->item_cnt = pListData->search_thread_cnt;
+                       row = 0;
+               }
+
+               if (pListData->search_msg_cnt > 0 && pListData->search_thread_cnt + pListData->search_msg_cnt > MSG_THREAD_LIST_PARTIAL_LOADING_CNT) {
+                       PMSG_APP_THREAD_MSG_DATA_S item_data = NULL;
+                       PMSG_APP_THREAD_SEARCH_TITLE_S search_title = NULL;
+                       Elm_Object_Item *gen_item = NULL;
+                       Elm_Object_Item *search_item = NULL;
+
+                       if (pListData->search_thread_cnt < pListData->loaded_cnt)
+                               start = pListData->loaded_cnt - pListData->search_thread_cnt;
+                       else
+                               start = 0;
+                       D_IMSG("pListData->search_msg_cnt : %d, start : %d", pListData->search_msg_cnt, start);
+
+                       gen_item = elm_genlist_last_item_get(pListData->genlist);
+                       search_item = elm_genlist_item_parent_get(gen_item);
+                       if (search_item)
+                               search_title = elm_object_item_data_get(search_item);
+
+                       __msg_ui_thread_genlist_style_set(pListData, THREAD_LIST_APP_DATA_MSG);
+                       if (!search_title || search_title->nType != THREAD_SEARCH_MSG)
+                               search_title = __msg_ui_thread_insert_search_title(pListData, THREAD_SEARCH_MSG, pListData->search_msg_list.nCount);
+
+                       for (row = start; row < pListData->search_msg_cnt; row++) {
+                               if (search_title) {
+                                       item_data = (PMSG_APP_THREAD_MSG_DATA_S)calloc(1, sizeof(MSG_APP_THREAD_MSG_DATA_S));
+                                       if (item_data) {
+                                               msg_ui_thread_set_msg_data(item_data, pListData->search_msg_list.msg_struct_info[row]);
+                                               elm_genlist_item_append(pListData->genlist, &pListData->itc_msg, item_data, search_title->title_it, ELM_GENLIST_ITEM_NONE, msg_ui_thread_msg_gl_sel, pListData);
+                                       }
+                               } else {
+                                       D_EMSG("item_data or search_title are NULL");
+                               }
+                       }
+                       pListData->item_cnt += pListData->search_msg_cnt;
+               }
+       } else if (pListData->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+               msg_error_t err = MSG_SUCCESS;
+               msg_struct_list_s peerList;
+
+               memset(&peerList, 0x00, sizeof(msg_struct_list_s));
+               if (msg_ui_get_launch_list(&peerList) == false) {
+                       msg_struct_t sort_rule_t = msg_create_struct(MSG_STRUCT_SORT_RULE);
+
+                       msg_set_int_value(sort_rule_t, MSG_SORT_RULE_SORT_TYPE_INT, MSG_SORT_BY_THREAD_DATE);
+                       msg_set_bool_value(sort_rule_t, MSG_SORT_RULE_ACSCEND_BOOL, false);
+
+                       err = msg_get_thread_view_list(pData->msgHandle, sort_rule_t, &peerList);
+                       msg_release_struct(&sort_rule_t);
+               }
+
+               if (err == MSG_ERR_DB_BUSY) {
+                       /*DB lock issue : if db lock is maintained long time, exit the message app and leave to the user to try again.*/
+                       D_EMSG("msg_get_thread_view_list return error [%d]", err);
+                       pListData->db_wait_cnt++;
+
+                       if (pListData->db_wait_cnt > 10) {
+                               if (pListData->load_idler)
+                                       ecore_idler_del(pListData->load_idler);
+                               elm_exit();
+                               D_EMSG("MSG_ERR_DB_BUSY is approach to %d times. terminate the message app", pListData->db_wait_cnt);
+                       } else {
+                               if (pListData->db_wait_timer) {
+                                       ecore_timer_del(pListData->db_wait_timer);
+                                       pListData->db_wait_timer = NULL;
+                               }
+                               pListData->db_wait_timer = ecore_timer_add(0.3 * pListData->db_wait_cnt, __msg_ui_thread_db_wait_timer_cb, pListData);
+                       }
+                       return EINA_FALSE;
+               } else {
+                       pListData->db_wait_cnt = 0;
+               }
+
+               if (peerList.nCount > 0) {
+                       Evas_Object *swl_ly = NULL;
+
+                       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                               swl_ly = elm_object_part_content_get(pListData->content_ly, "thread_list");
+                       } else {
+                               swl_ly = elm_object_part_content_get(pListData->content_ly, "search_list");
+                       }
+
+                       pListData->app_data_type = THREAD_LIST_APP_DATA_CONV;
+                       __msg_ui_thread_genlist_style_set(pListData, THREAD_LIST_APP_DATA_CONV);
+
+                       if (swl_ly != pListData->genlist) {
+                               if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                                       elm_object_part_content_unset(pListData->content_ly, "thread_list");
+                                       evas_object_hide(swl_ly);
+                                       elm_object_part_content_set(pListData->content_ly, "thread_list", pListData->genlist);
+                               } else {
+                                       elm_object_part_content_unset(pListData->content_ly, "search_list");
+                                       evas_object_hide(swl_ly);
+                                       if (pListData->genlist) {
+                                               elm_object_part_content_set(pListData->content_ly, "search_list", pListData->genlist);
+                                       }
+                               }
+                       }
+
+                       D_IMSG("peercount : %d, err : %d", peerList.nCount, err);
+                       start = pListData->loaded_cnt;
+
+                       if (start < peerList.nCount && err == MSG_SUCCESS) {
+                               PMSG_APP_THREAD_CONV_DATA_S cur_thread = NULL;
+
+                               for (row = start; row < peerList.nCount; row++) {
+                                       cur_thread = (PMSG_APP_THREAD_CONV_DATA_S) calloc(1, sizeof(MSG_APP_THREAD_CONV_DATA_S));
+                                       if (cur_thread) {
+                                               msg_ui_thread_set_conv_data(pListData, cur_thread, peerList.msg_struct_info[row]);
+                                               elm_genlist_item_append(pListData->genlist, msg_ui_thread_conv_item_get_itc_type(pListData, cur_thread), cur_thread, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_thread_gl_sel, pListData);
+                                       }
+                               }
+                               pListData->item_cnt = peerList.nCount;
+                       }
+               }
+
+               if (msg_ui_get_launch_list(NULL) == true)
+                       msg_ui_remove_launch_list();
+               else
+                       msg_release_list_struct(&peerList);
+       }
+
+       ecore_idler_del(pListData->load_idler);
+       pListData->load_idler = NULL;
+
+       msg_ui_thread_list_add_dummy_item(pListData);
+
+       D_LEAVE;
+       return EINA_TRUE;
+}
+
+Elm_Object_Item *msg_ui_thread_selected_gen_item_by_id(PMSG_THREAD_LIST_DATA pListData, int app_data_type, int sel_id)
+{
+       D_MSG_RETVM_IF(!pListData, NULL, "pListData is NULL");
+
+       Elm_Object_Item *gen_item = NULL;
+       bool bSearchList = false;
+
+       D_IMSG("selected id = [%d] ", sel_id);
+
+       if (!pListData || sel_id <= 0) {
+               D_EMSG("pListData is NULL or sel_id(%d) is invalid.", sel_id);
+               return NULL;
+       }
+
+       if (pListData->search_mode == THREAD_SEARCH_ON) {
+               Evas_Object *entry = NULL;
+               char *search_str = NULL;
+
+               if (pListData->search_gl) {
+                       search_str = elm_entry_markup_to_utf8(elm_entry_entry_get(pListData->search_entry));
+               }
+
+               if (!search_str || strlen(search_str) == 0)
+                       bSearchList = false;
+               else
+                       bSearchList = true;
+
+               if (search_str)
+                       free(search_str);
+       }
+
+       gen_item = elm_genlist_first_item_get(pListData->genlist);
+
+       /* Update genlist item */
+       while (gen_item) {
+               if (bSearchList == true && elm_genlist_item_parent_get(gen_item) == NULL) {
+                       gen_item = elm_genlist_item_next_get(gen_item);
+                       continue;
+               }
+
+               if (app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                       PMSG_APP_THREAD_CONV_DATA_S item_data = NULL;
+
+                       item_data = (PMSG_APP_THREAD_CONV_DATA_S) elm_object_item_data_get(gen_item);
+                       if (item_data) {
+                               if (item_data->app_data_type == THREAD_LIST_APP_DATA_MSG)
+                                       return NULL;
+
+                               if (item_data->thread_id == sel_id)
+                                       return gen_item;
+                       }
+               } else if (app_data_type == THREAD_LIST_APP_DATA_MSG) {
+                       PMSG_APP_THREAD_MSG_DATA_S item_data = NULL;
+
+                       item_data = (PMSG_APP_THREAD_MSG_DATA_S) elm_object_item_data_get(gen_item);
+                       if (item_data) {
+                               if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                                       gen_item = elm_genlist_item_next_get(gen_item);
+                                       continue;
+                               }
+
+                               if (item_data->msg_id == sel_id)
+                                       return gen_item;
+                       }
+               }
+               gen_item = elm_genlist_item_next_get(gen_item);
+       }
+       return NULL;
+}
+
+void msg_ui_thread_common_style_set(PMSG_THREAD_DATA pData)
+{
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       pData->itc_empty.item_style = "1text";
+       pData->itc_empty.func.text_get = msg_ui_thread_gl_empty_get;
+       pData->itc_empty.func.content_get = NULL;
+       pData->itc_empty.func.state_get = NULL;
+       pData->itc_empty.func.del = NULL;
+
+       pData->itc_search_title.item_style = "groupindex";
+       pData->itc_search_title.func.text_get = msg_ui_thread_search_title_gl_text_get;
+       pData->itc_search_title.func.content_get = NULL;
+       pData->itc_search_title.func.state_get = NULL;
+       pData->itc_search_title.func.del = msg_ui_search_title_gl_del;
+}
+
+static void __msg_ui_thread_genlist_style_set(PMSG_THREAD_LIST_DATA pListData, ThreadAppDataType nType)
+{
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       if (nType == THREAD_LIST_APP_DATA_CONV) {
+               pListData->itc_read.item_style = "messages_custom"; /* read */
+               __msg_ui_thread_genlist_style_data_set(pListData, nType, &pListData->itc_read);
+
+               pListData->itc_read_icon.item_style = "messages_custom"; /* read + push */
+               __msg_ui_thread_genlist_style_data_set(pListData, nType, &pListData->itc_read_icon);
+
+               pListData->itc_unread.item_style = "messages_custom"; /* unread 1 */
+               __msg_ui_thread_genlist_style_data_set(pListData, nType, &pListData->itc_unread);
+
+               pListData->itc_unread_icon.item_style = "messages_custom"; /* new + push */
+               __msg_ui_thread_genlist_style_data_set(pListData, nType, &pListData->itc_unread_icon);
+
+               pListData->itc_status.item_style = "messages_custom"; /* draft */
+               __msg_ui_thread_genlist_style_data_set(pListData, nType, &pListData->itc_status);
+
+               pListData->itc_status_icon.item_style = "messages_custom"; /* sos? */
+               __msg_ui_thread_genlist_style_data_set(pListData, nType, &pListData->itc_status_icon);
+       } else {
+               pListData->itc_msg.item_style = "messages_custom";
+               __msg_ui_thread_genlist_style_data_set(pListData, nType, &pListData->itc_msg);
+       }
+
+}
+
+static void __msg_ui_thread_genlist_style_data_set(PMSG_THREAD_LIST_DATA pListData, ThreadAppDataType nType, Elm_Genlist_Item_Class *genlist_itc)
+{
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       D_IMSG("nType = %d", nType);
+       if (nType == THREAD_LIST_APP_DATA_CONV) {
+               genlist_itc->func.text_get = __msg_ui_thread_gl_text_get;
+               genlist_itc->func.content_get = __msg_ui_thread_gl_content_get;
+               genlist_itc->func.state_get = NULL;
+               genlist_itc->func.del = __msg_ui_thread_gl_del;
+       } else {
+               genlist_itc->func.text_get = msg_ui_thread_msg_gl_text_get;
+               genlist_itc->func.content_get = msg_ui_thread_msg_gl_content_get;
+               genlist_itc->func.state_get = NULL;
+               genlist_itc->func.del = msg_ui_thread_msg_gl_del;
+       }
+}
+
+Elm_Genlist_Item_Class *msg_ui_thread_conv_item_get_itc_type(PMSG_THREAD_LIST_DATA pListData, PMSG_APP_THREAD_CONV_DATA_S item_data)
+{
+       D_MSG_RETVM_IF(!pListData, NULL, "pListData is NULL");
+       D_MSG_RETVM_IF(!item_data, NULL, "item_data is NULL");
+
+       if (item_data->unread_cnt > 0) {
+               if (item_data->msg_type == MSG_TYPE_SMS_CB || item_data->msg_type == MSG_TYPE_SMS_WAPPUSH || item_data->msg_type == MSG_TYPE_SMS_SYNCML)
+                       return &pListData->itc_unread_icon;
+               else
+                       return &pListData->itc_unread;
+       } else if (item_data->bDraft || item_data->bFailed || item_data->bSending) {
+               if (item_data->msg_type == MSG_TYPE_SMS_CB || item_data->msg_type == MSG_TYPE_SMS_WAPPUSH || item_data->msg_type == MSG_TYPE_SMS_SYNCML)
+                       return &pListData->itc_status_icon;
+               else
+                       return &pListData->itc_status;
+       } else {
+               if (item_data->msg_type == MSG_TYPE_SMS_CB || item_data->msg_type == MSG_TYPE_SMS_WAPPUSH || item_data->msg_type == MSG_TYPE_SMS_SYNCML)
+                       return &pListData->itc_read_icon;
+               else
+                       return &pListData->itc_read;
+       }
+       return NULL;
+}
+
diff --git a/thread/src/msg-ui-thread-main.c b/thread/src/msg-ui-thread-main.c
new file mode 100755 (executable)
index 0000000..47fc364
--- /dev/null
@@ -0,0 +1,1087 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-thread-main.h"
+#include "notification.h"
+
+#define COMPOSE_BUTTON_ICON_SIZE ELM_SCALE_SIZE(80)
+
+Eina_Bool __msg_ui_thread_show_search_mode(void *data);
+static void __msg_ui_thread_create_searchbar_max_length_reached_cb(void *data, Evas_Object *obj, void *event_info);
+
+PMSG_THREAD_DATA g_data = NULL;
+
+PMSG_THREAD_DATA msg_ui_thread_get_data(void)
+{
+       if (g_data)
+               return g_data;
+       else
+               return NULL;
+}
+
+msg_handle_t msg_ui_thread_get_data_handle(void)
+{
+       if (g_data)
+               return g_data->msgHandle;
+       else
+               return NULL;
+}
+
+Elm_Genlist_Item_Class *msg_ui_thread_get_itc_type(ThreadItcType type)
+{
+       if (g_data ==  NULL)
+               return NULL;
+
+       if (type == THREAD_ITC_EMPTY)
+               return &g_data->itc_empty;
+       else if (type == THREAD_ITC_SEARCH_TITLE)
+               return &g_data->itc_search_title;
+       else if (type == THREAD_ITC_POPUP)
+               return &g_data->itc_popup;
+       else
+               return NULL;
+}
+
+/* Launching Time Check */
+static void __main_layout_flush_post_cb(void *data, Evas *e, void *event_info)
+{
+       evas_event_callback_del(e, EVAS_CALLBACK_RENDER_FLUSH_POST, __main_layout_flush_post_cb);
+}
+
+void msg_ui_thread_signal_emit(Evas_Object *obj, const char *signal, const char *source)
+{
+       D_MSG("Signal emitted : %s", signal);
+
+       edje_object_signal_emit(obj, signal, source);
+
+}
+
+void *msg_ui_thread_init_thread_data(struct appdata *ad)
+{
+       D_ENTER;
+
+       PMSG_THREAD_DATA pData = NULL;
+       pData = (PMSG_THREAD_DATA)calloc(1, sizeof(MSG_THREAD_DATA));
+       D_MSG_RETVM_IF(!pData, NULL, "calloc() of pData is failed.");
+
+       bzero(pData, sizeof(MSG_THREAD_DATA));
+
+       g_data = pData;
+
+       pData->msgHandle = ad->msgHandle;
+       pData->win_main = ad->win_main;
+       pData->conform = ad->conform;
+
+       pData->th = elm_theme_new();
+       elm_theme_ref_set(pData->th, NULL);
+       elm_theme_extension_add(pData->th, MSG_THREAD_THEME);
+
+       msg_ui_thread_common_style_set(pData);
+       msg_ui_thread_reg_msg_cb_func(pData);
+       msg_ui_thread_get_locale(pData);
+       msg_ui_thread_get_time_format(pData);
+       pData->time_12h_ptn = msg_common_get_date_best_pattern(pData->locale, MSG_UI_TIME_PATTERN_12H);
+       pData->time_24h_ptn = msg_common_get_date_best_pattern(pData->locale, MSG_UI_TIME_PATTERN_24H);
+       pData->date_ptn_default = msg_common_get_date_best_pattern(pData->locale, MSG_UI_DATE_PATTERN_LIST_DEFAULT);
+       pData->date_ptn_year = msg_common_get_date_best_pattern(pData->locale, MSG_UI_DATE_PATTERN_LIST_YEAR);
+
+       /* Register callback to apply time change. */
+       if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED , msg_ui_thread_timezone_change_cb, (void *)pData) < 0) {
+               D_EMSG("Fail to register SYSTEM_SETTINGS_KEY_TIME_CHANGED key");
+       }
+
+       if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, msg_ui_thread_timezone_change_cb, (void *)pData) < 0) {
+               D_EMSG("Fail to register system_settings time format");
+       }
+
+       pData->keypadIsShown = false;
+       pData->redrawList = false;
+
+       D_LEAVE;
+       return (void *)pData;
+}
+
+void msg_ui_thread_deinit_thread_data(void *data)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_DATA pData = data;
+       int i = 0;
+
+       msg_ui_thread_cancel_ecore_thread(pData->th_search, NULL);
+       pData->th_search = NULL;
+
+       if (pData->delayed_update) {
+               msg_ui_thread_clear_delayed_update(pData->delayed_update);
+               free(pData->delayed_update);
+       }
+
+       for (i = MSG_THREAD_LIST_MAX_COUNT-1; i >= 0; i--) {
+               if (pData->list_data[i] != NULL) {
+                       elm_object_item_del(elm_naviframe_top_item_get(pData->navi_frame));
+                       msg_ui_thread_destroy_thread_list_data(pData->list_data[i]);
+               }
+       }
+
+       if (pData->time_12h_ptn) {
+               free(pData->time_12h_ptn);
+               pData->time_12h_ptn = NULL;
+       }
+
+       if (pData->time_24h_ptn) {
+               free(pData->time_24h_ptn);
+               pData->time_24h_ptn = NULL;
+       }
+
+       if (pData->date_ptn_default) {
+               free(pData->date_ptn_default);
+               pData->date_ptn_default = NULL;
+       }
+
+       if (pData->date_ptn_year) {
+               free(pData->date_ptn_year);
+               pData->date_ptn_year = NULL;
+       }
+
+       if (pData->th) {
+               elm_theme_extension_del(pData->th, MSG_THREAD_THEME);
+               elm_theme_free(pData->th);
+               pData->th = NULL;
+       }
+
+       contacts_db_remove_changed_cb(_contacts_contact._uri, msg_ui_thread_contact_changed_cb, (void *)pData);
+       contacts_setting_remove_name_display_order_changed_cb(msg_ui_thread_contact_display_order_changed_cb, (void *)pData);
+
+       if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED) < 0) {
+               D_EMSG("Fail to remove SYSTEM_SETTINGS_KEY_TIME_CHANGED key");
+       }
+
+       if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR) < 0) {
+               D_EMSG("Fail to remove system_settings time format");
+       }
+
+       g_data = NULL;
+}
+
+PMSG_THREAD_LIST_DATA msg_ui_thread_create_thread_list_data(ThreadMsgListType list_type, ThreadAppDataType app_data_type)
+{
+       int i = 0;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, NULL, "pData is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)calloc(1, sizeof(MSG_THREAD_LIST_DATA));
+       D_MSG_RETVM_IF(!pListData, NULL, "calloc() of pListData is failed.");
+
+       bzero(pListData, sizeof(MSG_THREAD_LIST_DATA));
+
+       pListData->view_mode = THREAD_NORMAL_VIEW;
+       pListData->list_type = list_type;
+       pListData->app_data_type = app_data_type;
+       pListData->search_mode = THREAD_SEARCH_OFF;
+       pListData->action_type = THREAD_ACTION_NONE;
+
+       pListData->search_conv_list.nCount = 0;
+       pListData->search_conv_list.msg_struct_info = NULL;
+       pListData->search_msg_list.nCount = 0;
+       pListData->search_msg_list.msg_struct_info = NULL;
+       pListData->search_thread_cnt = 0;
+       pListData->search_msg_cnt = 0;
+       pListData->redrawList = false;
+       pListData->retain_list_pos = false;
+       pListData->scrl_timer = NULL;
+       pListData->checkbox_timer = NULL;
+
+       memset(&pListData->cbs, 0x0, sizeof(struct ug_cbs));
+
+       for (i = 0; i < MSG_THREAD_LIST_MAX_COUNT; i++) {
+               if (pData->list_data[i] == NULL) {
+                       pData->list_data[i] = pListData;
+                       break;
+               }
+       }
+
+       pListData->content_ly = msg_ui_thread_create_content_layout(pData->navi_frame);
+
+       pListData->genlist = msg_ui_thread_create_genlist(pListData->content_ly, pListData);
+       elm_object_theme_set(pListData->genlist, pData->th);
+       elm_object_part_content_set(pListData->content_ly, "thread_list", pListData->genlist);
+
+       if (msg_ui_thread_get_prev_list(pListData) == NULL)
+               elm_win_conformant_set(pData->win_main, 1);
+
+       pListData->nf_it = elm_naviframe_item_push(pData->navi_frame, NULL, NULL, NULL, pListData->content_ly, NULL);
+       return pListData;
+}
+
+void msg_ui_thread_destroy_thread_list_data(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       int i = 0, j = 0;
+
+       if (pData->callee_svc_handle) {
+               app_control_send_terminate_request(pData->callee_svc_handle);
+               app_control_destroy(pData->callee_svc_handle);
+               pData->callee_svc_handle = NULL;
+       }
+
+       if (pListData->pPopup) {
+               if (pListData->pPopup->popup_type == THREAD_POPUP_ADDRESS) {
+                       PMSG_APP_THREAD_POPUP_ADDRESS pPopup = (PMSG_APP_THREAD_POPUP_ADDRESS)pListData->pPopup;
+
+                       if (pPopup->job_popup_end) {
+                               if (ecore_job_del(pPopup->job_popup_end))
+                                       D_MSG("ecore_job_del is done.");
+                               pPopup->job_popup_end = NULL;
+                       }
+               } else if (pListData->pPopup->popup_type == THREAD_POPUP_PROGRESS) {
+                       PMSG_APP_THREAD_POPUP_PROGRESS pPopup = (PMSG_APP_THREAD_POPUP_PROGRESS)pListData->pPopup;
+
+                       if (msg_ui_thread_cancel_ecore_thread(pPopup->multi_action_thread, MSG_THREAD_MULTI_ACTION))
+                               pPopup->multi_action_thread = NULL;
+               }
+
+               msg_ui_thread_destroy_popup(pListData);
+       }
+
+       if (pListData->search_timer) {
+               ecore_timer_del(pListData->search_timer);
+               pListData->search_timer = NULL;
+       }
+
+       if (pListData->search_msg_list.nCount > 0) {
+               msg_release_list_struct(&pListData->search_msg_list);
+       }
+
+       if (pListData->search_conv_list.nCount > 0) {
+               msg_release_list_struct(&pListData->search_conv_list);
+       }
+
+       if (pListData->search_str) {
+               free(pListData->search_str);
+               pListData->search_str = NULL;
+       }
+
+        if (pListData->loaded_ug) {
+               ug_destroy(pListData->loaded_ug);
+               pListData->loaded_ug = NULL;
+               pListData->loaded_ug_type = THREAD_UG_TYPE_NONE;
+       }
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+       if (pListData->adv_search_ly)
+               msg_ui_thread_destroy_search_detail_view(pListData);
+#endif
+
+       if (pListData->load_idler) {
+               ecore_idler_del(pListData->load_idler);
+               pListData->load_idler = NULL;
+       }
+
+       if (pListData->toast_popup_idler) {
+               ecore_idler_del(pListData->toast_popup_idler);
+               pListData->toast_popup_idler = NULL;
+       }
+
+       if (pListData->genlist) {
+               evas_object_del(pListData->genlist);
+               pListData->genlist = NULL;
+       }
+
+       if (pListData->composer_btn) {
+               msg_ui_thread_delete_composer_btn(pListData);
+       }
+
+       /* free cached layout list */
+       msg_ui_thread_destroy_reusable_layout_list(pListData->reusable_layout_list);
+       pListData->reusable_layout_list = NULL;
+
+       if (pListData->edit_view_update_id_list)
+               eina_list_free(pListData->edit_view_update_id_list);
+
+       memset(&pListData->cbs, 0x0, sizeof(struct ug_cbs));
+
+       for (i = MSG_THREAD_LIST_MAX_COUNT-1; i >= 0; i--) {
+               if (pData->list_data[i] != NULL && pData->list_data[i] == pListData) {
+                       free(pListData);
+                       pData->list_data[i] = NULL;
+
+                       for (j = i; j < MSG_THREAD_LIST_MAX_COUNT-2; j++) {
+                               pData->list_data[j] = pData->list_data[j+1];
+                               pData->list_data[j+1] = NULL;
+                       }
+                       break;
+               }
+       }
+}
+
+PMSG_THREAD_LIST_DATA msg_ui_thread_get_default_list(void)
+{
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, NULL, "pData is NULL");
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+       int i = 0;
+
+       for (i = 0; i < MSG_THREAD_LIST_MAX_COUNT; i++) {
+               if (pData->list_data[i] != NULL && pData->list_data[i]->list_type == THREAD_NORMAL_LIST_TYPE) {
+                       pListData = pData->list_data[i];
+                       break;
+               }
+       }
+
+       return pListData;
+}
+
+PMSG_THREAD_LIST_DATA msg_ui_thread_get_current_list(void)
+{
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, NULL, "pData is NULL");
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+       int i = 0;
+
+       for (i = MSG_THREAD_LIST_MAX_COUNT-1; i >= 0; i--) {
+               if (pData->list_data[i] != NULL) {
+                       pListData = pData->list_data[i];
+                       break;
+               }
+       }
+
+       return pListData;
+}
+
+PMSG_THREAD_LIST_DATA msg_ui_thread_get_prev_list(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_MSG_RETVM_IF(!pListData, NULL, "pListData is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, NULL, "pData is NULL");
+       PMSG_THREAD_LIST_DATA pPrevList = NULL;
+       int i = 0;
+
+       for (i = MSG_THREAD_LIST_MAX_COUNT-1; i > 0; i--) {
+               if (pData->list_data[i] == pListData) {
+                       pPrevList = pData->list_data[i-1];
+                       break;
+               }
+       }
+
+       return pPrevList;
+}
+
+Evas_Object *msg_ui_thread_create_layout_main(PMSG_THREAD_DATA pData)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!pData, NULL, "pData is NULL");
+       D_MSG_RETVM_IF(!pData->win_main, NULL, "pData->win_main is NULL");
+
+       Evas_Object *bg = NULL;
+       Evas_Object *layout = NULL;
+
+       layout = elm_layout_add(pData->conform);
+       D_MSG_RETVM_IF(!layout, NULL, "Failed elm_layout_add.");
+
+       bg = elm_bg_add(layout);
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(bg);
+
+       /* indicator bg */
+       Evas_Object *indicator_bg = NULL;
+       indicator_bg = elm_bg_add(pData->conform);
+       elm_object_style_set(indicator_bg, "indicator/headerbg");
+       elm_object_part_content_set(pData->conform, "elm.swallow.indicator_bg", indicator_bg);
+       evas_object_show(indicator_bg);
+
+       elm_layout_theme_set(layout, "layout", "application", "default");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_part_content_set(layout, "elm.swallow.bg", bg);
+       evas_object_show(layout);
+
+       evas_event_callback_add(evas_object_evas_get(layout), EVAS_CALLBACK_RENDER_FLUSH_POST, __main_layout_flush_post_cb, NULL);
+
+       pData->layout_main = elm_layout_add(layout);
+       MSG_UI_RETVM_IF(MSG_UI_LEVEL_ERR, pData->layout_main == NULL, NULL, "Failed elm_layout_add.\n");
+
+       elm_layout_theme_set(pData->layout_main, "layout", "application", "noindicator");
+       evas_object_size_hint_weight_set(pData->layout_main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pData->layout_main, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_object_part_content_set(layout, "elm.swallow.content", pData->layout_main);
+       evas_object_show(pData->layout_main);
+
+       pData->navi_frame = elm_naviframe_add(pData->layout_main);
+       elm_object_part_content_set(pData->layout_main, "elm.swallow.content", pData->navi_frame);
+
+       elm_naviframe_prev_btn_auto_pushed_set(pData->navi_frame, EINA_FALSE);
+       eext_object_event_callback_add(pData->navi_frame, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
+       eext_object_event_callback_add(pData->navi_frame, EEXT_CALLBACK_MORE, eext_naviframe_more_cb, NULL);
+       evas_object_show(pData->navi_frame);
+
+       return layout;
+}
+
+void msg_ui_thread_load_thread_view(void *data, app_control_h service)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)data;
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+
+       pListData = msg_ui_thread_create_thread_list_data(THREAD_NORMAL_LIST_TYPE, THREAD_LIST_APP_DATA_CONV);
+       msg_ui_thread_list_load(pListData, TRUE);
+
+       msg_ui_thread_fullview_launch(pData, pListData);
+
+       /* Set focus to naviframe for H/W key. */
+       elm_object_focus_set(pData->navi_frame, EINA_TRUE);
+
+       /* Search mode from live-box */
+       char *key_type = NULL;
+
+       app_control_get_extra_data(service, MSG_BUNDLE_KEY_TYPE, &key_type);
+       if (key_type) {
+               if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_SEARCH_MODE) == 0) {
+                       if (pListData->item_cnt > 0) {
+                               if (pData->search_idler == NULL)
+                                       pData->search_idler = ecore_idler_add(__msg_ui_thread_show_search_mode, pData);
+                       }
+               }
+               free(key_type);
+       }
+       D_LEAVE;
+}
+
+void msg_ui_thread_load_message_box(int list_type)
+{
+       D_ENTER;
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+
+       pListData = msg_ui_thread_create_thread_list_data(list_type, THREAD_LIST_APP_DATA_MSG);
+       msg_ui_thread_msg_list_load(pListData, list_type);
+       msg_ui_thread_fullview_launch(pData, pListData);
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_fullview_launch(PMSG_THREAD_DATA pData, PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       msg_ui_thread_set_navi_toolbar_item(pListData, false);
+       msg_ui_thread_set_title_status(pListData);
+       return;
+}
+
+Eina_Bool __msg_ui_thread_show_search_mode(void *data)
+{
+       D_MSG_RETVM_IF(!data, EINA_FALSE, "data is NULL");
+
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)data;
+       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_default_list();
+       D_MSG_RETVM_IF(!pListData, EINA_FALSE, "pListData is NULL");
+
+
+       if (msg_ui_thread_rotation_get() == true)
+               elm_naviframe_item_title_enabled_set(pListData->nf_it, EINA_FALSE, EINA_FALSE);
+
+       if (!pListData->search_gl)
+               pListData->search_gl = msg_ui_thread_create_searchbar_item(pListData->content_ly, pListData);
+
+       elm_object_part_content_unset(pListData->content_ly, "thread_list");
+       elm_object_part_content_set(pListData->content_ly, "search", pListData->search_gl);
+       if (pListData->genlist) {
+               elm_object_part_content_set(pListData->content_ly, "search_list", pListData->genlist);
+       }
+
+       elm_object_focus_set(pListData->search_entry, EINA_TRUE);
+       pListData->search_mode = THREAD_SEARCH_ON;
+
+       msg_ui_thread_set_title_status(pListData);
+       msg_ui_thread_set_navi_toolbar_item(pListData, true);
+
+       if (pListData->noc_ly) {
+               evas_object_del(pListData->noc_ly);
+               pListData->noc_ly = NULL;
+       }
+       pListData->noc_ly = msg_ui_thread_create_nocontent_layout(pData->navi_frame, pListData->search_mode);
+
+       ecore_idler_del(pData->search_idler);
+       pData->search_idler = NULL;
+
+       return EINA_TRUE;
+}
+
+static void __msg_ui_thread_create_searchbar_max_length_reached_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       notification_status_message_post(TEXT("IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"));
+}
+
+static void __msg_ui_thread_searchbar_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       elm_object_signal_emit(pListData->searchfield_ly, "elm,state,focused", "");
+}
+
+static void __msg_ui_thread_searchbar_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       elm_object_signal_emit(pListData->searchfield_ly, "elm,state,unfocused", "");
+}
+
+Evas_Object *msg_ui_thread_create_searchbar_item(Evas_Object *parent, PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!pListData, NULL, "pListData is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, NULL, "pData is NULL");
+       Evas_Object *main_ly = elm_layout_add(parent);
+       elm_layout_file_set(main_ly, MSG_COMMON_EDJ, "title");
+       evas_object_size_hint_weight_set(main_ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_fill_set(main_ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(main_ly);
+       msg_common_naviframe_title_back_arrow_set(main_ly, pData->navi_frame);
+
+       Evas_Object *searchfield = elm_layout_add(main_ly);
+       elm_object_part_content_set(main_ly, "title_btn", searchfield);
+       elm_layout_theme_set(searchfield, "layout", "searchfield", "singleline");
+       evas_object_size_hint_align_set(searchfield, EVAS_HINT_FILL, 0.0);
+       evas_object_size_hint_weight_set(searchfield, EVAS_HINT_EXPAND, 0.0);
+       pListData->searchfield_ly = searchfield;
+
+
+       Evas_Object *entry = elm_entry_add(searchfield);
+       elm_object_domain_translatable_part_text_set(entry, "elm.guide", MESSAGE_PKGNAME, "IDS_MSG_NPBODY_SEARCH");
+       elm_entry_scrollable_set(entry, EINA_TRUE);
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+       elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_NORMAL);
+       elm_entry_autocapital_type_set(entry, ELM_AUTOCAPITAL_TYPE_SENTENCE);
+       elm_entry_text_style_user_push(entry, "preedit='+underline=off'");
+       elm_entry_input_panel_return_key_type_set(entry, ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH);
+       eext_entry_selection_back_event_allow_set(entry, EINA_TRUE);
+
+       static Elm_Entry_Filter_Limit_Size limit_filter_data;
+
+       limit_filter_data.max_char_count = 0;
+       limit_filter_data.max_byte_count = DEF_SEARCH_MAX_LEN;
+       elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data);
+
+       evas_object_smart_callback_add(entry, "maxlength,reached", __msg_ui_thread_create_searchbar_max_length_reached_cb, NULL);
+       evas_object_smart_callback_add(entry, "focused", __msg_ui_thread_searchbar_focused_cb, pListData);
+       evas_object_smart_callback_add(entry, "unfocused", __msg_ui_thread_searchbar_unfocused_cb, pListData);
+       evas_object_smart_callback_add(entry, "changed",  msg_ui_thread_searchbar_entry_change_cb, pListData);
+       evas_object_smart_callback_add(entry, "preedit,changed", msg_ui_thread_searchbar_entry_change_cb, pListData);
+       evas_object_smart_callback_add(entry, "activated", msg_ui_thread_searchbar_activated_cb, pListData);
+       elm_object_part_content_set(searchfield, "elm.swallow.content", entry);
+       pListData->search_entry = entry;
+
+
+       Evas_Object *clear_btn = elm_button_add(entry);
+       elm_object_style_set(clear_btn, "editfield_clear");
+       evas_object_size_hint_align_set(clear_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(clear_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_smart_callback_add(clear_btn, "clicked", msg_ui_thread_clear_btn_clicked_cb, pListData);
+       elm_object_part_content_set(searchfield, "elm.swallow.button", clear_btn);
+       evas_object_show(clear_btn);
+       pListData->search_type = THREAD_SEARCH_ALL;
+
+       /** Hide button down arrow in title menu */
+       edje_object_signal_emit(_EDJ(main_ly), "hide,arrow", "");
+
+       return main_ly;
+}
+
+Evas_Object *msg_ui_thread_create_genlist(Evas_Object *parent, PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!pListData, NULL, "pListData is NULL");
+
+       Evas_Object *genlist = NULL;
+
+       genlist = elm_genlist_add(parent);
+       elm_genlist_homogeneous_set(genlist, EINA_TRUE);
+       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+
+       evas_object_smart_callback_add(genlist, "highlighted", msg_ui_thread_gl_highlighted, (void *)pListData);
+       evas_object_smart_callback_add(genlist, "unhighlighted", msg_ui_thread_gl_unhighlighted, (void *)pListData);
+#ifdef MSG_LONGPRESS_SUPPORTED
+       evas_object_smart_callback_add(genlist, "longpressed", msg_ui_thread_longpressed_cb, (void *)pListData);
+#endif
+       /* evas_object_smart_callback_add(genlist, "scroll", msg_ui_thread_scroll_cb, (void *)pListData); */
+
+       /** "3text.tb" style is only supported COMPRESS MODE */
+       /** "3text.1icon" and "1text" are suported COMPRESS MODE also */
+       elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_DEFAULT);
+
+       return genlist;
+}
+
+Evas_Object *msg_ui_thread_create_content_layout(Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!parent, NULL, "parent is NULL");
+
+       /* Content layout */
+       Evas_Object *layout;
+       layout = elm_layout_add(parent);
+       elm_layout_file_set(layout, MSG_THREAD_THEME, "thread_content");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       return layout;
+}
+
+Evas_Object *msg_ui_thread_create_nocontent_layout(Evas_Object *parent, ThreadSearchMode search_mode)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!parent, NULL, "parent is NULL");
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, NULL, "pData is NULL");
+
+       Evas_Object *noc_layout = NULL;
+
+       noc_layout = elm_layout_add(parent);
+       if (search_mode == THREAD_SEARCH_ON) {
+               elm_layout_theme_set(noc_layout, "layout", "nocontents", "search");
+               elm_object_domain_translatable_part_text_set(noc_layout, "elm.text", MESSAGE_PKGNAME, "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB");
+       } else {
+               elm_layout_theme_set(noc_layout, "layout", "nocontents", "text");
+               elm_object_domain_translatable_part_text_set(noc_layout, "elm.text", MESSAGE_PKGNAME, "IDS_MSG_NPBODY_NO_MESSAGES");
+               elm_object_domain_translatable_part_text_set(noc_layout, "elm.help.text",
+                               MESSAGE_PKGNAME, "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE");
+
+               elm_layout_signal_emit(noc_layout, "text,disabled", "");
+               elm_layout_signal_emit(noc_layout, "align.center", "elm");
+       }
+
+       return noc_layout;
+}
+
+void msg_ui_thread_create_nocontent_layout_change(Evas_Object *layout, ThreadSearchMode search_mode)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!layout, "layout is NULL");
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       if (search_mode == THREAD_SEARCH_ON) {
+               elm_layout_theme_set(layout, "layout", "nocontents", "search");
+               elm_object_domain_translatable_part_text_set(layout, "elm.text", MESSAGE_PKGNAME, "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB");
+               elm_object_part_text_set(layout, "elm.help.text", NULL);
+       } else {
+               elm_layout_theme_set(layout, "layout", "nocontents", "text");
+
+               elm_object_domain_translatable_part_text_set(layout, "elm.text", MESSAGE_PKGNAME, "IDS_MSG_NPBODY_NO_MESSAGES");
+               elm_object_domain_translatable_part_text_set(layout, "elm.help.text", MESSAGE_PKGNAME,
+                               "IDS_MSG_BODY_AFTER_YOU_SEND_OR_RECEIVE_MESSAGES_THEY_WILL_BE_SHOWN_HERE");
+
+               elm_layout_signal_emit(layout, "text,disabled", "");
+               elm_layout_signal_emit(layout, "align.center", "elm");
+       }
+
+}
+
+void msg_ui_thread_reg_msg_cb_func(PMSG_THREAD_DATA pData)
+{
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       msg_reg_storage_change_callback(pData->msgHandle, &msg_ui_thread_storage_change_cb, pData);
+       contacts_db_add_changed_cb(_contacts_contact._uri, msg_ui_thread_contact_changed_cb, (void *)pData);
+       contacts_setting_add_name_display_order_changed_cb(msg_ui_thread_contact_display_order_changed_cb, (void *)pData);
+}
+
+void msg_ui_thread_reset_thread_view(void *data, app_control_h service)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)data;
+       int i = 0;
+
+       for (i = MSG_THREAD_LIST_MAX_COUNT-1; i >= 0; i--) {
+               if (pData->list_data[i] != NULL) {
+                       elm_object_item_del(elm_naviframe_top_item_get(pData->navi_frame));
+                       msg_ui_thread_destroy_thread_list_data(pData->list_data[i]);
+               }
+       }
+
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+
+       pListData = msg_ui_thread_create_thread_list_data(THREAD_NORMAL_LIST_TYPE, THREAD_LIST_APP_DATA_CONV);
+       msg_ui_thread_list_load(pListData, TRUE);
+
+       msg_ui_thread_fullview_launch(pData, pListData);
+       elm_object_tree_focus_allow_set(pData->layout_main, EINA_TRUE);
+
+       /* Search mode from live-box */
+       char *key_type = NULL;
+
+       app_control_get_extra_data(service, MSG_BUNDLE_KEY_TYPE, &key_type);
+       if (key_type) {
+               if (g_strcmp0(key_type, MSG_BUNDLE_VALUE_SEARCH_MODE) == 0) {
+                       if (pListData->item_cnt > 0) {
+                               if (pData->search_idler == NULL)
+                                       pData->search_idler = ecore_idler_add(__msg_ui_thread_show_search_mode, pData);
+                       }
+               }
+               free(key_type);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_hide_composer_btn(PMSG_THREAD_DATA pData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       Evas_Object *composer_btn = elm_object_part_content_unset(pData->layout_main, "elm.swallow.floatingbutton");
+       evas_object_hide(composer_btn);
+}
+
+void msg_ui_thread_show_composer_btn(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       if (pListData->composer_btn) {
+               elm_object_part_content_set(pData->layout_main, "elm.swallow.floatingbutton", pListData->composer_btn);
+               evas_object_show(pListData->composer_btn);
+       }
+}
+
+void msg_ui_thread_delete_composer_btn(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       Evas_Object *compose_btn = elm_object_part_content_unset(pData->layout_main, "elm.swallow.floatingbutton");
+       if (compose_btn) {
+               evas_object_del(compose_btn);
+               pListData->composer_btn = NULL;
+       }
+}
+
+Evas_Object *msg_ui_thread_create_composer_btn(PMSG_THREAD_DATA pData)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!pData, NULL, "pData is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+       D_MSG_RETVM_IF(!pListData, NULL, "pListData is NULL");
+
+       Evas_Object *float_btn = eext_floatingbutton_add(pData->navi_frame);
+       elm_object_part_content_set(pData->layout_main, "elm.swallow.floatingbutton", float_btn);
+
+       Evas_Object *compose_btn = elm_button_add(float_btn);
+       elm_object_part_content_set(float_btn, "button1", compose_btn);
+
+       Evas_Object *icon = elm_image_add(float_btn);
+       elm_image_file_set(icon, MSG_UI_THREAD_FLOATING_BTN_ICON, NULL);
+       evas_object_size_hint_min_set(icon, COMPOSE_BUTTON_ICON_SIZE, COMPOSE_BUTTON_ICON_SIZE);
+       elm_object_part_content_set(compose_btn, "icon", icon);
+
+       evas_object_smart_callback_add(compose_btn, "clicked", msg_ui_thread_ctlbar_compose_cb, pListData);
+       evas_object_show(float_btn);
+
+       return float_btn;
+}
+
+void msg_ui_thread_set_navi_toolbar_item(PMSG_THREAD_LIST_DATA pListData, bool bReset)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       int i = 0;
+
+       if (bReset) {
+               if (pListData->toolbar) {
+                       for (i = 0; i < CONTROLBAR_ITEM_MAX; i++) {
+                               if (pListData->toolbar_btn[i]) {
+                                       elm_object_item_del(pListData->toolbar_btn[i]);
+                                       pListData->toolbar_btn[i] = NULL;
+                               }
+                       }
+
+                       evas_object_del(pListData->toolbar);
+                       elm_object_item_part_content_unset(pListData->nf_it, "toolbar");
+                       pListData->toolbar = NULL;
+               }
+
+               if (pListData->more_btn) {
+                       evas_object_del(pListData->more_btn);
+                       elm_object_item_part_content_unset(pListData->nf_it, "toolbar_more_btn");
+                       pListData->more_btn = NULL;
+               }
+
+       }
+
+       if (pListData->search_mode == THREAD_SEARCH_ON) {
+               D_MSG("search_mode is THREAD_SEARCH_ON");
+               return;
+       }
+
+       elm_naviframe_item_pop_cb_set(pListData->nf_it, msg_ui_thread_back_btn_clicked_cb, (void *)pListData);
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+               switch (pListData->action_type) {
+                       /* Removing delete button from toolbar */
+                       case THREAD_ACTION_DELETE:
+                               /*elm_object_text_set(pListData->toolbar, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE"));
+                               evas_object_smart_callback_add(pListData->toolbar, "clicked", msg_ui_thread_ctlbar_multi_action_cb, (void *)pListData);*/
+                               break;
+
+                       case THREAD_ACTION_RESTORE:
+                               /* Removing Done button from toolbar */
+                               break;
+
+                       case THREAD_ACTION_COPY_TO_PHONE:
+                               pListData->toolbar = elm_button_add(pData->navi_frame);
+                               elm_object_style_set(pListData->toolbar, "bottom");
+                               elm_object_item_part_content_set(pListData->nf_it, "toolbar", pListData->toolbar);
+
+                               elm_object_domain_translatable_text_set(pListData->toolbar, MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY");
+                               evas_object_smart_callback_add(pListData->toolbar, "clicked", msg_ui_thread_ctlbar_multi_action_cb, (void *)pListData);
+                               break;
+
+                       default:
+                               break;
+               }
+               if (pListData->check_cnt <= 0)
+                       elm_object_disabled_set(pListData->toolbar, EINA_TRUE);
+               evas_object_show(pListData->toolbar);
+       }  else {
+               Evas_Object *more_btn = NULL;
+
+               more_btn = elm_button_add(pData->navi_frame);
+               elm_object_style_set(more_btn, "naviframe/more/default");
+               evas_object_smart_callback_add(more_btn, "clicked", msg_ui_thread_ctlbar_message_box_cb, pListData);
+               elm_object_item_part_content_set(pListData->nf_it, "toolbar_more_btn", more_btn);
+               pListData->more_btn = more_btn;
+               if (pListData->list_type == THREAD_NORMAL_LIST_TYPE && !pListData->composer_btn)
+                       pListData->composer_btn = msg_ui_thread_create_composer_btn(pData);
+       }
+}
+
+#ifdef BADGE_COUNT_ENABLE
+void msg_ui_thread_set_title_unread_cnt(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       Elm_Object_Item *nf_it = NULL;
+
+       nf_it = pListData->nf_it;
+       if (!nf_it) {
+               D_EMSG("nf_it is NULL");
+               return;
+       }
+
+       if (pListData->list_type == THREAD_NORMAL_LIST_TYPE && pListData->view_mode == THREAD_NORMAL_VIEW && pListData->search_mode == THREAD_SEARCH_OFF) {
+               msg_error_t err = MSG_SUCCESS;
+               msg_struct_t count_info = msg_create_struct(MSG_STRUCT_COUNT_INFO);
+               int unread_cnt = 0;
+
+               err = msg_count_message(msg_ui_thread_get_data_handle(), MSG_INBOX_ID, count_info);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("fail to msg_count_message : err = %d", err);
+                       msg_release_struct(&count_info);
+                       return;
+               }
+
+               msg_get_int_value(count_info, MSG_COUNT_INFO_UNREAD_INT, &unread_cnt);
+               msg_release_struct(&count_info);
+
+               D_SEC_IMSG("unread count is %d", unread_cnt);
+               pListData->unread_cnt = unread_cnt;
+               if (unread_cnt > 0) {
+                       char buf[DEF_BUF_LEN] = { 0, };
+
+                       msg_ui_thread_count_from_int_to_str(buf, DEF_BUF_LEN, unread_cnt);
+
+                       elm_object_item_part_text_set(nf_it, "title_badge", buf);
+               } else {
+                       elm_object_item_part_text_set(nf_it, "title_badge", NULL);
+               }
+       } else {
+               D_MSG("disable badge");
+               elm_object_item_part_text_set(nf_it, "title_badge", NULL);
+       }
+}
+#endif /* BADGE_COUNT_ENABLE */
+
+void msg_ui_thread_set_title_status(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!pListData, "pListData is NULL");
+       D_MSG_RETM_IF(!pListData->nf_it, "pListData->nf_it is NULL");
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       char label[DEF_BUF_LEN_S] = {0};
+
+       /* set title text */
+       msg_ui_thread_get_title_text(pListData, label, DEF_BUF_LEN_S, true);
+       if (pListData->search_mode == THREAD_SEARCH_ON) {
+               elm_naviframe_item_title_enabled_set(pListData->nf_it, EINA_FALSE, EINA_FALSE);
+       } else {
+               elm_naviframe_item_title_enabled_set(pListData->nf_it, EINA_TRUE, EINA_FALSE);
+       }
+
+       elm_object_item_text_set(pListData->nf_it, label);
+
+       /* set unread count */
+#ifdef BADGE_COUNT_ENABLE
+       msg_ui_thread_set_title_unread_cnt(pListData);
+#endif /* BADGE_COUNT_ENABLE */
+}
+
+void msg_ui_thread_rotation_set(void *data, int rot)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)data;
+
+       if (rot == THREAD_ROTATE_ANGLE_LANDSCAPE || rot == THREAD_ROTATE_ANGLE_LANDSCAPE_UPSIDEDOWN) {
+               if (msg_ui_thread_rotation_get() == false) {
+                       pData->isRotate = true;
+               }
+       } else if (msg_ui_thread_rotation_get() == true) {
+               pData->isRotate = false;
+       }
+
+       msg_ui_thread_list_rotation_set();
+
+       D_LEAVE;
+}
+
+bool msg_ui_thread_rotation_get(void)
+{
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETVM_IF(!pData, false, "pData is NULL");
+
+       return pData->isRotate;
+}
+
+void msg_ui_thread_lang_changed(void *data)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)data;
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+       int i = 0;
+
+       for (i = 0; i < MSG_THREAD_LIST_MAX_COUNT; i++) {
+               if (pData->list_data[i] != NULL) {
+                       char label[DEF_BUF_LEN_S+1] = {0,};
+
+                       pListData = pData->list_data[i];
+
+                       elm_genlist_realized_items_update(pListData->genlist);
+                       if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                               if (pListData->noc_ly)
+                                       elm_object_domain_translatable_part_text_set(pListData->noc_ly, "elm.text",
+                                                       MESSAGE_PKGNAME, "IDS_MSG_NPBODY_NO_MESSAGES");
+                       } else {
+                               elm_object_domain_translatable_part_text_set(pListData->noc_ly, "elm.text",
+                                               MESSAGE_PKGNAME, "IDS_MSG_NPBODY_NO_RESULTS_FOUND_ABB");
+                       }
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+                       if (pListData->adv_search_ly)
+                               msg_ui_thread_adv_search_lang_change(pListData);
+#endif
+
+                       if (pListData->pPopup) {
+                               if (pListData->pPopup->popup_type != THREAD_POPUP_PROGRESS)
+                                       msg_ui_thread_destroy_popup(pListData);
+                       }
+
+                       msg_ui_thread_get_title_text(pListData, label, DEF_BUF_LEN_S, true);
+                       elm_object_item_text_set(pListData->nf_it, label);
+                       msg_ui_thread_set_navi_toolbar_item(pListData, false);
+               }
+       }
+}
+
+void msg_ui_thread_region_changed(void *data)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)data;
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+       int i = 0;
+
+       if (pData->time_12h_ptn) {
+               free(pData->time_12h_ptn);
+               pData->time_12h_ptn = NULL;
+       }
+
+       if (pData->time_24h_ptn) {
+               free(pData->time_24h_ptn);
+               pData->time_24h_ptn = NULL;
+       }
+
+       if (pData->date_ptn_default) {
+               free(pData->date_ptn_default);
+               pData->date_ptn_default = NULL;
+       }
+
+       if (pData->date_ptn_year) {
+               free(pData->date_ptn_year);
+               pData->date_ptn_year = NULL;
+       }
+
+       msg_ui_thread_get_locale(pData);
+       msg_ui_thread_get_time_format(pData);
+
+       pData->time_12h_ptn = msg_common_get_date_best_pattern(pData->locale, MSG_UI_TIME_PATTERN_12H);
+       pData->time_24h_ptn = msg_common_get_date_best_pattern(pData->locale, MSG_UI_TIME_PATTERN_24H);
+       pData->date_ptn_default = msg_common_get_date_best_pattern(pData->locale, MSG_UI_DATE_PATTERN_LIST_DEFAULT);
+       pData->date_ptn_year = msg_common_get_date_best_pattern(pData->locale, MSG_UI_DATE_PATTERN_LIST_YEAR);
+
+       for (i = 0; i < MSG_THREAD_LIST_MAX_COUNT; i++) {
+               if (pData->list_data[i] != NULL) {
+                       pListData = pData->list_data[i];
+                       elm_genlist_realized_items_update(pListData->genlist);
+               }
+       }
+}
+
diff --git a/thread/src/msg-ui-thread-util.c b/thread/src/msg-ui-thread-util.c
new file mode 100755 (executable)
index 0000000..541b832
--- /dev/null
@@ -0,0 +1,2605 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg-ui-thread-main.h"
+
+#include <notification.h>
+#include <Ecore_X.h>
+#include <Ecore.h>
+
+#include <app_control_internal.h>
+
+#define SEARCH_BUBBLE_PARTIAL_LOADING_CNT      (20)
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+enum _SEARCH_BUBBLE_DIVIDER_TYPE_E {
+       SEARCH_BUBBLE_DIVIDER_THREAD = 1,
+       SEARCH_BUBBLE_DIVIDER_MSG,
+};
+#endif
+
+static void __msg_ui_thread_ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+static void __msg_ui_thread_ug_destroy_cb(ui_gadget_h ug, void *priv);
+static void __msg_ui_thread_ug_result_cb(ui_gadget_h ug, app_control_h result, void *priv);
+static void __msg_ui_thread_popup_response_cb(void *data, Evas_Object *obj, void *event_info);
+
+static void __msg_ui_thread_addr_select_popup_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_thread_addr_select_popup_gl_realized_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_thread_addr_select_popup_destroy(void *data);
+static char *__msg_ui_thread_addr_select_popup_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__msg_ui_thread_addr_select_popup_gl_content_get(void *data, Evas_Object *obj, const char *part);
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+static Eina_Bool __msg_ui_thread_search_bubble_load_cb(void *data);
+static void __msg_ui_thread_scroll_drag_start_cb(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *__msg_ui_thread_create_bubble_scroller(Evas_Object *layout);
+#endif
+
+static void msg_ui_thread_delete_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       msg_ui_thread_back_btn_clicked_cb(pListData, pListData->nf_it);
+}
+
+void msg_ui_thread_add_title_buttons(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !pListData);
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       Evas_Object *btn;
+       /* Title Cancel Button */
+       btn = msg_common_navframe_text_button_create(pData->navi_frame, "IDS_MSG_ACBUTTON_CANCEL_ABB", EINA_TRUE, EINA_FALSE);
+       evas_object_smart_callback_add(btn, "clicked", msg_ui_thread_delete_cancel_clicked_cb, (void *)pListData);
+       elm_object_item_part_content_set(pListData->nf_it, "title_left_btn", btn);
+
+       /* Title Done Button */
+       if (pListData->action_type == THREAD_ACTION_DELETE) {
+               btn = msg_common_navframe_text_button_create(pData->navi_frame, "IDS_MSG_ACBUTTON_DELETE_ABB", EINA_TRUE, EINA_FALSE);
+               evas_object_smart_callback_add(btn, "clicked", msg_ui_thread_action_popup_ok_clicked_cb, (void *)pListData);
+       } else {
+               btn = msg_common_navframe_text_button_create(pData->navi_frame, "IDS_MSG_ACBUTTON_DONE_ABB", EINA_TRUE, EINA_FALSE);
+               evas_object_smart_callback_add(btn, "clicked", msg_ui_thread_ctlbar_multi_action_cb, (void *)pListData);
+       }
+       elm_object_item_part_content_set(pListData->nf_it, "title_right_btn", btn);
+       pData->done_button = btn;
+}
+void msg_ui_thread_remove_title_buttons(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !pListData);
+       Evas_Object *btn;
+       btn = elm_object_item_part_content_unset(pListData->nf_it, "title_left_btn");
+       if (btn)
+               evas_object_del(btn);
+       btn = elm_object_item_part_content_unset(pListData->nf_it, "title_right_btn");
+       if (btn)
+               evas_object_del(btn);
+}
+
+int msg_ui_thread_launch_voice_call(const char *call_num)
+{
+       D_ENTER;
+
+       int ret = -1; /* negative values are error value */
+       app_control_h svc_handle;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               char telnum[255] = {0,};
+               app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_CALL);
+               snprintf(telnum, sizeof(telnum), "tel:%s", call_num);    /* Number to make a call */
+               app_control_set_uri(svc_handle, telnum);
+               ret = app_control_send_launch_request(svc_handle, NULL, NULL);
+
+               app_control_destroy(svc_handle);
+       }
+
+       D_LEAVE;
+
+       return ret;
+}
+
+void msg_ui_thread_launch_setting(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ASSERT, pListData == NULL);
+
+       if (pListData->loaded_ug && pListData->loaded_ug_type == THREAD_UG_TYPE_SETTING)
+               return;
+
+       pListData->cbs.layout_cb = __msg_ui_thread_ug_layout_cb;
+       pListData->cbs.destroy_cb = __msg_ui_thread_ug_destroy_cb;
+       pListData->cbs.result_cb = NULL;
+       pListData->cbs.end_cb = NULL;
+       pListData->cbs.priv = (void *)pListData;
+
+       app_control_h svc_handle = NULL;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               memset(&pListData->cbs, 0x0, sizeof(struct ug_cbs));
+       } else {
+               PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+
+               pListData->loaded_ug = ug_create(NULL, MSG_SETTING_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &pListData->cbs);
+               pListData->loaded_ug_type = THREAD_UG_TYPE_SETTING;
+               app_control_destroy(svc_handle);
+
+               /* prevent focus moving to caller ug. it is added for screen reader */
+               if (pData) {
+                       if (pData->layout_main)
+                               elm_object_tree_focus_allow_set(pData->layout_main, EINA_FALSE);
+               }
+       }
+}
+
+void msg_ui_thread_launch_contact_ug(PMSG_THREAD_LIST_DATA pListData, const char *addr, int contact_id, ContactUgType type)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ASSERT, pListData == NULL);
+
+       pListData->cbs.layout_cb = __msg_ui_thread_ug_layout_cb;
+       pListData->cbs.destroy_cb = __msg_ui_thread_ug_destroy_cb;
+       pListData->cbs.result_cb = NULL;
+       pListData->cbs.end_cb = NULL;
+       pListData->cbs.priv = (void *)pListData;
+
+       app_control_h svc_handle = NULL;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               memset(&pListData->cbs, 0x0, sizeof(struct ug_cbs));
+       } else {
+               PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+               char contactId[DEF_BUF_LEN_S] = { 0, };
+               char buf[DEF_BUF_LEN_D] = { 0, };
+
+               if (type == THREAD_CT_UG_TYPE_DETAIL) {
+                       snprintf(contactId, sizeof(contactId), "%d", contact_id);
+                       snprintf(buf, sizeof(buf), "%d", MSG_CT_UG_REQUEST_DETAIL);
+
+                       app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_TYPE, buf);
+                       app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_ID, contactId);
+
+                       if (pData && pData->win_main)
+                               app_control_set_window(svc_handle, elm_win_xwindow_get(pData->win_main));
+
+                       app_control_send_launch_request(svc_handle, NULL, NULL);
+               } else {
+                       if (msg_common_is_valid_phone_number(addr)) {
+                               if (type == THREAD_CT_UG_TYPE_ADD)
+                                       snprintf(buf, sizeof(buf), "%d", MSG_CT_UG_REQUEST_ADD_WITH_NUM);
+                               else
+                                       snprintf(buf, sizeof(buf), "%d", MSG_CT_UG_REQUEST_UPDATE_WITH_NUM);
+                               app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_TYPE, buf);
+                               app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_NUM, addr);
+                       } else if (msg_common_is_valid_email_addr(addr)) {
+                               if (type == THREAD_CT_UG_TYPE_ADD)
+                                       snprintf(buf, sizeof(buf), "%d", MSG_CT_UG_REQUEST_ADD_WITH_EMAIL);
+                               else
+                                       snprintf(buf, sizeof(buf), "%d", MSG_CT_UG_REQUEST_UPDATE_WITH_EMAIL);
+                               app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_TYPE, buf);
+                               app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_EMAIL, addr);
+                       } else {
+                               app_control_destroy(svc_handle);
+                               return;
+                       }
+
+                       if (type == THREAD_CT_UG_TYPE_ADD) {
+                               if (pData && pData->win_main)
+                                       app_control_set_window(svc_handle, elm_win_xwindow_get(pData->win_main));
+
+                               app_control_send_launch_request(svc_handle, NULL, NULL);
+                       } else {
+                               pListData->loaded_ug = ug_create(NULL, UG_NAME_CONTACTS_LIST, UG_MODE_FULLVIEW, svc_handle, &pListData->cbs);
+                       }
+               }
+               app_control_destroy(svc_handle);
+
+               if (pListData->loaded_ug) {
+                       pListData->loaded_ug_type = THREAD_UG_TYPE_CONTACT;
+
+                       /* prevent focus moving to caller ug. it is added for screen reader */
+                       if (pData) {
+                               if (pData->layout_main)
+                                       elm_object_tree_focus_allow_set(pData->layout_main, EINA_FALSE);
+                       }
+               }
+       }
+}
+
+int msg_ui_thread_launch_viewer_ug(PMSG_THREAD_LIST_DATA pListData, int nMsgId, int nMsgType)
+{
+       D_ENTER;
+       MSG_UI_RETV_IF(MSG_UI_LEVEL_ASSERT, pListData == NULL, MSG_UI_RET_ERR);
+
+       pListData->cbs.layout_cb = __msg_ui_thread_ug_layout_cb;
+       pListData->cbs.destroy_cb = __msg_ui_thread_ug_destroy_cb;
+       pListData->cbs.result_cb = __msg_ui_thread_ug_result_cb;
+       pListData->cbs.end_cb = NULL;
+       pListData->cbs.priv = (void *)pListData;
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       app_control_h svc_handle = NULL;
+       char msgid[10] = {0,};
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               memset(&pListData->cbs, 0x0, sizeof(struct ug_cbs));
+       } else {
+               snprintf(msgid, sizeof(msgid), "%d", nMsgId);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, msgid);
+
+               switch (pListData->list_type) {
+                       case THREAD_SIM_LIST_TYPE:
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_VIEWER_INTERNAL_CALLER, MSG_BUNDLE_VALUE_SIM_MSG);
+                               break;
+                       case THREAD_CBMSG_LIST_TYPE:
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_VIEWER_INTERNAL_CALLER, MSG_BUNDLE_VALUE_CB_MSG);
+                               break;
+                       default:
+                               break;
+               }
+
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_INDICATOR_MODE, MSG_BUNDLE_VALUE_NO_INDICATOR);
+
+               if (pListData->loaded_ug && pListData->loaded_ug_type == THREAD_UG_TYPE_VIEWER) {
+                       ug_send_message(pListData->loaded_ug, svc_handle);
+               } else {
+                       pListData->loaded_ug = ug_create(NULL, MSG_VIEWER_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &pListData->cbs);
+                       pListData->loaded_ug_type = THREAD_UG_TYPE_VIEWER;
+               }
+
+               app_control_destroy(svc_handle);
+       }
+
+       if (!pListData->loaded_ug)
+               return MSG_UI_RET_ERR;
+
+       /* prevent focus moving of caller ug. it is added for screen reader */
+       if (pData && pData->layout_main)
+               elm_object_tree_focus_allow_set(pData->layout_main, EINA_FALSE);
+
+       D_LEAVE;
+       return MSG_UI_RET_SUCCESS;
+}
+
+static void __msg_ui_thread_ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       D_ENTER;
+
+       if (!ug || !priv)
+               return;
+
+       Evas_Object *base;
+
+       base = ug_get_layout(ug);
+       if (!base) {
+               ug_destroy(ug);
+               return;
+       }
+
+       switch (mode) {
+               case UG_MODE_FULLVIEW:
+                       evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_show(base);
+                       break;
+               case UG_MODE_FRAMEVIEW:
+               default:
+                       break;
+       }
+}
+
+static void __msg_ui_thread_ug_destroy_cb(ui_gadget_h ug, void *priv)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !ug || !priv);
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)priv;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       int ug_type = THREAD_UG_TYPE_NONE;
+
+       if (ug == pListData->loaded_ug) {
+               ug_destroy(ug);
+               ug_type = pListData->loaded_ug_type;
+               pListData->loaded_ug = NULL;
+               pListData->loaded_ug_type = THREAD_UG_TYPE_NONE;
+       }
+
+       /* recover focus moving of caller ug. it is added for screen reader */
+       if (pData) {
+               if (pData->layout_main) {
+                       elm_object_tree_focus_allow_set(pData->layout_main, EINA_TRUE);
+                       if (ug_type == THREAD_UG_TYPE_SETTING)
+                               elm_object_focus_set(pData->layout_main, EINA_TRUE);
+               }
+       }
+
+       if (pListData->sel_msg_id) {
+               if (msg_ui_thread_list_msg_item_update(pListData, pListData->sel_msg_id) == EINA_FALSE)
+                       msg_ui_thread_list_msg_item_delete(pListData, pListData->sel_msg_id);
+
+               if (pListData->sel_gen_item)
+                       elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+               pListData->sel_gen_item = NULL;
+               pListData->sel_msg_id = 0;
+
+               Evas_Object *obj = NULL;
+
+               if (pListData->search_mode == THREAD_SEARCH_ON) {
+                       obj = elm_object_part_content_get(pListData->content_ly, "search_list");
+               } else {
+                       obj = elm_object_part_content_get(pListData->content_ly, "thread_list");
+               }
+               elm_object_focus_set(obj, EINA_TRUE);
+       }
+
+       if (pListData && pListData->composer_btn) {
+               msg_ui_thread_show_composer_btn(pListData);
+       }
+
+       memset(&pListData->cbs, 0x0, sizeof(struct ug_cbs));
+}
+
+static void __msg_ui_thread_ug_result_cb(ui_gadget_h ug, app_control_h result, void *priv)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !ug || !priv);
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+       char *buf = NULL;
+       char *str_result = NULL;
+       int list_idx = 0;
+
+       app_control_get_extra_data(result, MSG_BUNDLE_KEY_RESULT, &str_result);
+
+       if (!g_strcmp0(str_result, MSG_BUNDLE_VALUE_DEL_BUBBLE)) {
+               for (list_idx = MSG_THREAD_LIST_MAX_COUNT-1; list_idx >= 0; list_idx--) {
+                       if (pData->list_data[list_idx] != NULL)
+                               pListData = pData->list_data[list_idx];
+                       else
+                               continue;
+
+                       app_control_get_extra_data(result, MSG_BUNDLE_KEY_THREAD_ID, &buf);
+                       if (buf) {
+                               if (pListData->app_data_type != THREAD_LIST_APP_DATA_MSG) {
+                                       int thread_id = 0;
+                                       thread_id = atoi(buf);
+                                       if (msg_ui_thread_list_item_update(pListData, thread_id) == EINA_FALSE)
+                                               msg_ui_thread_list_item_delete(pListData, thread_id);
+                               }
+                               free(buf);
+                               buf = NULL;
+                       }
+               }
+       } else {
+               pListData = (PMSG_THREAD_LIST_DATA)priv;
+               int delete_id = 0;
+
+               app_control_get_extra_data(result, MSG_BUNDLE_KEY_MSG_ID, &buf);
+               if (buf) {
+                       delete_id = atoi(buf);
+                       msg_ui_thread_list_msg_item_delete(pListData, delete_id);
+
+                       free(buf);
+                       buf = NULL;
+               }
+       }
+
+       if (str_result)
+               free(str_result);
+
+       D_LEAVE;
+}
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+static void __msg_ui_thread_scroll_edge_bottom_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       evas_object_smart_callback_del(obj, "edge,bottom", __msg_ui_thread_scroll_edge_bottom_cb);
+
+       if (!pListData->search_animator) {
+               pListData->search_animator = ecore_animator_add(__msg_ui_thread_search_bubble_load_cb, (const void *)pListData);
+       }
+
+       evas_object_smart_callback_add(obj, "scroll,drag,start", __msg_ui_thread_scroll_drag_start_cb, pListData);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_thread_scroll_drag_start_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_THREAD_LIST_DATA pData = (PMSG_THREAD_LIST_DATA)data;
+
+       evas_object_smart_callback_del(obj, "scroll,drag,start", __msg_ui_thread_scroll_drag_start_cb);
+       evas_object_smart_callback_add(obj, "edge,bottom", __msg_ui_thread_scroll_edge_bottom_cb, (void *)pData);
+
+       D_LEAVE;
+}
+
+static Evas_Object *__msg_ui_thread_create_bubble_scroller(Evas_Object *layout)
+{
+       Evas_Object *scroller = NULL;
+
+       scroller = elm_scroller_add(layout);
+       elm_object_style_set(scroller, "effect");
+       evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
+       elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+
+       return scroller;
+}
+
+static Evas_Object *__msg_ui_thread_create_bubble_box(Evas_Object *scroller)
+{
+       Evas_Object *box = NULL;
+
+       box = elm_box_add(scroller);
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0.0);
+
+       evas_object_show(box);
+
+       return box;
+}
+
+static void __msg_ui_thread_create_bubble_by_thread_id(PMSG_THREAD_LIST_DATA pListData, PMSG_COMMON_BUBBLE_INFO_S bubble_info, int threadId)
+{
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       app_control_h svc_handle = NULL;
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               msg_struct_t listCond = msg_create_struct(MSG_STRUCT_MSG_LIST_CONDITION);
+               msg_struct_list_s draft_list;
+               int draft_id = 0;
+               MessageComposerUgType ug_type = MSG_COMPOSER_UG_TYPE_NONE;
+
+               msg_set_int_value(listCond, MSG_LIST_CONDITION_THREAD_ID_INT, threadId);
+               msg_set_int_value(listCond, MSG_LIST_CONDITION_FOLDER_ID_INT, MSG_DRAFT_ID);
+               msg_set_int_value(listCond, MSG_LIST_CONDITION_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+               msg_get_message_list2(pData->msgHandle, listCond, &draft_list);
+
+               if (draft_list.nCount > 0 && (bubble_info->smsCnt + bubble_info->mmsCnt) == draft_list.nCount) {
+                       msg_get_int_value(draft_list.msg_struct_info[0], MSG_MESSAGE_ID_INT, &draft_id);
+                       msg_ui_thread_get_composer_data(draft_id, svc_handle);
+                       ug_type = MSG_COMPOSER_UG_TYPE_COMPOSER;
+               } else {
+                       char buf[DEF_BUF_LEN_S] = {0,};
+                       char buf_contact[DEF_BUF_LEN_S] = {0,};
+
+                       snprintf(buf, DEF_BUF_LEN_S, "%d", threadId);
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_NAME, bubble_info->address);
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_CONTACT_ID, buf_contact);
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_INDICATOR_MODE, MSG_BUNDLE_VALUE_NO_INDICATOR);
+
+                       if (pListData->search_mode == THREAD_SEARCH_ON)
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_SEARCH_WORD, pListData->search_str);
+
+                       ug_type = MSG_COMPOSER_UG_TYPE_VIEWER;
+               }
+
+               msg_release_list_struct(&draft_list);
+               msg_release_struct(&listCond);
+
+               if (msg_ui_load_composer_ug(svc_handle, ug_type, false) == MSG_UI_RET_ERR)
+                       D_EMSG("Failed to load composer ug");
+
+               app_control_destroy(svc_handle);
+       }
+}
+
+static void __msg_ui_thread_search_bubble_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       if (!data) {
+               D_EMSG("[ERROR] data is NULL");
+               return;
+       }
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       PMSG_COMMON_BUBBLE_INFO_S bubble_info = evas_object_data_get(obj, "bubble_info");
+
+       if (bubble_info->bubble_mode == BUBBLE_MODE_SEARCH) {
+               msg_ui_thread_create_bubble_by_msgid(pListData, bubble_info->msgId, false);
+               msg_ui_thread_list_msg_item_update(pListData, bubble_info->msgId);
+       } else if (bubble_info->bubble_mode == BUBBLE_MODE_SEARCH_THREAD) {
+               __msg_ui_thread_create_bubble_by_thread_id(pListData, bubble_info, bubble_info->threadId);
+               msg_ui_thread_list_item_update(pListData, bubble_info->threadId);
+       } else {
+               D_EMSG("[ERROR] invalid bubble mode [%d]", bubble_info->bubble_mode);
+       }
+
+       D_LEAVE;
+}
+
+static Evas_Object *__msg_ui_thread_create_search_divider(Evas_Object *parent, char *str)
+{
+       Evas_Object *layout = NULL;
+
+       layout = elm_layout_add(parent);
+
+       elm_layout_file_set(layout, MSG_THREAD_THEME, "search_bubble_line");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       char *markup_text = elm_entry_utf8_to_markup(str);
+       if (markup_text) {
+               elm_object_part_text_set(layout, "elm.text", markup_text);
+               free(markup_text);
+       }
+
+       evas_object_show(layout);
+
+       return layout;
+
+}
+
+static void __msg_ui_thread_add_search_bubble_divider(PMSG_THREAD_LIST_DATA pListData, int divider_type)
+{
+       char text[DEF_BUF_LEN] = {0,};
+       char *temp = NULL;
+       if (divider_type == SEARCH_BUBBLE_DIVIDER_THREAD) {
+               if (pListData->search_thread_cnt == 1) {
+                       snprintf(text, sizeof(text), dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_1_CONVERSATION"));
+               } else {
+                       temp = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_PD_CONVERSATIONS");
+                       snprintf(text, sizeof(text), temp, pListData->search_thread_cnt);
+               }
+
+               pListData->adv_search_thread_divider = __msg_ui_thread_create_search_divider(pListData->adv_search_box, text);
+
+               elm_box_pack_end(pListData->adv_search_box, pListData->adv_search_thread_divider);
+
+       } else if (divider_type == SEARCH_BUBBLE_DIVIDER_MSG) {
+               if (pListData->search_msg_cnt == 1) {
+                       snprintf(text, sizeof(text), dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_1_MESSAGE"));
+               } else {
+                       temp = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_PD_MESSAGES");
+                       snprintf(text, sizeof(text), temp, pListData->search_msg_cnt);
+               }
+
+               pListData->adv_search_msg_divider = __msg_ui_thread_create_search_divider(pListData->adv_search_box, text);
+
+               elm_box_pack_end(pListData->adv_search_box, pListData->adv_search_msg_divider);
+       } else {
+               D_EMSG("invalid divider_type [%d]", divider_type);
+               return;
+       }
+}
+
+static void __msg_ui_thread_update_search_bubble_divider(PMSG_THREAD_LIST_DATA pListData, int divider_type)
+{
+       char text[DEF_BUF_LEN] = {0,};
+       char *temp = NULL;
+       char *markup_text = NULL;
+
+       if (divider_type == SEARCH_BUBBLE_DIVIDER_THREAD) {
+               if (pListData->adv_search_thread_divider) {
+                       if (pListData->search_thread_cnt == 0) {
+                               elm_box_unpack(pListData->adv_search_box, pListData->adv_search_thread_divider);
+                               evas_object_del(pListData->adv_search_thread_divider);
+                               pListData->adv_search_thread_divider = NULL;
+
+                               elm_box_recalculate(pListData->adv_search_box);
+                       } else if (pListData->search_thread_cnt == 1) {
+                               snprintf(text, sizeof(text), dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_1_CONVERSATION"));
+                       } else if (pListData->search_thread_cnt > 1) {
+                               temp = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_PD_CONVERSATIONS");
+                               snprintf(text, sizeof(text), temp, pListData->search_thread_cnt);
+                       } else {
+                               D_EMSG("invalid search_thread_cnt = [%d]", pListData->search_thread_cnt);
+                       }
+
+                       markup_text = elm_entry_utf8_to_markup(text);
+                       if (markup_text) {
+                               elm_object_part_text_set(pListData->adv_search_thread_divider, "elm.text", markup_text);
+                               free(markup_text);
+                       }
+               } else {
+                       D_EMSG("search thread divider is NULL");
+               }
+       } else if (divider_type == SEARCH_BUBBLE_DIVIDER_MSG) {
+               if (pListData->adv_search_msg_divider) {
+                       if (pListData->search_msg_cnt == 0) {
+                               elm_box_unpack(pListData->adv_search_box, pListData->adv_search_msg_divider);
+                               evas_object_del(pListData->adv_search_msg_divider);
+                               pListData->adv_search_msg_divider = NULL;
+
+                               elm_box_recalculate(pListData->adv_search_box);
+                       } else if (pListData->search_msg_cnt == 1) {
+                               snprintf(text, sizeof(text), dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_1_MESSAGE"));
+                       } else if (pListData->search_msg_cnt > 0) {
+                               temp = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_PD_MESSAGES");
+                               snprintf(text, sizeof(text), temp, pListData->search_msg_cnt);
+                       } else {
+                               D_EMSG("invalid search_msg_cnt = [%d]", pListData->search_msg_cnt);
+                       }
+
+                       markup_text = elm_entry_utf8_to_markup(text);
+                       if (markup_text) {
+                               elm_object_part_text_set(pListData->adv_search_msg_divider, "elm.text", markup_text);
+                               free(markup_text);
+                       }
+               } else {
+                       D_EMSG("search msg divider is NULL");
+               }
+       } else {
+               D_EMSG("Invalid divider type [%d]", divider_type);
+       }
+}
+
+static void __msg_ui_thread_append_bubble(PMSG_THREAD_LIST_DATA pListData, PMSG_COMMON_BUBBLE_INFO_S item_data, MSG_COMMON_BUBBLE_TIME_S *time_info)
+{
+       /* divider */
+       if (pListData->search_append_cnt == 0) {
+               if (pListData->search_thread_cnt > 0) {
+                       __msg_ui_thread_add_search_bubble_divider(pListData, SEARCH_BUBBLE_DIVIDER_THREAD);
+               } else {
+                       if (pListData->search_msg_cnt > 0)
+                               __msg_ui_thread_add_search_bubble_divider(pListData, SEARCH_BUBBLE_DIVIDER_MSG);
+               }
+       } else {
+               if (pListData->search_thread_cnt == pListData->search_append_cnt) {
+                       if (pListData->search_msg_cnt > 0)
+                               __msg_ui_thread_add_search_bubble_divider(pListData, SEARCH_BUBBLE_DIVIDER_MSG);
+               }
+       }
+
+       if (item_data) {
+               D_MSG("appended item thread id [%d]", item_data->threadId);
+               msg_common_make_bubble(pListData->adv_search_box, pListData->adv_search_bubble_theme, item_data, time_info);
+               evas_object_smart_callback_add(item_data->label, "clicked", __msg_ui_thread_search_bubble_clicked_cb, (void *)pListData);
+
+               elm_box_pack_end(pListData->adv_search_box, item_data->label);
+       }
+
+       pListData->search_append_cnt++;
+}
+
+static Eina_Bool __msg_ui_thread_search_bubble_load_cb(void *data)
+{
+       if (!data) {
+               D_EMSG("[ERROR] data is NULL");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       int search_total = pListData->search_msg_cnt + pListData->search_thread_cnt;
+       static int loop_cnt = 0;
+
+       /* initialize loop_cnt */
+       if (pListData->search_append_cnt == 0)
+               loop_cnt = 0;
+
+       if (search_total == pListData->search_append_cnt) {
+               loop_cnt = 0;
+               pListData->search_animator = NULL;
+               return ECORE_CALLBACK_CANCEL;
+       } else if (pListData->search_append_cnt > 0 && (pListData->search_append_cnt % SEARCH_BUBBLE_PARTIAL_LOADING_CNT) == 0 && loop_cnt) {
+               loop_cnt = 0;
+               pListData->search_animator = NULL;
+               return ECORE_CALLBACK_CANCEL;
+       } else {
+               MSG_COMMON_BUBBLE_TIME_S time_info = {0,};
+               PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+               msg_struct_list_s *msg_list = NULL; /* pListData->search_conv_list; or pListData->search_msg_list; */
+
+               /* getting time information */
+               strncpy(time_info.locale, pData->locale, sizeof(time_info.locale)-1);
+
+               time_info.time_fmt = pData->time_fmt;
+               time_info.time_12h_ptn = pData->time_12h_ptn;
+               time_info.time_24h_ptn = pData->time_24h_ptn;
+               time_info.date_ptn_default = pData->date_ptn_default;
+               time_info.date_ptn_year = pData->date_ptn_year;
+
+               if (pListData->search_thread_cnt > pListData->search_append_cnt) {
+                       msg_list = pListData->search_conv_list;
+                       item_data = (PMSG_COMMON_BUBBLE_INFO_S)calloc(1, sizeof(MSG_COMMON_BUBBLE_INFO_S));
+                       pListData->search_bubble_list = eina_list_append(pListData->search_bubble_list, item_data);
+
+                       msg_common_set_bubble_info_by_thread_data(item_data, &time_info, pData->msgHandle, msg_list->msg_struct_info[pListData->search_append_cnt]);
+
+                       item_data->bubble_mode = BUBBLE_MODE_SEARCH_THREAD;
+               } else {
+                       msg_list = pListData->search_msg_list;
+                       int msgId = 0;
+                       int index = pListData->search_append_cnt - pListData->search_thread_cnt;
+                       msg_struct_t conv = msg_create_struct(MSG_STRUCT_CONV_INFO);
+
+                       if (index < msg_list->nCount)
+                               msg_get_int_value(msg_list->msg_struct_info[index], MSG_MESSAGE_ID_INT, (int *)(&msgId));
+
+                       if (msgId > 0) {
+                               D_MSG("msgId [%d]", msgId);
+                               item_data = (PMSG_COMMON_BUBBLE_INFO_S)calloc(1, sizeof(MSG_COMMON_BUBBLE_INFO_S));
+                               pListData->search_bubble_list = eina_list_append(pListData->search_bubble_list, item_data);
+
+                               if (msg_get_conversation(pData->msgHandle, msgId, conv) != MSG_SUCCESS) {
+                                       msg_release_struct(&conv);
+                                       D_SEC_EMSG("[ERROR] msg_get_conversation error msgID [%d]", msgId);
+                                       /* set animator to null before returning */
+                                       pListData->search_animator = NULL;
+
+                                       free(item_data);
+                                       item_data = NULL;
+
+                                       return ECORE_CALLBACK_CANCEL;
+                               }
+                               msg_common_set_bubble_info_by_conv_data(item_data, &time_info, conv);
+                               item_data->bubble_mode = BUBBLE_MODE_SEARCH;
+                       }
+                       msg_release_struct(&conv);
+               }
+
+               if (item_data) {
+                       item_data->search_word = pListData->search_str;
+                       item_data->recv_bubble_style = pListData->recv_bubble_style;
+                       item_data->sent_bubble_style = pListData->sent_bubble_style;
+
+                       __msg_ui_thread_append_bubble(pListData, item_data, &time_info);
+                       loop_cnt++;
+               } else {
+                       /* set animator to null before returning */
+                       pListData->search_animator = NULL;
+                       return ECORE_CALLBACK_CANCEL;
+               }
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       /* set animator to null before returning*/
+       pListData->search_animator = NULL;
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void msg_ui_thread_remove_search_bubble_by_msgid(PMSG_THREAD_LIST_DATA pListData, int msg_id)
+{
+       D_ENTER;
+
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       Eina_List *l = NULL;
+
+       EINA_LIST_FOREACH(pListData->search_bubble_list, l, item_data) {
+               if (item_data && item_data->msgId == msg_id) {
+                       if (item_data->label) {
+                               /* unpack and remove object */
+                               elm_box_unpack(pListData->adv_search_box, item_data->label);
+                               evas_object_del(item_data->label);
+                               item_data->label = NULL;
+
+                               elm_box_recalculate(pListData->adv_search_box);
+
+                               /* remove from eina list */
+                               pListData->search_bubble_list = eina_list_remove(pListData->search_bubble_list, item_data);
+
+                               free(item_data);
+
+                               pListData->search_append_cnt--;
+                               pListData->search_msg_cnt--;
+                       }
+
+                       __msg_ui_thread_update_search_bubble_divider(pListData, SEARCH_BUBBLE_DIVIDER_MSG);
+                       break;
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_remove_search_bubble_by_thread_id(PMSG_THREAD_LIST_DATA pListData, int thread_id)
+{
+       D_ENTER;
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       Eina_List *l = NULL;
+
+       EINA_LIST_FOREACH(pListData->search_bubble_list, l, item_data) {
+               if (item_data && item_data->threadId == thread_id) {
+                       if (item_data->label) {
+                               /* unpack and remove object */
+                               elm_box_unpack(pListData->adv_search_box, item_data->label);
+                               evas_object_del(item_data->label);
+                               item_data->label = NULL;
+
+                               elm_box_recalculate(pListData->adv_search_box);
+
+                               /* remove from eina list */
+                               pListData->search_bubble_list = eina_list_remove(pListData->search_bubble_list, item_data);
+                               free(item_data);
+
+                               pListData->search_append_cnt--;
+                               pListData->search_thread_cnt--;
+                       }
+
+                       if ((pListData->search_msg_cnt + pListData->search_thread_cnt) == 0)
+                               elm_naviframe_item_pop(pData->navi_frame);
+                       else
+                               __msg_ui_thread_update_search_bubble_divider(pListData, SEARCH_BUBBLE_DIVIDER_THREAD);
+                       break;
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_update_thread_search_bubble(PMSG_THREAD_LIST_DATA pListData, msg_struct_t threadInfo)
+{
+       D_ENTER;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       Eina_List *l = NULL;
+       int thread_id = -1;
+
+       msg_get_int_value(threadInfo, MSG_THREAD_ID_INT, &thread_id);
+
+       EINA_LIST_FOREACH(pListData->search_bubble_list, l, item_data) {
+               if (item_data && item_data->threadId == thread_id) {
+                       if (item_data->label) {
+                               MSG_COMMON_BUBBLE_TIME_S time_info = {0,};
+                               strncpy(time_info.locale, pData->locale, sizeof(time_info.locale)-1);
+                               time_info.time_fmt = pData->time_fmt;
+                               time_info.time_12h_ptn = pData->time_12h_ptn;
+                               time_info.time_24h_ptn = pData->time_24h_ptn;
+                               time_info.date_ptn_default = pData->date_ptn_default;
+                               time_info.date_ptn_year = pData->date_ptn_year;
+
+                               msg_common_set_bubble_info_by_thread_data(item_data, &time_info, pData->msgHandle, threadInfo);
+                               item_data->bubble_mode = BUBBLE_MODE_SEARCH_THREAD;
+
+                               msg_common_update_bubble(pListData->adv_search_bubble_theme, item_data, &time_info);
+                       }
+                       break;
+               }
+       }
+       D_LEAVE;
+}
+
+void msg_ui_thread_adv_search_lang_change(PMSG_THREAD_LIST_DATA pListData)
+{
+       if (pListData->adv_search_thread_divider)
+               __msg_ui_thread_update_search_bubble_divider(pListData, SEARCH_BUBBLE_DIVIDER_THREAD);
+
+       if (pListData->adv_search_msg_divider)
+               __msg_ui_thread_update_search_bubble_divider(pListData, SEARCH_BUBBLE_DIVIDER_MSG);
+}
+
+void msg_ui_thread_launch_search_detail_view(PMSG_THREAD_LIST_DATA pListData, char *search_str)
+{
+       D_ENTER;
+
+       if (!pListData || pListData->adv_search_ly) {
+               D_EMSG("[ERROR] pListData is NULL or adv_search_ly is already exist");
+               return;
+       }
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       Evas_Object *layout = NULL;
+       Evas_Object *scroller = NULL;
+       Evas_Object *box = NULL;
+
+       if (pListData->search_msg_cnt + pListData->search_thread_cnt == 0) /* no result */
+               return;
+
+       /* create layout */
+       int backgroud_style = 0;
+
+       msg_common_sync_local_font_size();
+       int index = 0;
+       if (msg_common_get_font_size(&index) == FALSE) {
+               D_EMSG("getting font size failed [%d]", index);
+               index = MSG_APP_FONT_SIZE_INDEX_NORMAL;
+       }
+       msg_common_change_bubble_font_style(index);
+       layout = msg_common_create_bubble_layout_with_bg(pData->navi_frame, backgroud_style);
+       scroller = __msg_ui_thread_create_bubble_scroller(layout);
+       evas_object_smart_callback_add(scroller, "scroll,drag,start", __msg_ui_thread_scroll_drag_start_cb, pListData);
+       box = __msg_ui_thread_create_bubble_box(scroller);
+
+       elm_object_part_content_set(layout, "elm.swallow.content", scroller);
+       elm_object_content_set(scroller, box);
+
+       pListData->adv_search_box = box;
+
+       /* push navi item */
+       Elm_Object_Item *nf_it = NULL;
+
+       pListData->adv_search_bubble_theme = msg_common_init_custom_winset_theme();
+
+       pListData->search_append_cnt = 0;
+
+       /* delete animator before creating */
+       if (pListData->search_animator) {
+               ecore_animator_del(pListData->search_animator);
+               pListData->search_animator = NULL;
+       }
+
+       pListData->search_animator = ecore_animator_add(__msg_ui_thread_search_bubble_load_cb, (const void *)pListData);
+
+       nf_it = elm_naviframe_item_push(pData->navi_frame, "IDS_MSGF_HEADER_ADVANCED_SEARCH", NULL, NULL, layout, NULL);
+       elm_object_item_domain_text_translatable_set(nf_it, MESSAGE_PKGNAME, EINA_TRUE);
+       pListData->adv_search_ly = layout;
+       pListData->adv_search_nf_it = nf_it;
+
+       elm_naviframe_item_pop_cb_set(nf_it, msg_ui_thread_back_btn_clicked_cb, (void *)pListData);
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_reload_search_detail_view(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+
+       /* load again */
+       if (pListData->search_msg_cnt + pListData->search_thread_cnt == 0) {
+               elm_naviframe_item_pop(pData->navi_frame);
+       } else {
+               PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+
+               /** destroy old data **/
+               EINA_LIST_FREE(pListData->search_bubble_list, item_data) {
+                       if (item_data) {
+                               evas_object_del(item_data->label);
+
+                               if (item_data->msgTime)
+                                       free(item_data->msgTime);
+                               free(item_data);
+                       }
+
+                       pListData->search_append_cnt = 0;
+
+                       if (pListData->adv_search_thread_divider) {
+                               evas_object_del(pListData->adv_search_thread_divider);
+                               pListData->adv_search_thread_divider = NULL;
+                       }
+
+                       if (pListData->adv_search_msg_divider) {
+                               evas_object_del(pListData->adv_search_msg_divider);
+                               pListData->adv_search_msg_divider = NULL;
+                       }
+
+                       if (pListData->search_animator) {
+                               ecore_animator_del(pListData->search_animator);
+                               pListData->search_animator = NULL;
+                       }
+               }
+               /* reload */
+               pListData->search_animator = ecore_animator_add(__msg_ui_thread_search_bubble_load_cb, (const void *)pListData);
+       }
+
+       D_LEAVE;
+}
+
+Eina_Bool msg_ui_thread_destroy_search_detail_view(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       PMSG_COMMON_BUBBLE_INFO_S item_data = NULL;
+       Eina_Bool ret = EINA_FALSE;
+
+       EINA_LIST_FREE(pListData->search_bubble_list, item_data) {
+               if (item_data) {
+                       evas_object_del(item_data->label);
+
+                       if (item_data->msgTime)
+                               free(item_data->msgTime);
+
+                       if (item_data->msgText)
+                               free(item_data->msgText);
+
+                       if (item_data->address)
+                               free(item_data->address);
+
+                       free(item_data);
+               }
+       }
+
+       if (pListData->adv_search_thread_divider) {
+               evas_object_del(pListData->adv_search_thread_divider);
+               pListData->adv_search_thread_divider = NULL;
+       }
+
+       if (pListData->adv_search_msg_divider) {
+               evas_object_del(pListData->adv_search_msg_divider);
+               pListData->adv_search_msg_divider = NULL;
+       }
+
+       if (pListData->search_animator) {
+               ecore_animator_del(pListData->search_animator);
+               pListData->search_animator = NULL;
+       }
+
+       if (pListData->adv_search_ly) {
+               Evas_Object *scroller;
+               scroller = elm_object_part_content_get(pListData->adv_search_ly, "elm.swallow.content");
+
+               evas_object_smart_callback_del(scroller, "edge,bottom", __msg_ui_thread_scroll_edge_bottom_cb);
+               evas_object_smart_callback_del(scroller, "scroll,drag,start", __msg_ui_thread_scroll_drag_start_cb);
+               evas_object_del(pListData->adv_search_ly);
+
+               pListData->adv_search_ly = NULL;
+       }
+
+       msg_common_destroy_custom_winset_theme(pListData->adv_search_bubble_theme);
+       pListData->search_append_cnt = 0;
+       pListData->adv_search_box = NULL;
+       pListData->adv_search_nf_it = NULL;
+
+       if (msg_ui_thread_rotation_get() == true)
+               elm_object_item_del(elm_naviframe_top_item_get(pData->navi_frame));
+       else
+               ret = EINA_TRUE;
+
+       D_LEAVE;
+       return ret;
+}
+#endif
+
+void msg_ui_thread_get_time_format(PMSG_THREAD_DATA pData)
+{
+       int timeformat = msg_common_get_timeformat();
+
+       if (timeformat == MSG_TIME_FORMAT_UNKNOWN)
+               pData->time_fmt = MSG_TIME_FORMAT_12H;
+       else
+               pData->time_fmt = timeformat;
+
+       D_MSG("%s", pData->time_fmt == MSG_TIME_FORMAT_24H ? "TIME FORMAT = 24h" : "TIME FORMAT = 12h");
+}
+
+void msg_ui_thread_get_locale(PMSG_THREAD_DATA pData)
+{
+       const char *locale;
+
+       locale = msg_common_get_default_locale();
+
+       if (locale) {
+               strncpy(pData->locale, locale, sizeof(pData->locale)-1);
+       }
+
+       D_MSG("Locale = %s", pData->locale);
+}
+
+void msg_ui_thread_get_bubble_data(PMSG_APP_THREAD_CONV_DATA_S item_data, app_control_h svc_handle)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !item_data || !svc_handle);
+
+       char buf[DEF_BUF_LEN_S] = {'0',};
+       char buf_contact[DEF_BUF_LEN_S] = {'0',};
+       char layout_address[DEF_BUF_LEN_S + 1] = {0, };
+       Evas_Object *layout = msg_ui_get_main_layout();
+
+       if (layout) {
+               snprintf(layout_address, sizeof(layout_address)-1, "%x", (unsigned int)layout);
+               D_SEC_MSG("hex layout value [0x%x]", layout_address);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_LAYOUT_ADDRESS, layout_address);
+       }
+       snprintf(buf, DEF_BUF_LEN_S, "%d", item_data->thread_id);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_CONTACT_ID, buf_contact);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_INDICATOR_MODE, MSG_BUNDLE_VALUE_NO_INDICATOR);
+
+       /* add msg_type */
+       snprintf(buf, DEF_BUF_LEN_S, "%d", item_data->msg_type);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_TYPE, buf);
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_get_composer_data(int msg_id, app_control_h svc_handle)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !svc_handle);
+
+       char buf[DEF_BUF_LEN_S+1] = {0,};
+
+       snprintf(buf, DEF_BUF_LEN_S, "%d", msg_id);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, buf);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_EDIT);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, MSG_BUNDLE_VALUE_INTERNAL);
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_get_addr_info(PMSG_APP_THREAD_ADDR_INFO_S *addr_info, int count, msg_struct_list_s *addrList_S, msg_list_handle_t addrList_H)
+{
+       msg_struct_t addr_data = NULL;
+       char strNumber[DEF_THREAD_ADDR_LEN + 1] = {0,};
+       int addressType = 0;
+       int i = 0;
+
+       for (i = 0; i < count; i++) {
+               if (addrList_S)
+                       addr_data = addrList_S->msg_struct_info[i];
+               else if (addrList_H)
+                       addr_data = (msg_struct_t)msg_list_nth_data(addrList_H, i);
+
+               addr_info[i] = (PMSG_APP_THREAD_ADDR_INFO_S)calloc(1, sizeof(MSG_APP_THREAD_ADDR_INFO_S));
+               memset(addr_info[i] , 0x00, sizeof(MSG_APP_THREAD_ADDR_INFO_S));
+
+               msg_get_str_value(addr_data, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, strNumber, DEF_THREAD_ADDR_LEN);
+               msg_get_int_value(addr_data, MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, &addressType);
+
+               if (addressType != MSG_ADDRESS_TYPE_EMAIL) {
+                       if (msg_common_is_valid_phone_number(strNumber))
+                               addressType = MSG_ADDRESS_TYPE_PLMN;
+                       else
+                               addressType = MSG_ADDRESS_TYPE_UNKNOWN;
+               }
+               addr_info[i]->addr_type = addressType;
+
+               if (strlen(strNumber) > 0) {
+                       strncpy(addr_info[i]->address, strNumber, sizeof(addr_info[i]->address)-1);
+
+                       int contact_id = 0;
+                       int ct_err = CONTACTS_ERROR_NONE;
+                       contacts_list_h list = NULL;
+                       contacts_query_h query = NULL;
+                       contacts_filter_h filter = NULL;
+
+                       unsigned int number_projection[] = {
+                               _contacts_person_number.person_id,
+                               _contacts_person_number.display_name,
+                               _contacts_person_number.image_thumbnail_path,
+                       };
+
+                       unsigned int email_projection[] = {
+                               _contacts_person_email.person_id,
+                               _contacts_person_email.display_name,
+                               _contacts_person_email.image_thumbnail_path,
+                       };
+
+                       if (addressType == MSG_ADDRESS_TYPE_PLMN) {
+                               contacts_query_create(_contacts_person_number._uri, &query);
+                               contacts_filter_create(_contacts_person_number._uri, &filter);
+                               contacts_filter_add_str(filter, _contacts_person_number.number_filter, CONTACTS_MATCH_EXACTLY, addr_info[i]->address);
+                       } else if (addressType == MSG_ADDRESS_TYPE_EMAIL) {
+                               contacts_query_create(_contacts_person_email._uri, &query);
+                               contacts_filter_create(_contacts_person_email._uri, &filter);
+                               contacts_filter_add_str(filter, _contacts_person_email.email, CONTACTS_MATCH_EXACTLY, addr_info[i]->address);
+                       }
+                       contacts_query_set_filter(query, filter);
+
+                       if (addressType == MSG_ADDRESS_TYPE_PLMN)
+                               ct_err = contacts_query_set_projection(query, number_projection, sizeof(number_projection)/sizeof(int));
+                       else if (addressType == MSG_ADDRESS_TYPE_EMAIL)
+                               ct_err = contacts_query_set_projection(query, email_projection, sizeof(email_projection)/sizeof(int));
+
+                       if (ct_err == CONTACTS_ERROR_NONE)
+                               ct_err = contacts_db_get_records_with_query(query, 0, 0, &list);
+                       contacts_filter_destroy(filter);
+                       contacts_query_destroy(query);
+
+                       if (ct_err != CONTACTS_ERROR_NONE) {
+                               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+                       }
+
+                       while (CONTACTS_ERROR_NONE == ct_err) {
+                               contacts_record_h ct_value = NULL;
+                               char *display = NULL;
+                               char *thumb_path = NULL;
+
+                               contacts_list_get_current_record_p(list, &ct_value);
+
+                               if (ct_value) {
+                                       if (addressType == MSG_ADDRESS_TYPE_PLMN) {
+                                               contacts_record_get_int(ct_value, _contacts_person_number.person_id, &contact_id);
+                                               contacts_record_get_str_p(ct_value, _contacts_person_number.display_name, &display);
+                                               contacts_record_get_str_p(ct_value, _contacts_person_number.image_thumbnail_path, &thumb_path);
+                                       } else if (addressType == MSG_ADDRESS_TYPE_EMAIL) {
+                                               contacts_record_get_int(ct_value, _contacts_person_email.person_id, &contact_id);
+                                               contacts_record_get_str_p(ct_value, _contacts_person_email.display_name, &display);
+                                               contacts_record_get_str_p(ct_value, _contacts_person_email.image_thumbnail_path, &thumb_path);
+                                       }
+
+                                       if (contact_id > 0) {
+                                               addr_info[i]->contact_id = contact_id;
+                                               if (!display) {
+                                                       strncpy(addr_info[i]->display_name, "", sizeof(addr_info[i]->display_name)-1);
+                                               } else {
+                                                       if (strlen(display))
+                                                               strncpy(addr_info[i]->display_name, display, sizeof(addr_info[i]->display_name));
+                                                       else
+                                                               strncpy(addr_info[i]->display_name, "", sizeof(addr_info[i]->display_name)-1);
+                                               }
+
+                                               if (thumb_path) {
+                                                       addr_info[i]->thumb_path = (char *)calloc(1, strlen(thumb_path) + 1);
+                                                       strncpy(addr_info[i]->thumb_path, thumb_path, strlen(thumb_path));
+                                               }
+                                               break;
+                                       }
+                               }
+                               ct_err = contacts_list_next(list);
+                       }
+                       contacts_list_destroy(list, true);
+               } else {
+                       strncpy(addr_info[i]->address, "", sizeof(addr_info[i]->address)-1);
+                       snprintf(addr_info[i]->display_name, sizeof(addr_info[i]->display_name)-1, dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+                       addr_info[i]->contact_id = 0;
+                       addr_info[i]->thumb_path = NULL;
+                       addr_info[i]->addr_type = MSG_ADDRESS_TYPE_UNKNOWN;
+               }
+       }
+}
+
+void msg_ui_thread_cancel_edit_mode(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+       Elm_Object_Item *it;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       it = elm_genlist_first_item_get(pListData->genlist);
+       while (it) {
+               if (pListData->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                       PMSG_APP_THREAD_CONV_DATA_S item_data = NULL;
+
+                       item_data = (PMSG_APP_THREAD_CONV_DATA_S)elm_object_item_data_get(it);
+                       if (item_data)
+                               item_data->is_check = EINA_FALSE;
+               } else {
+                       PMSG_APP_THREAD_MSG_DATA_S item_data = NULL;
+
+                       item_data = (PMSG_APP_THREAD_MSG_DATA_S)elm_object_item_data_get(it);
+                       if (item_data)
+                               item_data->is_check = EINA_FALSE;
+               }
+
+               it = elm_genlist_item_next_get(it);
+       }
+
+       pListData->chk_list = eina_list_free(pListData->chk_list);
+       pListData->check_cnt = 0;
+       evas_object_del(pListData->sel_all_btn);
+       pListData->sel_all_btn = NULL;
+       pListData->sel_all_checked = false;
+
+       elm_genlist_decorate_mode_set(pListData->genlist, EINA_FALSE);
+       if (pListData->checkbox_timer) {
+               ecore_timer_del(pListData->checkbox_timer);
+               pListData->checkbox_timer = NULL;
+       }
+
+       Eina_List *realized_list = elm_genlist_realized_items_get(pListData->genlist);
+       Elm_Object_Item *realized_it = NULL;
+       Eina_List *l = NULL;
+
+       EINA_LIST_FOREACH(realized_list, l, realized_it) {
+               elm_object_item_signal_emit(realized_it, "elm,swipe,enabled", "");
+
+               Evas_Object *ic_ly = elm_object_item_part_content_get(realized_it, "elm.icon.2");
+               Evas_Object *check = elm_layout_content_get(ic_ly, "elm.swallow.content");
+               if (check) {
+                       elm_check_state_set(check, EINA_FALSE);
+                       evas_object_del(check);
+               }
+       }
+       elm_genlist_realized_items_update(pListData->genlist);
+       eina_list_free(realized_list);
+
+       pListData->action_type = THREAD_ACTION_NONE;
+       pListData->view_mode = THREAD_NORMAL_VIEW;
+
+       msg_ui_thread_list_add_dummy_item(pListData);
+}
+
+void msg_ui_thread_show_normal_mode(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+               msg_ui_thread_remove_select_all_item(pListData);
+               msg_ui_thread_remove_title_buttons(pListData);
+               msg_ui_thread_cancel_edit_mode(pListData);
+
+               if (pListData->composer_btn)
+                       msg_ui_thread_show_composer_btn(pListData);
+       }
+
+       msg_ui_thread_set_title_status(pListData);
+       msg_ui_thread_set_navi_toolbar_item(pListData, true);
+
+}
+
+void msg_ui_thread_select_item_by_thread_id(PMSG_THREAD_LIST_DATA pListData, int thread_id)
+{
+       if (thread_id <= 0)
+               return;
+
+       Elm_Object_Item *gen_item = NULL;
+
+       gen_item = elm_genlist_first_item_get(pListData->genlist);
+
+       while (gen_item) {
+               if (pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH && elm_genlist_item_parent_get(gen_item) == NULL) {
+                       gen_item = elm_genlist_item_next_get(gen_item);
+                       continue;
+               }
+
+               PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S)elm_object_item_data_get(gen_item);
+               if (item_data && item_data->app_data_type != THREAD_LIST_APP_DATA_CONV) {
+                       gen_item = elm_genlist_item_next_get(gen_item);
+                       continue;
+               }
+
+               if (item_data && thread_id == item_data->thread_id)
+                       break;
+
+               gen_item = elm_genlist_item_next_get(gen_item);
+       }
+
+       if (pListData->sel_thread_id == thread_id) {
+               pListData->sel_gen_item = gen_item;
+
+               ugdata *composer_data = NULL;
+               composer_data = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_CONV, thread_id);
+               if (composer_data)
+                       composer_data->sel_gen_item = gen_item;
+       } else {
+               elm_genlist_item_selected_set(gen_item, false);
+       }
+}
+
+void msg_ui_thread_select_item_by_msg_id(PMSG_THREAD_LIST_DATA pListData, int msg_id)
+{
+       if (msg_id <= 0)
+               return;
+
+       Elm_Object_Item *gen_item = NULL;
+       gen_item = elm_genlist_first_item_get(pListData->genlist);
+
+       while (gen_item) {
+               if (pListData->app_data_type == THREAD_LIST_APP_DATA_SEARCH && elm_genlist_item_parent_get(gen_item) == NULL) {
+                       gen_item = elm_genlist_item_next_get(gen_item);
+                       continue;
+               }
+
+               PMSG_APP_THREAD_MSG_DATA_S item_data = (PMSG_APP_THREAD_MSG_DATA_S)elm_object_item_data_get(gen_item);
+               if (item_data && item_data->app_data_type != THREAD_LIST_APP_DATA_MSG) {
+                       gen_item = elm_genlist_item_next_get(gen_item);
+                       continue;
+               }
+
+               if (item_data && msg_id == item_data->msg_id)
+                       break;
+
+               gen_item = elm_genlist_item_next_get(gen_item);
+       }
+
+       if (pListData->sel_msg_id == msg_id) {
+               elm_genlist_item_selected_set(gen_item, true);
+               pListData->sel_gen_item = gen_item;
+
+               ugdata *composer_data = NULL;
+               composer_data = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_MSG, msg_id);
+               if (composer_data)
+                       composer_data->sel_gen_item = gen_item;
+       } else {
+               elm_genlist_item_selected_set(gen_item, false);
+       }
+}
+
+static Evas_Object *__msg_ui_popup_notify_create(PMSG_THREAD_LIST_DATA pListData)
+{
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+    D_MSG_RETVM_IF(!pData, NULL, "pData is NULL");
+       Evas_Object *popup = elm_popup_add(pData->win_main);
+       if (popup) {
+               elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+               evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_thread_popup_back_cb, (void *)pListData);
+               evas_object_smart_callback_add(popup, "timeout", __msg_ui_thread_popup_response_cb, pListData);
+               elm_popup_timeout_set(popup, 0.8);
+
+               PMSG_APP_THREAD_POPUP pPopup = (PMSG_APP_THREAD_POPUP)calloc(1, sizeof(MSG_APP_THREAD_POPUP));
+
+        if (pPopup) {
+            pPopup->popup_object = popup;
+            pPopup->popup_type = THREAD_POPUP_NONE;
+            pListData->pPopup = pPopup;
+        } else {
+            D_EMSG("pPopup is NULL. Memory cannot be allocated");
+        }
+       }
+       return popup;
+}
+
+void msg_ui_thread_show_notify_translatable(PMSG_THREAD_LIST_DATA pListData, const char *msg_id)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !pListData);
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !msg_id);
+       Evas_Object *popup = __msg_ui_popup_notify_create(pListData);
+       if (popup) {
+               elm_object_translatable_part_text_get(popup, msg_id);
+               evas_object_show(popup);
+       }
+}
+
+void msg_ui_thread_show_notify(PMSG_THREAD_LIST_DATA pListData, const char *msg)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !pListData);
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !msg);
+
+       Evas_Object *popup = __msg_ui_popup_notify_create(pListData);
+       if (popup) {
+               elm_object_text_set(popup, msg);
+               evas_object_show(popup);
+       }
+}
+
+static void __msg_ui_thread_popup_response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       if ((int)event_info != 5 && obj)
+               msg_ui_thread_destroy_popup(pListData);
+}
+
+void msg_ui_thread_show_action_popup(PMSG_THREAD_LIST_DATA pListData, int actionType, const char *msg, void *data)
+{
+       D_ENTER;
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !pListData);
+
+       Evas_Object *popup;
+       Evas_Object *btn_ok;
+       Evas_Object *btn_cancel;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       bool bIsThread = false;
+
+       popup = elm_popup_add(pData->win_main);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_thread_popup_back_cb, (void *)pListData);
+       evas_object_data_set(popup, "item_data", data);
+
+       btn_cancel = elm_button_add(popup);
+       elm_object_style_set(btn_cancel, "popup");
+       elm_object_domain_translatable_text_set(btn_cancel, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB2");
+       elm_object_part_content_set(popup, "button1", btn_cancel);
+       evas_object_smart_callback_add(btn_cancel, "clicked", msg_ui_thread_popup_back_cb, pListData);
+
+       btn_ok = elm_button_add(popup);
+       char *ids_ok_btn = "IDS_MSG_BUTTON_OK_ABB";
+       if (actionType == THREAD_ACTION_DELETE) {
+               ids_ok_btn = "IDS_MSG_BUTTON_DELETE_ABB4";
+       }
+
+       elm_object_style_set(btn_ok, "popup");
+       elm_object_domain_translatable_text_set(btn_ok, MESSAGE_PKGNAME, ids_ok_btn);
+
+       elm_object_part_content_set(popup, "button2", btn_ok);
+       evas_object_smart_callback_add(btn_ok, "clicked", msg_ui_thread_action_popup_ok_clicked_cb, pListData);
+
+       PMSG_APP_THREAD_POPUP_ACTION pPopup = (PMSG_APP_THREAD_POPUP_ACTION)calloc(1, sizeof(MSG_APP_THREAD_POPUP_ACTION));
+       if (pPopup) {
+               pPopup->popup_object = popup;
+               pPopup->popup_type = THREAD_POPUP_ACTION;
+               pPopup->include_protected_msg = false;
+               pPopup->btn_ok = btn_ok;
+       } else {
+               D_EMSG("calloc is failed (%s)", strerror(errno));
+       }
+
+       if (actionType == THREAD_ACTION_DELETE) {
+                elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_HEADER_DELETE");
+
+               if (pListData->view_mode == THREAD_EDIT_VIEW) {
+                       if (pListData->list_type == THREAD_NORMAL_LIST_TYPE)
+                               bIsThread = true;
+                       else
+                               bIsThread = false;
+               } else {/* THREAD_NORMAL_VIEW - long press */
+                       PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S)data;
+                       if (item_data && item_data->app_data_type == THREAD_LIST_APP_DATA_CONV)
+                               bIsThread = true;
+                       else
+                               bIsThread = false;
+               }
+
+               if (bIsThread == true) {
+                       if (pListData->check_cnt > 1 && pListData->check_cnt <= pListData->item_cnt) {
+                               char buf[DEF_BUF_LEN] = { 0, };
+                               snprintf(buf, sizeof(buf), TEXT("IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"), pListData->check_cnt);
+                               elm_object_text_set(popup, buf);
+                       } else {
+                               elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_POP_1_CONVERSATION_WILL_BE_DELETED");
+                       }
+               } else {
+                       if (pListData->check_cnt > 1 && pListData->check_cnt < pListData->item_cnt) {
+                               char buf[DEF_BUF_LEN] = { 0, };
+                               snprintf(buf, sizeof(buf), TEXT("IDS_MSG_POP_PD_CONVERSATIONS_WILL_BE_DELETED"), pListData->check_cnt);
+                               elm_object_text_set(popup, buf);
+                       } else if (pListData->check_cnt == pListData->item_cnt) {
+                               elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_POP_ALL_MESSAGES_WILL_BE_DELETED");
+                       } else {
+                               elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED");
+                       }
+               }
+       } else if (actionType == THREAD_ACTION_RESTORE) {
+               elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSGF_SK_RESTORE");
+               elm_object_text_set(popup, msg);
+       }
+
+       elm_object_text_set(popup, msg);
+       evas_object_show(popup);
+
+       pListData->pPopup = (PMSG_APP_THREAD_POPUP)pPopup;
+       pListData->action_type = actionType;
+}
+
+void msg_ui_thread_action_popup_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       PMSG_APP_THREAD_CONV_DATA_S item_data = NULL;
+       bool include_protected_msg = false;
+
+       if (pListData->pPopup) {
+               if (pListData->pPopup->popup_type == THREAD_POPUP_ACTION) {
+                       PMSG_APP_THREAD_POPUP_ACTION pPopup = (PMSG_APP_THREAD_POPUP_ACTION)pListData->pPopup;
+                       include_protected_msg = pPopup->include_protected_msg;
+               } else if (pListData->pPopup->popup_type == THREAD_POPUP_PROGRESS) {
+                       PMSG_APP_THREAD_POPUP_PROGRESS pPopup = (PMSG_APP_THREAD_POPUP_PROGRESS)pListData->pPopup;
+                       include_protected_msg = pPopup->include_protected_msg;
+               }
+               item_data = (PMSG_APP_THREAD_CONV_DATA_S)evas_object_data_get(pListData->pPopup->popup_object, "item_data");
+
+               msg_ui_thread_destroy_popup(pListData);
+       }
+
+       msg_ui_thread_action_process(data, item_data, include_protected_msg);
+}
+
+void msg_ui_thread_action_process(void *data, void *item, bool include_protected_msg)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(!data, "data is NULL");
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       char address[DEF_THREAD_ADDR_LEN+1] = {0,};
+       bool remove_it = false;
+       bool remove_ug = false;
+       void *addr_data = NULL;
+
+       msg_error_t err =  MSG_SUCCESS;
+       PMSG_APP_THREAD_CONV_DATA_S item_data = (PMSG_APP_THREAD_CONV_DATA_S)item;
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+               if (pListData->action_type == THREAD_ACTION_DELETE) {
+                       if (pListData->list_type == THREAD_NORMAL_LIST_TYPE || pListData->list_type == THREAD_SIM_LIST_TYPE) {
+                               if (pListData->check_cnt > 1) {
+                                       msg_ui_thread_show_notify_with_progressbar(pListData, pListData->check_cnt, include_protected_msg);
+                               } else {
+                                       item_data = eina_list_nth(pListData->chk_list, 0);
+                                       if (item_data) {
+                                               if (pListData->list_type == THREAD_NORMAL_LIST_TYPE) {
+                                                       err = msg_delete_thread_message_list(msg_ui_thread_get_data_handle(), item_data->thread_id, include_protected_msg);
+                                               }
+                                       }
+
+                                       if (!item_data || err != MSG_SUCCESS) {
+                                               D_EMSG("msg_delete_msgs_by_list error [%d] item_data is [%p]", err, item_data);
+
+                                               msg_ui_thread_show_notify_translatable(pListData, "IDS_MSGF_POP_UNABLE_TO_DELETE");
+                                               pListData->action_type = THREAD_ACTION_NONE;
+                                               msg_ui_thread_show_normal_mode(pListData);
+                                       } else {
+                                               msg_ui_thread_multi_action_finish(pListData);
+                                       }
+                               }
+                       } else {
+                               msg_ui_thread_delete_msg_by_list(pListData, pListData->check_cnt, include_protected_msg);
+                       }
+               } else {
+                       msg_ui_thread_show_notify_with_progressbar(pListData, pListData->check_cnt, false);
+               }
+       } else {
+               if (!item_data)
+                       goto __UNABLE_TO_DELETE;
+
+               if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                       if (pListData->action_type == THREAD_ACTION_DELETE) {
+                               err = msg_delete_thread_message_list(msg_ui_thread_get_data_handle(), item_data->thread_id, include_protected_msg);
+                               D_MSG("pPopup->include_protected_msg = %d", include_protected_msg);
+                               if (err == MSG_SUCCESS) {
+                                       /** update bubble list */
+                                       app_control_h svc_handle = NULL;
+
+                                       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                               D_EMSG("app_control_create() is failed !!");
+                                       } else {
+                                               ugdata *bubble_ug = NULL;
+                                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_REQUEST_TYPE, MSG_BUNDLE_VALUE_REFRESH_CONV);
+                                               bubble_ug = msg_ui_get_composer_ug_data_by_id(THREAD_LIST_APP_DATA_CONV, item_data->thread_id);
+                                               if (bubble_ug && bubble_ug->ug_h)
+                                                       ug_send_message(bubble_ug->ug_h, svc_handle);
+                                               app_control_destroy(svc_handle);
+                                       }
+                                       if (msg_ui_thread_list_item_update(pListData, item_data->thread_id) == EINA_FALSE)
+                                               msg_ui_thread_list_item_delete(pListData, item_data->thread_id);
+                               }
+                       }
+               } else {
+                       PMSG_APP_THREAD_MSG_DATA_S msg_data = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+
+                       if (pListData->action_type == THREAD_ACTION_DELETE) {
+                               err = msg_delete_message(msg_ui_thread_get_data_handle(), msg_data->msg_id);
+                               if (err == MSG_SUCCESS) {
+                                       remove_it = true;
+                                       if (pListData->sel_msg_id == msg_data->msg_id)
+                                               remove_ug = true;
+                               }
+                       } else if (pListData->action_type == THREAD_ACTION_RESTORE) {
+                               err = msg_move_msg_to_folder(msg_ui_thread_get_data_handle(), msg_data->msg_id, MSG_INBOX_ID);
+                               if (err == MSG_SUCCESS) {
+                                       msg_common_create_noti_toast_popup("IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST");
+                                       remove_it = true;
+                                       if (pListData->sel_msg_id == msg_data->msg_id)
+                                               remove_ug = true;
+                               } else {
+                                       D_EMSG("msg_move_msg_to_folder() failed.");
+                               }
+                       }
+               }
+
+               if (err != MSG_SUCCESS)
+                       goto __UNABLE_TO_DELETE;
+
+               msg_ui_thread_show_action_finish_info(pListData, pListData->action_type, addr_data);
+
+               if (remove_it == true) {
+                       if (item_data->app_data_type == THREAD_LIST_APP_DATA_CONV) {
+                               msg_ui_thread_list_item_delete(pListData, item_data->thread_id);
+                       } else {
+                               PMSG_APP_THREAD_MSG_DATA_S msg_data = (PMSG_APP_THREAD_MSG_DATA_S)item_data;
+
+                               if (pListData->list_type != THREAD_NORMAL_LIST_TYPE) {
+                                       PMSG_THREAD_LIST_DATA pDefaultList = msg_ui_thread_get_default_list();
+
+                                       if (msg_ui_thread_list_item_update(pDefaultList, msg_data->thread_id) == EINA_FALSE)
+                                               msg_ui_thread_list_item_delete(pDefaultList, msg_data->thread_id);
+                               }
+                               msg_ui_thread_list_msg_item_delete(pListData, msg_data->msg_id);
+                       }
+
+                       if (remove_ug == true) {
+                               if (pListData->loaded_ug && pListData->loaded_ug_type == THREAD_UG_TYPE_VIEWER) {
+                                       ug_destroy(pListData->loaded_ug);
+                                       if (pListData->sel_gen_item)
+                                               elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+                                       pListData->loaded_ug = NULL;
+                                       pListData->loaded_ug_type = THREAD_UG_TYPE_NONE;
+                                       pListData->sel_gen_item = NULL;
+                                       pListData->sel_msg_id = 0;
+                               } else {
+                                       msg_ui_destroy_composer_ug(NULL, true);
+                               }
+                       }
+
+                       if (pListData->item_cnt == 0) {
+                               if (pListData->app_data_type == THREAD_LIST_APP_DATA_CONV)
+                                       msg_ui_thread_list_load(pListData, FALSE);
+                               else
+                                       msg_ui_thread_msg_list_load(pListData, pListData->list_type);
+                       }
+
+                       msg_ui_thread_set_title_status(pListData);
+               }
+
+               pListData->action_type = THREAD_ACTION_NONE;
+       }
+
+       return;
+
+__UNABLE_TO_DELETE:
+
+       pListData->action_type = THREAD_ACTION_NONE;
+       msg_ui_thread_show_notify_translatable(pListData, "IDS_MSGF_POP_UNABLE_TO_DELETE");
+       return;
+}
+
+Eina_Bool __msg_ui_thread_action_restore_result_toast_popup_idler(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, EINA_FALSE, "data is NULL");
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       if (pListData->multi_action_item_cnt > 1) {
+               char popup_text[DEF_BUF_LEN] = {0, };
+               char *str = _MSGSTR("IDS_MSG_TPOP_PD_MESSAGES_MOVED_TO_MESSAGE_LIST");
+               snprintf(popup_text, sizeof(popup_text), str, pListData->multi_action_item_cnt);
+               msg_common_create_noti_toast_popup(popup_text);
+       } else if (pListData->multi_action_item_cnt == 1) {
+               msg_common_create_noti_toast_popup("IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST");
+       }
+
+       pListData->toast_popup_idler = NULL;
+       pListData->multi_action_item_cnt = 0;
+
+       return EINA_FALSE;
+}
+
+void msg_ui_thread_multi_action_finish(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+
+       if (pListData->pPopup)
+               msg_ui_thread_destroy_popup(pListData);
+
+       msg_ui_thread_show_action_finish_info(pListData, pListData->action_type, NULL);
+
+       if (pListData->action_type == THREAD_ACTION_RESTORE) {
+               if (pListData->toast_popup_idler) {
+                       ecore_idler_del(pListData->toast_popup_idler);
+                       pListData->toast_popup_idler = NULL;
+               }
+               pListData->toast_popup_idler = ecore_idler_add(__msg_ui_thread_action_restore_result_toast_popup_idler, (void *)pListData);
+       }
+
+       pListData->action_type = THREAD_ACTION_NONE;
+
+       if (pListData->view_mode == THREAD_EDIT_VIEW) {
+               pListData->retain_list_pos = false;
+               if (pListData->list_type == THREAD_NORMAL_LIST_TYPE) {
+                       msg_ui_thread_list_load(pListData, TRUE);
+               } else {
+                       PMSG_THREAD_LIST_DATA pDefaultList = msg_ui_thread_get_default_list();
+
+                       msg_ui_thread_msg_list_load(pListData, pListData->list_type);
+
+                       if (pDefaultList)
+                               msg_ui_thread_list_load(pDefaultList, FALSE); /* might be changed */
+               }
+               msg_ui_thread_show_normal_mode(pListData);
+       }
+}
+
+void msg_ui_thread_delete_msg_by_list(PMSG_THREAD_LIST_DATA pListData, int count, bool include_protected_msg)
+{
+       D_ENTER;
+
+       int idx = 0;
+       int err = 0;
+       Eina_List *list;
+       PMSG_APP_THREAD_MSG_DATA_S item_data = NULL;
+
+       msg_id_list_s msgIdList;
+       memset(&msgIdList, 0x00, sizeof(msg_id_list_s));
+
+       msg_message_id_t msgIds[count];
+       memset(msgIds, 0x00, sizeof(msgIds));
+       msgIdList.msgIdList = msgIds;
+
+       EINA_LIST_FOREACH(pListData->chk_list, list, item_data) {
+               if (item_data) {
+                       if (include_protected_msg == false) {
+                               msgIds[idx] = item_data->msg_id;
+                               idx++;
+                               msgIdList.nCount++;
+                       } else {
+                               msgIds[idx] = item_data->msg_id;
+                               idx++;
+                               msgIdList.nCount++;
+                       }
+               }
+       }
+
+       err = msg_delete_msgs_by_list(msg_ui_thread_get_data_handle(), &msgIdList);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_delete_msgs_by_list error [%d]", err);
+
+               msg_ui_thread_show_notify_translatable(pListData, "IDS_MSGF_POP_UNABLE_TO_DELETE");
+               pListData->action_type = THREAD_ACTION_NONE;
+               msg_ui_thread_show_normal_mode(pListData);
+       } else {
+               msg_ui_thread_multi_action_finish(pListData);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_thread_show_notify_with_progressbar(PMSG_THREAD_LIST_DATA pListData, int count, bool include_protected_msg)
+{
+       D_ENTER;
+       D_MSG("count[%d]", count);
+
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !pListData);
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+       Evas_Object *popup = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *progressbar = NULL;
+       Evas_Object  *btn_cancel = NULL;
+
+       const char *popup_text = NULL;
+       const char *text_domain = NULL;
+
+       popup = elm_popup_add(pData->win_main);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_thread_popup_back_cb, (void *)pListData);
+
+       layout = elm_layout_add(popup);
+       elm_layout_file_set(layout, MSG_COMMON_EDJ, "delete_popup_center_progressbar");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       if (pListData->action_type == THREAD_ACTION_DELETE) {
+               popup_text = "IDS_MSGF_POP_DELETING";
+               text_domain = MESSAGE_PKGNAME;
+       } else if (pListData->action_type == THREAD_ACTION_RESTORE) {
+               popup_text = "IDS_MSGF_POP_RESTORING_ING";
+               text_domain = MESSAGE_PKGNAME;
+       } else if (pListData->action_type == THREAD_ACTION_COPY_TO_PHONE) {
+               popup_text = "IDS_COM_POP_COPYING_ING";
+               text_domain = SYSTEM_STRING_PKGNAME;
+       }
+
+       progressbar = elm_progressbar_add(popup);
+       elm_object_style_set(progressbar, "list_progress");
+       elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_progressbar_value_set(progressbar, 0.0);
+       elm_progressbar_unit_format_set(progressbar, NULL);
+       evas_object_show(progressbar);
+
+       elm_object_part_content_set(layout, "elm.swallow.content", progressbar);
+       elm_object_domain_translatable_part_text_set(layout, "popup.text", text_domain, popup_text);
+       elm_object_content_set(popup, layout);
+
+       btn_cancel = elm_button_add(popup);
+       elm_object_style_set(btn_cancel, "popup");
+       elm_object_domain_translatable_text_set(btn_cancel, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", btn_cancel);
+       evas_object_smart_callback_add(btn_cancel, "clicked", msg_ui_thread_popup_back_cb, pListData);
+
+       evas_object_show(popup);
+
+       PMSG_APP_THREAD_POPUP_PROGRESS pPopup = (PMSG_APP_THREAD_POPUP_PROGRESS)calloc(1, sizeof(MSG_APP_THREAD_POPUP_PROGRESS));
+       if (pPopup) {
+               pPopup->popup_object = popup;
+               pPopup->popup_type = THREAD_POPUP_PROGRESS;
+
+               pPopup->progressbar = progressbar;
+               pPopup->include_protected_msg = include_protected_msg;
+               pPopup->multi_action_thread = ecore_thread_feedback_run(msg_ui_thread_multi_action_thread_fn, msg_ui_thread_multi_action_thread_feedback_fn, msg_ui_thread_multi_action_thread_finish_cb, msg_ui_thread_multi_action_thread_cancel_cb, (void *)pListData, EINA_TRUE);
+
+               pListData->pPopup = (PMSG_APP_THREAD_POPUP)pPopup;
+       } else {
+               D_EMSG("calloc is failed (%s)", strerror(errno));
+       }
+}
+
+void msg_ui_thread_show_select_info(PMSG_THREAD_LIST_DATA pListData)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !pListData);
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       char label[DEF_BUF_LEN_S+1] =  {'0',};
+
+       if (pListData->check_cnt == 0)
+               elm_object_disabled_set(pData->done_button, EINA_TRUE);
+       else
+               elm_object_disabled_set(pData->done_button, EINA_FALSE);
+
+       msg_ui_thread_get_title_text(pListData, label, DEF_BUF_LEN_S, true);
+       elm_object_item_text_set(pListData->nf_it, label);
+}
+
+void msg_ui_thread_show_action_finish_info(PMSG_THREAD_LIST_DATA pListData, int actionType, void *pData)
+{
+       switch (actionType) {
+               case THREAD_ACTION_COPY_TO_PHONE:
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"));
+                       break;
+               case THREAD_ACTION_COPY_TO_SIM:
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGC_POP_COPIED_TO_SIM_CARD"));
+                       break;
+               case THREAD_ACTION_COPY_TEXT:
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"));
+                       break;
+               case THREAD_ACTION_DELETE:
+               case THREAD_ACTION_RESTORE:
+               default:
+                       break;
+       }
+}
+
+void msg_ui_thread_addr_select_popup(PMSG_THREAD_LIST_DATA pListData, int actionType, PMSG_APP_THREAD_ADDR_INFO_S *addr_info, int addr_cnt)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !pListData);
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       Evas_Object *popup = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *box = NULL;
+       Evas_Object *genlist = NULL;
+       int i = 0;
+       int list_cnt = 0;
+       Evas_Object *btn_block = NULL;
+       Evas_Object *btn_cancel = NULL;
+
+       /** create popup */
+       popup = elm_popup_add(pData->win_main);
+       if (!popup) {
+               D_EMSG("elm_popup_add returns NULL");
+               return;
+       }
+
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_thread_popup_back_cb, (void *)pListData);
+
+       evas_object_smart_callback_add(popup, "block,clicked", msg_ui_thread_popup_back_cb, (void *)pListData);
+
+       layout = elm_layout_add(popup);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       box = elm_box_add(layout);
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       /** create menu genlist */
+       genlist = elm_genlist_add(layout);
+       if (!genlist) {
+               D_EMSG("elm_genlist_add failed");
+               return;
+       }
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+       evas_object_smart_callback_add(genlist, "realized", __msg_ui_thread_addr_select_popup_gl_realized_cb, NULL);
+
+       memset(&pData->itc_popup, 0x00, sizeof(Elm_Genlist_Item_Class));
+       pData->itc_popup.item_style = "default";
+       pData->itc_popup.func.text_get = __msg_ui_thread_addr_select_popup_gl_text_get;
+       pData->itc_popup.func.content_get = __msg_ui_thread_addr_select_popup_gl_content_get;
+       pData->itc_popup.func.state_get = NULL;
+
+       /** append addresses to genlist */
+       for (i = 0; i < addr_cnt;  i++) {
+               bool isBlock = false;
+
+               elm_genlist_item_append(genlist, &pData->itc_popup, addr_info[i], NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_thread_addr_select_popup_gl_sel, pListData);
+               list_cnt++;
+       }
+
+       if (list_cnt > MSG_THREAD_LIST_POPUP_MAX_CNT)
+               list_cnt = MSG_THREAD_LIST_POPUP_MAX_CNT;
+
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_HEADER_SELECT_RECIPIENT");
+
+       elm_box_pack_end(box, genlist);
+       evas_object_show(genlist);
+       evas_object_size_hint_min_set(box, 0, ELM_SCALE_SIZE(MSG_THREAD_LIST_POPUP_ITEM_HEIGHT * list_cnt));
+       evas_object_show(box);
+
+       elm_object_part_content_set(layout, "elm.swallow.content", box);
+       elm_object_content_set(popup, box);
+       evas_object_show(popup);
+
+       PMSG_APP_THREAD_POPUP_ADDRESS pPopup = (PMSG_APP_THREAD_POPUP_ADDRESS)calloc(1, sizeof(MSG_APP_THREAD_POPUP_ADDRESS));
+
+       if (pPopup) {
+               pPopup->popup_object = popup;
+               pPopup->genlist = genlist;
+               pPopup->popup_type = THREAD_POPUP_ADDRESS;
+               pPopup->addr_action = actionType;
+
+               pListData->pPopup = (PMSG_APP_THREAD_POPUP)pPopup;
+       } else {
+               D_EMSG("calloc is failed (%s)", strerror(errno));
+       }
+
+}
+
+static char *__msg_ui_thread_addr_select_popup_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       PMSG_APP_THREAD_ADDR_INFO_S addr_info = (PMSG_APP_THREAD_ADDR_INFO_S)data;
+       MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, !data, NULL);
+
+       if (!g_strcmp0(part, "elm.text")) {
+               if (addr_info->contact_id > 0 && strlen(addr_info->display_name) > 0) {
+                       return strdup(addr_info->display_name);
+               } else {
+                       if (strlen(addr_info->address) > 0)
+                               return strdup(addr_info->address);
+                       else
+                               return strdup(dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+               }
+       }
+       return NULL;
+}
+
+static Evas_Object *__msg_ui_thread_addr_select_popup_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       PMSG_APP_THREAD_ADDR_INFO_S addr_info = (PMSG_APP_THREAD_ADDR_INFO_S)data;
+       Evas_Object *check = NULL;
+
+       if (strcmp(part, "elm.swallow.end") == 0) {
+               check = elm_check_add(obj);
+               evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               elm_check_state_pointer_set(check, &addr_info->is_check);
+               addr_info->chk = check;
+       }
+
+       return check;
+}
+
+void __msg_ui_thread_addr_select_popup_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj || !event_info);
+
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       PMSG_APP_THREAD_ADDR_INFO_S addr_info = (PMSG_APP_THREAD_ADDR_INFO_S)elm_object_item_data_get(item);
+       PMSG_APP_THREAD_POPUP_ADDRESS pPopup = (PMSG_APP_THREAD_POPUP_ADDRESS)pListData->pPopup;
+
+       if (pPopup->addr_action == ADDR_POPUP_CALL) {
+               msg_ui_thread_launch_voice_call(addr_info->address);
+       } else {
+               D_EMSG("invalid action");
+       }
+
+       if (pPopup->job_popup_end)
+               ecore_job_del(pPopup->job_popup_end);
+
+       pPopup->job_popup_end = ecore_job_add(__msg_ui_thread_addr_select_popup_destroy, pListData);
+
+}
+
+static void __msg_ui_thread_addr_select_popup_gl_realized_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!obj || !event_info, "Inparameters are NULL");
+       Elm_Object_Item *item = event_info;
+
+       if (item == elm_genlist_last_item_get(obj))
+               elm_object_item_signal_emit(item, "elm,state,bottomline,hide", "");
+
+       return;
+}
+
+static void __msg_ui_thread_addr_select_popup_destroy(void *data)
+{
+       D_ENTER;
+       PMSG_THREAD_LIST_DATA pListData = (PMSG_THREAD_LIST_DATA)data;
+
+       if (pListData->pPopup)
+               msg_ui_thread_destroy_popup(pListData);
+}
+
+void msg_ui_thread_set_app_state(int app_state)
+{
+       D_ENTER;
+
+       if (app_state <= MSG_UI_STATE_NONE || app_state >= MSG_UI_STATE_MAX)
+               return;
+
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       pData->app_state = app_state;
+
+       if (app_state == MSG_UI_STATE_PAUSE) {
+               PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
+
+               if (pListData) {
+                       if (pListData->pPopup) {
+                               PMSG_APP_THREAD_POPUP pPopup = pListData->pPopup;
+                               if (pPopup->popup_type == THREAD_POPUP_MORE || pPopup->popup_type == THREAD_POPUP_SEARCH
+                                               || pPopup->popup_type == THREAD_POPUP_CONTEXTUAL || pPopup->popup_type == THREAD_POPUP_ADDRESS) {
+                                       msg_ui_thread_destroy_popup(pListData);
+                               }
+                       }
+               }
+       } else if (app_state == MSG_UI_STATE_RUNNING) {
+               PMSG_THREAD_LIST_DATA pListData = NULL;
+               int list_idx = 0;
+               Elm_Object_Item *gen_item = NULL;
+               int posret = 0;
+               int idx = 0;
+               Evas_Coord x = 0;
+               Evas_Coord y = 0;
+               Evas_Coord w = 0;
+               Evas_Coord h = 0;
+
+               if (pData->redrawList == true) {
+                       for (list_idx = MSG_THREAD_LIST_MAX_COUNT-1; list_idx >= 0; list_idx--) {
+                               if (pData->list_data[list_idx] != NULL) {
+                                       pListData = pData->list_data[list_idx];
+
+                                       if (pListData == NULL)
+                                               continue;
+
+                                       if (pListData->pPopup && pListData->pPopup->popup_type == THREAD_POPUP_PROGRESS) {
+                                               PMSG_APP_THREAD_POPUP_PROGRESS pPopup = (PMSG_APP_THREAD_POPUP_PROGRESS)pListData->pPopup;
+
+                                               if (pPopup->multi_action_thread) {
+                                                       pListData->redrawList = false;
+                                                       continue;
+                                               }
+                                       }
+
+                                       /* TODO: This section bellow needs to be refactored.
+                                               */
+                                       if (pListData->redrawList == true) {
+                                               evas_object_geometry_get(pListData->genlist, &x, &y, &w, &h);
+                                               gen_item = elm_genlist_at_xy_item_get(pListData->genlist, x, y, &posret);
+                                               if (gen_item)
+                                                       idx = elm_genlist_item_index_get(gen_item);
+
+                                               switch (pListData->app_data_type) {
+                                               case THREAD_LIST_APP_DATA_SEARCH:
+                                                       msg_ui_thread_search_list_load(pListData);
+                                                       elm_genlist_realized_items_update(pListData->genlist);
+                                                       break;
+                                               case THREAD_LIST_APP_DATA_MSG:
+                                                       msg_ui_thread_msg_list_load(pListData, pListData->list_type);
+                                                       break;
+                                               case THREAD_LIST_APP_DATA_CONV:
+                                               default:
+                                                       msg_ui_thread_list_load(pListData, EINA_FALSE);
+                                                       break;
+                                               }
+
+                                               msg_ui_thread_set_title_status(pListData);
+
+                                               if (idx > 1) {
+                                                       gen_item = elm_genlist_nth_item_get(pListData->genlist, idx);
+                                                       elm_genlist_item_show(gen_item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+                                               }
+                                               pListData->redrawList = false;
+                                       } else {
+                                               switch (pListData->app_data_type) {
+                                               case THREAD_LIST_APP_DATA_SEARCH: {
+                                                       evas_object_geometry_get(pListData->genlist, &x, &y, &w, &h);
+                                                       gen_item = elm_genlist_at_xy_item_get(pListData->genlist, x, y, &posret);
+                                                       if (gen_item)
+                                                               idx = elm_genlist_item_index_get(gen_item);
+
+                                                       msg_ui_thread_search_list_load(pListData);
+                                                       elm_genlist_realized_items_update(pListData->genlist);
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+                                                       if (pListData->adv_search_ly) {
+                                                               if (pListData->search_msg_cnt + pListData->search_thread_cnt == 0)
+                                                                       elm_naviframe_item_pop(pData->navi_frame);
+                                                       }
+#endif
+
+                                                       if (idx > 1) {
+                                                               gen_item = elm_genlist_nth_item_get(pListData->genlist, idx);
+                                                               elm_genlist_item_show(gen_item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+                                                       }
+                                               break;
+                                               }
+                                               case THREAD_LIST_APP_DATA_MSG:
+                                                       msg_ui_thread_list_msg_list_update(pListData);
+                                                       break;
+                                               case THREAD_LIST_APP_DATA_CONV:
+                                               default:
+                                                       msg_ui_thread_list_update(pListData);
+                                                       break;
+                                               }
+
+#ifdef BADGE_COUNT_ENABLE
+                                               msg_ui_thread_set_title_unread_cnt(pListData);
+#endif
+                                       }
+                               }
+                       }
+                       pData->redrawList = false;
+               }
+
+#ifdef MSG_ADVANCED_SEARCH_SUPPORTED
+               /** update bubble font type and size, if the advanced search view is exist */
+               pListData = msg_ui_thread_get_current_list();
+               if (pListData) {
+                       if (pListData->adv_search_ly) {
+                               msg_common_sync_local_font_size();
+                               int index = 0;
+                               if (msg_common_get_font_size(&index) == FALSE) {
+                                       D_EMSG("getting font size failed [%d]", index);
+                                       index = MSG_APP_FONT_SIZE_INDEX_NORMAL;
+                               }
+                               msg_common_change_bubble_font_style(index);
+
+                               /* Reload Advanced Search Layout on resume P140821-07800 */
+                               msg_ui_thread_reload_search_detail_view(pListData);
+                       }
+               }
+#endif
+       }
+       D_LEAVE;
+}
+
+int msg_ui_thread_get_app_state(PMSG_THREAD_DATA pData)
+{
+       if (!pData)
+               return MSG_UI_STATE_NONE;
+
+       return pData->app_state;
+}
+
+void msg_ui_thread_cancel_search_mode(PMSG_THREAD_LIST_DATA pListData, bool destroyUg)
+{
+       D_ENTER;
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       if (pListData == NULL || pListData->search_mode == THREAD_SEARCH_OFF)
+               return;
+
+       if (pListData->search_timer) {
+               ecore_timer_del(pListData->search_timer);
+               pListData->search_timer = NULL;
+       }
+
+       if (pData->th_search)
+               msg_ui_thread_search_job_cancel(pListData);
+
+       if (pListData->search_msg_list.nCount > 0) {
+               msg_release_list_struct(&pListData->search_msg_list);
+       }
+
+       if (pListData->search_conv_list.nCount > 0) {
+               msg_release_list_struct(&pListData->search_conv_list);
+       }
+
+       pListData->search_thread_cnt = 0;
+       pListData->search_msg_cnt = 0;
+
+       evas_object_del(pListData->search_gl);
+       pListData->search_gl = NULL;
+
+       pListData->search_mode = THREAD_SEARCH_OFF;
+
+       bool reset_list = false;
+
+       if (pListData->search_str && strlen(pListData->search_str) > 0) {
+               free(pListData->search_str);
+               pListData->search_str = NULL;
+
+               reset_list = true;
+       } else {
+               Evas_Object *swl_ly = NULL;
+               swl_ly = elm_object_part_content_get(pListData->content_ly, "search_list");
+
+               if (swl_ly == pListData->noc_ly)
+                       reset_list = true;
+       }
+
+       elm_object_part_content_unset(pListData->content_ly, "search");
+       elm_object_part_content_unset(pListData->content_ly, "search_list");
+       elm_object_part_content_set(pListData->content_ly, "thread_list", pListData->genlist);
+
+       if (pListData->noc_ly) {
+               evas_object_del(pListData->noc_ly);
+               pListData->noc_ly = NULL;
+       }
+       pListData->noc_ly = msg_ui_thread_create_nocontent_layout(pData->navi_frame, pListData->search_mode);
+
+       if (reset_list == true) {
+               if (pListData->list_type == THREAD_NORMAL_LIST_TYPE)
+                       msg_ui_thread_list_load(pListData, FALSE);
+               else
+                       msg_ui_thread_msg_list_load(pListData, pListData->list_type);
+       } else
+               msg_ui_thread_list_add_dummy_item(pListData);
+
+       if (destroyUg) {
+               if (pListData->loaded_ug && pListData->loaded_ug_type == THREAD_UG_TYPE_VIEWER) {
+                       ug_destroy(pListData->loaded_ug);
+                       if (pListData->sel_gen_item)
+                               elm_genlist_item_selected_set(pListData->sel_gen_item, false);
+                       pListData->loaded_ug = NULL;
+                       pListData->loaded_ug_type = THREAD_UG_TYPE_NONE;
+                       pListData->sel_gen_item = NULL;
+                       pListData->sel_msg_id = 0;
+               } else {
+                       msg_ui_destroy_composer_ug(NULL, true);
+               }
+       }
+
+       msg_ui_thread_set_title_status(pListData);
+       msg_ui_thread_set_navi_toolbar_item(pListData, true);
+}
+
+void msg_ui_thread_destroy_popup(PMSG_THREAD_LIST_DATA pListData)
+{
+       D_ENTER;
+
+       if (pListData->pPopup) {
+               evas_object_del(pListData->pPopup->popup_object);
+
+               if (pListData->pPopup->popup_type == THREAD_POPUP_PROGRESS) {
+                       PMSG_APP_THREAD_POPUP_PROGRESS pPopup = (PMSG_APP_THREAD_POPUP_PROGRESS)pListData->pPopup;
+                       msg_ui_thread_cancel_ecore_thread(pPopup->multi_action_thread, MSG_THREAD_MULTI_ACTION);
+                       pPopup->multi_action_thread = NULL;
+               }
+
+               free(pListData->pPopup);
+               pListData->pPopup = NULL;
+       }
+
+       if (evas_object_data_get(pListData->genlist, "popup"))
+               evas_object_data_set(pListData->genlist, "popup", NULL);
+
+       if (elm_object_scroll_freeze_get(pListData->genlist))
+               elm_object_scroll_freeze_pop(pListData->genlist);
+
+       Eina_List *realized_list = elm_genlist_realized_items_get(pListData->genlist);
+       Elm_Object_Item *realized_it = NULL;
+       Eina_List *l = NULL;
+
+       EINA_LIST_FOREACH(realized_list, l, realized_it) {
+               elm_object_item_signal_emit(realized_it, "elm,swipe,enabled", "");
+       }
+       eina_list_free(realized_list);
+}
+
+void msg_ui_thread_get_title_text(PMSG_THREAD_LIST_DATA pListData, char *label, int label_len, bool show_count)
+{
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !label, "label is NULL");
+
+       if (pListData) {
+               if (pListData->view_mode == THREAD_EDIT_VIEW) {
+                       char cnt_str[DEF_BUF_LEN_S] =  {'0',};
+                       const char *text = NULL;
+                       if (pListData->check_cnt > 0) {
+                               text = dgettext(MESSAGE_PKGNAME, "IDS_MSG_HEADER_PD_SELECTED_ABB3");
+                               snprintf(cnt_str, sizeof(cnt_str), text, pListData->check_cnt);
+                               strncpy(label, cnt_str, sizeof(char)*label_len);
+                       } else {
+                               if (pListData->list_type == THREAD_NORMAL_LIST_TYPE) {
+                                       text = dgettext(MESSAGE_PKGNAME, "IDS_MSG_HEADER_PD_SELECTED_ABB3");
+                                       snprintf(cnt_str, sizeof(cnt_str), text, pListData->check_cnt);
+                                       strncpy(label, cnt_str, sizeof(char)*label_len);
+                               } else {
+                                       strncpy(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_SELECT_MESSAGES"), sizeof(char)*label_len);
+                               }
+                       }
+               } else {
+                       switch (pListData->list_type) {
+                               case THREAD_NORMAL_LIST_TYPE:
+                                       strncpy(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_HEADER_MESSAGES"), sizeof(char)*label_len);
+                                       break;
+                               case THREAD_SIM_LIST_TYPE:
+                                       strncpy(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_HEADER_MESSAGES_ON_SIM_CARD_ABB"), sizeof(char)*label_len);
+                                       break;
+                               case THREAD_CBMSG_LIST_TYPE:
+                                       strncpy(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_CB_MESSAGES"), sizeof(char)*label_len);
+                                       break;
+                               default:
+                                       D_EMSG("invalid viewmode");
+                                       return;
+                       }
+
+                       if (show_count) {
+                               if (pListData->list_type != THREAD_NORMAL_LIST_TYPE && pListData->item_cnt > 0) {
+                                       char cnt_str[DEF_BUF_LEN_S] =  {'0',};
+
+                                       snprintf(cnt_str, sizeof(cnt_str), "%s (%d)", label, pListData->item_cnt);
+                                       strncpy(label, cnt_str, sizeof(char)*label_len);
+                               }
+                       }
+               }
+       } else {
+               strncpy(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_HEADER_MESSAGES"), sizeof(char)*label_len);
+       }
+}
+
+const char *msg_ui_thread_make_search_result_string(const char *string, char *searchword, bool *result)
+{
+       char pstr[DEF_BUF_LEN + 1] = {0,};
+       static char return_string[DEF_BUF_LEN + 1] = { 0, };
+       int word_len = 0;
+       int search_len = 0;
+       int i = 0;
+       bool found = false;
+       gchar *markup_text_start;
+       gchar *markup_text_end;
+       gchar *markup_text;
+
+       if (!searchword) return string;
+
+       if (g_utf8_validate(string, -1, NULL)) {
+
+               strncpy(pstr, string, DEF_BUF_LEN);
+
+               word_len = strlen(pstr);
+               search_len = strlen(searchword);
+
+               for (i = 0; i < word_len; i++) {
+                       if (!strncasecmp(searchword, &pstr[i], search_len)) {
+                               found = true;
+                               break;
+                       }
+               }
+
+               *result = found;
+               memset(return_string, 0x00, DEF_BUF_LEN);
+
+               if (found) {
+                       if (i == 0) {
+                               markup_text =  g_markup_escape_text(&pstr[i], search_len);
+                               markup_text_end = g_markup_escape_text(&pstr[search_len], word_len-search_len);
+                               snprintf(return_string,
+                                                       DEF_BUF_LEN,
+                                                       "<match>%s</match>%s",
+                                                       (char *)markup_text,
+                                                       (char *)markup_text_end);
+                               g_free(markup_text);
+                               g_free(markup_text_end);
+                       } else {
+                               markup_text_start = g_markup_escape_text(&pstr[0], i);
+                               markup_text =  g_markup_escape_text(&pstr[i], search_len);
+                               markup_text_end =  g_markup_escape_text(&pstr[i+search_len], word_len-(i+search_len));
+                               snprintf(return_string,
+                                                       DEF_BUF_LEN,
+                                                       "%s<match>%s</match>%s",
+                                                       (char *)markup_text_start,
+                                                       (char *)markup_text,
+                                                       (char *)markup_text_end);
+                               g_free(markup_text_start);
+                               g_free(markup_text);
+                               g_free(markup_text_end);
+                       }
+               } else {
+                       snprintf(return_string, DEF_BUF_LEN, "%s", pstr);
+               }
+       }
+
+       return return_string;
+}
+
+
+void msg_ui_thread_make_time_string(time_t *msg_t, char *buf, int buf_len)
+{
+       PMSG_THREAD_DATA pData = msg_ui_thread_get_data();
+       D_MSG_RETM_IF(!pData, "pData is NULL");
+
+       struct tm msg_time, cur_time;
+       time_t cur_t;
+       char *time_str = NULL;
+       int diffday = 0, msg_day = 0, cur_day = 0;
+
+       cur_t = (time_t) time(NULL);
+
+       localtime_r(msg_t, &msg_time);
+       localtime_r(&cur_t, &cur_time);
+
+       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 (diffday == 0) {
+               if (pData->time_fmt == MSG_TIME_FORMAT_24H) {
+                       time_str = msg_common_get_formatted_date(pData->locale, pData->time_24h_ptn, msg_t);
+                       snprintf(buf, buf_len, "%s", time_str);
+               } else { /* MSG_TIME_FORMAT_12H */
+                       time_str = msg_common_get_formatted_date(pData->locale, pData->time_12h_ptn, msg_t);
+                       snprintf(buf, buf_len, "%s", time_str);
+               }
+       } else {
+               if (msg_time.tm_year - cur_time.tm_year != 0)
+                       time_str = msg_common_get_formatted_date(pData->locale, pData->date_ptn_year, msg_t);
+               else
+                       time_str = msg_common_get_formatted_date(pData->locale, pData->date_ptn_default, msg_t);
+               snprintf(buf, buf_len, "%s", time_str);
+       }
+
+       if (time_str)
+               free(time_str);
+}
+
+bool msg_ui_thread_cancel_ecore_thread(Ecore_Thread *th, char *cancel_sign_str)
+{
+       D_MSG_RETVM_IF(!th, TRUE, "th is NULL.");
+
+       /* ecore_thread_cancel() :
+               This function cancels a running thread.
+               If thread can be immediately cancelled (it's still pending execution after creation or rescheduling),
+               then the cancel callback will be called, thread will be freed and the function will return EINA_TRUE.
+               If the thread is already running, then this function returns EINA_FALSE after marking the thread as pending cancellation. */
+       if (th && !ecore_thread_check(th)) {
+               if (ecore_thread_cancel(th)) {
+                       D_MSG("ecore_thread_cancel is done.");
+                       return TRUE;
+               }
+       }
+
+       if (cancel_sign_str) {
+               D_EMSG("ecore_thread_cancel is failed, add cancel_sign for thread.");
+
+               if (!ecore_thread_global_data_find(cancel_sign_str)) {
+                       ecore_thread_global_data_add(cancel_sign_str, "cancel", NULL, EINA_FALSE);
+                       D_SEC_MSG("add thread cancel_sign[%s]", cancel_sign_str);
+               }
+       }
+
+       return FALSE;
+}
+
+bool msg_ui_thread_check_ecore_thread_cancel_sign(Ecore_Thread *th, char *cancel_sign_str)
+{
+       D_MSG_RETVM_IF(!th, TRUE, "th is NULL.");
+       D_MSG_RETVM_IF(!cancel_sign_str, FALSE, "cancel_sign_str is NULL.");
+
+       if (ecore_thread_global_data_find(cancel_sign_str))
+               return TRUE;
+
+       return FALSE;
+}
+
+void msg_ui_thread_delete_ecore_thread_cancel_sign(Ecore_Thread *th, char *cancel_sign_str)
+{
+       D_MSG_RETM_IF(!th, "th is NULL.");
+       D_MSG_RETM_IF(!cancel_sign_str, "cancel_sign_str is NULL.");
+
+       if (ecore_thread_global_data_find(cancel_sign_str)) {
+               D_SEC_MSG("delete thread cancel_sign[%s]", cancel_sign_str);
+               ecore_thread_global_data_del(cancel_sign_str);
+       }
+}
+
+void msg_ui_thread_count_from_int_to_str(char *buf, int buf_size, int count)
+{
+       D_MSG_RETM_IF(!buf, "buf is NULL.");
+       D_MSG_RETM_IF(count < 0, "count is negative.");
+
+       const int max_displayed_count = 999;
+       int val_to_print = count;
+       if (count > max_displayed_count)
+               val_to_print = max_displayed_count;
+
+       snprintf(buf, buf_size, "%d", val_to_print);
+}
+
diff --git a/thread/theme/thread_genlist.edc b/thread/theme/thread_genlist.edc
new file mode 100755 (executable)
index 0000000..67aa3f4
--- /dev/null
@@ -0,0 +1,1440 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "thread_genlist_macro.edc"
+#define SELECT_ALL_HEIGHT 84
+
+collections{
+       base_scale: 2.6;
+
+      images {
+               image: "00_focus_01.#.png" COMP;
+               image: "core_theme_bg_01.png" COMP;
+      }
+
+       sounds {
+          sample {
+                 name: "touch_sound" RAW;
+                 source: "Tizen_Touch.wav";
+          }
+       }
+
+       group{
+               name : "contact_thumbnail_tagged";
+
+               parts{
+                       part{
+                               name : "contact_thumbnail";
+                               type : SWALLOW;
+                               scale : 1;
+                               description{
+                                       state :  "default" 0.0;
+                                       min : 98 98;
+                                       max : 98 98;
+                               }
+                       }
+                       part{
+                               name : "tag_icon";
+                               type : SWALLOW;
+                               scale : 1;
+                               description{
+                                       state: "default" 0.0;
+                                       fixed : 1 1;
+                                       min : 30 30;
+                                       max : 30 30;
+                                       align : 1.0 1.0;
+                                       rel2 {to: "contact_thumbnail"; relative:1.0 1.0;}
+                               }
+                       }
+               }
+       }
+
+       group{
+               name: "search_with_back_btn";
+
+               parts{
+                       part{
+                               name : "base";
+                               type : RECT;
+                               scale : 1;
+                               description{
+                                       state :  "default" 0.0;
+                                       rel1{relative:0.0 0.0;}
+                                       rel2{relative:1.0 1.0;}
+                               }
+                       }
+                       part{
+                               name : "base.bg";
+                               type : RECT;
+                               scale : 1;
+                               description{
+                                       state :  "default" 0.0;
+                                       color : 61 185 204 255;
+                                       rel1{relative:0.0 0.0;}
+                                       rel2{relative:1.0 1.0;}
+                               }
+                       }
+                       part{
+                               name : "search_back_btn";
+                               type : SWALLOW;
+                               scale : 1;
+                               description{
+                                       state :  "default" 0.0;
+                                       align : 0.0 0.5;
+                                       min : 0 0;
+                                       max : 80 80;
+                                       rel1{to: "base"; relative:0.0 0.0;}
+                               }
+                       }
+                       part{
+                               name : "entry.bg";
+                               type : RECT;
+                               scale : 1;
+                               description{
+                                       state :  "default" 0.0;
+                                       color : 255 255 255 255;
+                                       rel1 {to: "search_back_btn"; relative:1.0 0.0;}
+                                       rel2 {to_y: "search_back_btn"; relative: 1.0 1.0; to_x: "base"; relative: 1.0 1.0; offset : -32 0;}
+                               }
+                       }
+                       part{
+                               name : "search_entry";
+                               type : SWALLOW;
+                               scale : 1;
+                               description{
+                                       state: "default" 0.0;
+                                       fixed : 1 1;
+                                       min : 0 0;
+
+                                       align : 0.0 0.0;
+                                       rel1 {to: "entry.bg"; relative:0.0 0.0;}
+                                       rel2 {to: "entry.bg"; relative:1.0 1.0;}
+                               }
+                       }
+
+               }
+       }
+
+       group{
+               name : "thread_content";
+
+               parts{
+                       part{
+                               name : "base";
+                               type : RECT;
+                               scale : 1;
+                               description{
+                                       state :  "default" 0.0;
+                                       rel1{relative:0.0 0.0;}
+                                       rel2{relative:1.0 1.0;}
+                               }
+                       }
+                       part {
+                         name: "bg_image";
+                         type: IMAGE;
+                         scale: 1;
+                         description {
+                           state: "default" 0.0;
+                           fixed: 0 0;
+                           image.normal: "core_theme_bg_01.png";
+                           rel1{relative:0.0 0.0;}
+                               rel2{relative:1.0 1.0;}
+                         }
+                       }
+                       part{
+                               name : "search";
+                               type : SWALLOW;
+                               scale : 1;
+                               description{
+                                       state: "default" 0.0;
+                                       fixed : 1 1;
+                                       min : 0 MSG_UI_SEARCH_H;
+                                       align : 0.0 0.0;
+                                       visible : 1;
+                                       rel1 {to: "base"; relative:0.0 0.0;}
+                                       rel2 {to: "base"; relative:1.0 0.0;}
+                               }
+                       }
+                       part{
+                               name : "easy_composer";
+                               type : SWALLOW;
+                               scale : 1;
+                               description{
+                                       state: "default" 0.0;
+                                       fixed : 1 1;
+                                       min : 0 MSG_UI_COMPOSE_H;
+                                       align : 0.0 0.0;
+                                       visible : 1;
+                                       rel1 {to: "base"; relative:0.0 0.0;}
+                                       rel2 {to: "base"; relative:1.0 0.0;}
+                               }
+                       }
+                       part{
+                               name: "genlist_body";
+                               type: SWALLOW;
+                               scale: 1;
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       fixed :1 1;
+                                       min : 0 1;
+                                       align: 0.0 1.0;
+                                       rel1{to: "base"; relative: 0.0 1.0;}
+                                       rel2{to: "base"; relative: 1.0 1.0;}
+                               }
+                       }
+                       part{
+                               name : "search_list";
+                               type : SWALLOW;
+                               scale : 1;
+                               description{
+                                       state: "default" 0.0;
+                                       fixed : 1 1;
+                                       min : 0 1;
+                                       align : 0.0 0.0;
+                                       rel1 {to: "search"; relative:0.0 1.0;}
+                                       rel2 {to: "genlist_body"; relative:1.0 0.0;}
+                               }
+                       }
+                       part{
+                               name : "easy_mode_list";
+                               type : SWALLOW;
+                               scale : 1;
+                               description{
+                                       state: "default" 0.0;
+                                       fixed : 1 1;
+                                       min : 0 1;
+                                       align : 0.0 0.0;
+                                       rel1 {to: "easy_composer"; relative:0.0 1.0;}
+                                       rel2 {to: "genlist_body"; relative:1.0 0.0;}
+                               }
+                       }
+                       part{
+                               name : "thread_list";
+                               type : SWALLOW;
+                               scale : 1;
+                               description{
+                                       state: "default" 0.0;
+                                       fixed : 1 1;
+                                       min : 0 1;
+                                       align : 0.0 1.0;
+                                       rel1 {to: "swl.sel_all"; relative:0.0 1.0;}
+                                       rel2 {to: "base"; relative:1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "rect.sel_all";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 0 0;
+                                       align: 0.0 0.0;
+                                       color_class: "B011";
+                                       rel1 {to: "base"; relative:0.0 0.0;}
+                                       rel2 {to: "base"; relative:1.0 0.0;}
+                               }
+                               description {
+                                       state: "show_select_all" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 SELECT_ALL_HEIGHT;
+                               }
+                       }
+                       part {
+                               name: "swl.sel_all";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 {to: "rect.sel_all"; relative:0.0 0.0;}
+                                       rel2 {to: "rect.sel_all"; relative:1.0 1.0;}
+                               }
+                       }
+               }
+               programs{
+                       program {
+                               name: "show_select_all";
+                               signal: "show,select,all";
+                               source: "";
+                               action: STATE_SET "show_select_all" 0.0;
+                               target: "rect.sel_all";
+                       }
+                       program {
+                               name: "hide_select_all";
+                               signal: "hide,select,all";
+                               source: "";
+                               action: STATE_SET "default" 0.0;
+                               target: "rect.sel_all";
+                       }
+               }
+       }
+       group{
+               name : "split_content";
+
+               parts{
+                       part{
+                               name : "base";
+                               type : RECT;
+                               scale : 1;
+                               description{
+                                       state :  "default" 0.0;
+                                       color : 0 0 0 0;
+                               }
+                       }
+                       part{
+                               name : "no_content";
+                               type : SWALLOW;
+                               scale : 1;
+                               description{
+                                       state: "default" 0.0;
+                                       fixed : 1 1;
+                                       min : 0 242;
+                                       align : 1.0 0.0;
+                               }
+                       }
+               }
+       }
+       group {
+               name: "search_bubble_line";
+               parts {
+                       part {
+                               name: "base";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 54;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "top_padding";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 12;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 0.0; }
+                                       align: 0.5 0.0;
+                               }
+                       }
+                       part {
+                               name: "bottom_padding";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 12;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 1.0; to_y: "line";}
+                                       rel2 { relative: 1.0 1.0; to_y: "line";}
+                                       align: 0.5 0.0;
+                               }
+                       }
+                       part {
+                               name: "left_padding";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 8 0;
+                                       fixed: 1 0;
+                                       rel1 { relative: 0.0 1.0; to_y: "top_padding"; }
+                                       rel2 { relative: 0.0 0.0; to_y: "bottom_padding"; }
+                                       align: 0.0 0.5;
+                               }
+                       }
+                       part {
+                               name: "right_padding";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 8 0;
+                                       fixed: 1 0;
+                                       rel1 { relative: 1.0 1.0; to_y: "top_padding"; }
+                                       rel2 { relative: 1.0 0.0; to_y: "bottom_padding"; }
+                                       align: 1.0 0.5;
+                               }
+                       }
+                       part {
+                               name: "elm.text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 28;
+                                       fixed: 0 1;
+                                       text {
+                                               size: 24;
+                                               align: 0.0 1.0;
+                                               text_class: "list_item";
+                                       }
+                                       color: COLOR_BLACK;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x: "left_padding"; to_y: "top_padding"; offset: 5 0;}
+                                       rel2 { relative: 0.0 1.0; to_x: "right_padding"; to_y: "top_padding";}
+                               }
+                       }
+                       part {
+                               name: "line";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 2;
+                                       max: -1 2;
+                                       fixed: 0 1;
+                                       color: COLOR_BLUE;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x: "left_padding"; to_y: "elm.text";}
+                                       rel2 { relative: 0.0 1.0; to_x: "right_padding"; to_y: "elm.text";}
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "easy_compose_layout";
+               parts {
+                       part {
+                               name: "bg";
+                               mouse_events: 0;
+                               type: RECT;
+                               scale: 1;
+                               description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 1.0 1.0;}
+                               color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "top_padding";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 14;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 1.0 0.0; to: "bg";}
+                               }
+                       }
+                       part {
+                               name: "bottom_padding";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 14;
+                                       fixed: 0 1;
+                                       align: 0.0 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "bg";}
+                                       rel2 { relative: 1.0 1.0; to: "bg";}
+                               }
+                       }
+                       part {
+                               name: "right_padding";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 16 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to: "bg";}
+                                       rel2 { relative: 1.0 1.0; to: "bg";}
+                               }
+                       }
+                       part {
+                               name: "left_padding";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 16 0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 0.0 1.0; to: "bg";}
+                               }
+                       }
+                       part {
+                               name: "compose_btn";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 1.0; to_x: "left_padding"; to_y: "top_padding";}
+                                       rel2 { relative: 0.0 0.0; to_x: "right_padding"; to_y: "bottom_padding";}
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "unread_img_layout";
+               images {
+                       image: "core_icon_badge_container.#.png" COMP;
+               }
+
+               parts
+               {
+                       part {
+                               name: "elm.base";
+                               mouse_events: 0;
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part{ name: "elm.image.count.bg";
+                               type:IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 1.0 0.5;
+                                       fixed: 1 1;
+                                       min: 32 32;
+                                       max: 68 32;
+                                       rel1 {
+                                               relative: 0.0 0.5;
+                                               to_x: "elm.padding.left.count";
+                                               to_y: "elm.base";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.5;
+                                               to_x: "elm.padding.right.count";
+                                               to_y: "elm.base";
+                                       }
+                                       image {
+                                               normal:"core_icon_badge_container.#.png";
+                                       }
+                                       color: COLOR_BADGE_BACKGROUND;
+                                       visible:0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible:1;
+                               }
+                       }
+                       part { name: "elm.padding.left.count";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 10 0;
+                                       rel1 {
+                                               relative: 0.0 1.0;
+                                               to_x: "elm.text.count";
+                                               to_y: "elm.base";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to_x: "elm.text.count";
+                                               to_y: "elm.base";
+                                       }
+                                       align: 1.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "elm.padding.right.count";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 10 0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to: "elm.base";}
+                                       rel2 { relative: 1.0 1.0; to: "elm.base";}
+                               }
+                       }
+                       part { name: "elm.text.count";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       align: 1.0 0.5;
+                                       fixed: 1 1;
+                                       min: 0 38;
+                                       rel1 {
+                                               relative: 0.0 0.5;
+                                               to_x: "elm.padding.right.count";
+                                               to_y: "elm.base";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.5;
+                                               to_x: "elm.padding.right.count";
+                                               to_y: "elm.base";
+                                       }
+                                       color_class: "T112";
+                                       text {
+                                               font: "Tizen:style=Regular";
+                                               text_class: "label";
+                                               size: 21;
+                                               ellipsis: 0.0;
+                                               align: 1.0 0.5;
+                                               min: 1 0;
+                                       }
+                               }
+                       }
+               }
+               program{
+                       name: "count.show";
+                       signal: "count.show";
+                       source: "";
+                       action: STATE_SET "show" 0.0;
+                       target: "elm.image.count.bg";
+               }
+       }
+
+// 2.2.2.45 + thumb.circle -----------------------------------------------------------------------------------------------------
+       group { GENLIST_NAME("3text.1icon.thumb.circle.swipe/default")
+               GENLIST_PROLOG_NORMAL
+               data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.swipe.left elm.text.swipe.right";
+               data.item: "contents" "elm.icon.1";
+
+               GENLIST_SWIPE_SCRIPTS
+               GENLIST_SWIPE_IMAGES
+
+               images {
+                       GENLIST_SWIPE_IMAGES
+               }
+               parts {
+                       GENLIST_PART_BASE(0)
+                       GENLIST_PART_BG_NORMAL
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT
+                       GENLIST_PART_PADDING_RIGHT
+                       GENLIST_PART_PADDING_TOP_2LINE
+                       GENLIST_PART_PADDING_BOTTOM_2LINE
+
+                       GENLIST_PART_ICON_LARGE_L("elm.icon.1", "elm.padding.left")
+                       GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon.1")
+                       GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.icon.right", "elm.padding.right",
+                               "elm.padding.top", "elm.text.2",)
+                       GENLIST_PART_SUBITEM_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.icon.right", "elm.text.3", "elm.padding.bottom")
+                       GENLIST_PART_SUBITEM_RTB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS_NORMAL
+                       GENLIST_PARTS_SWIPE
+               }
+               GENLIST_INHERIT_THUMB_CIRCLE(GENLIST_ICON_LARGE_SIZE, "elm.icon.1")
+
+               GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3";
+                       target: "elm.icon.1"; )
+               GENLIST_PROGRAMS_THUMB
+               GENLIST_PROGRAMS_SWIPE
+       }
+
+// 2.2.2.45 + thumb.circle (textblock)
+       group { GENLIST_NAME("3text.1icon.thumb.circle.tb/default")
+               GENLIST_PROLOG_NORMAL
+               data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+               data.item: "contents" "elm.icon.1";
+
+               parts {
+                       GENLIST_PART_BASE(0)
+                       GENLIST_PART_BG_NORMAL
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT
+                       GENLIST_PART_PADDING_RIGHT
+                       GENLIST_PART_PADDING_TOP_2LINE
+                       GENLIST_PART_PADDING_BOTTOM_2LINE
+
+                       GENLIST_PART_ICON_LARGE_L("elm.icon.1", "elm.padding.left")
+                       GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon.1")
+                       GENLIST_PART_LISTITEM_TB_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.icon.right", "elm.padding.right",
+                               "elm.padding.top", "elm.text.2",)
+                       GENLIST_PART_SUBITEM_LRB_TB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.icon.right", "elm.text.3", "elm.padding.bottom")
+                       GENLIST_PART_SUBITEM_RTB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS_NORMAL
+               }
+               GENLIST_INHERIT_THUMB_CIRCLE(GENLIST_ICON_LARGE_SIZE, "elm.icon.1")
+
+               GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3";
+                       target: "elm.icon.1"; )
+               GENLIST_PROGRAMS_THUMB
+       }
+
+// 2.2.2.7 + thumb.circle -----------------------------------------------------------------------------------------------------
+       group { GENLIST_NAME("3text.2icon.thumb.circle.swipe/default")
+               GENLIST_PROLOG_NORMAL
+               data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.swipe.left elm.text.swipe.right";
+               data.item: "contents" "elm.icon.1 elm.icon.2";
+
+               GENLIST_SWIPE_SCRIPTS
+               GENLIST_SWIPE_IMAGES
+
+               images {
+                       GENLIST_SWIPE_IMAGES
+               }
+               parts {
+                       GENLIST_PART_BASE(0)
+                       GENLIST_PART_BG_NORMAL
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT
+                       GENLIST_PART_PADDING_RIGHT
+                       GENLIST_PART_PADDING_TOP_2LINE
+                       GENLIST_PART_PADDING_BOTTOM_2LINE
+
+                       GENLIST_PART_ICON_LARGE_L("elm.icon.1", "elm.padding.left")
+                       GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon.1")
+                       GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.icon.right", "elm.padding.icon1.left",
+                               "elm.padding.top", "elm.text.2",)
+                       GENLIST_PART_PADDING_R("elm.padding.icon1.left", "elm.icon.2")
+                       GENLIST_PART_ICON_SMALL_RTB("elm.icon.2",
+                               "elm.padding.right", "elm.padding.top", "elm.text.3")
+                       GENLIST_PART_SUBITEM_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+                                                       "elm.padding.icon.right", "elm.padding.text2.left", "elm.padding.bottom")
+                       GENLIST_PART_PADDING_R("elm.padding.text2.left", "elm.text.3")
+                       GENLIST_PART_SUBITEM_RTB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS_NORMAL
+                       GENLIST_PARTS_SWIPE
+               }
+               GENLIST_INHERIT_THUMB_CIRCLE(GENLIST_ICON_LARGE_SIZE, "elm.icon.1")
+
+               GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3";
+                  target: "elm.icon.1"; target: "elm.icon.2"; )
+               GENLIST_PROGRAMS_THUMB
+               GENLIST_PROGRAMS_SWIPE
+       }
+
+// 2.2.2.7 + thumb.circle (textblock)
+       group { GENLIST_NAME("3text.2icon.thumb.circle.tb/default")
+               GENLIST_PROLOG_NORMAL
+               data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+               data.item: "contents" "elm.icon.1 elm.icon.2";
+
+               parts {
+                       GENLIST_PART_BASE(0)
+                       GENLIST_PART_BG_NORMAL
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT
+                       GENLIST_PART_PADDING_RIGHT
+                       GENLIST_PART_PADDING_TOP_2LINE
+                       GENLIST_PART_PADDING_BOTTOM_2LINE
+
+                       GENLIST_PART_ICON_LARGE_L("elm.icon.1", "elm.padding.left")
+                       GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon.1")
+                       GENLIST_PART_LISTITEM_TB_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.icon.right", "elm.padding.icon1.left",
+                               "elm.padding.top", "elm.text.2",)
+                       GENLIST_PART_PADDING_R("elm.padding.icon1.left", "elm.icon.2")
+                       GENLIST_PART_ICON_SMALL_RTB("elm.icon.2",
+                               "elm.padding.right", "elm.padding.top", "elm.text.3")
+                       GENLIST_PART_SUBITEM_LRB_TB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+                                                       "elm.padding.icon.right", "elm.padding.text2.left", "elm.padding.bottom")
+                       GENLIST_PART_PADDING_R("elm.padding.text2.left", "elm.text.3")
+                       GENLIST_PART_SUBITEM_RTB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS_NORMAL
+               }
+               GENLIST_INHERIT_THUMB_CIRCLE(GENLIST_ICON_LARGE_SIZE, "elm.icon.1")
+
+               GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3";
+                  target: "elm.icon.1"; target: "elm.icon.2"; )
+               GENLIST_PROGRAMS_THUMB
+       }
+
+// 2.2.2.38 + thumb.circle -----------------------------------------------------------------------------------------------------
+       group { GENLIST_NAME("4text.2icon.1.thumb.circle.swipe/default")
+               GENLIST_PROLOG_NORMAL
+               data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4 elm.text.swipe.left elm.text.swipe.right";
+               data.item: "contents" "elm.icon.1 elm.icon.2";
+
+               GENLIST_SWIPE_SCRIPTS
+               GENLIST_SWIPE_IMAGES
+
+               images {
+                       GENLIST_SWIPE_IMAGES
+                       image: "M01_list_bubble_bg.#.png" COMP;
+               }
+               parts {
+                       GENLIST_PART_BASE(0)
+                       GENLIST_PART_BG_NORMAL
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT
+                       GENLIST_PART_PADDING_RIGHT
+                       GENLIST_PART_PADDING_TOP_2LINE
+                       GENLIST_PART_PADDING_BOTTOM_2LINE
+
+                       GENLIST_PART_ICON_LARGE_L("elm.icon.1", "elm.padding.left")
+                       GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon.1")
+                       GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.icon.right", "elm.padding.icon1.left",
+                               "elm.padding.top", "elm.text.2",)
+                       GENLIST_PART_PADDING_R("elm.padding.icon1.left", "elm.icon.2")
+                       GENLIST_PART_ICON_SMALL_RTB("elm.icon.2",
+                               "elm.padding.bubble.left", "elm.padding.top", "elm.text.2")
+                       GENLIST_PART_PADDING_R("elm.padding.bubble.left", "elm.bubble")
+                       GENLIST_PART_LIST_BUBBLE_TEXT_RTB("elm.text.4", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.right", "elm.padding.top", "elm.text.2")
+                       GENLIST_PART_SUBITEM_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.icon.right", "elm.padding.text2.left", "elm.padding.bottom")
+                       GENLIST_PART_PADDING_R("elm.padding.text2.left", "elm.text.3")
+                       GENLIST_PART_SUBITEM_RTB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS_NORMAL
+                       GENLIST_PARTS_SWIPE
+               }
+               GENLIST_INHERIT_THUMB_CIRCLE(GENLIST_ICON_LARGE_SIZE, "elm.icon.1")
+
+               GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; target: "elm.text.4";
+                  target: "elm.icon.1"; target: "elm.icon.2"; target: "elm.bubble"; )
+               GENLIST_PROGRAMS_THUMB
+               GENLIST_PROGRAMS_SWIPE
+       }
+
+// 2.2.2.38 + thumb.circle (textblock)
+       group { GENLIST_NAME("4text.2icon.1.thumb.circle.tb/default")
+               GENLIST_PROLOG_NORMAL
+               data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4";
+               data.item: "contents" "elm.icon.1 elm.icon.2";
+
+               images {
+                       image: "M01_list_bubble_bg.#.png" COMP;
+               }
+               parts {
+                       GENLIST_PART_BASE(0)
+                       GENLIST_PART_BG_NORMAL
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT
+                       GENLIST_PART_PADDING_RIGHT
+                       GENLIST_PART_PADDING_TOP_2LINE
+                       GENLIST_PART_PADDING_BOTTOM_2LINE
+
+                       GENLIST_PART_ICON_LARGE_L("elm.icon.1", "elm.padding.left")
+                       GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon.1")
+                       GENLIST_PART_LISTITEM_TB_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.icon.right", "elm.padding.icon1.left",
+                               "elm.padding.top", "elm.text.2",)
+                       GENLIST_PART_PADDING_R("elm.padding.icon1.left", "elm.icon.2")
+                       GENLIST_PART_ICON_SMALL_RTB("elm.icon.2",
+                               "elm.padding.bubble.left", "elm.padding.top", "elm.text.2")
+                       GENLIST_PART_PADDING_R("elm.padding.bubble.left", "elm.bubble")
+                       GENLIST_PART_LIST_BUBBLE_TEXT_RTB("elm.text.4", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.right", "elm.padding.top", "elm.text.2")
+                       GENLIST_PART_SUBITEM_LRB_TB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.icon.right", "elm.padding.text2.left", "elm.padding.bottom")
+                       GENLIST_PART_PADDING_R("elm.padding.text2.left", "elm.text.3")
+                       GENLIST_PART_SUBITEM_RTB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS_NORMAL
+               }
+               GENLIST_INHERIT_THUMB_CIRCLE(GENLIST_ICON_LARGE_SIZE, "elm.icon.1")
+
+               GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; target: "elm.text.4";
+                  target: "elm.icon.1"; target: "elm.icon.2"; target: "elm.bubble"; )
+               GENLIST_PROGRAMS_THUMB
+       }
+
+// 2.2.2.39 + thumb.circle  -----------------------------------------------------------------------------------------------------
+       group { GENLIST_NAME("4text.2icon.2.thumb.circle.swipe/default")
+               GENLIST_PROLOG_NORMAL
+               data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4 elm.text.swipe.left elm.text.swipe.right";
+               data.item: "contents" "elm.icon.1 elm.icon.2";
+
+               GENLIST_SWIPE_SCRIPTS
+               GENLIST_SWIPE_IMAGES
+
+               images {
+                       GENLIST_SWIPE_IMAGES
+               }
+               parts {
+                       GENLIST_PART_BASE(0)
+                       GENLIST_PART_BG_NORMAL
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT
+                       GENLIST_PART_PADDING_RIGHT
+                       GENLIST_PART_PADDING_TOP_2LINE
+                       GENLIST_PART_PADDING_BOTTOM_2LINE
+
+                       GENLIST_PART_ICON_LARGE_L("elm.icon.1", "elm.padding.left")
+                       GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon.1")
+                       GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.icon.right", "elm.padding.icon1.left",
+                               "elm.padding.top", "elm.text.2",)
+                       GENLIST_PART_PADDING_R("elm.padding.icon1.left", "elm.icon.2")
+                       GENLIST_PART_ICON_SMALL_RTB("elm.icon.2",
+                               "elm.padding.text4.left", "elm.padding.top", "elm.text.3")
+                       GENLIST_PART_PADDING_R("elm.padding.text4.left", "elm.text.4")
+                       GENLIST_PART_SUBITEM_02_RTB("elm.text.4", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.right", "elm.padding.top", "elm.text.3")
+                       GENLIST_PART_SUBITEM_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.icon.right", "elm.padding.text2.left", "elm.padding.bottom")
+                       GENLIST_PART_PADDING_R("elm.padding.text2.left", "elm.text.3")
+                       GENLIST_PART_SUBITEM_RTB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS_NORMAL
+                       GENLIST_PARTS_SWIPE
+               }
+               GENLIST_INHERIT_THUMB_CIRCLE(GENLIST_ICON_LARGE_SIZE, "elm.icon.1")
+
+               GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; target: "elm.text.4";
+                  target: "elm.icon.1"; target: "elm.icon.2";)
+               GENLIST_PROGRAMS_THUMB
+               GENLIST_PROGRAMS_SWIPE
+       }
+
+// 2.2.2.39 + thumb.circle (TEXTBLOCK)
+       group { GENLIST_NAME("4text.2icon.2.thumb.circle.tb/default")
+               GENLIST_PROLOG_NORMAL
+               data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4";
+               data.item: "contents" "elm.icon.1 elm.icon.2";
+
+               parts {
+                       GENLIST_PART_BASE(0)
+                       GENLIST_PART_BG_NORMAL
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT
+                       GENLIST_PART_PADDING_RIGHT
+                       GENLIST_PART_PADDING_TOP_2LINE
+                       GENLIST_PART_PADDING_BOTTOM_2LINE
+
+                       GENLIST_PART_ICON_LARGE_L("elm.icon.1", "elm.padding.left")
+                       GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon.1")
+                       GENLIST_PART_LISTITEM_TB_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.icon.right", "elm.padding.icon1.left",
+                               "elm.padding.top", "elm.text.2",)
+                       GENLIST_PART_PADDING_R("elm.padding.icon1.left", "elm.icon.2")
+                       GENLIST_PART_ICON_SMALL_RTB("elm.icon.2",
+                               "elm.padding.text4.left", "elm.padding.top", "elm.text.3")
+                       GENLIST_PART_PADDING_R("elm.padding.text4.left", "elm.text.4")
+                       GENLIST_PART_SUBITEM_02_RTB("elm.text.4", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.right", "elm.padding.top", "elm.text.3")
+                       GENLIST_PART_SUBITEM_LRB_TB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.icon.right", "elm.padding.text2.left", "elm.padding.bottom")
+                       GENLIST_PART_PADDING_R("elm.padding.text2.left", "elm.text.3")
+                       GENLIST_PART_SUBITEM_RTB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS_NORMAL
+               }
+               GENLIST_INHERIT_THUMB_CIRCLE(GENLIST_ICON_LARGE_SIZE, "elm.icon.1")
+
+               GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; target: "elm.text.4";
+                  target: "elm.icon.1"; target: "elm.icon.2";)
+               GENLIST_PROGRAMS_THUMB
+       }
+
+// 2.2.2.40 + thumb.circle  -----------------------------------------------------------------------------------------------------
+       group { GENLIST_NAME("4text.1icon.1.thumb.circle.swipe/default")
+               GENLIST_PROLOG_NORMAL
+               data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4 elm.text.swipe.left elm.text.swipe.right";
+               data.item: "contents" "elm.icon.1";
+
+               GENLIST_SWIPE_SCRIPTS
+               GENLIST_SWIPE_IMAGES
+
+               images {
+                       GENLIST_SWIPE_IMAGES
+                       image: "M01_list_bubble_bg.#.png" COMP;
+               }
+               parts {
+                       GENLIST_PART_BASE(0)
+                       GENLIST_PART_BG_NORMAL
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT
+                       GENLIST_PART_PADDING_RIGHT
+                       GENLIST_PART_PADDING_TOP_2LINE
+                       GENLIST_PART_PADDING_BOTTOM_2LINE
+
+                       GENLIST_PART_ICON_LARGE_L("elm.icon.1", "elm.padding.left")
+                       GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon.1")
+                       GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.icon.right", "elm.padding.bubble.left",
+                               "elm.padding.top", "elm.text.2",)
+                       GENLIST_PART_PADDING_R("elm.padding.bubble.left", "elm.bubble")
+                       GENLIST_PART_LIST_BUBBLE_TEXT_RTB("elm.text.4", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.right", "elm.padding.top", "elm.text.2")
+                       GENLIST_PART_SUBITEM_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.icon.right", "elm.padding.text2.left", "elm.padding.bottom")
+                       GENLIST_PART_PADDING_R("elm.padding.text2.left", "elm.text.3")
+                       GENLIST_PART_SUBITEM_RTB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS_NORMAL
+                       GENLIST_PARTS_SWIPE
+               }
+               GENLIST_INHERIT_THUMB_CIRCLE(GENLIST_ICON_LARGE_SIZE, "elm.icon.1")
+
+               GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; target: "elm.text.4";
+                  target: "elm.icon.1"; target: "elm.bubble"; )
+               GENLIST_PROGRAMS_THUMB
+               GENLIST_PROGRAMS_SWIPE
+       }
+
+// 2.2.2.40 + thumb.circle (textblock)
+       group { GENLIST_NAME("4text.1icon.1.thumb.circle.tb/default")
+               GENLIST_PROLOG_NORMAL
+               data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4";
+               data.item: "contents" "elm.icon.1";
+
+               images {
+                       image: "M01_list_bubble_bg.#.png" COMP;
+               }
+               parts {
+                       GENLIST_PART_BASE(0)
+                       GENLIST_PART_BG_NORMAL
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT
+                       GENLIST_PART_PADDING_RIGHT
+                       GENLIST_PART_PADDING_TOP_2LINE
+                       GENLIST_PART_PADDING_BOTTOM_2LINE
+
+                       GENLIST_PART_ICON_LARGE_L("elm.icon.1", "elm.padding.left")
+                       GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon.1")
+                       GENLIST_PART_LISTITEM_TB_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.icon.right", "elm.padding.bubble.left",
+                               "elm.padding.top", "elm.text.2",)
+                       GENLIST_PART_PADDING_R("elm.padding.bubble.left", "elm.bubble")
+                       GENLIST_PART_LIST_BUBBLE_TEXT_RTB("elm.text.4", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.right", "elm.padding.top", "elm.text.2")
+                       GENLIST_PART_SUBITEM_LRB_TB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.icon.right", "elm.padding.text2.left", "elm.padding.bottom")
+                       GENLIST_PART_PADDING_R("elm.padding.text2.left", "elm.text.3")
+                       GENLIST_PART_SUBITEM_RTB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS_NORMAL
+               }
+               GENLIST_INHERIT_THUMB_CIRCLE(GENLIST_ICON_LARGE_SIZE, "elm.icon.1")
+
+               GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; target: "elm.text.4";
+                  target: "elm.icon.1"; target: "elm.bubble"; )
+               GENLIST_PROGRAMS_THUMB
+       }
+
+// 2.2.2.41 + thumb.circle  -----------------------------------------------------------------------------------------------------
+       group { GENLIST_NAME("4text.1icon.2.thumb.circle.swipe/default")
+               GENLIST_PROLOG_NORMAL
+               data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4 elm.text.swipe.left elm.text.swipe.right";
+               data.item: "contents" "elm.icon.1 elm.icon.2";
+
+               GENLIST_SWIPE_SCRIPTS
+               GENLIST_SWIPE_IMAGES
+
+               images {
+                       GENLIST_SWIPE_IMAGES
+               }
+               parts {
+                       GENLIST_PART_BASE(0)
+                       GENLIST_PART_BG_NORMAL
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT
+                       GENLIST_PART_PADDING_RIGHT
+                       GENLIST_PART_PADDING_TOP_2LINE
+                       GENLIST_PART_PADDING_BOTTOM_2LINE
+
+                       GENLIST_PART_ICON_LARGE_L("elm.icon.1", "elm.padding.left")
+                       GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon.1")
+                       GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.icon.right", "elm.padding.text4.left",
+                               "elm.padding.top", "elm.text.2",)
+                       GENLIST_PART_PADDING_R("elm.padding.text4.left", "elm.text.4")
+                       GENLIST_PART_SUBITEM_02_RTB("elm.text.4", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.right", "elm.padding.top", "elm.text.3")
+                       GENLIST_PART_SUBITEM_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.icon.right", "elm.padding.text2.left", "elm.padding.bottom")
+                       GENLIST_PART_PADDING_R("elm.padding.text2.left", "elm.text.3")
+                       GENLIST_PART_SUBITEM_RTB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS_NORMAL
+                       GENLIST_PARTS_SWIPE
+               }
+               GENLIST_INHERIT_THUMB_CIRCLE(GENLIST_ICON_LARGE_SIZE, "elm.icon.1")
+
+               GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; target: "elm.text.4";
+                  target: "elm.icon.1"; )
+               GENLIST_PROGRAMS_THUMB
+               GENLIST_PROGRAMS_SWIPE
+       }
+
+// 2.2.2.41 + thumb.circle (textblock)
+       group { GENLIST_NAME("4text.1icon.2.thumb.circle.tb/default")
+               GENLIST_PROLOG_NORMAL
+               data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4";
+               data.item: "contents" "elm.icon.1 elm.icon.2";
+
+               parts {
+                       GENLIST_PART_BASE(0)
+                       GENLIST_PART_BG_NORMAL
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT
+                       GENLIST_PART_PADDING_RIGHT
+                       GENLIST_PART_PADDING_TOP_2LINE
+                       GENLIST_PART_PADDING_BOTTOM_2LINE
+
+                       GENLIST_PART_ICON_LARGE_L("elm.icon.1", "elm.padding.left")
+                       GENLIST_PART_PADDING_L("elm.padding.icon.right", "elm.icon.1")
+                       GENLIST_PART_LISTITEM_TB_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.icon.right", "elm.padding.text4.left",
+                               "elm.padding.top", "elm.text.2",)
+                       GENLIST_PART_PADDING_R("elm.padding.text4.left", "elm.text.4")
+                       GENLIST_PART_SUBITEM_02_RTB("elm.text.4", GENLIST_HEIGHT_2LINE_MAIN,
+                               "elm.padding.right", "elm.padding.top", "elm.text.3")
+                       GENLIST_PART_SUBITEM_LRB_TB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.icon.right", "elm.padding.text2.left", "elm.padding.bottom")
+                       GENLIST_PART_PADDING_R("elm.padding.text2.left", "elm.text.3")
+                       GENLIST_PART_SUBITEM_RTB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+                               "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_FOCUS_NORMAL
+               }
+               GENLIST_INHERIT_THUMB_CIRCLE(GENLIST_ICON_LARGE_SIZE, "elm.icon.1")
+
+               GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3"; target: "elm.text.4";
+                  target: "elm.icon.1"; )
+               GENLIST_PROGRAMS_THUMB
+       }
+
+       // 2.2.1.A45 + entry.icon
+       group { GENLIST_NAME("custom.searchbar/default")
+               data.item: "contents" "elm.icon.1 elm.icon.2 elm.icon.entry elm.icon";
+
+               parts {
+                       PART(RECT, "bg",
+                               description { state: "default" 0.0;
+                                       color_class: "W031L1";
+                               }
+                       )
+                       PART(SWALLOW, "elm.icon.1",
+                               DSC_FROM_L("default" 0.0, )
+                       )
+                       PART(SWALLOW, "elm.icon.2",
+                               DSC_FROM_R("default" 0.0, )
+                       )
+                       PART(RECT, "elm.line.bottom",
+                               DSC_FROM_B("default" 0.0,
+                                       min: 0 1;
+                                       color_class: "B0216L1";
+                               )
+                       )
+                       PART(SPACER, "elm.padding.left",
+                               DSC_L("default" 0.0,
+                                       "elm.icon.1",
+                                       min: LIST_ENTRY_PADDING_LEFT_SIZE 0;
+                                       max: LIST_ENTRY_PADDING_LEFT_SIZE -1;
+                               )
+                       )
+                       PART(SPACER, "elm.padding.right",
+                               DSC_R("default" 0.0,
+                                       "elm.icon.2",
+                                       min: LIST_PADDING_DEFAULT_SIZE 0;
+                                       max: LIST_PADDING_DEFAULT_SIZE -1;
+                               )
+                       )
+                       PART(SPACER, "elm.padding.top",
+                               DSC_FROM_T("default" 0.0,
+                                       min: 0 LIST_ENTRY_PADDING_TOP_SIZE;
+                                       max: -1 LIST_ENTRY_PADDING_TOP_SIZE;
+                               )
+                       )
+                       PART(SPACER, "elm.padding.bottom",
+                               DSC_FROM_B("default" 0.0,
+                                       min: 0 LIST_ENTRY_PADDING_BOTTOM_SIZE;
+                                       max: -1 LIST_ENTRY_PADDING_BOTTOM_SIZE;
+                               )
+                       )
+                       PART(SWALLOW, "elm.icon",
+                               DSC_R("default" 0.0,
+                                       "elm.padding.right",
+                                       min: LIST_ENTRY_ICON_SIZE;
+                                       max: LIST_ENTRY_ICON_SIZE;
+                               )
+                       )
+                       PART(SPACER, "elm.padding.entry.right",
+                               DSC_R("default" 0.0,
+                                       "elm.icon",
+                                       min: LIST_ENTRY_PADDING_RIGHT_SIZE 0;
+                                       max: LIST_ENTRY_PADDING_RIGHT_SIZE -1;
+                               )
+                       )
+                       PART(SWALLOW, "elm.icon.entry",
+                               DSC_LRTB("default" 0.0,
+                                       "elm.padding.left", "elm.padding.entry.right", "elm.padding.top", "elm.padding.bottom",
+                                       min: 0 LIST_ENTRY_ENTRY_HEIGHT;
+                               )
+                       )
+               }
+       }
+
+       group {
+               name: "elm/layout/search/tagbox_bg";
+               parts {
+                       part {
+                               name: "base";
+                               type : RECT;
+                               scale: 1;
+                               description {
+                                       state:  "default" 0.0;
+                                       color_class : "B011";
+                               }
+                       }
+                       part {
+                               name: "base.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color : 255 255 255 234;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+               }
+       }
+
+#define LIST_2LINE_PADDING_TOP_SIZE 23
+#define LIST_2LINE_PADDING_BOTTOM_SIZE 23
+#define LIST_PADDING_CENTER_LEFT_SIZE 32
+#define LIST_PADDING_CENTER_RIGHT_SIZE 32
+#define LIST_TEXT_MAIN_HEIGHT 54
+#define LIST_TEXT_SUB_HEIGHT 43
+#define LIST_TEXT_SUB_WIDTH_MAX 218
+#define GENLIST_ITEM_HEIGHT 144
+
+       group { name: "elm/genlist/item/messages_custom/default";
+
+               data.item: "texts" "elm.text.main.left.top elm.text.sub.right.top elm.text.main.right.top elm.text.sub.left.top elm.text.sub.left.bottom elm.text.sub.right.bottom";
+               data.item: "contents" "elm.icon.1 elm.icon.2 elm.icon.left elm.icon.right elm.icon.left.top elm.icon.right.top elm.icon.left.bottom elm.icon.right.bottom";
+               data.item: "banded_bg_area" "elm.swallow.bg";
+               data.item: "banded_bg_color" "255 255 255 255";
+               parts {
+                       PART(SWALLOW, "elm.swallow.bg",
+                               description { state: "default" 0.0;
+                               }
+                       )
+                       PART(SPACER, "bg",
+                               description { state: "default" 0.0;}
+                       )
+                       PART(SPACER, "elm.padding.top",
+                               DSC_FROM_T("default" 0.0,
+                                       min: 0 LIST_2LINE_PADDING_TOP_SIZE;
+                                       max: -1 LIST_2LINE_PADDING_TOP_SIZE;
+                               )
+                       )
+                       PART(SPACER, "elm.padding.bottom",
+                               DSC_FROM_B("default" 0.0,
+                                       min: 0 LIST_2LINE_PADDING_BOTTOM_SIZE;
+                                       max: -1 LIST_2LINE_PADDING_BOTTOM_SIZE;
+                               )
+                       )
+                       PART(SWALLOW, "elm.icon.1",
+                               DSC_FROM_L("default" 0.0, )
+                       )
+                       PART(SWALLOW, "elm.icon.2",
+                               DSC_FROM_R("default" 0.0, )
+                       )
+                       PART(SPACER, "elm.padding.center.left",
+                               DSC_L("default" 0.0,
+                                       "elm.icon.1",
+                                       min: LIST_PADDING_CENTER_LEFT_SIZE 0;
+                                       max: LIST_PADDING_CENTER_LEFT_SIZE -1;
+                               )
+                       )
+                       PART(SPACER, "elm.padding.center.right",
+                               DSC_R("default" 0.0,
+                                       "elm.icon.2",
+                                       min: LIST_PADDING_CENTER_RIGHT_SIZE 0;
+                                       max: LIST_PADDING_CENTER_RIGHT_SIZE -1;
+                               )
+                       )
+                       PART(SWALLOW, "elm.icon.left",
+                               GENLIST_DESCRIPTION_LTB("elm.padding.center.left", "elm.padding.top", "elm.padding.bottom",
+                               )
+                       )
+                       PART(SWALLOW, "elm.icon.right",
+                               GENLIST_DESCRIPTION_RTB("elm.padding.center.right", "elm.padding.top", "elm.padding.bottom",
+                               )
+                       )
+                       PART(SWALLOW, "elm.icon.left.top",
+                               GENLIST_DESCRIPTION_LTB("elm.icon.left", "elm.padding.top", "elm.text.sub.left.bottom",
+                               )
+                       )
+                       PART(SWALLOW, "elm.icon.left.bottom",
+                               GENLIST_DESCRIPTION_LTB("elm.icon.left", "elm.text.sub.left.bottom", "elm.padding.bottom",
+                                       rel1.relative: 1 0; // to make same height with "elm.text.sub.left.bottom"
+                               )
+                       )
+                       PART(SWALLOW, "elm.icon.right.top",
+                               GENLIST_DESCRIPTION_RTB("elm.icon.right", "elm.padding.top", "elm.text.sub.left.bottom",
+                               )
+                       )
+                       PART(SWALLOW, "elm.icon.right.bottom",
+                               GENLIST_DESCRIPTION_RTB("elm.icon.right", "elm.text.sub.left.bottom", "elm.padding.bottom",
+                                       rel1.relative: 0 0; // to make same height with "elm.text.sub.left.bottom"
+                               )
+                       )
+                       PART(TEXTBLOCK, "elm.text.main.left.top",
+                               DSC_LRTB("default" 0.0,
+                                       "elm.icon.left.top", "elm.text.sub.right.top", "elm.padding.top","elm.text.sub.left.bottom",
+                                       min: 0 LIST_TEXT_MAIN_HEIGHT;
+                                       text.min: 0 1;
+                                       text.style: "genlist_style_list_main_text";
+                               )
+                               description { state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       text.style: "genlist_style_list_main_text_press";
+                               }
+                               description { state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       text.style: "genlist_style_list_main_text_dim";
+                               }
+                       )
+                       PART(TEXTBLOCK, "elm.text.sub.right.top",
+                               GENLIST_DESCRIPTION_RTB("elm.icon.right.top", "elm.padding.top", "elm.text.sub.right.bottom",
+                                       min: 0 LIST_TEXT_SUB_HEIGHT;
+                                       text.min: 0 1;
+                                       text.style: "genlist_style_list_sub_text_default";
+                                       /* This limits text growing. */
+                                       rel1.offset: -LIST_TEXT_SUB_WIDTH_MAX 0;
+                                       text.max: 1 0;
+                                       align: 1.0 0.5;
+                               )
+                               description { state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       text.style: "genlist_style_list_sub_text_default_press";
+                               }
+                               description { state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       text.style: "genlist_style_list_sub_text_default_dim";
+                               }
+                       )
+                       PART(TEXTBLOCK, "elm.text.main.right.top",
+                               DSC_LRTB("default" 0.0,
+                                       "elm.text.sub.left.top", "elm.icon.right.top", "elm.padding.top","elm.text.sub.right.bottom",
+                                       min: 0 LIST_TEXT_MAIN_HEIGHT;
+                                       text.min: 0 1;
+                                       text.style: "genlist_style_list_main_text";
+                               )
+                               description { state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       text.style: "genlist_style_list_main_text_press";
+                               }
+                               description { state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       text.style: "genlist_style_list_main_text_dim";
+                               }
+                       )
+                       PART(TEXTBLOCK, "elm.text.sub.left.top",
+                               GENLIST_DESCRIPTION_LTB("elm.icon.left.top", "elm.padding.top", "elm.text.sub.left.bottom",
+                                       min: 0 LIST_TEXT_SUB_HEIGHT;
+                                       text.min: 0 1;
+                                       text.style: "genlist_style_list_sub_text_default";
+                                       /* This limits text growing. */
+                                       rel2.offset: LIST_TEXT_SUB_WIDTH_MAX 0;
+                                       text.max: 1 0;
+                                       align: 0.0 0.5;
+                               )
+                               description { state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       text.style: "genlist_style_list_sub_text_default_press";
+                               }
+                               description { state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       text.style: "genlist_style_list_sub_text_default_dim";
+                               }
+                       )
+                       PART(TEXTBLOCK, "elm.text.sub.left.bottom",
+                               GENLIST_DESCRIPTION_LRB("elm.icon.left.bottom", "elm.text.sub.right.bottom", "elm.padding.bottom",
+                                       min: 0 LIST_TEXT_SUB_HEIGHT;
+                                       text.min: 0 1;
+                                       text.align: 0.0 0.0;
+                                       text.style: "genlist_style_list_sub_text_default";
+                               )
+                               description { state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       text.style: "genlist_style_list_sub_text_default_press";
+                               }
+                               description { state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       text.style: "genlist_style_list_sub_text_default_dim";
+                               }
+                       )
+                       PART(TEXTBLOCK, "elm.text.sub.right.bottom",
+                               GENLIST_DESCRIPTION_RB("elm.icon.right.bottom", "elm.padding.bottom",
+                                       min: 0 LIST_TEXT_SUB_HEIGHT;
+                                       text.min: 0 1;
+                                       text.align: 1.0 0.0;
+                                       text.style: "genlist_style_list_sub_text_default";
+                                       /* This limits text growing. */
+                                       rel1.offset: -LIST_TEXT_SUB_WIDTH_MAX 0;
+                                       text.max: 1 0;
+                                       align: 1.0 1.0;
+                               )
+                               description { state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       text.style: "genlist_style_list_sub_text_default_press";
+                               }
+                               description { state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       text.style: "genlist_style_list_sub_text_default_dim";
+                               }
+                       )
+               }
+               LIST_PROGRAMS( target: "elm.text.main.left.top"; target: "elm.text.sub.right.top";
+                       target: "elm.text.main.right.top"; target: "elm.text.sub.left.top";
+                       target: "elm.text.sub.left.bottom"; target: "elm.text.sub.right.bottom"; )
+       }
+}
diff --git a/thread/theme/thread_genlist_macro.edc b/thread/theme/thread_genlist_macro.edc
new file mode 100755 (executable)
index 0000000..c349709
--- /dev/null
@@ -0,0 +1,2494 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#define MSG_UI_SEARCH_H        110
+#define MSG_UI_COMPOSE_H       93
+
+#define GENLIST_HEIGHT_2LINE_MAIN         32
+#define GENLIST_HEIGHT_2LINE_SUB          26
+#define GENLIST_PART_LIST_LINE_HEIGHT     1
+
+#define GENLIST_TREESIZE_DEFAULT          18
+#define GENLIST_PADDING_SIZE_DEFAULT            11
+#define GENLIST_PADDING_SIZE_LEFT               18
+#define GENLIST_PADDING_SIZE_RIGHT              18
+#define GENLIST_PADDING_SIZE_TOP                4
+#define GENLIST_PADDING_SIZE_BOTTOM             4
+#define GENLIST_PADDING_SIZE_TOP_2LINE          13
+#define GENLIST_PADDING_SIZE_BOTTOM_2LINE       13
+
+// Genlist Text
+#define GENLIST_LIST_MAIN_TEXT_SIZE                         40
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR                 250 250 250 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE           "#FAFAFAFF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR             250 250 250 153
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE       "#FAFAFA99"
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR                   110 111 118 255
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR_STYLE           "#FAFAFAFF"
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR               110 111 118 127
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_STYLE       "#FAFAFA99"
+#define GENLIST_LIST_TEXT_FOCUS_COLOR                       250 250 250 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE                 "#FAFAFAFF"
+#define GENLIST_LIST_COUNT_COLOR 140 141 148 255
+
+#define GENLIST_LIST_SUB_TEXT_SIZE                          32
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR                 110 111 118 255
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE           "#6E6F76FF"
+#define GENLIST_LIST_SUB_TEXT_HIGHLIGHT_COLOR                 133 166 234 250
+#define GENLIST_LIST_SUB_TEXT_HIGHLIGHT_COLOR_STYLE           "#6E6F76FF"
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR             110 111 118 153
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE       "#6E6F7699"
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR                104 144 255 255
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE          "#6890FFFF"
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR            104 144 255 153
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR_STYLE      "#6890FF99"
+
+#define GENLIST_LIST_SUB_TEXT_02_SIZE                       16
+#define GENLIST_LIST_SUB_TEXT_02_COLOR                      219 57 0 255
+
+#define GENLIST_LIST_BUBBLE_TEXT_SIZE                       22
+#define GENLIST_LIST_BUBBLE_TEXT_COLOR                      249 249 249 255
+#define GENLIST_LIST_BUBBLE_TEXT_FOCUS_COLOR                43 58 175 255
+#define GENLIST_LIST_BUBBLE_COLOR                           0 78 104 255
+#define GENLIST_LIST_BUBBLE_PRESS_COLOR                     250 250 250 255
+
+#define GENLIST_PART_MATCH_TAG_COLOR                    "+ color=#3db9cc"
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE                 "#FAFAFAFF"
+#define FOCUS_BORDER           8 8 8 8
+
+// List bg color
+#define GENLIST_LIST_BG_COLOR                       8 8 8 255
+#define GENLIST_LIST_PRESS_COLOR                    0 78 104 255
+#define GENLIST_LIST_DIM_COLOR                      8 8 8 255
+#define GENLIST_LIST_LINE1_COLOR                    8 8 8 255
+#define GENLIST_LIST_LINE2_COLOR                    64 64 64 255
+
+#define GENLIST_ICON_SMALL_SIZE           30
+#define GENLIST_ICON_LARGE_SIZE           66
+
+#define GENLIST_SEARCH_SEARCHBAR_HEIGHT        66
+#define GENLIST_SEARCH_BTN_WIDTH       48
+#define GENLIST_SEARCH_BTN_HEIGHT      48
+#define GENLIST_SEARCH_SEARCHBAR_LEFT_PADDING  11
+#define GENLIST_SEARCH_SEARCHBAR_RIGHT_PADDING 11
+#define GENLIST_SEARCHBAR_BACKGROUND_COLOR   5 90 118 255
+
+#define GENLIST_CT_IMG_MASK_WIDTH_HEIGHT 74 74
+#define GENLIST_UNREAD_IMG_MASK_WIDTH_HEIGHT 32 32
+
+#define LIST_PADDING_DEFAULT_SIZE                      15
+#define LIST_ENTRY_PADDING_LEFT_SIZE           0
+#define LIST_ENTRY_PADDING_RIGHT_SIZE          0
+#define LIST_ENTRY_PADDING_TOP_SIZE            0
+#define LIST_ENTRY_PADDING_BOTTOM_SIZE 0
+#define LIST_ENTRY_ICON_SIZE                           46 46
+#define LIST_ENTRY_ENTRY_HEIGHT                        96
+
+#define COLOR_BLACK                    0 0 0 255
+#define COLOR_BLACK_TRANSPARENT 0 0 0 204
+#define COLOR_WHITE                            255 255 255 255
+#define COLOR_WHITE_TRANSPARENT        255 255 255 128
+#define COLOR_GRAY                             245 245 242 255
+#define COLOR_DARK_GRAY                        213 213 212 255
+#define COLOR_BLUE                             2 61 132 255
+#define COLOR_DARK_BLUE                        1 37 79 255
+#define COLOR_BLUE_TRANSPARENT 179 197 218 255
+#define COLOR_RED                              224 33 33 255
+#define COLOR_BADGE_BACKGROUND 179 179 179 255
+
+#define STYLE_TAG \
+      tag:  "br" "\n";\
+      tag:  "ps" "ps";\
+      tag:  "tab" "\t";\
+      tag:  "b" "+ font_weight=Bold";
+
+#define STYLE_TAG_MATCH \
+      tag:  "match" GENLIST_PART_MATCH_TAG_COLOR;
+
+styles {
+   // ********************** list main text
+   style { name: "genlist_style_list_main_text";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#000000 ellipsis=1.0 text_class=list_item";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_dim";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#000000a3 ellipsis=1.0 text_class=list_item";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_press";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#000000 ellipsis=1.0 text_class=list_item";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+  // **********************  list main text (multiline)
+  style { name: "genlist_style_list_main_text_wrap";
+        base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#ffffff color_class=T023 text_class=list_item wrap=mixed";
+        STYLE_TAG
+        STYLE_TAG_MATCH
+  }
+  style { name: "genlist_style_list_main_text_dim_wrap";
+        base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#ffffff color_class=T023D text_class=list_item wrap=mixed";
+        STYLE_TAG
+        STYLE_TAG_MATCH
+  }
+  style { name: "genlist_style_list_main_text_press_wrap";
+        base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color=#ffffff color_class=T023P text_class=list_item wrap=mixed";
+        STYLE_TAG
+        STYLE_TAG_MATCH
+  }
+   // ********************** list sub text
+   style { name: "genlist_style_list_sub_text_default";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#737373 ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_default_dim";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#737373a3 ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_default_press";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#737373 ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_time";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#737373 ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   // ********************** list sub text (multiline)
+   style { name: "genlist_style_list_sub_text_default_wrap";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#ffffff color_class=T024 wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_default_dim_wrap";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#ffffff color_class=T024D wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_default_press_wrap";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_SUB_TEXT_SIZE" color=#ffffff color_class=T024P wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+}
+
+// *****************  EDJE description have 24 patterns **********************//
+// ------------------
+// |  PART == HERE  |
+// ------------------
+ #define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 0 0; \
+            to: PART; \
+         }\
+         rel2 {\
+            relative: 1 1;\
+            to: PART; \
+         }\
+         PARAM\
+      }
+
+//      |   top  |
+// ---------------------
+// left |  HERE  | right
+// ---------------------
+//      | bottom |
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// ---------------------
+// left |--> HERE
+// ---------------------
+#define GENLIST_DESCRIPTION_L( left, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 { \
+            relative: 1 1;\
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+// ---------------------
+//   HERE  <--| right
+// ---------------------
+#define GENLIST_DESCRIPTION_R( right, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 0 0; \
+            to_x: right; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+// --------------------------
+// left |--> HERE  <--| right
+// --------------------------
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+//   |  top     |
+// -----------------
+//  |  HERE  <--| right
+// -----------------
+//  | bottom   |
+#define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5;\
+         rel1 { \
+            relative: 0 1; \
+            to_x: right; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// left |  HERE  | right
+// ---------------------
+//      | bottom |
+#define GENLIST_DESCRIPTION_LRB( left, right, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 1;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+//      |   top  |
+// ---------------------
+// left |  HERE  | right
+#define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+//      |       top  |
+// ---------------------
+// left | -->  HERE  |
+#define GENLIST_DESCRIPTION_LT( left, top, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 1;\
+            to_x: left;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+// left |  --> HERE  |
+// ---------------------
+//      |     bottom |
+#define GENLIST_DESCRIPTION_LB( left, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0 1;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_x: left;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+//      |     top  |
+// ---------------------
+// left |--> HERE  |
+// ---------------------
+//      |   bottom |
+#define GENLIST_DESCRIPTION_LTB( left, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_x: left;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+//      |   top  |
+// ---------------------
+//     |  HERE <--| right
+#define GENLIST_DESCRIPTION_RT( right, top, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0;\
+         rel1 { \
+            relative: 0 1; \
+            to_x: right; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+//  | HERE <-- | right
+// ---------------------
+//  |  bottom  |
+#define GENLIST_DESCRIPTION_RB( right, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 1 1;\
+         rel1 { \
+            relative: 0 0; \
+            to_x: right; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// |   top  |
+// ----------
+// |  HERE  |
+// ----------
+// | bottom |
+#define GENLIST_DESCRIPTION_TB( top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0.5;\
+         rel1 { \
+            relative: 0 1; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+#define GENLIST_PROLOG \
+      data.item: "selectraise" "on"; \
+      data.item: "treesize" 0; \
+      data.item: "focus_highlight" "on";
+
+#define GENLIST_PROLOG_NORMAL \
+      GENLIST_PROLOG \
+      data.item: "treesize" GENLIST_TREESIZE_DEFAULT; \
+      data.item: "flips" "elm.flip.content elm.flip.icon"; \
+      images { \
+       image : "00_list_group_bg.#.png" COMP; \
+       image : "00_list_group_bg_ef.#.png" COMP; \
+      }
+
+#define GENLIST_NAME(NAME) \
+      name: "elm/genlist/item/"NAME;
+
+#define GENLIST_INHERIT_THUMB_CIRCLE(SIZE, PARENT) \
+     images { \
+         image: "M01_list_circle_thumbnail_bg.png" COMP; \
+      } \
+      parts { \
+         GENLIST_PART_RECT("elm.thumb.clip", \
+            description { state: "default";  \
+            } \
+            description { state: "flipped";  \
+               color: 0 0 0 0; \
+            } \
+         ) \
+         GENLIST_PART_IMAGE("elm.thumb", \
+            insert_before: "focus_part"; \
+            clip_to: "elm.thumb.clip"; \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_ENVELOP(PARENT, \
+               image.normal: "M01_list_circle_thumbnail_bg.png"; \
+               min: SIZE SIZE; \
+               max: SIZE SIZE; \
+               fixed:1 1; \
+               color_class: "B011"; \
+            ) \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+               color_class: "B041P"; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "M01_list_circle_thumbnail_bg.png"; \
+               color_class: "B0217"; \
+            } \
+            description { state: "reorder_selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "M01_list_circle_thumbnail_bg.png"; \
+               color_class: "B041P"; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default" 0.0; \
+            } \
+            description { state: "decorate_reorder" 0.0; \
+               inherit: "reorder" 0.0; \
+            } \
+         ) \
+      }
+
+// ****************************** BG Image **********************************//
+#define GENLIST_PART_BG_NORMAL \
+      GENLIST_PART_RECT("bg_clip", \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            visible: 1; \
+            color: 255 255 255 255; \
+         } \
+         description { state: "decorate" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "decorate_reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_RECT("bg_reorder_clip", \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 1; \
+            color: 255 255 255 255; \
+         } \
+         description { state: "decorate_reorder" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "decorate" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "reorder_flip" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_RECT("bg",  \
+         clip_to: "bg_clip"; \
+         description { state: "default" 0.0; \
+            color_class: "B011"; \
+         } \
+         description { state: "pressed" 0.0; \
+            inherit: "default" 0.0; \
+            color_class: "B041P"; \
+         } \
+         description { state: "disabled" 0.0; \
+            inherit: "default" 0.0; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_left", \
+         description { state: "default" 0.0; \
+            min: 11 0; \
+            max: 11 -1; \
+            fixed: 1 0; \
+            align: 0 0.5; \
+            rel2.relative: 0 1; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_right", \
+         description { state: "default" 0.0; \
+            min: 11 0; \
+            max: 11 -1; \
+            fixed: 1 0; \
+            align: 1.0 0.5; \
+            rel1.relative: 1 0; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_top", \
+         description { state: "default" 0.0; \
+            min: 0 2; \
+            max: -1 2; \
+            fixed: 0 1; \
+            align: 0.5 0; \
+            rel2.relative: 1 0; \
+         } \
+      ) \
+      GENLIST_PART_SPACER("bg_reorder_bottom", \
+         description { state: "default" 0.0; \
+            min: 0 2; \
+            max: -1 2; \
+            fixed: 0 1; \
+            align: 0.5 1.0; \
+            rel1.relative: 0 1; \
+         } \
+      ) \
+      GENLIST_PART_IMAGE("bg_reorder", \
+         clip_to: "bg_reorder_clip"; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 1; \
+               to_x: "bg_reorder_left"; \
+               to_y: "bg_reorder_top"; \
+            } \
+            rel2 { \
+               relative: 0 0; \
+               to_x: "bg_reorder_right"; \
+               to_y: "bg_reorder_bottom"; \
+            } \
+            image { \
+               normal: "00_list_group_bg.#.png"; \
+            } \
+            color_class: "B0217"; \
+         } \
+         description { state: "pressed" 0.0; \
+            inherit: "default"; \
+            color_class: "B041P"; \
+         } \
+         description { state: "flipped" 0.0; \
+            inherit: "default"; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_IMAGE("bg_reorder_ef", \
+         clip_to: "bg_reorder_clip"; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 1; \
+               to_x: "bg_reorder_left"; \
+               to_y: "bg_reorder_top"; \
+            } \
+            rel2 { \
+               relative: 0 0; \
+               to_x: "bg_reorder_right"; \
+               to_y: "bg_reorder_bottom"; \
+            } \
+            image { \
+               normal: "00_list_group_bg_ef.#.png"; \
+            } \
+            color_class: "B0217"; \
+         } \
+         description { state: "pressed" 0.0; \
+            inherit: "default"; \
+         } \
+         description { state: "flipped" 0.0; \
+            inherit: "default"; \
+            visible: 0; \
+         } \
+      ) \
+      GENLIST_PART_RECT("sound",  \
+         repeat_events: 1;  /*for play_sound to check pressed state*/ \
+         description { state: "default" 0.0; \
+            color: 0 0 0 0; \
+         } \
+      ) \
+
+// ****************************** BASE  ********************************//
+#define GENLIST_PART_BASE_SIZE(HEIGHT) \
+         part { name: "base"; \
+            type: RECT; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+               min: 0 HEIGHT; \
+            } \
+         } \
+         part { name: "state"; \
+            type: RECT; \
+            mouse_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default"; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default"; \
+            } \
+            description { state: "decorate_reorder" 0.0; \
+               inherit: "default"; \
+            } \
+         }
+
+#define GENLIST_PART_BASE(HEIGHT) \
+         GENLIST_PART_BASE_SIZE(HEIGHT)
+
+#define GENLIST_PART_FOCUS \
+   GENLIST_PART_IMAGE("focus_part", \
+      mouse_events: 0; \
+      description { state: "default" 0.0; \
+         visible: 0; \
+         image { \
+            normal: "00_focus_01.#.png"; \
+         } \
+         color_class: "W161"; \
+      } \
+      description { state: "focused" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+      } \
+   ) \
+
+#define GENLIST_PART_FOCUS_REORDER \
+   GENLIST_PART_IMAGE("focus_part_reorder", \
+      mouse_events: 0; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 1; \
+               to_x: "bg_reorder_left"; \
+               to_y: "bg_reorder_top"; \
+            } \
+            rel2 { \
+               relative: 0 0; \
+               to_x: "bg_reorder_right"; \
+               to_y: "bg_reorder_bottom"; \
+            } \
+         visible: 0; \
+         image { \
+            normal: "00_focus_01.#.png"; \
+         } \
+         color_class: "W161"; \
+      } \
+      description { state: "focused" 0.0; \
+         inherit: "default" 0.0; \
+         visible: 1; \
+      } \
+   )
+
+#define GENLIST_PART_FOCUS_NORMAL \
+   GENLIST_PART_FOCUS \
+   GENLIST_PART_FOCUS_REORDER
+
+// ****************************** LINE ********************************//
+#define GENLIST_PART_BOTTOM_LINE \
+         GENLIST_PART_RECT("bottom_line_clip", \
+            description { state: "default" 0.0; \
+               color: 255 255 255 255; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "decorate_reorder" 0.0; \
+               inherit: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+         ) \
+         GENLIST_PART_RECT("bottom_line", \
+            mouse_events: 0; \
+            clip_to: "bottom_line_clip"; \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               color_class: "B0223"; \
+               rel1.to_x: "base"; \
+               rel1.relative: 0 0; \
+               rel2.to_x: "base"; \
+               rel2.relative: 1 1; \
+               rel1.offset: -1 -1; \
+            } \
+            description { state: "flipped" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "hidden" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+         )
+
+//********************************* PADDING **********************************//
+#define GENLIST_PART_EXPANDED_PAD \
+         part { name: "elm.swallow.pad"; \
+            type: SWALLOW; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               min: 0 0; \
+               fixed: 1 0; \
+               align: 0.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 0.0 1.0; \
+            } \
+         } \
+
+#define GENLIST_DESCRIPTION_DECORATE_PADDING \
+   description { state: "decorate" 0.0; \
+      inherit: "default" 0.0; \
+      min: 0 0; \
+      max: 0 0; \
+   }
+
+#define GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+   description { state: "decorate_reorder" 0.0; \
+      inherit: "default" 0.0; \
+      min: 0 0; \
+      max: 0 0; \
+   }
+
+#define GENLIST_DESCRIPTION_REORDER_PADDING \
+   description { state: "reorder" 0.0; \
+      inherit: "default" 0.0; \
+      min: 22 0; \
+      max: 32 -1; \
+   }
+
+#define GENLIST_PART_PADDING_LEFT \
+       GENLIST_PART_EXPANDED_PAD \
+       GENLIST_PART_SPACER("elm.padding.left", \
+           GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+              min: GENLIST_PADDING_SIZE_LEFT 0; \
+              max: GENLIST_PADDING_SIZE_LEFT -1; \
+              fixed: 1 0; \
+           ) \
+           GENLIST_DESCRIPTION_DECORATE_PADDING \
+           GENLIST_DESCRIPTION_REORDER_PADDING \
+           GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+       )
+
+#define GENLIST_PART_PADDING_RIGHT \
+       GENLIST_PART_SPACER("elm.padding.right", \
+               description { state: "default" 0.0; \
+                  min: GENLIST_PADDING_SIZE_RIGHT 0; \
+                  max: GENLIST_PADDING_SIZE_RIGHT -1; \
+                  fixed: 1 0; \
+                  align: 1.0 0.5; \
+                  rel1.to: "base"; \
+                  rel2.to: "base"; \
+                  rel1.relative: 1 0; \
+               } \
+               GENLIST_DESCRIPTION_DECORATE_PADDING \
+               GENLIST_DESCRIPTION_REORDER_PADDING \
+               GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+       )
+
+#define GENLIST_PART_PADDING_TOP \
+         GENLIST_PART_SPACER("elm.padding.top", \
+            description { \
+               state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_TOP; \
+               max: -1 GENLIST_PADDING_SIZE_TOP; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.5 0.0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 (GENLIST_PADDING_SIZE_TOP+2); \
+               max: -1 (GENLIST_PADDING_SIZE_TOP+2); \
+            } \
+         )
+
+
+#define GENLIST_PART_PADDING_TOP_2LINE \
+       GENLIST_PART_SPACER("elm.padding.top", \
+               description { \
+                  state: "default" 0.0; \
+                  min: 0 GENLIST_PADDING_SIZE_TOP_2LINE; \
+                  max: -1 GENLIST_PADDING_SIZE_TOP_2LINE; \
+                  fixed: 0 1; \
+                  rel1.to: "base"; \
+                  rel2.to: "base"; \
+                  rel2.relative: 1.0 0.0; \
+                  align: 0.5 0.0; \
+               } \
+               description { state: "reorder" 0.0; \
+                  inherit: "default" 0.0; \
+                  min: 0 (GENLIST_PADDING_SIZE_TOP_2LINE+2); \
+                  max: -1 (GENLIST_PADDING_SIZE_TOP_2LINE+2); \
+               } \
+       )
+
+#define GENLIST_PART_PADDING_BOTTOM \
+         GENLIST_PART_SPACER("elm.padding.bottom", \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_BOTTOM; \
+               max: -1 GENLIST_PADDING_SIZE_BOTTOM; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 0.0 1.0; \
+               align: 0.5 1.0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+               max: -1 (GENLIST_PADDING_SIZE_BOTTOM+2); \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_BOTTOM_2LINE \
+       GENLIST_PART_SPACER("elm.padding.bottom", \
+               description { state: "default" 0.0; \
+                  min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+                  max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+                  fixed: 0 1; \
+                  rel1.to: "base"; \
+                  rel2.to: "base"; \
+                  rel1.relative: 0.0 1.0; \
+                  align: 0.5 1.0; \
+               } \
+               description { state: "reorder" 0.0; \
+                  inherit: "default" 0.0; \
+                  min: 0 (GENLIST_PADDING_SIZE_BOTTOM_2LINE+2); \
+                  max: -1 (GENLIST_PADDING_SIZE_BOTTOM_2LINE+2); \
+               } \
+       )
+
+#define GENLIST_PART_PADDING_L( NAME, LEFT ) \
+        GENLIST_PART_SPACER(NAME, \
+               description { state: "default" 0.0; \
+                  fixed: 1 0; \
+                  min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+                  max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+                  align: 0 0.5; \
+                  rel1 { \
+                         relative: 1 0; \
+                         to_x: LEFT; \
+                  } \
+                  rel2 { \
+                         relative: 1 1; \
+                         to_x: LEFT; \
+                  } \
+               } \
+        )
+
+#define GENLIST_PART_PADDING_R( NAME, RIGHT ) \
+        GENLIST_PART_SPACER(NAME, \
+               description { state: "default" 0.0; \
+                  fixed: 1 0; \
+                  min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+                  max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+                  align: 1 0.5; \
+                  rel1 { \
+                         relative: 0 0; \
+                         to_x: RIGHT; \
+                  } \
+                  rel2 { \
+                         relative: 0 1; \
+                         to_x: RIGHT; \
+                  } \
+               } \
+        )
+
+#define GENLIST_PART_FLIP \
+        GENLIST_PART_RECT("elm.flip.bg", \
+               mouse_events: 0; \
+               description { state: "default" 0.0;\
+                  color: 0 0 0 0;\
+               } \
+               description { state: "flipped" 0.0; \
+                  inherit: "default" 0.0; \
+                  rel2.offset: 0 -3; \
+                  color: GENLIST_LIST_BG_COLOR;\
+               }\
+        ) \
+        GENLIST_PART_SPACER("elm.flip.padding.right", \
+               description { state: "default" 0.0; \
+                  min: 18 0; \
+                  max: 18 -1; \
+                  fixed: 1 0; \
+                  align: 1 0.5; \
+                  rel1.relative: 1 0; \
+               } \
+        ) \
+        GENLIST_PART_ICON("elm.flip.content", \
+               GENLIST_DESCRIPTION("elm.padding.left", "elm.flip.padding.icon.left",  \
+                  "elm.padding.top", "elm.padding.bottom", \
+                  visible: 0; \
+                  aspect: 1 1; \
+                  min: 0 64; \
+               ) \
+               description { state: "flipped" 0.0; \
+                  inherit: "default" 0.0; \
+                  visible: 1; \
+               } \
+        ) \
+        GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+        GENLIST_PART_ICON( "elm.flip.icon", \
+               GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \
+                  "elm.padding.top", "elm.padding.bottom", \
+                  visible: 0; \
+                  aspect: 1 1; \
+                  align: 1 0.5; \
+                  max: 158 74; \
+               ) \
+               description { state: "flipped" 0.0; \
+                  inherit: "default" 0.0; \
+                  visible: 1; \
+               } \
+        )
+
+// *******************************  Programs ********************************//
+#define GENLIST_PROGRAM_DEFAULT( TARGET ) \
+         program { name: "default"; \
+            signal: "elm,state,default"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+
+#define GENLIST_PROGRAM_DISABLED( TARGET ) \
+         program { name: "enabled"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+         program { name: "disabled"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_BOTTOMLINE \
+      program { name : "hide_bottomline"; \
+         signal: "elm,state,bottomline,hide"; \
+         source: ""; \
+         action: STATE_SET "hidden" 0.0; \
+         target: "bottom_line"; \
+      } \
+      program { name : "show_bottomline"; \
+         signal: "elm,state,bottomline,show"; \
+         source: ""; \
+         action: STATE_SET "default" 0.0; \
+         target: "bottom_line"; \
+      }
+
+#define GENLIST_PROGRAM_FOCUS \
+      program { name: "focused"; \
+         signal: "elm,action,focus_highlight,show"; \
+         source: "elm"; \
+         action: STATE_SET "focused" 0.0; \
+         target: "focus_part"; \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,action,focus_highlight,hide"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part"; \
+      }
+
+#define GENLIST_PROGRAM_FOCUS_NORMAL \
+      program { name: "focused"; \
+         signal: "elm,action,focus_highlight,show"; \
+         source: "elm"; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:"bg_reorder_clip", st, 30, vl); \
+            if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \
+               set_state(PART:"focus_part_reorder", "focused", 0.0); \
+            else \
+               set_state(PART:"focus_part", "focused", 0.0); \
+         } \
+      } \
+      program { name: "unfocused"; \
+         signal: "elm,action,focus_highlight,hide"; \
+         source: "elm"; \
+         action: STATE_SET "default" 0.0; \
+         target: "focus_part_reorder"; \
+         target: "focus_part"; \
+      }
+
+#define GENLIST_PROGRAM_SOUND( SRC ) \
+      program { name: "play_sound"SRC; \
+         signal: "mouse,clicked,1"; \
+         source: SRC; \
+         script { \
+            new st[31]; \
+            new Float:vl; \
+            get_state(PART:SRC, st, 30, vl); \
+            if (!strcmp(st, "pressed") || \
+                !strcmp(st, "top_pressed") || \
+                !strcmp(st, "center_pressed") || \
+                !strcmp(st, "bottom_pressed")) \
+               play_sample("touch_sound", 1.0); \
+         } \
+      }
+
+#define GENLIST_PROGRAM_SELECT( TARGET ) \
+         program { name: "pressed"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            action: STATE_SET "pressed" 0.0; \
+            TARGET \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_DECORATE_REORDER( NAME, TARGET ) \
+         program { name: "reorder_enabled"NAME; \
+            signal: "elm,state,reorder,mode_set"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "reorder_disabled"NAME; \
+            signal: "elm,state,reorder,mode_unset"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "decorate_enabled_effect"NAME; \
+            signal: "elm,state,decorate,enabled,effect";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_disabled_effect"NAME;\
+            signal: "elm,state,decorate,disabled,effect";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_enabled"NAME;\
+            signal: "elm,state,decorate,enabled";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"decorate_reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"decorate_set"NAME); \
+               } \
+            } \
+         }\
+         program { name: "decorate_disabled"NAME;\
+            signal: "elm,state,decorate,disabled";\
+            source: "elm";\
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"state", st, 30, vl); \
+               if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+                  run_program(PROGRAM:"reorder_set"NAME); \
+               } else { \
+                  run_program(PROGRAM:"default_set"NAME); \
+               } \
+            } \
+         } \
+         program { name: "default_set"NAME; \
+            action: STATE_SET "default" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "decorate_set"NAME; \
+            action: STATE_SET "decorate" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "reorder_set"NAME; \
+            action: STATE_SET "reorder" 0.0;\
+            target: "state"; \
+            TARGET \
+         } \
+         program { name: "decorate_reorder_set"NAME; \
+            action: STATE_SET "decorate_reorder" 0.0;\
+            target: "state"; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_FLIP \
+       program { name: "flip_enabled"; \
+          signal: "elm,state,flip,enabled"; \
+          source: "elm"; \
+          transition: DECELERATE 0.5; \
+          action: STATE_SET "flipped" 0.0; \
+          target: "elm.flip.content"; \
+          target: "elm.flip.icon"; \
+       } \
+       program { name: "flip_disabled"; \
+          signal: "elm,state,flip,disabled"; \
+          source: "elm"; \
+          transition: DECELERATE 0.5; \
+          action: STATE_SET "default" 0.0; \
+          target: "elm.flip.content"; \
+          target: "elm.flip.icon"; \
+       } \
+       program { name: "flip_enabled_bg"; \
+          signal: "elm,state,flip,enabled"; \
+          source: "elm"; \
+          action: STATE_SET "flipped" 0.0; \
+          target: "elm.flip.bg"; \
+       } \
+       program { name: "flip_disabled_bg"; \
+          signal: "elm,state,flip,disabled"; \
+          source: "elm"; \
+          action: STATE_SET "default" 0.0; \
+          target: "elm.flip.bg"; \
+       }
+
+#define GENLIST_PROGRAM_FLIP_TARGET( TARGET ) \
+         program { name: "flip_enabled_target"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "flipped" 0.0; \
+            TARGET \
+         } \
+         program { name: "flip_disabled_target"; \
+            signal:  "elm,state,flip,disabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "default" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAMS_TEXT_ONLY( TARGET ) \
+   programs { \
+      GENLIST_PROGRAM_DEFAULT( TARGET \
+         target: "bg"; \
+         target: "bg_clip"; \
+         target: "bottom_line"; \
+         target: "bottom_line_clip"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+         target: "bg_reorder_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+      ) \
+      GENLIST_PROGRAM_DISABLED( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+      ) \
+      GENLIST_PROGRAM_BOTTOMLINE \
+      GENLIST_PROGRAM_FOCUS_NORMAL \
+      GENLIST_PROGRAM_SELECT( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+      ) \
+      GENLIST_PROGRAM_SOUND("bg") \
+      GENLIST_PROGRAM_SOUND("bg_reorder") \
+      GENLIST_PROGRAM_SOUND("bg_reorder_ef") \
+      GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \
+         target: "bg_clip"; \
+         target: "bg_reorder_clip"; \
+         target: "bottom_line_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+      ) \
+      GENLIST_PROGRAM_FLIP \
+   }
+
+#define GENLIST_PROGRAMS_NORMAL( TARGET ) \
+   programs { \
+      GENLIST_PROGRAM_DEFAULT( TARGET \
+         target: "bg"; \
+         target: "bg_clip"; \
+         target: "bottom_line"; \
+         target: "bottom_line_clip"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+         target: "bg_reorder_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+         target: "focus_part"; \
+         target: "focus_part_reorder"; \
+         target: "elm.thumb"; \
+         target: "elm.thumb.clip"; \
+      ) \
+      GENLIST_PROGRAM_DISABLED( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+      ) \
+      GENLIST_PROGRAM_BOTTOMLINE \
+      GENLIST_PROGRAM_FOCUS_NORMAL \
+      GENLIST_PROGRAM_SELECT( TARGET \
+         target: "bg"; \
+         target: "bg_reorder"; \
+         target: "bg_reorder_ef"; \
+      ) \
+      GENLIST_PROGRAM_SOUND("bg") \
+      GENLIST_PROGRAM_SOUND("bg_reorder") \
+      GENLIST_PROGRAM_SOUND("bg_reorder_ef") \
+      GENLIST_PROGRAM_SOUND("elm.thumb") \
+      GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \
+         target: "bg_clip"; \
+         target: "bg_reorder_clip"; \
+         target: "bottom_line_clip"; \
+         target: "elm.padding.left"; \
+         target: "elm.padding.right"; \
+         target: "elm.padding.top"; \
+         target: "elm.padding.bottom"; \
+         target: "elm.thumb"; \
+         target: "elm.thumb.clip"; \
+      ) \
+      GENLIST_PROGRAM_FLIP \
+   }
+#define LIST_PROGRAM_REORDER( TARGET ) \
+   program { name: "reorder_enabled"; \
+      signal: "elm,state,reorder,enabled"; \
+      source: "elm"; \
+      action: STATE_SET "reorder" 0.0; \
+      TARGET \
+   } \
+   program { name: "reorder_disabled"; \
+      signal: "elm,state,reorder,disabled"; \
+      source: "elm"; \
+      action: STATE_SET "default" 0.0; \
+      TARGET \
+   }
+
+#define LIST_PROGRAM_SOUND \
+   program { name: "play_sound"; \
+      signal: "elm,state,clicked"; \
+      source: "elm"; \
+      script { \
+         run_program(PROGRAM:"touch_sound"); \
+      } \
+   } \
+   program { name: "touch_sound"; \
+      action: RUN_PLUGIN "touch_sound"; \
+   }
+
+#define LIST_PROGRAMS( TARGET ) \
+   programs { \
+      GENLIST_PROGRAM_DEFAULT( TARGET \
+         target: "bg"; \
+      ) \
+      GENLIST_PROGRAM_DISABLED( TARGET \
+         target: "bg"; \
+      ) \
+      GENLIST_PROGRAM_SELECT( TARGET \
+         target: "bg"; \
+      ) \
+      LIST_PROGRAM_REORDER( TARGET \
+         target: "bg"; \
+      ) \
+      LIST_PROGRAM_SOUND \
+   }
+
+#define GENLIST_PROGRAMS_THUMB \
+   GENLIST_PROGRAM_DECORATE_REORDER( "thumb", target: "elm.thumb"; ) \
+   GENLIST_PROGRAM_FLIP_TARGET( target: "elm.thumb.clip"; ) \
+   program { name: "enabled_thumb"; \
+      signal: "elm,state,enabled"; \
+      source: "elm"; \
+      action: STATE_SET "default" 0.0; \
+      target: "elm.thumb"; \
+   } \
+   program { name: "disabled_thumb"; \
+      signal: "elm,state,disabled"; \
+      source: "elm"; \
+      action: STATE_SET "disabled" 0.0; \
+      target: "elm.thumb"; \
+   } \
+   program { name: "selected_thumb"; \
+      signal: "elm,state,selected"; \
+      source: "elm"; \
+      script { \
+         new st[31]; \
+         new Float:vl; \
+         get_state(PART:"elm.thumb", st, 30, vl); \
+         if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \
+            set_state(PART:"elm.thumb", "reorder_selected", 0.0); \
+         else \
+            set_state(PART:"elm.thumb", "pressed", 0.0); \
+      } \
+   } \
+   program { name: "unselected_thumb"; \
+      signal: "elm,state,unselected"; \
+      source: "elm"; \
+      script { \
+         new st[31]; \
+         new Float:vl; \
+         get_state(PART:"elm.thumb", st, 30, vl); \
+         if (!strcmp(st, "reorder_selected")) \
+            set_state(PART:"elm.thumb", "reorder", 0.0); \
+         else \
+            set_state(PART:"elm.thumb", "default", 0.0); \
+      } \
+   }
+
+// *******************************  Icon Part ******************************//
+#define GENLIST_PARAM_ICON_LARGE \
+         min: GENLIST_ICON_LARGE_SIZE GENLIST_ICON_LARGE_SIZE; \
+         max: GENLIST_ICON_LARGE_SIZE GENLIST_ICON_LARGE_SIZE;
+
+#define GENLIST_PARAM_ICON_SMALL \
+         min: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE; \
+         max: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE;
+
+#define GENLIST_PART_ICON(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: SWALLOW; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_ICON_LARGE_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
+         GENLIST_PARAM_ICON_LARGE \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_SMALL_RTB(NAME, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         GENLIST_PARAM_ICON_SMALL \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PARAM_LIST_BUBBLE_TEXT \
+   color_class: "T025"; \
+   text { \
+      align: 1 0.5; \
+      min: 0 1; \
+      text_class: "list_item"; \
+   }
+
+// FIXME: Need to find why rel2.offset: 9 -1 will not fix the alignment of bubble text ?
+#define GENLIST_PART_LIST_BUBBLE_TEXT_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+         GENLIST_PART_IMAGE("elm.bubble", \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_ENVELOP(NAME, \
+               image { \
+                  normal: "M01_list_bubble_bg.#.png"; \
+               } \
+               color_class: "B0219"; \
+               rel1.offset: -10 0; \
+               rel2.offset: 8 -1; \
+               min: 32 25; \
+               max: -1 38; \
+               fixed: 0 1; \
+            ) \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+               color_class: "B0219P"; \
+            } \
+         ) \
+         GENLIST_PART_TEXT(NAME, \
+            GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+               min: 0 HEIGHT; \
+               GENLIST_PARAM_TEXT_LIMIT_RT \
+               rel2.offset: -10 -1; /* This maintain the text alignment with bubble text. */\
+               GENLIST_PARAM_LIST_BUBBLE_TEXT \
+            ) \
+            description { state: "pressed" 0.0; \
+               inherit: "default" 0.0; \
+               color_class: "T025P"; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color_class: "T025D"; \
+            } \
+         )
+
+/******************************* Genlist IMAGE ********************************/
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: IMAGE; \
+      DESCRIPION \
+   }
+
+/******************************* Genlist RECT ********************************/
+#define GENLIST_PART_SPACER(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      mouse_events: 0; \
+      type: SPACER; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_RECT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: RECT; \
+      DESCRIPION \
+   }
+
+/******************************* Genlist TEXT ********************************/
+#define GENLIST_PART_TEXT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: TEXT; \
+      repeat_events: 1; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: TEXTBLOCK; \
+      repeat_events: 1; \
+      DESCRIPION \
+   }
+
+/*************************** parameters **********************************/
+#define GENLIST_PARAM_TEXT_LIMIT_RB \
+   rel1.to_x: "base"; /* This limits text growing. */\
+   rel1.relative: 0.5 0; /* This limits text growing. */\
+   text.max: 1 0; /* This limits text growing. */
+
+#define GENLIST_PARAM_TEXT_LIMIT_RT \
+   rel1.to_x: "base"; /* This limits text growing. */\
+   rel1.relative: 0.5 1; /* This limits text growing. */\
+   text.max: 1 0; /* This limits text growing. */
+
+#define GENLIST_PARAM_TEXT_LIMIT_RT_( LIMIT ) \
+   rel1.to_x: "base"; /* This limits text growing. */\
+   rel1.relative: LIMIT 1; /* This limits text growing. */\
+   text.max: 1 0; /* This limits text growing. */
+
+// list main text
+#define GENLIST_PARAM_LISTITEM \
+   color_class: "T023"; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_LISTITEM_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_main_text"; \
+   }
+
+#define GENLIST_PARAM_LISTITEM_TB_WRAP \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_main_text_wrap"; \
+   }
+
+#define GENLIST_PARAM_LISTITEM_CENTER \
+   color_class: "T023"; \
+   text { \
+      align: 0.5 0.5; \
+      min: 0 1; \
+      text_class: "list_item"; \
+   }
+
+// list subtext
+#define GENLIST_PARAM_SUBITEM_DEFAULT \
+   color_class: "T024"; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_sub_text_default"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_TIME \
+   color_class: "T0241"; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_TIME_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_sub_text_time"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_sub_text_default_wrap"; \
+   }
+
+// list subtext 02
+#define GENLIST_PARAM_SUBITEM_02 \
+   color_class: "T0242"; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      text_class: "list_item"; \
+   }
+
+/*************************** Descriptions **********************************/
+// list main text
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color_class: "T023D"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      color_class: "T023P"; \
+   }
+
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_dim"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_press"; \
+   }
+
+// list sub text
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color_class: "T024D"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      color_class: "T024P"; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_default_dim"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_default_press"; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_default_dim_wrap"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_default_press_wrap"; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color_class: "T024D"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      color_class: "T024P"; \
+   }
+
+// list main text multiline
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB_WRAP \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_dim_wrap"; \
+   } \
+   description { state: "pressed" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_press_wrap"; \
+   }
+
+/*************************** Parts **********************************/
+#define GENLIST_PART_LISTITEM(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXT(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_TB(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_LISTITEM_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_CENTER(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+       GENLIST_PART_TEXT(NAME, \
+          GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+                 min: 0 HEIGHT; \
+               GENLIST_PARAM_LISTITEM_CENTER \
+                 PARAM \
+          ) \
+          GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+       )
+
+#define GENLIST_PART_LISTITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 0; \
+         GENLIST_PARAM_LISTITEM_TB \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_LISTITEM_LR(NAME, HEIGHT, LEFT, RIGHT, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, "elm.padding.top", "elm.padding.bottom", \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+         min: 0 HEIGHT; \
+         fixed: 0 1; \
+         GENLIST_PARAM_LISTITEM \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_LRT_TB(NAME, HEIGHT, LEFT, RIGHT, TOP, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+         min: 0 HEIGHT; \
+         fixed: 0 1; \
+         GENLIST_PARAM_LISTITEM_TB \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_LISTITEM_LR_TB(NAME, HEIGHT, LEFT, RIGHT, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, "elm.padding.top", "elm.padding.bottom", \
+         min: 0 HEIGHT; \
+         fixed: 1 0; \
+         GENLIST_PARAM_LISTITEM_TB \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXT(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+         fixed: 0 1; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_LRB_TB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+         fixed: 0 1; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RT \
+         GENLIST_PARAM_SUBITEM_TIME \
+         fixed: 1 0; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_RTB_TB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RT \
+         GENLIST_PARAM_SUBITEM_TIME_TB \
+         fixed: 1 0; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_02_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RT \
+         GENLIST_PARAM_SUBITEM_02 \
+         fixed: 1 0; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+//swipe
+#define SWIPE_TRANSIT       SIN_FAC 0.667 0.8
+
+#define SWIPE_THRESH_X      120
+#define SWIPE_THRESH_Y      30
+
+#define SWIPE_OVERLAP_SIZE  216
+#define SWIPE_BORDER_SIZE   215
+
+#define SWIPE_COLOR_OTHER   "B041P"
+#define SWIPE_COLOR_CALL    "B0232"
+#define SWIPE_COLOR_MESSAGE "B0233"
+
+// state: normal(0)->start,right( 1)->rollback,right ( 3), swipe,right ( 2)-> normal(0)
+//                 ->start,left (-1)->rollback,right (-3), swipe,right (-2)->
+#define GENLIST_SWIPE_SCRIPTS \
+   script { \
+      public _state; \
+      public x1, y1; \
+      public cleanup() { \
+         set_int(_state, 0); \
+         set_int(x1, 0); \
+         set_int(y1, 0); \
+         set_drag(PART:"drag_part", 0, 0); \
+         set_state(PART:"drag_part", "default", 0.0); \
+         set_state(PART:"drag_part_left", "default", 0.0); \
+         set_state(PART:"drag_part_right", "default", 0.0); \
+         set_state(PART:"elm.text.swipe.left", "default", 0.0); \
+         set_state(PART:"elm.text.swipe.right", "default", 0.0); \
+         set_state(PART:"elm.image.swipe.left", "default", 0.0); \
+         set_state(PART:"elm.image.swipe.right", "default", 0.0); \
+         set_state(PART:"swipe_temp_disabler", "default", 0.0); \
+      } \
+   }
+
+#define GENLIST_SWIPE_IMAGES \
+      image : "M01_sweep_call.png" COMP; \
+      image : "M01_sweep_message.png" COMP; \
+      image : "M01_list_swipe_right.#.png" COMP; \
+      image : "M01_list_swipe_left.#.png" COMP;
+
+#define GENLIST_PARTS_SWIPE \
+      part { name: "drag_part"; \
+         type: RECT; \
+         scale: 1; \
+         repeat_events: 1; \
+         dragable { \
+            x: 1 1 0; \
+            y: 0 0 0; \
+         } \
+         description { state: "default" 0.0; \
+            color: 0 0 0 0; \
+            rel1.offset: -SWIPE_OVERLAP_SIZE 0; \
+            rel2.offset: SWIPE_OVERLAP_SIZE 0; \
+         } \
+         description { state: "disable" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 0; \
+         } \
+         description { state: "start_right" 0.0; \
+            inherit: "default" 0.0; \
+            color: 255 255 255 255; \
+            color_class: SWIPE_COLOR_OTHER; \
+         } \
+         description { state: "right_end" 0.0; \
+            inherit: "start_right"; \
+            rel1.relative: 1 0; \
+         } \
+         description { state: "right_rollback" 0.0; \
+            inherit: "start_right" 0.0; \
+            rel1.relative: -1 0; \
+            color: 0 0 0 0; \
+         } \
+         description { state: "start_left" 0.0; \
+            inherit: "default" 0.0; \
+            color: 255 255 255 255; \
+            color_class: SWIPE_COLOR_OTHER; \
+         } \
+         description { state: "left_end" 0.0; \
+            inherit: "start_left" 0.0; \
+            rel2.relative: 0 1; \
+         } \
+         description { state: "left_rollback" 0.0; \
+            inherit: "start_left" 0.0; \
+            rel2.relative: 2 1; \
+            color: 0 0 0 0; \
+         } \
+      } \
+      part { name: "drag_part_left"; \
+         type: IMAGE; \
+         scale: 1; \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            color: 0 0 0 0; \
+            rel1 { \
+               relative: -999 0; \
+            } \
+            rel2 { \
+               to_x: "drag_part"; \
+               relative: 0 1; \
+               offset: SWIPE_OVERLAP_SIZE 0; \
+            } \
+            image { \
+               normal: "M01_list_swipe_left.#.png"; \
+               border: 0 SWIPE_BORDER_SIZE 53 53; \
+               border_scale: 1; \
+            } \
+         } \
+         description { state: "start_right" 0.0; \
+            inherit: "default"; \
+            color: 255 255 255 255; \
+            color_class: SWIPE_COLOR_CALL; \
+         } \
+         description { state: "start_left" 0.0; \
+            inherit: "default"; \
+            color: 255 255 255 255; \
+            color_class: SWIPE_COLOR_CALL; \
+         } \
+      } \
+      part { name: "drag_part_right"; \
+         type: IMAGE; \
+         scale: 1; \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            color: 0 0 0 0; \
+            rel1 { \
+               to_x: "drag_part"; \
+               relative: 1 0; \
+               offset: -SWIPE_OVERLAP_SIZE 0; \
+            } \
+            rel2 { \
+               relative: 999 1; \
+            } \
+            image { \
+               normal: "M01_list_swipe_right.#.png"; \
+               border: SWIPE_BORDER_SIZE 0 53 53; \
+               border_scale: 1; \
+            } \
+         } \
+         description { state: "start_right" 0.0; \
+            inherit: "default"; \
+            color: 255 255 255 255; \
+            color_class: SWIPE_COLOR_MESSAGE; \
+         } \
+         description { state: "start_left" 0.0; \
+            inherit: "default"; \
+            color: 255 255 255 255; \
+            color_class: SWIPE_COLOR_MESSAGE; \
+         } \
+      } \
+      part { name: "swipe_temp_disabler"; \
+         type: RECT; \
+         scale:1; \
+         repeat_events: 0; \
+         description { state: "default" 0.0; \
+            visible: 0; \
+            color: 0 0 0 0; \
+         } \
+         description { state: "enable" 0.0; \
+            inherit: "default"; \
+            visible: 1; \
+         } \
+      } \
+      part { name: "elm.image.swipe.left"; \
+         type: IMAGE; \
+         scale: 1; \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            visible: 0; \
+            color_class: "F011L1P"; \
+            image.normal: "M01_sweep_message.png"; \
+            rel1 { \
+               to_x: "elm.padding.left"; \
+               relative: 1 0; \
+            } \
+            rel2 { \
+               to_x: "elm.padding.right"; \
+               relative: 1 1; \
+            } \
+            align: 0 0.5; \
+            fixed: 1 1; \
+            min: 54 54; \
+            max: 54 54; \
+         } \
+         description { state: "start_left" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 1; \
+            color: 255 255 255 255; \
+         } \
+         description { state: "start_right" 0.0; \
+            inherit: "default" 0.0; \
+         } \
+         description { state: "right_rollback" 0.0; \
+            inherit: "default" 0.0; \
+            color: 0 0 0 0; \
+         } \
+         description { state: "left_rollback" 0.0; \
+            inherit: "default" 0.0; \
+            color: 0 0 0 0; \
+         } \
+      } \
+      part { name: "elm.image.swipe.right"; \
+         type: IMAGE; \
+         scale: 1; \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            image.normal: "M01_sweep_call.png"; \
+            color_class: "F011L1P"; \
+            visible: 0; \
+            rel1 { \
+               to_x: "elm.padding.right"; \
+               relative: 0 0; \
+            } \
+            rel2 { \
+               to_x: "elm.padding.right"; \
+               relative: 0 1; \
+            } \
+            align: 1 0.5; \
+            fixed: 1 1; \
+            min: 54 54; \
+            max: 81 81; \
+         } \
+         description { state: "start_right" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 1; \
+            color: 255 255 255 255; \
+         } \
+         description { state: "start_left" 0.0; \
+            inherit: "default" 0.0; \
+         } \
+         description { state: "right_rollback" 0.0; \
+            inherit: "default" 0.0; \
+            color: 0 0 0 0; \
+         } \
+         description { state: "left_rollback" 0.0; \
+            inherit: "default" 0.0; \
+            color: 0 0 0 0; \
+         } \
+      } \
+      part { name: "elm.text.swipe.left"; \
+         type: TEXT; \
+         scale: 1; \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            rel1 { \
+               relative: 1 0; \
+               to_x: "elm.image.swipe.left"; \
+            } \
+            visible: 0; \
+         } \
+         description { state: "start_left" 0.0; \
+            inherit: "default"; \
+            visible: 1; \
+            align: 0.5 0.5; \
+            color_class: "T023"; \
+            text { \
+               align: 0.5 0.5; \
+               min: 0 1; \
+               font: "Tizen:style=Regular"; \
+               size: 44; \
+               text_class: "label"; \
+            } \
+         } \
+         description { state: "start_right" 0.0; \
+            inherit: "default" 0.0; \
+         } \
+      } \
+      part { name: "elm.text.swipe.right"; \
+         type: TEXT; \
+         scale: 1; \
+         mouse_events: 0; \
+         description { state: "default" 0.0; \
+            rel2 { \
+               relative: 0 1; \
+               to_x: "elm.image.swipe.right"; \
+            } \
+            visible: 0; \
+         } \
+         description { state: "start_right" 0.0; \
+            inherit: "default" 0.0; \
+            visible: 1; \
+            align: 0.5 0.5; \
+            color_class: "T023"; \
+            text { \
+               align: 0.5 0.5; \
+               min: 0 1; \
+               font: "Tizen:style=Regular"; \
+               size: 44; \
+               text_class: "label"; \
+               text: "Call"; \
+            } \
+         } \
+         description { state: "start_left" 0.0; \
+            inherit: "default" 0.0; \
+         } \
+      }
+
+#define GENLIST_PROGRAMS_SWIPE \
+   program { name: "drag_up"; \
+      signal: "mouse,up,1"; \
+      source: "drag_part"; \
+      script { \
+         new x, y, w, h, ww, hh; \
+         get_geometry(PART:"base", x, y, ww, hh); \
+         get_geometry(PART:"drag_part", x, y, w, h); \
+         x = x + SWIPE_OVERLAP_SIZE; \
+         if (get_int(_state) == 1) { \
+            if (x >= (ww/2)) { \
+               set_int(_state, 3); \
+               set_state(PART:"swipe_temp_disabler", "enable", 0.0); \
+               run_program(PROGRAM:"end_move_right"); \
+            } else { \
+               set_int(_state, 2); \
+               set_state(PART:"swipe_temp_disabler", "enable", 0.0); \
+               set_state(PART:"elm.text.swipe.right", "default", 0.0); \
+               set_state(PART:"elm.text.swipe.left", "default", 0.0); \
+               run_program(PROGRAM:"end_rollback_right"); \
+            } \
+         } else if (get_int(_state) == -1) { \
+            if (-x >= (ww/2)) { \
+               set_int(_state, -3); \
+               set_state(PART:"swipe_temp_disabler", "enable", 0.0); \
+               run_program(PROGRAM:"end_move_left"); \
+            } else { \
+               set_int(_state, -2); \
+               set_state(PART:"swipe_temp_disabler", "enable", 0.0); \
+               set_state(PART:"elm.text.swipe.right", "default", 0.0); \
+               set_state(PART:"elm.text.swipe.left", "default", 0.0); \
+               run_program(PROGRAM:"end_rollback_left"); \
+            } \
+         } else cleanup(); \
+      } \
+   } \
+   program { name: "drag_down"; \
+      signal: "mouse,down,1"; \
+      source: "drag_part"; \
+      script { \
+         new x, y; \
+         get_mouse(x, y); \
+         set_int(_state, 0); \
+         set_int(x1, x); \
+         set_int(y1, y); \
+      } \
+   } \
+   program { name: "drag"; \
+      signal: "drag"; \
+      source: "drag_part"; \
+      script { \
+         new x2, y2; \
+         get_mouse(x2, y2); \
+         if (((y2 - get_int(y1)) >= SWIPE_THRESH_Y) || \
+             ((y2 - get_int(y1)) <= -SWIPE_THRESH_Y)) \
+               return; \
+         if (get_int(_state) == 0) { \
+            if ((x2 - get_int(x1)) >= SWIPE_THRESH_X) { \
+               emit("elm,swipe,start", ""); \
+               set_int(_state, 1); \
+               run_program(PROGRAM:"start_right");  \
+            } else if ((x2 - get_int(x1)) <= -SWIPE_THRESH_X) { \
+               emit("elm,swipe,start", ""); \
+               set_int(_state, -1); \
+               run_program(PROGRAM:"start_left");  \
+            } \
+         } else if (get_int(_state) == -1) { \
+            if (x2 > get_int(x1)) { \
+               set_int(_state, 1); \
+               run_program(PROGRAM:"start_right");  \
+            }\
+         } else if (get_int(_state) == 1) { \
+            if (x2 < get_int(x1)) { \
+               set_int(_state, -1); \
+               run_program(PROGRAM:"start_left");  \
+            } \
+         } \
+      } \
+   } \
+   program { name: "start_right"; \
+      action:  STATE_SET "start_right" 0.0; \
+      target: "elm.image.swipe.right"; \
+      target: "elm.image.swipe.left"; \
+      target: "elm.text.swipe.right"; \
+      target: "elm.text.swipe.left"; \
+      target: "drag_part"; \
+      target: "drag_part_left"; \
+      target: "drag_part_right"; \
+   } \
+   program { name: "start_left"; \
+      action:  STATE_SET "start_left" 0.0; \
+      target: "elm.image.swipe.right"; \
+      target: "elm.image.swipe.left"; \
+      target: "elm.text.swipe.right"; \
+      target: "elm.text.swipe.left"; \
+      target: "drag_part"; \
+      target: "drag_part_left"; \
+      target: "drag_part_right"; \
+   } \
+   program { name: "end_move_right"; \
+      transition: SWIPE_TRANSIT; \
+      action:  STATE_SET "right_end" 0.0; \
+      target: "drag_part"; \
+      after: "right_ender"; \
+   } \
+   program { name: "end_move_left"; \
+      transition: SWIPE_TRANSIT; \
+      action:  STATE_SET "left_end" 0.0; \
+      target: "drag_part"; \
+      after: "left_ender"; \
+   } \
+   program { name: "end_rollback_right"; \
+      transition: SWIPE_TRANSIT; \
+      action:  STATE_SET "right_rollback" 0.0; \
+      target: "elm.image.swipe.right"; \
+      target: "elm.image.swipe.left"; \
+      target: "drag_part"; \
+      after: "rollback_ender"; \
+   } \
+   program { name: "end_rollback_left"; \
+      transition: SWIPE_TRANSIT; \
+      action:  STATE_SET "left_rollback" 0.0; \
+      target: "elm.image.swipe.right"; \
+      target: "elm.image.swipe.left"; \
+      target: "drag_part"; \
+      after: "rollback_ender"; \
+   } \
+   program { name: "right_ender"; \
+      script { \
+         emit("elm,swipe,stop,right", ""); \
+         cleanup(); \
+      } \
+   } \
+   program { name: "left_ender"; \
+      script { \
+         emit("elm,swipe,stop,left", ""); \
+         cleanup(); \
+      } \
+   } \
+   program { name: "rollback_ender"; \
+      source: ""; \
+      script { \
+         emit("elm,swipe,stop", ""); \
+         cleanup(); \
+      } \
+   } \
+   program { name: "swipe_revert"; \
+      signal: "elm,swipe,revert"; \
+      source: ""; \
+      script { \
+         if (get_int(_state) != 0) { \
+            emit("elm,swipe,stop", ""); \
+         }\
+         cleanup(); \
+      } \
+   } \
+   program { name: "swipe_disable"; \
+      signal: "elm,swipe,disabled"; \
+      source: ""; \
+      script { \
+         if (get_int(_state) != 0) { \
+            emit("elm,swipe,stop", ""); \
+            cleanup(); \
+         }\
+         set_state(PART:"drag_part", "disable", 0.0); \
+      } \
+   } \
+   program { name: "swipe_enable"; \
+      signal: "elm,swipe,enabled"; \
+      source: ""; \
+      script { \
+         if (get_int(_state) != 0) { \
+            emit("elm,swipe,stop", ""); \
+            cleanup(); \
+         }\
+         set_state(PART:"drag_part", "default", 0.0); \
+      } \
+   } \
+   program { name: "swipe_default"; \
+      signal: "elm,state,default"; \
+      source: "elm"; \
+      script { \
+         run_program(PROGRAM:"swipe_enable"); \
+      } \
+   } \
+   program { name: "swipe_disable_state"; \
+      signal: "elm,state,disabled"; \
+      source: "elm"; \
+      script { \
+         run_program(PROGRAM:"swipe_disable"); \
+      } \
+   } \
+
+
+ // PART
+#define PART(TYPE, NAME, DESCRIPION) \
+       part { name: NAME; \
+          scale: 1; \
+          type: TYPE; \
+          DESCRIPION \
+       }
+
+// ------------------
+// | --> HERE
+// ------------------
+#define DSC_FROM_L( STATE, PARAM ) \
+          description { state: STATE; \
+                 fixed: 1 0; \
+                 align: 0.0 0.5; \
+                 rel2.relative: 0.0 1.0; \
+                 PARAM \
+          }
+
+// ------------------
+//                HERE <-- |
+// ------------------
+#define DSC_FROM_R( STATE, PARAM ) \
+          description { state: STATE; \
+                 fixed: 1 0; \
+                 align: 1.0 0.5; \
+                 rel1.relative: 1 0; \
+                 PARAM \
+          }
+
+// ----------
+// |  HERE  |
+// ----------
+// |            |
+// ----------
+#define DSC_FROM_T( STATE, PARAM ) \
+               description { state: STATE; \
+                  fixed: 0 1; \
+                  align: 0.5 0.0; \
+                  rel2.relative: 1.0 0.0; \
+                  PARAM \
+               }
+
+// ----------
+// |  HERE  |
+// ----------
+// |            |
+// ----------
+#define DSC_FROM_B( STATE, PARAM ) \
+               description { state: STATE; \
+                  fixed: 0 1; \
+                  rel1.relative: 0.0 1.0; \
+                  align: 0.5 1.0; \
+                  PARAM \
+               }
+
+// ---------------------
+// LEFT |--> HERE
+// ---------------------
+#define DSC_L( STATE, LEFT, PARAM ) \
+          description { state: STATE; \
+                 align: 0 0.5; \
+                 fixed: 1 0; \
+                 rel1 { \
+                        relative: 1 0; \
+                        to_x: LEFT; \
+                 } \
+                 rel2 { \
+                        relative: 1 1; \
+                        to_x: LEFT; \
+                 } \
+                 PARAM \
+          }
+
+// ---------------------
+//      HERE  <--| RIGHT
+// ---------------------
+#define DSC_R( STATE, RIGHT, PARAM ) \
+          description { state: STATE; \
+                 align: 1 0.5; \
+                 fixed: 1 0; \
+                 rel1 { \
+                        relative: 0 0; \
+                        to_x: RIGHT; \
+                 } \
+                 rel2 { \
+                        relative: 0 1; \
+                        to_x: RIGHT; \
+                 } \
+                 PARAM \
+          }
+
+//             |       TOP  |
+// ---------------------
+// LEFT |  HERE  | RIGHT
+// ---------------------
+//             | BOTTOM |
+#define DSC_LRTB( STATE, LEFT, RIGHT, TOP, BOTTOM, PARAM ) \
+          description { state: STATE; \
+                 rel1 { \
+                        relative: 1 1; \
+                        to_x: LEFT; \
+                        to_y: TOP; \
+                 } \
+                 rel2 { \
+                        relative: 0 0; \
+                        to_x: RIGHT; \
+                        to_y: BOTTOM; \
+                 } \
+                 PARAM \
+          }
+
diff --git a/ug.msg-composer-efl.include b/ug.msg-composer-efl.include
new file mode 100755 (executable)
index 0000000..eaae214
--- /dev/null
@@ -0,0 +1,51 @@
+#subject rule
+$1 xorg rw
+$1 xorg::screencapture r
+$1 isf rwx
+$1 system::vconf rwxat
+$1 contacts-service rx
+$1 device::app_logging w
+$1 system::use_internet r
+$1 system::media rwxat
+$1 org.tizen.indicator rw
+$1 ail::db rw
+$1 media-data::db rw
+$1 org.tizen.gallery rwx
+$1 media-server rw
+$1 ims-service::db rw
+$1 app-svc::db rw
+$1 sound_server rw
+$1 org.tizen.message rx
+$1 msg-service wx
+$1 system::vconf_inhouse rw
+$1 system::vconf_setting r
+$1 system::vconf_system rw
+$1 cbhm x
+$1 samsung-log-manager::use_app_feature_survey rw
+$1 samsung-log-manager::report_app_status_survey rw
+#object rule
+e17 $1 w
+media-server $1 w
+
+#user space access control
+$1 contacts-service::svc x
+$1 contacts-service::phonelog r
+$1 contacts-service::vconf rxl
+$1 msg-service::read rw
+$1 msg-service::write rw
+$1 msg-service::wappush rw
+$1 telephony_framework::api_manager r
+$1 telephony_framework::api_modem w
+$1 telephony_framework::api_call rw
+$1 telephony_framework::api_network w
+$1 aul::launch x
+$1 aul::terminate x
+
+#ug include rule
+$1 ug.gallery-efl include
+$1 ug.memo-efl include
+$1 ug.contacts-tabui-efl include
+$1 ug.contacts-details-efl include
+$1 ug.contacts-list-efl include
+$1 ug.msg-viewer-efl include
+$1 ug.bookmark-add-efl.include
diff --git a/ug.msg-setting-efl.include b/ug.msg-setting-efl.include
new file mode 100755 (executable)
index 0000000..17b0f79
--- /dev/null
@@ -0,0 +1,25 @@
+#subject rule
+$1 xorg::screencapture r
+$1 efreet rx
+$1 pulseaudio rwxat
+$1 org.tizen.indicator w
+$1 contacts-service x
+$1 system::vconf rwxat
+$1 msg-service::db rw
+$1 org.tizen.contacts r
+$1 org.tizen.message w
+$1 system::vconf_setting r
+$1 system::vconf_inhouse rw
+$1 org.tizen.setting::default-resources rx
+
+#object rule
+aul $1 rx
+
+#user space access control
+$1 msg-service::wappush rw
+$1 msg-service::cellbroadcast rw
+$1 telephony_framework::api_sim r
+$1 telephony_framework::api_manager r
+$1 telephony_framework::api_call r
+$1 contacts-service::svc x
+$1 contacts-service::vconf rxl
diff --git a/ug.msg-viewer-efl.include b/ug.msg-viewer-efl.include
new file mode 100755 (executable)
index 0000000..9b40452
--- /dev/null
@@ -0,0 +1,21 @@
+#subject rule
+$1 xorg::screencapture r
+$1 pulseaudio rwxat
+$1 system::vconf rwxat
+$1 org.tizen.indicator rw
+$1 contacts-service rwx
+$1 org.tizen.message rwx
+$1 msg-service::db rw
+$1 system::vconf_setting r
+
+#user space access control
+$1 contacts-service::svc x
+$1 contacts-service::vconf rxl
+$1 msg-service::read rw
+$1 msg-service::wappush rw
+$1 aul::launch x
+
+#ug include rule
+$1 ug.contacts-details-efl include
+$1 ug.contacts-list-efl include
+$1 ug.bookmark-add-efl include
diff --git a/viewer/CMakeLists.txt b/viewer/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..ed82d8c
--- /dev/null
@@ -0,0 +1,87 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(msg-viewer-efl C)
+
+SET (MSG_VIEWER  msg_viewer)
+SET (MSG_VIEWER_DEFINES  msg_viewer_defines)
+SET (MSG_VIEWER_CUSTOM  msg_viewer_custom)
+
+#################################
+#      Message Viewer  #
+#################################
+
+SET(VIEWER_SRCS
+       ./src/msg-ui-viewer-gadget.c
+    ./src/msg-ui-viewer-main.c
+       ./src/msg-ui-viewer-callback.c
+       #./src/msg-ui-viewer-drm-list.c
+       #./src/msg-ui-viewer-drm-utility.c
+       ./src/msg-ui-viewer-play-view-main.c
+       ./src/msg-ui-viewer-play-view-attachment.c
+       ./src/msg-ui-viewer-play-view-options.c
+       ./src/msg-ui-viewer-play-view-play-controller.c
+       ./src/msg-ui-viewer-summary-view-attachment.c
+       ./src/msg-ui-viewer-summary-view-main.c
+       ./src/msg-ui-viewer-summary-view-message.c
+       ./src/msg-ui-viewer-summary-view-option.c
+       ./src/msg-ui-viewer-utility.c
+       ./smil-player/src/msg-smil-player.c
+       ./smil-player/src/msg-smil-content-manager.c
+       ./smil-player/src/msg-smil-event-manager.c
+       ./smil-player/src/msg-smil-player-interface.c
+       ./smil-player/src/msg-smil-render.c
+       ./smil-player/src/msg-smil-text-render.c
+       ./smil-player/src/msg-smil-media-render.c
+       ./smil-player/src/msg-smil-util.c
+)
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_VIEWER_DIR}/include
+               ${CMAKE_SOURCE_MAIN_DIR}
+               ${CMAKE_SOURCE_COMMON_DIR}
+               /usr/include/msg-service/
+               ${CMAKE_SOURCE_VIEWER_DIR}/smil-player/include
+)
+
+FOREACH(flag ${pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+
+ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{PREFIX}\"")
+ADD_DEFINITIONS("-DDATAFS=\"$ENV{DATADIR}\"")
+ADD_DEFINITIONS("-DTARGET")
+ADD_DEFINITIONS("-DSLP_PROF")
+
+ADD_CUSTOM_TARGET(${MSG_VIEWER}.edj
+                               COMMAND edje_cc -no-save ${EDJE_CC_DEFINITIONS} -id ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image -sd ${CMAKE_SOURCE_COMMON_DIR}/data/sound
+                               ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER}.edc ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER}.edj
+                               DEPENDS ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER}.edc
+)
+
+ADD_CUSTOM_TARGET(${MSG_VIEWER_DEFINES}.edj
+                               COMMAND edje_cc -no-save ${EDJE_CC_DEFINITIONS} -id ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image
+                               ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER_DEFINES}.edc ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER_DEFINES}.edj
+                               DEPENDS ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER_DEFINES}.edc
+)
+
+ADD_CUSTOM_TARGET(${MSG_VIEWER_CUSTOM}.edj
+                               COMMAND edje_cc -no-save ${EDJE_CC_DEFINITIONS} -id ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image -sd ${CMAKE_SOURCE_COMMON_DIR}/data/sound
+                               ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER_CUSTOM}.edc ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER_CUSTOM}.edj
+                               DEPENDS ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER_CUSTOM}.edc
+)
+
+ADD_LIBRARY(${PROJECT_NAME} SHARED ${VIEWER_SRCS})
+ADD_DEPENDENCIES(${PROJECT_NAME} ${MSG_VIEWER}.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} ${MSG_VIEWER_DEFINES}.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} ${MSG_VIEWER_CUSTOM}.edj)
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -L${CMAKE_SOURCE_COMMON_DIR} -lmsg-common)
+
+# Install executable and .edj files.
+#INSTALL(DIRECTORY ${CMAKE_SOURCE_VIEWER_DIR}/data/images/ DESTINATION ${IMGDIR} FILES_MATCHING PATTERN "*.png")
+INSTALL(FILES ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER}.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER_DEFINES}.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER_CUSTOM}.edj DESTINATION ${EDJDIR})
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${UGDIR})
+
+#i18n
+#ADD_SUBDIRECTORY(po)
diff --git a/viewer/include/msg-ui-viewer-common.h b/viewer/include/msg-ui-viewer-common.h
new file mode 100755 (executable)
index 0000000..758ce92
--- /dev/null
@@ -0,0 +1,198 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_VIEWER_COMMON_H__
+#define __MSG_UI_VIEWER_COMMON_H__
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include <Elementary.h>
+#include <msg_types.h>
+/*==================================================================================================
+ *                                                                     DEFINITIONS
+ *==================================================================================================*/
+#define VIEWER_CANVAS_WIDTH 656
+
+#define VIEWER_VIDEO_WIDTH     118
+#define VIEWER_VIDEO_HEIGHT    144
+
+#define VIEWER_VIDEO_CANVAS_HEIGHT_PORTRAIT (VIEWER_VIDEO_WIDTH * 2)   // QCIF width(176) size * 2
+#define VIEWER_VIDEO_CANVAS_HEIGHT_LANDSCAPE (VIEWER_VIDEO_HEIGHT * 2) // QCIF height(144) size * 2
+
+#define VIEWER_IMAGE_CANVAS_HEIGHT_PORTRAIT 369
+
+#define RoundOff(x, dig) (floor((x) * pow(10,dig) + 0.5) / pow(10,dig))
+
+#define VIEWER_BUFFER_SIZE_64 64
+#define VIEWER_LIST_MAX_DISPLAY_MENU_NUM_V (7.5)
+#define VIEWER_LIST_MAX_DISPLAY_MENU_NUM_H (3.5)
+
+#define VIEWER_LIST_1TEXT_HEIGHT 96
+
+#define VIEWER_TITLE_FONT_LEN 100
+#define VIEWER_NAVI_FRAME_HEIGHT 96
+#define VIEWER_NAVIFRAME_BOTTOM_H 114
+
+#define VIEWER_DETAILS_TEXT_SPACE " "
+#define VIEWER_DETAILS_TEXT_LEFT_BRACE "("
+#define VIEWER_DETAILS_TEXT_RIGHT_BRACE ")"
+#define VIEWER_DETAILS_TEXT_MSG_SIZE_KB 1024
+
+#define MSG_VIEWER_EDJ EDJDIR"/msg_viewer.edj"
+#define MSG_VIEWER_CUSTOM_EDJ EDJDIR"/msg_viewer_custom.edj"
+
+#define MSG_VIEWER_PAGE_INDEX_NONE     -1
+#define MSG_VIEWER_ZOOM_COUNT_FILTER 5
+
+#define MSG_VIEWER_DATE_FORMAT "MMMMddyyyy"
+#define MSG_VIEWER_TIME_FORMAT_12 "hma"
+#define MSG_VIEWER_TIME_FORMAT_24 "Hm"
+
+#define KEY_NAME_RETURN "Return"
+#define KEY_NAME_ENTER "KP_Enter"
+#define KEY_NAME_SPACE "space"
+ /*==================================================================================================
+ *                                                                             ENUMERATIONS
+ *==================================================================================================*/
+typedef enum {
+       MSG_VIEWER_DEFAULT_MODE = 0,
+       MSG_VIEWER_RECIPIENT_MODE,                      /* Recipient list screen */
+       MSG_VIEWER_LOAD_CONTACT_UG,                     /* launching CONTACT UG */
+       MSG_VIEWER_LOAD_BROWSER_UG,                     /* launching BROWSER UG */
+       MSG_VIEWER_LOAD_COMPOSER_UG,            /* launching COMPOSER UG */
+       MSG_VIEWER_LOAD_VIEWER_UG,                      /* launching VIEWER UG from summary view to play view*/
+       MSG_VIEWER_LOAD_SETTING_UG,                     /* launching SETTING UG */
+       MSG_VIEWER_LOADING_APPLICATION,         /* loading state after requesting appsvc */
+       MSG_VIEWER_HIDED_BY_APPLICATION,                /* hided and paused after launching appsvc like email/call/vcall/browser */
+} MSG_VIEWER_MODE_E;
+
+typedef enum {
+       MSG_VIEWER_POPUP_NONE = 0,
+       MSG_VIEWER_NORMAL_POPUP,
+       MSG_VIEWER_DELETE_POPUP,
+       MSG_VIEWER_ATTACHMENTS_POPUP,
+       MSG_VIEWER_DETAILS_POPUP,
+       MSG_VIEWER_MENU_CTX_POPUP,
+       MSG_VIEWER_CUTLINK_POPUP,
+       MSG_VIEWER_RECIPIENT_LIST_MENU_POPUP,
+       MSG_VIEWER_ADD_TO_CONTACT_POPUP,
+       MSG_VIEWER_CONTACT_LIST_POPUP,
+       MSG_VIEWER_BLOCK_POPOP,
+       MSG_VIEWER_RESTORE_POPUP,
+       MSG_VIEWER_SCHEDULE_SEND_NOW_POPUP,
+       MSG_VIEWER_SCHEDULE_CANCEL_POPUP,
+       MSG_VIEWER_RENAME_ATTACHMENT_POPUP,
+       MSG_VIEWER_FORWARD_RESTRICTED_POPUP,
+       MSG_VIEWER_READ_REPORT_SENT_POPUP,
+       MSG_VIEWER_RESEND_POPUP,
+} MSG_VIEWER_POPUP_TYPE_E;
+
+typedef enum {
+       MSG_VIEWER_POPUP_NO_BUTTON = 0,
+       MSG_VIEWER_POPUP_OK_BUTTON,
+       MSG_VIEWER_POPUP_CANCEL_BUTTON,
+       MSG_VIEWER_POPUP_CANCEL_OK_BUTTON
+} MSG_VIEWER_POPUP_BTN_TYPE_E;
+
+typedef enum {
+       MSG_VIEWER_SAVING_STATUS_NONE = 0,
+       MSG_VIEWER_SAVING_PAGE_MEDIA,
+       MSG_VIEWER_SAVING_ATTACHMENT,
+       MSG_VIEWER_SAVING_PAGE_MEDIA_N_ATTACHMENT,
+} MSG_VIEWER_SAVING_STATUS_E;
+
+typedef enum {
+       MSG_VIEWER_PADDING_TOP_1 = 0,
+       MSG_VIEWER_PADDING_TOP_2,
+       MSG_VIEWER_PADDING_MIDDLE_1,
+       MSG_VIEWER_PADDING_BOTTOM,
+} MSG_VIEWER_PADDING_TYPE_E;
+
+typedef enum {
+       MSG_VIEWER_FONT_SIZE_NONE,
+       MSG_VIEWER_ACCESSIBILITY_FONT_SIZE,
+       MSG_VIEWER_MSG_FONT_SIZE
+} MSG_VIEWER_FONT_SIZE_TYPE_E;
+
+typedef enum {
+       MSG_VIEWER_FONT_CHANGE_LOAD_SETTING,
+       MSG_VIEWER_FONT_CHANGE_LATEST_UPDATE,
+       MSG_VIEWER_FONT_CHANGE_PINCH_ZOOM,
+} MSG_VIEWER_FONT_CHANGE_TYPE_E;
+
+typedef enum {
+       VIEWER_ORDER_NONE = 0,
+       VIEWER_PREVIOUS_MSG,
+       VIEWER_NEXT_MSG,
+} MSG_VIEWER_RESET_ORDER;
+
+typedef enum {
+       MSG_VIEWER_READ_REPORT_INVALID = 0,
+       MSG_VIEWER_READ_REPORT_IS_NOT_NEEDED,
+       MSG_VIEWER_READ_REPORT_IS_NEEDED_BUT_NOT_YET,
+       MSG_VIEWER_READ_REPORT_IS_NEEDED_BUT_NOT_SENT,
+       MSG_VIEWER_READ_REPORT_IS_SENT,
+} MSG_VIEWER_READ_REPORT_STATUS;
+
+typedef enum {
+       VIEWER_INTERNAL_NONE = 0,
+       VIEWER_INTERNAL_SPAM_MSG,                       /* spam msgbox */
+       VIEWER_INTERNAL_SIM_MSG,                        /* manage simcard list */
+       VIEWER_INTERNAL_CB_MSG,                         /* cb msgbox */
+       VIEWER_INTERNAL_PROTECTED_MMS_MSG,      /* mms message in locked msgbox */
+       VIEWER_INTERNAL_SPAM_MMS_MSG,           /* mms message in spam msgbox */
+} MSG_VIEWER_INTERNAL_CALLER_TYPE;
+/*==================================================================================================
+ *                                                                             STRUCTURES
+ *==================================================================================================*/
+typedef struct _MSG_VIEWER_ADDR_INFO_S {
+       int person_id;
+       char address[MAX_ADDRESS_VAL_LEN+1];
+       char name[MAX_DISPLAY_NAME_LEN+1];
+} MSG_VIEWER_ADDR_INFO;
+
+typedef enum {
+       MSG_VIEWER_MEDIA_INVALID = 0,
+       MSG_VIEWER_MEDIA_TEXT,
+       MSG_VIEWER_MEDIA_IMG,
+       MSG_VIEWER_MEDIA_AUDIO,
+       MSG_VIEWER_MEDIA_VIDEO,
+       MSG_VIEWER_MEDIA_ANIMATE,
+       MSG_VIEWER_MEDIA_IMG_OR_VIDEO,
+       MSG_VIEWER_MEDIA_ATTACH,
+       MSG_VIEWER_MEDIA_DRM,
+} MSG_VIEWER_MEDIA_TYPE_E;
+
+typedef struct {
+       char pfile_name[MSG_VIEWER_FILENAME_MAX_LEN + 1];
+       char pfile_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1];
+       char pthumb_file_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1];
+       int pfile_size;
+       int media_index;
+       int page_index;                         /* set if current media is page media, set -1 if it's attach media */
+       int total_count;
+       bool unable_display;
+       Evas_Object *check_item;        /* check object for save attachments genlist */
+       MSG_VIEWER_MEDIA_TYPE_E media_type;
+       MSG_VIEWER_MEDIA_TYPE_E media_subtype;          /* to distinguish content type of attach files */
+       void *view_data;                        /* current viewer private data */
+} MSG_VIEWER_MEDIA_INFO_S;
+
+typedef void (*pf_popup_cancel_btn_cb)(void *data, Evas_Object *obj, void *event_info);
+typedef void (*pf_popup_ok_btn_cb)(void *data, Evas_Object *obj, void *event_info);
+
+#endif /* __MSG_UI_VIEWER_COMMON_H__ */
diff --git a/viewer/include/msg-ui-viewer-main.h b/viewer/include/msg-ui-viewer-main.h
new file mode 100755 (executable)
index 0000000..d9cfd8f
--- /dev/null
@@ -0,0 +1,208 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_VIEWER_MAIN_H__
+#define __MSG_UI_VIEWER_MAIN_H__
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include <msg.h>
+#include "msg-ui-viewer-types.h"
+#include "msg-ui-util.h"
+
+#include "msg-ui-viewer-play-view.h"
+#include "msg-ui-viewer-summary-view.h"
+
+#include <Elementary.h>
+#include <ui-gadget-module.h>
+#include <Ecore_X.h>
+#include <notification.h>
+
+/*==================================================================================================
+ *                                                                             DEFINITIONS
+ *==================================================================================================*/
+/*View control CMD defines*/
+#define MSG_VIEWER_VIEW_CMD_NONE       0
+#define MSG_VIEWER_VIEW_CMD_PLAY       0x01
+
+/*==================================================================================================
+ *                                                                             ENUMERATIONS
+ *==================================================================================================*/
+typedef enum {
+       MSG_VIEWER_SUMMARY_VIEW,        /* SMS & MMS 1page view */
+       MSG_VIEWER_PLAYER_VIEW,         /* MMS SMIL view */
+} MSG_VIEWER_VIEW_MODE_E;
+
+typedef enum {
+       MSG_UG_MODE_FULLVIEW,
+       MSG_UG_MODE_FRAMVIEW,
+       MSG_INVALID_UG_MODE,
+} MSG_VIEWER_UG_MODE_E;
+
+typedef enum {
+       MSG_VIEWER_INVALID_MODE = 0,
+       MSG_VIEWER_SMS_SUMMARIZED_MODE, /* sms normal mode */
+       MSG_VIEWER_MMS_SUMMARIZED_MODE, /* short mms mode */
+       MSG_VIEWER_MMS_NORMAL_MODE,             /* mms normal mode */
+       MSG_VIEWER_MMS_PREVIEW_MODE,    /* mms preview mode */
+} MSG_VIEWER_LAUNCH_MODE_E;
+
+/*==================================================================================================
+ *                                                                             STRUCTURES
+ *==================================================================================================*/
+typedef struct _MSG_VIEWER_MAIN_DATA {
+       ui_gadget_h     viewer_ug;
+       struct ug_cbs cbs;
+       ui_gadget_h     loaded_ug;      /*if each view call other ug, then set this loaded_ug by using msg_ui_viewer_set_loaded_ug*/
+
+       Evas_Object     *main_window;
+       Evas_Object     *layout_main;
+       Evas_Object     *bg;
+       Evas_Object     *navi_frame;    /*if navi_frame is created from which view, then navi_frame should be set by using msg_ui_viewer_set_navi_frame*/
+
+       int     msgID;
+       void *SmilHandle;       /*smilplayer handler*/
+
+       msg_handle_t msgHandle; /*ipc handler between viewer and MF*/
+       msg_struct_t msg_t;     /* msg info struct */
+       msg_struct_t mms_t;     /* mms struct */
+
+       MSG_VIEWER_LAUNCH_MODE_E launch_mode;   /*preview mode or full view mode */
+       MSG_VIEWER_UG_MODE_E ug_mode;   /*This is a launching ug-mode of viewer, frameview or fullview*/
+       MSG_VIEWER_VIEW_MODE_E view_mode;
+       MSG_VIEWER_INTERNAL_CALLER_TYPE internal_mode;
+       MSG_VIEWER_RESET_ORDER view_order;
+
+       int window_w;
+       int window_h;
+
+       VIEWER_PLAY_DATA_S *player_view;
+       VIEWER_SUMMARY_DATA_S *summary_view;
+
+       bool destroy_on_close;  /* flag for viewer should be closed or not when the time returning viewer screen */
+       bool from_contact;              /* cut infinite nesting bubble-viewer layout by destroying ug when before entering contact ug again */
+
+       Ecore_Idler     *del_idler;
+       Ecore_Idler     *msg_list_idler;
+       Eina_List *msg_id_list;
+
+} VIEWER_MAIN_DATA_S;
+
+/*==================================================================================================
+ *                                                             FUNCTION DECLARATIONS
+ *==================================================================================================*/
+void msg_ui_viewer_reload_viewer(void *data, app_control_h svc_handle);
+void msg_ui_viewer_main_init(void *data);
+MSG_BOOL msg_ui_viewer_launch(void *data);
+void msg_ui_viewer_show_view_by_mode(void *data, MSG_VIEWER_VIEW_MODE_E viewMode, unsigned int commandType);
+void msg_ui_viewer_launch_voice_call(const char *call_num, bool isDirect_call);
+char *msg_ui_viewer_get_trimmed_number(const char *org_num);
+/*
+ *@fn  msg_ui_viewer_set_loaded_ug(void *data, ui_gadget_h loaded_ug);
+ *@brief       this function is used to set loaded ug pointer to VIEWER_MAIN_DATA_S
+ *@param[in] data VIEWER_MAIN_DATA_S structure
+ *@param[in] loaded_ug  loaded ug pointer
+ */
+void msg_ui_viewer_set_loaded_ug(void *data, ui_gadget_h loaded_ug);
+
+/*
+ *@fn  msg_ui_viewer_set_navi_frame(void *data, Evas_Object *navi_frame);
+ *@brief this function is used to set navi_frame to VIEWER_MAIN_DATA_S
+ *@param[in] data VIEWER_MAIN_DATA_S structure
+ *@param[in] navi_frame  naviframe pointer
+ */
+void msg_ui_viewer_set_navi_frame(void *data, Evas_Object *navi_frame);
+
+/*
+ *@fn  msg_ui_viewer_set_smilhandle(void *data, void *smilhandle);
+ *@brief this function is used to set smilhandle to VIEWER_MAIN_DATA_S
+ *@param[in] data VIEWER_MAIN_DATA_S structure
+ *@param[in] smilhandle  smilhandle
+ */
+void msg_ui_viewer_set_smilhandle(void *data, void *smilhandle);
+
+/*
+ *@fn  msg_ui_viewer_set_msg_structure(void *data, msg_struct_t msg_t, msg_struct_t mms_t);
+ *@brief this function is used to set msg_struct_t for each msg viewer
+ *@param[in] data VIEWER_MAIN_DATA_S structure
+ *@param[in] msg_t  msg_struct_t
+ *@param[in] mms_t  msg_struct_t
+ */
+void msg_ui_viewer_set_msg_structure(void *data, msg_struct_t msg_t, msg_struct_t mms_t);
+
+/*
+ *@fn  msg_ui_viewer_get_viewer_launch_mode(void *data, MSG_VIEWER_LAUNCH_MODE_E *launch_mode);
+ *@brief this function is used to get viewer launch mode(preview/fullview)
+ *@param[in] data VIEWER_MAIN_DATA_S structure
+ *@param[out] launch_mode  MSG_VIEWER_LAUNCH_MODE_E mode (preview/fullview)
+ *@return      return TRUE if it has launch_mode, else FALSE
+ */
+MSG_BOOL msg_ui_viewer_get_viewer_launch_mode(void *data, MSG_VIEWER_LAUNCH_MODE_E *launch_mode);
+
+/*
+ *@fn  msg_ui_viewer_get_viewer_ug_mode(void *data, MSG_VIEWER_UG_MODE_E *ug_mode);
+ *@brief this function is used to get viewer ug launched mode
+ *@param[in] data VIEWER_MAIN_DATA_S structure
+ *@param[out] ug_mode  MSG_VIEWER_UG_MODE_E mode (framview mode/fullview mode)
+ *@return      return TRUE if it has viewer ug launch_mode, else FALSE
+ */
+MSG_BOOL msg_ui_viewer_get_viewer_ug_mode(void *data, MSG_VIEWER_UG_MODE_E *ug_mode);
+
+/*
+ *@fn  msg_ui_viewer_get_viewer_ug(void *data);
+ *@brief this function is used to get viewer ug pointer
+ *@param[in] data VIEWER_MAIN_DATA_S structure
+ *@return      return viewer ug pointer, else NULL
+ */
+ui_gadget_h msg_ui_viewer_get_viewer_ug(void *data);
+
+/*
+ *@fn  msg_ui_viewer_get_main_layout(void *data);
+ *@brief this function is used to get layout_main of viewer
+ *@param[in] data VIEWER_MAIN_DATA_S structure
+ *@return      return layout_main pointer, else NULL
+ */
+Evas_Object *msg_ui_viewer_get_main_layout(void *data);
+
+/*
+ *@fn  msg_ui_viewer_get_bg_layout(void *data);
+ *@brief this function is used to get bg_layout of viewer
+ *@param[in] data VIEWER_MAIN_DATA_S structure
+ *@return      return bg_layout pointer, else NULL
+ */
+Evas_Object *msg_ui_viewer_get_bg_layout(void *data);
+
+Evas_Object *msg_ui_viewer_create_bg(void *data, Evas_Object *parent);
+Evas_Object *msg_ui_viewer_create_layout_main(Evas_Object *parent, bool indicator);
+
+void msg_ui_viewer_change_region(void *data);
+void msg_ui_viewer_change_language(void *data);
+
+/* msg-id-list */
+Eina_Bool msg_ui_viewer_get_thread_msg_id_list(void *data);
+bool msg_ui_viewer_find_msg_in_msg_id_list(void *data, int msg_id);
+void msg_ui_viewer_remove_thread_msg_id_list(void *data);
+
+/* VIEWER  CALLBACK */
+Eina_Bool msg_ui_viewer_ug_quit(void *data);
+void msg_ui_viewer_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+void msg_ui_viewer_result_cb(ui_gadget_h ug, app_control_h svc_result_h, void *priv);
+void msg_ui_viewer_destroy_cb(ui_gadget_h ug, void *priv);
+void msg_ui_viewe_contact_changed_cb(const char *view_uri, void *user_data);
+void msg_ui_viewer_msg_storage_change_cb(msg_handle_t handle, msg_storage_change_type_t type, msg_id_list_s *pMsgIdList, void *user_param);
+#endif /* __MSG_UI_VIEWER_MAIN_H__*/
diff --git a/viewer/include/msg-ui-viewer-play-view.h b/viewer/include/msg-ui-viewer-play-view.h
new file mode 100755 (executable)
index 0000000..ca55fb8
--- /dev/null
@@ -0,0 +1,253 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_VIEWER_PLAY_VIEW_H__
+#define __MSG_UI_VIEWER_PLAY_VIEW_H__
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include <msg.h>
+
+#include "msg-smil-player-interface.h"
+#include "msg-ui-viewer-common.h"
+#include "msg-ui-viewer-types.h"
+
+#include <Ecore_X.h>
+#include <Ecore.h>
+#include <Elementary.h>
+#include <ui-gadget-module.h>
+
+/*==================================================================================================
+ *                                                                     DEFINITIONS
+ *==================================================================================================*/
+#define VIEWER_ATTACH_LIST_ITEM_HEIGHT 96
+#define VIEWER_HELP_PAGE_ITEM_HEIGHT 100
+
+#define VIEWER_PLAY_CONTROLLER_LIFETIME (3.0)
+#define VIEWER_PLAY_CONTROLLER_PROGRESSBAR_TIME (1.0)
+#define VIEWER_PLAY_CONTROLLER_VERTICAL_HEIGHT 218
+#define VIEWER_PLAY_CONTROLLER_HORIZONTAL_HEIGHT 114
+#define VIEWER_POPUP_LIST_ITEM_HEIGHT 96
+#define VIEWER_VOLUME_KEY_FONT_LONG_PRESS_TIME (0.3)
+/*==================================================================================================
+ *                                                                             ENUMERATIONS
+ *==================================================================================================*/
+typedef enum {
+       MSG_VIEWER_PLAY = 0,
+       MSG_VIEWER_PAUSE,
+       MSG_VIEWER_STOP,
+       MSG_VIEWER_CLOSE,
+       MSG_VIEWER_UNKOWN,
+} MSG_VIEWER_PLAY_STATUS_E;
+
+typedef enum {
+       MSG_VIEWER_ACTION_NONE = 0,
+       MSG_VIEWER_ACTION_TOOLBAR_PLAY,         /* action tapping play button in play toolbar */
+       MSG_VIEWER_ACTION_TOOLBAR_PAUSE,        /* action tapping pause button in play toolbar */
+       MSG_VIEWER_ACTION_AUTO_PLAY,            /* action auto play by related UX flow */
+       MSG_VIEWER_ACTION_AUTO_PAUSE,           /* action auto pause by related UX flow */
+} MSG_VIEWER_ACTION_TYPE_E;
+
+typedef enum {
+       MSG_VIEWER_ENTRY_NORMAL_TEXT,
+       MSG_VIEWER_ENTRY_HELP_TEXT,
+} MSG_VIEWER_ENTRY_TYPE_E;
+
+typedef enum {
+       VIEWER_HELP_PAGE_FONT_SMALL = 24,
+       VIEWER_HELP_PAGE_FONT_NORMAL= 30,
+       VIEWER_HELP_PAGE_FONT_LARGE = 44,
+       VIEWER_HELP_PAGE_FONT_HUGE = 60,
+       VIEWER_HELP_PAGE_FONT_GIANT = 76,
+       VIEWER_HELP_PAGE_FONT_MAX
+
+} MSG_VIEWER_HELP_PAGE_FONT_SIZE_E;
+
+/*==================================================================================================
+ *                                                                             STRUCTURES
+ *==================================================================================================*/
+typedef struct _VIEWER_PLAY_DATA_S {
+       struct ug_cbs cbs;
+       void *viewer_main;
+       Evas_Object *main_window;
+       Evas_Object *navi_frame;
+       Evas_Object *navi_title_layout;         /* navi title area layout */
+       Evas_Object *title_button;                      /* navi title contact button */
+       Evas_Object *play_layout;                               /* play viewer main layout */
+       Evas_Object *scroller;                          /* scroller of play layout */
+       Evas_Object *subject_index_layout;      /* subject / page index */
+       Evas_Object *play_controller;                   /* play controller */
+       Evas_Object *progressbar;                               /* progressbar of play controller */
+       Evas_Object *save_attachment_gl;                /* save attachments genlist */
+       Evas_Object *render_entry;                      /* entry handle of SMIL render */
+       Evas_Object *rename_popup_entry;        /* save attachment rename popup entry */
+       Evas_Object *recipient_list;            /* Recipient list */
+       Evas_Object *focus_object;                      /* current focus object in layout */
+
+       Evas_Object *save_button;                       /* save attachment's popup button */
+       int media_chk_cnt;                                      /* total selected save attachment count */
+
+       Elm_Object_Item *navi_item;                     /* naviframe item */
+
+       Evas_Object *popup;                                     /*simple popup*/
+       MSG_VIEWER_POPUP_TYPE_E popup_type;
+       int popup_item_count;
+       SMIL_SLIDE_CLIENT_CB_PARAM_S *smil_eventStatus;
+
+       MSG_VIEWER_INTERNAL_CALLER_TYPE internal_mode;  /* Viewer messagebox type */
+
+       int m_x;
+       int m_y;
+       int window_width;
+       int window_height;
+
+       Ecore_Event_Handler *mouse_down_event_handler;
+       Ecore_Event_Handler *mouse_up_event_handler;
+
+       msg_handle_t msgHandle; /*ipc handler between viewer and MF*/
+       msg_struct_t msg_t;
+       msg_struct_t mms_t;
+       int     msgID;
+       void *SmilHandle;
+       MSG_VIEWER_PLAY_STATUS_E status;
+       MSG_VIEWER_PLAY_STATUS_E previous_status;
+       MSG_VIEWER_SAVING_STATUS_E saving_status;
+       MSG_VIEWER_MODE_E mode;
+       int font_size;
+
+       Ecore_Idler *del_idler;
+       Ecore_Timer *play_controller_timer;
+       Ecore_Timer *play_controller_progressbar_timer;
+       bool is_cmdplaypause_called;
+
+       int ctrl_start_x;               /* play controller mouse pointer */
+       int ctrl_start_y;               /* play controller mouse pointer */
+       int ctrl_end_x;                 /* play controller mouse pointer */
+       int ctrl_end_y;                 /* play controller mouse pointer */
+
+       int insert_count;       /*inserted contents count, except text file*/
+       int attach_count;       /*attached contents count*/
+
+       Eina_List *insert_list; /*inserted content list */
+       Eina_List *attach_list; /*attached contents list */
+       Evas_Object **attach_ly;/*attached items layout list */
+
+       bool playcontroller_opened;             /*check play controller is shown or not */
+       bool auto_resume_state;         /* check state of auto resume availablity */
+       bool is_rotated;                /* TRUE if horizontal or reverse horizontal */
+       bool drm_ro_check;              /* whether showing drm cotents popup or not - before SMIL START*/
+       bool from_contact;              /* cut infinite nesting bubble-viewer layout by destroying ug when before entering contact ug again */
+       bool keep_keygrab;
+       bool call_option_enabled;/*To check if voice/video call option is needed in Menu*/
+
+       int totalProgressTime;          /* total progress time for all slide*/
+       int elapsedProgressTime;                /*progress time from 1st slide to current slide*/
+
+       Elm_Genlist_Item_Class itc_title_single;        /* title button single recipient item */
+       Elm_Genlist_Item_Class itc_title;       /* title button multi recipient item */
+       Elm_Genlist_Item_Class hp_sa_class;     /* help page attach list save all item */
+       Elm_Genlist_Item_Class hp_class;        /* help page attach list item */
+       Elm_Genlist_Item_Class attach_sa_class; /*attachments select all item */
+       Elm_Genlist_Item_Class attach_item_class;       /*attachments each item */
+       Elm_Genlist_Item_Class itc_title_click;
+       Elm_Theme *title_th;    /* title theme */
+       Elm_Theme *progress_th;         /* progressbar theme*/
+
+       /* for use volume key setting */
+       Ecore_Event_Handler *volkey_release_handler;
+       Ecore_Event_Handler *volkey_press_handler;
+       Ecore_Event_Handler *focus_in;
+       Ecore_Event_Handler *focus_out;
+
+       Ecore_Timer *vol_up_key_longpress;
+       Ecore_Timer *vol_down_key_longpress;
+       Ecore_Idler *list_popup_idler;
+
+       app_control_h callee_svc_handle;
+
+       char *working_dir;
+} VIEWER_PLAY_DATA_S;
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *=================================================================================================*/
+
+/* main */
+MSG_BOOL msg_ui_viewer_create_player_view(void *data);
+MSG_BOOL msg_ui_viewer_show_player_view(void *data);
+void msg_ui_viewer_play_view_init(void *data);
+void msg_ui_viewer_destroy_play_view(void *data);
+void msg_ui_viewer_connect_handler(void *data);
+void msg_ui_viewer_disconnect_handler(void *data, bool ungrab_key);
+void msg_ui_viewer_apply_font_size(void *data);
+Evas_Object *msg_ui_viewer_create_navigation_layout(Evas_Object *parent);
+void msg_ui_viewer_play_view_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_play_view_popup_back_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_show_popup(void *data, Evas_Object *parent, char *pcontent);
+void msg_ui_viewer_popup_destroy(void *data);
+MSG_BOOL msg_ui_viewer_command_play_pause(void *data, MSG_VIEWER_ACTION_TYPE_E action_type);
+MSG_SMIL_ERROR_E msg_ui_viewer_smil_cb(SMIL_SLIDE_CLIENT_CB_PARAM_S *eventStatus, void *appUserData);
+Eina_Bool msg_ui_viewer_focused_in_cb(void *data, int type, void *event);
+Eina_Bool msg_ui_viewer_focused_out_cb(void *data, int type, void *event);
+MSG_SMIL_ERROR_E msg_ui_viewer_set_entry_handle_cb(void *data, void *entry);
+Eina_Bool msg_ui_viewer_mouse_down_cb(void *data, int type, void *event);
+Eina_Bool msg_ui_viewer_mouse_up_cb(void *data, int type, void *event);
+void msg_ui_viewer_play_layout_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_play_layout_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+Eina_Bool msg_ui_viewer_back_button_cb(void *data, Elm_Object_Item *it);
+void msg_ui_viewer_set_font_size(void *data, MSG_VIEWER_ENTRY_TYPE_E entry_type, MSG_VIEWER_FONT_CHANGE_TYPE_E change_type);
+void msg_ui_viewer_popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info);
+
+/* options */
+void msg_ui_viewer_option_create_more_popup(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_option_create_delete_popup(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_option_forward_menu_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_option_resend_menu_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_option_create_msg_detail_popup(void *data);
+void msg_ui_viewer_option_email_menu(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_option_view_contact_menu(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_option_add_to_contact_menu(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_option_create_add_to_contact_popup(void *data, const char *address);
+void msg_ui_viewer_option_block_address_menu(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_option_unblock_address_menu(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_option_copy_message_text_to_clipboard(void *data);
+void msg_ui_viewer_launch_recipient_list_view(void *data);
+void msg_ui_viewer_list_popup_size_min_set(void *data);
+Eina_Bool msg_ui_viewer_list_popup_size_min_set_idler(void * data);
+void msg_ui_viewer_summary_view_rename_popup_destroy(void *data);
+void msg_ui_viewer_save_attachment_popup_destroy(void *data);
+
+/* Play controller */
+void msg_ui_viewer_play_controller_create(void *data);
+void msg_ui_viewer_play_controller_update(void *data, MSG_VIEWER_PLAY_STATUS_E status);
+void msg_ui_viewer_play_controller_prev_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source);
+void msg_ui_viewer_play_controller_play_pause_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source);
+void msg_ui_viewer_play_controller_next_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source);
+void msg_ui_viewer_play_controller_create_timer(void *data);
+Eina_Bool msg_ui_viewer_play_controller_timer_cb(void *data);
+void msg_ui_viewer_play_controller_destroy_timer(void *data);
+void msg_ui_viewer_play_controller_create_progressbar(void *data, int slideIdx);
+Eina_Bool  msg_ui_viewer_play_controller_progressbar_timer_cb(void *data);
+
+/* attachment & help page */
+MSG_SMIL_ERROR_E msg_ui_viewer_help_page_create_list(void *data, void **attach_list, void *box, char *working_dir);
+void msg_ui_viewer_help_page_save_all_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_help_page_save_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_create_save_attachments_popup(VIEWER_PLAY_DATA_S *vpd);
+void msg_ui_viewer_save_attachment_create_rename_popup(void *data);
+
+#endif /* __MSG_UI_VIEWER_PLAY_VIEW_H__*/
diff --git a/viewer/include/msg-ui-viewer-summary-view.h b/viewer/include/msg-ui-viewer-summary-view.h
new file mode 100755 (executable)
index 0000000..0c1f34f
--- /dev/null
@@ -0,0 +1,228 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_VIEWER_SUMMARY_VIEW_H__
+#define __MSG_UI_VIEWER_SUMMARY_VIEW_H__
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include <msg.h>
+#include <Ecore_X.h>
+#include <Ecore.h>
+#include <Elementary.h>
+#include <ui-gadget-module.h>
+
+#include "msg-ui-util.h"
+#include "msg-ui-viewer-types.h"
+#include "msg-ui-viewer-common.h"
+
+/*==================================================================================================
+ *                                                                             ENUMERATIONS
+ *==================================================================================================*/
+typedef enum {
+       REGION_ORDER_UNDEFINED = 0,
+       REGION_ORDER_TEXT_TOP,
+       REGION_ORDER_IMAGE_TOP,
+} PARSED_MMS_DATA_REGION_ORDER;
+/*==================================================================================================
+ *                                                                             STRUCTURES
+ *==================================================================================================*/
+typedef struct _MSG_VIEWER_PARSED_MMS_PAGE_S {
+       PARSED_MMS_DATA_REGION_ORDER region_order;
+       bool has_text;
+       bool has_video;
+       bool has_image;
+       bool has_audio;
+       int media_count;
+       Eina_List *insert_list;
+} PARSED_MMS_PAGE_DATA_S;
+
+typedef struct _MSG_VIEWER_PARSED_MMS_ATTACH_S {
+       bool has_refmedia;
+       Eina_List *attach_list;
+} PARSED_MMS_ATTACH_DATA_S;
+
+typedef struct _MSG_VIEWER_PARSED_MMS_S {
+       int page_count;
+       int attach_count;
+       PARSED_MMS_PAGE_DATA_S *page_data;
+       PARSED_MMS_ATTACH_DATA_S *attach_data;
+} PARSED_MMS_DATA_S;
+
+typedef struct _MSG_VIEWER_SUMMARY_DATA_S {
+       struct ug_cbs cbs;
+       void *viewer_main;
+       char *working_path;                                     /* temp media directory to mms summariez view */
+
+       char locale[DEF_BUF_LEN];                       /* local string */
+       msg_time_format time_fmt;                       /* msg time format */
+       char *date_ptn;                                         /* date pattern */
+       char *time12_ptn;                               /* date time pattern form 12hour */
+       char *time24_ptn;                               /* date time pattern form 24hour */
+
+       Evas_Object *main_window;
+       Evas_Object *navi_frame;
+       Evas_Object *effect_layout;
+       Evas_Object *effect_bg_layout;
+       Evas_Object *navi_title_layout;         /* navi title area layout */
+       Evas_Object *title_button;                      /* navi title contact button */
+       Evas_Object *save_all_btn;                      /* save all attachment button */
+       Evas_Object *save_attachment_gl;        /* save attachments genlist */
+       Evas_Object *content_layout;            /* main content layout */
+       Evas_Object *content_subject;           /* subject & time layout */
+       Evas_Object *content_scroller;          /* scroller for content */
+       Evas_Object *content_image;                     /* content Image / Video */
+       Evas_Object *content_audio;                     /* content Audio */
+       Evas_Object *content_entry;                     /* text entry handle */
+       Evas_Object *content_saveall_layout;/* Save all attachment area */
+       Evas_Object *content_box;                       /* it contans text entry */
+       Evas_Object *content_bg_rect;           /* set bg color */
+       Evas_Object *content_top_padding;       /* padding rect area for top of content box */
+       Evas_Object *content_mid_padding_1;     /* padding rect area between medias */
+       Evas_Object *content_mid_padding_2;     /* padding rect area between medias */
+       Evas_Object *content_bottom_padding;/* padding rect area for bottom of content box */
+       Elm_Object_Item *navi_item;                     /* naviframe item */
+       Evas_Object *popup;                                     /* simple popup */
+       Evas_Object *rename_popup_entry;        /* rename popup entry */
+       Evas_Object *recipient_list;            /* recipient list */
+       Evas_Object *focus_object;                      /* current focus object in layout */
+
+       MSG_VIEWER_POPUP_TYPE_E popup_type;
+       int popup_item_count;
+
+       msg_handle_t msgHandle; /*ipc handler between viewer and MF*/
+       msg_struct_t msg_t;
+       msg_struct_t mms_t;
+
+       MSG_VIEWER_RESET_ORDER view_order;
+       bool is_reset;
+       bool is_rotated;
+       bool drm_ro_check;
+       bool from_contact;              /* cut infinite nesting bubble-viewer layout by destroying ug when before entering contact ug again */
+       bool keep_keygrab;
+       bool call_option_enabled;/*To check if voice/video call option is needed in Menu*/
+
+       PARSED_MMS_DATA_S *mms_parsed_data;             /*inserted content list */
+
+       MSG_VIEWER_SAVING_STATUS_E saving_status;
+
+       int     msgID;
+       int msg_type;
+       int font_size;
+       int attach_count;               /* save available media count (page + attach), no page text media */
+       MSG_VIEWER_MODE_E mode;
+       double zoom_value;                      /* set current zoom value */
+       double zoom_delta;              /* default is 0, zoom diff value between current zoom value and previous zoom value */
+       int zoom_event_count;                   /* zooming event count filter */
+
+       MSG_VIEWER_INTERNAL_CALLER_TYPE internal_mode;  /* Viewer msgbox type */
+
+       Elm_Genlist_Item_Class itc_title_single;        /* title button single recipient item */
+       Elm_Genlist_Item_Class itc_title;       /* title button multi recipient item */
+       Elm_Genlist_Item_Class attach_sa_class; /*attachments select all item */
+
+       Elm_Theme *title_th;    /* title theme */
+       Elm_Theme *button_th;   /* see more button theme */
+
+       int ctrl_start_x;
+       int ctrl_start_y;
+       int ctrl_end_x;
+       int ctrl_end_y;
+       int window_width;
+       int window_height;
+
+       /* for use volume key setting */
+       Ecore_Event_Handler *volkey_release_handler;
+       Ecore_Event_Handler *volkey_press_handler;
+       Ecore_Event_Handler *focus_in;
+       Ecore_Event_Handler *focus_out;
+
+       Ecore_Timer *vol_up_key_longpress;
+       Ecore_Timer *vol_down_key_longpress;
+       Ecore_Idler *list_popup_idler;
+       Ecore_Idler *load_idler;
+
+       /*maintaining viewer summary ug destroy status to ignore more key event if ug destroy has been initiated*/
+       bool ug_destroy_initiated;
+
+       Evas_Object *save_button;                       /* save attachment's popup button */
+       int media_chk_cnt;                                      /* total selected save attachment count */
+
+} VIEWER_SUMMARY_DATA_S;
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *=================================================================================================*/
+/* Main layout */
+void msg_ui_viewer_summary_view_init(void *data);
+MSG_BOOL msg_ui_viewer_create_summary_view(void *data);
+void msg_ui_viewer_destroy_summary_view(void *data);
+void msg_ui_viewer_summary_view_connect_handler(void *data);
+void msg_ui_viewer_summary_view_disconnect_handler(void *data, bool ungrab_key);
+void msg_ui_viewer_summary_view_apply_font_size(void *data);
+void msg_ui_viewer_summary_view_set_font_size(void *data, MSG_VIEWER_FONT_CHANGE_TYPE_E change_type);
+MSG_BOOL msg_ui_viewer_summary_view_resize_image_region(void *data);
+void msg_ui_viewer_summary_view_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_summary_view_popup_back_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_summary_view_popup_destroy(void *data);
+void msg_ui_viewer_summary_view_show_popup(void *data, \
+                                                                                                       char *domain, \
+                                                                                                       char *pcontent, \
+                                                                                                       MSG_VIEWER_POPUP_TYPE_E popup_type, \
+                                                                                                       MSG_VIEWER_POPUP_BTN_TYPE_E btn_type, \
+                                                                                                       pf_popup_cancel_btn_cb bt1_cb, \
+                                                                                                       pf_popup_ok_btn_cb bt2_cb);
+
+/* for message content */
+void msg_ui_summary_viewer_get_locale_n_datetime_ptn(void *data);
+void msg_ui_summary_viewer_get_time_format(void *data);
+int msg_ui_summary_viewer_get_convmsg_id_by_order(void *data, MSG_VIEWER_RESET_ORDER msg_order);
+void msg_ui_viewer_summary_view_fill_text_content(void *data);
+void msg_ui_viewer_summary_view_fill_mms_context(void *data);
+void msg_ui_viewer_summary_view_cleanup_parsed_mms_message(void *data);
+
+/* More options */
+void msg_ui_viewer_summary_view_option_create_more_popup(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_summary_view_option_create_delete_popup(void *data);
+void msg_ui_viewer_summary_view_option_create_msg_detail_popup(void *data);
+void msg_ui_viewer_summary_view_option_forward_not_available_popup(void *data);
+void msg_ui_viewer_summary_view_option_create_restore_popup(void *data);
+void msg_ui_viewer_summary_view_option_call_menu(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_summary_view_option_add_to_contact_menu(void *data);
+void msg_ui_viewer_summary_view_option_view_contact_menu(void *data);
+void msg_ui_viewer_summary_view_option_create_add_to_contact_popup(void *data, const char *address);
+void msg_ui_viewer_summary_view_create_save_attachments_popup(void *data);
+
+void msg_ui_viewer_summary_view_list_popup_size_min_set(void *data);
+Eina_Bool msg_ui_viewer_summary_view_list_popup_size_min_set_idler(void *data);
+
+/* Title menu */
+void msg_ui_viewer_summary_view_title_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_summary_view_launch_recipient_list_view(void *data);
+
+/* attachment */
+void msg_ui_viewer_summary_view_save_all_attachment_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_summary_view_save_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_summary_view_create_rename_popup(void *data);
+
+/* read report */
+MSG_VIEWER_READ_REPORT_STATUS msg_ui_viewer_summary_view_check_mms_read_report(void *data);
+void msg_ui_viewer_summary_view_send_read_report_popup_cancel_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_summary_view_send_read_report_popup_ok_cb(void *data, Evas_Object *obj, void *event_info);
+
+#endif /* __MSG_UI_VIEWER_SUMMARY_VIEW_H__ */
diff --git a/viewer/include/msg-ui-viewer-types.h b/viewer/include/msg-ui-viewer-types.h
new file mode 100755 (executable)
index 0000000..71e584c
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_UI_VIEWER_TYPE_H__
+#define __MSG_UI_VIEWER_TYPE_H__
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include <msg.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+/*==================================================================================================
+ *                                                                             DEFINITIONS
+ *==================================================================================================*/
+#ifndef TRUE
+#define TRUE   1
+#endif
+#ifndef FALSE
+#define FALSE  0
+#endif
+
+#ifndef MSG_BOOL
+#define MSG_BOOL char
+#endif
+
+#define MSG_VIEWER_CONTENT_PATH        "/opt/usr/media"
+#define MSG_VIEWER_DOWNLOAD_PATH       MSG_VIEWER_CONTENT_PATH"/Downloads"
+#define MSG_VIEWER_FILENAME_MAX_LEN    255
+#define MSG_VIEWER_FILEPATH_MAX_LEN    1024
+#define MSG_VIEWER_FILE_EXT_MAX_LEN    8
+#define MSG_VIEWER_FILEPATH_DUPLICATE_MAX_COUNT        255
+
+#endif /*__MSG_UI_VIEWER_TYPE_H__*/
+
diff --git a/viewer/include/msg-ui-viewer-utility.h b/viewer/include/msg-ui-viewer-utility.h
new file mode 100755 (executable)
index 0000000..777360c
--- /dev/null
@@ -0,0 +1,164 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_VIEWER_UTILITY_H__
+#define __MSG_VIEWER_UTILITY_H__
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-ui-viewer-types.h"
+#include <msg_storage.h>
+
+/*==================================================================================================
+ *                                                                             DEFINITIONS
+ *==================================================================================================*/
+#define MSG_VIEWER_COLOR_HEXA_BUFFER_LEN       2
+#define MSG_VIEWER_HEXA_SIZE   16
+#define MSG_VIEWER_RGB_COLOR_BUF       7
+#define MSG_VIEWER_DEFAULT_FILE_NUMBER 1
+#define MSG_VIEWER_INVALID_FILE_NUMBER -1
+
+#define MSG_VIEWER_THEME       EDJDIR"/msg_viewer.edj"
+/*==================================================================================================
+ *                                                                             STRUCTURES
+ *==================================================================================================*/
+typedef unsigned int MSG_VIEWER_COLORREF;
+
+typedef struct _MSG_VIEWER_RGBQUAD {
+       unsigned char    rgbBlue;
+       unsigned char    rgbGreen;
+       unsigned char    rgbRed;
+       unsigned char    rgbReserved;
+} MSG_VIEWER_RGBQUAD;
+
+typedef union {
+       MSG_VIEWER_RGBQUAD rgbQuad;
+       MSG_VIEWER_COLORREF rgbColor;
+} MSG_VIEWER_RGB_UNION;
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+/*
+ *@fn  msg_viewer_util_get_thread_address_count(msg_handle_t msgHandle, msg_struct_t msg_t);
+ *@brief       this function is used to get address count for each thread id
+ *@param[in] msgHandle msg handle
+ *@param[in] msg_t msg struct
+ *@return      return count of addresses of thread id
+ */
+int msg_viewer_util_get_thread_address_count(msg_handle_t msgHandle, msg_struct_t msg_t);
+
+/*
+*@fn   msg_viewer_util_get_thread_nth_address(msg_handle_t msgHandle, msg_struct_t msg_t, int number, char **address);
+*@brief    this function is used to get address count for each thread id
+*@param[in] msgHandle msg handle
+*@param[in] msg_t msg struct
+*@param[in] number index
+*@param[out] address msg address
+*/
+void msg_viewer_util_get_thread_nth_address(msg_handle_t msgHandle, msg_struct_t msg_t, int number, char **address);
+
+/*
+ *@fn  msg_viewer_util_get_display_name_by_index(int index);
+ *@brief       this function is used to get display name from contact index
+ *@param[in] index contact_index
+ *@param[out] dest output display name
+ *@param[in] dest_size length of display name
+ *@return      return true if getting display name is success, or false
+ */
+bool msg_viewer_util_get_display_name_by_index(int index, char *dest, int dest_size);
+
+ /*
+ *@fn  msg_viewer_util_get_index_by_recipient(const char *address);
+ *@brief       this function is used to get display name from contact index
+ *@param[in] address address
+ *@return      return person id of given address
+ */
+int msg_viewer_util_get_index_by_recipient(const char *address);
+/*
+ *@fn  msg_viewer_util_get_file_ext(const char *filepath, char *file_ext, int ext_len);
+ *@brief       this function is used to get extension of file
+ *@param[in] address string pointer of filepath and file_ext
+ *@return      return TRUE on success, else FALSE
+ */
+MSG_BOOL msg_viewer_util_get_file_ext(const char *filepath, char *file_ext, int ext_len);
+
+/*
+ *@fn  msg_viewer_util_get_next_number(char *file_name_without_ext);
+ *@brief       this function is used to get the next number to rename the file
+ *@param[in] address string pointer of file_name_without_ext
+ *@return      return the number(int)
+ */
+int msg_viewer_util_get_next_number(char *file_name_without_ext);
+
+/*
+ *@fn  msg_viewer_util_get_color_as_string(char *szcolor, int szcolor_len, int r, int g, int b);
+ *@brief       this function is used to get rgb string from int to string like "ffffff". Buffer(szcolor) length should be longer than 7.
+ *@param[in]   r       Red color value
+ *@param[in]   g       Green color value
+ *@param[in]   b       Blue color value
+ *@param[in]   szcolor_len     buffer length of szcolor.
+ *@param[out]  szcolor RGB value will be get as string type.
+ */
+void msg_viewer_util_get_color_as_string(char *szcolor, int szcolor_len, int r, int g, int b);
+
+/*
+ *@fn  msg_viewer_util_get_default_path(char *dir_path, int dir_path_len);
+ *@brief       this function is used to get default file path
+ *@param[in]   dir_path_len    length of dir_path buffer
+ *@param[out]  dir_path        destination file_path of content to be saved
+ */
+MSG_BOOL msg_viewer_util_get_default_path(char *dir_path, int dir_path_len);
+
+/*
+ *@fn          msg_ui_viewer_get_buffer_from_file(const char *filepath, const char *opt, unsigned int *buffer_size)
+ *@brief               this function is used to get raw data of filepath
+ *@param[in] filepath src file path
+ *@param[in] opt open mode
+ *@param[out] buffer_size buffer size
+  *@return     return allocated raw file data, else NULL
+ *@Caution     Caller should free return raw file data after using it.
+ */
+unsigned char *msg_ui_viewer_get_buffer_from_file(const char *filepath, const char *opt, unsigned int *buffer_size);
+
+/*
+ *@fn          msg_ui_viewer_util_copy_file(const char *src_path, char *dst_path)
+ *@brief               Copy file from src to dest, if there is file at dest path, then save it with renamed one
+ *@param[in] src_path src file path
+ *@param[in] dst_path dest file path to be saved
+ *@param[in] unique whether if dst_path should be unique or not
+ *@param[in] hidden whether if dst_path is visible or not
+  *@return     return allocated copied file path, else NULL
+ *@Caution     Caller should free return copied file path after using data.
+ */
+char *msg_ui_viewer_util_copy_file(const char *src_path, char *dst_path, bool unique, bool hidden);
+
+/*
+ *@fn          msg_ui_viewer_util_create_working_dir(void)
+ *@brief               create temp directroy to save a temp file for viewer
+  *@return     return created temp path, else NULL
+ *@Caution     Caller should free returned temp path after using it.
+ */
+char *msg_ui_viewer_util_create_working_dir(void);
+
+/*
+ *@fn          msg_ui_viewer_check_address_is_blocked(void *data, char *address, int *filter_id)
+ *@brief       checking address block status with specific condition
+ */
+MSG_BOOL msg_ui_viewer_check_address_is_blocked(msg_handle_t msg_handle, char *address, int *filter_id);
+#endif
diff --git a/viewer/smil-player/include/msg-smil-content-manager.h b/viewer/smil-player/include/msg-smil-content-manager.h
new file mode 100755 (executable)
index 0000000..a45e05d
--- /dev/null
@@ -0,0 +1,245 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_CONTENT_MANAGER_SMIL_PLAYER_H__
+#define __MSG_CONTENT_MANAGER_SMIL_PLAYER_H__
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-smil-types.h"
+
+/*==================================================================================================
+ *                                                                             DEFINITIONS
+ *==================================================================================================*/
+#define MSG_MMS_SLIDE_INVALID  -1
+
+/*==================================================================================================
+ *                                                                             STRUCTURES
+ *==================================================================================================*/
+typedef struct _SMIL_CONTENT_MGR_HANDLE_S {
+       int     curSlideIdx;
+       msg_struct_t    msg_info_t;             /*MSG MMS data struct handle */
+       SMIL_SLIDE_INFO_S       *smilContent;   /*slide info of the message*/
+} SMIL_CONTENT_MGR_HANDLE_S;   /*Content Manager Handler.*/
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+/**
+*@fn                   _msg_smil_create_content_mgr(msg_struct_t msg_info_t, SMIL_CONTENT_MGR_HANDLE_S **smilContMgrHndle);
+*@brief                        This API shall facilitate the the SMIL Player interface initialize the Content Manager Handler.
+*@return                       MSG_SMIL_SUCCESS on success , else failure return code
+*@param[in]            smilMsg    This is the message that the SMILPlayerInterface sends for page information extraction.
+*@param[out]   *smilContMgrHndle    The Content Manager Handler.
+*/
+MSG_SMIL_ERROR_E _msg_smil_create_content_mgr(msg_struct_t msg_info_t, SMIL_CONTENT_MGR_HANDLE_S **smilContMgrHndle);
+
+/**
+*@fn                   _msg_smil_destroy_content_mgr(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+*@brief                        This method will allow destroying the Content Manager handler and the complete slide queue for the MMS.
+*@param[in]            smilContMgrHndle           This is the handler to the SMILMessage Content Manager.
+*@param[out]   None.
+*/
+void _msg_smil_destroy_content_mgr(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+
+/**
+*@fn                   _msg_smil_cont_mgr_set_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, SMIL_PLAYER_STATUS_E event);
+*@brief                        This function will allow updating the slideIdx's slide status to the Content Manager.
+*@return                       TRUE on success , else return FALSE
+*@param[in]            smilContMgrHndle           This is the handler to the SMILMessage Content Manager.
+*@param[in]            curSlideIdx        This is current slide index to be updated.
+*@param[in]            event              This is the event to which the status of the Handlerand the Slide in the Queue has to be updated
+*@param[out]   None.
+*/
+MSG_BOOL _msg_smil_cont_mgr_set_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx, SMIL_PLAYER_STATUS_E event);
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx);
+*@brief                        This function will allow getting the slideIdx's slide status to the Content Manager.
+*@return                       current slide's status.
+*@param[in]            smilContMgrHndle           This is the handler to the SMILMessage Content Manager.
+*@param[in]            slideIdx           This is slide index to get
+*@param[out]   None.
+*/
+SMIL_PLAYER_STATUS_E _msg_smil_cont_mgr_get_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx);
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_cur_slide_idx(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+*@brief                        This function returns the Current Slide index.
+*@return                       The Current Slide index on success , else failure return code
+*@param[in]            smilContMgrHndle           This is the handler to the SMILMessage Content Manager.
+*@param[out]   None.
+*/
+int _msg_smil_cont_mgr_get_cur_slide_idx(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+
+/**
+*@fn                   _msg_smil_cont_mgr_set_cur_slide_idx(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx);
+*@brief                        This function set Current Slide index.
+*@return                       TRUE on success , else return FALSE
+*@param[in]            smilContMgrHndle           This is the handler to the SMILMessage Content Manager.
+*@param[in]            slideIdx        This will be set as current slide index.
+*/
+MSG_BOOL _msg_smil_cont_mgr_set_cur_slide_idx(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx);
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_cur_slide(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+*@brief                        This function returns the Current Slide Detailed Information.
+*@return                       Slide's detailed information on Success , else failure return code
+*@param[in]            smilContMgrHndle           This is the handler to the SMILMessage Content Manager.
+*@param[out]   None.
+*/
+SMIL_SLIDE_INFO_S *_msg_smil_cont_mgr_get_cur_slide(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_slide(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int  slideIdx);
+*@brief                        This function returns the requested Slide Detailed Information.
+*@return                       The requested Slide Detailed Information on success , else failure return code
+*@param[in]            smilContMgrHndle           This is the handler to the SMILMessage Content Manager.
+*@param[in]            slideIdx           This is the handler to the SMILMessage sent back to UI while creating SMIL Player.
+*@param[out]   commonData   This is the data common to all the slides.
+*/
+SMIL_SLIDE_INFO_S *_msg_smil_cont_mgr_get_slide(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx);
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_cur_slide_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+*@brief                        This function returns the Current Slide Status.
+*@return                       current slide's status.
+*@param[in]            smilContMgrHndle           This is the handler to the SMILMessage Content Manager.
+*@param[out]   None.
+*/
+SMIL_PLAYER_STATUS_E _msg_smil_cont_mgr_get_cur_slide_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+
+int _msg_smil_cont_mgr_get_total_slide_count(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+
+/**
+*@fn                   _msg_smil_cont_mgr_set_cur_slide_help_page(SMIL_SLIDE_INFO_S *singleSlideInfo, MSG_BOOL bSet);
+*@brief                        This function set current page for help page
+*@param[in]            singleSlideInfo         Slide information about currne page
+*@param[in]            bSet    The value of setting help page
+*@param[out]   None.
+*/
+void _msg_smil_cont_mgr_set_cur_slide_help_page(SMIL_SLIDE_INFO_S *singleSlideInfo, MSG_BOOL bSet);
+
+/**
+*@fn                   _msg_smil_cont_mgr_is_cur_slide_help_page(SMIL_SLIDE_INFO_S *singleSlideInfo);
+*@brief                        This function returns the result of current page is help page or not
+*@return                       whether current slide is help page or not
+*@param[in]            singleSlideInfo         Slide information about currne page
+*@param[out]   None.
+*/
+MSG_BOOL _msg_smil_cont_mgr_is_cur_slide_help_page(SMIL_SLIDE_INFO_S *singleSlideInfo);
+
+/**
+*@fn                   _msg_smil_cont_mgr_delete_help_page(msg_message_t msg_message, SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+*@brief                        This function delete help page for preview mode viewer and return the result
+*@return                       the result of deleting help page
+*@param[in]            smilContMgrHndle        This is the handler to the SMILMessage Content Manager
+*@param[out]   None.
+*/
+MSG_BOOL _msg_smil_cont_mgr_delete_help_page(msg_struct_t  msg_info_t, SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_page_list_handle(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+*@brief                        This function returns msg_list_handle_t for current msg
+*@return                       msg_list_handle_t handler of page list
+*@param[in]            smilContMgrHndle           This is the handler to the SMILMessage Content Manager.
+*@param[out]   None.
+*/
+msg_list_handle_t _msg_smil_cont_mgr_get_page_list_handle(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_nth_page_struct_handle(msg_list_handle_t pagelist_info_t, int pageIdx);
+*@brief                        This function returns page struct handle with given page index
+*@return                       msg_struct_t handler of page
+*@param[in]            pagelist_info_t    page list handle
+*@param[in]            pageIdx    page index
+*@param[out]   None.
+*/
+msg_struct_t _msg_smil_cont_mgr_get_nth_page_struct_handle(msg_list_handle_t pagelist_info_t, int pageIdx);
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_page_time_value(msg_struct_t pageInfo_t, int field);
+*@brief                        This function returns page duration time for singleSlideInfo
+*@return                       duration time
+*@param[in]            pageInfo_t         page structure handle.
+*@param[in]            field      page field value.
+*@param[out]   None.
+*/
+int _msg_smil_cont_mgr_get_page_time_value(msg_struct_t pageInfo_t, int field);
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_page_media_list_handle(msg_struct_t pageInfo_t);
+*@brief                        This function returns msg_list_handle_t for media of current page
+*@return                       msg_list_handle_t handler of page list
+*@param[in]            pageInfo_t         page struct handler
+*@param[out]   None.
+*/
+msg_list_handle_t _msg_smil_cont_mgr_get_page_media_list_handle(msg_struct_t pageInfo_t);
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_page_nth_media_struct_handle(msg_list_handle_t medialist_info_t, int mediaIdx);
+*@brief                        This function returns media struct handle with given page index
+*@return                       msg_struct_t handler of page
+*@param[in]            medialist_info_t           media list handle
+*@param[in]            mediaIdx           media index
+*@param[out]   None.
+*/
+msg_struct_t _msg_smil_cont_mgr_get_page_nth_media_struct_handle(msg_list_handle_t medialist_info_t, int mediaIdx);
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_media_str_value(msg_struct_t media_info_t, int strfield, char *rtnStr);
+*@brief                        This function get STR value with given field for media
+*@return                       void
+*@param[in]            media_info_t       media list handle
+*@param[in]            strfield           field value
+*@param[out]           rtnStr     return value
+*/
+void _msg_smil_cont_mgr_get_media_str_value(msg_struct_t media_info_t, int strfield, char *rtnStr);
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_media_int_value(msg_struct_t media_info_t, int intfield, int* rtnVal);
+*@brief                        This function get INT value with given field for media
+*@return                       void
+*@param[in]            media_info_t       media list handle
+*@param[in]            intfield           field value
+*@param[out]           rtnVal     return value
+*/
+void _msg_smil_cont_mgr_get_media_int_value(msg_struct_t media_info_t, int intfield, int* rtnVal);
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_mms_body_struct_handle(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+*@brief                        This function returns msg mms data struct handle
+*@return                       mms data struct of current msg.
+*@param[in]            smilContMgrHndle           This is the handler to the SMILMessage Content Manager.
+*@param[out]   None.
+*/
+msg_struct_t   _msg_smil_cont_mgr_get_mms_body_struct_handle(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
+
+/**
+*@fn                   _msg_smil_cont_mgr_get_slide_time(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx, double *time);
+*@brief                        This API returns total slide duration after given slide index
+*@return                       TRUE on success , else FALSE return
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[in]            slideIdx        start slide index to get remain time
+*@param[in]            bExcludeHp      whether help page will be excluded from total slide time or not
+*@param[out]           time calculated remain time
+*@param[out]   None.
+*/
+MSG_BOOL _msg_smil_cont_mgr_get_slide_time(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx, MSG_BOOL bExcludeHp, double *time);
+#endif /*__MSG_CONTENT_MANAGER_SMIL_PLAYER_H__*/
+
diff --git a/viewer/smil-player/include/msg-smil-event-manager.h b/viewer/smil-player/include/msg-smil-event-manager.h
new file mode 100755 (executable)
index 0000000..04b6e48
--- /dev/null
@@ -0,0 +1,190 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_EVENT_MANAGER_SMIL_PLAYER_H__
+#define __MSG_EVENT_MANAGER_SMIL_PLAYER_H__
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-smil-types.h"
+#include <Ecore.h>
+
+/*==================================================================================================
+ *                                                                             DEFINITIONS
+ *==================================================================================================*/
+#define MSG_MMS_SMIL_MAX_TIMER_IDX     (MSG_MMS_SMIL_MEDIA_TYPES * 2) /* + 2  6 for the media (max 3 types of Media Begin/End)  and 2 for the Page Begin/End. */
+#define MSG_MMS_SMIL_PAGE_MEDIA_IDX_ACTION 3
+#define MSG_MMS_SMIL_TIMER_CONVERT             1000
+#define MSG_MMS_SMIL_HELP_PAGE_DURATION        5000
+/*==================================================================================================
+ *                                                                             STRUCTURES
+ *==================================================================================================*/
+typedef struct _SMIL_TIMER_DATA_S {
+       int     mediaTimerDur[MSG_MMS_SMIL_MAX_TIMER_IDX][MSG_MMS_SMIL_PAGE_MEDIA_IDX_ACTION];
+       SMIL_PLAYER_PAGE_EVENT_E        actionTypeOnPage;
+} SMIL_TIMER_DATA_S;
+
+typedef struct _SMIL_TIMER_CALLBACK_DATA_S {
+       int     elementIdx;     /*mediaIdx;     This will carry the index to the elemnt (media/Page) whose timer is registered. -1 for Page, other values for Media.*/
+       SMIL_TIMER_DATA_S       slideTimerInfo;
+       void    *appUserData;
+       pfnSMILPlayerCb appSmilCb;
+       Ecore_Timer     *timerHandle;
+       SMIL_SLIDE_EVENT_PARAM_S        *curSlideParam;
+} SMIL_TIMER_CALLBACK_DATA_S;
+
+typedef struct _SMIL_EVENT_MGR_HANDLE_S {
+       SMIL_TIMER_CALLBACK_DATA_S      *slideTimerCbData;
+       void *smilhandle;
+} SMIL_EVENT_MGR_HANDLE_S;
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+/**
+*@fn                   _msg_smil_create_event_mgr(void *cb, void *data , SMIL_EVENT_MGR_HANDLE_S **smilEvntMgrHndle);
+*@brief                        This function Initializes the Event Manager Handler.
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            cb              This is the call back to the Client.
+*@param[in]            data            This is the Client Instance Related data.
+*@param[in]            smilEvntMgrHndle                This is the handler to the SMIL Event Manager.
+*/
+MSG_SMIL_ERROR_E _msg_smil_create_event_mgr(void *cb, void *data, SMIL_EVENT_MGR_HANDLE_S **smilEvntMgrHndle);
+
+/**
+*@fn                   _msg_smil_destroy_event_mgr(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+*@brief                        This function destroys the handler and all the Event Manager related data.
+*@param[in]            smilEvntMgrHndle           This is the handler to the SMILEvent Manager.
+*@param[out]   None.
+*/
+void _msg_smil_destroy_event_mgr(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+
+/**
+*@fn                   _msg_smil_event_mgr_ready(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+*@brief                        This function fetches the slide info from the Content Manager and wait for START event of UI signals
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            smilEvntMgrHndle           This is the handler to the SMILEvent Manager.
+*@param[out]   None.
+*/
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_ready(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+
+/**
+*@fn                   _msg_smil_event_mgr_start(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+*@brief                        This function start the timer event of event manager for response of UI callback at the first launching SMIL
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            smilEvntMgrHndle           This is the handler to the SMILEvent Manager.
+*@param[out]   None.
+*/
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_start(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+
+/**
+*@fn                   _msg_smil_event_mgr_play_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, int curSlideIdx);
+*@brief                        This function fetches the slide info from the  Content Manager,sends to the Call Back from the Client
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            smilEvntMgrHndle           This is the handler to the SMILEvent Manager.
+*@param[in]            curSlideIdx              This represents the Slide Number to be Played.
+*@param[out]   None.
+*/
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_play_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, int curSlideIdx);
+
+/**
+*@fn                   _msg_smil_event_mgr_stop_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+*@brief                        This function stops the smil timer.
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            smilEvntMgrHndle           This is the handler to the SMILEvent Manager.
+*@param[out]   None.
+*/
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_stop_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+
+/**
+*@fn                   _msg_smil_event_mgr_pause_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle );
+*@brief                        This function kills the timer and calculates the remaining duration of the paused slide.
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            smilEvntMgrHndle           This is the handler to the SMILEvent Manager.
+*@param[out]   None.
+*/
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_pause_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+
+/**
+*@fn                   MSG_SMIL_ERROR_E _msg_smil_event_mgr_resume_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, int curSlideIdx );
+*@brief                        This function resumes the the paused slide and starts the timer with the remaining duration.
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            smilEvntMgrHndle                This is the handler to the SMILEvent Manager.
+*@param[in]            curSlideIdx             This is the Current Slide Index.
+*@param[out]   None.
+*/
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_resume_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, int curSlideIdx);
+
+/**
+*@fn                   _msg_smil_event_mgr_move_to_next_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+*@brief                        Facilitates the moving to next slide from the current if next slide is present.
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            smilEvntMgrHndle           This is the handler to the SMILEvent Manager.
+*@param[out]   None.
+*/
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_move_to_next_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+
+/**
+*@fn                   _msg_smil_event_mgr_slide_timer_cb(void* data);
+*@brief                        This function is the callback for the smil timer.
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            data       This is the data that is returned by the timer for use by the call back function.
+*@param[out]   None.
+*/
+Eina_Bool _msg_smil_event_mgr_slide_timer_cb(void *data);
+
+/**
+*@fn                   _msg_smil_event_mgr_is_slide_active(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+*@brief                        This function is check if event slide is set or not
+*@return                       TRUE on success, else return FALSE
+*@param[in]            smilEvntMgrHndle           This is the handler to the SMILEvent Manager.
+*/
+MSG_BOOL _msg_smil_event_mgr_is_slide_active(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+
+SMIL_TIMER_CALLBACK_DATA_S *_msg_smil_event_mgr_get_timer_cb_data(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+SMIL_SLIDE_EVENT_PARAM_S *_msg_smil_event_mgr_get_slide_event_param_data(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+
+SMIL_SLIDE_INFO_S *_msg_smil_event_mgr_get_current_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+MSG_BOOL _msg_smil_event_mgr_set_current_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_SLIDE_INFO_S *singleSlide);
+
+double _msg_smil_event_mgr_get_slide_time(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+MSG_BOOL _msg_smil_event_mgr_set_slide_time(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, double duration);
+
+MSG_BOOL _msg_smil_event_mgr_get_video_endofstream(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+MSG_BOOL _msg_smil_event_mgr_set_video_endofstream(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, MSG_BOOL iseos);
+
+SMIL_PLAYER_PAGE_EVENT_E _msg_smil_event_mgr_get_page_action_type(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+MSG_BOOL _msg_smil_event_mgr_set_page_action_type(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_PLAYER_PAGE_EVENT_E page_event);
+
+MSG_BOOL _msg_smil_event_mgr_get_is_video_media(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+MSG_BOOL _msg_smil_event_mgr_set_is_video_media(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, MSG_BOOL isvideo);
+
+MSG_BOOL _msg_smil_event_mgr_get_unsupported_content(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+MSG_BOOL _msg_smil_event_mgr_set_unsupported_content(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, MSG_BOOL isunsupported);
+
+MSG_BOOL _msg_smil_event_mgr_get_invalid_video_ro(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+MSG_BOOL _msg_smil_event_mgr_set_invalid_video_ro(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, MSG_BOOL isinvalid_ro);
+
+MSG_BOOL _msg_smil_event_mgr_get_last_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+MSG_BOOL _msg_smil_event_mgr_set_last_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, MSG_BOOL islast_slide);
+
+MSG_BOOL _msg_smil_event_mgr_get_last_slide_is_help_page(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+MSG_BOOL _msg_smil_event_mgr_set_last_slide_is_help_page(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, MSG_BOOL ishelp_page);
+
+MSG_BOOL _msg_smil_event_mgr_set_render_event(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_PLAYER_RENDER_EVENT_E render_event);
+SMIL_PLAYER_RENDER_EVENT_E _msg_smil_event_mgr_get_render_event(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle);
+#endif
diff --git a/viewer/smil-player/include/msg-smil-player-interface.h b/viewer/smil-player/include/msg-smil-player-interface.h
new file mode 100755 (executable)
index 0000000..f799d9b
--- /dev/null
@@ -0,0 +1,145 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_SMIL_PLAYER_INTERFACE_H__
+#define __MSG_SMIL_PLAYER_INTERFACE_H__
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-smil-types.h"
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+ /**
+*@fn                   msg_smil_create_smil_player(msg_struct_t message, void *callBack, void *userData ,void **instance);
+*@brief                        This wrapper API shall facilitate the client to intitialize the process of the SMIL Player Creation.
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            message This is the message details structure
+*@param[in]            callBack        This is the callBack function that the Application registers with the SMIL Player for communication from the Player's side.
+*@param[in]            userData        This is the application handler.
+*@param[out]   instance        This will have a void* to the instance created by the API.
+*/
+MSG_SMIL_ERROR_E msg_smil_create_smil_player(msg_struct_t message, void *callBack, void *userData , void **instance);
+
+/**
+*@fn                   msg_smil_destroy_smil_player(void *smilhandle);
+*@brief                        This wrapper API shall destroy smil player
+*@param[in]            smilhandle      Smil player handle.
+*/
+void msg_smil_destroy_smil_player(void *smilhandle);
+
+/**
+*@fn                   msg_smil_get_current_slide_idx(void *hSmilHandle);
+*@brief                        This wrapper API shall facilitate the client to fetch the current slide index.
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage sent back to UI while creating SMIL Player.
+*@param[out]   None.
+*/
+int msg_smil_get_current_slide_idx(void *hSmilHandle);
+
+/**
+*@fn                   msg_smil_get_current_slide_status(void *hSmilHandle);
+*@brief                        This wrapper API shall facilitate the client to get the current Slide Status.
+*@return                       SMIL_PLAYER_STATUS_E on success.
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[out]   None.
+*/
+SMIL_PLAYER_STATUS_E msg_smil_get_current_slide_status(void *hSmilHandle);
+
+/**
+*@fn                   msg_smil_on_slide_event_handler(void **hSmilHandle, SMIL_PLAYER_EVENT_E playerEvent);
+*@brief                        This wrapper API shall give the client one gate way for all types of actions performed on the Slide.
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[in]            playerEvent     This is the event that needs to be perfomed on the MMS message.
+*@param[out]   None.
+*/
+MSG_SMIL_ERROR_E msg_smil_on_slide_event_handler(void **hSmilHandle, SMIL_PLAYER_EVENT_E playerEvent);
+
+/**
+*@fn                   msg_smil_create_smil_player_layout(void *hSmilHandle, void *layout);
+*@brief                        This wrapper API shall create layout of SMILPlayer
+*@return                       TRUE on success , else FALSE return
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[in]            layout  This is layout window to be set to SMILPlayer.
+*@param[out]   None.
+*/
+MSG_BOOL msg_smil_create_smil_player_layout(void *hSmilHandle, void *layout);
+
+/**
+*@fn                   msg_smil_set_smil_player_layout_size(void *hSmilHandle, SMIL_POSITION_S *left_top, SMIL_POSITION_S *right_bottom);
+*@brief                        This wrapper API shall set layout size of SMILPlayer. It must be called after calling msg_smil_create_smil_player_layout.
+*@return                       TRUE on success , else FALSE return
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[in]            left_top        x,y point info. of let-top position.
+*@param[in]            right_bottom    x,y point info. of right-bottom position.
+*@param[out]   None.
+*/
+MSG_BOOL msg_smil_set_smil_player_layout_size(void *hSmilHandle, SMIL_POSITION_S *left_top, SMIL_POSITION_S *right_bottom);
+
+/*
+*@fn                   msg_smil_set_smil_player_help_page_cb(void *hSmilHandle, void *callBack, void *userData)
+*@brief                        This API shall change to render help page with player view
+*@return                       TRUE on success , else FALSE return
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[in]            callBack        This is the callBack function that the Application registers with the SMIL Player for help page.
+*@param[in]            userData        This is the application handler.
+*@param[out]   None.
+*/
+MSG_BOOL msg_smil_set_smil_player_help_page_cb(void *hSmilHandle, void *callBack, void *userData);
+
+/*
+*@fn                   msg_smil_set_smil_player_entry_handle_cb(void *hSmilHandle, void *callBack)
+*@brief                This API shall pass entry handle to player view
+*@return               TRUE on success , else FALSE return
+*@param[in]    hSmilHandle     This is the handler to the SMILMessage.
+*@param[in]    callBack        This is the callBack function that the Application registers with the SMIL Player.
+*@param[out]   None.
+*/
+MSG_BOOL msg_smil_set_smil_player_entry_handle_cb(void *hSmilHandle, void* callBack);
+
+/**
+*@fn                   msg_smil_get_current_slide_info(void *hSmilHandle);
+*@brief                        This API shall facilitate the client to get the current Slide info.
+*@return                       SMIL_SLIDE_INFO_S on success.
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[out]   None.
+*/
+SMIL_SLIDE_INFO_S *msg_smil_get_current_slide_info(void *hSmilHandle);
+
+/**
+*@fn                   msg_smil_get_slide_time(void *hSmilHandle, int slideIdx, double *slideTime);
+*@brief                        This API returns total slide duration after given slide index
+*@return                       TRUE on success , else FALSE return
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[in]            slideIdx        start slide index to get remain time
+*@param[in]            bExcludeHp      whether help page will be excluded from total slide time or not
+*@param[out]           slideTime calculated remain time
+*@param[out]   None.
+*/
+MSG_BOOL msg_smil_get_slide_time(void *hSmilHandle, int slideIdx, MSG_BOOL bExcludeHp, double *slideTime);
+
+/**
+*@fn                   msg_smil_request_player_start(void *hSmilHandle);
+*@brief                        This API request PLAYER handle in page to start play media that they have
+*@return                       TRUE on success , else FALSE return
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[out]   None.
+*/
+MSG_BOOL msg_smil_request_player_start(void * hSmilHandle);
+#endif
diff --git a/viewer/smil-player/include/msg-smil-player.h b/viewer/smil-player/include/msg-smil-player.h
new file mode 100755 (executable)
index 0000000..61c2d62
--- /dev/null
@@ -0,0 +1,187 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_SMIL_PLAYER_H__
+#define __MSG_SMIL_PLAYER_H__
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-smil-content-manager.h"
+#include "msg-smil-event-manager.h"
+#include "msg-smil-render.h"
+#include <glib.h>
+
+/*==================================================================================================
+ *                                                                             DEFINITIONS
+ *==================================================================================================*/
+#define MSG_MMS_SMIL_SLIDEIDX_INCREMENT  1
+#define MSG_MMS_SMIL_SLIDEIDX_DECREMENT  1
+
+/*==================================================================================================
+ *                                                                             STRUCTURES
+ *==================================================================================================*/
+typedef struct _SMIL_HANDLER_S {
+       SMIL_CONTENT_MGR_HANDLE_S       *smilContMgrHndle;      /* cont mgr handler*/
+       SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle;      /* evnt mgr handler*/
+       SMIL_RENDERER_DATA_S    *smilRenderer;  /* smil render */
+} SMIL_HANDLER_S;
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+/**
+*@fn                   _msg_smil_create_smil_player(msg_struct_t message, void *callBack, void *userData ,void **instance);
+*@brief                        This API shall facilitate the client to intitialize the process of the SMIL Player Creation.
+*@return                       MSG_SMIL_SUCCESS on success , else failure return code
+*@param[in]            message         This is the message details structure
+*@param[in]            callBack                This is the callBack function that the Application registers with the SMIL Player for communication from the Player's side.
+*@param[in]            userData                This is the application handler.
+*@param[out]    instance               This will have a void* to the instance created by the SMIL Player.
+*/
+MSG_SMIL_ERROR_E _msg_smil_create_smil_player(msg_struct_t message, void *callBack, void *userData, void **instance);
+
+/**
+*@fn                   _msg_smil_destroy_smil_player(void *smilhandle);
+*@brief                        This API destroy smil player
+*@param[out]    smilhandle             SMIL player handle.
+*/
+void _msg_smil_destroy_smil_player(void *smilhandle);
+
+/**
+*@fn                   _msg_smil_get_content_mgr(void *hSmilHandle);
+*@brief                        This API shall fetch content manager handle.
+*@return                       returns content manager handle on Success, else return NULL.
+*@param[in]            hSmilHandle        This is the handler to the SMILMessage..
+*/
+SMIL_CONTENT_MGR_HANDLE_S *_msg_smil_get_content_mgr(void *hSmilHandle);
+
+/**
+*@fn                   _msg_smil_get_event_mgr(void *hSmilHandle);
+*@brief                        This API shall fetch event manager handle.
+*@return                       returns event manager handle on Success, else return NULL.
+*@param[in]            hSmilHandle        This is the handler to the SMILMessage..
+*/
+SMIL_EVENT_MGR_HANDLE_S *_msg_smil_get_event_mgr(void *hSmilHandle);
+
+/**
+*@fn                   _msg_smil_get_renderder(void *hSmilHandle);
+*@brief                        This API shall fetch renderer handle.
+*@return                       returns renderer handle on Success, else return NULL.
+*@param[in]            hSmilHandle        This is the handler to the SMILMessage..
+*/
+SMIL_RENDERER_DATA_S *_msg_smil_get_renderder(void *hSmilHandle);
+
+/**
+*@fn                   _msg_smil_get_current_slide_idx(void *hSmilHandle);
+*@brief                        This API shall fetch the current slide index.
+*@return                       returns the current Slide index.
+*@param[in]            hSmilHandle        This is the handler to the SMILMessage..
+*/
+int _msg_smil_get_current_slide_idx(void *hSmilHandle);
+
+/**
+*@fn                   _msg_smil_get_current_slide_status(void *hSmilHandle);
+*@brief                        This API shall facilitate the client to get the current Slide Status.
+*@return                       SMIL_PLAYER_STATUS_E on success.
+*@param[in]            hSmilHandle        This is the handler to the SMILMessage.
+*@param[out]   None.
+*/
+SMIL_PLAYER_STATUS_E _msg_smil_get_current_slide_status(void *hSmilHandle);
+
+/**
+*@fn                   _msg_smil_player_on_slide_event_handler(void **hSmilHandle, SMIL_PLAYER_EVENT_E playerEvent);
+*@brief                        This API shall give the client one gate way for all types of actions performed on the Slide.
+*@return                       MSG_SMIL_SUCCESS on success, else failure return code
+*@param[in             SmilHandle      This is the handler to the SMILMessage.
+*@param[in]            playerEvent     This is the action that needs to be performed on the current slide.
+*@param[out]   None.
+*/
+MSG_SMIL_ERROR_E _msg_smil_player_on_slide_event_handler(void **hSmilHandle, SMIL_PLAYER_EVENT_E playerEvent);
+
+/**
+*@fn                   _msg_smil_create_smil_player_layout(void *hSmilHandle, void *layout);
+*@brief                        This API shall create layout of SMILPlayer.
+*@return                       TRUE on success , else FALSE return
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[in]            layout  This is layout window to be set to SMILPlayer
+*@param[out]   None.
+*/
+MSG_BOOL _msg_smil_create_smil_player_layout(void *hSmilHandle, void *layout);
+
+/**
+*@fn                   _msg_smil_set_smil_player_layout_size(void *hSmilHandle, SMIL_POSITION_S* left_top, SMIL_POSITION_S* right_bottom);
+*@brief                        This API shall set layout window to SMILPlayer.
+*@return                       TRUE on success , else FALSE return
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[in]            left_top        x,y point info. of let-top position.
+*@param[in]            right_bottom    x,y point info. of right-bottom position.
+*@param[out]   None.
+*/
+MSG_BOOL _msg_smil_set_smil_player_layout_size(void *hSmilHandle, SMIL_POSITION_S *left_top, SMIL_POSITION_S *right_bottom);
+
+/*
+*@fn                   _msg_smil_set_smil_player_help_page_cb(void *hSmilHandle, void *callBack, void *userData)
+*@brief                        This API let player viewer able to render help page with renderer handle
+*@return                       TRUE on success , else FALSE return
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[in]            callBack        This is the callBack function that the Application registers with the SMIL Player for help page.
+*@param[in]            userData        This is the application handler.
+*@param[out]   None.
+*/
+MSG_BOOL _msg_smil_set_smil_player_help_page_cb(void *hSmilHandle, void *callBack, void *userData);
+
+/*
+*@fn                   _msg_smil_set_smil_player_entry_handle_cb(void *hSmilHandle, void *callBack)
+*@brief                This API shall pass entry handle to player view
+*@return               TRUE on success , else FALSE return
+*@param[in]    hSmilHandle     This is the handler to the SMILMessage.
+*@param[in]    callBack        This is the callBack function that the Application registers with the SMIL Player.
+*@param[out]   None.
+*/
+MSG_BOOL _msg_smil_set_smil_player_entry_handle_cb(void *hSmilHandle, void *callBack);
+
+/**
+*@fn                   _msg_smil_get_current_slide_info(void *hSmilHandle);
+*@brief                        This API shall facilitate the client to get the current Slide info.
+*@return                       SMIL_SLIDE_INFO_S on success.
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[out]   None.
+*/
+SMIL_SLIDE_INFO_S *_msg_smil_get_current_slide_info(void *hSmilHandle);
+
+/**
+*@fn                   _msg_smil_get_slide_time(void *hSmilHandle, int slideIdx, double *slideTime);
+*@brief                        This API returns total slide duration after given slide index
+*@return                       TRUE on success , else FALSE return
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[in]            slideIdx        start slide index to get remain time
+*@param[in]            bExcludeHp      whether help page will be excluded from total slide time or not
+*@param[out]   slideTime       calculated remain time
+*@param[out]   None.
+*/
+MSG_BOOL _msg_smil_get_slide_time(void *hSmilHandle, int slideIdx, MSG_BOOL bExcludeHp, double *slideTime);
+
+/**
+*@fn                   _msg_smil_request_player_start(void *hSmilHandle);
+*@brief                        This API request PLAYER handle in page to start play media that they have
+*@return                       TRUE on success , else FALSE return
+*@param[in]            hSmilHandle     This is the handler to the SMILMessage.
+*@param[out]   None.
+*/
+MSG_BOOL _msg_smil_request_player_start(void *hSmilHandle);
+
+#endif
diff --git a/viewer/smil-player/include/msg-smil-render.h b/viewer/smil-player/include/msg-smil-render.h
new file mode 100755 (executable)
index 0000000..6f1c20d
--- /dev/null
@@ -0,0 +1,209 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_SMIL_RENDER_H__
+#define __MSG_SMIL_RENDER_H__
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-smil-types.h"
+#include "msg-smil-util.h"
+#include <msg.h>
+#include <stdio.h>
+#include <Ecore_X.h>
+#include <Ethumb.h>
+#include <Elementary.h>
+#include <ui-gadget-module.h>
+
+/*==================================================================================================
+ *                                                                             DEFINITIONS
+ *==================================================================================================*/
+#define VIEWER_FONT_STYLE_BUF_LEN      10
+
+typedef unsigned char  VIEWER_BYTE;
+typedef unsigned short VIEWER_WORD;
+typedef unsigned long  VIEWER_DWORD;
+typedef unsigned long  VIEWER_COLORREF;
+#define VIEWER_RGB(r, g, b)    ((VIEWER_COLORREF)(((VIEWER_BYTE)(r) | ((VIEWER_WORD)((VIEWER_BYTE)(g)) << 8)) | (((VIEWER_DWORD)(VIEWER_BYTE)(b)) << 16)))
+
+/*==================================================================================================
+ *                                                                             ENUMERATIONS
+ *==================================================================================================*/
+enum viewer_media_player_state {
+       MEDIA_PLAYER_STATE_NONE = 0X00,
+       MEDIA_PLAYER_STATE_INIT,
+       MEDIA_PLAYER_STATE_READY,
+       MEDIA_PLAYER_STATE_PLAYING,
+       MEDIA_PLAYER_STATE_PAUSED,
+       MEDIA_PLAYER_STATE_STOP
+};
+
+typedef enum {
+       VIEWER_IMAGE_TYPE_NONE = 0,
+       VIEWER_IMAGE_TYPE_NORMAL,
+       VIEWER_IMAGE_TYPE_UNSUPPORTED,
+} SMIL_RENDER_IMAGE_TYPE_E;
+
+/*==================================================================================================
+ *                                                                             STRUCTURES
+ *==================================================================================================*/
+typedef struct viewer_tagRGBQUAD {
+       VIEWER_BYTE rgbAlpha;
+       VIEWER_BYTE rgbBlue;
+       VIEWER_BYTE rgbGreen;
+       VIEWER_BYTE rgbRed;
+} SMIL_RGBQUAD;
+
+typedef union {
+       SMIL_RGBQUAD    rgbQuad;
+       VIEWER_COLORREF rgbColor;
+} SMIL_RGB_UNION;
+
+typedef struct _SMIL_FONT_SYTLE_S {
+       char font_color[VIEWER_RGB_COLOR_BUF_LEN + 1];  /*"#ffffff"*/
+       char font_style[VIEWER_FONT_STYLE_BUF_LEN + 1]; /*"link", "em", etc.*/
+} SMIL_FONT_SYTLE_S;
+
+typedef struct _SMIL_RENDERER_DATA_S {
+       void *smilhandle;
+       msg_struct_t msg_info_t;
+       Evas_Object *main_window;
+       Evas_Object *layout_main;
+       Evas_Object *viewer_scroller;
+       Evas_Object *viewer_content_box;                /*it contans text(entry) and image*/
+       Evas_Object *viewer_bg_rect;                    /* bg color */
+       Evas_Object *viewer_body;                               /* it shows text , entry*/
+       Evas_Object *viewer_body_layout;                /* layout contains viewer_body (layout) */
+       Evas_Object *viewer_audio_name_rect;    /* rect area for displaying audio file name */
+       Evas_Object *viewer_body_top_padding;   /* padding rect area for top of content box */
+       Evas_Object *viewer_body_mid_padding;   /* padding rect area between image and text */
+       Evas_Object *viewer_body_bottom_padding;        /* padding rect area for bottom of content box */
+
+       char *viewer_body_text;         /*set page text*/
+       Evas_Object *insert_image;
+       Evas_Object *insert_sound_icon; /*display invalid drm sound icon*/
+       Evas_Object *insert_unsupported_icon;   /*display unsupported icon*/
+       Evas_Object *video_layout;      /* contains bg, video image */
+       Evas_Object *image_layout;
+       Evas_Object *video_bg;          /* for evas pixmap display with black bg color, swallowed to elm.swallow.bg in video_layout */
+       Evas_Object *video_image;       /* evas image for video rendering, swallowed to elm.swallow.content in video_layout */
+       Evas_Object *video_sink;        /* evas image object for rendering evas pixmap */
+       Evas_Object *attach_list;       /* attach list for help page */
+
+       Evas_Object *popup;
+
+       MSG_BOOL render_status; /*status of rendering*/
+       int video_width;
+       int video_height;
+
+       int resized_width;
+       int resized_height;
+
+       Ecore_Idler *video_resize_idle;
+       Ecore_Idler *video_eos_idle;
+
+       int player_state;
+       int viewer_width;
+       int viewer_height;
+       int viewer_landscape_width;
+       int viewer_landscape_height;
+       int button_height;
+       int main_win_rotate;    /*current rotation value of main window*/
+
+       pfnSMILHelpPageCb appSmilHelpPageCb;
+       pfnSMILFontSizeCb appSmilFontSizeCb;
+
+       void *appUserData;
+
+       VIEWER_COLORREF bgcolor;
+       MSG_BOOL ismute;        /*sound, video mute mode when silent mode*/
+
+       char *working_path;
+       bool is_interrupt_called;
+} SMIL_RENDERER_DATA_S;
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+MSG_SMIL_ERROR_E _msg_smil_create_render(SMIL_RENDERER_DATA_S **viewerRenderData);
+void _msg_smil_destroy_render(SMIL_RENDERER_DATA_S *viewerRenderData);
+MSG_BOOL _msg_smil_init_render(SMIL_RENDERER_DATA_S *viewerRenderData);
+
+/*Create and set layout to display viewer*/
+MSG_BOOL _msg_smil_render_create_layout(SMIL_RENDERER_DATA_S *viewerRenderData, Evas_Object *layout);
+MSG_BOOL _msg_smil_render_set_layout_size(SMIL_RENDERER_DATA_S *viewerRenderData, SMIL_POSITION_S *left_top, SMIL_POSITION_S *right_bottom);
+MSG_BOOL _msg_smil_render_get_status(SMIL_RENDERER_DATA_S *viewerRenderData);
+void _msg_smil_render_set_status(SMIL_RENDERER_DATA_S *viewerRenderData, MSG_BOOL status);
+MSG_BOOL _msg_smil_render_set_mute(SMIL_RENDERER_DATA_S *viewerRenderData, MSG_BOOL ismute);
+MSG_BOOL _msg_smil_render_set_help_page_cb(SMIL_RENDERER_DATA_S *viewerRenderData, void *callBack, void *userData);
+MSG_BOOL _msg_smil_render_set_entry_handle_cb(SMIL_RENDERER_DATA_S *viewerRenderData, void *callBack);
+
+/**
+*@fn                   _msg_smil_render_on_slide_render_handler(SMIL_RENDERER_DATA_S *viewerRenderData, SMIL_SLIDE_EVENT_PARAM_S *eventStatus);
+*@brief                        This API shall handle render event to display mms contents
+*@return                       MSG_SMIL_SUCCESS on success, else failure return code
+*@param[in]            viewerRenderData        This is the handler of SMIL_RENDERER_DATA_S.
+*@param[in]            eventStatus     This is the eventstatus of a current slide.
+*@param[out] None.
+*/
+MSG_SMIL_ERROR_E _msg_smil_render_on_slide_render_handler(SMIL_RENDERER_DATA_S *viewerRenderData, SMIL_SLIDE_EVENT_PARAM_S *eventStatus);
+MSG_BOOL _msg_smil_render_reload_mms(SMIL_RENDERER_DATA_S *viewerRenderData, SMIL_SLIDE_EVENT_PARAM_S *eventStatus);
+
+
+/*==================================================================================================
+ *                                                                             Text related functions
+ *==================================================================================================*/
+MSG_BOOL _msg_smil_render_show_inserted_text(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, char *color_text);
+void _msg_smil_render_show_help_page_attach_list(SMIL_RENDERER_DATA_S *viewerRenderData);
+void _msg_smil_render_set_entry_handle(SMIL_RENDERER_DATA_S *viewerRenderData);
+
+/*==================================================================================================
+ *                                                                             Media related functions
+ *==================================================================================================*/
+MSG_BOOL _msg_smil_render_show_inserted_audio(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status);
+MSG_BOOL _msg_smil_render_show_inserted_image(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path);
+MSG_BOOL _msg_smil_render_show_inserted_video(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status);
+
+/*smil player sound and video related functions*/
+MSG_BOOL _msg_smil_render_pause(void *data, int mediaType);
+MSG_BOOL _msg_smil_render_resume(void *data, int mediaType);
+
+/**
+*@fn                   _msg_smil_render_mgr_request_player_start(void *data)
+*@brief                        This API shall request player to start its media
+*@return                       TRUE on success , else FALSE return code
+*@param[in]            data    This is the smil render structure
+*/
+MSG_BOOL _msg_smil_render_mgr_request_player_start(void *data);
+
+/**
+*@fn                   _msg_smil_render_stop_playing_file(void *data)
+*@brief                        This API shall stop and destroy mm player
+*@return                       TRUE on success , else FALSE return code
+*@param[in]            data    This is the smil render structure
+*/
+MSG_BOOL _msg_smil_render_stop_playing_file(void *data);
+
+/**
+*@fn                   _msg_smil_render_rotate_video_window(void *data)
+*@brief                        This API shall rotate video window according to rotated status of viewer's main window
+*@param[in]            data    This is the smil render structure
+*/
+void _msg_smil_render_rotate_video_window(void *data);
+Evas_Object *_msg_smil_render_create_popup(SMIL_RENDERER_DATA_S *render_data);
+
+#endif
diff --git a/viewer/smil-player/include/msg-smil-types.h b/viewer/smil-player/include/msg-smil-types.h
new file mode 100755 (executable)
index 0000000..6d8c682
--- /dev/null
@@ -0,0 +1,186 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_SMIL_TYPES_H__
+#define __MSG_SMIL_TYPES_H__
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+#include "msg-ui-util.h"
+#include "msg-ui-viewer-types.h"
+
+/*==================================================================================================
+ *                                                                             DEFINITIONS
+ *==================================================================================================*/
+#define MSG_INVALID_INDEX      0
+#define MSG_MMS_SMIL_MEDIA_TYPES       3
+
+/*==================================================================================================
+ *                                                                             ENUMERATIONS
+ *==================================================================================================*/
+typedef enum _MSG_SMIL_ERROR_E {
+       MSG_SMIL_SUCCESS = 0,
+       MSG_ERR_SMIL_UNKNOWN,
+       MSG_ERR_SMIL_NULL_MESSAGE,
+       MSG_ERR_SMIL_EVENT_NONE,
+       MSG_ERR_SMIL_INVALID_STORAGE,
+       MSG_ERR_SMIL_PAUSE_SLIDE_EVENT_FAILURE,
+       MSG_ERR_SMIL_PAUSE_SLIDE_CONTENT_FAILURE,
+       MSG_ERR_SMIL_PAUSE_SLIDE_RENDER_FAILURE,        /*smil render pause control*/
+       MSG_ERR_SMIL_RESUME_SLIDE_RENDER_FAILURE,       /*smil render resume control*/
+       MSG_ERR_SMIL_STOP_SLIDE_RENDER_FAILURE,         /*smil render stop control*/
+       MSG_ERR_SMIL_UPDATE_CONTENT_MGR_FAILURE,
+       MSG_ERR_SMIL_INVALID_PARAMETER,
+       MSG_ERR_SMIL_INVALID_SLIDE,
+       MSG_ERR_SMIL_INVALID_MEDIA_TIMESTAMPS,/*All media in the slide have invalid timestamps*/
+       MSG_ERR_SMIL_TIMER_FAILURE,
+       MSG_ERR_SMIL_DATA_RETREIVAL_FAILURE,
+       MSG_ERR_SMIL_UI_DISPLAY_FAIURE,
+} MSG_SMIL_ERROR_E;
+
+typedef enum _SMIL_PLAYER_EVENT_E {
+       PLAYER_EVENT_NONE = 0,
+       PLAYER_EVENT_INIT,
+       PLAYER_EVENT_READY,                             /* ready to starting SMIL */
+       PLAYER_EVENT_PREVIEW_READY,             /* ready to starting SMIL for preview */
+       PLAYER_EVENT_START,                             /* play SMIL firstly after READY event */
+       PLAYER_EVENT_PLAY,
+       PLAYER_EVENT_STOP,
+       PLAYER_EVENT_PAUSE,
+       PLAYER_EVENT_RESUME,
+       PLAYER_EVENT_NEXT_SLIDE,
+       PLAYER_EVENT_PREV_SLIDE,
+       PLAYER_EVENT_MUTE,
+       PLAYER_EVENT_ROTATE_WINDOW,
+       PLAYER_EVENT_DESTROY_SCREEN,
+} SMIL_PLAYER_EVENT_E;
+
+typedef enum _SMIL_PLAYER_STATUS_E {
+       PLAYER_STATUS_NONE = 0,
+       PLAYER_STATUS_PLAYING,
+       PLAYER_STATUS_PLAY_END,         /* End status while playing */
+       PLAYER_STATUS_PAUSED_END,       /* End status while paused */
+       PLAYER_STATUS_STOPPED,
+       PLAYER_STATUS_PAUSED,
+       PLAYER_STATUS_INVALID,
+} SMIL_PLAYER_STATUS_E;
+
+typedef enum _SMIL_PLAYER_MEDIA_EVENT_E {
+       MEDIA_EVENT_NONE = 0,
+       MEDIA_EVENT_BEGIN,
+       MEDIA_EVENT_END,
+} SMIL_PLAYER_MEDIA_EVENT_E;
+
+typedef enum _SMIL_PLAYER_PAGE_EVENT_E {
+       PAGE_EVENT_PLAY = 0,
+       PAGE_EVENT_END,
+       PAGE_EVENT_INTERNAL_MEDIA,
+       PAGE_EVENT_MOVE_TO_NEXT,
+       PAGE_EVENT_MOVE_TO_PREV,
+       PAGE_EVENT_NONE,
+} SMIL_PLAYER_PAGE_EVENT_E;
+
+typedef enum _SMIL_PLAYER_RENDER_EVENT_E {
+       SMIL_RENDER_EVENT_NONE = -1,
+       SMIL_RENDER_EVENT_PAGE_PLAY_START = 0,  /* Start playing the Page */
+       SMIL_RENDER_EVENT_PAGE_MEDIA_PLAY_START,        /* Start Playing both Page and  Media at the same time*/
+       SMIL_RENDER_EVENT_PAUSE_CURRENT_PAGE,   /*Pause player by interrupted earjack off*/
+       SMIL_RENDER_EVENT_MOVE_PAGE_AFTER_PAUSED,       /*Pause player automatically after moving to prev or next page to keep up with prevous player status(paused)*/
+       SMIL_RENDER_EVENT_LAST_PAGE_PLAY_COMPLETE,      /* For notifying the Client about the last slide */
+       SMIL_RENDER_EVENT_DESTROY_SCREEN,       /*This Event is called to destroy current screen*/
+       SMIL_RENDER_EVENT_ERROR,        /* Stop playing because of Error*/
+} SMIL_PLAYER_RENDER_EVENT_E;
+
+/*==================================================================================================
+ *                                                                             STRUCTURES
+ *==================================================================================================*/
+/*Common Data for the Slide.*/
+typedef struct _SMIL_PAGE_INFO_S {
+       MSG_BOOL        hasText;
+       MSG_BOOL        hasImage;
+       MSG_BOOL        hasVideo;
+       MSG_BOOL        hasAudio;
+       MSG_BOOL        hasRef;
+       MSG_BOOL        isTexttop;
+       MSG_BOOL        isHelpPage;
+       int pageDuration;
+       int mediaCnt;
+} SMIL_PAGE_INFO_S;
+
+/*Common Data for the Slide.*/
+typedef struct _SMIL_MASTER_SLIDE_INFO_S {
+       int     pageCnt;        /*total no of pages.*/
+       int     regionCnt;
+       int     attachCnt;
+       int     transitionCnt;
+       int     metaCnt;
+       MSG_BOOL isTextOnlyMixed;
+} SMIL_MASTER_SLIDE_INFO_S;
+
+/*Structure for Per Slide Information Queue Implementation.*/
+typedef struct _SMIL_SLIDE_INFO_S {
+       int     pageIdx;        /*Index of the Current page.*/
+       SMIL_PAGE_INFO_S        *pageInfo;
+       SMIL_MASTER_SLIDE_INFO_S        *commonData;    /*Data common to ll the Slides.*/
+       SMIL_PLAYER_STATUS_E    slideStatus;    /*Slide's Current Status.*/
+
+       struct _SMIL_SLIDE_INFO_S       *nextSlide;     /*Address of the next Slide in the Queue.NULL if its the last slide.*/
+       struct _SMIL_SLIDE_INFO_S       *prevSlide;     /*Address of the next Slide in the Queue.NULL if its the first slide.*/
+} SMIL_SLIDE_INFO_S;
+
+typedef struct _SMIL_MEDIA_TIMER_S {
+       int     mediaIdx;
+       SMIL_PLAYER_MEDIA_EVENT_E       actionTypeOnMedia;      /* This will define what action needs to be performed by the Client on the particular meida.*/
+} SMIL_MEDIA_TIMER_S;
+
+/* This is the structure that is sent to the client in its callback */
+typedef struct _SMIL_SLIDE_CLIENT_CB_PARAM_S {
+       int pageIdx;
+       int pageCnt;
+       SMIL_PLAYER_RENDER_EVENT_E clientCbEvent;
+       MSG_BOOL isLastSlide;
+       MSG_BOOL isHelpSlide;
+} SMIL_SLIDE_CLIENT_CB_PARAM_S;
+
+typedef struct _SMIL_SLIDE_EVENT_PARAM_S {
+       SMIL_SLIDE_INFO_S *singleSlideInfo;
+       SMIL_PLAYER_RENDER_EVENT_E renderEvent;
+       SMIL_MEDIA_TIMER_S timerDataMedia[MSG_MMS_SMIL_MEDIA_TYPES];    /* Media Related Action - Start/End  */
+       MSG_BOOL isHelpSlide;
+       MSG_BOOL isLastSlide;
+       MSG_BOOL isVideoMedia;
+       MSG_BOOL isVideoRoInvalid;      /*This is set if video content has valid drm ro or not*/
+       MSG_BOOL iseos; /*This is set when end of stream of sound or video is passed*/
+       MSG_BOOL isUnsupportedContent;  /*This is set, if unsupported content is inserted on current page*/
+       double timerDur;        /*This is set, page timer duration*/
+       SMIL_SLIDE_CLIENT_CB_PARAM_S clientCbParam;
+} SMIL_SLIDE_EVENT_PARAM_S;
+
+typedef struct SMIL_POSITION_S {
+       int     x;
+       int     y;
+} SMIL_POSITION_S;
+
+typedef MSG_SMIL_ERROR_E(*pfnSMILPlayerCb)(SMIL_SLIDE_CLIENT_CB_PARAM_S *eventStatus, void *appUserData);
+typedef MSG_SMIL_ERROR_E(*pfnSMILEventCb)(void *data, void *obj, void *event_info);
+typedef MSG_SMIL_ERROR_E(*pfnSMILHelpPageCb)(void *appUserData, void **attach_list, void *box, char *working_dir);
+typedef MSG_SMIL_ERROR_E(*pfnSMILFontSizeCb)(void *appUserData, void *entry);
+
+#endif
diff --git a/viewer/smil-player/include/msg-smil-util.h b/viewer/smil-player/include/msg-smil-util.h
new file mode 100755 (executable)
index 0000000..c5fcc6d
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MSG_SMIL_UTIL_H__
+#define __MSG_SMIL_UTIL_H__
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-smil-types.h"
+
+/*==================================================================================================
+ *                                                                             DEFINITIONS
+ *==================================================================================================*/
+#define VIEWER_COLOR_HEXA_BUFFER_LEN   2
+#define VIEWER_HEXA_SIZE       16
+#define VIEWER_RGB_COLOR_BUF_LEN       7
+
+/*==================================================================================================
+ *                                                                             ENUMERATIONS
+ *==================================================================================================*/
+
+typedef enum {
+       VIEWER_SMIL_REGION_IMAGE,
+       VIEWER_SMIL_REGION_TEXT,
+       VIEWER_SMIL_REGION_MAX
+} VIEWER_SMIL_REGION_TYPE_E;
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+
+void _msg_smil_util_get_color_string(char *pszBuffer, int pszBuffer_len, int r, int g, int b);
+
+int _msg_smil_util_find_smallest(int num1, int num2);
+#endif
diff --git a/viewer/smil-player/src/msg-smil-content-manager.c b/viewer/smil-player/src/msg-smil-content-manager.c
new file mode 100755 (executable)
index 0000000..cbf4227
--- /dev/null
@@ -0,0 +1,1334 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include <metadata_extractor.h>
+#include "msg-smil-content-manager.h"
+#include "msg-smil-player.h"
+#include "msg-ui-content-utility.h"
+
+/*==================================================================================================
+ *                                                             FUNCTION DECLARATIONS
+ *==================================================================================================*/
+/**
+*@fn                   __msg_smil_content_mgr_create_page_content(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, msg_struct_t *msgData);
+*@brief                        This function creates the Slide Page Queue which is further passed to the UI for display.
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            msgData    This is the message data
+*@param[in]            smilContMgrHndle    The Content Manager Handler
+*@param[out] None.
+*/
+static MSG_SMIL_ERROR_E __msg_smil_content_mgr_create_page_content(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, msg_struct_t msg_info_t);
+static SMIL_SLIDE_INFO_S *__msg_smil_content_mgr_create_mixed_message(msg_struct_t msg_info_t);
+static SMIL_SLIDE_INFO_S *__msg_smil_content_mgr_create_related_message(msg_struct_t msg_info_t);
+static SMIL_MASTER_SLIDE_INFO_S *__msg_smil_content_mgr_create_master_slide(msg_struct_t msg_info_t);
+static void __msg_smil_content_mgr_free_slide_list(SMIL_SLIDE_INFO_S *deleteSlide);
+static MSG_BOOL __msg_smil_cont_mgr_is_valid_slide(SMIL_MASTER_SLIDE_INFO_S *commonData, int curSlideIdx);
+
+/*==================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+MSG_SMIL_ERROR_E _msg_smil_create_content_mgr(msg_struct_t msg_info_t, SMIL_CONTENT_MGR_HANDLE_S **smilContMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(msg_info_t == NULL, MSG_ERR_SMIL_NULL_MESSAGE, "msg_info_t is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilContMgrHndle is NULL");
+       MSG_SMIL_ERROR_E err = MSG_ERR_SMIL_UNKNOWN;
+
+       /*allocate memory for the content mgr handler*/
+       *smilContMgrHndle = (SMIL_CONTENT_MGR_HANDLE_S *)calloc(1, sizeof(SMIL_CONTENT_MGR_HANDLE_S));
+       if (*smilContMgrHndle == NULL) {
+               D_EMSG("calloc is failed");
+               return MSG_ERR_SMIL_INVALID_STORAGE;
+       }
+
+       /*create and set page content info.*/
+       err = __msg_smil_content_mgr_create_page_content(*smilContMgrHndle, msg_info_t);
+       if (err != MSG_SMIL_SUCCESS) {
+               D_EMSG("__msg_smil_content_mgr_create_page_content is failed");
+               if (*smilContMgrHndle != NULL) {
+                       free(*smilContMgrHndle);
+                       *smilContMgrHndle = NULL;
+               }
+
+               return err;
+       }
+
+       /* store mmsdata struct handler */
+       (*smilContMgrHndle)->msg_info_t = msg_info_t;
+
+       D_LEAVE;
+       return MSG_SMIL_SUCCESS;
+}
+
+static SMIL_MASTER_SLIDE_INFO_S *__msg_smil_content_mgr_create_master_slide(msg_struct_t msg_info_t)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(msg_info_t == NULL, NULL, "msg_info_t is NULL");
+       SMIL_MASTER_SLIDE_INFO_S *commonData = NULL;
+
+       /*allocate master slide*/
+       commonData = (SMIL_MASTER_SLIDE_INFO_S *)calloc(1, sizeof(SMIL_MASTER_SLIDE_INFO_S));
+       if (commonData == NULL) {
+               D_EMSG("calloc is failed");
+               return NULL;
+       }
+
+       msg_list_handle_t pagelist_info = NULL;
+       msg_get_list_handle(msg_info_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
+
+       /*Get page count */
+       commonData->pageCnt = (msg_list_length(pagelist_info) > 0) ? msg_list_length(pagelist_info) : 0;
+
+       /*Get Attachment List*/
+       msg_list_handle_t attachlist_info = NULL;
+       msg_get_list_handle(msg_info_t, MSG_MMS_ATTACH_LIST_HND, (void **)&attachlist_info);
+       commonData->attachCnt = (msg_list_length(attachlist_info) > 0) ? msg_list_length(attachlist_info) : 0;
+
+       /*Get MetaData List*/
+       msg_list_handle_t metalist_info = NULL;
+       msg_get_list_handle(msg_info_t, MSG_MMS_META_LIST_HND, (void **)&metalist_info);
+       commonData->metaCnt = (msg_list_length(metalist_info) > 0) ? msg_list_length(metalist_info) : 0;
+
+       /*Get Region List */
+       msg_list_handle_t regionlist_info = NULL;
+       msg_get_list_handle(msg_info_t, MSG_MMS_REGION_LIST_HND, (void **)&regionlist_info);
+       commonData->regionCnt = (msg_list_length(regionlist_info) > 0) ? msg_list_length(regionlist_info) : 0;
+
+       /*Get Transition List */
+       msg_list_handle_t translist_info = NULL;
+       msg_get_list_handle(msg_info_t, MSG_MMS_TRANSITION_LIST_HND, (void **)&translist_info);
+       commonData->transitionCnt = (msg_list_length(translist_info) > 0) ? msg_list_length(translist_info) : 0;
+
+       D_LEAVE;
+
+       return commonData;
+}
+
+
+static SMIL_SLIDE_INFO_S *__msg_smil_content_mgr_create_mixed_message(msg_struct_t msg_info_t)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(msg_info_t == NULL, NULL, "msg_info_t is NULL");
+       SMIL_SLIDE_INFO_S *firstSlide = NULL;   /*first slide pointer to be returned*/
+       SMIL_SLIDE_INFO_S *newSlideContent = NULL;
+       MSG_BOOL isMixedMsg = FALSE;
+       msg_list_handle_t pagelist_info = NULL;
+       msg_list_handle_t attachlist_info = NULL;
+       MSG_BOOL display_text = false;
+       MSG_BOOL display_image = false;
+
+       msg_get_list_handle(msg_info_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
+       int length = msg_list_length(pagelist_info);
+       int pageCnt = (length > 0) ? length : 0;
+
+       msg_get_list_handle(msg_info_t, MSG_MMS_ATTACH_LIST_HND, (void **)&attachlist_info);
+       length = msg_list_length(attachlist_info);
+       int attachCnt = (length > 0) ? length : 0;
+
+       isMixedMsg = (pageCnt == 0) ? TRUE : FALSE;
+
+       if (isMixedMsg) {
+               /*Get Attachment List*/
+               int index = 0;
+               char content_type[DEF_BUF_LEN_S] = {0,};
+
+               while (index < attachCnt) {
+                       int mediaType = 0;
+                       msg_struct_t attach_info = (msg_struct_t)msg_list_nth_data(attachlist_info, index++);
+
+                       msg_get_str_value(attach_info, MSG_MMS_ATTACH_CONTENT_TYPE_STR, content_type, sizeof(content_type));
+
+                       /* get content type first */
+                       if (content_type[0] != '\0') {
+                               CONTENT_DISPLAY_TYPE display_type = msg_ui_content_get_display_type(content_type);
+                               if (display_type == DISPLAY_TEXT) {
+                                       display_text = TRUE;
+                                       break;
+                               } else if (display_type == DISPLAY_IMAGE) {
+                                       display_image = TRUE;
+                                       break;
+                               }
+                       } else {
+                               msg_get_int_value(attach_info, MSG_MMS_ATTACH_MIME_TYPE_INT, &mediaType);
+
+                               if (mediaType == MIME_TEXT_TXT || mediaType == MIME_TEXT_PLAIN) {
+                                       display_text = TRUE;
+                                       break;
+                               } else if (mediaType >= MIME_IMAGE_GIF && mediaType <= MIME_IMAGE_X_BMP) {
+                                       display_image = TRUE;
+                                       break;
+                               }
+                       }
+               }
+               if (display_text || display_image) {
+                       newSlideContent = (SMIL_SLIDE_INFO_S *)calloc(1, sizeof(SMIL_SLIDE_INFO_S));
+                       if (newSlideContent == NULL) {
+                               D_EMSG("calloc is failed");
+                               goto FREE_SLIDE_LIST;
+                       }
+
+                       /*init silde info data*/
+                       newSlideContent->pageIdx = 0;
+                       newSlideContent->slideStatus = PLAYER_STATUS_NONE;
+                       newSlideContent->nextSlide = NULL;
+                       newSlideContent->prevSlide = NULL;
+                       newSlideContent->commonData = __msg_smil_content_mgr_create_master_slide(msg_info_t);
+
+                       if (newSlideContent->commonData == NULL) {
+                               D_EMSG("__msg_smil_content_mgr_create_master_slide is failed");
+                               goto FREE_SLIDE_LIST;
+                       }
+
+                       newSlideContent->commonData->pageCnt = (attachCnt > 1) ? 2 : 1; /* adjust total page count */
+                       newSlideContent->commonData->isTextOnlyMixed = display_text;
+
+                       /*set pageinfo */
+                       newSlideContent->pageInfo = (SMIL_PAGE_INFO_S *)calloc(1, sizeof(SMIL_PAGE_INFO_S));
+                       if (newSlideContent->pageInfo == NULL) {
+                               D_EMSG("calloc is failed");
+                               goto FREE_SLIDE_LIST;
+                       }
+
+                       /* Init */
+                       newSlideContent->pageInfo->mediaCnt = 1;
+                       newSlideContent->pageInfo->isTexttop = display_text;
+                       newSlideContent->pageInfo->hasText = display_text;
+                       newSlideContent->pageInfo->hasImage = display_image;
+                       newSlideContent->pageInfo->hasVideo = FALSE;
+                       newSlideContent->pageInfo->hasAudio = FALSE;
+                       newSlideContent->pageInfo->pageDuration = 5000;
+
+                       /*set smilContent of content mgr as first slide pointer */
+                       firstSlide = newSlideContent;
+               }
+               newSlideContent = (SMIL_SLIDE_INFO_S *)calloc(1, sizeof(SMIL_SLIDE_INFO_S));
+               if (newSlideContent == NULL) {
+                       D_EMSG("calloc is failed");
+                       goto FREE_SLIDE_LIST;
+               }
+               if (attachCnt > 1 || (!display_text && !display_image)) {
+                       newSlideContent->pageIdx = (display_text || display_image) ? 1 : 0;
+                       newSlideContent->slideStatus = PLAYER_STATUS_NONE;
+                       newSlideContent->nextSlide = NULL;
+               }
+               /*create master slide*/
+               if (display_text || display_image) {
+                       newSlideContent->prevSlide = firstSlide;
+                       firstSlide->nextSlide = newSlideContent;
+               } else {
+                       newSlideContent->prevSlide = NULL;
+               }
+
+               /* set pageinfo with no data*/
+               newSlideContent->pageInfo = (SMIL_PAGE_INFO_S *)calloc(1, sizeof(SMIL_PAGE_INFO_S));
+               if (newSlideContent->pageInfo == NULL) {
+                       D_EMSG("calloc is failed");
+                       goto FREE_SLIDE_LIST;
+               }
+
+               /* Init */
+               newSlideContent->pageInfo->mediaCnt = 0;
+               newSlideContent->pageInfo->isTexttop = FALSE;
+               newSlideContent->pageInfo->hasText = FALSE;
+               newSlideContent->pageInfo->hasImage = FALSE;
+               newSlideContent->pageInfo->hasVideo = FALSE;
+               newSlideContent->pageInfo->hasAudio = FALSE;
+               newSlideContent->pageInfo->pageDuration = MSG_MMS_SMIL_HELP_PAGE_DURATION;
+               _msg_smil_cont_mgr_set_cur_slide_help_page(newSlideContent, ((attachCnt > 0) ? TRUE : FALSE));
+
+               /*create master slide*/
+               if (display_text || display_image) {
+                       /* Keeping one copy of commonData and makig all pointers to point to that copy */
+                       newSlideContent->commonData = firstSlide->commonData;
+               } else {
+                       newSlideContent->commonData = __msg_smil_content_mgr_create_master_slide(msg_info_t);
+                       if (newSlideContent->commonData == NULL) {
+                               D_EMSG("__msg_smil_content_mgr_create_master_slide is failed");
+                               goto FREE_SLIDE_LIST;
+                       }
+               }
+       }  else {
+               D_EMSG("This is not mixed message");
+       }
+
+       D_LEAVE;
+
+       return (display_text || display_image) ? firstSlide : newSlideContent;
+
+FREE_SLIDE_LIST:
+       /*free current slide data*/
+       if (newSlideContent) {
+               if (newSlideContent->commonData) {
+                       free(newSlideContent->commonData);
+                       newSlideContent->commonData = NULL;
+               }
+               if (newSlideContent->pageInfo) {
+                       free(newSlideContent->pageInfo);
+                       newSlideContent->pageInfo = NULL;
+               }
+               free(newSlideContent->commonData);
+               free(newSlideContent);
+               newSlideContent = NULL;
+       }
+
+       __msg_smil_content_mgr_free_slide_list(firstSlide);
+
+       return NULL;
+}
+
+static SMIL_SLIDE_INFO_S *__msg_smil_content_mgr_create_related_message(msg_struct_t msg_info_t)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(msg_info_t == NULL, NULL, "msg_info_t is NULL");
+       SMIL_SLIDE_INFO_S *firstSlide = NULL;   /*first slide pointer to be returned*/
+       SMIL_SLIDE_INFO_S *newSlideContent = NULL;
+       int pageCnt = 0;
+       int attachCnt = 0;
+       int no_display_refCnt = 0;
+       MSG_BOOL bSkipEmptyPage = FALSE;
+       msg_list_handle_t pagelist_info = NULL;
+       msg_struct_t page_info = NULL;
+       msg_list_handle_t medialist_info = NULL;
+       msg_list_handle_t attachlist_info = NULL;
+
+       /* Get page info and count */
+       msg_get_list_handle(msg_info_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
+       pageCnt = (msg_list_length(pagelist_info) > 0) ? msg_list_length(pagelist_info) : 0;
+
+       /* Get attach info and count */
+       msg_get_list_handle(msg_info_t, MSG_MMS_ATTACH_LIST_HND, (void **)&attachlist_info);
+       attachCnt = (msg_list_length(attachlist_info) > 0) ? msg_list_length(attachlist_info) : 0;
+
+       if (pageCnt > 0) {
+               SMIL_SLIDE_INFO_S *prev = NULL;
+               int pageIndex = 0;
+               int mediaCnt = 0;
+
+               D_MSG("msgData->pageCnt = %d", pageCnt);
+
+               while (pageIndex < pageCnt) {
+                       D_MSG("pgCount = %d", pageIndex);
+
+                       page_info = _msg_smil_cont_mgr_get_nth_page_struct_handle(pagelist_info, pageIndex);
+                       medialist_info = _msg_smil_cont_mgr_get_page_media_list_handle(page_info);
+                       mediaCnt = (msg_list_length(medialist_info) > 0) ? msg_list_length(medialist_info) : 0;
+                       D_MSG("mediaCnt = %d", mediaCnt);
+
+                       /* For empty page, if there's only 1 page and help page is exist, then skip composing 1st empty page. */
+                       if (pageCnt == 1 && pageIndex == 0 && mediaCnt == 0 && attachCnt > 0) {
+                               D_MSG("There's 1 empty page, but attachment is exist, skip composing empty 1 page!");
+                               bSkipEmptyPage = TRUE;
+                               break;
+                       }
+
+                       newSlideContent = (SMIL_SLIDE_INFO_S *)calloc(1, sizeof(SMIL_SLIDE_INFO_S));
+                       if (newSlideContent == NULL) {
+                               D_EMSG("calloc is failed");
+                               if (firstSlide == NULL) {
+                                       return NULL;
+                               } else
+                                       goto FREE_SLIDE_LIST;
+                       }
+
+                       /*init silde info data*/
+                       newSlideContent->pageIdx = pageIndex;
+                       newSlideContent->slideStatus = PLAYER_STATUS_NONE;
+                       newSlideContent->nextSlide = NULL;
+                       newSlideContent->prevSlide = NULL;
+
+                       /*set master(commonData) slide*/
+                       if (pageIndex == 0) {
+                               /*set smilContent of content mgr as first slide pointer */
+                               firstSlide = newSlideContent;
+
+                               newSlideContent->commonData = __msg_smil_content_mgr_create_master_slide(msg_info_t);
+                               if (newSlideContent->commonData == NULL) {
+                                       D_EMSG("__msg_smil_content_mgr_create_master_slide is failed");
+                                       firstSlide = NULL;
+                                       goto FREE_SLIDE_LIST;
+                               }
+                       } else {
+                               /* Keeping one copy of commonData and makig all pointers to point to that copy */
+                               newSlideContent->commonData = firstSlide->commonData;
+                       }
+
+                       /*set pageinfo */
+                       newSlideContent->pageInfo = (SMIL_PAGE_INFO_S *)calloc(1, sizeof(SMIL_PAGE_INFO_S));
+                       if (newSlideContent->pageInfo == NULL) {
+                               D_EMSG("calloc is failed");
+                               firstSlide = NULL;
+                               goto FREE_SLIDE_LIST;
+                       }
+
+                       /* Init */
+                       newSlideContent->pageInfo->mediaCnt = mediaCnt;
+                       newSlideContent->pageInfo->isTexttop = FALSE;
+                       newSlideContent->pageInfo->hasText = FALSE;
+                       newSlideContent->pageInfo->hasImage = FALSE;
+                       newSlideContent->pageInfo->hasVideo = FALSE;
+                       newSlideContent->pageInfo->hasAudio = FALSE;
+
+                       msg_get_int_value(page_info, MSG_MMS_PAGE_PAGE_DURATION_INT, &(newSlideContent->pageInfo->pageDuration));
+
+                       /* PLM P140428-03974 :
+                        * In case of duration attribute is not exist in smil tags, set default page duration time (5000ms)
+                        */
+                       if (newSlideContent->pageInfo->pageDuration > 0) {
+                               D_MSG("page duration time : %d", newSlideContent->pageInfo->pageDuration);
+
+                               /* For passing GCF test criteria MMS-1.3-con-209, pageduration is shorter than minimum unit(1s) then set it as ixit_min_page_time value(5s) */
+                               if (newSlideContent->pageInfo->pageDuration < 1000) {
+                                       D_MSG("[GCF] page duration will be set to ixit_min_page_time(5000ms)");
+                                       newSlideContent->pageInfo->pageDuration = 5000;
+                               }
+                       } else if (newSlideContent->pageInfo->pageDuration == 0) {
+                               D_MSG("page duration is zero, or duration attribure in smil is not exist, set duration time as default value(5000ms)");
+                               newSlideContent->pageInfo->pageDuration = 5000;
+                       } else {
+                               D_MSG("page duration is below zero(%d), set duration time as INFINITE", newSlideContent->pageInfo->pageDuration);
+                       }
+
+                       int index = 0;
+                       while (index < mediaCnt) {
+                               msg_struct_t media_info = _msg_smil_cont_mgr_get_page_nth_media_struct_handle(medialist_info, index);
+                               int mediaType = 0;
+                               _msg_smil_cont_mgr_get_media_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
+
+                               if (mediaType == MMS_SMIL_MEDIA_TEXT) {
+                                       char strContentType[DEF_BUF_LEN_S] = {0,};
+                                       msg_get_str_value(media_info, MSG_MMS_MEDIA_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+                                       CONTENT_DISPLAY_TYPE content_type = msg_ui_content_get_display_type(strContentType);
+
+                                       if (content_type != DISPLAY_TEXT) {
+                                               no_display_refCnt++;
+                                               D_MSG("No displayable text type (eg. text/x-vCard, text/x-vCalendar)");
+                                               index++;
+                                               continue;
+                                       }
+                                       newSlideContent->pageInfo->hasText = TRUE;
+                                       index++;
+                                       continue;
+                               } else if (mediaType == MMS_SMIL_MEDIA_AUDIO) {
+                                       newSlideContent->pageInfo->hasAudio = TRUE;
+                                       index++;
+                                       continue;
+                               } else if (mediaType == MMS_SMIL_MEDIA_VIDEO) {
+                                       newSlideContent->pageInfo->hasVideo = TRUE;
+                                       index++;
+                                       continue;
+                               } else if (mediaType == MMS_SMIL_MEDIA_IMG || mediaType == MMS_SMIL_MEDIA_ANIMATE) {
+                                       newSlideContent->pageInfo->hasImage = TRUE;
+                                       index++;
+                                       continue;
+                               } else if (mediaType == MMS_SMIL_MEDIA_IMG_OR_VIDEO) {
+                                       newSlideContent->pageInfo->hasRef = TRUE;
+                                       index++;
+
+                                       CONTENT_DISPLAY_TYPE content_type;
+                                       char strContentType[DEF_BUF_LEN_S] = {0,};
+
+                                       msg_get_str_value(media_info, MSG_MMS_MEDIA_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+                                       content_type = msg_ui_content_get_display_type(strContentType);
+                                       if (content_type == DISPLAY_NONE) {
+                                               D_MSG("There's Ref media that is not available to display in canvas!!");
+                                               no_display_refCnt++;
+                                       }
+                                       continue;
+                               } else {
+                                       index++;
+                               }
+                       }
+
+                       /* check isTexttop */
+                       if (newSlideContent->pageInfo->hasText &&
+                               (newSlideContent->pageInfo->hasVideo || newSlideContent->pageInfo->hasImage)) {
+                               int nTop_0 = 0;
+                               int nTop_1 = 0;
+                               int nHeight_0 = 0;
+                               int nHeight_1 = 0;
+                               char szID_0[MAX_SMIL_REGION_ID] = {0,};
+                               char szID_1[MAX_SMIL_REGION_ID] = {0,};
+
+                               msg_list_handle_t region_list = NULL;
+                               msg_get_list_handle(msg_info_t, MSG_MMS_REGION_LIST_HND, (void **)&region_list);
+
+                               /* Get 0th region */
+                               msg_struct_t region_info_0 = (msg_struct_t)msg_list_nth_data(region_list, 0);
+                               msg_get_str_value(region_info_0, MSG_MMS_REGION_ID_STR, szID_0, sizeof(szID_0));
+                               msg_get_int_value(region_info_0, MSG_MMS_REGION_LENGTH_TOP_INT, &nTop_0);
+                               msg_get_int_value(region_info_0, MSG_MMS_REGION_LENGTH_HEIGHT_INT, &nHeight_0);
+
+                               /* Get 1th region */
+                               msg_struct_t region_info_1 = (msg_struct_t)msg_list_nth_data(region_list, 1);
+                               msg_get_str_value(region_info_1, MSG_MMS_REGION_ID_STR, szID_1, sizeof(szID_1));
+                               msg_get_int_value(region_info_1, MSG_MMS_REGION_LENGTH_TOP_INT, &nTop_1);
+                               msg_get_int_value(region_info_1, MSG_MMS_REGION_LENGTH_HEIGHT_INT, &nHeight_1);
+
+                               /*check text top
+                                *      if (text's top == 0 & image's top != 0)
+                                *              text top
+                                *      else if (text's top < image's top)
+                                *              text top
+                                *      else if (text's top == 0 & image's top == 0) {
+                                *              if (text' height < image's height )
+                                *                      text top
+                                *      }
+                                */
+
+                               /*find and set image, text region*/
+                               if (!strcasecmp(szID_0, "Image")) {     /*Image top region_info_0 is IMAGE REGION*/
+                                       if (nTop_1 == 0 && nTop_0 != 0) {
+                                               newSlideContent->pageInfo->isTexttop = TRUE;
+                                       } else if (nTop_1 < nTop_0) {
+                                               newSlideContent->pageInfo->isTexttop = TRUE;
+                                       } else if (nTop_1 == 0 && nTop_0 == 0) {
+                                               if (nHeight_1 < nHeight_0) {
+                                                       newSlideContent->pageInfo->isTexttop = TRUE;
+                                               }
+                                       }
+
+                               } else if (!strcasecmp(szID_1, "Image")) { /* region_info_1 is IMAGE_REGION */
+                                       if (nTop_0 == 0 && nTop_1 != 0) {
+                                               newSlideContent->pageInfo->isTexttop = TRUE;
+                                       } else if (nTop_0 < nTop_1) {
+                                               newSlideContent->pageInfo->isTexttop = TRUE;
+                                       } else if (nTop_0 == 0 && nTop_1 == 0) {
+                                               if (nHeight_0 < nHeight_1) {
+                                                       newSlideContent->pageInfo->isTexttop = TRUE;
+                                               }
+                                       }
+                               }
+                       }
+
+                       /*set prev, next slide pointer*/
+                       newSlideContent->prevSlide = prev;
+                       if (prev != NULL) {
+                               prev->nextSlide = newSlideContent;
+                       }
+
+                       prev = newSlideContent;
+                       pageIndex++;
+               }
+       } else {
+               D_EMSG("This is not related message");
+       }
+
+       if (attachCnt > 0 || no_display_refCnt > 0) {
+               SMIL_SLIDE_INFO_S *lastSlide = NULL;    /*last slide pointer to ref for help page */
+               newSlideContent = (SMIL_SLIDE_INFO_S *)calloc(1, sizeof(SMIL_SLIDE_INFO_S));
+               if (newSlideContent == NULL) {
+                       D_EMSG("calloc is failed");
+                       goto FREE_SLIDE_LIST;
+               }
+
+               newSlideContent->pageIdx = (bSkipEmptyPage) ? pageCnt-1 : pageCnt;      /* set last page */
+               newSlideContent->slideStatus = PLAYER_STATUS_NONE;
+               newSlideContent->nextSlide = NULL;
+
+               if (firstSlide)
+                       newSlideContent->commonData = firstSlide->commonData;
+               else
+                       newSlideContent->commonData = __msg_smil_content_mgr_create_master_slide(msg_info_t);
+
+               /*set pageinfo */
+               newSlideContent->pageInfo = (SMIL_PAGE_INFO_S *)calloc(1, sizeof(SMIL_PAGE_INFO_S));
+               if (newSlideContent->pageInfo == NULL) {
+                       D_EMSG("calloc is failed");
+                       if (firstSlide == NULL) {
+                               free(newSlideContent);
+                               newSlideContent = NULL;
+
+                               return NULL;
+                       } else
+                       goto FREE_SLIDE_LIST;
+               }
+
+               /* Init */
+               newSlideContent->pageInfo->mediaCnt = 0;
+               newSlideContent->pageInfo->isTexttop = FALSE;
+               newSlideContent->pageInfo->hasText = FALSE;
+               newSlideContent->pageInfo->hasImage = FALSE;
+               newSlideContent->pageInfo->hasVideo = FALSE;
+               newSlideContent->pageInfo->hasAudio = FALSE;
+               newSlideContent->pageInfo->pageDuration = MSG_MMS_SMIL_HELP_PAGE_DURATION;
+               _msg_smil_cont_mgr_set_cur_slide_help_page(newSlideContent, TRUE);
+
+               /* set no media contents */
+               if (firstSlide) {
+                       lastSlide = firstSlide;         /* set first slide for searching last slide */
+
+                       for (; lastSlide->nextSlide != NULL ;)
+                               lastSlide = lastSlide->nextSlide;
+
+                       newSlideContent->prevSlide = lastSlide;
+                       lastSlide->nextSlide = newSlideContent;
+
+                       firstSlide->commonData->pageCnt += 1;
+               } else {
+                       newSlideContent->prevSlide = NULL;
+                       newSlideContent->nextSlide = NULL;
+
+                       firstSlide = newSlideContent;
+               }
+       }
+
+
+       D_LEAVE;
+       return firstSlide;
+
+FREE_SLIDE_LIST:
+       /*free current slide data*/
+       if (newSlideContent) {
+               if (newSlideContent->pageInfo) {
+                       free(newSlideContent->pageInfo);
+                       newSlideContent->pageInfo = NULL;
+               }
+               free(newSlideContent);
+               newSlideContent = NULL;
+       }
+
+       if (NULL != firstSlide)
+               __msg_smil_content_mgr_free_slide_list(firstSlide);
+
+       return NULL;
+}
+
+
+
+/*********************************************************************************************
+*This method allocates memory and does a deep copy of the message details received from the FW.
+*********************************************************************************************/
+static MSG_SMIL_ERROR_E __msg_smil_content_mgr_create_page_content(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, msg_struct_t msg_info_t)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilContMgrHndle is NULL");
+       D_MSG_RETVM_IF(msg_info_t == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "msg_info_t is NULL");
+
+       MSG_BOOL isMixedMsg = FALSE;
+       int pageCnt = 0;
+       msg_list_handle_t pagelist_info = NULL;
+       msg_get_list_handle(msg_info_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
+       pageCnt = (msg_list_length(pagelist_info) > 0) ? msg_list_length(pagelist_info) : 0;
+       D_MSG("pageCnt = %d", pageCnt);
+
+       isMixedMsg = (pageCnt == 0) ? TRUE : FALSE;
+
+       if (isMixedMsg) {       /*multipart mixed mms*/
+               smilContMgrHndle->smilContent = __msg_smil_content_mgr_create_mixed_message(msg_info_t);
+               if (smilContMgrHndle->smilContent == NULL) {
+                       D_EMSG("__msg_smil_content_mgr_create_mixed_message is failed");
+                       return MSG_ERR_SMIL_INVALID_STORAGE;
+               }
+       } else {        /*multipart related mms*/
+               smilContMgrHndle->smilContent = __msg_smil_content_mgr_create_related_message(msg_info_t);
+               if (smilContMgrHndle->smilContent == NULL) {
+                       D_EMSG("__msg_smil_content_mgr_create_mixed_message is failed");
+                       return MSG_ERR_SMIL_INVALID_STORAGE;
+               }
+       }
+       D_LEAVE;
+
+       return MSG_SMIL_SUCCESS;
+}
+
+
+
+static void __msg_smil_content_mgr_free_slide_list(SMIL_SLIDE_INFO_S *deleteSlide)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(deleteSlide == NULL, "deleteSlide is NULL");
+
+       if (deleteSlide->nextSlide == NULL) {   /*Single Slide message*/
+               D_MSG("Freeing smilContent if MMS has one page");
+               /*free commonData*/
+
+               if (deleteSlide->commonData != NULL) {
+                       free(deleteSlide->commonData);
+                       deleteSlide->commonData = NULL;
+               }
+               /*free page data*/
+               if (deleteSlide->pageInfo != NULL) {
+                       free(deleteSlide->pageInfo);
+                       deleteSlide->pageInfo = NULL;
+               }
+               free(deleteSlide);
+
+               return;
+       } else {        /*Multiple Slides message*/
+               SMIL_SLIDE_INFO_S *nextSlide = NULL;
+               while (deleteSlide->nextSlide != NULL) {
+                       D_MSG("Freeing smilContent: page = %d ", deleteSlide->pageIdx);
+                       nextSlide = deleteSlide->nextSlide;
+                       /*free commonData*/
+                       if (deleteSlide->pageIdx == 0) {
+                               if (deleteSlide->commonData != NULL) {
+                                       free(deleteSlide->commonData);
+                                       deleteSlide->commonData = NULL;
+                               }
+                       }
+
+                       if (deleteSlide->pageInfo != NULL) {
+                               free(deleteSlide->pageInfo);
+                               deleteSlide->pageInfo = NULL;
+                       }
+
+                       free(deleteSlide);
+
+                       deleteSlide = nextSlide;
+               }
+
+               /*free the last slide data*/
+               D_MSG("Freeing smilContent last page");
+               /*free page data*/
+               if (deleteSlide->pageInfo != NULL) {
+                       free(deleteSlide->pageInfo);
+                       deleteSlide->pageInfo = NULL;
+               }
+               free(deleteSlide);
+
+       }
+
+       D_LEAVE;
+}
+
+
+void _msg_smil_destroy_content_mgr(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(smilContMgrHndle == NULL, "smilContMgrHndle is NULL");
+       SMIL_SLIDE_INFO_S *deleteSlide = smilContMgrHndle->smilContent;
+
+       __msg_smil_content_mgr_free_slide_list(deleteSlide);
+       smilContMgrHndle->smilContent = NULL;
+
+       free(smilContMgrHndle);
+
+       D_LEAVE;
+}
+
+
+static MSG_BOOL __msg_smil_cont_mgr_is_valid_slide(SMIL_MASTER_SLIDE_INFO_S *commonData, int curSlideIdx)
+{
+       D_MSG_RETVM_IF(commonData == NULL, FALSE, "commonData is NULL");
+
+       if (commonData->pageCnt > 0) {  /*Multipart Related message*/
+               if (curSlideIdx > (commonData->pageCnt - 1) || curSlideIdx < 0)
+                       return  FALSE;
+       } else if (commonData->pageCnt == 0) {  /*Multipart Mixed message*/
+               if (curSlideIdx > (commonData->pageCnt) || curSlideIdx < 0)
+                       return  FALSE;
+       } else {
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+
+MSG_BOOL _msg_smil_cont_mgr_set_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx, SMIL_PLAYER_STATUS_E event)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, FALSE, "smilContMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle->smilContent == NULL, FALSE, "smilContMgrHndle->smilContent is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle->smilContent->commonData == NULL, FALSE, "smilContMgrHndle->smilContent->commanData is NULL");
+       SMIL_SLIDE_INFO_S *findSlide = smilContMgrHndle->smilContent;
+       int count = 0;
+
+       if (__msg_smil_cont_mgr_is_valid_slide(findSlide->commonData, slideIdx) == FALSE) {
+               D_EMSG("Slide index is invalid");
+               return FALSE;
+       }
+
+       while (count < slideIdx) {
+               findSlide = findSlide->nextSlide;
+               count++;
+       }
+       findSlide->slideStatus = event;
+
+       D_MSG("Slide number = %d", findSlide->pageIdx);
+       D_MSG("Slide Status = %d", findSlide->slideStatus);
+
+       return TRUE;
+}
+
+SMIL_PLAYER_STATUS_E _msg_smil_cont_mgr_get_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, PLAYER_STATUS_INVALID, "smilContMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle->smilContent == NULL, PLAYER_STATUS_INVALID, "smilContMgrHndle->smilContent is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle->smilContent->commonData == NULL, PLAYER_STATUS_INVALID, "smilContMgrHndle->smilContent->commanData is NULL");
+       SMIL_SLIDE_INFO_S *findSlide = smilContMgrHndle->smilContent;
+       int count = 0;
+
+       if (__msg_smil_cont_mgr_is_valid_slide(findSlide->commonData, slideIdx) == FALSE) {
+               D_EMSG("Slide index is invalid");
+               return PLAYER_STATUS_INVALID;
+       }
+
+       while (count < slideIdx) {
+               findSlide = findSlide->nextSlide;
+               count++;
+       }
+
+       return findSlide->slideStatus;
+}
+
+
+
+SMIL_PLAYER_STATUS_E _msg_smil_cont_mgr_get_cur_slide_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, PLAYER_STATUS_INVALID, "smilContMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle->smilContent == NULL, PLAYER_STATUS_INVALID, "smilContMgrHndle->smilContent is NULL");
+       SMIL_SLIDE_INFO_S *findSlide = smilContMgrHndle->smilContent;
+       int count = 0;
+
+       while (count < smilContMgrHndle->curSlideIdx) {
+               findSlide = findSlide->nextSlide;
+               count++;
+
+               if (findSlide == NULL) {
+                       D_EMSG("smilContMgrHndle->smilContent is NULL");
+                       return PLAYER_STATUS_INVALID;
+               }
+       }
+
+       return (findSlide->slideStatus);
+}
+
+
+int _msg_smil_cont_mgr_get_cur_slide_idx(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, MSG_MMS_SLIDE_INVALID, "smilContMgrHndle is NULL");
+
+       return smilContMgrHndle->curSlideIdx;
+}
+
+
+MSG_BOOL _msg_smil_cont_mgr_set_cur_slide_idx(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, FALSE, "smilContMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle->smilContent == NULL, FALSE, "smilContMgrHndle->smilContent is NULL");
+       SMIL_SLIDE_INFO_S *firstSlide = smilContMgrHndle->smilContent;
+
+       if (firstSlide->commonData) {
+               if (__msg_smil_cont_mgr_is_valid_slide(firstSlide->commonData, slideIdx) == FALSE) {
+                       D_EMSG("Slide index is invalid");
+                       return FALSE;
+               }
+
+               smilContMgrHndle->curSlideIdx = slideIdx;
+       } else {
+               D_EMSG("Slide index is invalid");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+
+int _msg_smil_cont_mgr_get_total_slide_count(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, MSG_MMS_SLIDE_INVALID, "smilContMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle->smilContent == NULL, MSG_MMS_SLIDE_INVALID, "smilContMgrHndle->smilContent is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle->smilContent->commonData == NULL, MSG_MMS_SLIDE_INVALID, "smilContMgrHndle->smilContent->commonData is NULL");
+
+       return smilContMgrHndle->smilContent->commonData->pageCnt;
+}
+
+
+SMIL_SLIDE_INFO_S *_msg_smil_cont_mgr_get_cur_slide(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, NULL, "smilContMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle->smilContent == NULL, NULL, "smilContMgrHndle->smilContent is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle->smilContent->commonData == NULL, NULL, "smilContMgrHndle->smilContent->commonData is NULL");
+       SMIL_SLIDE_INFO_S *findSlide = smilContMgrHndle->smilContent;
+       int pageCnt = findSlide->commonData->pageCnt;
+       int count = 0;
+
+       while (count < pageCnt) {
+               if (count == smilContMgrHndle->curSlideIdx) {
+                       return findSlide;
+               }
+               findSlide = findSlide->nextSlide;
+               count++;
+       }
+
+       /* Adjust Mixed type msg, first slide should be set as cur slide */
+       if (pageCnt == 0) {
+               msg_list_handle_t page_list_t = _msg_smil_cont_mgr_get_page_list_handle(smilContMgrHndle);
+               if (!page_list_t) {
+                       return findSlide;
+               }
+       }
+
+       return NULL;
+}
+
+
+SMIL_SLIDE_INFO_S *_msg_smil_cont_mgr_get_slide(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, NULL, "smilContMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle->smilContent == NULL, NULL, "smilContMgrHndle->smilContent is NULL");
+       SMIL_SLIDE_INFO_S *findSlide = smilContMgrHndle->smilContent;
+
+       if (findSlide->commonData) {
+               if (__msg_smil_cont_mgr_is_valid_slide(findSlide->commonData, slideIdx) == FALSE) {
+                       D_EMSG("Slide index should be in range 0 ~ %d, Current index is %d", findSlide->commonData->pageCnt-1, slideIdx);
+                       return NULL;
+               }
+
+               while (findSlide->pageIdx < slideIdx)   {
+                       findSlide = findSlide->nextSlide;
+                       if (findSlide == NULL)
+                               break;
+               }
+       }
+
+       return findSlide;
+}
+
+void _msg_smil_cont_mgr_set_cur_slide_help_page(SMIL_SLIDE_INFO_S *singleSlideInfo, MSG_BOOL bSet)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(singleSlideInfo == NULL, "singleSlideInfo is NULL");
+       D_MSG_RETM_IF(singleSlideInfo->pageInfo == NULL, "singleSlideInfo->pageInfo is NULL");
+
+       singleSlideInfo->pageInfo->isHelpPage = bSet;
+
+       if (bSet) {
+               D_MSG("Current page set as help page!");
+       } else  {
+               D_MSG("Current page set as normal page!");
+       }
+}
+
+MSG_BOOL _msg_smil_cont_mgr_is_cur_slide_help_page(SMIL_SLIDE_INFO_S *singleSlideInfo)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(singleSlideInfo == NULL, FALSE, "singleSlideInfo is NULL");
+       D_MSG_RETVM_IF(singleSlideInfo->pageInfo == NULL, FALSE, "singleSlideInfo->pageInfo is NULL");
+
+       D_MSG("The result of checking help page = %d", singleSlideInfo->pageInfo->isHelpPage);
+
+       return singleSlideInfo->pageInfo->isHelpPage;
+}
+
+MSG_BOOL _msg_smil_cont_mgr_delete_help_page(msg_struct_t msg_info_t, SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(msg_info_t == NULL, FALSE, "msg_info_t is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, FALSE, "smilContMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle->smilContent == NULL, FALSE, "smilContMgrHndle->smilContent is NULL");
+
+       MSG_BOOL isMixedMsg = FALSE;
+       msg_list_handle_t pagelist_info = NULL;
+       msg_struct_t    page_info = NULL;
+       msg_list_handle_t medialist_info = NULL;
+       msg_list_handle_t attachlist_info = NULL;
+       int pageCnt = 0;
+       int mediaCnt = 0;
+       int attachCnt = 0;
+
+       SMIL_SLIDE_INFO_S *curSlide = smilContMgrHndle->smilContent;
+
+       D_MSG_RETVM_IF(curSlide == NULL, FALSE, "curSlide is NULL");
+       D_MSG_RETVM_IF(curSlide->commonData == NULL, FALSE, "curSlide->commonData is NULL");
+       D_MSG_RETVM_IF(curSlide->pageInfo == NULL, FALSE, "curSlide->pageInfo is NULL");
+
+       /* get page list info */
+       msg_get_list_handle(msg_info_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
+       pageCnt = (msg_list_length(pagelist_info) > 0) ? msg_list_length(pagelist_info) : 0;
+
+       isMixedMsg = (pageCnt == 0) ? TRUE : FALSE;
+
+       if (isMixedMsg) {
+               /* change current slide page tag */
+               _msg_smil_cont_mgr_set_cur_slide_help_page(curSlide, FALSE);
+
+               /*set prev, next slide pointer*/
+               curSlide->prevSlide = NULL;
+               curSlide->nextSlide = NULL;
+       } else {        /* related msg */
+
+               msg_get_list_handle(msg_info_t, MSG_MMS_ATTACH_LIST_HND, (void **)&attachlist_info);
+               attachCnt = (msg_list_length(attachlist_info) > 0) ? msg_list_length(attachlist_info) : 0;
+
+               /* Check 1st page media info, media count */
+               page_info = _msg_smil_cont_mgr_get_nth_page_struct_handle(pagelist_info, 0);
+               medialist_info = _msg_smil_cont_mgr_get_page_media_list_handle(page_info);
+               mediaCnt = (msg_list_length(medialist_info) > 0) ? msg_list_length(medialist_info) : 0;
+
+               if (attachCnt > 0) {
+                       if (pageCnt == 1 && mediaCnt == 0) {    /* condition for skip and show Help page direct */
+                               /* change current slide page tag */
+                               _msg_smil_cont_mgr_set_cur_slide_help_page(curSlide, FALSE);
+
+                               /*set prev, next slide pointer*/
+                               curSlide->prevSlide = NULL;
+                               curSlide->nextSlide = NULL;
+                       } else {
+                               SMIL_SLIDE_INFO_S *firstSlide = NULL;   /*first slide */
+                               SMIL_SLIDE_INFO_S *lastSlide = NULL;    /*last slide pointer to ref for help page */
+                               SMIL_SLIDE_INFO_S *lastaheadSlide = NULL;       /*last ahead slide pointer */
+
+                               firstSlide = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, 0);
+                               if (firstSlide == NULL) {
+                                       D_EMSG("failed in getting firstSlide");
+                                       return FALSE;
+                               }
+                               lastSlide = firstSlide;         /* copy pointer to last slide */
+
+                               for (; lastSlide->nextSlide;)
+                                       lastSlide = lastSlide->nextSlide;
+
+                               lastaheadSlide = lastSlide->prevSlide;
+
+                               firstSlide->commonData->pageCnt -= 1;
+                               lastaheadSlide->nextSlide = NULL;
+
+                               if (lastSlide->pageInfo) {
+                                       free(lastSlide->pageInfo);
+                                       lastSlide->pageInfo = NULL;
+                               }
+
+                               free(lastSlide);
+                               lastSlide = NULL;
+                       }
+               }
+       }
+
+       return TRUE;
+}
+
+/*
+ *     functions for page/media struct handle with FW managed api
+ */
+msg_list_handle_t _msg_smil_cont_mgr_get_page_list_handle(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, NULL, "smilContMgrHndle is NULL");
+       msg_struct_t msg_info_t = _msg_smil_cont_mgr_get_mms_body_struct_handle(smilContMgrHndle);
+       D_MSG_RETVM_IF(msg_info_t == NULL, NULL, "msg_info_t is NULL");
+
+       int pageCnt = 0;
+
+       /*Get struct handle of current page */
+       msg_list_handle_t pagelist_info = NULL;
+       msg_get_list_handle(msg_info_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
+       pageCnt = (msg_list_length(pagelist_info) > 0) ? msg_list_length(pagelist_info) : 0;
+
+       D_MSG_RETVM_IF(pageCnt == 0, NULL, "pageCnt is 0");
+
+       return pagelist_info;
+}
+
+msg_struct_t _msg_smil_cont_mgr_get_nth_page_struct_handle(msg_list_handle_t pagelist_info_t, int pageIdx)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(pagelist_info_t == NULL, NULL, "pagelist_info_t is NULL");
+
+       int pageCnt = (msg_list_length(pagelist_info_t) > 0) ? msg_list_length(pagelist_info_t) : 0;
+       D_MSG_RETVM_IF(pageCnt == 0, NULL, "page length is 0, no page is exist");
+
+       /*Get page*/
+       msg_struct_t page_info = NULL;
+       page_info = (msg_struct_t)msg_list_nth_data(pagelist_info_t, pageIdx);
+
+       return page_info;
+}
+
+int _msg_smil_cont_mgr_get_page_time_value(msg_struct_t pageInfo_t, int field)
+{
+       D_MSG_RETVM_IF(pageInfo_t == NULL, MSG_MMS_SLIDE_INVALID, "pageInfo_t is NULL");
+       int time = 0;
+
+       /*Get page nDur */
+       if (field == MSG_MMS_PAGE_PAGE_DURATION_INT) {
+               msg_get_int_value(pageInfo_t, MSG_MMS_PAGE_PAGE_DURATION_INT, &time);
+               D_MSG("page duration time = %d", time);
+       } else if (field == MSG_MMS_PAGE_BEGIN_TIME_INT) {
+               msg_get_int_value(pageInfo_t, MSG_MMS_PAGE_BEGIN_TIME_INT, &time);
+               D_MSG("page begin time = %d", time);
+       } else if (field == MSG_MMS_PAGE_END_TIME_INT) {
+               msg_get_int_value(pageInfo_t, MSG_MMS_PAGE_END_TIME_INT, &time);
+               D_MSG("page end time = %d", time);
+       } else if (field == MSG_MMS_PAGE_MIN_INT) {
+               msg_get_int_value(pageInfo_t, MSG_MMS_PAGE_MIN_INT, &time);
+               D_MSG("page min time = %d", time);
+       } else if (field == MSG_MMS_PAGE_MAX_INT) {
+               msg_get_int_value(pageInfo_t, MSG_MMS_PAGE_MAX_INT, &time);
+               D_MSG("page max time = %d", time);
+       } else if (field == MSG_MMS_PAGE_REPEAT_INT) {
+               msg_get_int_value(pageInfo_t, MSG_MMS_PAGE_REPEAT_INT, &time);
+               D_MSG("page repeat time = %d", time);
+       }
+
+       return time;
+}
+
+msg_list_handle_t _msg_smil_cont_mgr_get_page_media_list_handle(msg_struct_t pageInfo_t)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(pageInfo_t == NULL, NULL, "pageInfo_t is NULL");
+
+       int mediaCnt = 0;
+       /*Get media list handler */
+       msg_list_handle_t medialist_info = NULL;
+       msg_get_list_handle(pageInfo_t, MSG_MMS_PAGE_MEDIA_LIST_HND, (void **)&medialist_info);
+       mediaCnt = (msg_list_length(medialist_info) > 0) ? msg_list_length(medialist_info) : 0;
+
+       if (mediaCnt == 0) {
+               D_EMSG("media count is 0, no medias in page");
+               return NULL;
+       }
+
+       return medialist_info;
+}
+
+msg_struct_t _msg_smil_cont_mgr_get_page_nth_media_struct_handle(msg_list_handle_t medialist_info_t, int mediaIdx)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(medialist_info_t == NULL, NULL, "medialist_info_t is NULL");
+
+       int mediaCnt = (msg_list_length(medialist_info_t) > 0) ? msg_list_length(medialist_info_t) : 0;
+       D_MSG_RETVM_IF(mediaCnt == 0, NULL, "media count is 0, no medias in page");
+
+       /*Get media*/
+       msg_struct_t media_info = NULL;
+       media_info = (msg_struct_t)msg_list_nth_data(medialist_info_t, mediaIdx);
+
+       return media_info;
+}
+
+void _msg_smil_cont_mgr_get_media_str_value(msg_struct_t media_info_t, int strfield, char *rtnStr)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(media_info_t == NULL, "media_info_t is NULL");
+
+       if (strfield == MSG_MMS_MEDIA_TYPE_INT ||
+               strfield == MSG_MMS_MEDIA_SMIL_TEXT_HND ||
+               strfield == MSG_MMS_MEDIA_SMIL_AVI_HND) {
+               D_MSG("field value(%d) is not STRING type", strfield);
+               return;
+       }
+
+       char strbuf[2048] = {0,};
+
+       if (strfield == MSG_MMS_MEDIA_SRC_STR)
+               msg_get_str_value(media_info_t, MSG_MMS_MEDIA_SRC_STR, strbuf, sizeof(strbuf));
+       else if (strfield == MSG_MMS_MEDIA_FILENAME_STR)
+               msg_get_str_value(media_info_t, MSG_MMS_MEDIA_FILENAME_STR, strbuf, sizeof(strbuf));
+       else if (strfield == MSG_MMS_MEDIA_FILEPATH_STR)
+               msg_get_str_value(media_info_t, MSG_MMS_MEDIA_FILEPATH_STR, strbuf, sizeof(strbuf));
+       else if (strfield == MSG_MMS_MEDIA_CONTENT_ID_STR)
+               msg_get_str_value(media_info_t, MSG_MMS_MEDIA_CONTENT_ID_STR, strbuf, sizeof(strbuf));
+       else if (strfield == MSG_MMS_MEDIA_REGION_ID_STR)
+               msg_get_str_value(media_info_t, MSG_MMS_MEDIA_REGION_ID_STR, strbuf, sizeof(strbuf));
+       else if (strfield == MSG_MMS_MEDIA_ALTERNATIVE_STR)
+               msg_get_str_value(media_info_t, MSG_MMS_MEDIA_ALTERNATIVE_STR, strbuf, sizeof(strbuf));
+       else if (strfield == MSG_MMS_MEDIA_DRM_FULLPATH_STR)
+               msg_get_str_value(media_info_t, MSG_MMS_MEDIA_DRM_FULLPATH_STR, strbuf, sizeof(strbuf));
+
+       D_SEC_MSG("STRING field value(%d) is %s", strfield, strbuf);
+       strncpy(rtnStr, strbuf, strlen(strbuf));
+}
+
+void _msg_smil_cont_mgr_get_media_int_value(msg_struct_t media_info_t, int intfield, int *rtnVal)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(media_info_t == NULL, "media_info_t is NULL");
+
+       if (intfield != MSG_MMS_MEDIA_TYPE_INT) {
+               D_MSG("field value(%d) is not INT type", intfield);
+               return;
+       }
+
+       if (intfield == MSG_MMS_MEDIA_TYPE_INT)
+               msg_get_int_value(media_info_t, MSG_MMS_MEDIA_TYPE_INT, rtnVal);
+
+       D_MSG("field value(%d) is %d", intfield, *rtnVal);
+}
+
+msg_struct_t   _msg_smil_cont_mgr_get_mms_body_struct_handle(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, NULL, "smilContMgrHandle is NULL");
+       return smilContMgrHndle->msg_info_t;
+}
+
+MSG_BOOL _msg_smil_cont_mgr_get_slide_time(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx, MSG_BOOL bExcludeHp, double *time)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, FALSE, "smilContMgrHandle is NULL");
+       D_MSG_RETVM_IF(smilContMgrHndle->smilContent == NULL, FALSE, "smilContMgrHandle->smilContent is NULL");
+
+       SMIL_SLIDE_INFO_S *curSlide = NULL;
+       double total_time = 0;
+       char szFilePath[MSG_FILEPATH_LEN_MAX] = {0,};
+       msg_list_handle_t page_list_info = NULL;
+       msg_struct_t page_info = NULL;
+
+       int curslide_idx = slideIdx;
+
+       if ((curSlide = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, curslide_idx)) == NULL) {
+               D_EMSG("Current msg is Multipart related msg, but there's no page with given index [%d]!", curslide_idx);
+               return FALSE;
+       }
+
+       D_MSG_RETVM_IF(curSlide->commonData == NULL, FALSE, "curSlide->commonData is NULL");
+       D_MSG_RETVM_IF(curSlide->pageInfo == NULL, FALSE, "curSlide->pageInfo is NULL");
+
+       if (curSlide->commonData->pageCnt == 0) {
+               if (curslide_idx != 0) {
+                       D_EMSG("Mixed msg cannot have 1 more page!");
+                       return FALSE;
+               }
+               total_time = (double)MSG_MMS_SMIL_HELP_PAGE_DURATION;
+       } else {
+               while (curslide_idx < curSlide->commonData->pageCnt) {
+                       double pagetime = 0.0;
+                       char *value = NULL;
+                       int duration = 0;
+                       double maximum_time = 0.0;
+
+                       curSlide = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, curslide_idx);
+
+                       if (curSlide == NULL || curSlide->pageInfo == NULL) {
+                               D_EMSG("curSlide is NULL or pageInfo in curSlide is NULL!");
+                               return FALSE;
+                       }
+
+                       if (bExcludeHp && curSlide->pageInfo->isHelpPage) {
+                               if (curslide_idx == 0 && curSlide->commonData->pageCnt == 1) {
+                                       D_MSG("Total page count = 1, And if there's only 1 help page, set default time for duration.");
+                                       total_time = (double)MSG_MMS_SMIL_HELP_PAGE_DURATION;
+                                       break;
+                               } else {
+                                       D_MSG("current page(%d) is Help page and bExcludeHp flag is %d, skip calculating this page", curSlide->pageIdx, bExcludeHp);
+                                       curslide_idx++;
+                                       continue;
+                               }
+                       }
+                       /* set pagetime as duration time */
+                       pagetime = (double)(curSlide->pageInfo->pageDuration);
+
+                       /* get media time value for pagetime is not valid */
+                       if (pagetime < 0) {
+                               /* Get Media List. */
+                               page_list_info = _msg_smil_cont_mgr_get_page_list_handle(smilContMgrHndle);
+                               if (page_list_info)
+                                       page_info = _msg_smil_cont_mgr_get_nth_page_struct_handle(page_list_info, curSlide->pageIdx);
+
+                               if (page_info && curSlide->pageInfo->mediaCnt > 0) {
+                                       int index = 0;
+                                       int mediaCnt = 0;
+                                       msg_list_handle_t media_list_info = _msg_smil_cont_mgr_get_page_media_list_handle(page_info);
+                                       mediaCnt = (msg_list_length(media_list_info) > 0) ? msg_list_length(media_list_info) : 0;
+
+                                       while (index < mediaCnt) {
+                                               int mediaType = 0;
+                                               int drmType = 0;
+                                               msg_struct_t media_info = _msg_smil_cont_mgr_get_page_nth_media_struct_handle(media_list_info, index);
+
+                                               if (media_info == NULL) {
+                                                       D_EMSG("media_info is Null");
+                                                       return FALSE;
+                                               }
+
+                                               bzero(szFilePath, sizeof(szFilePath));
+                                               _msg_smil_cont_mgr_get_media_str_value(media_info, MSG_MMS_MEDIA_FILEPATH_STR, szFilePath);
+                                               _msg_smil_cont_mgr_get_media_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
+                                               _msg_smil_cont_mgr_get_media_int_value(media_info, MSG_MMS_MEDIA_DRM_TYPE_INT, &drmType);
+
+                                               if (mediaType == MMS_SMIL_MEDIA_VIDEO ||
+                                                       mediaType == MMS_SMIL_MEDIA_AUDIO ||
+                                                       mediaType == MMS_SMIL_MEDIA_IMG_OR_VIDEO) {
+                                                       bool is_available_play = FALSE;
+
+                                                       D_MSG("mediaType = %d, drmType = %d", mediaType, drmType);
+
+                                                       is_available_play = TRUE;
+
+                                                       if (is_available_play) {
+                                                               int ret = 0;
+                                                               metadata_extractor_h handle = NULL;
+                                                               ret = metadata_extractor_create(&handle);
+
+                                                               if (ret == METADATA_EXTRACTOR_ERROR_NONE) {
+                                                                       D_MSG("tempMedia->szFilePath is %s", szFilePath);
+                                                                       ret = metadata_extractor_set_path(handle, szFilePath);
+                                                                       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+                                                                               D_EMSG("metadata_extractor_set_path is failed, %d", ret);
+                                                                               metadata_extractor_destroy(handle);
+                                                                               return FALSE;
+                                                                       }
+
+                                                                       ret = metadata_extractor_get_metadata(handle, METADATA_DURATION, &value);
+
+                                                                       if (ret == METADATA_EXTRACTOR_ERROR_NONE) {
+                                                                               if (value) {
+                                                                                       duration = atoi(value);
+                                                                                       free(value);
+                                                                               }
+                                                                       } else {
+                                                                               D_MSG("metadata_extractor_get_metadata is failed - ret(%x)", ret);
+                                                                               metadata_extractor_destroy(handle);
+                                                                               return FALSE;
+                                                                       }
+
+                                                                       D_MSG("file : %s, duration : %f", szFilePath, (double)duration);
+
+                                                                       metadata_extractor_destroy(handle);
+                                                               } else {
+                                                                       D_MSG("metadata_extractor_create is failed - ret(%x)", ret);
+                                                               }
+                                                       }
+
+                                                       /* ceiling duration time */
+                                                       double ceilvalue = ceil((double)duration/1000)*1000;
+                                                       if (maximum_time <= ceilvalue)
+                                                               maximum_time = ceilvalue;
+                                               }
+
+                                               index++;
+                                       }
+                               }
+
+                               pagetime = maximum_time;
+                       }
+
+                       total_time += pagetime;
+
+                       curslide_idx++;
+               }
+       }
+
+       *time = total_time;
+
+       D_MSG("Remain slide time for %dpage ~ %dpage is %f(ms)", slideIdx+1, curSlide->commonData->pageCnt, *time);
+
+       return TRUE;
+}
diff --git a/viewer/smil-player/src/msg-smil-event-manager.c b/viewer/smil-player/src/msg-smil-event-manager.c
new file mode 100755 (executable)
index 0000000..b15e4cc
--- /dev/null
@@ -0,0 +1,1583 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-smil-event-manager.h"
+#include "msg-smil-content-manager.h"
+#include "msg-smil-player.h"
+#include "msg-smil-util.h"
+
+/*For Multimedia element duration calculation.*/
+#include "mm_file.h"
+#include <mm_player.h>
+#include <mm_error.h>
+
+/*==================================================================================================
+ *                                                                             DEFINITIONS
+ *==================================================================================================*/
+#define MSG_MMS_SMIL_TIMER_DEFAULT_DUR 5000
+#define MSG_MMS_SMIL_TIMER_DUR_INDEFINITE      -1
+#define MSG_MMS_SMIL_TIMER_DEFAULT_BEGIN       0
+#define MSG_MMS_SMIL_MEDIA_DEFAULT_VALUE       (0.0)
+/*==================================================================================================
+ *                                                             FUNCTION DECLARATIONS
+ *==================================================================================================*/
+/*
+*@fn                   __msg_smil_event_mgr_fill_media_time_data(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_TIMER_CALLBACK_DATA_S *callbackData);
+*@brief                        Fill the Media elements timer related data for UI usage and return the timer duration required for timer registry.
+*@return                       timerDuration value. Zero if no timer value.
+*@param[in]            smilEvntMgrHndle        This is the handler to the SMILEvent Manager.
+*@param[in]            callbackData
+*/
+static double __msg_smil_event_mgr_fill_media_time_data(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_TIMER_CALLBACK_DATA_S *callbackData);
+
+/*
+*@fn                   __msg_smil_event_mgr_set_media_time_info(SMIL_TIMER_CALLBACK_DATA_S *callbackData);
+*@brief                        set Media timer related data and create and sort the data.
+*@param[in]            callbackData
+*/
+static void __msg_smil_event_mgr_set_media_time_info(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_TIMER_CALLBACK_DATA_S *callbackData);
+
+/*
+*@fn                   __msg_smil_event_mgr_set_page_time(SMIL_SLIDE_INFO_S *pageData);
+*@brief                        set page time info(begin, dur, end) of MMS_PAGE_S
+*@param[in]            smilEvntMgrHndle        This is the handler to the SMILEvent Manager.
+*@param[in]            pageData        page time info. of MMS_PAGE_S will be set
+*/
+static void __msg_smil_event_mgr_set_page_time(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_SLIDE_INFO_S *pageData);
+
+/*
+*@fn                   __msg_smil_event_mgr_check_media_type(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_TIMER_CALLBACK_DATA_S *callbackData);
+*@brief                        check specific media type(video or invalid type)
+*@param[out]   callbackData    video or invalid type will be set if there is the media
+*/
+static void __msg_smil_event_mgr_check_media_type(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_TIMER_CALLBACK_DATA_S *callbackData);
+
+/*
+*@fn                   __msg_smil_event_mgr_change_media_time(msg_struct_t media_info, MmsSmilMediaType mediaType);
+*@brief                        Change media time(begin, dur, end) to process invalid receiving media time datas
+*@param[in]            mediaType       media type info.
+*@param[out]   mediaList       changed media time will be set
+*/
+static void __msg_smil_event_mgr_change_media_time(msg_struct_t media_info, MmsSmilMediaType mediaType);
+
+/*
+*@fn                   __msg_smil_event_mgr_register_timer(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, void *cb, double duration);
+*@brief                        Register call timer
+*@return                       MSG_SUCCESS on success , else failure return code
+*@param[in]            smilEvntMgrHndle        This is the handler to the SMILEvent Manager.
+*@param[in]            cb      Timer callback function
+*@param[in]            duration        Timer duration
+*@param[out]   callbackData.
+*/
+static MSG_SMIL_ERROR_E __msg_smil_event_mgr_register_timer(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, void *cb, double duration);
+
+static MSG_BOOL __msg_smil_event_mgr_set_client_cb_page_idx(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, int slideIdx);
+static MSG_BOOL __msg_smil_event_mgr_set_client_cb_page_count(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, int pageCnt);
+
+
+/*================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+MSG_SMIL_ERROR_E _msg_smil_create_event_mgr(void *cb, void *data, SMIL_EVENT_MGR_HANDLE_S **smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHandle is NULL");
+       D_MSG_RETVM_IF(cb == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "cb is NULL");
+
+       /*allocate memory to handler*/
+       *smilEvntMgrHndle = (SMIL_EVENT_MGR_HANDLE_S *)calloc(1, sizeof(SMIL_EVENT_MGR_HANDLE_S));
+       if (*smilEvntMgrHndle == NULL) {
+               D_EMSG("calloc is failed");
+               return MSG_ERR_SMIL_INVALID_STORAGE;
+       }
+
+       (*smilEvntMgrHndle)->slideTimerCbData = (SMIL_TIMER_CALLBACK_DATA_S *)calloc(1, sizeof(SMIL_TIMER_CALLBACK_DATA_S));
+       if ((*smilEvntMgrHndle)->slideTimerCbData == NULL) {
+               D_EMSG("calloc is failed");
+               if (*smilEvntMgrHndle != NULL) {
+                       free(*smilEvntMgrHndle);
+                       *smilEvntMgrHndle = NULL;
+               }
+               return MSG_ERR_SMIL_INVALID_STORAGE;
+       }
+
+       (*smilEvntMgrHndle)->slideTimerCbData->appSmilCb = (pfnSMILPlayerCb)cb;
+       (*smilEvntMgrHndle)->slideTimerCbData->appUserData = data;
+       (*smilEvntMgrHndle)->slideTimerCbData->curSlideParam = (SMIL_SLIDE_EVENT_PARAM_S *)calloc(1, sizeof(SMIL_SLIDE_EVENT_PARAM_S));
+       if ((*smilEvntMgrHndle)->slideTimerCbData->curSlideParam == NULL) {
+               D_EMSG("calloc is failed");
+               if ((*smilEvntMgrHndle)->slideTimerCbData != NULL) {
+                       free((*smilEvntMgrHndle)->slideTimerCbData);
+                       (*smilEvntMgrHndle)->slideTimerCbData = NULL;
+               }
+
+               if (*smilEvntMgrHndle != NULL) {
+                       free(*smilEvntMgrHndle);
+                       *smilEvntMgrHndle = NULL;
+               }
+               return MSG_ERR_SMIL_INVALID_STORAGE;
+       }
+
+       D_LEAVE;
+       return MSG_SMIL_SUCCESS;
+}
+
+
+void _msg_smil_destroy_event_mgr(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(smilEvntMgrHndle == NULL, "smilEvntMgrHandle is NULL");
+
+       if (smilEvntMgrHndle->slideTimerCbData != NULL) {
+               if (smilEvntMgrHndle->slideTimerCbData->timerHandle != NULL) {
+                       void *timerRet = ecore_timer_del(smilEvntMgrHndle->slideTimerCbData->timerHandle);
+                       if (timerRet == NULL) {
+                               D_EMSG("Timer Registry Failed");
+                       }
+               }
+
+               if (smilEvntMgrHndle->slideTimerCbData->curSlideParam != NULL) {
+                       free(smilEvntMgrHndle->slideTimerCbData->curSlideParam);
+                       smilEvntMgrHndle->slideTimerCbData->curSlideParam = NULL;
+               }
+
+               free(smilEvntMgrHndle->slideTimerCbData);
+               smilEvntMgrHndle->slideTimerCbData = NULL;
+       } else {
+               D_EMSG("smilEvntMgrHndle->slideTimerCbData is NULL");
+       }
+
+       free(smilEvntMgrHndle);
+
+       D_LEAVE;
+}
+
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_ready(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, MSG_ERR_SMIL_INVALID_SLIDE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->smilhandle == NULL, MSG_ERR_SMIL_INVALID_SLIDE, "smilEvntMgrHndle->smilhandle is NULL");
+
+       double timerDuration = 0;
+       SMIL_TIMER_CALLBACK_DATA_S *slideTimerCbData = smilEvntMgrHndle->slideTimerCbData;
+       SMIL_SLIDE_INFO_S *singleSlideInfo = NULL;
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, MSG_ERR_SMIL_INVALID_SLIDE, "smilContMgrHndle is NULL");
+
+       /*fetching the slide data for the first slide*/
+       D_MSG("Getting Slide info from content mgr");
+       singleSlideInfo = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, 0);
+       if (singleSlideInfo == NULL) {
+               D_EMSG("Slide info fetch failed.");
+               return MSG_ERR_SMIL_INVALID_SLIDE;
+       }
+       _msg_smil_event_mgr_set_current_slide(smilEvntMgrHndle, singleSlideInfo);
+
+       if (_msg_smil_cont_mgr_set_cur_slide_idx(smilContMgrHndle, 0) == FALSE)
+               D_EMSG("_msg_smil_cont_mgr_set_cur_slide_idx is failed");
+
+       int pageCnt = _msg_smil_cont_mgr_get_total_slide_count(smilContMgrHndle);
+       __msg_smil_event_mgr_set_client_cb_page_idx(smilEvntMgrHndle, 0);
+       __msg_smil_event_mgr_set_client_cb_page_count(smilEvntMgrHndle, pageCnt);
+
+       /* READY event manage only actiontype for PLAY, (->)INTERNAL MEDIA, (->)END */
+       if (pageCnt > 0) {
+               while (1) {
+                       if (singleSlideInfo && singleSlideInfo->pageInfo) {
+                               int durTime = 0;
+                               int endTime = 0;
+                               SMIL_PLAYER_PAGE_EVENT_E actionTypeOnPage = _msg_smil_event_mgr_get_page_action_type(smilEvntMgrHndle);
+                               D_MSG("actionTypeOnPage = %d", slideTimerCbData->slideTimerInfo.actionTypeOnPage);
+                               switch (actionTypeOnPage) {
+                               case PAGE_EVENT_PLAY:
+                                       /* Check for validity of Page Timer Values and Assign Default Values if required */
+                                       __msg_smil_event_mgr_set_page_time(smilEvntMgrHndle, singleSlideInfo);
+                                       _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_PAGE_PLAY_START);
+
+                                       /* check current page is help page and skip internal media play */
+                                       if (_msg_smil_cont_mgr_is_cur_slide_help_page(singleSlideInfo)) {
+                                               /* set last page to play */
+                                               _msg_smil_event_mgr_set_last_slide(smilEvntMgrHndle, TRUE);
+                                               _msg_smil_event_mgr_set_last_slide_is_help_page(smilEvntMgrHndle, TRUE);
+                                               break;
+                                       }
+
+                                       _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_INTERNAL_MEDIA);
+                                       continue;
+                               case PAGE_EVENT_INTERNAL_MEDIA:
+                                       /*Populate and sort Media Timer Info into the slideTimerInfo Array*/
+                                       __msg_smil_event_mgr_set_media_time_info(smilEvntMgrHndle, slideTimerCbData);
+                                       _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_PAGE_MEDIA_PLAY_START);
+                                       /*Considering the fact that there can be less than three media, we need to perform a check for
+                                       *  if there is any media related information in the array for the sake of a boundary condition check.
+                                       *  Also we need to take the Begin and End time of the Page into consideration*/
+                                       _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_NONE);
+                                       __msg_smil_event_mgr_check_media_type(smilEvntMgrHndle, slideTimerCbData);
+                                       timerDuration = __msg_smil_event_mgr_fill_media_time_data(smilEvntMgrHndle, slideTimerCbData);
+                                       D_MSG("timerDuration =  %lf", timerDuration);
+
+                                       /*Get page handle - Do not null check, it is not needed from here*/
+                                       msg_list_handle_t pagelist_info = _msg_smil_cont_mgr_get_page_list_handle(smilContMgrHndle);
+                                       msg_struct_t page_info = _msg_smil_cont_mgr_get_nth_page_struct_handle(pagelist_info, singleSlideInfo->pageIdx);
+
+                                       durTime = _msg_smil_cont_mgr_get_page_time_value(page_info, MSG_MMS_PAGE_PAGE_DURATION_INT);
+                                       if (timerDuration == 0) {
+                                               /* If there is no media Handle - Show the blank slide for the duration of the slide and then move to the next slide if the page->nDur is Valid. */
+                                               if (durTime != MSG_MMS_SMIL_TIMER_DUR_INDEFINITE) {
+                                                       timerDuration = durTime;
+                                               } else {
+                                               /* if the  page->nDur is Invalid do no timer interacton and wait for user action.*/
+                                               }
+                                       }
+
+                                       /* Calculation of timerDuration basing on the End Time/Duration of the page - This case arises if there is no media or in case the end time of all media > the end time of the slide. */
+                                       endTime = _msg_smil_cont_mgr_get_page_time_value(page_info, MSG_MMS_PAGE_END_TIME_INT);
+                                       if (endTime > 0) {
+                                               if (timerDuration > durTime) {
+                                                       timerDuration = durTime;
+                                               }
+                                       }
+
+                                       D_MSG("timerDuration =  %lf", timerDuration);
+
+                                       /* check timerDuration again and set DEFAULT value if it is still 0 */
+                                       if (timerDuration == 0) {
+                                               timerDuration = 5000;
+                                       }
+
+                                       if (singleSlideInfo->nextSlide == NULL)/* If the current slide is the last slide */
+                                               _msg_smil_event_mgr_set_last_slide(smilEvntMgrHndle, TRUE);
+
+                                       _msg_smil_event_mgr_set_slide_time(smilEvntMgrHndle, timerDuration);
+                                       _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_END);
+                                       break;
+                               case PAGE_EVENT_END:
+                                       break;
+                               default:
+                                       break;
+                               }
+                       } else {
+                               D_EMSG("slide page is NULL");
+                       }
+                       break;
+               }
+       } else {
+               /*invalide message without page info or multipart.mixed message*/
+               _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_PAGE_PLAY_START);
+               _msg_smil_event_mgr_set_last_slide(smilEvntMgrHndle, TRUE);
+               _msg_smil_event_mgr_set_last_slide_is_help_page(smilEvntMgrHndle, TRUE);
+       }
+
+       if (slideTimerCbData->slideTimerInfo.actionTypeOnPage != PAGE_EVENT_NONE) {
+               MSG_SMIL_ERROR_E err = MSG_ERR_SMIL_UNKNOWN;
+               int slideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle);
+
+               _msg_smil_cont_mgr_set_status(smilContMgrHndle, slideIdx, PLAYER_STATUS_PLAYING);
+
+               /*calling renderhandler to draw content*/
+               SMIL_RENDERER_DATA_S *smilRenderer = _msg_smil_get_renderder(smilEvntMgrHndle->smilhandle);
+               if (smilRenderer) {
+                       err = _msg_smil_render_on_slide_render_handler(smilRenderer, slideTimerCbData->curSlideParam);
+                       if (err != MSG_SMIL_SUCCESS) {
+                               D_EMSG("_msg_smil_render_on_slide_render_handler failed err = %d", err);
+                       }
+               } else {
+                       D_EMSG("smilRenderer is NULL");
+               }
+
+               SMIL_SLIDE_INFO_S *curSlideInfo = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, slideIdx);
+               if (curSlideInfo == NULL) {
+                       D_EMSG("Slide info fetch failed.");
+                       return MSG_ERR_SMIL_INVALID_SLIDE;
+               }
+
+               if (curSlideInfo->slideStatus == PLAYER_STATUS_PAUSED)
+                       _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_MOVE_PAGE_AFTER_PAUSED);
+
+       } else {
+               D_EMSG("Page event is error actionTypeOnPage = %d", slideTimerCbData->slideTimerInfo.actionTypeOnPage);
+       }
+
+       D_LEAVE;
+
+       return MSG_SMIL_SUCCESS;
+}
+
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_start(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       SMIL_TIMER_CALLBACK_DATA_S *slideTimerCbData = smilEvntMgrHndle->slideTimerCbData;
+
+       D_MSG_RETVM_IF(smilEvntMgrHndle->smilhandle == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle->smilhandle is NULL");
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, EINA_FALSE, "smilContMgrHndle is NULL");
+
+       int slideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle);
+
+       /*Calling the callback function of Client.*/
+       D_MSG("Calling the Client callback");
+       D_MSG("Current Slide Idx = %d", slideIdx);
+       D_MSG("RENDEREVENT = %d", slideTimerCbData->curSlideParam->renderEvent);
+
+       MSG_SMIL_ERROR_E err = MSG_ERR_SMIL_UNKNOWN;
+
+       err = slideTimerCbData->appSmilCb(&(slideTimerCbData->curSlideParam->clientCbParam), slideTimerCbData->appUserData);
+       _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_NONE);
+
+       if (err != MSG_SMIL_SUCCESS) {
+               D_EMSG("Client CB failed with error = %d", err);
+               _msg_smil_cont_mgr_set_status(smilContMgrHndle, slideIdx, PLAYER_STATUS_NONE);
+               return err;
+       }
+
+       double timerDuration = _msg_smil_event_mgr_get_slide_time(smilEvntMgrHndle);
+
+       /*Timer Registration -- needed for Multipart Related MMS only.*/
+       MSG_BOOL is_video_media = _msg_smil_event_mgr_get_is_video_media(smilEvntMgrHndle);
+       MSG_BOOL binvalid_ro = _msg_smil_event_mgr_get_invalid_video_ro(smilEvntMgrHndle);
+       D_MSG("binvalid_ro = %d", binvalid_ro);
+       D_MSG("isVideoMedia = %d", is_video_media);
+       D_MSG("timerDuration = %lf", timerDuration);
+
+       /* for UI progressbar. ceiling duration time to second */
+       double ceiled_duration = ceil(timerDuration/1000)*1000;
+       D_MSG("ceiling timerDuration = %lf", ceiled_duration);
+
+       if (is_video_media) {   /*video*/
+               SMIL_RENDERER_DATA_S *smilRenderer = _msg_smil_get_renderder(smilEvntMgrHndle->smilhandle);
+               if (!smilRenderer || !_msg_smil_render_get_status(smilRenderer)) {
+                       D_MSG("create timer for invalid case of video content or etc");
+                       if ((err = __msg_smil_event_mgr_register_timer(smilEvntMgrHndle, _msg_smil_event_mgr_slide_timer_cb, ceiled_duration)) != MSG_SMIL_SUCCESS) {
+                               D_EMSG("__msg_smil_event_mgr_register_timer Failed err = %d", err);
+                               return err;
+                       }
+               } else if (binvalid_ro == TRUE) {       /*video is an invalid ro drm content*/
+                       D_MSG("create timer for invalid ro drm video content");
+                       double time_dur = _msg_smil_event_mgr_get_slide_time(smilEvntMgrHndle);
+                       double ceiled_duration = ceil(time_dur/1000)*1000;
+                       if ((err = __msg_smil_event_mgr_register_timer(smilEvntMgrHndle, _msg_smil_event_mgr_slide_timer_cb, ceiled_duration)) != MSG_SMIL_SUCCESS) {
+                               D_EMSG("__msg_smil_event_mgr_register_timer Failed err = %d", err);
+                               return err;
+                       }
+               } else {        /* valid ro video file. now we insure page duration for at least video duration */
+                       double remain_current_slide = 0.0;
+                       double remain_next_Slide = 0.0;
+                       double current_slide_time = 0.0;
+                       if (_msg_smil_cont_mgr_get_slide_time(smilContMgrHndle, slideIdx, FALSE, &remain_current_slide)) {
+                               if (_msg_smil_cont_mgr_get_slide_time(smilContMgrHndle, slideIdx+1, FALSE, &remain_next_Slide))
+                                       current_slide_time = remain_current_slide - remain_next_Slide;
+                               else
+                                       current_slide_time = remain_current_slide;
+                       }
+                       D_MSG("current slide(include video) time is %f", current_slide_time);
+
+                       double duration_time = (current_slide_time >= ceiled_duration) ? current_slide_time : ceiled_duration;
+
+                       if ((err = __msg_smil_event_mgr_register_timer(smilEvntMgrHndle, _msg_smil_event_mgr_slide_timer_cb, duration_time)) != MSG_SMIL_SUCCESS) {
+                               D_EMSG("__msg_smil_event_mgr_register_timer Failed err = %d", err);
+                               return err;
+                       }
+               }
+       } else if (timerDuration > 0) {
+               D_MSG("create timer for normal case");
+               if ((err = __msg_smil_event_mgr_register_timer(smilEvntMgrHndle, _msg_smil_event_mgr_slide_timer_cb, ceiled_duration)) != MSG_SMIL_SUCCESS) {
+                       D_EMSG("__msg_smil_event_mgr_register_timer Failed err = %d", err);
+                       return err;
+               }
+       } else {
+               D_MSG("timer is not created. PLAYSLIDEEVENT : timerDuration = %lf", timerDuration);
+
+               _msg_smil_event_mgr_set_last_slide(smilEvntMgrHndle, TRUE);
+               _msg_smil_event_mgr_set_last_slide_is_help_page(smilEvntMgrHndle, TRUE);
+               if (_msg_smil_event_mgr_get_last_slide(smilEvntMgrHndle) && _msg_smil_event_mgr_get_last_slide_is_help_page(smilEvntMgrHndle)) {        /*for invalid page info message or multipart.mixed message*/
+                       _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_END);
+                       timerDuration = MSG_MMS_SMIL_TIMER_DEFAULT_DUR;
+                       if ((err = __msg_smil_event_mgr_register_timer(smilEvntMgrHndle, _msg_smil_event_mgr_slide_timer_cb, timerDuration)) != MSG_SMIL_SUCCESS) {
+                               D_EMSG("__msg_smil_event_mgr_register_timer Failed err = %d", err);
+                               return err;
+                       }
+               } else if (_msg_smil_event_mgr_get_unsupported_content(smilEvntMgrHndle)) {     /*if unsupported content has no duration time*/
+                       timerDuration = MSG_MMS_SMIL_TIMER_DEFAULT_DUR;
+                       if ((err = __msg_smil_event_mgr_register_timer(smilEvntMgrHndle, _msg_smil_event_mgr_slide_timer_cb, timerDuration)) != MSG_SMIL_SUCCESS) {
+                               D_EMSG("__msg_smil_event_mgr_register_timer Failed err = %d", err);
+                               return err;
+                       }
+               } else {
+                       D_MSG("timer is not registerd actionTypeOnPage = %d", slideTimerCbData->slideTimerInfo.actionTypeOnPage);
+               }
+       }
+
+       return err;
+}
+
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_play_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, int curSlideIdx)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, MSG_ERR_SMIL_INVALID_SLIDE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->smilhandle == NULL, MSG_ERR_SMIL_INVALID_SLIDE, "smilEvntMgrHndle->smilhandle is NULL");
+
+       double timerDuration = 0;
+       SMIL_TIMER_CALLBACK_DATA_S *slideTimerCbData = smilEvntMgrHndle->slideTimerCbData;
+       SMIL_SLIDE_INFO_S *singleSlideInfo = _msg_smil_event_mgr_get_current_slide(smilEvntMgrHndle);
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, MSG_ERR_SMIL_INVALID_SLIDE, "smilContMgrHndle is NULL");
+       SMIL_PLAYER_STATUS_E prev_slide_status = PLAYER_STATUS_NONE;
+
+       if (curSlideIdx < 0) {
+               D_EMSG("Invalid slide index = %d", curSlideIdx);
+               return MSG_ERR_SMIL_INVALID_SLIDE;
+       }
+
+       /*fetching the slide data for the first slide*/
+       if (singleSlideInfo == NULL) {
+               D_MSG("Getting Slide info from content mgr");
+               SMIL_SLIDE_INFO_S *slideInfo = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, curSlideIdx);
+               if (slideInfo == NULL) {
+                       D_EMSG("Slide info fetch failed.");
+                       return MSG_ERR_SMIL_INVALID_SLIDE;
+               }
+               _msg_smil_event_mgr_set_current_slide(smilEvntMgrHndle, slideInfo);
+               singleSlideInfo = _msg_smil_event_mgr_get_current_slide(smilEvntMgrHndle);
+       }
+
+       if (_msg_smil_cont_mgr_set_cur_slide_idx(smilContMgrHndle, curSlideIdx) == FALSE)
+               D_EMSG("_msg_smil_cont_mgr_set_cur_slide_idx is failed");
+
+       D_MSG("current slide idx = %d", _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle));
+
+       int pageCnt = _msg_smil_cont_mgr_get_total_slide_count(smilContMgrHndle);
+       __msg_smil_event_mgr_set_client_cb_page_idx(smilEvntMgrHndle, curSlideIdx);
+       __msg_smil_event_mgr_set_client_cb_page_count(smilEvntMgrHndle, pageCnt);
+
+/********CallBack for Timer is needed only for Multipart Related MMS -
+ *Currently implementing for Only Three Media types  as there are only two regions supported********/
+       if (pageCnt > 0) {
+               while (1) {
+                       if (singleSlideInfo && singleSlideInfo->pageInfo) {
+                               int durTime = 0;
+                               int endTime = 0;
+                               SMIL_PLAYER_PAGE_EVENT_E actionTypeOnPage = _msg_smil_event_mgr_get_page_action_type(smilEvntMgrHndle);
+                               D_MSG("actionTypeOnPage = %d", slideTimerCbData->slideTimerInfo.actionTypeOnPage);
+                               switch (actionTypeOnPage) {
+                               case PAGE_EVENT_PLAY:
+                                       /* Check for validity of Page Timer Values and Assign Default Values if required */
+                                       __msg_smil_event_mgr_set_page_time(smilEvntMgrHndle, singleSlideInfo);
+                                       _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_PAGE_PLAY_START);
+
+                                       /* check current page is help page and skip internal media play */
+                                       if (_msg_smil_cont_mgr_is_cur_slide_help_page(singleSlideInfo)) {
+                                               /* set last page to play */
+                                               _msg_smil_event_mgr_set_last_slide(smilEvntMgrHndle, TRUE);
+                                               _msg_smil_event_mgr_set_last_slide_is_help_page(smilEvntMgrHndle, TRUE);
+                                               break;
+                                       }
+
+                                       _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_INTERNAL_MEDIA);
+                                       continue;
+                               case PAGE_EVENT_INTERNAL_MEDIA:
+                                       /*Populate and sort Media Timer Info into the slideTimerInfo Array*/
+                                       __msg_smil_event_mgr_set_media_time_info(smilEvntMgrHndle, slideTimerCbData);
+                                       _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_PAGE_MEDIA_PLAY_START);
+                                       /*Considering the fact that there can be less than three media, we need to perform a check for
+                                       *  if there is any media related information in the array for the sake of a boundary condition check.
+                                       *  Also we need to take the Begin and End time of the Page into consideration*/
+                                       _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_NONE);
+                                       __msg_smil_event_mgr_check_media_type(smilEvntMgrHndle, slideTimerCbData);
+                                       timerDuration = __msg_smil_event_mgr_fill_media_time_data(smilEvntMgrHndle, slideTimerCbData);
+                                       D_MSG("timerDuration =  %lf", timerDuration);
+
+                                       /*Get page handle - Do not null check, it is not needed from here*/
+                                       msg_list_handle_t pagelist_info = _msg_smil_cont_mgr_get_page_list_handle(smilContMgrHndle);
+                                       msg_struct_t page_info = _msg_smil_cont_mgr_get_nth_page_struct_handle(pagelist_info, singleSlideInfo->pageIdx);
+
+                                       durTime = _msg_smil_cont_mgr_get_page_time_value(page_info, MSG_MMS_PAGE_PAGE_DURATION_INT);
+                                       if (timerDuration == 0) {
+                                               /* If there is no media Handle - Show the blank slide for the duration of the slide and then move to the next slide if the page->nDur is Valid. */
+                                               if (durTime != MSG_MMS_SMIL_TIMER_DUR_INDEFINITE) {
+                                                       timerDuration = durTime;
+                                               } else {
+                                               /* if the  page->nDur is Invalid do no timer interacton and wait for user action.*/
+                                               }
+                                       }
+
+                                       /* Calculation of timerDuration basing on the End Time/Duration of the page - This case arises if there is no media or in case the end time of all media > the end time of the slide. */
+                                       endTime = _msg_smil_cont_mgr_get_page_time_value(page_info, MSG_MMS_PAGE_END_TIME_INT);
+                                       if (endTime > 0) {
+                                               if (timerDuration > durTime) {
+                                                       timerDuration = durTime;
+                                               }
+                                       }
+
+                                       D_MSG("timerDuration =  %lf", timerDuration);
+
+                                       if (singleSlideInfo->nextSlide == NULL)/* If the current slide is the last slide */
+                                               _msg_smil_event_mgr_set_last_slide(smilEvntMgrHndle, TRUE);
+
+                                       _msg_smil_event_mgr_set_slide_time(smilEvntMgrHndle, timerDuration);
+                                       _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_END);
+                                       break;
+                               case PAGE_EVENT_END:
+                                       break;
+                               case PAGE_EVENT_MOVE_TO_NEXT:
+                                       D_MSG("PAGE_EVENT_MOVE_TO_NEXT");
+                                       if (singleSlideInfo->nextSlide != NULL) {
+                                               /* check previouts slide status */
+                                               int slideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle);
+                                               SMIL_SLIDE_INFO_S *prev_slideInfo = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, slideIdx-1);
+                                               if (prev_slideInfo) {
+                                                       D_MSG("Previous slide status : %d", prev_slideInfo->slideStatus);
+                                                       prev_slide_status = prev_slideInfo->slideStatus;
+                                               }
+
+                                               /* Move to next slide*/
+                                               _msg_smil_event_mgr_set_current_slide(smilEvntMgrHndle, singleSlideInfo->nextSlide);
+                                               _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_PLAY);
+                                               singleSlideInfo = _msg_smil_event_mgr_get_current_slide(smilEvntMgrHndle);
+                                               if (singleSlideInfo && singleSlideInfo->nextSlide == NULL)
+                                                       _msg_smil_event_mgr_set_last_slide(smilEvntMgrHndle, TRUE);
+                                       } else {
+                                               /* Last Slide*/
+                                               D_MSG("Last Slide - so do nothing");
+                                               _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_NONE);
+                                               break;
+                                       }
+                                       continue;
+                               case PAGE_EVENT_MOVE_TO_PREV:
+                                       if (singleSlideInfo->prevSlide != NULL) {
+                                               /* check previouts slide status */
+                                               int slideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle);
+                                               SMIL_SLIDE_INFO_S *prev_slideInfo = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, slideIdx+1);
+                                               if (prev_slideInfo) {
+                                                       D_MSG("Previous slide status : %d", prev_slideInfo->slideStatus);
+                                                       prev_slide_status = prev_slideInfo->slideStatus;
+                                               }
+
+                                               /* Move to prev slide*/
+                                               _msg_smil_event_mgr_set_current_slide(smilEvntMgrHndle, singleSlideInfo->prevSlide);
+                                               singleSlideInfo = _msg_smil_event_mgr_get_current_slide(smilEvntMgrHndle);
+                                               _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_PLAY);
+                                               _msg_smil_event_mgr_set_last_slide(smilEvntMgrHndle, FALSE);
+                                       } else {
+                                               /*First Slide*/
+                                               D_MSG("First Slide");
+                                               _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_NONE);
+                                               break;
+                                       }
+                                       continue;
+                               default:
+                                       break;
+                               }
+                       } else {
+                               D_EMSG("slide page is NULL");
+                       }
+                       break;
+               }
+       } else {
+               /*invalide message without page info or multipart.mixed message*/
+               _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_PAGE_PLAY_START);
+               _msg_smil_event_mgr_set_last_slide(smilEvntMgrHndle, TRUE);
+               _msg_smil_event_mgr_set_last_slide_is_help_page(smilEvntMgrHndle, TRUE);
+       }
+
+       if (slideTimerCbData->slideTimerInfo.actionTypeOnPage != PAGE_EVENT_NONE) {
+               MSG_SMIL_ERROR_E err = MSG_ERR_SMIL_UNKNOWN;
+               int slideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle);
+
+               if (prev_slide_status == PLAYER_STATUS_PAUSED_END)
+                       _msg_smil_cont_mgr_set_status(smilContMgrHndle, slideIdx, PLAYER_STATUS_PAUSED);
+               else
+                       _msg_smil_cont_mgr_set_status(smilContMgrHndle, slideIdx, PLAYER_STATUS_PLAYING);
+
+               /*calling renderhandler to draw content*/
+               SMIL_RENDERER_DATA_S *smilRenderer = _msg_smil_get_renderder(smilEvntMgrHndle->smilhandle);
+               if (smilRenderer) {
+                       err = _msg_smil_render_on_slide_render_handler(smilRenderer, slideTimerCbData->curSlideParam);
+                       if (err != MSG_SMIL_SUCCESS) {
+                               D_EMSG("_msg_smil_render_on_slide_render_handler failed err = %d", err);
+                       }
+               } else {
+                       D_EMSG("smilRenderer is NULL");
+               }
+
+               SMIL_SLIDE_INFO_S *curSlideInfo = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, slideIdx);
+
+               if (!curSlideInfo) {
+                       D_EMSG("_msg_smil_cont_mgr_get_slide is failed");
+                       return MSG_ERR_SMIL_INVALID_SLIDE;
+               }
+
+               if (curSlideInfo->slideStatus == PLAYER_STATUS_PAUSED)
+                       _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_MOVE_PAGE_AFTER_PAUSED);
+
+               /*Calling the callback function of Client.*/
+               D_MSG("Calling the Client callback");
+               D_MSG("RENDEREVENT = %d", slideTimerCbData->curSlideParam->renderEvent);
+               err = slideTimerCbData->appSmilCb(&(slideTimerCbData->curSlideParam->clientCbParam), slideTimerCbData->appUserData);
+               _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_NONE);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("Client CB failed with error = %d", err);
+                       _msg_smil_cont_mgr_set_status(smilContMgrHndle, slideIdx, PLAYER_STATUS_NONE);
+                       return MSG_ERR_SMIL_UI_DISPLAY_FAIURE;
+               }
+
+               /*Timer Registration -- needed for Multipart Related MMS only.*/
+               MSG_BOOL is_video_media = _msg_smil_event_mgr_get_is_video_media(smilEvntMgrHndle);
+               MSG_BOOL binvalid_ro = _msg_smil_event_mgr_get_invalid_video_ro(smilEvntMgrHndle);
+               D_MSG("binvalid_ro = %d", binvalid_ro);
+               D_MSG("isVideoMedia = %d", is_video_media);
+               D_MSG("timerDuration = %lf", timerDuration);
+
+               /* for UI progressbar. ceiling duration time to second */
+               double ceiled_duration = ceil(timerDuration/1000)*1000;
+               D_MSG("ceiling timerDuration = %lf", ceiled_duration);
+
+               if (is_video_media) {   /*video*/
+                       SMIL_RENDERER_DATA_S *smilRenderer = _msg_smil_get_renderder(smilEvntMgrHndle->smilhandle);
+                       if (!smilRenderer || !_msg_smil_render_get_status(smilRenderer)) {
+                               D_MSG("create timer for invalid case of video content or etc");
+                               if ((err = __msg_smil_event_mgr_register_timer(smilEvntMgrHndle, _msg_smil_event_mgr_slide_timer_cb, ceiled_duration)) != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("__msg_smil_event_mgr_register_timer Failed err = %d", err);
+                                       return err;
+                               }
+                       } else if (binvalid_ro == TRUE) {       /*video is an invalid ro drm content*/
+                               D_MSG("create timer for invalid ro drm video content");
+                               double time_dur = _msg_smil_event_mgr_get_slide_time(smilEvntMgrHndle);
+                               double ceiled_duration = ceil(time_dur/1000)*1000;
+                               if ((err = __msg_smil_event_mgr_register_timer(smilEvntMgrHndle, _msg_smil_event_mgr_slide_timer_cb, ceiled_duration)) != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("__msg_smil_event_mgr_register_timer Failed err = %d", err);
+                                       return err;
+                               }
+                       } else {        /* valid ro video file. now we insure page duration for at least video duration */
+                               double remain_current_slide = 0.0;
+                               double remain_next_Slide = 0.0;
+                               double current_slide_time = 0.0;
+                               if (_msg_smil_cont_mgr_get_slide_time(smilContMgrHndle, slideIdx, FALSE, &remain_current_slide)) {
+                                       if (_msg_smil_cont_mgr_get_slide_time(smilContMgrHndle, slideIdx+1, FALSE, &remain_next_Slide))
+                                               current_slide_time = remain_current_slide - remain_next_Slide;
+                                       else
+                                               current_slide_time = remain_current_slide;
+                               }
+                               D_MSG("current slide(include video) time is %f", current_slide_time);
+
+                               double duration_time = (current_slide_time >= ceiled_duration) ? current_slide_time : ceiled_duration;
+
+                               if ((err = __msg_smil_event_mgr_register_timer(smilEvntMgrHndle, _msg_smil_event_mgr_slide_timer_cb, duration_time)) != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("__msg_smil_event_mgr_register_timer Failed err = %d", err);
+                                       return err;
+                               }
+                       }
+               } else if (timerDuration > 0) {
+                       D_MSG("create timer for normal case");
+                       if ((err = __msg_smil_event_mgr_register_timer(smilEvntMgrHndle, _msg_smil_event_mgr_slide_timer_cb, ceiled_duration)) != MSG_SMIL_SUCCESS) {
+                               D_EMSG("__msg_smil_event_mgr_register_timer Failed err = %d", err);
+                               return err;
+                       }
+               } else {
+                       D_MSG("timer is not created. PLAYSLIDEEVENT : timerDuration = %lf", timerDuration);
+                       if (_msg_smil_event_mgr_get_last_slide(smilEvntMgrHndle) && _msg_smil_event_mgr_get_last_slide_is_help_page(smilEvntMgrHndle)) {        /*for invalid page info message or multipart.mixed message*/
+                               _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_END);
+                               timerDuration = MSG_MMS_SMIL_TIMER_DEFAULT_DUR;
+                               if ((err = __msg_smil_event_mgr_register_timer(smilEvntMgrHndle, _msg_smil_event_mgr_slide_timer_cb, timerDuration)) != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("__msg_smil_event_mgr_register_timer Failed err = %d", err);
+                                       return err;
+                               }
+                       } else if (_msg_smil_event_mgr_get_unsupported_content(smilEvntMgrHndle)) {     /*if unsupported content has no duration time*/
+                               timerDuration = MSG_MMS_SMIL_TIMER_DEFAULT_DUR;
+                               if ((err = __msg_smil_event_mgr_register_timer(smilEvntMgrHndle, _msg_smil_event_mgr_slide_timer_cb, timerDuration)) != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("__msg_smil_event_mgr_register_timer Failed err = %d", err);
+                                       return err;
+                               }
+                       } else {
+                               D_MSG("timer is not registerd actionTypeOnPage = %d", slideTimerCbData->slideTimerInfo.actionTypeOnPage);
+                       }
+               }
+
+               /* set play timer pause to synchronize UI timer */
+               if (curSlideInfo->slideStatus == PLAYER_STATUS_PAUSED && slideTimerCbData->timerHandle)
+                       ecore_timer_freeze(slideTimerCbData->timerHandle);
+
+       } else {
+               D_EMSG("Page event is error actionTypeOnPage = %d", slideTimerCbData->slideTimerInfo.actionTypeOnPage);
+       }
+
+       D_LEAVE;
+
+       return MSG_SMIL_SUCCESS;
+}
+
+
+static MSG_SMIL_ERROR_E __msg_smil_event_mgr_register_timer(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, void *cb, double duration)
+{
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle is NULL");
+       SMIL_TIMER_CALLBACK_DATA_S *slideTimerCbData = smilEvntMgrHndle->slideTimerCbData;
+       D_MSG("PLAYSLIDEEVENT : timerDuration = %lf", duration);
+       /*Start Timer.*/
+       duration = duration / MSG_MMS_SMIL_TIMER_CONVERT;
+       slideTimerCbData->timerHandle = ecore_timer_add(duration, cb, (void *)smilEvntMgrHndle);
+       if (slideTimerCbData->timerHandle == NULL) {
+               D_EMSG("Timer Registry Failed");
+               return MSG_ERR_SMIL_TIMER_FAILURE;
+       }
+       return MSG_SMIL_SUCCESS;
+}
+
+
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_stop_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       SMIL_TIMER_CALLBACK_DATA_S *slideTimerCbData = smilEvntMgrHndle->slideTimerCbData;
+       void *timerRet = NULL;
+
+       /*Delete the Timer.*/
+       if (slideTimerCbData->timerHandle != NULL) {
+               timerRet = ecore_timer_del(slideTimerCbData->timerHandle);
+               if (timerRet == NULL) {
+                       D_EMSG("Timer Deletion Failed");
+                       return MSG_ERR_SMIL_TIMER_FAILURE;
+               }
+               slideTimerCbData->timerHandle = NULL;
+       }
+
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
+       int curSlideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle);
+
+       if (_msg_smil_cont_mgr_get_status(smilContMgrHndle, curSlideIdx) == PLAYER_STATUS_PAUSED) {
+               /* Update status as PLAYER_STATUS_PAUSED_END */
+               D_MSG("CALL UPDATE AT PAUSED -> END : PLAYER_STATUS_PAUSED_END");
+
+               if (_msg_smil_cont_mgr_set_status(smilContMgrHndle, curSlideIdx, PLAYER_STATUS_PAUSED_END) == FALSE) {
+                       D_EMSG("_msg_smil_cont_mgr_set_status is failed");
+                       return MSG_ERR_SMIL_NULL_MESSAGE;
+               }
+       } else {
+               /* Update status as PLAYER_STATUS_PLAY_END */
+               D_MSG("CALL UPDATE AT PLAYING -> END : PLAYER_STATUS_PLAY_END");
+
+               if (_msg_smil_cont_mgr_set_status(smilContMgrHndle, curSlideIdx, PLAYER_STATUS_PLAY_END) == FALSE) {
+                       D_EMSG("_msg_smil_cont_mgr_set_status is failed");
+                       return MSG_ERR_SMIL_NULL_MESSAGE;
+               }
+       }
+
+       D_LEAVE;
+       return MSG_SMIL_SUCCESS;
+}
+
+
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_pause_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       SMIL_TIMER_CALLBACK_DATA_S *slideTimerCbData = smilEvntMgrHndle->slideTimerCbData;
+
+       if (slideTimerCbData->timerHandle != NULL)
+               ecore_timer_freeze(slideTimerCbData->timerHandle);
+
+       /* Update status as PLAYER_EVENT_PAUSED */
+       D_MSG("CALL UPDATE AT PLAY PAUSE");
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
+       int curSlideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle);
+       if (_msg_smil_cont_mgr_set_status(smilContMgrHndle, curSlideIdx, PLAYER_STATUS_PAUSED) == FALSE) {
+               D_EMSG("_msg_smil_cont_mgr_set_status is failed");
+               return MSG_ERR_SMIL_NULL_MESSAGE;
+       }
+
+       D_LEAVE;
+       return MSG_SMIL_SUCCESS;
+}
+
+
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_resume_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, int curSlideIdx)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle is NULL");
+       MSG_BOOL isVideoMedia = _msg_smil_event_mgr_get_is_video_media(smilEvntMgrHndle);
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
+
+       D_MSG("isVideoMedia = %d", isVideoMedia);
+
+       if (smilEvntMgrHndle->slideTimerCbData->timerHandle) {
+               ecore_timer_thaw(smilEvntMgrHndle->slideTimerCbData->timerHandle);
+
+               D_MSG("CALL UPDATE AT PLAY RESUME");
+               if (_msg_smil_cont_mgr_set_status(smilContMgrHndle, curSlideIdx, PLAYER_STATUS_PLAYING) == FALSE) {
+                       D_EMSG("_msg_smil_cont_mgr_set_status is failed");
+                       return MSG_ERR_SMIL_NULL_MESSAGE;
+               }
+       } else {
+               MSG_SMIL_ERROR_E err = MSG_ERR_SMIL_UNKNOWN;
+               if (_msg_smil_cont_mgr_set_status(smilContMgrHndle, curSlideIdx, PLAYER_STATUS_PLAYING) == FALSE) {
+                       D_EMSG("_msg_smil_cont_mgr_set_status is failed");
+                       return MSG_ERR_SMIL_NULL_MESSAGE;
+               }
+
+               curSlideIdx += MSG_MMS_SMIL_SLIDEIDX_INCREMENT;
+               _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_MOVE_TO_NEXT);
+
+               /* Call Event Manager for playing the slide and starting the timer. */
+               err = _msg_smil_event_mgr_play_slide(smilEvntMgrHndle, curSlideIdx);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("_msg_smil_event_mgr_play_slide is failed :PLAYER_EVENT_NEXT_SLIDE");
+                       return err;
+               }
+       }
+
+       D_LEAVE;
+       return MSG_SMIL_SUCCESS;
+}
+
+
+Eina_Bool _msg_smil_event_mgr_slide_timer_cb(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_FALSE, "data is NULL");
+       MSG_SMIL_ERROR_E err = MSG_ERR_SMIL_UNKNOWN;
+       MSG_SMIL_ERROR_E error = MSG_ERR_SMIL_UNKNOWN;
+       SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle = (SMIL_EVENT_MGR_HANDLE_S *)data;
+       SMIL_TIMER_CALLBACK_DATA_S *slideTimerCbData = smilEvntMgrHndle->slideTimerCbData;
+       SMIL_SLIDE_INFO_S *singleSlideInfo = NULL;
+       void *timerRet = NULL;
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
+       D_MSG_RETVM_IF(slideTimerCbData == NULL, EINA_FALSE, "slideTimerCbData is NULL");
+
+       /*Delete the Current timer and then start a fresh timer.*/
+       if (slideTimerCbData->timerHandle != NULL) {
+               timerRet = ecore_timer_del(slideTimerCbData->timerHandle);
+               if (timerRet == NULL) {
+                       D_EMSG("Timer Deletion Failed");
+                       return EINA_FALSE;
+               }
+               slideTimerCbData->timerHandle = NULL;
+       }
+
+       int cur_slide = _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle);
+
+       singleSlideInfo = _msg_smil_event_mgr_get_current_slide(smilEvntMgrHndle);
+       D_MSG_RETVM_IF(singleSlideInfo == NULL, EINA_FALSE, "singleSlideInfo is NULL");
+       while (1) {
+               switch (slideTimerCbData->slideTimerInfo.actionTypeOnPage) {
+               case PAGE_EVENT_END:
+                       D_MSG("actionTypeOnPage = PAGE_EVENT_END");
+                       slideTimerCbData->elementIdx = -1;
+                       if (singleSlideInfo->nextSlide != NULL) {       /*  Not the last slide*/
+                               _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_MOVE_TO_NEXT);
+                               continue;
+                       } else {
+                               D_MSG("LAST SLIDE CASE");
+                               /* If Delayed client cb only after timer expiry. */
+                               _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_LAST_PAGE_PLAY_COMPLETE);
+                               _msg_smil_event_mgr_set_last_slide(smilEvntMgrHndle, TRUE);
+                               _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_NONE);
+                               _msg_smil_cont_mgr_set_status(smilContMgrHndle, cur_slide, PLAYER_STATUS_PLAY_END);
+
+                               /*call renderhandler to draw content*/
+                               SMIL_RENDERER_DATA_S *smilRenderer = _msg_smil_get_renderder(smilEvntMgrHndle->smilhandle);
+                               error = _msg_smil_render_on_slide_render_handler(smilRenderer, slideTimerCbData->curSlideParam);
+                               if (error != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("_msg_smil_render_on_slide_render_handler failed err = %d", err);
+                                       _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_ERROR);
+                               }
+
+                               /*Calling the callback of Client.*/
+                               err = slideTimerCbData->appSmilCb(&(slideTimerCbData->curSlideParam->clientCbParam), slideTimerCbData->appUserData);
+                               _msg_smil_event_mgr_set_last_slide(smilEvntMgrHndle, FALSE);
+
+                               if (err != MSG_SMIL_SUCCESS || error != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("Client CB failed");
+                                       return EINA_FALSE;
+                               }
+                               break;
+                       }
+               case PAGE_EVENT_MOVE_TO_NEXT:
+                       D_MSG("actionTypeOnPage = PAGE_EVENT_MOVE_TO_NEXT");
+                       _msg_smil_cont_mgr_set_status(smilContMgrHndle, cur_slide, PLAYER_STATUS_PLAY_END);
+                       err = _msg_smil_event_mgr_move_to_next_slide(smilEvntMgrHndle);
+                       if (err != MSG_SMIL_SUCCESS) {
+                               D_EMSG("_msg_smil_event_mgr_move_to_next_slide is failed = %d", err);
+                       }
+                       break;
+               default:
+                       D_EMSG("actionTypeOnPage = %d", slideTimerCbData->slideTimerInfo.actionTypeOnPage);
+                       break;
+               }
+               break;
+       }
+
+       D_MSG("SLIDE IDX = %d", _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle));
+       D_MSG("SLIDE STATUS = %d", _msg_smil_cont_mgr_get_cur_slide_status(smilContMgrHndle));
+       D_LEAVE;
+       return EINA_FALSE;
+}
+
+
+static double __msg_smil_event_mgr_fill_media_time_data(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_TIMER_CALLBACK_DATA_S *callbackData)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, MSG_MMS_SMIL_MEDIA_DEFAULT_VALUE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(callbackData == NULL, MSG_MMS_SMIL_MEDIA_DEFAULT_VALUE, "callbackData is NULL");
+       D_MSG_RETVM_IF(callbackData->curSlideParam == NULL, MSG_MMS_SMIL_MEDIA_DEFAULT_VALUE, "callbackData->curSlideParam is NULL");
+       D_MSG_RETVM_IF(callbackData->curSlideParam->singleSlideInfo == NULL, MSG_MMS_SMIL_MEDIA_DEFAULT_VALUE, "callbackData->curSlideParam->singleSlideInfo is NULL");
+       int mediaCnt = 0;
+       int pageCnt = 0;
+       int count = 0;
+       double timerDuration = 0;
+       int value = 0;
+       int mediaIdxCnt = 0;
+
+       /*Get contentMgr */
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
+
+       /*Get page list handler of current page of callbackData*/
+       msg_list_handle_t pagelist_info = _msg_smil_cont_mgr_get_page_list_handle(smilContMgrHndle);
+       pageCnt = (msg_list_length(pagelist_info) > 0) ? msg_list_length(pagelist_info) : 0;
+       D_MSG_RETVM_IF(pageCnt == 0, MSG_MMS_SMIL_MEDIA_DEFAULT_VALUE, "pageCnt is 0");
+
+       /*Get page handler */
+       msg_struct_t page_info = _msg_smil_cont_mgr_get_nth_page_struct_handle(pagelist_info, callbackData->curSlideParam->singleSlideInfo->pageIdx);
+
+       /*Get media list handler */
+       msg_list_handle_t medialist_info = _msg_smil_cont_mgr_get_page_media_list_handle(page_info);
+       mediaCnt = (msg_list_length(medialist_info) > 0) ? msg_list_length(medialist_info) : 0;
+
+       while (count < MSG_MMS_SMIL_MEDIA_TYPES) {
+               callbackData->curSlideParam->timerDataMedia[count].mediaIdx = 0;
+               callbackData->curSlideParam->timerDataMedia[count].actionTypeOnMedia = MEDIA_EVENT_NONE;
+               count++;
+       }
+       count = 0;
+       if (callbackData->slideTimerInfo.actionTypeOnPage != PAGE_EVENT_INTERNAL_MEDIA) {
+               /* If it is not an internal media timer expiry, then the loop should start from 0 */
+               count = 0;
+               value = 0;
+       } else {
+               /* else the loop may start from the index pointed to by elementIdx. */
+               count = callbackData->elementIdx;
+               value = callbackData->slideTimerInfo.mediaTimerDur[callbackData->elementIdx][0];
+       }
+
+       while (count < mediaCnt * 2) {
+               if (callbackData->slideTimerInfo.mediaTimerDur[count][2] == MEDIA_EVENT_NONE) {
+                       break;
+               } else {
+                       /*only MEDIA_EVENT_BEGIN will be set to timerDatamedia, because begin = 0, dur and end = -1*/
+                       if (callbackData->slideTimerInfo.mediaTimerDur[count][0] != MSG_MMS_SMIL_TIMER_DUR_INDEFINITE) {
+                               if (callbackData->slideTimerInfo.mediaTimerDur[count][0] == value) {
+                                       callbackData->curSlideParam->timerDataMedia[mediaIdxCnt].mediaIdx = callbackData->slideTimerInfo.mediaTimerDur[count][1];
+                                       callbackData->curSlideParam->timerDataMedia[mediaIdxCnt].actionTypeOnMedia = callbackData->slideTimerInfo.mediaTimerDur[count][2];
+                                       count++;
+                                       mediaIdxCnt++;
+                               } else if (count == 0) {
+                                       D_MSG("count = %d, value = %d", count, value);
+                                       timerDuration = callbackData->slideTimerInfo.mediaTimerDur[count][0];
+                                       break;
+                               } else {
+                                       D_MSG("count2 = %d, value = %d", count, value);
+                                       timerDuration = (callbackData->slideTimerInfo.mediaTimerDur[count][0]) - (callbackData->slideTimerInfo.mediaTimerDur[count-1][0]);
+                                       break;
+                               }
+                       } else {
+                               count++;
+                       }
+               }
+       }
+
+       if ((count < (mediaCnt * 2)) && (callbackData->slideTimerInfo.mediaTimerDur[count][2] != MEDIA_EVENT_NONE))
+               callbackData->elementIdx = count;
+
+       return timerDuration;
+}
+
+
+static void __msg_smil_event_mgr_check_media_type(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_TIMER_CALLBACK_DATA_S *callbackData)
+{
+       D_MSG_RETM_IF(smilEvntMgrHndle == NULL, "smilEvntMgrHandle is NULL");
+       D_MSG_RETM_IF(callbackData == NULL, "callbackData is NULL");
+       D_MSG_RETM_IF(callbackData->curSlideParam == NULL, "callbackData->curSlideParam is NULL");
+       D_MSG_RETM_IF(callbackData->curSlideParam->singleSlideInfo == NULL, "callbackData->curSlideParam->singleSlideInfo is NULL");
+
+       int mediaIdx = 0;
+       int mediaCnt = 0;
+       int pageCnt = 0;
+
+       /*Get contentMgr */
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
+
+       /*Get page list handler of current page of callbackData*/
+       msg_list_handle_t pagelist_info = _msg_smil_cont_mgr_get_page_list_handle(smilContMgrHndle);
+       pageCnt = (msg_list_length(pagelist_info) > 0) ? msg_list_length(pagelist_info) : 0;
+       D_MSG_RETM_IF(pageCnt == 0, "page list is null, no pages in current message");
+
+       /*Get page handler */
+       msg_struct_t page_info = _msg_smil_cont_mgr_get_nth_page_struct_handle(pagelist_info, callbackData->curSlideParam->singleSlideInfo->pageIdx);
+       if (page_info == NULL) {
+               D_EMSG("failed in getting page(%d)", callbackData->curSlideParam->singleSlideInfo->pageIdx);
+               return;
+       }
+
+       /*Get media list handler */
+       msg_list_handle_t medialist_info = _msg_smil_cont_mgr_get_page_media_list_handle(page_info);
+       mediaCnt = (msg_list_length(medialist_info) > 0) ? msg_list_length(medialist_info) : 0;
+
+       while (mediaIdx < mediaCnt) {
+               int mediaType = 0;
+               msg_struct_t media_info = (msg_struct_t)msg_list_nth_data(medialist_info, mediaIdx);
+               msg_get_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
+
+               if (mediaType == MMS_SMIL_MEDIA_VIDEO) {
+                       callbackData->curSlideParam->isVideoMedia = TRUE;
+               } else if (mediaType == MMS_SMIL_MEDIA_INVALID) {       /*unsupported contents*/
+                       callbackData->curSlideParam->isUnsupportedContent = TRUE;
+               }
+               mediaIdx++;
+       }
+       D_MSG("callbackData->curSlideParam->isVideoMedia = %d", callbackData->curSlideParam->isVideoMedia);
+       D_MSG("callbackData->curSlideParam->isUnsupportedContent = %d", callbackData->curSlideParam->isUnsupportedContent);
+}
+
+
+static void __msg_smil_event_mgr_set_media_time_info(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_TIMER_CALLBACK_DATA_S *callbackData)
+{
+       D_MSG_RETM_IF(smilEvntMgrHndle == NULL, "smilEvntMgrHndle is NULL");
+       D_MSG_RETM_IF(callbackData == NULL, "callbackData is NULL");
+       D_MSG_RETM_IF(callbackData->curSlideParam == NULL, "callbackData->curSlideParam is NULL");
+       D_MSG_RETM_IF(callbackData->curSlideParam->singleSlideInfo == NULL, "callbackData->curSlideParam->singleSlideInfo is NULL");
+
+       int pageCnt = 0;
+       int count = 0;
+       int holder = 0;
+       int subCount = 0;
+       int swapCount = 0;
+       int mediaCnt = 0;
+
+       /*Get contentMgr */
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
+
+       /*Get page list handler of current page of callbackData*/
+       msg_list_handle_t pagelist_info = _msg_smil_cont_mgr_get_page_list_handle(smilContMgrHndle);
+       pageCnt = (msg_list_length(pagelist_info) > 0) ? msg_list_length(pagelist_info) : 0;
+       D_MSG_RETM_IF(pageCnt == 0, "page count is 0, no pages in current message");
+
+       /*Get page handler */
+       msg_struct_t page_info = _msg_smil_cont_mgr_get_nth_page_struct_handle(pagelist_info, callbackData->curSlideParam->singleSlideInfo->pageIdx);
+
+       /*Get media list handler */
+       msg_list_handle_t medialist_info = _msg_smil_cont_mgr_get_page_media_list_handle(page_info);
+       int len = (msg_list_length(medialist_info) > 0) ? msg_list_length(medialist_info) : 0;
+
+       mediaCnt = len * 2;/* 2 is multiplied considering that at max for every media we may have two timers- 1. Begin, 2. End. */
+
+       memset(callbackData->slideTimerInfo.mediaTimerDur, 0, (MSG_MMS_SMIL_MAX_TIMER_IDX * MSG_MMS_SMIL_PAGE_MEDIA_IDX_ACTION) * sizeof(int));
+       /*Populate Media Timer Info into the slideTimerInfo Array*/
+       while (count < mediaCnt) {
+               D_MSG("count = %d, mediaCnt = %d", count, mediaCnt);
+               int mediaType = 0;
+               int timeBegin;
+               int timeEnd;
+               msg_struct_t media_info = (msg_struct_t)msg_list_nth_data(medialist_info, count/2);
+               msg_get_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
+               D_MSG("media type  = %d", mediaType);
+
+               __msg_smil_event_mgr_change_media_time(media_info, mediaType);
+
+               /*Media Index in the array will be filled as 0,1,2,3*/
+               if (mediaType == MMS_SMIL_MEDIA_TEXT) {
+                       msg_struct_t sText;
+                       msg_get_struct_handle(media_info, MSG_MMS_MEDIA_SMIL_TEXT_HND, &sText);
+
+                       msg_get_int_value(sText, MSG_MMS_SMIL_TEXT_BEGIN_INT, &timeBegin);
+                       callbackData->slideTimerInfo.mediaTimerDur[count][0] = timeBegin;
+                       callbackData->slideTimerInfo.mediaTimerDur[count][1] = count / 2;/*This division by 2 is done to keep the media count value in the array appropriate*/
+                       callbackData->slideTimerInfo.mediaTimerDur[count][2] = MEDIA_EVENT_BEGIN;
+
+                       count++;
+
+                       msg_get_int_value(sText, MSG_MMS_SMIL_TEXT_END_INT, &timeEnd);
+                       callbackData->slideTimerInfo.mediaTimerDur[count][0] = timeEnd;
+                       callbackData->slideTimerInfo.mediaTimerDur[count][1] = (count - 1) / 2;/*This subtraction and division by 2 is done to keep the media count value in the array appropriate*/
+                       callbackData->slideTimerInfo.mediaTimerDur[count][2] = MEDIA_EVENT_END;
+               } else if (mediaType != MMS_SMIL_MEDIA_INVALID) {
+                       msg_struct_t sAvi;
+                       msg_get_struct_handle(media_info, MSG_MMS_MEDIA_SMIL_AVI_HND, &sAvi);
+
+                       msg_get_int_value(sAvi, MSG_MMS_SMIL_AVI_BEGIN_INT, &timeBegin);
+                       callbackData->slideTimerInfo.mediaTimerDur[count][0] = timeBegin;
+                       callbackData->slideTimerInfo.mediaTimerDur[count][1] = count / 2;/*This division by 2 is done to keep the media count value in the array appropriate*/
+                       callbackData->slideTimerInfo.mediaTimerDur[count][2] = MEDIA_EVENT_BEGIN;
+
+                       count++;
+
+                       msg_get_int_value(sAvi, MSG_MMS_SMIL_AVI_END_INT, &timeEnd);
+                       callbackData->slideTimerInfo.mediaTimerDur[count][0] = timeEnd;
+                       callbackData->slideTimerInfo.mediaTimerDur[count][1] = (count - 1) / 2; /*This subtraction and division by 2 is done to keep the media count value in the array appropriate*/
+                       callbackData->slideTimerInfo.mediaTimerDur[count][2] = MEDIA_EVENT_END;
+               } else if (mediaType == MMS_SMIL_MEDIA_INVALID) {       /*unsupported contents*/
+                       callbackData->slideTimerInfo.mediaTimerDur[count][0] = 0;
+                       callbackData->slideTimerInfo.mediaTimerDur[count][1] = count / 2;/*This division by 2 is done to keep the media count value in the array appropriate*/
+                       callbackData->slideTimerInfo.mediaTimerDur[count][2] = MEDIA_EVENT_BEGIN;
+
+                       count++;
+
+                       callbackData->slideTimerInfo.mediaTimerDur[count][0] = 0;
+                       callbackData->slideTimerInfo.mediaTimerDur[count][1] = (count - 1) / 2; /*This subtraction and division by 2 is done to keep the media count value in the array appropriate*/
+                       callbackData->slideTimerInfo.mediaTimerDur[count][2] = MEDIA_EVENT_END;
+               } else {
+                       D_EMSG("Invalide mediaType Error = %d", mediaType);
+               }
+
+               count++;
+       }
+
+       /*Sort timer Data*/
+       count = 0;
+       for (count = 1 ; count < mediaCnt ; count++) {
+               for (subCount = 0; subCount < (mediaCnt - count); subCount++) {
+                       if (callbackData->slideTimerInfo.mediaTimerDur[subCount][0] > callbackData->slideTimerInfo.mediaTimerDur[subCount + 1][0]) {
+                               swapCount = 0;
+                               while (swapCount < MSG_MMS_SMIL_PAGE_MEDIA_IDX_ACTION) {
+                                       holder = callbackData->slideTimerInfo.mediaTimerDur[subCount + 1][swapCount];
+                                       callbackData->slideTimerInfo.mediaTimerDur[subCount + 1][swapCount] = callbackData->slideTimerInfo.mediaTimerDur[subCount][swapCount];
+                                       callbackData->slideTimerInfo.mediaTimerDur[subCount][swapCount] = holder;
+                                       swapCount++;
+                               }
+                       }
+               }
+       }
+}
+
+
+static void __msg_smil_event_mgr_set_page_time(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_SLIDE_INFO_S *pageData)
+{
+       D_MSG_RETM_IF(smilEvntMgrHndle == NULL, "smilEvntMgrHndle is NULL");
+       D_MSG_RETM_IF(pageData == NULL, "pageData is NULL");
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
+       D_MSG_RETM_IF(smilContMgrHndle == NULL, "smilContMgrHndle is NULL");
+       int duration = 0 ;
+       int end = 0;
+       int pageCnt = 0;
+
+       /*Get struct handle of current page */
+       msg_list_handle_t pagelist_info = _msg_smil_cont_mgr_get_page_list_handle(smilContMgrHndle);
+       pageCnt = (msg_list_length(pagelist_info) > 0) ? msg_list_length(pagelist_info) : 0;
+       D_MSG_RETM_IF(pageCnt == 0, "page count is 0, no pages in current message");
+
+       /*Get page*/
+       msg_struct_t page_info = _msg_smil_cont_mgr_get_nth_page_struct_handle(pagelist_info, pageData->pageIdx);
+
+       /*Get page nDur */
+       msg_get_int_value(page_info, MSG_MMS_PAGE_PAGE_DURATION_INT, &duration);
+
+       if (duration > 0) {
+               /* For passing GCF test criteria MMS-1.3-con-209, pageduration is shorter than minimum unit(1s) then set it as ixit_min_page_time value(5s) */
+               if (duration < 1000) {
+                       msg_set_int_value(page_info, MSG_MMS_PAGE_PAGE_DURATION_INT, MSG_MMS_SMIL_TIMER_DEFAULT_DUR);
+                       msg_set_int_value(page_info, MSG_MMS_PAGE_END_TIME_INT, MSG_MMS_SMIL_TIMER_DEFAULT_DUR);
+               } else {
+                       msg_set_int_value(page_info, MSG_MMS_PAGE_END_TIME_INT, duration);
+               }
+       } else if (duration == 0) {
+               /* Assigining Default Value */
+               msg_set_int_value(page_info, MSG_MMS_PAGE_PAGE_DURATION_INT, MSG_MMS_SMIL_TIMER_DEFAULT_DUR);
+               msg_set_int_value(page_info, MSG_MMS_PAGE_END_TIME_INT, MSG_MMS_SMIL_TIMER_DEFAULT_DUR);
+       } else {
+               /* Assigining Infinite Value */
+               msg_set_int_value(page_info, MSG_MMS_PAGE_PAGE_DURATION_INT, MSG_MMS_SMIL_TIMER_DUR_INDEFINITE);
+               msg_set_int_value(page_info, MSG_MMS_PAGE_END_TIME_INT, MSG_MMS_SMIL_TIMER_DUR_INDEFINITE);
+       }
+
+       msg_get_int_value(page_info, MSG_MMS_PAGE_PAGE_DURATION_INT, &duration);
+       D_MSG("PAGE----nDur = %d", duration);
+
+       msg_get_int_value(page_info, MSG_MMS_PAGE_END_TIME_INT, &end);
+       D_MSG("PAGE----nEnd = %d", end);
+}
+
+
+static void __msg_smil_event_mgr_change_media_time(msg_struct_t media_info, MmsSmilMediaType mediaType)
+{
+       D_MSG_RETM_IF(media_info == NULL, "media_info is NULL");
+       int timeBegin = 0;
+       int timeEnd = 0;
+       int timeDur = 0;
+
+       /*set begin of media as 0, begin time is important */
+       timeBegin = MSG_MMS_SMIL_TIMER_DEFAULT_BEGIN;
+       timeDur = MSG_MMS_SMIL_TIMER_DUR_INDEFINITE;
+       timeEnd = MSG_MMS_SMIL_TIMER_DUR_INDEFINITE;
+
+       msg_struct_t sText;
+       msg_struct_t sAvi;
+
+       /*set changed media time*/
+       switch (mediaType) {
+       case MMS_SMIL_MEDIA_TEXT:
+               msg_get_struct_handle(media_info, MSG_MMS_MEDIA_SMIL_TEXT_HND, &sText);
+               msg_set_int_value(sText, MSG_MMS_SMIL_TEXT_BEGIN_INT, timeBegin);
+               msg_set_int_value(sText, MSG_MMS_SMIL_TEXT_END_INT, timeEnd);
+               msg_set_int_value(sText, MSG_MMS_SMIL_TEXT_DURTIME_INT, timeDur);
+               break;
+       case MMS_SMIL_MEDIA_IMG:
+       case MMS_SMIL_MEDIA_AUDIO:
+       case MMS_SMIL_MEDIA_VIDEO:
+       case MMS_SMIL_MEDIA_ANIMATE:
+       case MMS_SMIL_MEDIA_IMG_OR_VIDEO:
+               msg_get_struct_handle(media_info, MSG_MMS_MEDIA_SMIL_AVI_HND, &sAvi);
+               msg_set_int_value(sAvi, MSG_MMS_SMIL_AVI_BEGIN_INT, timeBegin);
+               msg_set_int_value(sAvi, MSG_MMS_SMIL_AVI_END_INT, timeEnd);
+               msg_set_int_value(sAvi, MSG_MMS_SMIL_AVI_DURTIME_INT, timeDur);
+               break;
+       default:
+               break;
+       }
+
+       D_MSG("Media timeBegin = %d", timeBegin);
+       D_MSG("Media timeDur = %d", timeDur);
+       D_MSG("Media timeEnd = %d", timeEnd);
+}
+
+
+MSG_SMIL_ERROR_E _msg_smil_event_mgr_move_to_next_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+       int slideIdx = 0;
+       MSG_SMIL_ERROR_E err = MSG_ERR_SMIL_UNKNOWN;
+       SMIL_SLIDE_INFO_S *singleSlideInfo = _msg_smil_event_mgr_get_current_slide(smilEvntMgrHndle);
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
+
+       if (singleSlideInfo != NULL) {
+               /*Call the Event Manager to Stop the timer.*/
+               if (_msg_smil_cont_mgr_get_cur_slide_status(smilContMgrHndle) != PLAYER_STATUS_PLAY_END) {
+                       err = _msg_smil_event_mgr_stop_slide(smilEvntMgrHndle);
+                       if (err != MSG_SMIL_SUCCESS) {
+                               D_EMSG("_msg_smil_event_mgr_stop_slide is failed: PLAYER_EVENT_NEXT_SLIDE");
+                               return err;
+                       }
+               }
+
+               /*Incrementing the slide index in order to move to the next slide*/
+               slideIdx = singleSlideInfo->pageIdx + 1;
+               _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_MOVE_TO_NEXT);
+               _msg_smil_event_mgr_set_is_video_media(smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_unsupported_content(smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_invalid_video_ro(smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_video_endofstream(smilEvntMgrHndle, FALSE);
+       } else {
+               _msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_PLAY);
+       }
+
+       err = _msg_smil_event_mgr_play_slide(smilEvntMgrHndle, slideIdx);
+       if (err != MSG_SMIL_SUCCESS) {
+               D_EMSG("_msg_smil_event_mgr_play_slide is failed %d", err);
+               return err;
+       }
+
+       D_LEAVE;
+       return MSG_SMIL_SUCCESS;
+}
+
+
+MSG_BOOL _msg_smil_event_mgr_is_slide_active(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       return smilEvntMgrHndle->slideTimerCbData->curSlideParam->singleSlideInfo ? TRUE : FALSE;
+}
+
+
+SMIL_TIMER_CALLBACK_DATA_S *_msg_smil_event_mgr_get_timer_cb_data(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, NULL, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, NULL, "smilEvntMgrHndle->slideTimerCbData is NULL");
+
+       return smilEvntMgrHndle->slideTimerCbData;
+}
+
+
+SMIL_SLIDE_EVENT_PARAM_S *_msg_smil_event_mgr_get_slide_event_param_data(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, NULL, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, NULL, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, NULL, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       return smilEvntMgrHndle->slideTimerCbData->curSlideParam;
+}
+
+
+double _msg_smil_event_mgr_get_slide_time(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, MSG_MMS_SMIL_MEDIA_DEFAULT_VALUE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, MSG_MMS_SMIL_MEDIA_DEFAULT_VALUE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, MSG_MMS_SMIL_MEDIA_DEFAULT_VALUE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       return smilEvntMgrHndle->slideTimerCbData->curSlideParam->timerDur;
+}
+
+
+MSG_BOOL _msg_smil_event_mgr_set_slide_time(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, double duration)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->timerDur = duration;
+       return TRUE;
+}
+
+
+SMIL_PLAYER_PAGE_EVENT_E _msg_smil_event_mgr_get_page_action_type(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, PAGE_EVENT_NONE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, PAGE_EVENT_NONE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+
+       return smilEvntMgrHndle->slideTimerCbData->slideTimerInfo.actionTypeOnPage;
+}
+
+
+MSG_BOOL _msg_smil_event_mgr_set_page_action_type(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_PLAYER_PAGE_EVENT_E page_event)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+
+       smilEvntMgrHndle->slideTimerCbData->slideTimerInfo.actionTypeOnPage = page_event;
+       return TRUE;
+}
+
+
+SMIL_SLIDE_INFO_S *_msg_smil_event_mgr_get_current_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, NULL, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, NULL, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, NULL, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       return smilEvntMgrHndle->slideTimerCbData->curSlideParam->singleSlideInfo;
+}
+
+
+MSG_BOOL _msg_smil_event_mgr_set_current_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_SLIDE_INFO_S *singleSlide)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->singleSlideInfo = singleSlide;
+       return TRUE;
+}
+
+
+MSG_BOOL _msg_smil_event_mgr_get_video_endofstream(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       return smilEvntMgrHndle->slideTimerCbData->curSlideParam->iseos;
+}
+
+
+MSG_BOOL _msg_smil_event_mgr_set_video_endofstream(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, MSG_BOOL iseos)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->iseos = iseos;
+       return TRUE;
+}
+
+
+MSG_BOOL _msg_smil_event_mgr_get_is_video_media(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       return smilEvntMgrHndle->slideTimerCbData->curSlideParam->isVideoMedia;
+}
+
+
+MSG_BOOL _msg_smil_event_mgr_set_is_video_media(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, MSG_BOOL isvideo)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->isVideoMedia = isvideo;
+       return TRUE;
+}
+
+
+MSG_BOOL _msg_smil_event_mgr_get_unsupported_content(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       return smilEvntMgrHndle->slideTimerCbData->curSlideParam->isUnsupportedContent;
+}
+
+
+MSG_BOOL _msg_smil_event_mgr_set_unsupported_content(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, MSG_BOOL isunsupported)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->isUnsupportedContent = isunsupported;
+       return TRUE;
+}
+
+
+MSG_BOOL _msg_smil_event_mgr_get_invalid_video_ro(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       return smilEvntMgrHndle->slideTimerCbData->curSlideParam->isVideoRoInvalid;
+}
+
+
+MSG_BOOL _msg_smil_event_mgr_set_invalid_video_ro(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, MSG_BOOL isinvalid_ro)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->isVideoRoInvalid = isinvalid_ro;
+       return TRUE;
+}
+
+MSG_BOOL _msg_smil_event_mgr_get_last_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       return smilEvntMgrHndle->slideTimerCbData->curSlideParam->isLastSlide;
+}
+
+MSG_BOOL _msg_smil_event_mgr_set_last_slide(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, MSG_BOOL islast_slide)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->isLastSlide = islast_slide;
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->clientCbParam.isLastSlide = islast_slide;
+       return TRUE;
+}
+
+MSG_BOOL _msg_smil_event_mgr_get_last_slide_is_help_page(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       return smilEvntMgrHndle->slideTimerCbData->curSlideParam->isHelpSlide;
+}
+
+MSG_BOOL _msg_smil_event_mgr_set_last_slide_is_help_page(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, MSG_BOOL ishelp_page)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->isHelpSlide = ishelp_page;
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->clientCbParam.isHelpSlide = ishelp_page;
+       return TRUE;
+}
+
+MSG_BOOL _msg_smil_event_mgr_set_render_event(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, SMIL_PLAYER_RENDER_EVENT_E render_event)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->renderEvent = render_event;
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->clientCbParam.clientCbEvent = render_event;
+       return TRUE;
+}
+
+SMIL_PLAYER_RENDER_EVENT_E _msg_smil_event_mgr_get_render_event(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       return smilEvntMgrHndle->slideTimerCbData->curSlideParam->renderEvent;
+}
+
+MSG_BOOL __msg_smil_event_mgr_set_client_cb_page_idx(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, int slideIdx)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->clientCbParam.pageIdx = slideIdx;
+       return TRUE;
+}
+
+
+MSG_BOOL __msg_smil_event_mgr_set_client_cb_page_count(SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle, int pageCnt)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(smilEvntMgrHndle == NULL, FALSE, "smilEvntMgrHndle is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(smilEvntMgrHndle->slideTimerCbData->curSlideParam == NULL, FALSE, "smilEvntMgrHndle->slideTimerCbData->curSlideParam is NULL");
+
+       smilEvntMgrHndle->slideTimerCbData->curSlideParam->clientCbParam.pageCnt = pageCnt;
+       return TRUE;
+}
diff --git a/viewer/smil-player/src/msg-smil-media-render.c b/viewer/smil-player/src/msg-smil-media-render.c
new file mode 100755 (executable)
index 0000000..d7c38d6
--- /dev/null
@@ -0,0 +1,1247 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+
+#include "msg-smil-types.h"
+#include "msg-smil-player.h"
+#include "msg-smil-render.h"
+#include "msg-smil-util.h"
+#include "msg-ui-image-resource.h"
+#include "msg-ui-viewer-main.h"
+#include "msg-ui-viewer-utility.h"
+#include "msg-ui-common-utility.h"
+#include "msg-file-util.h"
+
+#include <player.h>
+#include <mm_error.h>
+#include <metadata_extractor.h>
+#include <utilX.h>
+#include <Ecore_X.h>
+#include "device/power.h"
+
+/*==================================================================================================
+ *                                                             FUNCTION DECLARATIONS
+ *==================================================================================================*/
+ /*smil player sound and video related functions*/
+static MSG_BOOL __msg_smil_render_is_player_active(void);
+static MSG_BOOL __msg_smil_render_player_mgr_create(void *data);
+static MSG_BOOL __msg_smil_render_player_mgr_destroy(void *data);
+static MSG_BOOL __msg_smil_render_player_mgr_play(void *data);
+static MSG_BOOL __msg_smil_render_player_mgr_stop(void *data);
+static MSG_BOOL __msg_smil_render_player_mgr_realize(void *data);
+static MSG_BOOL __msg_smil_render_player_mgr_unrealize(void);
+static MSG_BOOL __msg_smil_render_player_mgr_pause(void *data);
+static MSG_BOOL __msg_smil_render_player_mgr_resume(void *data, int mediaType);
+static MSG_BOOL __msg_smil_render_player_mgr_mute(void *data);
+static MSG_BOOL __msg_smil_render_player_mgr_set_player_cb(void *user_data);
+static MSG_BOOL __msg_smil_render_player_mgr_set_attribute(void *data, const char *path, int mediaType);
+
+static MSG_BOOL __msg_smil_render_check_file_validity(SMIL_RENDERER_DATA_S *viewerRenderData, const char *file_path);
+static MSG_BOOL __msg_smil_render_get_video_size(SMIL_RENDERER_DATA_S *viewerRenderData, const char *file_path, int *width, int *height);
+static void __msg_smil_render_show_image_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_RENDER_IMAGE_TYPE_E imageType);
+static MSG_BOOL __msg_smil_render_play_audio_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status);
+static MSG_BOOL __msg_smil_render_play_video_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status);
+static MSG_BOOL __msg_smil_render_get_resized_content_size(int content_w, int content_h, int *w, int *h);
+static void __msg_smil_render_create_video_image(void *data);
+
+/*idle functions*/
+static Eina_Bool __msg_smil_render_end_of_stream(void *data);
+
+/*cb functions*/
+static void __msg_smil_render_error_cb(int error_code, void *user_param);
+static void __msg_smil_render_complete_cb(void *user_param);
+static void __msg_smil_render_interrupted_cb(player_interrupted_code_e code, void *user_param);
+
+/*================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+static player_h _player = 0;
+
+static MSG_BOOL __msg_smil_render_is_player_active(void)
+{
+       D_MSG("_player : %x", _player);
+       return _player ? TRUE : FALSE;
+}
+
+
+static MSG_BOOL __msg_smil_render_player_mgr_create(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+       int err = PLAYER_ERROR_NONE;
+
+       if (__msg_smil_render_is_player_active())
+               return FALSE;
+
+       if ((err = player_create(&_player)) != PLAYER_ERROR_NONE) {
+               D_EMSG("player_create is failed err = %x", err);
+               return FALSE;
+       }
+
+       viewerRenderData->player_state = MEDIA_PLAYER_STATE_INIT;
+
+       return TRUE;
+}
+
+
+static MSG_BOOL __msg_smil_render_player_mgr_realize(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+       int err = PLAYER_ERROR_NONE;
+
+       if (!__msg_smil_render_is_player_active())
+               return FALSE;
+
+       if ((err = player_prepare(_player)) != PLAYER_ERROR_NONE) {
+               D_EMSG("player_prepare Error = %d", err);
+               return FALSE;
+       }
+       viewerRenderData->player_state = MEDIA_PLAYER_STATE_READY;
+
+       return TRUE;
+}
+
+
+static MSG_BOOL __msg_smil_render_player_mgr_unrealize(void)
+{
+       D_ENTER;
+       int err = PLAYER_ERROR_NONE;
+
+       if (!__msg_smil_render_is_player_active())
+               return FALSE;
+
+       if ((err = player_unprepare(_player)) != PLAYER_ERROR_NONE) {
+               D_EMSG("player_unprepare Error = %d", err);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+
+static MSG_BOOL __msg_smil_render_player_mgr_destroy(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+
+       if (!__msg_smil_render_is_player_active())
+               return FALSE;
+
+       if (player_destroy(_player) != PLAYER_ERROR_NONE) {
+               D_EMSG("player_destroy is failed");
+               return FALSE;
+       }
+       _player = 0;
+       viewerRenderData->player_state = MEDIA_PLAYER_STATE_NONE;
+
+       return TRUE;
+}
+
+
+static MSG_BOOL __msg_smil_render_player_mgr_play(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+       int err = PLAYER_ERROR_NONE;
+
+       if (!__msg_smil_render_is_player_active())
+               return FALSE;
+
+       if ((err = player_start(_player)) != PLAYER_ERROR_NONE) {
+               D_EMSG("player_start is failed err = %d", err);
+               return FALSE;
+       }
+       viewerRenderData->player_state = MEDIA_PLAYER_STATE_PLAYING;
+
+       return TRUE;
+}
+
+static MSG_BOOL __msg_smil_render_player_mgr_pause(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+       int err = PLAYER_ERROR_NONE;
+       player_state_e player_state = PLAYER_STATE_NONE;
+       if (!__msg_smil_render_is_player_active())
+               return FALSE;
+       if ((err = player_get_state(_player, &player_state)) != PLAYER_ERROR_NONE) {
+               D_EMSG("player_get_state() is failed err = %d", err);
+               return FALSE;
+       }
+       if (player_state == PLAYER_STATE_PLAYING) {
+               if ((err = player_pause(_player)) != PLAYER_ERROR_NONE) {
+                       D_EMSG("player_pause is failed err = %d", err);
+                       return FALSE;
+               }
+       }
+       viewerRenderData->player_state = MEDIA_PLAYER_STATE_PAUSED;
+
+       return TRUE;
+}
+
+
+static MSG_BOOL __msg_smil_render_player_mgr_resume(void *data, int mediaType)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+
+       if (!__msg_smil_render_is_player_active())
+               return FALSE;
+
+       if (!__msg_smil_render_player_mgr_play((void *)viewerRenderData)) {
+               D_EMSG("__msg_smil_render_player_mgr_play is failed");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+
+static MSG_BOOL __msg_smil_render_player_mgr_mute(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       int err = PLAYER_ERROR_NONE;
+
+       if (!__msg_smil_render_is_player_active())
+               return FALSE;
+
+       if ((err = player_set_mute(_player, TRUE)) != PLAYER_ERROR_NONE) {
+               D_EMSG("player_set_mute is failed err = %d", err);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+
+static MSG_BOOL __msg_smil_render_player_mgr_stop(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+
+       /*stop media player*/
+       if (__msg_smil_render_is_player_active() && viewerRenderData->player_state == MEDIA_PLAYER_STATE_PLAYING) {
+               int err = PLAYER_ERROR_NONE;
+               if ((err = player_stop(_player)) != PLAYER_ERROR_NONE) {
+                       D_EMSG("player_stop is failed err = %d", err);
+                       return FALSE;
+               }
+       }
+       viewerRenderData->player_state = MEDIA_PLAYER_STATE_STOP;
+
+       return TRUE;
+}
+
+
+static MSG_BOOL __msg_smil_render_player_mgr_set_player_cb(void *user_data)
+{
+       D_ENTER;
+       int err = PLAYER_ERROR_NONE;
+
+       if (!__msg_smil_render_is_player_active())
+               return FALSE;
+
+       /* set error cb */
+       err = player_set_error_cb(_player, __msg_smil_render_error_cb, user_data);
+       if (err != PLAYER_ERROR_NONE) {
+               D_EMSG("player_set_error_cb is failed err = %d", err);
+               return FALSE;
+       }
+
+       /* set complete cb */
+       err = player_set_completed_cb(_player, __msg_smil_render_complete_cb, user_data);
+       if (err != PLAYER_ERROR_NONE) {
+               D_EMSG("player_set_completed_cb is failed err = %d", err);
+               return FALSE;
+       }
+
+       /* set interrupted cb */
+       err = player_set_interrupted_cb(_player, __msg_smil_render_interrupted_cb, user_data);
+       if (err != PLAYER_ERROR_NONE) {
+               D_EMSG("player_set_interrupted_cb is failed err = %d", err);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+static MSG_BOOL __msg_smil_render_player_mgr_set_attribute(void *data, const char *path, int mediaType)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       D_MSG_RETVM_IF(path == NULL, FALSE, "patj is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+       int err = PLAYER_ERROR_NONE;
+
+       if (!__msg_smil_render_is_player_active())
+               return FALSE;
+
+       /*  set sound type */
+       err = player_set_sound_type(_player, SOUND_TYPE_MEDIA);
+       if (err != PLAYER_ERROR_NONE) {
+               D_EMSG("player_set_sound_type is failed. err = %d ", err)
+               return FALSE;
+       }
+
+       err = player_set_uri(_player, path);
+       if (err != PLAYER_ERROR_NONE) {
+               D_EMSG("player_set_uri is failed. err = %d", err);
+               return FALSE;
+       }
+
+       D_MSG("mediaType = %d", mediaType);
+
+       if (mediaType == MMS_SMIL_MEDIA_VIDEO) {
+               err = player_set_display(_player, PLAYER_DISPLAY_TYPE_EVAS, (void *)viewerRenderData->video_sink);
+               if (err != PLAYER_ERROR_NONE) {
+                       D_EMSG("player_set_display is failed. err = %d", err);
+                       return FALSE;
+               }
+
+               err = player_set_display_mode(_player, 2); /* play without box mode */
+               if (err != PLAYER_ERROR_NONE) {
+                       D_EMSG("player_set_display_mode is failed. err = %d", err);
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
+
+MSG_BOOL _msg_smil_render_pause(void *data, int mediaType)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+
+       if (viewerRenderData->insert_image && elm_image_animated_available_get(viewerRenderData->insert_image)) {
+               elm_image_animated_play_set(viewerRenderData->insert_image, EINA_FALSE);
+
+               /* set animated gif frame to 1st if last page play complete status */
+               SMIL_HANDLER_S *smil_handler = (SMIL_HANDLER_S *)viewerRenderData->smilhandle;
+               if (smil_handler) {
+                       SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle = (SMIL_EVENT_MGR_HANDLE_S    *)smil_handler->smilEvntMgrHndle;
+                       if (_msg_smil_event_mgr_get_render_event(smilEvntMgrHndle) == SMIL_RENDER_EVENT_LAST_PAGE_PLAY_COMPLETE) {
+                               Evas_Object *image_object = elm_image_object_get(viewerRenderData->insert_image);
+                               evas_object_image_animated_frame_set(image_object, 1);
+                       }
+               }
+       }
+
+       if ((mediaType == MMS_SMIL_MEDIA_VIDEO || mediaType == MMS_SMIL_MEDIA_AUDIO) && __msg_smil_render_is_player_active()) {
+               SMIL_HANDLER_S *smil_handler = (SMIL_HANDLER_S *)viewerRenderData->smilhandle;
+               if (smil_handler->smilEvntMgrHndle->slideTimerCbData->curSlideParam->iseos == FALSE)
+                       return __msg_smil_render_player_mgr_pause(viewerRenderData);
+       }
+
+       return TRUE;
+}
+
+
+MSG_BOOL _msg_smil_render_resume(void *data, int mediaType)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+
+       if (viewerRenderData->insert_image && elm_image_animated_available_get(viewerRenderData->insert_image))
+               elm_image_animated_play_set(viewerRenderData->insert_image, EINA_TRUE);
+
+       /* disable copy and paste popup */
+       if (viewerRenderData->viewer_body) {
+               elm_entry_select_none(viewerRenderData->viewer_body);
+       }
+
+       if (msg_common_is_connected_call() && (viewerRenderData->video_image || viewerRenderData->viewer_audio_name_rect)) {
+               D_EMSG("Unable to resume during call but slideshow will be played");
+               viewerRenderData->popup = _msg_smil_render_create_popup(viewerRenderData);
+               return TRUE;
+       }
+
+       if ((mediaType == MMS_SMIL_MEDIA_VIDEO || mediaType == MMS_SMIL_MEDIA_AUDIO) && __msg_smil_render_is_player_active()) {
+               SMIL_HANDLER_S *smil_handler = (SMIL_HANDLER_S *)viewerRenderData->smilhandle;
+               if (_msg_smil_event_mgr_get_video_endofstream(smil_handler->smilEvntMgrHndle) == FALSE)
+                       return __msg_smil_render_player_mgr_resume(viewerRenderData, mediaType);
+       }
+
+       return TRUE;
+}
+
+
+MSG_BOOL _msg_smil_render_stop_playing_file(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+
+       if (viewerRenderData->insert_image && elm_image_animated_available_get(viewerRenderData->insert_image)) {
+               elm_image_animated_play_set(viewerRenderData->insert_image, EINA_FALSE);
+
+               Evas_Object *image_object = elm_image_object_get(viewerRenderData->insert_image);
+               evas_object_image_animated_frame_set(image_object, 1);
+       }
+
+       __msg_smil_render_player_mgr_stop(data);
+       __msg_smil_render_player_mgr_unrealize();
+       __msg_smil_render_player_mgr_destroy(data);
+
+       D_LEAVE;
+       return TRUE;
+}
+
+static Eina_Bool __msg_smil_render_end_of_stream(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+       SMIL_SLIDE_INFO_S *current_slide_data = NULL;
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(viewerRenderData->smilhandle);
+       SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle = _msg_smil_get_event_mgr(viewerRenderData->smilhandle);
+
+       current_slide_data = _msg_smil_cont_mgr_get_cur_slide(smilContMgrHndle);
+       _msg_smil_event_mgr_set_video_endofstream(smilEvntMgrHndle, TRUE);
+
+       /* PLM P131028-01370 :
+       to keep last frame of the video file, do not destroy _player handle when receiving EOS event of player */
+
+       if (current_slide_data != NULL && current_slide_data->pageInfo && current_slide_data->pageInfo->hasVideo)
+               _msg_smil_event_mgr_set_is_video_media(smilEvntMgrHndle, FALSE);
+
+       viewerRenderData->video_eos_idle = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __msg_smil_render_error_cb(int error_code, void *user_param)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(user_param == NULL, "user_param is NULL");
+
+       if (!__msg_smil_render_is_player_active())
+               return;
+
+       /*case MM_MESSAGE_ERROR */
+       D_MSG("receive MM_MESSAGE_ERROR, %d", error_code);
+}
+
+static void __msg_smil_render_complete_cb(void *user_param)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(user_param == NULL, "user_param is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)user_param;
+
+       if (!__msg_smil_render_is_player_active())
+               return;
+
+       /*case MM_MESSAGE_END_OF_STREAM */
+       D_MSG("receive MM_MESSAGE_END_OF_STREAM");
+
+       if (viewerRenderData->video_eos_idle) {
+               ecore_idler_del(viewerRenderData->video_eos_idle);
+               viewerRenderData->video_eos_idle = NULL;
+       }
+       viewerRenderData->video_eos_idle = ecore_idler_add(__msg_smil_render_end_of_stream, (void *)viewerRenderData);
+}
+
+
+static void __msg_smil_render_interrupted_cb(player_interrupted_code_e code, void *user_param)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(user_param == NULL, "user_param is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)user_param;
+
+       if (!__msg_smil_render_is_player_active())
+               return;
+
+       /*case MM_MESSAGE_END_OF_STREAM */
+       D_MSG("receive MM_MESSAGE_STATE_INTERRUPTED");
+
+       switch (code) {
+               case PLAYER_INTERRUPTED_BY_MEDIA:
+                       D_MSG("MM_ERROR_PLAYER_BT_CONNECTION");
+                       break;
+
+               case PLAYER_INTERRUPTED_BY_CALL:
+                       D_MSG("MM_MSG_CODE_INTERRUPTED_BY_CALL_END");
+                       break;
+
+               case PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG:
+                       D_MSG("MM_MSG_CODE_INTERRUPTED_BY_EARJACK_UNPLUG");
+                       break;
+
+               case PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT:
+                       D_MSG("MM_MSG_CODE_INTERRUPTED_BY_RESOURCE_CONFLICT");
+                       /*It is called when vtcall is receiving during video play*/
+                       break;
+
+               case PLAYER_INTERRUPTED_BY_ALARM:
+                       D_MSG("MM_MSG_CODE_INTERRUPTED_BY_ALARM_START");
+                       break;
+
+               default:
+                       break;
+       }
+       SMIL_HANDLER_S *smil_handler = (SMIL_HANDLER_S *)viewerRenderData->smilhandle;
+       SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle = _msg_smil_get_event_mgr(viewerRenderData->smilhandle);
+       SMIL_SLIDE_EVENT_PARAM_S *curSlideParam = _msg_smil_event_mgr_get_slide_event_param_data(smilEvntMgrHndle);;
+       SMIL_TIMER_CALLBACK_DATA_S *timer_cb_data = _msg_smil_event_mgr_get_timer_cb_data(smilEvntMgrHndle);
+       MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
+
+       err = _msg_smil_player_on_slide_event_handler((void **)&smil_handler, PLAYER_EVENT_PAUSE);
+
+       if (err != MSG_SMIL_SUCCESS) {
+               D_EMSG("_msg_smil_player_on_slide_event_handler is failed, err = %d", err);
+               return;
+       }
+       if (!viewerRenderData->is_interrupt_called) {
+               device_power_release_lock(POWER_LOCK_DISPLAY);
+               viewerRenderData->is_interrupt_called = true;
+       }
+
+       if (curSlideParam && timer_cb_data) {
+               _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_PAUSE_CURRENT_PAGE);
+               timer_cb_data->appSmilCb(&(curSlideParam->clientCbParam), timer_cb_data->appUserData);
+       }
+}
+
+static MSG_BOOL __msg_smil_render_play_audio_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(path == NULL, FALSE, "path is NULL");
+
+       if (__msg_smil_render_is_player_active())
+               return FALSE;
+
+       if (!__msg_smil_render_player_mgr_create((void *)viewerRenderData))
+               return FALSE;
+
+       if (!__msg_smil_render_player_mgr_set_attribute(viewerRenderData, path, MMS_SMIL_MEDIA_AUDIO))
+               return FALSE;
+
+       if (!__msg_smil_render_player_mgr_set_player_cb((void *)viewerRenderData))
+               return FALSE;
+
+       if (!__msg_smil_render_player_mgr_realize((void *)viewerRenderData))
+               return FALSE;
+
+       /* Don't start PLAYER until UI Callback request is received */
+
+       D_LEAVE;
+
+       return TRUE;
+}
+static void __destroy_popup(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       SMIL_RENDERER_DATA_S *render_data = (SMIL_RENDERER_DATA_S *)data;
+
+       if (render_data->popup) {
+               evas_object_del(render_data->popup);
+               render_data->popup = NULL;
+       }
+
+       D_LEAVE;
+}
+
+static void __popup_destroy_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       SMIL_RENDERER_DATA_S *render_data = (SMIL_RENDERER_DATA_S *)data;
+
+       __destroy_popup(render_data);
+
+       D_LEAVE;
+}
+
+Evas_Object *_msg_smil_render_create_popup(SMIL_RENDERER_DATA_S *render_data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(render_data == NULL, NULL, "viewerRenderData is NULL");
+
+       Evas_Object *popup = NULL;
+       popup = elm_popup_add(render_data->main_window);
+       D_MSG_RETVM_IF(popup == NULL, NULL, "popup is NULL");
+
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_HEADER_ATTENTION");
+       elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL");
+       elm_popup_timeout_set(popup, 2);
+
+       evas_object_smart_callback_add(popup, "block,clicked", __popup_destroy_cb, render_data);
+       evas_object_smart_callback_add(popup, "timeout", __popup_destroy_cb, render_data);
+       evas_object_show(popup);
+
+       return popup;
+}
+
+
+MSG_BOOL _msg_smil_render_show_inserted_audio(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(path == NULL, FALSE, "path is NULL");
+
+       if (msg_common_is_connected_call()) {
+               D_EMSG("Unable to play during call");
+               viewerRenderData->popup = _msg_smil_render_create_popup(viewerRenderData);
+               return FALSE;
+       }
+
+       if (!msg_file_exists(path)) {
+               D_EMSG("media file is not exist!");
+               return FALSE;
+       }
+
+       /*normal case -- no drm*/
+       if (__msg_smil_render_play_audio_file(viewerRenderData, path, status) == FALSE) {
+               D_EMSG("__msg_smil_render_play_audio_file is failed");
+               _msg_smil_render_stop_playing_file((void *)viewerRenderData);
+               return FALSE;
+       }
+       D_LEAVE;
+       return TRUE;
+}
+
+
+void _msg_smil_render_rotate_video_window(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+
+       viewerRenderData->main_win_rotate = elm_win_rotation_get(viewerRenderData->main_window);
+       D_MSG("main_win_rotate = %d", viewerRenderData->main_win_rotate);
+
+       int content_w = 0;
+       int content_h = 0;
+       int x, y;
+
+       /*Check for window orientation*/
+
+       if (viewerRenderData->video_layout) {
+               if (viewerRenderData->main_win_rotate == 0 || viewerRenderData->main_win_rotate == 180) {       /*PORTRAIT mode*/
+                       /*different layout in case of landscape and portrait images*/
+                       elm_object_signal_emit(viewerRenderData->video_layout, "show,portrait", "*");
+               } else if (viewerRenderData->main_win_rotate == 90 || viewerRenderData->main_win_rotate == 270) {       /*LANDSCAPE mode*/
+                       elm_object_signal_emit(viewerRenderData->video_layout, "show,landscape", "*");
+               } else {
+                       D_EMSG("Invalid orient value");
+                       return;
+               }
+       }
+
+       if (viewerRenderData->image_layout) {
+               edje_object_part_geometry_get(_EDJ(viewerRenderData->image_layout), "image.swallow.content", &x, &y, &content_w, &content_h);
+
+               if (viewerRenderData->main_win_rotate == 0 || viewerRenderData->main_win_rotate == 180) {       /*PORTRAIT mode*/
+                       /*different layout in case of landscape and portrait images*/
+                       if (content_w > content_h)
+                               elm_object_signal_emit(viewerRenderData->image_layout, "show,landscape", "*");
+                       else
+                               elm_object_signal_emit(viewerRenderData->image_layout, "show,portrait", "*");
+               } else if (viewerRenderData->main_win_rotate == 90 || viewerRenderData->main_win_rotate == 270) {       /*LANDSCAPE mode*/
+                       elm_object_signal_emit(viewerRenderData->image_layout, "show,landscape", "*");
+               } else {
+                       D_EMSG("Invalid orient value");
+                       return;
+               }
+       }
+
+       if (viewerRenderData->viewer_body_layout) {
+               if (viewerRenderData->main_win_rotate == 0 || viewerRenderData->main_win_rotate == 180) {       /*PORTRAIT mode*/
+                       /*different layout in case of landscape and portrait images*/
+                       elm_object_signal_emit(viewerRenderData->viewer_body_layout, "show,portrait", "*");
+               } else if (viewerRenderData->main_win_rotate == 90 || viewerRenderData->main_win_rotate == 270) {       /*LANDSCAPE mode*/
+                       elm_object_signal_emit(viewerRenderData->viewer_body_layout, "show,landscape", "*");
+               } else {
+                       D_EMSG("Invalid orient value");
+                       return;
+               }
+       }
+
+       D_LEAVE;
+
+}
+
+
+static MSG_BOOL __msg_smil_render_check_file_validity(SMIL_RENDERER_DATA_S *viewerRenderData, const char *file_path)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(file_path == NULL, FALSE, "file_path is NULL");
+       D_SEC_MSG("file_path = (%s)", file_path);
+
+       int err = 0;
+       metadata_extractor_h handle = NULL;
+
+       err = metadata_extractor_create(&handle);
+
+       if (err == METADATA_EXTRACTOR_ERROR_NONE) {
+               err = metadata_extractor_set_path(handle, file_path);
+
+               if (err != METADATA_EXTRACTOR_ERROR_NONE) {
+                       D_EMSG("metadata_extractor_set_path is failed, %d", err);
+                       metadata_extractor_destroy(handle);
+                       return FALSE;
+               }
+
+               err = metadata_extractor_destroy(handle);
+               if (err != METADATA_EXTRACTOR_ERROR_NONE) {
+                       D_EMSG("metadata_extractor_destroy FAILED err = %x", err);
+                       return FALSE;
+               }
+       } else {
+               D_EMSG("metadata_extractor_create FAILED err = %x", err);
+               return FALSE;
+       }
+
+       D_LEAVE;
+       return TRUE;
+}
+
+
+static MSG_BOOL __msg_smil_render_get_video_size(SMIL_RENDERER_DATA_S *viewerRenderData, const char *file_path, int *width, int *height)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(file_path == NULL, FALSE, "file_path is NULL");
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(width == NULL, FALSE, "width is NULL");
+       D_MSG_RETVM_IF(height == NULL, FALSE, "height is NULL");
+
+       int err = 0;
+       metadata_extractor_h handle = NULL;
+
+       err = metadata_extractor_create(&handle);
+
+       if (err == METADATA_EXTRACTOR_ERROR_NONE) {
+               char *value = NULL;
+               bool rotate = false;
+
+               D_SEC_MSG("file_path = (%s)", file_path);
+
+               err = metadata_extractor_set_path(handle, file_path);
+
+               if (err != METADATA_EXTRACTOR_ERROR_NONE) {
+                       D_EMSG("metadata_extractor_set_path is failed, %d", err);
+                       metadata_extractor_destroy(handle);
+                       return FALSE;
+               }
+
+               /* Get orientation info */
+               err = metadata_extractor_get_metadata(handle, METADATA_ROTATE, &value);
+
+               if (err == METADATA_EXTRACTOR_ERROR_NONE) {
+                       int orient = 0;
+                       if (value) {
+                               orient = atoi(value);
+                               free(value);
+                       }
+
+                       rotate = (orient == 90 || orient == 270) ? true : false;
+               } else {
+                       D_EMSG("metadata_extractor_get_metadata(METADATA_ROTATE) is failed - err(%x)", err);
+                       metadata_extractor_destroy(handle);
+                       return FALSE;
+               }
+
+               err = metadata_extractor_get_metadata(handle, METADATA_VIDEO_WIDTH, &value);
+
+               if (err == METADATA_EXTRACTOR_ERROR_NONE) {
+                       if (value) {
+                               if (rotate)
+                                       *height = atoi(value);
+                               else
+                                       *width = atoi(value);
+
+                               free(value);
+                       }
+               } else {
+                       D_EMSG("metadata_extractor_get_metadata(METADATA_VIDEO_WIDTH) is failed - err(%x)", err);
+                       metadata_extractor_destroy(handle);
+                       return FALSE;
+               }
+
+               err = metadata_extractor_get_metadata(handle, METADATA_VIDEO_HEIGHT, &value);
+
+               if (err == METADATA_EXTRACTOR_ERROR_NONE) {
+                       if (value) {
+                               if (rotate)
+                                       *width = atoi(value);
+                               else
+                                       *height = atoi(value);
+
+                               free(value);
+                       }
+               } else {
+                       D_EMSG("metadata_extractor_get_metadata(METADATA_VIDEO_HEIGHT) is failed - err(%x)", err);
+                       metadata_extractor_destroy(handle);
+                       return FALSE;
+               }
+
+               metadata_extractor_destroy(handle);
+
+               return TRUE;
+       } else {
+               D_EMSG("metadata_extractor_create FAILED err = %x", err);
+       }
+
+       return FALSE;
+}
+
+
+static MSG_BOOL __msg_smil_render_get_resized_content_size(int content_w, int content_h, int *w, int *h)
+{
+       D_MSG_RETVM_IF(w == NULL, FALSE, "w is NULL");
+       D_MSG_RETVM_IF(h == NULL, FALSE, "h is NULL");
+
+       D_MSG("content_w = %d, content_h = %d", content_w, content_h);
+
+       int canvas_width = VIEWER_CANVAS_WIDTH;
+       int canvas_height = (content_w > content_h) ? VIEWER_VIDEO_CANVAS_HEIGHT_LANDSCAPE : VIEWER_VIDEO_CANVAS_HEIGHT_PORTRAIT;
+
+       /*check image size*/
+       if (content_w > canvas_width) {
+               *w = canvas_width;
+               *h = content_h * canvas_width / content_w;
+
+               if (*h > canvas_height) {
+                       *w = content_w * canvas_height / content_h;
+                       *h = canvas_height;
+               }
+       } else if (content_h > canvas_height) {
+               *w = content_w * canvas_height / content_h;
+               *h = canvas_height;
+
+               if (*w > canvas_width) {
+                       *w = canvas_width;
+                       *h = content_h * canvas_width / content_w;
+               }
+       } else if (content_w <= canvas_width && content_h <= canvas_height) {
+               *w = content_w * canvas_height / content_h;
+               *h = canvas_height;
+       } else {
+               D_EMSG("Invalid case");
+               *w = content_w;
+               *h = content_h;
+       }
+
+       /*make size as even number becasue of hardware limitation*/
+       if (*w % 2)
+        *w = *w - 1;
+
+       if (*h % 2)
+        *h = *h - 1;
+
+       /*make size as multiples of 16 because of hardware limitation, C110*/
+       int remained = 0;
+       if ((remained = *w % 16))
+               *w = *w - remained;
+
+       if ((remained = *h % 16))
+               *h = *h - remained;
+
+       D_MSG("Result content width = %d, height = %d", *w, *h);
+       return TRUE;
+}
+
+
+static void __msg_smil_render_create_video_image(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+       int resized_width = 0;
+       int resized_height = 0;
+
+       if (!__msg_smil_render_get_resized_content_size(viewerRenderData->video_width, viewerRenderData->video_height, &resized_width, &resized_height)) {
+               D_EMSG("__msg_smil_render_get_resized_content_size is failed");
+               resized_width = viewerRenderData->viewer_width;
+               resized_height = viewerRenderData->viewer_landscape_height;
+       }
+       D_MSG("Image resized_width = %d, resized_height = %d", resized_width, resized_height);
+
+       viewerRenderData->resized_width = resized_width;
+       viewerRenderData->resized_height = resized_height;
+
+       Evas_Object *layout = elm_layout_add(viewerRenderData->layout_main);
+       elm_layout_file_set(layout, MSG_VIEWER_THEME, "video_layout");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       Evas_Object *bg = elm_bg_add(layout);
+       evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_resize(bg, viewerRenderData->resized_width, viewerRenderData->resized_height);
+       evas_object_size_hint_min_set(bg, viewerRenderData->resized_width, viewerRenderData->resized_height);
+       evas_object_color_set(bg, 0, 0, 0, 255);
+       evas_object_show(bg);
+       elm_object_part_content_set(layout, "bg.swallow", bg);
+
+
+       /*create image object for video image*/
+       Evas_Object *video_image = NULL;
+       video_image = elm_image_add(layout);
+       evas_object_size_hint_align_set(video_image, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(video_image, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_resize(video_image, viewerRenderData->resized_width, viewerRenderData->resized_height);
+       evas_object_size_hint_min_set(video_image, viewerRenderData->resized_width, viewerRenderData->resized_height);
+       elm_object_part_content_set(layout, "swallow.thumbnail", video_image);
+       elm_image_aspect_fixed_set(video_image, EINA_FALSE);
+       evas_object_show(video_image);
+
+       Evas_Object *video_sink = elm_image_object_get(video_image);
+       evas_object_image_size_set(video_sink, viewerRenderData->resized_width, viewerRenderData->resized_height);
+       evas_object_image_fill_set(video_sink, 0, 0, viewerRenderData->resized_width, viewerRenderData->resized_height);
+
+       viewerRenderData->video_layout = layout;
+       viewerRenderData->video_bg = bg;
+       viewerRenderData->video_image = video_image;
+       viewerRenderData->video_sink = video_sink;
+
+       /*Check for window orientation*/
+
+       int rotate = elm_win_rotation_get(viewerRenderData->main_window);
+
+       if (rotate == 0 || rotate == 180) {     /*PORTRAIT mode*/
+               /*different layout in case of landscape and portrait images*/
+               elm_object_signal_emit(viewerRenderData->video_layout, "show,portrait", "*");
+       } else if (rotate == 90 || rotate == 270) {     /*LANDSCAPE mode*/
+               elm_object_signal_emit(viewerRenderData->video_layout, "show,landscape", "*");
+       } else {
+               D_EMSG("Invalid orient value");
+               return;
+       }
+
+       /*set video image buffer to display as black screen*/
+       int *buffer = evas_object_image_data_get(viewerRenderData->video_sink, EINA_TRUE);
+       if (buffer) {
+               memset(buffer, 0, (resized_width * resized_height * 4));
+               evas_object_image_data_set(viewerRenderData->video_sink, buffer);
+       }
+
+       SMIL_SLIDE_INFO_S *curSlideInfo = NULL;
+       MSG_BOOL istexttop = FALSE;
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(viewerRenderData->smilhandle);
+
+       curSlideInfo = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, 0);
+       if (curSlideInfo) {
+               if (curSlideInfo->pageInfo)
+                       istexttop = curSlideInfo->pageInfo->isTexttop;
+       } else {
+               D_EMSG("curSlideInfo is NULL!");
+       }
+
+       /* Arrange the layout in accordance with REGION order */
+       if (istexttop && viewerRenderData->viewer_body) {
+               D_MSG("REGION (VIDEO & TEXT) & TEXT TOP");
+
+               if (viewerRenderData->viewer_body_mid_padding)
+                       elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->video_layout, viewerRenderData->viewer_body_mid_padding);
+       } else if (!istexttop) {
+               D_MSG("REGION (VIDEO & TEXT) & VIDEO TOP");
+
+               if (viewerRenderData->viewer_body_top_padding)
+                       elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->video_layout, viewerRenderData->viewer_body_top_padding);
+
+               if (viewerRenderData->viewer_body_mid_padding) {
+                       elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding);
+                       elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->video_layout);
+               }
+       } else {
+               D_MSG("REGION (VIDEO ONLY)");
+
+               if (viewerRenderData->viewer_body_top_padding)
+                       elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->video_layout, viewerRenderData->viewer_body_top_padding);
+
+               if (viewerRenderData->viewer_body_mid_padding) {
+                       elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding);
+                       elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->video_layout);
+               }
+       }
+}
+
+static MSG_BOOL __msg_smil_render_play_video_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(path == NULL, FALSE, "path is NULL");
+       int video_width = 0;
+       int video_height = 0;
+
+       /*get width, height size of video content*/
+       if (!__msg_smil_render_get_video_size(viewerRenderData, path, &video_width, &video_height))
+               D_EMSG("__msg_smil_render_get_video_size is failed");
+
+       D_MSG("video_width = %d, video_height = %d", video_width, video_height);
+       if (video_width == 0 || video_height == 0) {
+               video_width = VIEWER_VIDEO_WIDTH;
+               video_height = VIEWER_VIDEO_HEIGHT;
+       }
+
+       /*set original video content size.*/
+       viewerRenderData->video_width = video_width;
+       viewerRenderData->video_height = video_height;
+
+       /*create Evas object image for video*/
+       if (!viewerRenderData->video_image)
+               __msg_smil_render_create_video_image(viewerRenderData);
+
+       if (!__msg_smil_render_player_mgr_create(viewerRenderData)) {
+               D_EMSG("__msg_smil_render_player_mgr_create is failed");
+               return FALSE;
+       }
+
+       if (!__msg_smil_render_player_mgr_set_attribute(viewerRenderData, path, MMS_SMIL_MEDIA_VIDEO)) {
+               D_EMSG("__msg_smil_render_player_mgr_set_attribute is failed");
+               return FALSE;
+       }
+       if (!__msg_smil_render_player_mgr_set_player_cb((void *)viewerRenderData)) {
+               D_EMSG("__msg_smil_render_player_mgr_set_player_cb is failed");
+               return FALSE;
+       }
+
+       if (!__msg_smil_render_player_mgr_realize((void *)viewerRenderData)) {
+               D_EMSG("__msg_smil_render_player_mgr_realize is failed");
+               return FALSE;
+       }
+
+       /* Don't start PLAYER until UI Callback request is received */
+
+       return TRUE;
+}
+
+
+MSG_BOOL _msg_smil_render_show_inserted_video(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(path == NULL, FALSE, "path is NULL");
+       SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle = _msg_smil_get_event_mgr(viewerRenderData->smilhandle);
+
+       if (msg_common_is_connected_call()) {
+               D_EMSG("Unable to play during call");
+               viewerRenderData->popup = _msg_smil_render_create_popup(viewerRenderData);
+               return FALSE;
+       }
+
+       if (!msg_file_exists(path)) {
+               D_EMSG("media file is not exist!");
+               return FALSE;
+       }
+
+       if (!__msg_smil_render_check_file_validity(viewerRenderData, path)) {
+               D_EMSG("__msg_smil_render_check_file_validity is failed");
+               return FALSE;
+       }
+
+       _msg_smil_event_mgr_set_invalid_video_ro(smilEvntMgrHndle, FALSE);
+
+       /*normal case -- no drm*/
+       if (__msg_smil_render_play_video_file(viewerRenderData, path, status) == FALSE) {
+               D_EMSG("__msg_smil_render_play_video_file is failed");
+               if (viewerRenderData->video_image) {
+                       evas_object_del(viewerRenderData->video_image);
+                       viewerRenderData->video_image = NULL;
+               }
+               _msg_smil_render_stop_playing_file((void *)viewerRenderData);
+               __msg_smil_render_show_image_file(viewerRenderData, path, VIEWER_IMAGE_TYPE_UNSUPPORTED);
+               return FALSE;
+       }
+
+       D_LEAVE;
+       return TRUE;
+}
+
+static void __msg_smil_render_show_image_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_RENDER_IMAGE_TYPE_E imageType)
+{
+       D_MSG_RETM_IF(viewerRenderData == NULL, "viewerRenderData is NULL");
+       D_MSG_RETM_IF(path == NULL, "path is NULL");
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(viewerRenderData->smilhandle);
+
+       D_SEC_MSG("path = %s", path);
+       D_MSG("imageType = %d", imageType);
+
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_DEBUG, viewerRenderData->viewer_content_box == NULL, "Invalid argument: viewer_content_box is NULL");
+
+       /*create image above image_layout*/
+       viewerRenderData->image_layout = elm_layout_add(viewerRenderData->layout_main);
+       elm_layout_file_set(viewerRenderData->image_layout, MSG_VIEWER_THEME, "image_layout");
+
+       evas_object_size_hint_weight_set(viewerRenderData->image_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(viewerRenderData->image_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       Evas_Object *ic = elm_image_add(viewerRenderData->image_layout);
+       MSG_UI_RETM_IF(MSG_UI_LEVEL_DEBUG, ic == NULL, "attached image add failed");
+
+       if (imageType == VIEWER_IMAGE_TYPE_UNSUPPORTED) {
+               elm_image_file_set(ic, MSG_IMAGES_EDJ, MSG_VIEWER_IMAGE_UNSUPPORT_ICON);
+       } else {
+               elm_image_file_set(ic, path, NULL);
+       }
+
+       if (elm_image_animated_available_get(ic)) {
+               D_MSG("Animated image");
+               elm_image_animated_set(ic, EINA_TRUE);
+
+               SMIL_SLIDE_INFO_S *curSlide = _msg_smil_cont_mgr_get_cur_slide(smilContMgrHndle);
+
+               if (curSlide && (curSlide->slideStatus == PLAYER_STATUS_PLAYING))
+                       elm_image_animated_play_set(ic, EINA_TRUE);
+               else
+                       elm_image_animated_play_set(ic, EINA_FALSE);
+       }
+
+       if (imageType == VIEWER_IMAGE_TYPE_NORMAL) {
+               int w = 0;
+               int h = 0;
+
+               elm_image_object_size_get(ic, &w, &h);
+               evas_object_size_hint_min_set(ic, ELM_SCALE_SIZE(w), ELM_SCALE_SIZE(h));
+               evas_object_size_hint_max_set(ic, ELM_SCALE_SIZE(w), ELM_SCALE_SIZE(h));
+       } else {
+               evas_object_size_hint_min_set(ic, ELM_SCALE_SIZE(88), ELM_SCALE_SIZE(88));      /* DRM, Unsupported ICON size */
+               evas_object_size_hint_max_set(ic, ELM_SCALE_SIZE(88), ELM_SCALE_SIZE(88));
+       }
+
+       elm_object_part_content_set(viewerRenderData->image_layout, "image.swallow.content", ic);
+
+       viewerRenderData->insert_image = ic;
+
+       /* Arrange the image in accordance with REGION order */
+       MSG_BOOL istexttop = FALSE;
+       SMIL_SLIDE_INFO_S *curSlideInfo = NULL;
+
+       curSlideInfo = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, 0);
+
+       if (curSlideInfo) {
+               if (curSlideInfo->pageInfo)
+                       istexttop = curSlideInfo->pageInfo->isTexttop;
+       } else {
+               D_EMSG("curSlideInfo is NULL!");
+       }
+
+       if (istexttop && viewerRenderData->viewer_body) {
+               D_MSG("REGION (IMAGE & TEXT) & TEXT TOP");
+
+               if (imageType == VIEWER_IMAGE_TYPE_UNSUPPORTED) {
+                       viewerRenderData->insert_unsupported_icon = ic;
+
+                       if (viewerRenderData->viewer_body_mid_padding)
+                               elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->insert_unsupported_icon, viewerRenderData->viewer_body_mid_padding);
+               } else {
+                       viewerRenderData->insert_image = ic;
+
+                       if (viewerRenderData->viewer_body_mid_padding)
+                               elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->insert_image, viewerRenderData->viewer_body_mid_padding);
+               }
+       } else if (!istexttop) {
+               D_MSG("REGION (IMAGE & TEXT) & IMAGE TOP");
+               viewerRenderData->insert_image = ic;
+
+               elm_box_align_set(viewerRenderData->viewer_content_box, 0, 0.5);
+               if (viewerRenderData->viewer_body_top_padding)
+                       elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->image_layout, viewerRenderData->viewer_body_top_padding);
+
+               if (viewerRenderData->viewer_body_mid_padding) {
+                       elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding);
+                       elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->image_layout);
+               }
+       } else {
+               D_MSG("REGION (IMAGE ONLY)");
+               viewerRenderData->insert_image = ic;
+
+               if (viewerRenderData->viewer_body_top_padding)
+                       elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->image_layout, viewerRenderData->viewer_body_top_padding);
+
+               if (viewerRenderData->viewer_body_mid_padding) {
+                       elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding);
+                       elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->image_layout);
+               }
+       }
+
+       evas_object_show(viewerRenderData->image_layout);
+       D_LEAVE;
+}
+
+
+MSG_BOOL _msg_smil_render_show_inserted_image(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(path == NULL, FALSE, "path is NULL");
+
+       if (access(path, R_OK) == 0) {
+                /*no drm case*/
+               MSG_BOOL unsupported_image = FALSE;
+               if (!strcmp(path, MSG_VIEWER_IMAGE_UNSUPPORT_ICON))
+                       unsupported_image = TRUE;
+
+               if (unsupported_image)
+                       __msg_smil_render_show_image_file(viewerRenderData, path, VIEWER_IMAGE_TYPE_UNSUPPORTED);
+               else
+                       __msg_smil_render_show_image_file(viewerRenderData, path, VIEWER_IMAGE_TYPE_NORMAL);
+       } else
+               D_EMSG("access is failed");
+
+       D_LEAVE;
+       return TRUE;
+}
+
+MSG_BOOL _msg_smil_render_mgr_request_player_start(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+
+       SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
+
+       if (__msg_smil_render_player_mgr_play(viewerRenderData)) {
+               SMIL_SLIDE_INFO_S *current_slide_data = _msg_smil_get_current_slide_info(viewerRenderData->smilhandle);
+
+               if (current_slide_data != NULL && current_slide_data->pageInfo) {
+                       if (current_slide_data->pageInfo->hasAudio) {
+                               if (viewerRenderData->ismute) {
+                                       if (!__msg_smil_render_player_mgr_mute((void *)viewerRenderData))
+                                               D_EMSG("__msg_smil_render_player_mgr_mute is Fail");
+                               }
+                       }
+               }
+       } else {
+               D_EMSG("_msg_smil_render_player_mgr_play is failed");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
diff --git a/viewer/smil-player/src/msg-smil-player-interface.c b/viewer/smil-player/src/msg-smil-player-interface.c
new file mode 100755 (executable)
index 0000000..26cfd3a
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-smil-player-interface.h"
+#include "msg-smil-player.h"
+#include "msg-smil-util.h"
+
+/*================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+MSG_SMIL_ERROR_E msg_smil_create_smil_player(msg_struct_t msg_info_t, void *callBack, void *userData , void **instance)
+{
+       return _msg_smil_create_smil_player(msg_info_t, callBack, userData, instance);
+}
+
+void msg_smil_destroy_smil_player(void *smilhandle)
+{
+       _msg_smil_destroy_smil_player(smilhandle);
+}
+
+int msg_smil_get_current_slide_idx(void *hSmilHandle)
+{
+       return _msg_smil_get_current_slide_idx(hSmilHandle);
+}
+
+SMIL_PLAYER_STATUS_E msg_smil_get_current_slide_status(void *hSmilHandle)
+{
+       return _msg_smil_get_current_slide_status(hSmilHandle);
+}
+
+MSG_SMIL_ERROR_E msg_smil_on_slide_event_handler(void **hSmilHandle, SMIL_PLAYER_EVENT_E playerEvent)
+{
+       return _msg_smil_player_on_slide_event_handler(hSmilHandle, playerEvent);
+}
+
+MSG_BOOL msg_smil_create_smil_player_layout(void *hSmilHandle, void* layout)
+{
+       return _msg_smil_create_smil_player_layout(hSmilHandle, layout);
+}
+
+MSG_BOOL msg_smil_set_smil_player_layout_size(void *hSmilHandle, SMIL_POSITION_S *left_top, SMIL_POSITION_S *right_bottom)
+{
+       return _msg_smil_set_smil_player_layout_size(hSmilHandle, left_top, right_bottom);
+}
+
+MSG_BOOL msg_smil_set_smil_player_help_page_cb(void *hSmilHandle, void* callBack, void *userData)
+{
+       return _msg_smil_set_smil_player_help_page_cb(hSmilHandle, callBack, userData);
+}
+
+MSG_BOOL msg_smil_set_smil_player_entry_handle_cb(void *hSmilHandle, void* callBack)
+{
+       return _msg_smil_set_smil_player_entry_handle_cb(hSmilHandle, callBack);
+}
+
+SMIL_SLIDE_INFO_S *msg_smil_get_current_slide_info(void *hSmilHandle)
+{
+       return _msg_smil_get_current_slide_info(hSmilHandle);
+}
+
+MSG_BOOL msg_smil_get_slide_time(void *hSmilHandle, int slideIdx, MSG_BOOL bExcludeHp, double *slideTime)
+{
+       return _msg_smil_get_slide_time(hSmilHandle, slideIdx, bExcludeHp, slideTime);
+}
+
+MSG_BOOL msg_smil_request_player_start(void *hSmilHandle)
+{
+       return _msg_smil_request_player_start(hSmilHandle);
+}
diff --git a/viewer/smil-player/src/msg-smil-player.c b/viewer/smil-player/src/msg-smil-player.c
new file mode 100755 (executable)
index 0000000..7758afb
--- /dev/null
@@ -0,0 +1,469 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-smil-types.h"
+#include "msg-smil-player.h"
+#include "msg-smil-util.h"
+
+/*================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+MSG_SMIL_ERROR_E _msg_smil_create_smil_player(msg_struct_t msg_info_t, void *callBack, void *userData, void **instance)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(msg_info_t == NULL, MSG_ERR_SMIL_NULL_MESSAGE, "msg_info_t is NULL");
+       D_MSG_RETVM_IF(callBack == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "callback is NULL");
+       D_MSG_RETVM_IF(userData == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "userData is NULL");
+       D_MSG_RETVM_IF(instance == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "instance is NULL");
+       MSG_SMIL_ERROR_E err = MSG_ERR_SMIL_UNKNOWN;
+       SMIL_HANDLER_S *smilPlayerHndle = NULL;
+
+       /*Allocate memory for smilPlayerHandler*/
+       smilPlayerHndle = (SMIL_HANDLER_S *)calloc(1, sizeof(SMIL_HANDLER_S));
+       if (smilPlayerHndle == NULL) {
+               D_EMSG("calloc is failed");
+               *instance = NULL;
+               return MSG_ERR_SMIL_INVALID_STORAGE;
+       }
+
+       /*Create Content Manager Handler*/
+       err = _msg_smil_create_content_mgr(msg_info_t, &smilPlayerHndle->smilContMgrHndle);
+       if (err != MSG_SMIL_SUCCESS) {
+               D_EMSG("_msg_smil_create_content_mgr is failed");
+               if (smilPlayerHndle) {
+                       free(smilPlayerHndle);
+                       smilPlayerHndle = NULL;
+               }
+               *instance = NULL;
+               return err;
+       }
+
+       /*Create Event Manager Handler*/
+       err = _msg_smil_create_event_mgr(callBack, userData, &smilPlayerHndle->smilEvntMgrHndle);
+       if (err != MSG_SMIL_SUCCESS) {
+               D_EMSG("_msg_smil_create_event_mgr is failed");
+               _msg_smil_destroy_content_mgr(smilPlayerHndle->smilContMgrHndle);
+               smilPlayerHndle->smilContMgrHndle = NULL;
+
+               if (smilPlayerHndle) {
+                       free(smilPlayerHndle);
+                       smilPlayerHndle = NULL;
+               }
+               *instance = NULL;
+               return err;
+       }
+       smilPlayerHndle->smilEvntMgrHndle->smilhandle = smilPlayerHndle;
+
+       /*Create & Initialize Reder handle*/
+       err = _msg_smil_create_render(&smilPlayerHndle->smilRenderer);
+       if (err != MSG_SMIL_SUCCESS) {
+               _msg_smil_destroy_content_mgr(smilPlayerHndle->smilContMgrHndle);
+               smilPlayerHndle->smilContMgrHndle = NULL;
+
+               _msg_smil_destroy_event_mgr(smilPlayerHndle->smilEvntMgrHndle);
+               smilPlayerHndle->smilEvntMgrHndle = NULL;
+
+               if (smilPlayerHndle) {
+                       free(smilPlayerHndle);
+                       smilPlayerHndle = NULL;
+               }
+               *instance = NULL;
+               return err;
+       }
+       _msg_smil_init_render(smilPlayerHndle->smilRenderer);
+       smilPlayerHndle->smilRenderer->msg_info_t = msg_info_t;
+       smilPlayerHndle->smilRenderer->smilhandle = smilPlayerHndle;
+
+       *instance = (void *)smilPlayerHndle;
+
+       D_LEAVE;
+       return MSG_SMIL_SUCCESS;
+}
+
+
+void _msg_smil_destroy_smil_player(void *smilhandle)
+{
+       D_ENTER;
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)smilhandle;
+       D_MSG_RETM_IF(smilPlayerHndle == NULL, "smilPlayerHandl is NULL");
+
+       _msg_smil_destroy_content_mgr(smilPlayerHndle->smilContMgrHndle);
+       smilPlayerHndle->smilContMgrHndle = NULL;
+
+       _msg_smil_destroy_event_mgr(smilPlayerHndle->smilEvntMgrHndle);
+       smilPlayerHndle->smilEvntMgrHndle = NULL;
+
+       _msg_smil_destroy_render(smilPlayerHndle->smilRenderer);
+       smilPlayerHndle->smilRenderer = NULL;
+
+       free(smilPlayerHndle);
+
+       D_LEAVE;
+}
+
+
+SMIL_CONTENT_MGR_HANDLE_S *_msg_smil_get_content_mgr(void *hSmilHandle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(hSmilHandle == NULL, NULL, "hSmilHandle is NULL");
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
+
+       return smilPlayerHndle->smilContMgrHndle;
+}
+
+
+SMIL_EVENT_MGR_HANDLE_S *_msg_smil_get_event_mgr(void *hSmilHandle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(hSmilHandle == NULL, NULL, "hSmilHandle is NULL");
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
+
+       return smilPlayerHndle->smilEvntMgrHndle;
+}
+
+
+SMIL_RENDERER_DATA_S *_msg_smil_get_renderder(void *hSmilHandle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(hSmilHandle == NULL, NULL, "hSmilHandle is NULL");
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
+
+       return smilPlayerHndle->smilRenderer;
+}
+
+
+int _msg_smil_get_current_slide_idx(void *hSmilHandle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(hSmilHandle == NULL, MSG_MMS_SLIDE_INVALID, "hSmilHandle is NULL");
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
+
+       return _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle);
+}
+
+
+SMIL_PLAYER_STATUS_E _msg_smil_get_current_slide_status(void *hSmilHandle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(hSmilHandle == NULL, PLAYER_STATUS_NONE, "hSmilHandle is NULL");
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
+
+       return _msg_smil_cont_mgr_get_cur_slide_status(smilPlayerHndle->smilContMgrHndle);
+}
+
+
+SMIL_SLIDE_INFO_S *_msg_smil_get_current_slide_info(void *hSmilHandle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(hSmilHandle == NULL, NULL, "hSmilHandle is NULL");
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
+
+       return _msg_smil_cont_mgr_get_cur_slide(smilPlayerHndle->smilContMgrHndle);
+}
+
+
+MSG_SMIL_ERROR_E _msg_smil_player_on_slide_event_handler(void **hSmilHandle, SMIL_PLAYER_EVENT_E playerEvent)
+{
+       D_MSG_RETVM_IF(playerEvent == PLAYER_EVENT_NONE, MSG_ERR_SMIL_EVENT_NONE, "playerEvent is PLAYER_EVENT_NONE");
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)(*hSmilHandle);
+       D_MSG_RETVM_IF(smilPlayerHndle == NULL, MSG_ERR_SMIL_NULL_MESSAGE, "smilPlayerHndle is NULL");
+       int slideIdx = 0;
+       int mediaType = MMS_SMIL_MEDIA_INVALID;
+       MSG_SMIL_ERROR_E err = MSG_ERR_SMIL_UNKNOWN;
+       SMIL_TIMER_CALLBACK_DATA_S *slideTimerCbData = _msg_smil_event_mgr_get_timer_cb_data(smilPlayerHndle->smilEvntMgrHndle);
+       SMIL_SLIDE_EVENT_PARAM_S *curSlideParam = _msg_smil_event_mgr_get_slide_event_param_data(smilPlayerHndle->smilEvntMgrHndle);
+
+       D_MSG_RETVM_IF(slideTimerCbData == NULL, MSG_ERR_SMIL_NULL_MESSAGE, "slideTimerCbData is NULL");
+       D_MSG_RETVM_IF(curSlideParam == NULL, MSG_ERR_SMIL_NULL_MESSAGE, "curSlideParam is NULL");
+       D_MSG("playerEvent = %d", playerEvent);
+
+       if (_msg_smil_event_mgr_is_slide_active(smilPlayerHndle->smilEvntMgrHndle)) {
+               SMIL_SLIDE_INFO_S *curSlide = _msg_smil_cont_mgr_get_cur_slide(smilPlayerHndle->smilContMgrHndle);
+               if (curSlide != NULL && curSlide->pageInfo) {
+                       /* if page has audio or video, image and text is not needed to checked. */
+                       if (curSlide->pageInfo->hasAudio)
+                               mediaType = MMS_SMIL_MEDIA_AUDIO;
+                       else if (curSlide->pageInfo->hasVideo)
+                               mediaType = MMS_SMIL_MEDIA_VIDEO;
+                       else if (curSlide->pageInfo->hasImage)
+                               mediaType = MMS_SMIL_MEDIA_IMG;
+                       else if (curSlide->pageInfo->hasText)
+                               mediaType = MMS_SMIL_MEDIA_TEXT;
+               }
+               D_MSG("mediaType = %d", mediaType);
+       }
+
+       /* PREV/NEXT EVENT skip condition*/
+       if (playerEvent == PLAYER_EVENT_PREV_SLIDE) {
+               if (_msg_smil_event_mgr_is_slide_active(smilPlayerHndle->smilEvntMgrHndle)) {
+                       int current_slide = _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle);
+                       int total_page_count = _msg_smil_cont_mgr_get_total_slide_count(smilPlayerHndle->smilContMgrHndle);
+                       D_MSG("current_slide = %d, total_page_count = %d", current_slide, total_page_count);
+
+                       /*if first page or multipart.mixed message, then return err*/
+                       if (current_slide == 0 || total_page_count == 0) {
+                               return MSG_ERR_SMIL_INVALID_SLIDE;
+                       }
+               }
+       } else if (playerEvent == PLAYER_EVENT_NEXT_SLIDE) {
+               if (_msg_smil_event_mgr_is_slide_active(smilPlayerHndle->smilEvntMgrHndle)) {
+                       MSG_BOOL isLastSlide = curSlideParam->isLastSlide;
+                       int total_page_count = _msg_smil_cont_mgr_get_total_slide_count(smilPlayerHndle->smilContMgrHndle);
+                       D_MSG("isLastSlide = %d, total_page_count = %d", isLastSlide, total_page_count);
+
+                       /*if last page or multipart.mixed message, then return err*/
+                       if (isLastSlide || total_page_count == 0) {
+                               return MSG_ERR_SMIL_INVALID_SLIDE;
+                       }
+               }
+       }
+
+       switch (playerEvent) {
+       case PLAYER_EVENT_ROTATE_WINDOW:
+               _msg_smil_render_rotate_video_window(smilPlayerHndle->smilRenderer);
+               err = MSG_SMIL_SUCCESS;
+               break;
+       case PLAYER_EVENT_READY:
+       case PLAYER_EVENT_PREVIEW_READY:
+               if (playerEvent == PLAYER_EVENT_PREVIEW_READY)
+                       _msg_smil_cont_mgr_delete_help_page(smilPlayerHndle->smilRenderer->msg_info_t, smilPlayerHndle->smilContMgrHndle);      /* delete help page */
+
+               _msg_smil_event_mgr_set_current_slide(smilPlayerHndle->smilEvntMgrHndle, NULL);
+               _msg_smil_event_mgr_set_page_action_type(smilPlayerHndle->smilEvntMgrHndle, PAGE_EVENT_PLAY);
+               err = _msg_smil_event_mgr_ready(smilPlayerHndle->smilEvntMgrHndle);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("_msg_smil_event_mgr_play_slide is failed: PLAYER_EVENT_READY");
+                       return err;
+               }
+               break;
+       case PLAYER_EVENT_START:
+               err = _msg_smil_event_mgr_start(smilPlayerHndle->smilEvntMgrHndle);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("_msg_smil_event_mgr_start_slide_event is failed: PLAYER_EVENT_START");
+                       return err;
+               }
+               break;
+       case PLAYER_EVENT_PLAY:
+               _msg_smil_event_mgr_set_video_endofstream(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               if (slideTimerCbData->timerHandle) {
+                       err = _msg_smil_event_mgr_stop_slide(smilPlayerHndle->smilEvntMgrHndle);
+                       if (err != MSG_SMIL_SUCCESS) {
+                               D_EMSG("_msg_smil_event_mgr_stop_slide is failed: PLAYER_EVENT_PLAY");
+                               return err;
+                       }
+
+                       _msg_smil_render_stop_playing_file(smilPlayerHndle->smilRenderer);
+               }
+
+               _msg_smil_event_mgr_set_current_slide(smilPlayerHndle->smilEvntMgrHndle, NULL);
+               _msg_smil_event_mgr_set_page_action_type(smilPlayerHndle->smilEvntMgrHndle, PAGE_EVENT_PLAY);
+               err = _msg_smil_event_mgr_play_slide(smilPlayerHndle->smilEvntMgrHndle, slideIdx);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("_msg_smil_event_mgr_play_slide is failed: PLAYER_EVENT_PLAY");
+                       return err;
+               }
+               break;
+       case PLAYER_EVENT_PAUSE:
+               err = _msg_smil_event_mgr_pause_slide(smilPlayerHndle->smilEvntMgrHndle);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("_msg_smil_event_mgr_pause_slide is failed: PLAYER_EVENT_PAUSE");
+                       if (slideTimerCbData->timerHandle == NULL) {
+                               int pageIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle);
+                               _msg_smil_event_mgr_resume_slide(smilPlayerHndle->smilEvntMgrHndle, pageIdx);
+                       }
+
+                       return err;
+               }
+
+               if (_msg_smil_render_pause(smilPlayerHndle->smilRenderer, mediaType) == FALSE) {
+                       D_EMSG("_msg_smil_render_pause is failed: PLAYER_EVENT_PAUSE");
+                       int pageIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle);
+                       _msg_smil_event_mgr_resume_slide(smilPlayerHndle->smilEvntMgrHndle, pageIdx);
+
+                       return MSG_ERR_SMIL_PAUSE_SLIDE_RENDER_FAILURE;
+               }
+               break;
+       case PLAYER_EVENT_STOP:
+               /*reset event media info*/
+               _msg_smil_event_mgr_set_is_video_media(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_unsupported_content(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_invalid_video_ro(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_video_endofstream(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_last_slide(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_last_slide_is_help_page(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+
+               err = _msg_smil_event_mgr_stop_slide(smilPlayerHndle->smilEvntMgrHndle);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("_msg_smil_event_mgr_stop_slide is failed: PLAYER_EVENT_STOP");
+                       return err;
+               }
+               _msg_smil_render_stop_playing_file(smilPlayerHndle->smilRenderer);
+               break;
+       case PLAYER_EVENT_RESUME:
+               err = _msg_smil_event_mgr_resume_slide(smilPlayerHndle->smilEvntMgrHndle, _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle));
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("_msg_smil_event_mgr_resume_slide is failed; PLAYER_EVENT_RESUME");
+                       return err;
+               }
+
+               if (_msg_smil_render_resume(smilPlayerHndle->smilRenderer, mediaType) == FALSE) {
+                       D_EMSG("_msg_smil_render_resume is failed: PLAYER_EVENT_RESUME");
+                       return MSG_ERR_SMIL_RESUME_SLIDE_RENDER_FAILURE;
+               }
+               break;
+       case PLAYER_EVENT_NEXT_SLIDE:
+               D_MSG("PLAYER_EVENT_NEXT_SLIDE");
+               err = _msg_smil_event_mgr_stop_slide(smilPlayerHndle->smilEvntMgrHndle);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("_msg_smil_event_mgr_stop_slide is failed: PLAYER_EVENT_NEXT_SLIDE");
+                       return err;
+               }
+               _msg_smil_render_stop_playing_file(smilPlayerHndle->smilRenderer);
+
+               _msg_smil_event_mgr_set_is_video_media(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_unsupported_content(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_invalid_video_ro(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_video_endofstream(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_page_action_type(smilPlayerHndle->smilEvntMgrHndle, PAGE_EVENT_MOVE_TO_NEXT);
+
+               /*Incrementing the slide index in order to move to the next slide*/
+               slideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle);
+               slideIdx += MSG_MMS_SMIL_SLIDEIDX_INCREMENT;
+               _msg_smil_cont_mgr_set_cur_slide_idx(smilPlayerHndle->smilContMgrHndle, slideIdx);
+
+               err = _msg_smil_event_mgr_play_slide(smilPlayerHndle->smilEvntMgrHndle, slideIdx);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("_msg_smil_event_mgr_play_slide is failed : PLAYER_EVENT_NEXT_SLIDE");
+                       slideIdx -= MSG_MMS_SMIL_SLIDEIDX_INCREMENT;
+                       _msg_smil_cont_mgr_set_cur_slide_idx(smilPlayerHndle->smilContMgrHndle, slideIdx);
+                       return err;
+               }
+               break;
+       case PLAYER_EVENT_PREV_SLIDE:
+               D_MSG("PLAYER_EVENT_PREV_SLIDE");
+               err = _msg_smil_event_mgr_stop_slide(smilPlayerHndle->smilEvntMgrHndle);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("_msg_smil_event_mgr_stop_slide is failed : PLAYER_EVENT_PREV_SLIDE");
+                       return err;
+               }
+               _msg_smil_render_stop_playing_file(smilPlayerHndle->smilRenderer);
+
+               _msg_smil_event_mgr_set_is_video_media(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_unsupported_content(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_invalid_video_ro(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_video_endofstream(smilPlayerHndle->smilEvntMgrHndle, FALSE);
+               _msg_smil_event_mgr_set_page_action_type(smilPlayerHndle->smilEvntMgrHndle, PAGE_EVENT_MOVE_TO_PREV);
+
+               /*Decrement the Slide Index for fetching the appropriate slide content.*/
+               slideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle);
+               slideIdx -= MSG_MMS_SMIL_SLIDEIDX_DECREMENT;
+               _msg_smil_cont_mgr_set_cur_slide_idx(smilPlayerHndle->smilContMgrHndle, slideIdx);
+
+               err = _msg_smil_event_mgr_play_slide(smilPlayerHndle->smilEvntMgrHndle, slideIdx);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("_msg_smil_event_mgr_play_slide is failed : PLAYER_EVENT_PREV_SLIDE");
+                       slideIdx += MSG_MMS_SMIL_SLIDEIDX_DECREMENT;
+                       _msg_smil_cont_mgr_set_cur_slide_idx(smilPlayerHndle->smilContMgrHndle, slideIdx);
+                       return err;
+               }
+               break;
+       case PLAYER_EVENT_DESTROY_SCREEN:
+               _msg_smil_event_mgr_set_render_event(smilPlayerHndle->smilEvntMgrHndle, SMIL_RENDER_EVENT_DESTROY_SCREEN);
+               err = _msg_smil_render_on_slide_render_handler(smilPlayerHndle->smilRenderer, curSlideParam);
+               if (err != MSG_SMIL_SUCCESS)
+                       D_EMSG("_msg_smil_render_on_slide_render_handler failed err = %d", err);
+               break;
+       case PLAYER_EVENT_MUTE:
+               D_MSG("PLAYER_EVENT_MUTE");
+               _msg_smil_render_set_mute(smilPlayerHndle->smilRenderer, TRUE);
+               err = MSG_SMIL_SUCCESS;
+               break;
+       default:
+               D_EMSG("In default");
+               err = MSG_ERR_SMIL_UNKNOWN;
+               break;
+       }
+
+       if (err != MSG_SMIL_SUCCESS) {
+               D_EMSG("_msg_smil_player_on_slide_event_handler is failed %d", err);
+               return err;
+       }
+       D_LEAVE;
+       return MSG_SMIL_SUCCESS;
+}
+
+
+MSG_BOOL _msg_smil_create_smil_player_layout(void *hSmilHandle, void *layout)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(hSmilHandle == NULL, FALSE, "hSmilHandle is NULL");
+       D_MSG_RETVM_IF(layout == NULL, FALSE, "layout is NULL");
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
+
+       return _msg_smil_render_create_layout(smilPlayerHndle->smilRenderer, (Evas_Object *)layout);
+}
+
+
+MSG_BOOL _msg_smil_set_smil_player_layout_size(void *hSmilHandle, SMIL_POSITION_S *left_top, SMIL_POSITION_S *right_bottom)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(hSmilHandle == NULL, FALSE, "hSmilHandle is NULL");
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
+
+       return _msg_smil_render_set_layout_size(smilPlayerHndle->smilRenderer, left_top, right_bottom);
+}
+
+MSG_BOOL _msg_smil_set_smil_player_help_page_cb(void *hSmilHandle, void *callBack, void *userData)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(hSmilHandle == NULL, FALSE, "hSmilHandle is NULL");
+       D_MSG_RETVM_IF(callBack == NULL, FALSE, "callBack is NULL");
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
+
+       return _msg_smil_render_set_help_page_cb(smilPlayerHndle->smilRenderer, callBack, userData);
+}
+
+MSG_BOOL _msg_smil_set_smil_player_entry_handle_cb(void *hSmilHandle, void *callBack)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(hSmilHandle == NULL, FALSE, "hSmilHandle is NULL");
+       D_MSG_RETVM_IF(callBack == NULL, FALSE, "callBack is NULL");
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
+
+       return _msg_smil_render_set_entry_handle_cb(smilPlayerHndle->smilRenderer, callBack);
+}
+
+MSG_BOOL _msg_smil_get_slide_time(void *hSmilHandle, int slideIdx, MSG_BOOL bExcludeHp, double *slideTime)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(hSmilHandle == NULL, FALSE, "hSmilHandle is NULL");
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
+
+       return _msg_smil_cont_mgr_get_slide_time(smilPlayerHndle->smilContMgrHndle, slideIdx, bExcludeHp, slideTime);
+}
+
+MSG_BOOL _msg_smil_request_player_start(void *hSmilHandle)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(hSmilHandle == NULL, FALSE, "hSmilHandle is NULL");
+       SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
+
+       return _msg_smil_render_mgr_request_player_start((void *)smilPlayerHndle->smilRenderer);
+}
diff --git a/viewer/smil-player/src/msg-smil-render.c b/viewer/smil-player/src/msg-smil-render.c
new file mode 100755 (executable)
index 0000000..9561f2f
--- /dev/null
@@ -0,0 +1,1075 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-smil-render.h"
+#include "msg-smil-player.h"
+#include "msg-smil-content-manager.h"
+#include "msg-smil-util.h"
+#include "msg-ui-image-resource.h"
+#include "msg-ui-viewer-utility.h"
+#include "msg-ui-viewer-common.h"
+#include "msg-ui-content-utility.h"
+#include "msg-ui-common-utility.h"
+#include "msg-file-util.h"
+#include <Elementary.h>
+
+/*==================================================================================================
+ *                                                             FUNCTION DECLARATIONS
+ *==================================================================================================*/
+static char *__msg_smil_render_get_cur_page_media_file_name(SMIL_RENDERER_DATA_S *viewerRenderData, int media_type);
+/*================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+MSG_SMIL_ERROR_E _msg_smil_create_render(SMIL_RENDERER_DATA_S **viewerRenderData)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "viewerRenderData is NULL");
+
+       *viewerRenderData = (SMIL_RENDERER_DATA_S *)calloc(1, sizeof(SMIL_RENDERER_DATA_S));
+       if (*viewerRenderData == NULL) {
+               D_EMSG("calloc is failed");
+               return MSG_ERR_SMIL_INVALID_STORAGE;
+       }
+
+       (*viewerRenderData)->working_path = msg_ui_viewer_util_create_working_dir();
+       if (!(*viewerRenderData)->working_path) {
+               D_EMSG("msg_ui_viewer_util_create_working_dir is failed");
+               return MSG_ERR_SMIL_INVALID_STORAGE;
+       }
+
+       D_SEC_MSG("*viewerRenderData->working_path= %s", (*viewerRenderData)->working_path);
+
+       return MSG_SMIL_SUCCESS;
+}
+
+
+void _msg_smil_destroy_render(SMIL_RENDERER_DATA_S *viewerRenderData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(viewerRenderData == NULL, "viewerRenderData is NULL");
+
+       /* PLM P131028-01370 :
+       to keep last frame of the video file, set timing of _player handle destroy to the time of destroying renderer */
+       _msg_smil_render_stop_playing_file((void *)viewerRenderData);
+
+       if (viewerRenderData->viewer_body_text) {
+               free(viewerRenderData->viewer_body_text);
+               viewerRenderData->viewer_body_text = NULL;
+       }
+
+       if (viewerRenderData->video_image) {
+               evas_object_del(viewerRenderData->video_image);
+               viewerRenderData->video_image = NULL;
+       }
+
+       if (viewerRenderData->attach_list) {
+               evas_object_del(viewerRenderData->attach_list);
+               viewerRenderData->attach_list = NULL;
+       }
+
+       if (viewerRenderData->viewer_bg_rect) {
+               evas_object_del(viewerRenderData->viewer_bg_rect);
+               viewerRenderData->viewer_bg_rect = NULL;
+       }
+
+       if (viewerRenderData->video_resize_idle) {
+               ecore_idler_del(viewerRenderData->video_resize_idle);
+               viewerRenderData->video_resize_idle = NULL;
+       }
+
+       if (viewerRenderData->video_eos_idle) {
+               ecore_idler_del(viewerRenderData->video_eos_idle);
+               viewerRenderData->video_eos_idle = NULL;
+       }
+
+       if (viewerRenderData->working_path) {
+               D_MSG("remove temp path");
+               msg_file_recursive_rm(viewerRenderData->working_path);
+               g_free(viewerRenderData->working_path);
+               viewerRenderData->working_path = NULL;
+       }
+
+       if (viewerRenderData->popup)
+               evas_object_del(viewerRenderData->popup);
+
+       free(viewerRenderData);
+
+       D_LEAVE;
+}
+
+
+MSG_BOOL _msg_smil_init_render(SMIL_RENDERER_DATA_S *viewerRenderData)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+
+       viewerRenderData->viewer_bg_rect = NULL;
+       viewerRenderData->msg_info_t = NULL;
+       viewerRenderData->viewer_body_text = NULL;
+       viewerRenderData->viewer_content_box = NULL;
+       viewerRenderData->insert_image = NULL;
+       viewerRenderData->viewer_scroller = NULL;
+       viewerRenderData->viewer_body = NULL;
+       viewerRenderData->viewer_body_layout = NULL;
+       viewerRenderData->smilhandle = NULL;
+       viewerRenderData->player_state = MEDIA_PLAYER_STATE_NONE;
+       viewerRenderData->viewer_height = 0;
+       viewerRenderData->viewer_width = 0;
+       viewerRenderData->viewer_landscape_width = 0;
+       viewerRenderData->viewer_landscape_height = 0;
+       viewerRenderData->button_height = 0;
+       viewerRenderData->video_width = 0;
+       viewerRenderData->video_height = 0;
+       viewerRenderData->video_resize_idle = NULL;
+       viewerRenderData->video_eos_idle = NULL;
+       viewerRenderData->bgcolor = 0;
+       viewerRenderData->ismute = FALSE;
+       viewerRenderData->insert_sound_icon = NULL;
+       viewerRenderData->insert_unsupported_icon = NULL;
+       viewerRenderData->main_window = ug_get_window();
+       viewerRenderData->main_win_rotate = 0;
+       viewerRenderData->video_image = NULL;
+       viewerRenderData->video_sink = NULL;
+
+       return TRUE;
+}
+
+
+MSG_BOOL _msg_smil_render_set_layout_size(SMIL_RENDERER_DATA_S *viewerRenderData, SMIL_POSITION_S *left_top, SMIL_POSITION_S *right_bottom)
+{
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(left_top == NULL, FALSE, "left_top is NULL");
+       D_MSG_RETVM_IF(right_bottom == NULL, FALSE, "right_bottom is NULL");
+       int window_width = 0;
+       int window_height = 0;
+
+       D_SEC_MSG("left_top (%d, %d)", left_top->x, left_top->y);
+       D_SEC_MSG("right_bottom (%d, %d)", right_bottom->x, right_bottom->y);
+       elm_win_screen_size_get(viewerRenderData->main_window, NULL, NULL, &window_width, &window_height);
+
+       viewerRenderData->viewer_width = window_width;
+       viewerRenderData->viewer_height = right_bottom->y - left_top->y;
+       viewerRenderData->viewer_landscape_width = window_height;
+       viewerRenderData->viewer_landscape_height = window_width - left_top->y;
+       D_SEC_MSG("viewer_width = %d, viewer_height = %d", viewerRenderData->viewer_width, viewerRenderData->viewer_height);
+       D_SEC_MSG("landscape viewer_width = %d, landscape viewer_height = %d", viewerRenderData->viewer_landscape_width, viewerRenderData->viewer_landscape_height);
+
+       return TRUE;
+}
+
+MSG_BOOL _msg_smil_render_get_status(SMIL_RENDERER_DATA_S *viewerRenderData)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+
+       return viewerRenderData->render_status;
+}
+
+void _msg_smil_render_set_status(SMIL_RENDERER_DATA_S *viewerRenderData, MSG_BOOL status)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(viewerRenderData == NULL, "viewerRenderData is NULL");
+
+       viewerRenderData->render_status = status;
+}
+
+MSG_BOOL _msg_smil_render_create_layout(SMIL_RENDERER_DATA_S *viewerRenderData, Evas_Object *layout)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(layout == NULL, FALSE, "layout is NULL");
+       Evas_Object *eo = NULL;
+       Evas_Object *entry = NULL;
+
+       /* clean up all object */
+       if (viewerRenderData->viewer_scroller) {
+               evas_object_del(viewerRenderData->viewer_scroller);
+               viewerRenderData->viewer_scroller = NULL;
+       }
+
+       if (viewerRenderData->viewer_content_box) {
+               evas_object_del(viewerRenderData->viewer_content_box);
+               viewerRenderData->viewer_content_box = NULL;
+       }
+
+       if (viewerRenderData->viewer_body_top_padding) {
+               evas_object_del(viewerRenderData->viewer_body_top_padding);
+               viewerRenderData->viewer_body_top_padding = NULL;
+       }
+
+       if (viewerRenderData->viewer_body_mid_padding) {
+               evas_object_del(viewerRenderData->viewer_body_mid_padding);
+               viewerRenderData->viewer_body_mid_padding = NULL;
+       }
+
+       if (viewerRenderData->viewer_body) {
+               evas_object_del(viewerRenderData->viewer_body);
+               viewerRenderData->viewer_body = NULL;
+       }
+
+       if (viewerRenderData->viewer_body_layout) {
+               evas_object_del(viewerRenderData->viewer_body_layout);
+               viewerRenderData->viewer_body_layout = NULL;
+       }
+
+       if (viewerRenderData->viewer_body_bottom_padding) {
+               evas_object_del(viewerRenderData->viewer_body_bottom_padding);
+               viewerRenderData->viewer_body_bottom_padding = NULL;
+       }
+
+       if (viewerRenderData->viewer_audio_name_rect) {
+               evas_object_del(viewerRenderData->viewer_audio_name_rect);
+               viewerRenderData->viewer_audio_name_rect = NULL;
+       }
+
+       if (viewerRenderData->viewer_bg_rect) {
+               evas_object_del(viewerRenderData->viewer_bg_rect);
+               viewerRenderData->viewer_bg_rect = NULL;
+       }
+
+       viewerRenderData->layout_main = layout;
+
+       /* get current slide */
+       SMIL_SLIDE_INFO_S *cur_slide = _msg_smil_get_current_slide_info(viewerRenderData->smilhandle);
+       if (!cur_slide || !cur_slide->pageInfo) {
+               D_EMSG("msg_smil_get_current_slide_info is failed");
+               return FALSE;
+       }
+
+       /*create scroller*/
+       eo = elm_scroller_add(layout);
+       elm_object_style_set(eo, "effect");
+       evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_bounce_set(eo, FALSE, TRUE);
+       elm_scroller_policy_set(eo, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+       elm_object_part_content_set(layout, "viewer.body", eo);
+       evas_object_show(eo);
+       viewerRenderData->viewer_scroller = eo;
+
+       /* create content box */
+       viewerRenderData->viewer_content_box = eo = elm_box_add(layout);
+       evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(eo, 0.0, 0.0);
+       elm_box_homogeneous_set(eo, EINA_FALSE);
+       evas_object_show(eo);
+       elm_object_content_set(viewerRenderData->viewer_scroller, viewerRenderData->viewer_content_box);
+
+       /* create body top padding */
+       viewerRenderData->viewer_body_top_padding = eo = elm_layout_add(layout);
+       elm_layout_file_set(viewerRenderData->viewer_body_top_padding, MSG_VIEWER_THEME, "viewer_layout_padding");
+       evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_box_pack_start(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_top_padding);
+       evas_object_show(eo);
+
+       /* create entry */
+       if (cur_slide->pageInfo->hasText || cur_slide->pageInfo->isHelpPage) {
+               Evas_Object *content_layout = elm_layout_add(layout);
+               elm_layout_file_set(content_layout, MSG_VIEWER_THEME, "body_content_layout");
+               evas_object_size_hint_weight_set(content_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(content_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_show(content_layout);
+
+               entry = elm_entry_add(layout);
+               elm_entry_entry_set(entry, "");
+               elm_entry_editable_set(entry, EINA_FALSE);
+               evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               eext_entry_selection_back_event_allow_set(entry, EINA_TRUE);
+
+               elm_object_part_content_set(content_layout, "swallow.content", entry);
+               elm_box_pack_end(viewerRenderData->viewer_content_box, content_layout);
+               evas_object_show(entry);
+               viewerRenderData->viewer_body = entry;
+               viewerRenderData->viewer_body_layout = content_layout;
+
+               /*Check for window orientation*/
+
+               int rotate = elm_win_rotation_get(viewerRenderData->main_window);
+
+               if (rotate == 0 || rotate == 180) {     /*PORTRAIT mode*/
+                       /*different layout in case of landscape and portrait images*/
+                       elm_object_signal_emit(viewerRenderData->viewer_body_layout, "show,portrait", "*");
+               } else if (rotate == 90 || rotate == 270) {     /*LANDSCAPE mode*/
+                       elm_object_signal_emit(viewerRenderData->viewer_body_layout, "show,landscape", "*");
+               } else {
+                       D_EMSG("Invalid orient value");
+                       return FALSE;
+               }
+
+
+               /* create body mid padding - check the condition for mid padding area should be created or not */
+               if (cur_slide->pageInfo->hasImage || cur_slide->pageInfo->hasVideo) {
+                       viewerRenderData->viewer_body_mid_padding = eo = elm_layout_add(layout);
+                       elm_layout_file_set(viewerRenderData->viewer_body_mid_padding, MSG_VIEWER_THEME, "viewer_layout_padding");
+                       elm_object_signal_emit(viewerRenderData->viewer_body_mid_padding, "padding,bottom", "");
+                       evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, 0.0);
+                       evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, 0.0);
+                       elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->viewer_body_layout);
+                       evas_object_show(eo);
+               }
+       }
+
+       _msg_smil_render_set_entry_handle(viewerRenderData);
+
+       /* create body bottom padding */
+       viewerRenderData->viewer_body_bottom_padding = eo = elm_layout_add(layout);
+       elm_layout_file_set(viewerRenderData->viewer_body_bottom_padding, MSG_VIEWER_THEME, "viewer_layout_padding");
+       elm_object_signal_emit(viewerRenderData->viewer_body_bottom_padding, "padding,bottom", "");
+
+       evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_box_pack_end(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+       evas_object_show(eo);
+
+       /* create audio name panel */
+       if (cur_slide->pageInfo->hasAudio) {
+               char *file_name = NULL;
+               Evas_Object *layout = elm_layout_add(viewerRenderData->layout_main);
+               elm_layout_file_set(layout, MSG_VIEWER_THEME, "supplement/content");
+               evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_show(layout);
+               viewerRenderData->viewer_audio_name_rect = layout;
+
+               file_name = __msg_smil_render_get_cur_page_media_file_name(viewerRenderData, MMS_SMIL_MEDIA_AUDIO);
+               if (file_name != NULL && file_name[0] != '\0') {
+                       edje_object_part_text_set(_EDJ(viewerRenderData->viewer_audio_name_rect), "elm.text", file_name);
+                       free(file_name);
+               }
+
+               elm_object_part_content_set(viewerRenderData->layout_main, "viewer.swallow.bottom.content", viewerRenderData->viewer_audio_name_rect);
+               edje_object_signal_emit(_EDJ(viewerRenderData->viewer_audio_name_rect), "audio,icon,show", "*");
+               evas_object_show(viewerRenderData->viewer_audio_name_rect);
+       }
+
+       /* bg color rectangular */
+       int bg_style = -1;
+
+       Evas_Object *background = msg_common_create_bubble_layout_bg(layout, bg_style);
+
+       int r = 0, g = 0, b = 0, a = 0;
+       int r1 = 0, g1 = 0, b1 = 0, a1 = 0;
+       int r2 = 0, g2 = 0, b2 = 0, a2 = 0;
+
+       elm_object_part_content_set(layout,  "viewer.body.bg", background);
+       evas_object_size_hint_weight_set(background, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(background, EVAS_HINT_FILL, 0.0);
+       evas_object_color_set(background, COLOR_BLUE_TRANSPARENT);
+       evas_object_show(background);
+       viewerRenderData->viewer_bg_rect = background;
+
+
+       D_LEAVE;
+       return TRUE;
+}
+
+MSG_BOOL _msg_smil_render_set_help_page_cb(SMIL_RENDERER_DATA_S *viewerRenderData, void *callBack, void *userData)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(callBack == NULL, FALSE, "callBack is NULL");
+
+       viewerRenderData->appUserData = userData;
+       viewerRenderData->appSmilHelpPageCb = (pfnSMILHelpPageCb)callBack;
+
+       return TRUE;
+}
+
+MSG_BOOL _msg_smil_render_set_entry_handle_cb(SMIL_RENDERER_DATA_S *viewerRenderData, void *callBack)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(callBack == NULL, FALSE, "callBack is NULL");
+
+       viewerRenderData->appSmilFontSizeCb = (pfnSMILFontSizeCb)callBack;
+
+       return TRUE;
+}
+
+MSG_SMIL_ERROR_E _msg_smil_render_on_slide_render_handler(SMIL_RENDERER_DATA_S *viewerRenderData, SMIL_SLIDE_EVENT_PARAM_S *eventStatus)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(eventStatus == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "eventStatus is NULL");
+
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(viewerRenderData->smilhandle);
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, MSG_ERR_SMIL_INVALID_SLIDE, "smilContMgrHndle is NULL");
+       int pageCnt = _msg_smil_cont_mgr_get_total_slide_count(smilContMgrHndle);
+
+       switch (eventStatus->renderEvent) {
+       case SMIL_RENDER_EVENT_PAGE_PLAY_START:
+               D_MSG("SMIL_RENDER_EVENT_PAGE_PLAY_START");
+
+               /*create smil rendering layout again*/
+               if (_msg_smil_render_create_layout(viewerRenderData, viewerRenderData->layout_main) == FALSE) {
+                       D_EMSG("_msg_smil_render_create_layout is failed");
+                       _msg_smil_render_set_status(viewerRenderData, FALSE);
+                       return MSG_ERR_SMIL_UI_DISPLAY_FAIURE;
+               }
+
+               if (viewerRenderData->insert_image) {
+                       evas_object_del(viewerRenderData->insert_image);
+                       viewerRenderData->insert_image = NULL;
+               }
+
+               if (viewerRenderData->video_image) {
+                       evas_object_del(viewerRenderData->video_image);
+                       viewerRenderData->video_image = NULL;
+               }
+
+               if (viewerRenderData->video_bg) {
+                       evas_object_del(viewerRenderData->video_bg);
+                       viewerRenderData->video_bg = NULL;
+               }
+
+               if (viewerRenderData->video_layout) {
+                       evas_object_del(viewerRenderData->video_layout);
+                       viewerRenderData->video_layout = NULL;
+               }
+
+               if (viewerRenderData->insert_sound_icon) {
+                       evas_object_del(viewerRenderData->insert_sound_icon);
+                       viewerRenderData->insert_sound_icon = NULL;
+               }
+
+               if (viewerRenderData->insert_unsupported_icon) {
+                       evas_object_del(viewerRenderData->insert_unsupported_icon);
+                       viewerRenderData->insert_unsupported_icon = NULL;
+               }
+
+               if (viewerRenderData->attach_list) {
+                       evas_object_del(viewerRenderData->attach_list);
+                       viewerRenderData->attach_list = NULL;
+               }
+
+               _msg_smil_render_stop_playing_file((void *)viewerRenderData);
+
+               if (viewerRenderData->viewer_body) {
+                       elm_entry_entry_set(viewerRenderData->viewer_body, "");
+
+                       elm_entry_select_none(viewerRenderData->viewer_body);
+               }
+
+               evas_object_show(viewerRenderData->viewer_bg_rect);
+               break;
+
+       case SMIL_RENDER_EVENT_PAGE_MEDIA_PLAY_START:
+               D_MSG("SMIL_RENDER_EVENT_PAGE_MEDIA_PLAY_START");
+
+               /*create smil rendering layout again*/
+               if (_msg_smil_render_create_layout(viewerRenderData, viewerRenderData->layout_main) == FALSE) {
+                       D_EMSG("_msg_smil_render_create_layout is failed");
+                       _msg_smil_render_set_status(viewerRenderData, FALSE);
+                       return MSG_ERR_SMIL_UI_DISPLAY_FAIURE;
+               }
+
+               if (viewerRenderData->insert_image) {
+                       evas_object_del(viewerRenderData->insert_image);
+                       viewerRenderData->insert_image = NULL;
+               }
+
+               if (viewerRenderData->video_image) {
+                       evas_object_del(viewerRenderData->video_image);
+                       viewerRenderData->video_image = NULL;
+               }
+
+               if (viewerRenderData->video_bg) {
+                       evas_object_del(viewerRenderData->video_bg);
+                       viewerRenderData->video_bg = NULL;
+               }
+
+               if (viewerRenderData->video_layout) {
+                       evas_object_del(viewerRenderData->video_layout);
+                       viewerRenderData->video_layout = NULL;
+               }
+
+               if (viewerRenderData->insert_sound_icon) {
+                       evas_object_del(viewerRenderData->insert_sound_icon);
+                       viewerRenderData->insert_sound_icon = NULL;
+               }
+
+               if (viewerRenderData->insert_unsupported_icon) {
+                       evas_object_del(viewerRenderData->insert_unsupported_icon);
+                       viewerRenderData->insert_unsupported_icon = NULL;
+               }
+
+               if (viewerRenderData->attach_list) {
+                       evas_object_del(viewerRenderData->attach_list);
+                       viewerRenderData->attach_list = NULL;
+               }
+
+               _msg_smil_render_stop_playing_file((void *)viewerRenderData);
+
+               if (viewerRenderData->viewer_body) {
+                       elm_entry_entry_set(viewerRenderData->viewer_body, "");
+                       elm_entry_select_none(viewerRenderData->viewer_body);
+               }
+
+               evas_object_show(viewerRenderData->viewer_bg_rect);
+
+               /*move scroll to top*/
+               elm_scroller_region_show(viewerRenderData->viewer_scroller, 0, 0, 0, 0);
+               break;
+
+       case SMIL_RENDER_EVENT_LAST_PAGE_PLAY_COMPLETE:
+               D_MSG("SMIL_RENDER_EVENT_LAST_PAGE_PLAY_COMPLETE");
+               /* PLM P131028-01370 :
+               to keep last frame of the video file, do not destroy _player handle when receiving SMIL_RENDER_EVENT_LAST_PAGE_PLAY_COMPLETE smil event */
+               _msg_smil_render_set_status(viewerRenderData, TRUE);
+
+               SMIL_SLIDE_INFO_S *curSlide = _msg_smil_cont_mgr_get_cur_slide(smilContMgrHndle);
+               D_MSG_RETVM_IF(curSlide == NULL, MSG_ERR_SMIL_INVALID_SLIDE, "curSlide is NULL");
+               int mediaType = 0;
+               if (curSlide->pageInfo) {
+                       /* if page has audio or video, image and text is not needed to checked. */
+                       if (curSlide->pageInfo->hasAudio)
+                               mediaType = MMS_SMIL_MEDIA_AUDIO;
+                       else if (curSlide->pageInfo->hasVideo)
+                               mediaType = MMS_SMIL_MEDIA_VIDEO;
+                       else if (curSlide->pageInfo->hasImage)
+                               mediaType = MMS_SMIL_MEDIA_IMG;
+                       else if (curSlide->pageInfo->hasText)
+                               mediaType = MMS_SMIL_MEDIA_TEXT;
+               }
+
+               _msg_smil_render_pause(viewerRenderData, mediaType);
+               return MSG_SMIL_SUCCESS;
+
+       case SMIL_RENDER_EVENT_PAUSE_CURRENT_PAGE:
+               D_MSG("SMIL_RENDER_EVENT_PAUSE_CURRENT_PAGE");
+               _msg_smil_render_set_status(viewerRenderData, TRUE);
+               return MSG_SMIL_SUCCESS;
+
+       case SMIL_RENDER_EVENT_DESTROY_SCREEN:
+               D_MSG("SMIL_RENDER_EVENT_DESTROY_SCREEN");
+               if (viewerRenderData->viewer_body)
+                       elm_entry_entry_set(viewerRenderData->viewer_body, "");
+
+               if (viewerRenderData->insert_image) {
+                       evas_object_del(viewerRenderData->insert_image);
+                       viewerRenderData->insert_image = NULL;
+               }
+
+               if (viewerRenderData->video_image) {
+                       evas_object_del(viewerRenderData->video_image);
+                       viewerRenderData->video_image = NULL;
+               }
+
+               if (viewerRenderData->video_bg) {
+                       evas_object_del(viewerRenderData->video_bg);
+                       viewerRenderData->video_bg = NULL;
+               }
+
+               if (viewerRenderData->video_layout) {
+                       evas_object_del(viewerRenderData->video_layout);
+                       viewerRenderData->video_layout = NULL;
+               }
+
+               if (viewerRenderData->image_layout) {
+                       evas_object_del(viewerRenderData->image_layout);
+                       viewerRenderData->image_layout = NULL;
+               }
+
+               if (viewerRenderData->insert_sound_icon) {
+                       evas_object_del(viewerRenderData->insert_sound_icon);
+                       viewerRenderData->insert_sound_icon = NULL;
+               }
+
+               if (viewerRenderData->insert_unsupported_icon) {
+                       evas_object_del(viewerRenderData->insert_unsupported_icon);
+                       viewerRenderData->insert_unsupported_icon = NULL;
+               }
+
+               _msg_smil_render_set_status(viewerRenderData, TRUE);
+
+               return MSG_SMIL_SUCCESS;
+
+       default:
+               D_EMSG("abnormal renderEvent : %d", eventStatus->renderEvent);
+               _msg_smil_render_set_status(viewerRenderData, FALSE);
+               return MSG_ERR_SMIL_EVENT_NONE;
+       }
+
+       D_MSG_RETVM_IF(eventStatus->singleSlideInfo == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "eventStatus->singleSlideInfo is NULL");
+       D_MSG_RETVM_IF(eventStatus->singleSlideInfo->commonData == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "eventStatus->singleSlideInfo->commonData is NULL");
+
+       msg_list_handle_t attachlist_info = NULL;
+       msg_struct_t attach_info = NULL;
+       int nAttachCnt = 0;
+       msg_struct_t mmsData_h = _msg_smil_cont_mgr_get_mms_body_struct_handle(smilContMgrHndle);
+       D_MSG_RETVM_IF(mmsData_h == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "mmsData_h is NULL");
+
+       msg_get_list_handle(mmsData_h, MSG_MMS_ATTACH_LIST_HND, (void **)&attachlist_info);
+       nAttachCnt = (msg_list_length(attachlist_info) > 0) ? msg_list_length(attachlist_info) : 0;
+
+       msg_list_handle_t pagelist_info = NULL;
+       int real_pageCnt = 0;
+       /* Get page info and count */
+       msg_get_list_handle(smilContMgrHndle->msg_info_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
+       real_pageCnt = msg_list_length(pagelist_info);
+
+       if (pageCnt > 0 && real_pageCnt > 0) { /* Multipart related */
+               if (_msg_smil_cont_mgr_is_cur_slide_help_page(eventStatus->singleSlideInfo)) {
+                       char buf_font[1024] = {0, };
+                       snprintf(buf_font, sizeof(buf_font), "<color=#FAFAFA>%s", ((nAttachCnt > 1) ? dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_HELP_PAGE_MESSAGE") : dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE")));
+
+                       if (viewerRenderData->viewer_body)
+                               elm_entry_entry_set(viewerRenderData->viewer_body, buf_font);
+
+                       _msg_smil_render_show_help_page_attach_list(viewerRenderData);
+
+                       if (viewerRenderData->viewer_body_mid_padding) {
+                               elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding);
+                               elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->viewer_body_layout);
+                       }
+
+                       if (viewerRenderData->viewer_body_bottom_padding) {
+                               elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+                               elm_box_pack_end(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+                       }
+
+                       evas_object_show(viewerRenderData->viewer_bg_rect);
+               } else {
+                       if (_msg_smil_render_reload_mms(viewerRenderData, eventStatus) == FALSE) {
+                               D_EMSG("_msg_smil_render_reload_mms is failed");
+                               _msg_smil_render_set_status(viewerRenderData, FALSE);
+                               return MSG_ERR_SMIL_UI_DISPLAY_FAIURE;
+                       }
+               }
+       } else { /* Multipart mixed */
+               D_MSG("eventStatus->singleSlideInfo->commonData->attachCnt : %d", eventStatus->singleSlideInfo->commonData->attachCnt);
+
+               if (_msg_smil_cont_mgr_is_cur_slide_help_page(eventStatus->singleSlideInfo)) {
+                       int mediaType = 0;
+
+                       if (nAttachCnt == 1) {
+                               attach_info = (msg_struct_t)msg_list_nth_data(attachlist_info, 0);
+
+                               msg_get_int_value(attach_info, MSG_MMS_ATTACH_MIME_TYPE_INT, &mediaType);
+                               D_MSG("attachment mediatype : 0x%x", mediaType);
+
+                               if (mediaType == MIME_TEXT_TXT || mediaType == MIME_TEXT_PLAIN) {
+                                       char strFilePath[MSG_FILEPATH_LEN_MAX] = {0,};
+                                       msg_get_str_value(attach_info, MSG_MMS_ATTACH_FILEPATH_STR, strFilePath, sizeof(strFilePath));
+                                       _msg_smil_render_show_inserted_text(viewerRenderData, strFilePath, NULL);
+                               } else {
+                                       D_EMSG("Attachment is not TEXT type, Display help page");
+
+                                       char buf_font[1024] = {0, };
+                                       snprintf(buf_font, sizeof(buf_font), "<color=#FAFAFA>%s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE"));
+
+                                       if (viewerRenderData->viewer_body)
+                                               elm_entry_entry_set(viewerRenderData->viewer_body, buf_font);
+
+                                       _msg_smil_render_show_help_page_attach_list(viewerRenderData);
+
+                                       if (viewerRenderData->viewer_body_mid_padding) {
+                                               elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding);
+                                               elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->viewer_body_layout);
+                                       }
+
+                                       if (viewerRenderData->viewer_body_bottom_padding) {
+                                               elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+                                               elm_box_pack_end(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+                                       }
+
+                                       evas_object_show(viewerRenderData->viewer_bg_rect);
+                               }
+                       } else { /* nAttachCnt > 1 */
+                               D_MSG("Attachment count is over than 1, Display help page");
+
+                               char buf_font[1024] = {0, };
+                               snprintf(buf_font, sizeof(buf_font), "<color=#FAFAFA>%s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_HELP_PAGE_MESSAGE"));
+
+                               if (viewerRenderData->viewer_body)
+                                       elm_entry_entry_set(viewerRenderData->viewer_body, buf_font);
+
+                               _msg_smil_render_show_help_page_attach_list(viewerRenderData);
+
+                               if (viewerRenderData->viewer_body_mid_padding) {
+                                       elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding);
+                                       elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->viewer_body_layout);
+                               }
+
+                               if (viewerRenderData->viewer_body_bottom_padding) {
+                                       elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+                                       elm_box_pack_end(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+                               }
+
+                               evas_object_show(viewerRenderData->viewer_bg_rect);
+                       }
+               } else {
+                       int index = 0;
+                       bool render_media = false;
+                       while (index < nAttachCnt) {
+                               int mediaType = 0;
+                               char content_type[DEF_BUF_LEN_S] = {0,};
+                               char strFilePath[MSG_FILEPATH_LEN_MAX] = {0,};
+
+                               msg_struct_t attach_info = (msg_struct_t)msg_list_nth_data(attachlist_info, index++);
+
+                               msg_get_str_value(attach_info, MSG_MMS_ATTACH_CONTENT_TYPE_STR, content_type, sizeof(content_type));
+                               msg_get_str_value(attach_info, MSG_MMS_ATTACH_FILEPATH_STR, strFilePath, sizeof(strFilePath));
+
+                               /* get content type first */
+                               if (content_type[0] != '\0') {
+                                       CONTENT_DISPLAY_TYPE display_type = msg_ui_content_get_display_type(content_type);
+                                       if (display_type == DISPLAY_TEXT) {
+                                               _msg_smil_render_show_inserted_text(viewerRenderData, strFilePath, NULL);
+                                               render_media = true;
+                                               break;
+                                       } else if (display_type == DISPLAY_IMAGE) {
+                                               _msg_smil_render_show_inserted_image(viewerRenderData, strFilePath);
+                                               render_media = true;
+                                               break;
+                                       }
+                               } else {
+                                       msg_get_int_value(attach_info, MSG_MMS_ATTACH_MIME_TYPE_INT, &mediaType);
+
+                                       if (mediaType == MIME_TEXT_TXT || mediaType == MIME_TEXT_PLAIN) {
+                                               _msg_smil_render_show_inserted_text(viewerRenderData, strFilePath, NULL);
+                                               render_media = true;
+                                               break;
+                                       } else if (mediaType >= MIME_IMAGE_GIF && mediaType <= MIME_IMAGE_X_BMP) {
+                                               _msg_smil_render_show_inserted_image(viewerRenderData, strFilePath);
+                                               render_media = true;
+                                               break;
+                                       }
+                               }
+                       }
+
+                       if (!render_media) {
+                               if (viewerRenderData->viewer_body)
+                                       elm_entry_entry_set(viewerRenderData->viewer_body, "");
+                       }
+               }
+       }
+
+       _msg_smil_render_set_status(viewerRenderData, TRUE);
+
+       return MSG_SMIL_SUCCESS;
+}
+
+
+MSG_BOOL _msg_smil_render_reload_mms(SMIL_RENDERER_DATA_S *viewerRenderData, SMIL_SLIDE_EVENT_PARAM_S *eventStatus)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(eventStatus->singleSlideInfo == NULL, FALSE, "eventStatus->singleSlideInfo is NULL");
+       D_MSG_RETVM_IF(eventStatus->singleSlideInfo->commonData == NULL, FALSE, "eventStatus->singleSlideInfo->commonData is NULL");
+
+       int i = 0;
+       int bgColor;
+       int width;
+       int height;
+       int pageCnt;
+       int mediaCnt;
+       int mediaType;
+
+       MSG_BOOL isTextUsed = FALSE;
+       MSG_BOOL isImageUsed = FALSE;
+       MSG_BOOL isSoundUsed = FALSE;
+       bool widthPercent;
+       bool heightPercent;
+
+       char szFileName[MSG_FILENAME_LEN_MAX] = {0,};
+       char szFilePath[MSG_FILEPATH_LEN_MAX] = {0,};
+       char strContentType[DEF_BUF_LEN_S] = {0,};
+       char regionId[MAX_SMIL_REGION_ID] = {0,};
+
+       /*Get smil handler*/
+       SMIL_HANDLER_S *smilHandle = (SMIL_HANDLER_S *)viewerRenderData->smilhandle;
+       D_MSG_RETVM_IF(smilHandle == NULL, FALSE, "smilHandle is NULL");
+
+       /*Get contentMgr */
+       SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilHandle);
+       D_MSG_RETVM_IF(smilContMgrHndle == NULL, FALSE, "smilContMgrHndle is NULL");
+
+       /*Get Mms body data */
+       msg_struct_t msgMmsBody = _msg_smil_cont_mgr_get_mms_body_struct_handle(smilContMgrHndle);
+
+       msg_get_int_value(msgMmsBody, MSG_MMS_ROOTLAYOUT_WIDTH_INT, &width);
+       msg_get_bool_value(msgMmsBody, MSG_MMS_ROOTLAYOUT_WIDTH_PERCENT_BOOL, &widthPercent);
+       msg_get_int_value(msgMmsBody, MSG_MMS_ROOTLAYOUT_HEIGHT_INT, &height);
+       msg_get_bool_value(msgMmsBody, MSG_MMS_ROOTLAYOUT_HEIGHT_PERCENT_BOOL, &heightPercent);
+       msg_get_int_value(msgMmsBody, MSG_MMS_ROOTLAYOUT_BGCOLOR_INT, &bgColor);
+
+       D_MSG("ROOT LAYOUT INFO width: %d %s height: %d %s bgColor:0x%08x",
+                width,
+                widthPercent ? "%" : "",
+                height,
+                heightPercent ? "%" : "",
+                (unsigned long)bgColor);
+       D_MSG("page : %d/%d", eventStatus->singleSlideInfo->pageIdx + 1, eventStatus->singleSlideInfo->commonData->pageCnt);
+
+       /*Get page list handler of current page of callbackData*/
+       msg_list_handle_t pagelist_info = _msg_smil_cont_mgr_get_page_list_handle(smilContMgrHndle);
+       pageCnt = (msg_list_length(pagelist_info) > 0) ? msg_list_length(pagelist_info) : 0;
+       D_MSG_RETVM_IF(pageCnt == 0, FALSE, "page length is 0, no pages is current message");
+
+       /*Get page handler */
+       msg_struct_t page_info = _msg_smil_cont_mgr_get_nth_page_struct_handle(pagelist_info, eventStatus->singleSlideInfo->pageIdx);
+
+       /*Get media list handler */
+       msg_list_handle_t medialist_info = _msg_smil_cont_mgr_get_page_media_list_handle(page_info);
+       mediaCnt = (msg_list_length(medialist_info) > 0) ? msg_list_length(medialist_info) : 0;
+
+       D_MSG("%d page's media count: %d", eventStatus->singleSlideInfo->pageIdx + 1, mediaCnt);
+
+       for (i = 0 ; i < mediaCnt ; ++i) {
+               D_MSG("eventStatus->timerDataMedia[%d].actionTypeOnMedia = %d", i, eventStatus->timerDataMedia[i].actionTypeOnMedia);
+               if (eventStatus->timerDataMedia[i].actionTypeOnMedia == MEDIA_EVENT_BEGIN) {
+                       D_MSG("MEDIA_EVENT_BEGIN : ");
+                       msg_struct_t media_info = _msg_smil_cont_mgr_get_page_nth_media_struct_handle(medialist_info, eventStatus->timerDataMedia[i].mediaIdx);
+
+                       if (media_info) {
+                               bzero(szFileName, sizeof(szFileName));
+                               bzero(szFilePath, sizeof(szFilePath));
+
+                               _msg_smil_cont_mgr_get_media_str_value(media_info, MSG_MMS_MEDIA_FILENAME_STR, szFileName);
+                               _msg_smil_cont_mgr_get_media_str_value(media_info, MSG_MMS_MEDIA_FILEPATH_STR, szFilePath);
+                               _msg_smil_cont_mgr_get_media_str_value(media_info, MSG_MMS_MEDIA_REGION_ID_STR, regionId);
+                               _msg_smil_cont_mgr_get_media_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
+
+                               D_SEC_MSG("%d media's file name =  %s", eventStatus->timerDataMedia[i].mediaIdx, szFileName);
+                               D_SEC_MSG("%d media's file path = %s", eventStatus->timerDataMedia[i].mediaIdx, szFilePath);
+                               D_SEC_MSG("%d media's region Id = %s", eventStatus->timerDataMedia[i].mediaIdx, regionId);
+                               D_SEC_MSG("%d media's media type = 0x%04X", eventStatus->timerDataMedia[i].mediaIdx, mediaType);
+
+                               CONTENT_DISPLAY_TYPE content_type;
+
+                               switch (mediaType) {
+                                       case MMS_SMIL_MEDIA_IMG:
+                                               D_MSG("MMS_SMIL_MEDIA_IMG");
+                                               if (isImageUsed) {
+                                                       D_EMSG("Image media is already added");
+                                                       break;
+                                               } else
+                                                       isImageUsed = TRUE;
+
+                                               if (_msg_smil_render_show_inserted_image(viewerRenderData, szFilePath) == FALSE)
+                                                       D_EMSG("_msg_smil_render_show_inserted_image is failed");
+
+                                               break;
+                                       case MMS_SMIL_MEDIA_TEXT:
+                                               D_MSG("MMS_SMIL_MEDIA_TEXT");
+                                               if (isTextUsed) {
+                                                       D_EMSG("Text media is already added");
+                                                       break;
+                                               } else
+                                                       isTextUsed = TRUE;
+
+                                               msg_struct_t sText;
+                                               char color_text[20] = {0x0, };
+                                               char col_hex[VIEWER_RGB_COLOR_BUF_LEN] = {0x0, };
+                                               int fgcolor;
+                                               unsigned char red = '\0';
+                                               unsigned char green = '\0';
+                                               unsigned char blue = '\0';
+                                               unsigned char alpha = '\0';
+
+                                               msg_get_struct_handle(media_info, MSG_MMS_MEDIA_SMIL_TEXT_HND, &sText);
+                                               msg_get_int_value(sText, MSG_MMS_SMIL_TEXT_COLOR_INT, &fgcolor);
+
+                                               alpha = ((unsigned long)fgcolor & 0xFF000000) >> 24;
+
+                                               if (alpha != 0) {
+                                                       alpha = ((unsigned long)fgcolor & 0xFF000000) >> 24;
+                                                       red = ((unsigned long)fgcolor & 0x00FF0000) >> 16;
+                                                       green = ((unsigned long)fgcolor & 0x0000FF00) >> 8;
+                                                       blue = (unsigned long)fgcolor & 0x000000FF;
+                                               } else {
+                                                       red = 255;
+                                                       green = 255;
+                                                       blue = 255;
+                                               }
+
+                                               D_MSG("Font color value Alpha = %x Red = %x Green = %x Blue = %x", alpha, red, green, blue);
+
+                                               _msg_smil_util_get_color_string(col_hex, VIEWER_RGB_COLOR_BUF_LEN, (int)red, (int)green, (int)blue);
+                                               snprintf(color_text, sizeof(color_text), "<color=#%sFF>", col_hex);
+
+                                               if (_msg_smil_render_show_inserted_text(viewerRenderData, szFilePath, color_text) == FALSE)
+                                                       D_EMSG("_msg_smil_render_show_inserted_text is failed");
+
+                                               break;
+                                       case MMS_SMIL_MEDIA_AUDIO:
+                                               D_MSG("MMS_SMIL_MEDIA_AUDIO");
+                                               if (isSoundUsed) {
+                                                       D_EMSG("Sound media is already added");
+                                                       break;
+                                               } else
+                                                       isSoundUsed = TRUE;
+
+                                               if (_msg_smil_render_show_inserted_audio(viewerRenderData, szFilePath, eventStatus->singleSlideInfo->slideStatus) == FALSE) {
+                                                       D_EMSG("_msg_smil_render_show_inserted_audio is failed");
+                                                       return FALSE;
+                                               }
+
+                                               break;
+                                       case MMS_SMIL_MEDIA_VIDEO:
+                                               D_MSG("MMS_SMIL_MEDIA_VIDEO");
+                                               if (isSoundUsed || isImageUsed) {
+                                                       D_EMSG("Image or sound media is already added");
+                                                       break;
+                                               } else {
+                                                       isSoundUsed = TRUE;
+                                                       isImageUsed = TRUE;
+                                               }
+
+                                               if (_msg_smil_render_show_inserted_video(viewerRenderData, szFilePath, eventStatus->singleSlideInfo->slideStatus) == FALSE) {
+                                                       D_EMSG("_msg_smil_render_show_inserted_video is failed");
+                                                       return FALSE;   /*returning FALSE is required to register timer in case of failed video play*/
+                                               }
+
+                                               break;
+                                       case MMS_SMIL_MEDIA_IMG_OR_VIDEO:
+                                               D_MSG("MMS_SMIL_MEDIA_REF, Start checking this media to be displayed in canvas!!");
+                                               bzero(strContentType, sizeof(strContentType));
+                                               msg_get_str_value(media_info, MSG_MMS_MEDIA_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+                                               content_type = msg_ui_content_get_display_type(strContentType);
+
+                                               if (content_type == DISPLAY_TEXT) {
+                                                       if (isTextUsed) {
+                                                               D_EMSG("Text media is already added");
+                                                               break;
+                                                       } else {
+                                                               isTextUsed = TRUE;
+                                                               if (_msg_smil_render_show_inserted_text(viewerRenderData, szFilePath, "<color=#ffffffff>") == FALSE)
+                                                                       D_EMSG("_msg_smil_render_show_inserted_text is failed");
+                                                       }
+                                               } else if (content_type == DISPLAY_IMAGE) {
+                                                       if (isImageUsed) {
+                                                               D_EMSG("Image media is already added");
+                                                               break;
+                                                       } else {
+                                                               isImageUsed = TRUE;
+                                                               if (_msg_smil_render_show_inserted_image(viewerRenderData, szFilePath) == FALSE)
+                                                                       D_EMSG("_msg_smil_render_show_inserted_image is failed");
+                                                       }
+                                               } else if (content_type == DISPLAY_VIDEO) {
+                                                       if (isSoundUsed || isImageUsed) {
+                                                               D_EMSG("Image or sound media is already added");
+                                                               break;
+                                                       } else {
+                                                               isSoundUsed = TRUE;
+                                                               isImageUsed = TRUE;
+                                                               if (_msg_smil_render_show_inserted_video(viewerRenderData, szFilePath, eventStatus->singleSlideInfo->slideStatus) == FALSE) {
+                                                                       D_EMSG("_msg_smil_render_show_inserted_video is failed");
+                                                                       return FALSE;   /*returning FALSE is required to register timer in case of failed video play*/
+                                                               }
+                                                       }
+                                               } else if (content_type == DISPLAY_AUDIO) {
+                                                       if (isSoundUsed) {
+                                                               D_EMSG("Sound media is already added");
+                                                               break;
+                                                       } else {
+                                                               isSoundUsed = TRUE;
+                                                               if (_msg_smil_render_show_inserted_audio(viewerRenderData, szFilePath, eventStatus->singleSlideInfo->slideStatus) == FALSE) {
+                                                                       D_EMSG("_msg_smil_render_show_inserted_audio is failed");
+                                                                       return FALSE;
+                                                               }
+                                                       }
+                                               } else {
+                                                       D_MSG("It cannot display current media on this page!!");
+                                               }
+                                               break;
+                                       case MMS_SMIL_MEDIA_INVALID:    /*unsupported content*/
+                                               D_MSG("MMS_SMIL_MEDIA_INVALID");
+                                               if (_msg_smil_render_show_inserted_image(viewerRenderData, MSG_VIEWER_IMAGE_UNSUPPORT_ICON) == FALSE)
+                                                       D_EMSG("_msg_smil_render_show_inserted_image is failed");
+
+                                               break;
+                                       default:
+                                               break;
+                               }
+                       }
+               }
+       }
+
+       D_LEAVE;
+       return TRUE;
+}
+
+MSG_BOOL _msg_smil_render_set_mute(SMIL_RENDERER_DATA_S *viewerRenderData, MSG_BOOL ismute)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+
+       viewerRenderData->ismute = ismute;
+       return TRUE;
+}
+
+static char *__msg_smil_render_get_cur_page_media_file_name(SMIL_RENDERER_DATA_S *viewerRenderData, int media_type)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, NULL, "viewerRenderData is NULL");
+       SMIL_SLIDE_INFO_S *cur_slide = NULL;
+       char *return_str = NULL;
+       char file_name[MSG_FILENAME_LEN_MAX] = {0};
+
+       cur_slide = _msg_smil_get_current_slide_info(viewerRenderData->smilhandle);
+       if (!cur_slide || !cur_slide->pageInfo) {
+               D_EMSG("msg_smil_get_current_slide_info is failed");
+               return NULL;
+       }
+
+       /* get page list handle */
+       msg_list_handle_t pagelist_info = NULL;
+       msg_get_list_handle(viewerRenderData->msg_info_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
+
+       /*Get page*/
+       msg_struct_t page_info = NULL;
+       page_info = msg_list_nth_data(pagelist_info, cur_slide->pageIdx);
+
+       /* get media list handle */
+       msg_list_handle_t media_list_info = NULL;
+       msg_get_list_handle(page_info, MSG_MMS_PAGE_MEDIA_LIST_HND, (void **)&media_list_info);
+
+       int media_cnt = (msg_list_length(media_list_info) > 0) ? msg_list_length(media_list_info) : 0;
+
+       int index = 0;
+       for (index = 0; index < media_cnt; index++) {
+               D_MSG("index = %d", index);
+               int mediaType = 0;
+
+               /* get media handle */
+               msg_struct_t media_info = NULL;
+               media_info = msg_list_nth_data(media_list_info, index);
+
+               if (media_info == NULL) {
+                       D_EMSG("media_info is Null");
+                       return NULL;
+               }
+
+               msg_get_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
+
+               if (mediaType == media_type) {
+                       msg_get_str_value(media_info, MSG_MMS_MEDIA_FILENAME_STR, file_name, sizeof(file_name));
+                       return_str = g_strdup(file_name);
+                       break;
+               }
+       }
+
+       D_LEAVE;
+
+       return return_str;              /* it should be freed after use */
+}
diff --git a/viewer/smil-player/src/msg-smil-text-render.c b/viewer/smil-player/src/msg-smil-text-render.c
new file mode 100755 (executable)
index 0000000..9c31338
--- /dev/null
@@ -0,0 +1,134 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-smil-types.h"
+#include "msg-smil-player.h"
+#include "msg-smil-render.h"
+#include "msg-smil-util.h"
+
+#include "msg-ui-common-utility.h"
+#include <Elementary.h>
+
+/*==================================================================================================
+ *                                                             FUNCTION DECLARATIONS
+ *==================================================================================================*/
+
+/*================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+MSG_BOOL _msg_smil_render_show_inserted_text(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, char *color_text)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(viewerRenderData == NULL, FALSE, "viewerRenderData is NULL");
+       D_MSG_RETVM_IF(viewerRenderData->viewer_body == NULL, FALSE, "viewerRenderData->viewer_body is NULL");
+       D_MSG_RETVM_IF(path == NULL, FALSE, "path is NULL");
+       D_SEC_MSG("path : (%s)", path);
+
+       FILE *fp = NULL;
+
+       fp = fopen(path, "r");
+       if (fp) {
+               struct stat stat_buf;
+               if (stat(path, &stat_buf) != 0) {
+                       D_EMSG("Getting file information Error");
+                       fclose(fp);
+                       return FALSE;
+               }
+
+               D_MSG("FileSize : %d", (int)stat_buf.st_size);
+               if (stat_buf.st_size > 0) {
+                       if (viewerRenderData->viewer_body_text) {
+                               free(viewerRenderData->viewer_body_text);
+                               viewerRenderData->viewer_body_text = NULL;
+                       }
+
+                       viewerRenderData->viewer_body_text = (void *)calloc(1, (size_t)stat_buf.st_size + 1);
+
+                       if (viewerRenderData->viewer_body_text == NULL) {
+                               D_EMSG("calloc is failed");
+                               fclose(fp);
+                               return FALSE;
+                       } else {
+                               int result = fread(viewerRenderData->viewer_body_text, sizeof(char), stat_buf.st_size, fp);
+                               if (result != stat_buf.st_size) {
+                                       D_EMSG("fread is failed result : %d", result);
+                               }
+                               viewerRenderData->viewer_body_text[result] = '\0';
+                       }
+
+                       D_SEC_MSG("viewer_body_text : (%s)", (char *)viewerRenderData->viewer_body_text);
+
+                       char *markup_text = NULL;
+                       if (viewerRenderData->viewer_body_text[0] != '\0') {
+                               markup_text = elm_entry_utf8_to_markup(msg_common_convert_cr_to_nl(viewerRenderData->viewer_body_text));
+                               if (markup_text == NULL) {
+                                       D_EMSG("markup_text is null!");
+                                       fclose(fp);
+                                       return FALSE;
+                               }
+
+                               /* get marked up text */
+                               elm_entry_entry_set(viewerRenderData->viewer_body, markup_text);
+
+                               /* convert emoticon string */
+                               msg_common_apply_emoticon_to_entry(viewerRenderData->viewer_body);
+
+                               free(markup_text);
+                       }
+
+                       /*free message text after displaying*/
+                       if (viewerRenderData->viewer_body_text) {
+                               free(viewerRenderData->viewer_body_text);
+                               viewerRenderData->viewer_body_text = NULL;
+                       }
+               } else {
+                       D_EMSG("Invalid file size");
+               }
+
+               fclose(fp);
+       } else {
+               D_EMSG("File Open Error");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+void _msg_smil_render_show_help_page_attach_list(SMIL_RENDERER_DATA_S *viewerRenderData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(viewerRenderData == NULL, "viewerRenderData is NULL");
+       D_MSG_RETM_IF(viewerRenderData->viewer_content_box == NULL, "Invalid argument: viewer_content_box is NULL");
+
+       if (viewerRenderData->appSmilHelpPageCb)
+               viewerRenderData->appSmilHelpPageCb(viewerRenderData->appUserData, (void **)&(viewerRenderData->attach_list), viewerRenderData->viewer_content_box, viewerRenderData->working_path);
+}
+
+void _msg_smil_render_set_entry_handle(SMIL_RENDERER_DATA_S *viewerRenderData)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(viewerRenderData == NULL, "viewerRenderData is NULL");
+
+       D_SEC_MSG("viewer_body handle is 0x%x", viewerRenderData->viewer_body);
+
+       if (viewerRenderData->appSmilFontSizeCb)
+               viewerRenderData->appSmilFontSizeCb(viewerRenderData->appUserData, viewerRenderData->viewer_body);
+}
+
diff --git a/viewer/smil-player/src/msg-smil-util.c b/viewer/smil-player/src/msg-smil-util.c
new file mode 100755 (executable)
index 0000000..ea0bac2
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-smil-util.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+/*==================================================================================================
+ *                                                             FUNCTION DECLARATIONS
+ *==================================================================================================*/
+static void __msg_smil_util_get_color_code(int color_dec);
+
+/*================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+char hexa[VIEWER_COLOR_HEXA_BUFFER_LEN];
+char colorMap[VIEWER_HEXA_SIZE] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
+static void __msg_smil_util_get_color_code(int color_dec)
+{
+       int col = color_dec;
+       int rem = 0;
+
+       memset(hexa, 0x00, sizeof(hexa));
+       rem = col % VIEWER_HEXA_SIZE;
+       col = col / VIEWER_HEXA_SIZE;
+       hexa[0] = colorMap[col];
+       hexa[1] = colorMap[rem];
+}
+
+
+void _msg_smil_util_get_color_string(char *pszBuffer, int pszBuffer_len, int r, int g, int b)
+{
+       D_MSG_RETM_IF(pszBuffer == NULL, "pszBuffer is NULL");
+       D_MSG_RETM_IF(pszBuffer_len < VIEWER_RGB_COLOR_BUF_LEN, "pszBuffer_len is longer than VIEWER_RGB_COLOR_BUF_LEN");
+       D_MSG("r : %x, g : %x, b : %x", r, g, b);
+       char col_hex[VIEWER_RGB_COLOR_BUF_LEN] = {0x0, };
+
+       __msg_smil_util_get_color_code(r);
+       col_hex[0] = hexa[0];
+       col_hex[1] = hexa[1];
+       __msg_smil_util_get_color_code(g);
+       col_hex[2] = hexa[0];
+       col_hex[3] = hexa[1];
+       __msg_smil_util_get_color_code(b);
+       col_hex[4] = hexa[0];
+       col_hex[5] = hexa[1];
+       col_hex[6] = '\0';
+
+       strncpy(pszBuffer, col_hex, strlen(col_hex));
+}
+
+
+int _msg_smil_util_find_smallest(int num1, int num2)
+{
+       return num1 > num2 ? num2 : num1;
+}
+
+
diff --git a/viewer/src/msg-ui-viewer-callback.c b/viewer/src/msg-ui-viewer-callback.c
new file mode 100755 (executable)
index 0000000..5add432
--- /dev/null
@@ -0,0 +1,231 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                             INCLUDE HEADERS
+*==================================================================================================*/
+#include "msg-ui-viewer-main.h"
+#include "msg-ui-common-utility.h"
+
+/*==================================================================================================
+ *                                                                     FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+void msg_ui_viewer_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(ug == NULL, "ug is NULL");
+       D_MSG_RETM_IF(priv == NULL, "priv is NULL");
+       Evas_Object *base = NULL;
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)priv;
+
+       base = ug_get_layout(ug);
+       if (!base) {
+               D_EMSG("base is NULL");
+               ug_destroy(ug);
+               return;
+       }
+
+       switch (mode) {
+       case UG_MODE_FULLVIEW:
+               if (vmd->player_view) {
+                       if (vmd->player_view->mode == MSG_VIEWER_LOAD_COMPOSER_UG)
+                               ug_disable_effect(ug);
+               }
+
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_show(base);
+               break;
+       case UG_MODE_FRAMEVIEW:
+               elm_object_part_content_set(vmd->layout_main, "content", base);
+               break;
+       default:
+               break;
+       }
+
+       D_LEAVE;
+}
+
+
+void msg_ui_viewer_result_cb(ui_gadget_h ug, app_control_h service, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(ug == NULL, "ug is NULL");
+       D_MSG_RETM_IF(priv == NULL, "priv is NULL");
+       D_MSG_RETM_IF(service == NULL, "service is NULL");
+
+       char *mode = NULL;
+
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)priv;
+
+       if (vmd->summary_view) {
+               VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)vmd->summary_view;
+
+               if (app_control_get_extra_data(service, MSG_BUNDLE_KEY_MODE, &mode) == APP_CONTROL_ERROR_NONE) {
+                       if (g_strcmp0(mode, MSG_BUNDLE_VALUE_REFRESH_CONV) == 0) {
+
+                               /* send bubble the result to update bubble status */
+                               char str_id[DEF_BUF_LEN] = {0,};
+                               app_control_h svc_handle = NULL;
+
+                               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                       D_EMSG("app_control_create() is failed");
+                                       goto CATCH_EXIT;
+                               }
+
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_REFRESH_CONV);
+
+                               snprintf(str_id, DEF_BUF_LEN, "%d", vsd->msgID);
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, str_id);
+
+                               ug_send_result(vmd->viewer_ug, svc_handle);
+
+                               app_control_destroy(svc_handle);
+                       } else if (g_strcmp0(mode, MSG_BUNDLE_VALUE_DESTROY) == 0) {
+                               if (vsd->internal_mode == VIEWER_INTERNAL_NONE) {
+                                       app_control_h svc_handle = NULL;
+
+                                       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                               D_EMSG("app_control_create() is failed");
+                                               goto CATCH_EXIT;
+                                       }
+
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_DESTROY);
+                                       ug_send_result(vmd->viewer_ug, svc_handle);
+
+                                       app_control_destroy(svc_handle);
+
+                                       /*destroy viewer*/
+                                       ug_destroy_me(vmd->viewer_ug);
+                               }
+                       }
+               }
+       } else {
+               D_EMSG("Failed to get MODE data from viewer");
+       }
+
+CATCH_EXIT:
+
+       if (mode)
+               free(mode);
+}
+
+
+Eina_Bool msg_ui_viewer_ug_quit(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       if (vmd != NULL) {
+               if (vmd->viewer_ug)
+                       ug_destroy_me(vmd->viewer_ug);
+
+               if (vmd->del_idler)
+                       vmd->del_idler = NULL;
+       } else {
+               D_EMSG("vmd is NULL");
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+void msg_ui_viewer_destroy_cb(ui_gadget_h ug, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(ug == NULL, "ug is NULL");
+       D_MSG_RETM_IF(priv == NULL, "priv is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)priv;
+
+       if (vmd->loaded_ug) {
+               ug_destroy(vmd->loaded_ug);
+               vmd->loaded_ug = NULL;
+       }
+
+       elm_object_tree_focus_allow_set(vmd->layout_main, EINA_TRUE);
+
+       if (vmd->destroy_on_close) {
+               D_MSG("message content of viewer is already destroyed, Destroy message viewer");
+
+               if (vmd->viewer_ug) {
+                       /* send remove conversation to bubble-composer ug */
+                       char str_id[DEF_BUF_LEN] = {0,};
+                       app_control_h svc_handle = NULL;
+
+                       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                               D_EMSG("app_control_create() is failed");
+                               return;
+                       }
+
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_REMOVE_CONV);
+
+                       snprintf(str_id, DEF_BUF_LEN, "%d", vmd->msgID);
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, str_id);
+
+                       ug_send_result(vmd->viewer_ug, svc_handle);
+
+                       app_control_destroy(svc_handle);
+
+                       ug_destroy_me(vmd->viewer_ug);
+               }
+
+               if (vmd->del_idler)
+                       vmd->del_idler = NULL;
+
+               return;
+       }
+
+       D_MSG("vmd->view_mode : %d", vmd->view_mode);
+       if (vmd->view_mode == MSG_VIEWER_PLAYER_VIEW) {
+               VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)vmd->player_view;
+               D_MSG_RETM_IF(vpd == NULL, "vsd is NULL");
+
+               D_MSG("PLAYER view mode : %d", vpd->mode);
+
+               SMIL_SLIDE_INFO_S *slide = msg_smil_get_current_slide_info(vpd->SmilHandle);
+               MSG_VIEWER_ENTRY_TYPE_E entry_type = (slide && slide->pageInfo && slide->pageInfo->isHelpPage && !slide->commonData->isTextOnlyMixed) ? MSG_VIEWER_ENTRY_HELP_TEXT : MSG_VIEWER_ENTRY_NORMAL_TEXT;
+               msg_ui_viewer_set_font_size(vpd, entry_type, MSG_VIEWER_FONT_CHANGE_LATEST_UPDATE);
+
+               if (vpd->recipient_list) {
+                       vpd->mode = MSG_VIEWER_RECIPIENT_MODE;
+               } else {
+                       /*connect handler again*/
+                       msg_ui_viewer_connect_handler(vpd);
+                       vpd->mode = MSG_VIEWER_DEFAULT_MODE;
+               }
+       } else if (vmd->view_mode == MSG_VIEWER_SUMMARY_VIEW) {
+               VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)vmd->summary_view;
+               D_MSG_RETM_IF(vsd == NULL, "vsd is NULL");
+
+               D_MSG("Summary view mode : %d", vsd->mode);
+
+               msg_ui_viewer_summary_view_set_font_size(vsd, MSG_VIEWER_FONT_CHANGE_LATEST_UPDATE);
+
+               if (vsd->recipient_list) {
+                       vsd->mode = MSG_VIEWER_RECIPIENT_MODE;
+               } else {
+                       /*connect handler again*/
+                       msg_ui_viewer_summary_view_connect_handler(vsd);
+
+                       vsd->mode = MSG_VIEWER_DEFAULT_MODE;
+               }
+       } else {
+               D_MSG("Current view mode [%d] is not appliable!!", vmd->view_mode);
+       }
+
+       D_LEAVE;
+}
diff --git a/viewer/src/msg-ui-viewer-gadget.c b/viewer/src/msg-ui-viewer-gadget.c
new file mode 100755 (executable)
index 0000000..0444b51
--- /dev/null
@@ -0,0 +1,814 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#ifndef UG_MODULE_API
+#define UG_MODULE_API __attribute__ ((visibility("default")))
+#endif
+
+/*==================================================================================================
+ *                                                                             INCLUDE HEADERS
+*==================================================================================================*/
+#include <msg.h>
+#include "msg-smil-player-interface.h"
+#include "msg-ui-common-utility.h"
+#include "msg-ui-viewer-main.h"
+#include "msg-ui-image-resource.h"
+#include <glib.h>
+#include <contacts.h>
+#include <device/power.h>
+#include <device/battery.h>
+#include <runtime_info.h>
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+static void *__msg_ui_viewer_on_create(ui_gadget_h ug, enum ug_mode mode, app_control_h svc_handle, void *priv);
+static void __msg_ui_viewer_on_start(ui_gadget_h ug, app_control_h svc_handle, void *priv);
+static void __msg_ui_viewer_on_pause(ui_gadget_h ug, app_control_h svc_handle, void *priv);
+static void __msg_ui_viewer_on_resume(ui_gadget_h ug, app_control_h svc_handle, void *priv);
+static void __msg_ui_viewer_on_destroy(ui_gadget_h ug, app_control_h svc_handle, void *priv);
+static void __msg_ui_viewer_on_message(ui_gadget_h ug, app_control_h svc_msg_h, app_control_h svc_data_h, void *priv);
+static void __msg_ui_viewer_on_event(ui_gadget_h ug, enum ug_event event, app_control_h svc_handle, void *priv);
+static void __msg_ui_viewer_on_key_event(ui_gadget_h ug, enum ug_key_event event, app_control_h svc_handle, void *priv);
+
+static void __msg_ui_viewer_destroy_viewer_ug(void *data);
+static unsigned int __msg_ui_viewer_convert_atoh(const char *string);
+static void __msg_ui_viewer_rotate_play_window(void *data, int rotate);
+
+/*==================================================================================================
+ *                                                                     FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+static unsigned int __msg_ui_viewer_convert_atoh(const char *string)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(string == NULL, 0, "string is NULL");
+       unsigned int value = 0;
+       unsigned int digit = 0;
+       char c;
+
+       while ((c = *string++) != '\0') {
+               if (c >= '0' && c <= '9')
+                       digit = (unsigned int) (c - '0');
+               else if (c >= 'a' && c <= 'f')
+                       digit = (unsigned int) (c - 'a') + 10;
+               else if (c >= 'A' && c <= 'F')
+                       digit = (unsigned int) (c - 'A') + 10;
+               else
+                       break;
+
+               value = (value << 4) + digit;
+       }
+
+       return value;
+}
+
+static void __msg_ui_viewer_rotate_play_window(void *data, int rotate)
+{
+       D_ENTER;
+       D_MSG("rotate = %d", rotate);
+}
+
+static void *__msg_ui_viewer_on_create(ui_gadget_h ug, enum ug_mode mode, app_control_h svc_handle, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(ug == NULL, NULL, "ug is NULL");
+       D_MSG_RETVM_IF(svc_handle == NULL, NULL, "svc_handle is NULL");
+       D_MSG_RETVM_IF(priv == NULL, NULL, "priv is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)priv;
+       msg_error_t err = MSG_SUCCESS;
+       msg_handle_t msgHandle = NULL;
+       Evas_Object *layout = NULL;
+       int ct_ret = CONTACTS_ERROR_NONE;
+
+       bindtextdomain("message", LOCALEDIR);
+
+       /*Set Message Handler*/
+       err = msg_open_msg_handle(&msgHandle);
+
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_open_msg_handle failed, Error = %d", err);
+               ug_destroy_me(ug);
+               return NULL;
+       }
+
+       msg_ui_viewer_main_init(vmd);
+
+       vmd->viewer_ug = ug;
+       vmd->cbs.layout_cb = msg_ui_viewer_layout_cb;
+       vmd->cbs.result_cb = msg_ui_viewer_result_cb;
+       vmd->cbs.destroy_cb = msg_ui_viewer_destroy_cb;
+       vmd->cbs.priv = (void *)vmd;
+       vmd->msgHandle = msgHandle;
+       vmd->main_window = ug_get_window();
+       D_MSG_RETVM_IF(vmd->main_window == NULL, NULL, "vmd->main_window is NULL");
+
+       int win_w = 0;
+       int win_h = 0;
+       elm_win_screen_size_get(vmd->main_window, NULL, NULL, &win_w, &win_h);
+       vmd->window_w = win_w;
+       vmd->window_h = win_h;
+       D_SEC_MSG("screen width = %d, screen_height = %d", win_w, win_h);
+
+       ct_ret = contacts_connect();
+       if (ct_ret != CONTACTS_ERROR_NONE)
+               D_EMSG("contacts_connect failed : ct_ret = [%d]", ct_ret);
+
+       if (svc_handle) {
+               char *internal_mode = NULL;
+               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_VIEWER_INTERNAL_CALLER, &internal_mode);
+
+               if (internal_mode) {
+                       char *msgid = NULL;
+                       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, &msgid);
+                       if (msgid) {
+                               vmd->msgID = (int)atoi(msgid);
+                               D_MSG("msgID = %d", vmd->msgID);
+                               free(msgid);
+                       } else {
+                               D_EMSG("There is no msgID");
+                               free(internal_mode);
+                               return NULL;
+                       }
+
+                       /*get msg info struct handle */
+                       vmd->msg_t = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+                       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+                       if (vmd->msgID != -1) {
+                               err = msg_get_message(vmd->msgHandle, vmd->msgID, vmd->msg_t, sendOpt);
+                               if (err != MSG_SUCCESS) {
+                                       D_EMSG("msg_get_message has failed");
+                                       msg_release_struct(&vmd->msg_t);
+                                       msg_release_struct(&sendOpt);
+                                       free(internal_mode);
+                                       return NULL;
+                               }
+                       }
+
+                       msg_release_struct(&sendOpt);
+
+                       int msg_type;
+                       msg_get_int_value(vmd->msg_t, MSG_MESSAGE_TYPE_INT, &msg_type);
+
+                       D_MSG("MSG TYPE = %d", msg_type);
+
+                       if (msg_type == MSG_TYPE_MMS) {
+                               /*create mms_t*/
+                               vmd->mms_t = msg_create_struct(MSG_STRUCT_MMS);
+                               err = msg_get_mms_struct(vmd->msg_t, vmd->mms_t);
+
+                               if (err != MSG_SUCCESS) {
+                                       D_EMSG("failed in get mms data handler");
+                                       free(internal_mode);
+                                       if (vmd->mms_t) {
+                                               msg_release_struct(&vmd->mms_t);
+                                               vmd->mms_t = NULL;
+                                       }
+                                       if (vmd->msg_t) {
+                                               msg_release_struct(&vmd->msg_t);
+                                               vmd->msg_t = NULL;
+                                       }
+                                       return NULL;
+                               }
+                               vmd->launch_mode = MSG_VIEWER_MMS_SUMMARIZED_MODE;
+                       } else {
+                               vmd->launch_mode = MSG_VIEWER_SMS_SUMMARIZED_MODE;
+                       }
+                       if (!g_strcmp0(internal_mode, MSG_BUNDLE_VALUE_SPAM_MSG)) {
+                               vmd->internal_mode = VIEWER_INTERNAL_SPAM_MSG;
+                       } else if (!g_strcmp0(internal_mode, MSG_BUNDLE_VALUE_SIM_MSG)) {
+                               vmd->internal_mode = VIEWER_INTERNAL_SIM_MSG;
+                       } else if (!g_strcmp0(internal_mode, MSG_BUNDLE_VALUE_CB_MSG)) {
+                               vmd->internal_mode = VIEWER_INTERNAL_CB_MSG;
+                       } else if (!g_strcmp0(internal_mode, MSG_BUNDLE_VALUE_PROTECTED_SUMMARY_MMS)) {
+                               vmd->internal_mode = VIEWER_INTERNAL_PROTECTED_MMS_MSG;
+                               vmd->launch_mode = MSG_VIEWER_MMS_NORMAL_MODE;
+                       } else if (!g_strcmp0(internal_mode, MSG_BUNDLE_VALUE_SPAM_SUMMARY_MMS)) {
+                               vmd->internal_mode = VIEWER_INTERNAL_SPAM_MMS_MSG;
+                               vmd->launch_mode = MSG_VIEWER_MMS_NORMAL_MODE;
+                       } else if (!g_strcmp0(internal_mode, MSG_BUNDLE_VALUE_NORMAL_SUMMARY_MMS)) {
+                               vmd->internal_mode = VIEWER_INTERNAL_NONE;
+                               vmd->launch_mode = MSG_VIEWER_MMS_NORMAL_MODE;
+                       } else {
+                               D_MSG("Invalid internal_mode! (%s)", internal_mode);
+                       }
+
+                       free(internal_mode);
+               } else {
+                       char *mode_value = NULL;
+                       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, &mode_value);
+
+                       if (mode_value) {
+                               /*preview mode*/
+                               if (!g_strcmp0(mode_value, MSG_BUNDLE_VALUE_PREVIEW_MODE)) {
+                                       unsigned int msg_t_pointer = 0;
+                                       char *preview_data = NULL;
+
+                                       vmd->launch_mode = MSG_VIEWER_MMS_PREVIEW_MODE;
+
+                                       /* get data value */
+                                       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_PREVIEW_DATA, &preview_data);
+
+                                       if (preview_data) {
+                                               /* get msg_t */
+                                               msg_t_pointer = __msg_ui_viewer_convert_atoh((const char *)preview_data);
+                                               vmd->msg_t = (msg_struct_t)msg_t_pointer;
+
+                                               /*create mms_t*/
+                                               vmd->mms_t = msg_create_struct(MSG_STRUCT_MMS);
+                                               err = msg_get_mms_struct(vmd->msg_t, vmd->mms_t);
+
+                                               if (err != MSG_SUCCESS) {
+                                                       D_EMSG("failed in get mms data handler");
+                                                       if (vmd->mms_t) {
+                                                               msg_release_struct(&vmd->mms_t);
+                                                               vmd->mms_t = NULL;
+                                                       }
+                                                       if (vmd->msg_t) {
+                                                               msg_release_struct(&vmd->msg_t);
+                                                               vmd->msg_t = NULL;
+                                                       }
+                                                       free(preview_data);
+                                                       free(mode_value);
+                                                       return NULL;
+                                               }
+
+                                               free(preview_data);
+                                       } else {
+                                               D_EMSG("preview_data is NULL");
+                                               free(mode_value);
+                                               return NULL;
+                                       }
+                               } else {
+                                       D_EMSG("invalid mode: [%s]", mode_value);
+                                       free(mode_value);
+                                       return NULL;
+                               }
+
+                               free(mode_value);
+                       } else { /*normal view mode*/
+                               char *msgid = NULL;
+                               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, &msgid);
+                               if (msgid) {
+                                       vmd->msgID = (int)atoi(msgid);
+                                       D_MSG("msgID = %d", vmd->msgID);
+                                       free(msgid);
+                               } else {
+                                       D_EMSG("There is no msgID");
+                                       return NULL;
+                               }
+
+                               /*get msg info struct handle */
+                               vmd->msg_t = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+                               msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+                               if (vmd->msgID != -1) {
+                                       err = msg_get_message(vmd->msgHandle, vmd->msgID, vmd->msg_t, sendOpt);
+                                       if (err != MSG_SUCCESS) {
+                                               D_EMSG("msg_get_message has failed");
+                                               msg_release_struct(&vmd->msg_t);
+                                               msg_release_struct(&sendOpt);
+                                               return NULL;
+                                       }
+                               }
+
+                               msg_release_struct(&sendOpt);
+
+                               int msg_type;
+                               msg_get_int_value(vmd->msg_t, MSG_MESSAGE_TYPE_INT, &msg_type);
+
+                               D_MSG("MSG TYPE = %d", msg_type);
+
+                               if (msg_type == MSG_TYPE_MMS) {
+                                       /*create mms_t*/
+                                       vmd->mms_t = msg_create_struct(MSG_STRUCT_MMS);
+                                       err = msg_get_mms_struct(vmd->msg_t, vmd->mms_t);
+
+                                       if (err != MSG_SUCCESS) {
+                                               if (vmd->mms_t) {
+                                                       msg_release_struct(&vmd->mms_t);
+                                                       vmd->mms_t = NULL;
+                                               }
+                                               if (vmd->msg_t) {
+                                                       msg_release_struct(&vmd->msg_t);
+                                                       vmd->msg_t = NULL;
+                                               }
+                                               D_EMSG("failed in get mms data handler");
+                                               return NULL;
+                                       }
+
+                                       vmd->launch_mode = MSG_VIEWER_MMS_SUMMARIZED_MODE;
+                               } else {
+                                       vmd->launch_mode = MSG_VIEWER_SMS_SUMMARIZED_MODE;
+                               }
+                       }
+
+                       vmd->internal_mode = VIEWER_INTERNAL_NONE;
+               }
+
+               /* get viewer state of infinite nesting layout */
+               char *from_contact = NULL;
+               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_CALLER, &from_contact);
+
+               if (from_contact) {
+                       if (!g_strcmp0(from_contact, UG_NAME_CONTACTS_DETAILS))
+                               vmd->from_contact = true;
+                       else
+                               vmd->from_contact = false;
+
+                       free(from_contact);
+               } else {
+                       vmd->from_contact = false;
+               }
+       } else {
+               D_EMSG("data is NULL");
+               return NULL;
+       }
+
+       if (mode == UG_MODE_FULLVIEW)
+               vmd->ug_mode = MSG_UG_MODE_FULLVIEW;
+       else
+               vmd->ug_mode = MSG_UG_MODE_FRAMVIEW;
+
+       /*create layout*/
+       Evas_Object *bg = msg_ui_viewer_create_bg(vmd, vmd->main_window);
+
+       bool show_indicator = true;
+       char *indicator_mode = NULL;
+
+       app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_INDICATOR_MODE, &indicator_mode);
+       if (indicator_mode) {
+               if (!g_strcmp0(indicator_mode, MSG_BUNDLE_VALUE_NO_INDICATOR))
+                       show_indicator = false;
+
+               free(indicator_mode);
+       }
+
+       layout = msg_ui_viewer_create_layout_main(vmd->main_window, show_indicator);
+       vmd->layout_main = layout;
+
+       if (bg)
+               elm_object_part_content_set(layout, "elm.swallow.bg", bg);
+       else
+               return NULL;
+
+       return layout;
+}
+
+static void __msg_ui_viewer_on_start(ui_gadget_h ug, app_control_h svc_handle, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(ug == NULL, "ug is NULL");
+       D_MSG_RETM_IF(priv == NULL, "priv is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)priv;
+
+       if (msg_ui_viewer_launch(vmd) == FALSE)
+               ug_destroy_me(vmd->viewer_ug);
+
+       D_MSG("[VIEWER_MAIN_DATA] ug_mode = [%d], launch_mode = [%d], view_mode = [%d], internal_mode = [%d]", vmd->ug_mode, vmd->launch_mode, vmd->view_mode, vmd->internal_mode);
+
+       /* start SMIL PLAYER event after UG STARTED */
+       if (vmd->view_mode == MSG_VIEWER_PLAYER_VIEW) {
+               if (vmd->player_view) {
+                       if (vmd->player_view->SmilHandle) {
+                               /* create play controller */
+                               msg_ui_viewer_play_controller_create(vmd->player_view);
+
+                               MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
+                               err = msg_smil_on_slide_event_handler(&(vmd->player_view->SmilHandle), PLAYER_EVENT_START);
+                               if (err != MSG_SMIL_SUCCESS)
+                                       D_EMSG("msg_smil_on_slide_event_handler is failed! : %d", err);
+
+                               device_power_request_lock(POWER_LOCK_DISPLAY, 0);
+                       }
+               } else {
+                       D_EMSG("Player view is NULL!!");
+               }
+       }
+}
+
+static void __msg_ui_viewer_on_pause(ui_gadget_h ug, app_control_h svc_handle, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(ug == NULL, "ug is NULL");
+       D_MSG_RETM_IF(priv == NULL, "priv is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)priv;
+       D_MSG("vmd->view_mode : %d", vmd->view_mode);
+
+       if (vmd->view_mode == MSG_VIEWER_PLAYER_VIEW) {
+               if (vmd->player_view) {
+                       D_MSG("Player view mode : %d", vmd->player_view->mode);
+                       /* viewer will be paused */
+                       MSG_SMIL_ERROR_E Error = MSG_SMIL_SUCCESS;
+                       msg_ui_viewer_disconnect_handler(vmd->player_view, true);
+
+                       if (vmd->player_view->status == MSG_VIEWER_PLAY) {
+                               Error = msg_smil_on_slide_event_handler(&(vmd->player_view->SmilHandle), PLAYER_EVENT_PAUSE);
+                               if (Error != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", Error);
+                               }
+
+                               device_power_release_lock(POWER_LOCK_DISPLAY);
+
+                               vmd->player_view->status = MSG_VIEWER_PAUSE;
+
+                               if (vmd->player_view->play_controller) {
+                                       edje_object_signal_emit(_EDJ(vmd->player_view->play_controller), "play", "*");
+
+                                       if (vmd->player_view->play_controller_progressbar_timer)
+                                               ecore_timer_freeze(vmd->player_view->play_controller_progressbar_timer);
+                               }
+                       }
+
+                       /* destroy popup with no button types include ctx popup */
+                       if (vmd->player_view->popup) {
+                               if (vmd->player_view->popup_type == MSG_VIEWER_MENU_CTX_POPUP || \
+                                       vmd->player_view->popup_type == MSG_VIEWER_DETAILS_POPUP || \
+                                       vmd->player_view->popup_type == MSG_VIEWER_CUTLINK_POPUP || \
+                                       vmd->player_view->popup_type == MSG_VIEWER_RECIPIENT_LIST_MENU_POPUP || \
+                                       vmd->player_view->popup_type == MSG_VIEWER_ADD_TO_CONTACT_POPUP || \
+                                       vmd->player_view->popup_type == MSG_VIEWER_CONTACT_LIST_POPUP) {
+                                       msg_ui_viewer_popup_destroy((void *)vmd->player_view);
+                               }
+                       }
+               } else {
+                       D_MSG("Player view is not exist!");
+               }
+       } else if (vmd->view_mode == MSG_VIEWER_SUMMARY_VIEW) {
+               if (vmd->summary_view) {
+                       /* destroy popup with no button types include ctx popup */
+                       if (vmd->summary_view->popup) {
+                               if (vmd->summary_view->popup_type == MSG_VIEWER_MENU_CTX_POPUP || \
+                                       vmd->summary_view->popup_type == MSG_VIEWER_DETAILS_POPUP || \
+                                       vmd->summary_view->popup_type == MSG_VIEWER_CUTLINK_POPUP || \
+                                       vmd->summary_view->popup_type == MSG_VIEWER_RECIPIENT_LIST_MENU_POPUP || \
+                                       vmd->summary_view->popup_type == MSG_VIEWER_ADD_TO_CONTACT_POPUP || \
+                                       vmd->summary_view->popup_type == MSG_VIEWER_CONTACT_LIST_POPUP) {
+                                       msg_ui_viewer_summary_view_popup_destroy((void *)vmd->summary_view);
+                               }
+                       }
+               } else {
+                       D_MSG("Summary view is not exist!");
+               }
+       }
+}
+
+static void __msg_ui_viewer_on_resume(ui_gadget_h ug, app_control_h svc_handle, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(ug == NULL, "ug is NULL");
+       D_MSG_RETM_IF(priv == NULL, "priv is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)priv;
+       D_MSG("vmd->view_mode : %d", vmd->view_mode);
+
+       if (vmd->view_mode == MSG_VIEWER_PLAYER_VIEW) {
+               if (vmd->player_view) {
+                       D_MSG("Player view mode : %d", vmd->player_view->mode);
+
+                       msg_ui_viewer_apply_font_size(vmd->player_view);
+
+                       SMIL_SLIDE_INFO_S *slide = msg_smil_get_current_slide_info(vmd->player_view->SmilHandle);
+                       MSG_VIEWER_ENTRY_TYPE_E entry_type = (slide && slide->pageInfo && slide->pageInfo->isHelpPage && !slide->commonData->isTextOnlyMixed) ? MSG_VIEWER_ENTRY_HELP_TEXT : MSG_VIEWER_ENTRY_NORMAL_TEXT;
+                       msg_ui_viewer_set_font_size(vmd->player_view, entry_type, MSG_VIEWER_FONT_CHANGE_LATEST_UPDATE);
+               }
+       } else if (vmd->view_mode == MSG_VIEWER_SUMMARY_VIEW) {
+               if (vmd->summary_view) {
+                       D_MSG("Summary view mode : %d", vmd->summary_view->mode);
+                       msg_ui_viewer_summary_view_apply_font_size(vmd->summary_view);
+                       msg_ui_viewer_summary_view_set_font_size(vmd->summary_view, MSG_VIEWER_FONT_CHANGE_LATEST_UPDATE);
+               }
+       }
+}
+
+static void __msg_ui_viewer_on_destroy(ui_gadget_h ug, app_control_h svc_handle, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(ug == NULL, "ug is NULL");
+       D_MSG_RETM_IF(priv == NULL, "priv is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)priv;
+       msg_error_t err;
+
+       int ct_ret = CONTACTS_ERROR_NONE;
+
+       D_MSG("vmd->SmilHandle : %x", vmd->SmilHandle);
+
+       ug_send_result(vmd->viewer_ug, svc_handle);
+
+       if (vmd->summary_view) {
+               msg_ui_viewer_destroy_summary_view(vmd->summary_view);
+               free(vmd->summary_view);
+               vmd->summary_view = NULL;
+       }
+
+       if (vmd->player_view) {
+               msg_ui_viewer_destroy_play_view(vmd->player_view);
+               free(vmd->player_view);
+               vmd->player_view = NULL;
+       }
+
+       if (vmd->bg) {
+               evas_object_del(vmd->bg);
+               vmd->bg = NULL;
+       }
+
+       if (vmd->layout_main) {
+               evas_object_del(vmd->layout_main);
+               vmd->layout_main = NULL;
+       }
+
+       /*destroy viewer_main data*/
+       if (vmd->SmilHandle) {
+               msg_smil_destroy_smil_player(vmd->SmilHandle);
+               msg_ui_viewer_set_smilhandle(vmd, NULL);
+       }
+
+       /* release msg info struct handle */
+       if (vmd->msg_t) {
+               msg_release_struct(&vmd->msg_t);
+               vmd->msg_t = NULL;
+       }
+
+       /* release mms struct handle */
+       if (vmd->mms_t) {
+               msg_release_struct(&vmd->mms_t);
+               vmd->mms_t = NULL;
+       }
+
+       if ((err = msg_close_msg_handle(&vmd->msgHandle)) != MSG_SUCCESS)
+               D_EMSG("msg_close_msg_handle, err=[%d]", err);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_on_message(ui_gadget_h ug, app_control_h svc_msg_h, app_control_h svc_data_h, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(priv == NULL, "priv is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)priv;
+
+       /* currently, there's only reset scenario in summary viewer */
+       if (vmd->summary_view) {
+               VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)vmd->summary_view;
+
+               if (vsd->msg_type == MSG_TYPE_MMS) {
+                       if (msg_ui_viewer_summary_view_check_mms_read_report(vsd) == MSG_VIEWER_READ_REPORT_IS_NEEDED_BUT_NOT_YET) {
+                               msg_ui_viewer_summary_view_show_popup(vsd, MESSAGE_PKGNAME, "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT", \
+                                       MSG_VIEWER_READ_REPORT_SENT_POPUP, MSG_VIEWER_POPUP_CANCEL_OK_BUTTON, \
+                                       msg_ui_viewer_summary_view_send_read_report_popup_cancel_cb, \
+                                       msg_ui_viewer_summary_view_send_read_report_popup_ok_cb);
+
+                               char *page_order = NULL;
+                               char *msgid_str = NULL;
+
+                               app_control_get_extra_data(svc_msg_h, MSG_BUNDLE_KEY_MSG_ID, &msgid_str);
+                               app_control_get_extra_data(svc_msg_h, MSG_BUNDLE_KEY_PAGE_CHANGE, &page_order);
+
+                               if (msgid_str) {
+                                       char *pass_msgid = (char *)calloc(1, strlen(msgid_str) + 1);
+                                       if (pass_msgid) {
+                                               strncpy(pass_msgid, msgid_str, strlen(msgid_str));
+                                               D_MSG("pass_msgid = %s", pass_msgid);
+                                               evas_object_data_set(vsd->popup, "msgid", pass_msgid);
+                                       }
+
+                                       free(msgid_str);
+                               }
+
+                               if (page_order) {
+                                       char *pass_pageorder = (char *)calloc(1, strlen(page_order) + 1);
+                                       if (pass_pageorder) {
+                                               strncpy(pass_pageorder, page_order, strlen(page_order));
+                                               D_MSG("pass_pageorder = %s", pass_pageorder);
+                                               evas_object_data_set(vsd->popup, "page_order", pass_pageorder);
+                                       }
+
+                                       free(page_order);
+                               }
+
+                               return;
+                       }
+               }
+
+               msg_ui_viewer_reload_viewer(vmd, svc_msg_h);
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_on_event(ui_gadget_h ug, enum ug_event event, app_control_h svc_handle, void *priv)
+{
+       D_MSG_RETM_IF(ug == NULL, "ug is NULL");
+       D_MSG_RETM_IF(priv == NULL, "priv is NULL");
+       D_MSG("event : %d", event);
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)priv;
+
+       switch (event) {
+       case UG_EVENT_LOW_MEMORY:
+               break;
+       case UG_EVENT_LOW_BATTERY:
+       {
+               device_battery_level_e battey_level;
+               device_battery_get_level_status(&battey_level);
+
+               D_MSG("battey_level = %d", battey_level);
+               if (battey_level == DEVICE_BATTERY_LEVEL_EMPTY || battey_level == DEVICE_BATTERY_LEVEL_CRITICAL) {
+                       bool charger_status = false;
+                       runtime_info_get_value_bool(RUNTIME_INFO_KEY_BATTERY_IS_CHARGING, &charger_status);
+                       if (!charger_status)
+                               __msg_ui_viewer_destroy_viewer_ug(priv);
+                       }
+               break;
+       }
+       case UG_EVENT_LANG_CHANGE:
+               msg_ui_viewer_change_language(vmd);
+               break;
+       case UG_EVENT_ROTATE_PORTRAIT:
+               D_MSG("UG_EVENT_ROTATE_PORTRAIT");
+               __msg_ui_viewer_rotate_play_window(vmd, 0);
+               break;
+       case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
+               D_MSG("UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN");
+               __msg_ui_viewer_rotate_play_window(vmd, 180);
+               break;
+       case UG_EVENT_ROTATE_LANDSCAPE:
+               D_MSG("UG_EVENT_ROTATE_LANDSCAPE");
+               __msg_ui_viewer_rotate_play_window(vmd, 270);
+               break;
+       case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+               D_MSG("UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN");
+               __msg_ui_viewer_rotate_play_window(vmd, 90);
+               break;
+       case UG_EVENT_REGION_CHANGE:
+               break;
+       default:
+               break;
+       }
+}
+
+static void __msg_ui_viewer_on_key_event(ui_gadget_h ug, enum ug_key_event event, app_control_h svc_handle, void *priv)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(ug == NULL, "ug is NULL");
+       D_MSG_RETM_IF(priv == NULL, "priv is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)priv;
+       MSG_SMIL_ERROR_E Error = MSG_SMIL_SUCCESS;
+       int     ispopup = FALSE;
+
+       D_MSG("vmd->view_mode : %d", vmd->view_mode);
+
+       switch (event) {
+       case UG_KEY_EVENT_END:
+               if (vmd->view_mode == MSG_VIEWER_PLAYER_VIEW) {
+                       if (vmd->player_view) {
+                               if (vmd->player_view->popup) {
+                                       msg_ui_viewer_popup_destroy(vmd->player_view);
+                                       ispopup = TRUE;
+                               }
+
+                               if (vmd->player_view->status == MSG_VIEWER_PLAY ||
+                                       vmd->player_view->status == MSG_VIEWER_PAUSE) {
+                                       Error = msg_smil_on_slide_event_handler(&(vmd->player_view->SmilHandle), PLAYER_EVENT_STOP);
+                                       if (Error != MSG_SMIL_SUCCESS) {
+                                               D_EMSG("msg_smil_on_slide_event_handler failed! : %d", Error);
+                                       }
+
+                                       device_power_release_lock(POWER_LOCK_DISPLAY);
+
+                                       vmd->player_view->status = MSG_VIEWER_STOP;
+                                       msg_ui_viewer_play_controller_update(vmd->player_view, MSG_VIEWER_STOP);
+                               }
+                       }
+               } else if (vmd->view_mode == MSG_VIEWER_SUMMARY_VIEW) {
+                       if (vmd->summary_view) {
+                               if (vmd->summary_view->popup) {
+                                       msg_ui_viewer_summary_view_popup_destroy(vmd->summary_view);
+                                       ispopup = TRUE;
+                               }
+                       }
+               } else {
+                       D_MSG("Not required case");
+               }
+
+               if (ispopup == FALSE) {
+                       if (!vmd->del_idler)
+                               vmd->del_idler = ecore_idler_add(msg_ui_viewer_ug_quit, vmd);
+               }
+
+               break;
+       default:
+               break;
+       }
+}
+
+static void __msg_ui_viewer_destroy_viewer_ug(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+       MSG_SMIL_ERROR_E Error = MSG_SMIL_SUCCESS;
+
+       if (vmd->view_mode == MSG_VIEWER_PLAYER_VIEW) {
+               if (vmd->player_view) {
+                       if (vmd->player_view->popup) {
+                               if (vmd->player_view->popup_type != MSG_VIEWER_RENAME_ATTACHMENT_POPUP)
+                                       msg_ui_viewer_popup_destroy(vmd->player_view);
+                               else
+                                       msg_ui_viewer_save_attachment_popup_destroy(vmd->player_view);
+                       }
+
+                       if (vmd->player_view->status == MSG_VIEWER_PLAY ||
+                               vmd->player_view->status == MSG_VIEWER_PAUSE) {
+                               Error = msg_smil_on_slide_event_handler(&(vmd->player_view->SmilHandle), PLAYER_EVENT_STOP);
+                               if (Error != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", Error);
+                               } else {
+                                       vmd->player_view->status = MSG_VIEWER_STOP;
+                               }
+
+                               device_power_release_lock(POWER_LOCK_DISPLAY);
+                       }
+               }
+       } else if (vmd->view_mode == MSG_VIEWER_SUMMARY_VIEW) {
+               if (vmd->summary_view) {
+                       if (vmd->summary_view->popup) {
+                               if (vmd->summary_view->popup_type != MSG_VIEWER_RENAME_ATTACHMENT_POPUP)
+                                       msg_ui_viewer_summary_view_popup_destroy(vmd->summary_view);
+                               else
+                                       msg_ui_viewer_summary_view_rename_popup_destroy(vmd->summary_view);
+                       }
+               }
+       } else {
+               D_MSG("%d mode is not required anything", vmd->view_mode);
+       }
+
+       if (!vmd->del_idler)
+               vmd->del_idler = ecore_idler_add(msg_ui_viewer_ug_quit, vmd);
+
+       if (vmd->msg_list_idler) {
+               ecore_idler_del(vmd->msg_list_idler);
+               vmd->msg_list_idler = NULL;
+       }
+
+       if (vmd->msg_id_list) {
+               int *msgId = NULL;
+
+               EINA_LIST_FREE(vmd->msg_id_list, msgId) {
+                       if (msgId)
+                               free(msgId);
+               }
+       }
+}
+
+UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       D_ENTER;
+       VIEWER_MAIN_DATA_S *vmd = NULL;
+
+       if (!ops)
+               return MSG_UI_RET_ERR;
+
+       msg_common_init_default_preference();
+
+       vmd = calloc(1, sizeof(VIEWER_MAIN_DATA_S));
+       if (!vmd)
+               return MSG_UI_RET_ERR;
+
+       ops->create = __msg_ui_viewer_on_create;
+       ops->start = __msg_ui_viewer_on_start;
+       ops->pause = __msg_ui_viewer_on_pause;
+       ops->resume = __msg_ui_viewer_on_resume;
+       ops->destroy = __msg_ui_viewer_on_destroy;
+       ops->message = __msg_ui_viewer_on_message;
+       ops->event = __msg_ui_viewer_on_event;
+       ops->key_event = __msg_ui_viewer_on_key_event;
+       ops->priv = (void *)vmd;
+       ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+       return MSG_UI_RET_SUCCESS;
+}
+
+UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       D_ENTER;
+       VIEWER_MAIN_DATA_S *vmd = NULL;
+
+       if (!ops)
+               return;
+
+       vmd = (VIEWER_MAIN_DATA_S *)ops->priv;
+
+       if (vmd)
+               free(vmd);
+}
diff --git a/viewer/src/msg-ui-viewer-main.c b/viewer/src/msg-ui-viewer-main.c
new file mode 100755 (executable)
index 0000000..40c7129
--- /dev/null
@@ -0,0 +1,874 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+                                                                         INCLUDE HEADERS
+*==================================================================================================*/
+#include <msg.h>
+#include "msg-smil-player-interface.h"
+#include "msg-ui-common-utility.h"
+#include "msg-ui-viewer-utility.h"
+#include "msg-ui-viewer-main.h"
+
+/*==================================================================================================
+ *                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+static MSG_SMIL_ERROR_E __msg_ui_viewer_main_smil_cb(SMIL_SLIDE_CLIENT_CB_PARAM_S *eventStatus, void *data);
+static MSG_BOOL __msg_ui_vewer_get_smil_handle(void *data);
+static MSG_BOOL __msg_ui_viewer_launch_play_view(void *data, bool invalid_drm);
+static MSG_BOOL __msg_ui_viewer_launch_summary_view(void *data, bool invalid_drm);
+static MSG_BOOL __msg_ui_viewer_show_play_view(void *data);
+/*==================================================================================================
+ *                                                     FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+void msg_ui_viewer_main_init(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       vmd->main_window = NULL;
+       vmd->layout_main = NULL;
+       vmd->bg = NULL;
+       vmd->msgHandle = NULL;
+       vmd->msgID = -1;
+       vmd->launch_mode = MSG_VIEWER_INVALID_MODE;
+       vmd->SmilHandle = NULL;
+       vmd->msg_t = NULL;
+       vmd->mms_t = NULL;
+       vmd->ug_mode = MSG_UG_MODE_FULLVIEW;
+       vmd->navi_frame = NULL;
+       vmd->player_view = NULL;
+       vmd->del_idler = NULL;
+       memset(&vmd->cbs, 0x0, sizeof(struct ug_cbs));
+}
+
+MSG_BOOL msg_ui_viewer_launch(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+       MSG_BOOL ret = TRUE;
+
+       if (vmd->launch_mode == MSG_VIEWER_SMS_SUMMARIZED_MODE || vmd->launch_mode == MSG_VIEWER_MMS_SUMMARIZED_MODE) {
+               ret = __msg_ui_viewer_launch_summary_view(vmd, false);
+       } else if (vmd->launch_mode == MSG_VIEWER_MMS_NORMAL_MODE || vmd->launch_mode == MSG_VIEWER_MMS_PREVIEW_MODE) {
+               if (!__msg_ui_vewer_get_smil_handle(vmd)) {
+                       D_EMSG("__msg_ui_vewer_get_smil_handle is failed");
+                       return FALSE;
+               }
+               ret = __msg_ui_viewer_launch_play_view(vmd, false);
+               vmd->view_mode = MSG_VIEWER_PLAYER_VIEW;
+       } else {
+               D_EMSG("invalid launch mode!!");
+               return FALSE;
+       }
+
+       return ret;
+}
+
+void msg_ui_viewer_reload_viewer(void *data, app_control_h svc_handle)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       msg_error_t err = MSG_SUCCESS;
+
+       if (vmd->msg_t) {
+               msg_release_struct(&vmd->msg_t);
+               vmd->msg_t = NULL;
+       }
+
+       if (vmd->mms_t) {
+               msg_release_struct(&vmd->mms_t);
+               vmd->mms_t = NULL;
+       }
+
+       if (svc_handle) {
+               char *msgid = NULL;
+
+               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, &msgid);
+
+               if (msgid) {
+                       vmd->msgID = (int)atoi(msgid);
+                       D_MSG("msgID = %d", vmd->msgID);
+                       free(msgid);
+               } else {
+                       D_EMSG("There is no msgid");
+                       return;
+               }
+
+               /* get msg info struct handle */
+               vmd->msg_t = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+               msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+               if (vmd->msgID != -1) {
+                       err = msg_get_message(vmd->msgHandle, vmd->msgID, vmd->msg_t, sendOpt);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_get_message has failed");
+                               msg_release_struct(&vmd->msg_t);
+                               msg_release_struct(&sendOpt);
+                               return;
+                       }
+               }
+
+               msg_release_struct(&sendOpt);
+
+               int msg_type;
+               msg_get_int_value(vmd->msg_t, MSG_MESSAGE_TYPE_INT, &msg_type);
+
+               D_MSG("MSG TYPE = %d", msg_type);
+               if (msg_type == MSG_TYPE_MMS) {
+                       /* create mms_t */
+                       vmd->mms_t = msg_create_struct(MSG_STRUCT_MMS);
+                       err = msg_get_mms_struct(vmd->msg_t, vmd->mms_t);
+
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("failed in get mms data handler");
+                               return;
+                       }
+
+                       vmd->launch_mode = MSG_VIEWER_MMS_SUMMARIZED_MODE;
+               } else {
+                       vmd->launch_mode = MSG_VIEWER_SMS_SUMMARIZED_MODE;
+               }
+
+               char *internal_mode = NULL;
+
+               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_VIEWER_INTERNAL_CALLER, &internal_mode);
+
+               if (internal_mode) {
+                       if (!g_strcmp0(internal_mode, MSG_BUNDLE_VALUE_SPAM_MSG)) {
+                               vmd->internal_mode = VIEWER_INTERNAL_SPAM_MSG;
+                       } else if (!g_strcmp0(internal_mode, MSG_BUNDLE_VALUE_SIM_MSG)) {
+                               vmd->internal_mode = VIEWER_INTERNAL_SIM_MSG;
+                       } else if (!g_strcmp0(internal_mode, MSG_BUNDLE_VALUE_CB_MSG)) {
+                               vmd->internal_mode = VIEWER_INTERNAL_CB_MSG;
+                       } else if (!g_strcmp0(internal_mode, MSG_BUNDLE_VALUE_PROTECTED_SUMMARY_MMS)) {
+                               vmd->internal_mode = VIEWER_INTERNAL_PROTECTED_MMS_MSG;
+                               vmd->launch_mode = MSG_VIEWER_MMS_NORMAL_MODE;
+                       } else if (!g_strcmp0(internal_mode, MSG_BUNDLE_VALUE_SPAM_SUMMARY_MMS)) {
+                               vmd->internal_mode = VIEWER_INTERNAL_SPAM_MMS_MSG;
+                               vmd->launch_mode = MSG_VIEWER_MMS_NORMAL_MODE;
+                       } else if (!g_strcmp0(internal_mode, MSG_BUNDLE_VALUE_NORMAL_SUMMARY_MMS)) {
+                               vmd->internal_mode = VIEWER_INTERNAL_NONE;
+                               vmd->launch_mode = MSG_VIEWER_MMS_NORMAL_MODE;
+                       } else {
+                               D_MSG("Invalid internal_mode! (%s)", internal_mode);
+                       }
+
+                       free(internal_mode);
+               } else {
+                       vmd->internal_mode = VIEWER_INTERNAL_NONE;
+               }
+
+               char *change_page = NULL;
+               app_control_get_extra_data(svc_handle, MSG_BUNDLE_KEY_PAGE_CHANGE, &change_page);
+
+               if (change_page) {
+                       if (!g_strcmp0(change_page, MSG_BUNDLE_VALUE_PAGE_NEXT))
+                               vmd->view_order = VIEWER_NEXT_MSG;
+                       else if (!g_strcmp0(change_page, MSG_BUNDLE_VALUE_PAGE_PREV))
+                               vmd->view_order = VIEWER_PREVIOUS_MSG;
+                       else
+                               vmd->view_order = VIEWER_ORDER_NONE;
+
+                       free(change_page);
+               }
+       }
+
+       if (vmd->player_view) {
+               msg_ui_viewer_destroy_play_view(vmd->player_view);
+               free(vmd->player_view);
+               vmd->player_view = NULL;
+       }
+
+       if (vmd->SmilHandle) {
+               msg_smil_destroy_smil_player(vmd->SmilHandle);
+               msg_ui_viewer_set_smilhandle(vmd, NULL);
+       }
+
+       if (vmd->summary_view) {
+               msg_ui_viewer_destroy_summary_view(vmd->summary_view);
+               free(vmd->summary_view);
+               vmd->summary_view = NULL;
+       }
+
+       if (msg_ui_viewer_launch(vmd) == FALSE)
+               ug_destroy_me(vmd->viewer_ug);
+}
+
+
+void msg_ui_viewer_show_view_by_mode(void *data, MSG_VIEWER_VIEW_MODE_E viewMode, unsigned int commandType)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       D_MSG("viewMode = %d", viewMode);
+       D_MSG("vmd->player_view = 0x%x", vmd->player_view);
+
+       if (viewMode == MSG_VIEWER_PLAYER_VIEW) {
+               if (commandType == MSG_VIEWER_VIEW_CMD_PLAY) {
+                       if (__msg_ui_viewer_show_play_view(vmd))
+                               vmd->view_mode = MSG_VIEWER_PLAYER_VIEW;
+               } else {
+                       __msg_ui_viewer_launch_play_view(vmd, false);
+                       vmd->view_mode = MSG_VIEWER_PLAYER_VIEW;
+               }
+       } else {
+               D_EMSG("Invalid viewMode!!");
+       }
+}
+
+static MSG_BOOL __msg_ui_viewer_show_play_view(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+       VIEWER_PLAY_DATA_S *vpd = NULL;
+
+       if (!vmd->player_view) {
+               D_EMSG("player view is not created");
+               return FALSE;
+       } else
+               vpd = vmd->player_view;
+
+       return msg_ui_viewer_show_player_view(vpd);
+}
+
+static MSG_BOOL __msg_ui_viewer_launch_summary_view(void *data, bool invalid_drm)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+       VIEWER_SUMMARY_DATA_S *vsd = NULL;
+
+       if (!vmd->summary_view) {
+               vsd = (VIEWER_SUMMARY_DATA_S *)calloc(1, sizeof(VIEWER_SUMMARY_DATA_S));
+               if (!vsd) {
+                       D_EMSG("calloc is failed");
+                       return FALSE;
+               }
+               vmd->summary_view = vsd;
+       } else {
+               D_MSG("text view is already created");
+               vsd = vmd->summary_view;
+       }
+
+       msg_ui_viewer_summary_view_init(vsd);
+
+       if (vmd->internal_mode == VIEWER_INTERNAL_NONE)
+               vmd->msg_list_idler = ecore_idler_add(msg_ui_viewer_get_thread_msg_id_list, vmd);
+
+       vsd->msgID = vmd->msgID;
+       vsd->msgHandle = vmd->msgHandle;
+       vsd->msg_t = vmd->msg_t;
+       vsd->mms_t = vmd->mms_t;
+       vsd->main_window = vmd->main_window;
+       vsd->internal_mode = vmd->internal_mode;
+       vsd->drm_ro_check = invalid_drm;
+       vsd->view_order = vmd->view_order;
+       vsd->from_contact = vmd->from_contact;
+
+       if (vmd->navi_frame)
+               vsd->navi_frame = vmd->navi_frame;
+
+       vsd->cbs = vmd->cbs;
+       vsd->viewer_main = vmd;
+
+       return msg_ui_viewer_create_summary_view(vsd);
+}
+
+static MSG_BOOL __msg_ui_viewer_launch_play_view(void *data, bool invalid_drm)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+       VIEWER_PLAY_DATA_S *vpd = NULL;
+
+       if (!vmd->player_view) {
+               vpd = (VIEWER_PLAY_DATA_S *)calloc(1, sizeof(VIEWER_PLAY_DATA_S));
+               if (!vpd) {
+                       D_EMSG("calloc is failed");
+                       return FALSE;
+               }
+               vmd->player_view = vpd;
+       } else {
+               D_MSG("play view is already created");
+               vpd = vmd->player_view;
+       }
+
+       msg_ui_viewer_play_view_init(vpd);
+
+       vpd->msgID = vmd->msgID;
+       vpd->msgHandle = vmd->msgHandle;
+       vpd->SmilHandle = vmd->SmilHandle;
+       vpd->msg_t = vmd->msg_t;
+       vpd->mms_t = vmd->mms_t;
+       vpd->main_window = vmd->main_window;
+       vpd->internal_mode = vmd->internal_mode;
+       vpd->drm_ro_check = invalid_drm;
+       vpd->from_contact = vmd->from_contact;
+
+       if (vmd->navi_frame)
+               vpd->navi_frame = vmd->navi_frame;
+
+       vpd->cbs = vmd->cbs;
+       vpd->viewer_main = vmd;
+
+       return msg_ui_viewer_create_player_view(vpd);
+}
+
+static MSG_SMIL_ERROR_E __msg_ui_viewer_main_smil_cb(SMIL_SLIDE_CLIENT_CB_PARAM_S *eventStatus, void *data)
+{
+       D_MSG_RETVM_IF(eventStatus == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "eventStatus is NULL");
+       D_MSG_RETVM_IF(data == NULL, MSG_ERR_SMIL_INVALID_PARAMETER, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+       VIEWER_PLAY_DATA_S *vpd = vmd->player_view;
+
+       return msg_ui_viewer_smil_cb(eventStatus, vpd);
+}
+
+static MSG_BOOL __msg_ui_vewer_get_smil_handle(void *data)
+{
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+       MSG_SMIL_ERROR_E Error = MSG_SMIL_SUCCESS;
+
+       if (vmd->launch_mode == MSG_VIEWER_MMS_NORMAL_MODE) {
+               if (!vmd->mms_t) {
+                       D_EMSG("vmd->mms_t is null");
+                       return FALSE;
+               }
+       }
+
+       /*Create smilplayer handler*/
+       Error = msg_smil_create_smil_player(vmd->mms_t, __msg_ui_viewer_main_smil_cb, (void *)vmd, &(vmd->SmilHandle));
+       if (Error != MSG_SMIL_SUCCESS) {
+               D_EMSG("msg_smil_create_smil_player is failed! Error = %d", Error);
+               app_control_h svc_handle = NULL;
+
+               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                       D_EMSG("app_control_create() is failed");
+                       return FALSE;
+               }
+
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_VIEWER_MESSAGE, MSG_BUNDLE_VALUE_ERROR);
+               ug_send_result(vmd->viewer_ug, svc_handle);
+               app_control_destroy(svc_handle);
+
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+Evas_Object *msg_ui_viewer_create_bg(void *data, Evas_Object *parent)
+{
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+       Evas_Object *bg = NULL;
+
+       if (vmd->bg == NULL) {
+               bg = elm_bg_add(parent);
+               D_MSG_RETVM_IF(bg == NULL, NULL, "bg is NULL");
+           evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+           elm_win_resize_object_add(parent, bg);
+               evas_object_show(bg);
+               vmd->bg = bg;
+       } else {
+               D_EMSG("bg is already created");
+               return NULL;
+       }
+
+       return bg;
+}
+
+Evas_Object *msg_ui_viewer_create_layout_main(Evas_Object *parent, bool indicator)
+{
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *layout = NULL;
+
+       layout = elm_layout_add(parent);
+       D_MSG_RETVM_IF(layout == NULL, NULL, "layout is NULL");
+
+       if (indicator)
+               elm_layout_theme_set(layout, "layout", "application", "default");
+       else
+               elm_layout_theme_set(layout, "layout", "application", "noindicator");
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(layout);
+
+       return layout;
+}
+
+void msg_ui_viewer_set_loaded_ug(void *data, ui_gadget_h loaded_ug)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(loaded_ug == NULL, "loaded_ug is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+       vmd->loaded_ug = loaded_ug;
+
+       if (vmd->layout_main)
+               elm_object_tree_focus_allow_set(vmd->layout_main, EINA_FALSE);
+}
+
+void msg_ui_viewer_set_navi_frame(void *data, Evas_Object *navi_frame)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(navi_frame == NULL, "navi_frame is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+       vmd->navi_frame = navi_frame;
+}
+
+void msg_ui_viewer_set_smilhandle(void *data, void *smilhandle)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       if (!smilhandle)
+               D_MSG("smilhandle is set as NULL");
+
+       vmd->SmilHandle = smilhandle;
+}
+
+void msg_ui_viewer_set_msg_structure(void *data, msg_struct_t msg_t, msg_struct_t mms_t)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       vmd->msg_t = msg_t;
+       vmd->mms_t = mms_t;
+
+       if (vmd->summary_view) {
+               VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)vmd->summary_view;
+               vsd->msg_t = vmd->msg_t;
+               vsd->mms_t = vmd->mms_t;
+       }
+
+       if (vmd->player_view) {
+               VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)vmd->player_view;
+               vpd->msg_t = vmd->msg_t;
+               vpd->mms_t = vmd->mms_t;
+       }
+}
+
+
+MSG_BOOL msg_ui_viewer_get_viewer_launch_mode(void *data, MSG_VIEWER_LAUNCH_MODE_E *launch_mode)
+{
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       D_MSG_RETVM_IF(launch_mode == NULL, FALSE, "launch_mode is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       *launch_mode = vmd->launch_mode;
+
+       return TRUE;
+}
+
+MSG_BOOL msg_ui_viewer_get_viewer_ug_mode(void *data, MSG_VIEWER_UG_MODE_E *ug_mode)
+{
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       D_MSG_RETVM_IF(ug_mode == NULL, FALSE, "ug_mode is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       *ug_mode = vmd->ug_mode;
+
+       return TRUE;
+}
+
+ui_gadget_h msg_ui_viewer_get_viewer_ug(void *data)
+{
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       return vmd->viewer_ug;
+}
+
+Evas_Object *msg_ui_viewer_get_main_layout(void *data)
+{
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       return vmd->layout_main;
+}
+
+Evas_Object *msg_ui_viewer_get_bg_layout(void *data)
+{
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       return vmd->bg;
+}
+
+void msg_ui_viewer_change_region(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       if (vmd->summary_view)  {
+               VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)vmd->summary_view;
+               msg_ui_summary_viewer_get_locale_n_datetime_ptn(vsd);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_change_language(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       char szSubject[MAX_SUBJECT_LEN] = {0,};
+       char popup_msg[DEF_BUF_LEN + 1] = {0,};
+       char buf[DEF_BUF_LEN_S] = {0,};
+
+       if (vmd->player_view) {
+               VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)vmd->player_view;
+
+               msg_get_str_value(vpd->msg_t, MSG_MESSAGE_SUBJECT_STR, szSubject, MAX_SUBJECT_LEN);
+
+               if (szSubject[0] == '\0') {
+                       snprintf(buf, sizeof(buf), "%s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_NO_SUBJECT"));
+                       edje_object_part_text_set(_EDJ(vpd->subject_index_layout), "subject/text", buf);
+               }
+
+               if (vpd->popup) {
+                       if (vpd->popup_type == MSG_VIEWER_SCHEDULE_SEND_NOW_POPUP) {
+                               char *address = NULL;
+                               msg_viewer_util_get_thread_nth_address(vpd->msgHandle, vpd->msg_t, 0, &address);
+
+                               char *str = dgettext(MESSAGE_PKGNAME, "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q");
+
+                               if (address) {
+                                       snprintf(popup_msg, sizeof(popup_msg), str, address);
+                                       free(address);
+                               } else {
+                                       D_EMSG("address is null");
+                                       strncpy(popup_msg, str, sizeof(popup_msg) - 1);
+                               }
+
+                               elm_object_text_set(vpd->popup, popup_msg);
+                       } else if (vpd->popup_type == MSG_VIEWER_DETAILS_POPUP) {
+                               char *str = msg_common_make_message_detail_text(vpd->msgHandle, vpd->msgID);
+                               if (str) {
+                                       elm_object_text_set(vpd->popup, str);
+                                       free(str);
+                               }
+                       }
+               }
+
+               if (vpd->render_entry && vpd->smil_eventStatus->isHelpSlide) {
+                       char buf_helptext[DEF_BUF_LEN+1] = {0,};
+                       snprintf(buf_helptext, sizeof(buf_helptext), "<color=#6ca8c7>%s", ((vpd->attach_count > 1) ? dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_HELP_PAGE_MESSAGE") : dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE")));
+                       elm_entry_entry_set(vpd->render_entry, buf_helptext);
+               }
+       } else if (vmd->summary_view) {
+               VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)vmd->summary_view;
+
+               if (vsd->msg_type == MSG_TYPE_MMS) {
+                       msg_get_str_value(vsd->msg_t, MSG_MESSAGE_SUBJECT_STR, szSubject, MAX_SUBJECT_LEN);
+
+                       if (szSubject[0] == '\0') {
+                               snprintf(buf, sizeof(buf), "%s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_NO_SUBJECT"));
+                               edje_object_part_text_set(_EDJ(vsd->content_subject), "subject/text", buf);
+                       }
+
+                       if (vsd->save_all_btn) {
+                               bzero(buf, sizeof(buf));
+                               snprintf(buf, sizeof(buf), "%s (%d)", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BUTTON_SAVE_ALL_ATTACHMENTS_ABB"), vsd->attach_count);
+                               elm_object_text_set(vsd->save_all_btn, buf);
+                       }
+               } else {
+                       msg_ui_summary_viewer_get_locale_n_datetime_ptn(vsd);
+
+                       char buf[DEF_BUF_LEN_S] = {0,};
+                       int msg_time = 0;
+                       msg_get_int_value(vsd->msg_t, MSG_MESSAGE_DISPLAY_TIME_INT, &msg_time);
+
+                       char *time_str = NULL;
+                       char *date_str = msg_common_get_formatted_date(vsd->locale, vsd->date_ptn, (void *)&msg_time);
+
+                       if (vsd->time_fmt == MSG_TIME_FORMAT_24H) {
+                               time_str = msg_common_get_formatted_date(vsd->locale, vsd->time24_ptn, (void *)&msg_time);
+                       } else {
+                               time_str = msg_common_get_formatted_date(vsd->locale, vsd->time12_ptn, (void *)&msg_time);
+                       }
+
+                       if (date_str && time_str) {
+                               D_SEC_MSG("Changed date = %s and time str = %s", date_str, time_str);
+                               snprintf(buf, sizeof(buf), "%s %s", date_str, time_str);
+                       }
+
+                       if (date_str)
+                               free(date_str);
+
+                       if (time_str)
+                               free(time_str);
+
+                       edje_object_part_text_set(_EDJ(vsd->content_subject), "subject/text", buf);
+               }
+
+               if (vsd->popup) {
+                       if (vsd->popup_type == MSG_VIEWER_SCHEDULE_SEND_NOW_POPUP) {
+                               char *address = NULL;
+                               msg_viewer_util_get_thread_nth_address(vsd->msgHandle, vsd->msg_t, 0, &address);
+
+                               char *str = dgettext(MESSAGE_PKGNAME, "IDS_MSGC_POP_MESSAGE_SCHEDULED_TO_BE_SENT_TO_PS_SEND_NOW_Q");
+
+                               if (address) {
+                                       snprintf(popup_msg, sizeof(popup_msg), str, address);
+                                       free(address);
+                               } else {
+                                       D_EMSG("address is null");
+                                       strncpy(popup_msg, str, sizeof(popup_msg) - 1);
+                               }
+
+                               elm_object_text_set(vsd->popup, popup_msg);
+                       } else if (vsd->popup_type == MSG_VIEWER_DETAILS_POPUP) {
+                               char *str = msg_common_make_message_detail_text(vsd->msgHandle, vsd->msgID);
+                               if (str) {
+                                       elm_object_text_set(vsd->popup, str);
+                                       free(str);
+                               }
+                       }
+               }
+       }
+}
+
+void msg_ui_viewer_remove_thread_msg_id_list(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       if (vmd->msg_list_idler) {
+               ecore_idler_del(vmd->msg_list_idler);
+               vmd->msg_list_idler = NULL;
+       }
+
+       if (vmd->msg_id_list) {
+               int *msgId = NULL;
+
+               EINA_LIST_FREE(vmd->msg_id_list, msgId) {
+                       if (msgId)
+                               free(msgId);
+               }
+       }
+}
+
+Eina_Bool msg_ui_viewer_get_thread_msg_id_list(void *data)
+{
+       D_ENTER;
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+       D_MSG_RETVM_IF(vmd == NULL, ECORE_CALLBACK_CANCEL, "vmd is NULL");
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_list_s conv_list;
+       int thread_id;
+       int i = 0;
+       Eina_List *tmp_list = NULL;
+       Eina_List *tmp_list2 = NULL;
+
+       if (vmd->msg_t == NULL || vmd->msgHandle == NULL) {
+               D_EMSG("invalid vmd status!!");
+               vmd->msg_list_idler = NULL;
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       msg_get_int_value(vmd->msg_t, MSG_MESSAGE_THREAD_ID_INT, &thread_id);
+       err = msg_get_conversation_view_list(vmd->msgHandle, thread_id, &conv_list);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("failed in msg_get_conversation_view_list()");
+               vmd->msg_list_idler = NULL;
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       int folder_id = MSG_MAX_FOLDER_ID;
+       int msg_id = -1;
+       char buf[10] = {0,};
+       char *str_msgid = NULL;
+
+       for (i = 0; i < conv_list.nCount; i++) {
+               msg_get_int_value(conv_list.msg_struct_info[i], MSG_CONV_MSG_FOLDER_ID_INT, &folder_id);
+
+               if (folder_id != MSG_DRAFT_ID) {
+                       msg_get_int_value(conv_list.msg_struct_info[i], MSG_CONV_MSG_ID_INT, &msg_id);
+                       bzero(buf, sizeof(buf));
+                       eina_convert_itoa(msg_id, buf);
+
+                       if ((str_msgid = strdup(buf)) != NULL)
+                               tmp_list = eina_list_append(tmp_list, str_msgid);
+               }
+       }
+
+       msg_release_list_struct(&conv_list);
+
+       if (vmd->msg_id_list)
+               tmp_list2 = vmd->msg_id_list;
+
+       vmd->msg_id_list = tmp_list;
+
+       if (tmp_list2) {
+               int *msgId = NULL;
+
+               EINA_LIST_FREE(tmp_list2, msgId) {
+                       if (msgId)
+                               free(msgId);
+               }
+       }
+
+       vmd->msg_list_idler = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+bool msg_ui_viewer_find_msg_in_msg_id_list(void *data, int msg_id)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, false, "data is NULL");
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)data;
+
+       int i = 0;
+
+       if (vmd->msg_id_list == NULL) {
+               D_EMSG("msg id list is not prepared!!");
+               return false;
+       }
+
+       int count = eina_list_count(vmd->msg_id_list);
+       char *msgid = NULL;
+       int atoi_msgid = -1;
+
+       for (i = 0; i < count; i++) {
+               if ((msgid = eina_list_nth(vmd->msg_id_list, i)) == NULL) {
+                       D_EMSG("Failed in getting msg id of msg_id_list");
+                       continue;
+               }
+
+               atoi_msgid = atoi(msgid);
+
+               if (atoi_msgid == msg_id)
+                       return true;
+       }
+
+       D_LEAVE;
+
+       return false;
+}
+
+void msg_ui_viewer_msg_storage_change_cb(msg_handle_t handle, msg_storage_change_type_t type, msg_id_list_s *pMsgIdList, void *user_param)
+{
+       D_ENTER;
+
+       if (!user_param || !pMsgIdList)
+               return;
+
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)user_param;
+
+       D_MSG("type is %d", type);
+
+       if (type == MSG_STORAGE_CHANGE_CONTACT)
+               return;
+
+       int i = 0;
+
+       for (i = 0; i < pMsgIdList->nCount; i++) {
+               if (vmd->msgID == pMsgIdList->msgIdList[i]) {
+                       if (type == MSG_STORAGE_CHANGE_DELETE) {
+                               D_MSG("Current viewer message is deleted");
+                               vmd->destroy_on_close = true;
+                               return;
+                       }
+
+                       msg_error_t err = MSG_SUCCESS;
+                       msg_struct_t tmp_msg_t = NULL;
+                       msg_struct_t tmp_mms_t = NULL;
+
+                       tmp_msg_t = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+                       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+                       err = msg_get_message(vmd->msgHandle, vmd->msgID, tmp_msg_t, sendOpt);
+                       msg_release_struct(&sendOpt);
+
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_get_message has failed");
+                               msg_release_struct(&tmp_msg_t);
+                               return;
+                       }
+
+                       int msg_type;
+                       msg_get_int_value(tmp_msg_t, MSG_MESSAGE_TYPE_INT, &msg_type);
+
+                       if (msg_type == MSG_TYPE_MMS) {
+                               /*create mms_t*/
+                               tmp_mms_t = msg_create_struct(MSG_STRUCT_MMS);
+
+                               if (tmp_mms_t) {
+                                       err = msg_get_mms_struct(tmp_msg_t, tmp_mms_t);
+
+                                       if (err != MSG_SUCCESS) {
+                                               D_EMSG("failed in get mms data handler");
+                                               msg_release_struct(&tmp_msg_t);
+                                               msg_release_struct(&tmp_mms_t);
+                                               return;
+                                       }
+                               }
+                       }
+
+                       if (vmd->msg_t)
+                               msg_release_struct(&vmd->msg_t);
+
+                       if (vmd->mms_t)
+                               msg_release_struct(&vmd->mms_t);
+
+                       msg_ui_viewer_set_msg_structure(vmd, tmp_msg_t, tmp_mms_t);
+
+                       break;
+               } else {
+                       if (msg_ui_viewer_find_msg_in_msg_id_list(vmd, pMsgIdList->msgIdList[i]) && type == MSG_STORAGE_CHANGE_DELETE) {
+                               /* send remove conversation to bubble-composer ug */
+                               char str_id[DEF_BUF_LEN] = {0,};
+                               app_control_h svc_handle = NULL;
+
+                               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                       D_EMSG("app_control_create() is failed");
+                                       return;
+                               }
+
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_REMOVE_CONV);
+
+                               snprintf(str_id, DEF_BUF_LEN, "%d", pMsgIdList->msgIdList[i]);
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, str_id);
+
+                               ug_send_result(vmd->viewer_ug, svc_handle);
+
+                               app_control_destroy(svc_handle);
+                       }
+               }
+       }
+
+       if (vmd->msg_list_idler) {
+               ecore_idler_del(vmd->msg_list_idler);
+               vmd->msg_list_idler = NULL;
+       }
+
+       vmd->msg_list_idler = ecore_idler_add(msg_ui_viewer_get_thread_msg_id_list, vmd);
+}
diff --git a/viewer/src/msg-ui-viewer-play-view-attachment.c b/viewer/src/msg-ui-viewer-play-view-attachment.c
new file mode 100755 (executable)
index 0000000..af28f0e
--- /dev/null
@@ -0,0 +1,1274 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-ui-viewer-play-view.h"
+#include "msg-ui-viewer-main.h"
+#include "msg-ui-viewer-utility.h"
+#include "msg-ui-common-utility.h"
+#include "msg-ui-image-resource.h"
+#include "msg-file-util.h"
+
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+
+#include <app_control_internal.h>
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+/* save attachment popup */
+static void __msg_ui_viewer_save_attachments_popup_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_save_attachments_popup_save_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_save_attachments_check_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static char *__msg_ui_viewer_save_attachments_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__msg_ui_viewer_save_attachments_gl_content_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_viewer_save_attachments_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_save_attachment_rename_popup_entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_save_attachment_rename_popup_entry_activated_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_save_attachment_rename_popup_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_save_attachment_rename_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_save_attachment_rename_popup_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
+/*attachment list for help page */
+static void __msg_ui_viewer_help_page_save_all_item(void *vpd);
+static void __msg_ui_viewer_help_page_item_pressed_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_help_page_item_released_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_help_page_item_selected_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void __msg_ui_viewer_help_page_item_key_down_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+
+/*==================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+void msg_ui_viewer_create_save_attachments_popup(VIEWER_PLAY_DATA_S *vpd)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(vpd == NULL, "data is NULL");
+       Evas_Object *btn_save = NULL;
+       Evas_Object *btn_close = NULL;
+       int index = 0;
+
+       /* destroy previous popup */
+       msg_ui_viewer_popup_destroy(vpd);
+
+       int total_media_count = vpd->insert_count + vpd->attach_count;
+
+       /* create popup */
+       Evas_Object *popup = elm_popup_add(vpd->main_window);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       /* set popup title */
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB");
+
+       /* set select all genlist item style */
+       vpd->attach_sa_class.item_style = "default";
+       vpd->attach_sa_class.func.text_get = __msg_ui_viewer_save_attachments_gl_text_get;
+       vpd->attach_sa_class.func.content_get = __msg_ui_viewer_save_attachments_gl_content_get;
+       vpd->attach_sa_class.func.state_get = NULL;
+       vpd->attach_sa_class.func.del = NULL;
+
+       /* create genlist */
+       Evas_Object *genlist = elm_genlist_add(popup);
+       elm_object_style_set(genlist, "popup");
+       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+       evas_object_data_set(genlist, "vpd", vpd);
+       vpd->media_chk_cnt = 0;
+
+       /* add genlist item based on media count, if item's count is over 1 then 'select all' item should be inserted*/
+       if (total_media_count > 1) {
+               /* add Select all item */
+               MSG_VIEWER_MEDIA_INFO_S *media_info = NULL;
+               const char *str_sel_all = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_SAVE_ALL");
+               media_info = (MSG_VIEWER_MEDIA_INFO_S *)calloc(1, sizeof(MSG_VIEWER_MEDIA_INFO_S));
+               if (media_info != NULL) {
+                       eina_strlcpy(media_info->pfile_name, str_sel_all, sizeof(media_info->pfile_name));
+                       elm_genlist_item_append(genlist, &vpd->attach_sa_class, media_info, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_viewer_save_attachments_gl_sel, vpd);
+               }
+       }
+
+       /* add each item (order is inserted + attached) */
+       for (index = 0; index < total_media_count; index++) {
+               MSG_VIEWER_MEDIA_INFO_S *media_info = NULL;
+
+               if (index < vpd->insert_count) {
+                       media_info = eina_list_nth(vpd->insert_list, index);
+                       D_MSG("selected media is [INSERT MEDIA] index of %d", index);
+               } else if (index < total_media_count) {
+                       media_info = eina_list_nth(vpd->attach_list, index-vpd->insert_count);
+                       D_MSG("selected media is [ATTACH MEDIA] index of %d", index-vpd->insert_count);
+               }
+
+               elm_genlist_item_append(genlist, &vpd->attach_sa_class, media_info, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_viewer_save_attachments_gl_sel, vpd);
+       }
+
+       /* add close button */
+       btn_close = elm_button_add(popup);
+       elm_object_style_set(btn_close, "popup");
+       elm_object_domain_translatable_text_set(btn_close, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", btn_close);
+       evas_object_smart_callback_add(btn_close, "clicked", __msg_ui_viewer_save_attachments_popup_cancel_clicked_cb, vpd);
+
+       /* add save button */
+       btn_save = elm_button_add(popup);
+       elm_object_style_set(btn_save, "popup");
+       elm_object_domain_translatable_text_set(btn_save, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_SAVE_ABB2");
+       elm_object_part_content_set(popup, "button2", btn_save);
+       evas_object_smart_callback_add(btn_save, "clicked", __msg_ui_viewer_save_attachments_popup_save_clicked_cb, vpd);
+       vpd->save_button = btn_save;
+       elm_object_disabled_set(vpd->save_button, EINA_TRUE);
+
+       evas_object_show(genlist);
+       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+       elm_object_content_set(popup, genlist);
+
+       /* show popup */
+       evas_object_show(popup);
+       vpd->save_attachment_gl = genlist;
+       vpd->popup = popup;
+       vpd->popup_type = MSG_VIEWER_ATTACHMENTS_POPUP;
+       evas_object_focus_set(popup, EINA_TRUE);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_play_view_popup_mouseup_cb, vpd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_play_view_popup_back_cb, (void *)vpd);
+
+       /*disconnect mouse handler*/
+       msg_ui_viewer_disconnect_handler(vpd, true);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_save_attachments_popup_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       int index = 0;
+       int total_count = 0;
+       MSG_VIEWER_MEDIA_INFO_S *media_info = NULL;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       total_count = vpd->insert_count + vpd->attach_count;
+
+       while (index < total_count) {
+               if (index < vpd->insert_count)
+                       media_info = eina_list_nth(vpd->insert_list, index);
+               else if (index < total_count)
+                       media_info = eina_list_nth(vpd->attach_list, index-vpd->insert_count);
+               else
+                       D_MSG("invalid index!!", index);
+
+               index++;
+       }
+
+       /* connect handler again*/
+       msg_ui_viewer_connect_handler(vpd);
+
+       /* play viewer again if previous status was PLAY */
+       if (vpd->auto_resume_state && vpd->status == MSG_VIEWER_PAUSE && vpd->previous_status == MSG_VIEWER_PLAY) {
+               if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+                       D_EMSG("msg_ui_viewer_command_play_pause is failed");
+                       return;
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void _msg_ui_viewer_copy_file(const char *src, char *dest)
+{
+       D_ENTER;
+       char *result = msg_ui_viewer_util_copy_file(src, dest, false, false);
+       if (result) {
+               notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVED_IN_MY_FILES"));
+               free(result);
+       } else {
+               D_EMSG("msg_ui_viewer_util_copy_file has failed to copy this file: = %s", src);
+               notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+       }
+}
+
+static void __msg_ui_viewer_save_attachments_popup_save_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETM_IF(vpd == NULL, "vpd is NULL");
+
+       int attach_count = 0;
+       int insert_count = 0;
+       int total_count = 0;
+
+       int index = 0;
+       int insert_index = 0;
+       int attach_index = 0;
+       Eina_Bool is_file_exist = EINA_FALSE;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       MSG_VIEWER_MEDIA_INFO_S *media_Info = NULL;
+
+       insert_count = eina_list_count(vpd->insert_list);
+       attach_count = eina_list_count(vpd->attach_list);
+       total_count = insert_count + attach_count;
+
+       vpd->saving_status = MSG_VIEWER_SAVING_PAGE_MEDIA_N_ATTACHMENT;
+
+       while (index < total_count) {
+               if (index < insert_count)
+                       media_Info = eina_list_nth(vpd->insert_list , insert_index++);
+               else if (index < total_count)
+                       media_Info = eina_list_nth(vpd->attach_list , attach_index++);
+
+               if (media_Info) {
+                       if (elm_check_state_get(media_Info->check_item)) {
+                               /*get default file path*/
+                               MSG_BOOL result = FALSE;
+                               char dir_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0};
+
+                               result = msg_viewer_util_get_default_path(dir_path, sizeof(dir_path));
+                               if (result) {
+                                       char dst_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0,};
+                                       snprintf(dst_path, sizeof(dst_path), "%s/%s", dir_path, media_Info->pfile_name);
+                                       D_SEC_MSG("dest pfile_path [%s]", dst_path);
+                                       D_SEC_MSG("src pfile_path [%s]", media_Info->pfile_path);
+
+                                       is_file_exist = msg_file_exists(dst_path);
+                                       if (is_file_exist) {
+                                               /* make new file path */
+                                               char file_name_no_ext[MSG_FILENAME_LEN_MAX+1] = {0,};
+                                               char *file_ext = strrchr(media_Info->pfile_name, '.');
+                                               if (file_ext) {
+                                                       file_ext++;
+                                                       strncpy(file_name_no_ext, media_Info->pfile_name, strlen(media_Info->pfile_name) - strlen(file_ext) - 1);
+                                               } else {
+                                                       strncpy(file_name_no_ext, media_Info->pfile_name, strlen(media_Info->pfile_name));
+                                               }
+                                               int count = 1;
+                                               while (count < 100) {
+                                                       memset(dst_path, 0x00, sizeof(dst_path));
+                                                       snprintf(dst_path, MSG_VIEWER_FILEPATH_MAX_LEN, "%s/%s_%02d.%s", dir_path, file_name_no_ext, count, file_ext);
+                                                       D_SEC_MSG("new dest pfile_path [%s]", dst_path);
+                                                       if (msg_file_exists(dst_path) == EINA_TRUE) {
+                                                               count++;
+                                                       } else {
+                                                               _msg_ui_viewer_copy_file(media_Info->pfile_path, dst_path);
+                                                               break;
+                                                       }
+                                               }
+                                       } else {
+                                               _msg_ui_viewer_copy_file(media_Info->pfile_path, dst_path);
+                                       }
+                               } else {
+                                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+                               }
+                       }
+               } else {
+                       D_EMSG("pmedia_info is NULL index = %d", index);
+               }
+
+               media_Info = NULL;
+
+               index++;
+       }
+       /* connect handler again*/
+       msg_ui_viewer_connect_handler(vpd);
+
+       vpd->saving_status = MSG_VIEWER_SAVING_STATUS_NONE;
+
+       /* play viewer again if previous status was PLAY */
+       if (vpd->auto_resume_state && vpd->status == MSG_VIEWER_PAUSE && vpd->previous_status == MSG_VIEWER_PLAY) {
+               if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+                       D_EMSG("msg_ui_viewer_command_play_pause is failed");
+                       return;
+               }
+       }
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_save_attachments_check_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       MSG_VIEWER_MEDIA_INFO_S *media_info = (MSG_VIEWER_MEDIA_INFO_S *)evas_object_data_get(obj, "media_info");
+       Elm_Object_Item *it = NULL;
+
+       int genlist_count = elm_genlist_items_count(vpd->save_attachment_gl);
+       int media_count = 0;
+
+       if (genlist_count == 1)
+               media_count = 1;
+       else
+               media_count = genlist_count - 1;
+
+       D_MSG("media count = %d", media_count);
+
+       if (media_count == 1) {
+               if (media_info != NULL && elm_check_state_get(media_info->check_item))
+                       vpd->media_chk_cnt = 1;
+               else
+                       vpd->media_chk_cnt = 0;
+       } else if (media_count > 1) {
+               it = elm_genlist_first_item_get(vpd->save_attachment_gl);
+
+               if (!strcmp(media_info->pfile_name, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_SAVE_ALL"))) {
+                       while (it) {
+                               MSG_VIEWER_MEDIA_INFO_S *tmp_media_info = (MSG_VIEWER_MEDIA_INFO_S *)elm_object_item_data_get(it);
+                               if (tmp_media_info) {
+                                       elm_check_state_set(tmp_media_info->check_item, elm_check_state_get(media_info->check_item));
+                               }
+
+                               it = elm_genlist_item_next_get(it);
+                       }
+
+                       if (elm_check_state_get(media_info->check_item))
+                               vpd->media_chk_cnt = media_count;
+                       else
+                               vpd->media_chk_cnt = 0;
+               } else {
+                       MSG_VIEWER_MEDIA_INFO_S *tmp_media_info = NULL;
+
+                       if (elm_check_state_get(media_info->check_item)) {
+                               vpd->media_chk_cnt++;
+
+                               D_MSG("media_chk_cnt = %d", vpd->media_chk_cnt);
+
+                               /* handle select  all */
+                               if (vpd->media_chk_cnt == media_count) {
+
+                                       D_MSG("vpd->media_chk_cnt == media_count]%d]", media_count);
+
+                                       it = elm_genlist_first_item_get(vpd->save_attachment_gl);
+                                       tmp_media_info = (MSG_VIEWER_MEDIA_INFO_S *)elm_object_item_data_get(it);
+                                       if (tmp_media_info) {
+                                               elm_check_state_set(tmp_media_info->check_item, EINA_TRUE);
+                                       }
+                               }
+                       } else {
+                               /* handle select all */
+                               if (vpd->media_chk_cnt == media_count) {
+
+                                       D_MSG("vpd->media_chk_cnt == media_count]%d]", media_count);
+
+                                       it = elm_genlist_first_item_get(vpd->save_attachment_gl);
+                                       tmp_media_info = (MSG_VIEWER_MEDIA_INFO_S *)elm_object_item_data_get(it);
+                                       if (tmp_media_info) {
+                                               elm_check_state_set(tmp_media_info->check_item, EINA_FALSE);
+                                       }
+                               }
+                               vpd->media_chk_cnt--;
+
+                               D_MSG("media_chk_cnt = %d", vpd->media_chk_cnt);
+                       }
+               }
+       }
+
+       if (vpd->save_button) {
+               elm_object_disabled_set(vpd->save_button, (vpd->media_chk_cnt <= 0));
+       }
+
+       D_LEAVE;
+}
+
+static char *__msg_ui_viewer_save_attachments_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)evas_object_data_get(obj, "vpd");
+       D_MSG_RETVM_IF(vpd == NULL, NULL, "vpd is NULL");
+
+       MSG_VIEWER_MEDIA_INFO_S *media_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+
+       if (!strcmp(part, "elm.text")) {
+               D_SEC_MSG("Media name is  = %s", media_info->pfile_name);
+               return strdup(media_info->pfile_name);
+       }
+       return NULL;
+}
+
+static Evas_Object *__msg_ui_viewer_save_attachments_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)evas_object_data_get(obj, "vpd");
+       D_MSG_RETVM_IF(vpd == NULL, NULL, "vpd is NULL");
+
+       MSG_VIEWER_MEDIA_INFO_S *media_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+
+       if (media_info != NULL) {
+               if (!strcmp(part, "elm.swallow.end")) {
+                       Evas_Object *check_ly = elm_layout_add(obj);
+                       elm_layout_theme_set(check_ly, "layout", "list/C/type.2", "default");
+                       Evas_Object *check = elm_check_add(obj);
+                       evas_object_propagate_events_set(check, EINA_FALSE);
+
+                       media_info->check_item = check;
+                       evas_object_data_set(check, "media_info", media_info);
+
+                       evas_object_smart_callback_add(check, "changed", __msg_ui_viewer_save_attachments_check_changed_cb, vpd);
+
+                       elm_layout_content_set(check_ly, "elm.swallow.content", check);
+                       return check_ly;
+               } else {
+                       D_EMSG("Invalid part : %s", part);
+               }
+       }
+
+       return NULL;
+}
+
+static void __msg_ui_viewer_save_attachments_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj || !event_info);
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)evas_object_data_get(obj, "vpd");
+       D_MSG_RETM_IF(vpd == NULL, "vpd is NULL");
+
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+       MSG_VIEWER_MEDIA_INFO_S *media_info = (MSG_VIEWER_MEDIA_INFO_S *)elm_object_item_data_get(item);
+
+       elm_genlist_item_selected_set(item, false);
+       elm_check_state_set(media_info->check_item, !elm_check_state_get(media_info->check_item));
+       elm_genlist_item_fields_update(item, "elm.icon.right", ELM_GENLIST_ITEM_FIELD_CONTENT);
+       evas_object_smart_callback_call(media_info->check_item, "changed", event_info);
+
+       D_LEAVE;
+}
+
+MSG_SMIL_ERROR_E msg_ui_viewer_help_page_create_list(void *data, void **attach_list, void *box, char *working_dir)
+{
+       D_ENTER;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       Evas_Object *renderBox = (Evas_Object *)box;
+       MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
+       int attach_count = vpd->attach_count;
+       int attach_index = 0;
+
+       D_MSG("attachment_count = %d", attach_count);
+
+       /* create box (for setting min size of genlist)*/
+       Evas_Object *box2 = elm_box_add(renderBox);
+       evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_object_tree_focus_allow_set(box2, EINA_TRUE);
+       evas_object_show(box2);
+
+       /* set working path for copying attach files */
+       if (working_dir != NULL) {
+               D_MSG("Set attachment file path for current working directory");
+               vpd->working_dir = working_dir;
+       }
+
+       if (attach_count > 0) {
+               if (attach_count > 1)
+                       evas_object_size_hint_min_set(box2, 0, ELM_SCALE_SIZE(VIEWER_HELP_PAGE_ITEM_HEIGHT * (attach_count + 1)));
+               else
+                       evas_object_size_hint_min_set(box2, 0, ELM_SCALE_SIZE(VIEWER_HELP_PAGE_ITEM_HEIGHT * attach_count));
+       } else {
+               D_EMSG("No Attachment in message!");
+       }
+
+       if (attach_count > 1) {
+               Evas_Object *attach_item = elm_layout_add(box2);
+               elm_layout_file_set(attach_item, MSG_VIEWER_EDJ, "help_page_save_all");
+               evas_object_size_hint_weight_set(attach_item, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(attach_item, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       }
+
+       /* clean and re-create */
+       if (vpd->attach_ly)
+               free(vpd->attach_ly);
+
+       vpd->attach_ly = (Evas_Object **)calloc(attach_count, sizeof(Evas_Object *));
+
+       if (vpd->attach_ly == NULL) {
+               D_EMSG("calloc for attach_ly was failed");
+               return MSG_ERR_SMIL_UI_DISPLAY_FAIURE;
+       }
+
+       char *size_text = NULL;
+
+       /* add normal attach items */
+       for (attach_index = 0; attach_index < attach_count; attach_index++) {
+               MSG_VIEWER_MEDIA_INFO_S *pAttach_info = eina_list_nth(vpd->attach_list, attach_index);
+               if (pAttach_info == NULL) {
+                       D_EMSG("pAttach_info is NULL");
+                       break;
+               } else {
+                       Evas_Object *attach_item = elm_layout_add(box2);
+
+                       elm_layout_file_set(attach_item, MSG_VIEWER_EDJ, "help_page_item");
+                       evas_object_size_hint_weight_set(attach_item, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_size_hint_align_set(attach_item, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+                       /* add layout */
+                       Evas_Object *attach_layout = elm_layout_add(box2);
+                       elm_layout_file_set(attach_layout, MSG_VIEWER_THEME, "body_content_layout");
+                       evas_object_size_hint_weight_set(attach_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_size_hint_align_set(attach_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+                       elm_object_focus_allow_set(attach_layout, EINA_TRUE);
+                       evas_object_show(attach_layout);
+                       elm_object_part_content_set(attach_layout, "swallow.content", attach_item);
+
+                       elm_box_pack_end(box2, attach_layout);
+                       evas_object_show(attach_layout);
+
+                       /* add viewer data */
+                       evas_object_data_set(_EDJ(attach_item), "vpd", vpd);
+
+                       /* Add file thumbnail */
+                       Evas_Object *thumb_nail = elm_icon_add(attach_item);
+
+                       /*set attach file icon*/
+                       if (pAttach_info->media_type == MSG_VIEWER_MEDIA_IMG || pAttach_info->media_type == MSG_VIEWER_MEDIA_ANIMATE) {
+                               elm_image_file_set(thumb_nail, pAttach_info->pfile_path, NULL);
+                       } else {
+                               if (strlen(pAttach_info->pfile_path)) {
+                                       const char *icon_path = NULL;
+
+                                       icon_path = msg_common_get_file_icon(pAttach_info->pfile_path);
+                                       if (icon_path) {
+                                               elm_image_file_set(thumb_nail, MSG_IMAGES_EDJ, icon_path);
+                                       } else {
+                                               D_EMSG("icon_path is NULL");
+                                               elm_image_file_set(thumb_nail, MSG_IMAGES_EDJ, MSG_VIEWER_IMAGE_ATTACH_ICON);
+                                       }
+                               } else {
+                                       D_EMSG("filepath is NULL");
+                               }
+                       }
+
+                       if (thumb_nail) {
+                               evas_object_size_hint_aspect_set(thumb_nail, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+                               evas_object_color_set(thumb_nail, COLOR_BLUE);
+                       }
+
+                       elm_object_part_content_set(attach_item, "item.thumbnail.icon", thumb_nail);
+
+                       /* Add file name */
+                       edje_object_part_text_set(_EDJ(attach_item), "item.filename.text", pAttach_info->pfile_name);
+
+                       /* Total file size */
+                       Eina_Strbuf *text_buf = eina_strbuf_new();
+                       eina_strbuf_append(text_buf, VIEWER_DETAILS_TEXT_LEFT_BRACE);
+
+                       char size[DEF_BUF_LEN] = {0,};
+                       long long sizeKB = 0;
+                       long long sizeB = 0;
+
+                       if (pAttach_info->pfile_size < VIEWER_DETAILS_TEXT_MSG_SIZE_KB) {
+                               snprintf(size, sizeof(size), "1 %s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MSGSIZE_KB"));
+                       } else {
+                               sizeKB = (long long)(pAttach_info->pfile_size)/VIEWER_DETAILS_TEXT_MSG_SIZE_KB;
+                               sizeB = (long long)(pAttach_info->pfile_size)%VIEWER_DETAILS_TEXT_MSG_SIZE_KB;
+
+                               if (sizeB >= (VIEWER_DETAILS_TEXT_MSG_SIZE_KB/2))
+                                       sizeKB++;
+
+                               snprintf(size, sizeof(size), "%lld %s", sizeKB, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MSGSIZE_KB"));
+                       }
+
+                       eina_strbuf_append(text_buf, size);
+                       eina_strbuf_append(text_buf, VIEWER_DETAILS_TEXT_RIGHT_BRACE);
+
+                       const char *buf = eina_strbuf_string_get(text_buf);
+                       if (buf != NULL)
+                               size_text = strdup(buf);
+
+                       if (size_text == NULL) {
+                               D_EMSG("size_text is NULL");
+                               eina_strbuf_free(text_buf);
+                               evas_object_del(attach_item);
+                               evas_object_del(attach_layout);
+
+                               continue;
+                       }
+
+                       eina_strbuf_free(text_buf);
+
+                       edje_object_part_text_set(_EDJ(attach_item), "item.filesize.text", size_text);
+
+                       /* add signal */
+                       edje_object_signal_callback_add(_EDJ(attach_item), "clicked", "*", __msg_ui_viewer_help_page_item_selected_cb, pAttach_info);
+                       evas_object_event_callback_add(attach_item, EVAS_CALLBACK_KEY_DOWN, __msg_ui_viewer_help_page_item_key_down_cb, pAttach_info);
+
+                       Evas_Object *text_bg = NULL;
+                       text_bg = (Evas_Object *)edje_object_part_object_get(_EDJ(attach_item), "over_event");
+                       if (text_bg) {
+                               evas_object_data_set(text_bg, "vpd", vpd);
+                               evas_object_event_callback_add(text_bg, EVAS_CALLBACK_MOUSE_DOWN, __msg_ui_viewer_help_page_item_pressed_cb, (void *)attach_index);
+                               evas_object_event_callback_add(text_bg, EVAS_CALLBACK_MOUSE_UP, __msg_ui_viewer_help_page_item_released_cb, (void *)attach_index);
+                       }
+
+                       vpd->attach_ly[attach_index] = attach_item;
+
+                       if (size_text) {
+                               free(size_text);
+                               size_text = NULL;
+                       }
+               }
+       }
+
+       elm_box_pack_end(renderBox, box2);
+
+       return err;
+}
+
+static void __msg_ui_viewer_help_page_item_pressed_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       int attach_index = (int)data;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)evas_object_data_get(obj, "vpd");
+
+       if (vpd != NULL && vpd->mode != MSG_VIEWER_DEFAULT_MODE) {
+               D_MSG("Now loading another application");
+               return;
+       }
+
+       if (vpd != NULL)
+               edje_object_signal_emit(_EDJ(vpd->attach_ly[attach_index]), "pressed", "over_event");
+}
+
+static void __msg_ui_viewer_help_page_item_released_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       int attach_index = (int)data;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)evas_object_data_get(obj, "vpd");
+
+       if (vpd != NULL && vpd->mode != MSG_VIEWER_DEFAULT_MODE) {
+               D_MSG("Now loading another application");
+               return;
+       }
+
+       if (vpd != NULL)
+               edje_object_signal_emit(_EDJ(vpd->attach_ly[attach_index]), "unpressed", "over_event");
+}
+
+static void __msg_ui_viewer_help_page_item_selected_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)pAttach_info->view_data;
+       D_MSG_RETM_IF(vpd == NULL, "vpd is NULL");
+
+       app_control_h svc_handle = NULL;
+       app_control_error_e err = MSG_SUCCESS;
+
+       D_SEC_MSG("pfile_name = [%s]", pAttach_info->pfile_name);
+       D_SEC_MSG("pfile_path = [%s]", pAttach_info->pfile_path);
+       D_MSG("media_type = %d", pAttach_info->media_type);
+
+       /* Save all item */
+       if (!strcmp(pAttach_info->pfile_name, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_SAVE_ALL"))) {
+               D_MSG("Save all item");
+               return;
+       }
+
+       if (vpd->mode != MSG_VIEWER_DEFAULT_MODE) {
+               D_MSG("Now loading another application, ignore request");
+               return;
+       }
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return;
+       }
+
+       char dst_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0,};
+       const char *filename = (const char *)msg_file_file_get(pAttach_info->pfile_path);
+       int len = 0;
+       if (filename && filename[0] != '\0')
+               len = strlen(filename);
+       snprintf(dst_path, sizeof(dst_path), "%s%s", vpd->working_dir, filename);
+       D_SEC_MSG("dst_path = %s", dst_path);
+
+       if (msg_file_cp(pAttach_info->pfile_path, dst_path) == EINA_FALSE) {
+               D_EMSG("msg_file_cp is failed");
+               app_control_destroy(svc_handle);
+               return;
+       }
+
+       edje_object_signal_emit(obj, "play,press,sound", "*");
+       if (pAttach_info->media_type == MSG_VIEWER_MEDIA_ATTACH) {
+               if (filename && filename[0] != '\0') {
+                       if (strncmp(&filename[len - 3], "ics", 3) && strncmp(&filename[len - 3], "vcf", 3) && strncmp(&filename[len - 3], "vcs", 3)) {
+                               D_MSG("Attached file neither calendar nor contact.");
+                               msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE");
+                               app_control_destroy(svc_handle);
+                               return;
+                       }
+               }
+       }
+
+       if (dst_path[0] != '\0') {
+               app_control_set_uri(svc_handle, dst_path);
+               app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_VIEW);
+
+               Ecore_X_Window x_win = elm_win_xwindow_get(vpd->main_window);
+               app_control_set_window(svc_handle, x_win);
+
+               if (pAttach_info->media_subtype == MSG_VIEWER_MEDIA_AUDIO || \
+                       pAttach_info->media_subtype == MSG_VIEWER_MEDIA_VIDEO) {
+                       app_control_add_extra_data(svc_handle, "ExitOnBack", "true");
+               }
+
+               err = app_control_send_launch_request(svc_handle, NULL, NULL);
+
+               if (err == APP_CONTROL_ERROR_NONE) {
+                       /* set player state to pause and update icon */
+                       if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PAUSE)) {
+                               D_EMSG("msg_ui_viewer_command_play_pause is failed");
+                               app_control_destroy(svc_handle);
+                               return;
+                       }
+
+                       vpd->mode = MSG_VIEWER_LOADING_APPLICATION;
+               } else {
+                       D_EMSG("app_control_send_launch_request is failed, err = %d", err);
+                       msg_common_create_noti_toast_popup("IDS_MSG_TPOP_UNABLE_TO_PREVIEW_FILE_UNSUPPORTED_FILE_TYPE");
+               }
+       }
+
+       app_control_destroy(svc_handle);
+
+       return;
+}
+
+static void __msg_ui_viewer_help_page_item_key_down_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+
+       Evas_Event_Key_Down *ev = event_info;
+       if (ev == NULL) {
+               D_EMSG("event_info is NULL");
+               return;
+       }
+
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) {
+               D_EMSG("ev->event_flag is EVAS_EVENT_FLAG_ON_HOLD");
+               return;
+       }
+
+       D_MSG("ev->keyname = %s", ev->keyname);
+
+       if ((!strcmp(ev->keyname, KEY_NAME_RETURN)) || \
+               (!strcmp(ev->keyname, KEY_NAME_ENTER)) || \
+               (!strcmp(ev->keyname, KEY_NAME_SPACE))) {
+               __msg_ui_viewer_help_page_item_selected_cb(data, obj, NULL, NULL);
+       }
+}
+
+static void __msg_ui_viewer_help_page_save_all_item(void *data)
+{
+       D_ENTER;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETM_IF(vpd == NULL, "vpd is NULL");
+       D_MSG_RETM_IF(vpd->attach_list == NULL, "vpd->attach_list is NULL");
+
+       int attach_count = eina_list_count(vpd->attach_list);
+       int index = 0;
+       int attach_index = 0;
+
+       MSG_VIEWER_MEDIA_INFO_S *pAttachInfo = NULL;
+       Eina_Bool is_file_exist = EINA_FALSE;
+
+       D_MSG("attach_cnt = %d", attach_count);
+
+       vpd->saving_status = MSG_VIEWER_SAVING_ATTACHMENT;
+
+       while (index < attach_count) {
+               pAttachInfo = eina_list_nth(vpd->attach_list , attach_index++);
+
+               if (pAttachInfo) {
+                       /*get default file path*/
+                       MSG_BOOL result = FALSE;
+                       char dir_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0};
+
+                       result = msg_viewer_util_get_default_path(dir_path, sizeof(dir_path));
+                       if (result) {
+                               char dst_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0,};
+                               snprintf(dst_path, sizeof(dst_path), "%s/%s", dir_path, pAttachInfo->pfile_name);
+                               D_SEC_MSG("dest pfile_path [%s]", dst_path);
+                               D_SEC_MSG("src pfile_path [%s]", pAttachInfo->pfile_path);
+
+                               is_file_exist = msg_file_exists(dst_path);
+
+                               if (is_file_exist) {
+                                       msg_ui_viewer_save_attachment_create_rename_popup(pAttachInfo);
+                                       break;
+                               } else {
+                                       char *result_path = msg_ui_viewer_util_copy_file(pAttachInfo->pfile_path, dst_path, false, false);
+                                       if (result_path) {
+                                               notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVED_IN_MY_FILES"));
+                                               free(result_path);
+                                       } else {
+                                               D_EMSG("msg_ui_viewer_util_copy_file is failed index = %d", index);
+                                               notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+                                       }
+                               }
+                       } else {
+                               notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+                       }
+
+               } else {
+                       D_EMSG("pmedia_info is NULL index = %d", index);
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+               }
+
+               pAttachInfo = NULL;
+
+               index++;
+       }
+
+       if (!is_file_exist)
+               vpd->saving_status = MSG_VIEWER_SAVING_STATUS_NONE;
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_help_page_save_all_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETM_IF(vpd == NULL, "vpd is NULL");
+
+       __msg_ui_viewer_help_page_save_all_item(vpd);
+}
+
+void msg_ui_viewer_help_page_save_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)pAttach_info->view_data;
+       D_MSG_RETM_IF(vpd == NULL, "vpd is NULL");
+
+       if (strlen(pAttach_info->pfile_path) != 0) {
+               D_SEC_MSG("source pfile_path = [%s]", pAttach_info->pfile_path);
+               MSG_BOOL result = 0;
+               char dir_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0};
+
+               /*get default file path*/
+               result = msg_viewer_util_get_default_path(dir_path, sizeof(dir_path));
+               if (result) {
+                       char dst_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0,};
+                       snprintf(dst_path, sizeof(dst_path), "%s/%s", dir_path, pAttach_info->pfile_name);
+                       D_SEC_MSG("dst_path = [%s]", dst_path);
+
+                       Eina_Bool is_file_exist = msg_file_exists(dst_path);
+
+                       if (is_file_exist) {
+                               msg_ui_viewer_save_attachment_create_rename_popup(pAttach_info);
+                       } else {
+                               /* do not concern about same file name is exist */
+                               char *result_path = msg_ui_viewer_util_copy_file(pAttach_info->pfile_path, dst_path, false, false);
+                               if (result_path) {
+                                       free(result_path);
+                                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVED_IN_MY_FILES"));
+                               } else {
+                                       D_SEC_EMSG("msg_ui_viewer_util_copy_file is failed, [src] = %s, [dst] = %s", pAttach_info->pfile_path, dst_path);
+                                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+                               }
+                       }
+               } else {
+                       D_EMSG("msg_viewer_util_get_default_path is failed");
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+                       return;
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_save_attachment_rename_popup_entry_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL!");
+       D_MSG_RETM_IF(obj == NULL, "entry obj is NULL");
+
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       char file_ext[MSG_VIEWER_FILE_EXT_MAX_LEN + 1] = {0};
+       char file_name_without_ext[MSG_VIEWER_FILENAME_MAX_LEN + 1] = {0};
+
+       if (msg_viewer_util_get_file_ext(pAttach_info->pfile_name, file_ext, MSG_VIEWER_FILE_EXT_MAX_LEN)) {
+               strncpy(file_name_without_ext, pAttach_info->pfile_name, MSG_VIEWER_FILENAME_MAX_LEN);
+               file_name_without_ext[strlen(file_name_without_ext) - strlen(file_ext) - 1] = '\0';
+       }
+
+       char *enter_str = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+       if (enter_str == NULL) {
+               D_EMSG("enter_str is NULL");
+               return;
+       }
+
+       Evas_Object *btn = evas_object_data_get(obj, "ok_btn");
+
+       if (enter_str == NULL || strlen(g_strstrip(enter_str)) == 0 || !strcmp(file_name_without_ext, enter_str))
+               elm_object_disabled_set(btn, EINA_TRUE);
+       else
+               elm_object_disabled_set(btn, EINA_FALSE);
+
+       g_free(enter_str);
+}
+
+static void __msg_ui_viewer_save_attachment_rename_popup_entry_activated_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       Evas_Object *entry = (Evas_Object *)obj;
+       Ecore_IMF_Context *context = NULL;
+
+       context = elm_entry_imf_context_get(entry);
+       ecore_imf_context_input_panel_hide(context);
+}
+
+static void __msg_ui_viewer_save_attachment_rename_popup_do_next(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)pAttach_info->view_data;
+       D_MSG_RETM_IF(vpd == NULL, "vpd is NULL");
+
+       MSG_VIEWER_MEDIA_INFO_S *pNext_media_info = NULL;
+
+       if (vpd->saving_status == MSG_VIEWER_SAVING_ATTACHMENT) {
+               if (pAttach_info->media_index < pAttach_info->total_count - 1) {
+                       pNext_media_info = eina_list_nth(vpd->attach_list, pAttach_info->media_index + 1);
+                       msg_ui_viewer_save_attachment_create_rename_popup(pNext_media_info);
+               } else {
+                       vpd->saving_status = MSG_VIEWER_SAVING_STATUS_NONE;
+                       /* connect handler again*/
+                       msg_ui_viewer_connect_handler(vpd);
+               }
+       } else if (vpd->saving_status == MSG_VIEWER_SAVING_PAGE_MEDIA_N_ATTACHMENT) {
+               if (pAttach_info->media_type != MSG_VIEWER_MEDIA_ATTACH) {
+                       if (pAttach_info->media_index < pAttach_info->total_count - 1) {
+                               int current_idx = pAttach_info->media_index;
+                               while (current_idx < pAttach_info->total_count - 1) {
+                                       pNext_media_info = eina_list_nth(vpd->insert_list, ++current_idx);
+                    if (pNext_media_info && elm_check_state_get(pNext_media_info->check_item))
+                                               break;
+                                       pNext_media_info = NULL;
+                               }
+
+                               if (pNext_media_info == NULL) {
+                                       if (vpd->attach_list) {
+                                               int current_idx = 0;
+                                               while (current_idx < eina_list_count(vpd->attach_list)) {
+                                                       pNext_media_info = eina_list_nth(vpd->attach_list, current_idx++);
+                            if (pNext_media_info && elm_check_state_get(pNext_media_info->check_item))
+                                                               break;
+                                                       pNext_media_info = NULL;
+                                               }
+                                       }
+                               }
+                       } else {
+                               if (vpd->attach_list) {
+                                       int current_idx = 0;
+                                       while (current_idx < eina_list_count(vpd->attach_list)) {
+                                               pNext_media_info = eina_list_nth(vpd->attach_list, current_idx++);
+                        if (pNext_media_info && elm_check_state_get(pNext_media_info->check_item))
+                                                       break;
+                                               pNext_media_info = NULL;
+                                       }
+                               }
+                       }
+
+                       if (pNext_media_info) {
+                               msg_ui_viewer_save_attachment_create_rename_popup(pNext_media_info);
+                       } else {
+                               vpd->saving_status = MSG_VIEWER_SAVING_STATUS_NONE;
+                               /* connect handler again*/
+                               msg_ui_viewer_connect_handler(vpd);
+                               return;
+                       }
+               } else {
+                       if (pAttach_info->media_index < pAttach_info->total_count - 1) {
+                               int current_idx = pAttach_info->media_index;
+                               while (current_idx < pAttach_info->total_count - 1) {
+                                       pNext_media_info = eina_list_nth(vpd->attach_list, ++current_idx);
+                                       if (pNext_media_info != NULL && elm_check_state_get(pNext_media_info->check_item))
+                                               break;
+                                       pNext_media_info = NULL;
+                               }
+                       }
+
+                       if (pNext_media_info) {
+                               msg_ui_viewer_save_attachment_create_rename_popup(pNext_media_info);
+                       } else {
+                               vpd->saving_status = MSG_VIEWER_SAVING_STATUS_NONE;
+                               /* connect handler again*/
+                               msg_ui_viewer_connect_handler(vpd);
+                       }
+               }
+       }
+}
+
+static void __msg_ui_viewer_save_attachment_rename_popup_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)pAttach_info->view_data;
+       D_MSG_RETM_IF(vpd == NULL, "vpd is NULL");
+
+       char file_ext[MSG_VIEWER_FILE_EXT_MAX_LEN + 1] = {0};
+
+       const char *new_filename = elm_entry_entry_get(vpd->rename_popup_entry);
+       D_SEC_MSG("Edited pfile_name = [%s]", new_filename);
+
+       msg_viewer_util_get_file_ext(pAttach_info->pfile_name, file_ext, MSG_VIEWER_FILE_EXT_MAX_LEN);
+       D_SEC_MSG("Original pfile_path = [%s]", file_ext);
+
+       MSG_BOOL result = 0;
+       char dir_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0};
+
+       /*get default file path*/
+       result = msg_viewer_util_get_default_path(dir_path, sizeof(dir_path));
+       if (result) {
+               char dst_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0,};
+               if (strlen(file_ext) > 0)
+                       snprintf(dst_path, sizeof(dst_path), "%s/%s.%s", dir_path, new_filename, file_ext);
+               else
+                       snprintf(dst_path, sizeof(dst_path), "%s/%s", dir_path, new_filename);
+
+               D_SEC_MSG("dst_path = [%s]", dst_path);
+
+               /* do not concern about same file name is exist */
+               char *result_path = msg_ui_viewer_util_copy_file(pAttach_info->pfile_path, dst_path, false, false);
+               if (result_path) {
+                       free(result_path);
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVED_IN_MY_FILES"));
+               } else {
+                       D_SEC_EMSG("msg_ui_viewer_util_copy_file is failed, [src] = %s, [dst] = %s", pAttach_info->pfile_path, dst_path);
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+               }
+       } else {
+               D_EMSG("msg_viewer_util_get_default_path is failed");
+               notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+               return;
+       }
+
+       msg_ui_viewer_save_attachment_popup_destroy(vpd);
+       vpd->rename_popup_entry = NULL;
+
+       __msg_ui_viewer_save_attachment_rename_popup_do_next(pAttach_info);
+}
+
+void msg_ui_viewer_save_attachment_popup_destroy(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       if (vpd->popup && vpd->popup_type == MSG_VIEWER_RENAME_ATTACHMENT_POPUP) {
+               evas_object_event_callback_del(vpd->popup, EVAS_CALLBACK_MOUSE_UP, __msg_ui_viewer_save_attachment_rename_popup_mouseup_cb);
+               eext_object_event_callback_del(vpd->popup, EEXT_CALLBACK_BACK, __msg_ui_viewer_save_attachment_rename_popup_cancel_clicked_cb);
+
+               evas_object_del(vpd->popup);
+               vpd->popup = NULL;
+               vpd->save_button = NULL;
+               vpd->media_chk_cnt = 0;
+               vpd->popup_type = MSG_VIEWER_POPUP_NONE;
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_save_attachment_rename_popup_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)pAttach_info->view_data;
+       D_MSG_RETM_IF(vpd == NULL, "vpd is NULL");
+
+       D_MSG("popup type = %d", vpd->popup_type);
+
+       msg_ui_viewer_save_attachment_popup_destroy(vpd);
+       vpd->rename_popup_entry = NULL;
+
+       __msg_ui_viewer_save_attachment_rename_popup_do_next(pAttach_info);
+}
+
+static void __msg_ui_viewer_save_attachment_rename_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL!");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL!");
+       Evas_Event_Mouse_Up *ev = event_info;
+
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)pAttach_info->view_data;
+       D_MSG_RETM_IF(vpd == NULL, "vpd is NULL");
+
+       D_MSG("button type = %d", ev->button);
+       D_MSG("popup type = %d", vpd->popup_type);
+
+       if (ev->button == 3) {
+               msg_ui_viewer_save_attachment_popup_destroy(vpd);
+               vpd->rename_popup_entry = NULL;
+
+               __msg_ui_viewer_save_attachment_rename_popup_do_next(pAttach_info);
+       }
+}
+
+void __msg_ui_viewer_check_filename_string(void *data, Evas_Object *entry, char **text)
+{
+       D_MSG_RETM_IF(entry == NULL, "Parameter Entry is Invalid");
+       D_MSG_RETM_IF((!text || !(*text)), "Parameter Text is Invalid");
+
+       char *utf8_str = elm_entry_markup_to_utf8(*text);
+       if (utf8_str && (g_utf8_strlen(utf8_str, -1) > 0)) {
+               if (strstr("\\:/*?\"<>|", utf8_str) != NULL)
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"));
+       }
+
+       if (utf8_str)
+               free(utf8_str);
+}
+
+static void __msg_ui_viewer_save_attachment_entry_max_chars_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"));
+}
+
+void msg_ui_viewer_save_attachment_create_rename_popup(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)pAttach_info->view_data;
+
+       Evas_Object *btn1 = NULL;
+       Evas_Object *btn2 = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *entry = NULL;
+       Evas_Object *popup = NULL;
+
+       Elm_Entry_Filter_Limit_Size limit_filter;
+       Elm_Entry_Filter_Accept_Set reject_set = {
+               .accepted = NULL,
+               .rejected = "\\:/*?\"<>|"
+       };
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       /* create popup */
+       popup = elm_popup_add(vpd->navi_frame);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, __msg_ui_viewer_save_attachment_rename_popup_mouseup_cb, (void *)pAttach_info);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, __msg_ui_viewer_save_attachment_rename_popup_cancel_clicked_cb, (void *)pAttach_info);
+
+       /* create custom popup inner layout */
+       layout = elm_layout_add(popup);
+       elm_layout_file_set(layout, MSG_VIEWER_CUSTOM_EDJ, "viewer/popup/entry");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB");
+
+       elm_object_domain_translatable_part_text_set(layout, "popup.text", MESSAGE_PKGNAME, "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT");
+
+       entry = elm_entry_add(layout);
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+       elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_NORMAL);
+       elm_entry_input_panel_return_key_type_set(entry, ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE);
+       elm_entry_prediction_allow_set(entry, EINA_FALSE);
+       elm_entry_markup_filter_append(entry, __msg_ui_viewer_check_filename_string, NULL);
+       elm_entry_markup_filter_append(entry, elm_entry_filter_accept_set, &reject_set);
+       eext_entry_selection_back_event_allow_set(entry, EINA_TRUE);
+       elm_entry_autocapital_type_set(entry, ELM_AUTOCAPITAL_TYPE_SENTENCE);
+
+       /*get default file path*/
+       char font_size_str[DEF_BUF_LEN_S + 1] = {0,};
+       snprintf(font_size_str, sizeof(font_size_str), "DEFAULT='font_size=%d'", vpd->font_size);
+       elm_entry_text_style_user_push(entry, font_size_str);
+       elm_entry_scrollable_set(entry, EINA_TRUE);
+
+       char file_ext[MSG_VIEWER_FILE_EXT_MAX_LEN + 1] = {0};
+       char file_name_without_ext[MSG_VIEWER_FILENAME_MAX_LEN + 1] = {0};
+
+       if (msg_viewer_util_get_file_ext(pAttach_info->pfile_name, file_ext, MSG_VIEWER_FILE_EXT_MAX_LEN)) {
+               strncpy(file_name_without_ext, pAttach_info->pfile_name, MSG_VIEWER_FILENAME_MAX_LEN);
+               file_name_without_ext[strlen(file_name_without_ext) - strlen(file_ext) - 1] = '\0';
+       }
+
+       limit_filter.max_char_count = 0;
+       limit_filter.max_byte_count = MSG_VIEWER_FILENAME_MAX_LEN - strlen(file_ext) - 1;
+       elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter);
+
+       if (strlen(file_ext) > 0 && strlen(file_name_without_ext) > 0)
+               elm_object_text_set(entry, file_name_without_ext);
+       else
+               elm_object_text_set(entry, pAttach_info->pfile_name);
+
+       elm_entry_cursor_end_set(entry);
+
+       evas_object_smart_callback_add(entry, "maxlength,reached", __msg_ui_viewer_save_attachment_entry_max_chars_cb, NULL);
+       evas_object_smart_callback_add(entry, "changed", __msg_ui_viewer_save_attachment_rename_popup_entry_changed_cb, (void *)pAttach_info);
+       evas_object_smart_callback_add(entry, "activated", __msg_ui_viewer_save_attachment_rename_popup_entry_activated_cb, NULL);
+
+       elm_object_part_content_set(layout, "popup.swallow.entry", entry);
+       evas_object_show(entry);
+       evas_object_show(layout);
+
+       elm_object_content_set(popup, layout);
+
+       /* create button */
+       btn1 = elm_button_add(popup);
+       elm_object_style_set(btn1, "popup");
+       elm_object_domain_translatable_text_set(btn1, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", __msg_ui_viewer_save_attachment_rename_popup_cancel_clicked_cb, (void *)pAttach_info);
+
+       btn2 = elm_button_add(popup);
+       elm_object_style_set(btn2, "popup");
+       elm_object_domain_translatable_text_set(btn2, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       elm_object_part_content_set(popup, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", __msg_ui_viewer_save_attachment_rename_popup_ok_clicked_cb, (void *)pAttach_info);
+       evas_object_data_set(entry, "ok_btn", btn2);
+       elm_object_disabled_set(btn2, EINA_TRUE);
+
+       evas_object_show(popup);
+       elm_object_focus_set(entry, EINA_TRUE);
+
+       vpd->rename_popup_entry = entry;
+       vpd->popup = popup;
+       vpd->popup_type = MSG_VIEWER_RENAME_ATTACHMENT_POPUP;
+
+       elm_object_focus_next_object_set(entry, btn1, ELM_FOCUS_DOWN);
+       elm_object_focus_next_object_set(entry, btn1, ELM_FOCUS_RIGHT);
+       elm_object_focus_next_object_set(btn1, entry, ELM_FOCUS_LEFT);
+       elm_object_focus_next_object_set(btn1, btn2, ELM_FOCUS_RIGHT);
+       elm_object_focus_next_object_set(btn2, btn1, ELM_FOCUS_LEFT);
+       elm_object_focus_next_object_set(btn1, entry, ELM_FOCUS_UP);
+       elm_object_focus_next_object_set(btn2, entry, ELM_FOCUS_UP);
+
+       msg_ui_viewer_disconnect_handler(vpd, true);
+}
diff --git a/viewer/src/msg-ui-viewer-play-view-main.c b/viewer/src/msg-ui-viewer-play-view-main.c
new file mode 100755 (executable)
index 0000000..7222d61
--- /dev/null
@@ -0,0 +1,2172 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-ui-viewer-play-view.h"
+#include "msg-ui-viewer-main.h"
+#include "msg-ui-image-resource.h"
+#include "msg-ui-viewer-utility.h"
+#include "msg-ui-common-utility.h"
+#include "msg-ui-content-utility.h"
+#include "msg-smil-player.h"
+#include "msg-file-util.h"
+
+
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+#include <contacts.h>
+#include <utilX.h>
+#include <device/power.h>
+#include <sound_manager.h>
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+/* message */
+static MSG_BOOL __msg_ui_viewer_play_view_get_message_info(void *data);
+
+/* create layout */
+static void __msg_ui_viewer_create_title_layout(void *data);
+static void __msg_ui_viewer_update_title_layout(void *data);
+static void __msg_ui_viewer_create_subject_index_layout(void *data);
+static MSG_BOOL __msg_ui_viewer_create_content_layout(void *data);
+static void __msg_ui_viewer_create_control_toolbar(void *data);
+static void __msg_ui_viewer_get_layout_size(void *data, SMIL_POSITION_S *left_top, SMIL_POSITION_S *right_bottom);
+static void __msg_ui_viewer_play_view_rotation_cb(void *data, Evas_Object *obj, void *event);
+static void __msg_ui_viewer_contact_changed_cb(const char *view_uri, void *user_data);
+static void __msg_ui_viewer_title_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
+/*==================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+MSG_SMIL_ERROR_E msg_ui_viewer_smil_cb(SMIL_SLIDE_CLIENT_CB_PARAM_S *eventStatus, void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(eventStatus == NULL, MSG_ERR_SMIL_UI_DISPLAY_FAIURE, "eventStatus is NULL");
+       D_MSG_RETVM_IF(data == NULL, MSG_ERR_SMIL_UI_DISPLAY_FAIURE, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       char title_string[VIEWER_TITLE_FONT_LEN + 1] = {0, };
+       int total_page = 0;
+
+       D_MSG("clientCbEvent : %d", eventStatus->clientCbEvent);
+       D_MSG("isLastSlide : %d", eventStatus->isLastSlide);
+       D_MSG("isHelpSlide : %d", eventStatus->isHelpSlide);
+       D_MSG("pageIdx : %d", eventStatus->pageIdx);
+       D_MSG("pageCnt : %d", eventStatus->pageCnt);
+
+       vpd->smil_eventStatus = eventStatus;
+       /*update prev/next button*/
+       msg_ui_viewer_play_controller_update(vpd, MSG_VIEWER_UNKOWN);
+
+       /*for Multipart.Mixed "Slide" count info.*/
+       if (eventStatus->pageCnt == 0 && eventStatus->clientCbEvent != SMIL_RENDER_EVENT_PAGE_MEDIA_PLAY_START)
+               total_page = eventStatus->pageCnt + 1;
+       else
+               total_page = eventStatus->pageCnt;
+
+       /*update page index*/
+       snprintf(title_string, sizeof(title_string), "%d/%d ", eventStatus->pageIdx + 1, total_page);
+       edje_object_part_text_set(_EDJ(vpd->subject_index_layout), "page/text", title_string);
+
+       if (eventStatus->clientCbEvent == SMIL_RENDER_EVENT_LAST_PAGE_PLAY_COMPLETE && eventStatus->isLastSlide == TRUE) {
+               MSG_VIEWER_LAUNCH_MODE_E launch_mode = MSG_VIEWER_INVALID_MODE;
+               msg_ui_viewer_get_viewer_launch_mode(vpd->viewer_main, &launch_mode);
+               D_MSG("launch_mode : %d", launch_mode);
+
+               if (launch_mode == MSG_VIEWER_MMS_PREVIEW_MODE || launch_mode == MSG_VIEWER_MMS_NORMAL_MODE) {
+                       vpd->status = MSG_VIEWER_STOP;
+                       if (vpd->play_controller)
+                               edje_object_signal_emit(_EDJ(vpd->play_controller), "play", "*");
+               } else {
+                       D_EMSG("Invalid launch_mode");
+               }
+               device_power_release_lock(POWER_LOCK_DISPLAY);
+       } else if (eventStatus->clientCbEvent == SMIL_RENDER_EVENT_PAGE_MEDIA_PLAY_START ||
+                               eventStatus->clientCbEvent == SMIL_RENDER_EVENT_PAGE_PLAY_START) {      /*slide is playing*/
+               msg_ui_viewer_play_controller_create_progressbar(vpd, eventStatus->pageIdx);
+
+               double current_slide_time = 0.0;
+               double remain_slide_time = 0.0;
+               double remain_next_slide_time = 0.0;
+               if (msg_smil_get_slide_time(vpd->SmilHandle, eventStatus->pageIdx, FALSE, &remain_slide_time)) {
+                       if (msg_smil_get_slide_time(vpd->SmilHandle, eventStatus->pageIdx+1, FALSE, &remain_next_slide_time))
+                               current_slide_time = remain_slide_time - remain_next_slide_time;
+                       else
+                               current_slide_time = remain_slide_time;
+               }
+
+               D_MSG("current_slide_time = %d(ms)", (int)current_slide_time);
+
+               if (current_slide_time <= 0)            /* for infinite duration slide, duration <= 0 */
+                       ecore_timer_freeze(vpd->play_controller_progressbar_timer);
+               else
+                       ecore_timer_thaw(vpd->play_controller_progressbar_timer);
+
+               SMIL_SLIDE_INFO_S *cur_slide = msg_smil_get_current_slide_info(vpd->SmilHandle);
+               D_MSG_RETVM_IF(cur_slide == NULL, MSG_ERR_SMIL_UI_DISPLAY_FAIURE, "cur_slide is NULL");
+
+               /* request PLAYER to start for video & audio media */
+               if (cur_slide->slideStatus == PLAYER_STATUS_PLAYING) {
+                       if (cur_slide->pageInfo && (cur_slide->pageInfo->hasAudio || cur_slide->pageInfo->hasVideo))
+                               msg_smil_request_player_start(vpd->SmilHandle);
+               }
+
+               /* set pause icon in play controller */
+               if (vpd->play_controller) {
+                       msg_ui_viewer_play_controller_create_timer(vpd);
+                       edje_object_signal_emit(_EDJ(vpd->play_controller), "pause", "*");
+               }
+
+               vpd->status = MSG_VIEWER_PLAY;
+       } else if (eventStatus->clientCbEvent == SMIL_RENDER_EVENT_PAUSE_CURRENT_PAGE || eventStatus->clientCbEvent == SMIL_RENDER_EVENT_MOVE_PAGE_AFTER_PAUSED) {
+               if (vpd->play_controller)
+                       edje_object_signal_emit(_EDJ(vpd->play_controller), "play", "*");
+
+               vpd->status = MSG_VIEWER_PAUSE;
+
+               if (vpd->play_controller_progressbar_timer)
+                       ecore_timer_freeze(vpd->play_controller_progressbar_timer);
+       } else if (eventStatus->clientCbEvent == SMIL_RENDER_EVENT_ERROR) {
+               /*stop smil player*/
+               if (msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_STOP) == MSG_SMIL_SUCCESS) {
+                       if (vpd->play_controller)
+                               edje_object_signal_emit(_EDJ(vpd->play_controller), "play", "*");
+                               /* do not delete progressbar timer, it will be removed automatically in timer callback with return value ECORE_CALLBACK_CANCEL */
+                       vpd->status = MSG_VIEWER_STOP;
+                       msg_ui_viewer_play_controller_update(vpd, MSG_VIEWER_STOP);
+               } else {
+                       D_EMSG("msg_smil_on_slide_event_handler is failed");
+               }
+               device_power_release_lock(POWER_LOCK_DISPLAY);
+
+               /* show popup */
+               if (msg_common_is_connected_call()) {
+                       vpd->popup_type = MSG_VIEWER_NORMAL_POPUP;
+                       msg_ui_viewer_show_popup(vpd, vpd->main_window, dgettext(MESSAGE_PKGNAME, "IDS_MSG_POP_UNABLE_TO_PLAY_DURING_CALL"));
+               }
+       }
+
+       D_LEAVE;
+       return MSG_SMIL_SUCCESS;
+}
+
+Eina_Bool msg_ui_viewer_mouse_up_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_FALSE, "data is NULL");
+       D_MSG_RETVM_IF(event == NULL, EINA_FALSE, "event is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       Ecore_Event_Mouse_Button *ev = (Ecore_Event_Mouse_Button *)event;
+       MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
+       SMIL_PLAYER_STATUS_E play_status = PLAYER_STATUS_NONE;
+       int start_point = 0;
+       int end_point = 0;
+       int screen_width = 0;
+       int rotate = 0;
+
+       play_status = msg_smil_get_current_slide_status(vpd->SmilHandle);
+       D_MSG("play_status : %d", play_status);
+
+       /*get start and end point according to rotation*/
+       rotate = elm_win_rotation_get(vpd->main_window);
+       if (rotate == 0) {      /*PORTRAIT mode*/
+               D_MSG("PORTRAIT mode");
+               start_point = vpd->m_x;
+               end_point = ev->x;
+               screen_width = vpd->window_width;
+       } else if (rotate == 180) {
+               D_MSG("PORTRAIT reverse mode");
+               start_point = ev->x;
+               end_point = vpd->m_x;
+               screen_width = vpd->window_width;
+       } else if (rotate == 90) {      /*LANDSCAPE mode*/
+               D_MSG("LANDSCAPE mode");
+               start_point = ev->y;
+               end_point = vpd->m_y;
+               screen_width = vpd->window_height;
+       } else if (rotate == 270) {
+               D_MSG("LANDSCAPE reverse mode");
+               start_point = vpd->m_y;
+               end_point = ev->y;
+               screen_width = vpd->window_height;
+       } else {
+               D_EMSG("Invalid ratation value");
+               return FALSE;
+       }
+       D_MSG("start_point = %d, end_point = %d, screen_width = %d", start_point, end_point, screen_width);
+
+       if (end_point - start_point > screen_width / 4) {
+               /* prev*/
+               int pageIdx = vpd->smil_eventStatus->pageIdx;
+               if (pageIdx > 0) {
+                       if (play_status != PLAYER_STATUS_PLAY_END && play_status != PLAYER_STATUS_STOPPED) {
+                               err = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_PREV_SLIDE);
+                               if (err != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", err);
+                               } else {
+                                       /* show play controller */
+                                       if (vpd->play_controller) {
+                                               elm_object_part_content_set(vpd->play_layout, "viewer.swallow.playctrl", vpd->play_controller);
+                                               evas_object_show(vpd->play_controller);
+                                               vpd->playcontroller_opened = true;
+                                               msg_ui_viewer_play_controller_create_timer(vpd);
+                                       }
+                                       /* set progressbar and progress text sync */
+                                       if (vpd->progressbar && vpd->play_controller_progressbar_timer)
+                                               msg_ui_viewer_play_controller_create_progressbar(vpd, pageIdx-1);
+                               }
+                       }
+               }
+       } else if (start_point - end_point > screen_width / 4) {
+               /*next*/
+               int pageIdx = vpd->smil_eventStatus->pageIdx + 1;
+               int total_page = vpd->smil_eventStatus->pageCnt;
+               if (total_page > pageIdx) {
+                       if (play_status != PLAYER_STATUS_PLAY_END && play_status != PLAYER_STATUS_STOPPED) {
+                               err = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_NEXT_SLIDE);
+                               if (err != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", err);
+                               } else {
+                                       /* show play controller */
+                                       if (vpd->play_controller) {
+                                               elm_object_part_content_set(vpd->play_layout, "viewer.swallow.playctrl", vpd->play_controller);
+                                               evas_object_show(vpd->play_controller);
+                                               vpd->playcontroller_opened = true;
+                                               msg_ui_viewer_play_controller_create_timer(vpd);
+                                       }
+                                       /* set progressbar and progress text sync */
+                                       if (vpd->progressbar && vpd->play_controller_progressbar_timer)
+                                               msg_ui_viewer_play_controller_create_progressbar(vpd, pageIdx);
+                               }
+                       }
+               }
+       }
+
+       return EINA_TRUE;
+}
+
+Eina_Bool msg_ui_viewer_mouse_down_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_FALSE, "data is NULL");
+       D_MSG_RETVM_IF(event == NULL, EINA_FALSE, "event is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       Ecore_Event_Mouse_Button *ev = (Ecore_Event_Mouse_Button *)event;
+
+       vpd->m_x = ev->x;
+       vpd->m_y = ev->y;
+
+       if (vpd->mouse_up_event_handler) {
+               ecore_event_handler_del(vpd->mouse_up_event_handler);
+               vpd->mouse_up_event_handler = NULL;
+       }
+       vpd->mouse_up_event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP, msg_ui_viewer_mouse_up_cb, (void *) vpd);
+
+       return EINA_TRUE;
+}
+
+void msg_ui_viewer_play_layout_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       Evas_Event_Mouse_Down *ev = event_info;
+
+       vpd->ctrl_start_x = ev->canvas.x;
+       vpd->ctrl_start_y = ev->canvas.y;
+}
+
+void msg_ui_viewer_play_layout_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       Evas_Event_Mouse_Up *ev = event_info;
+
+       vpd->ctrl_end_x = ev->canvas.x;
+       vpd->ctrl_end_y = ev->canvas.y;
+
+       int screen_width = 0;
+       int screen_height = 0;
+       int rotate = 0;
+
+       /* get screen size */
+       rotate = elm_win_rotation_get(vpd->main_window);
+       if (rotate == 0 || rotate == 180) {
+               screen_width = vpd->window_width;
+               screen_height = vpd->window_height;
+       } else if (rotate == 90 || rotate == 270) {
+               screen_width = vpd->window_height;
+               screen_height = vpd->window_width;
+       } else {
+               D_EMSG("Invalid ratation value");
+               return;
+       }
+
+       if (!vpd->playcontroller_opened) {
+               if (abs(vpd->ctrl_start_x-vpd->ctrl_end_x) < screen_width / 10 && abs(vpd->ctrl_start_y-vpd->ctrl_end_y) < screen_height / 10) {
+                       D_MSG("PLAY CONTROLLER [OFF] => [ON]");
+
+                       if (vpd->play_controller) {
+                               elm_object_part_content_set(vpd->play_layout, "viewer.swallow.playctrl", vpd->play_controller);
+                               evas_object_show(vpd->play_controller);
+                               vpd->playcontroller_opened = true;
+                               evas_object_show(vpd->play_layout);
+                               msg_ui_viewer_play_controller_create_timer(vpd);
+                       }
+               }
+       } else {
+               /* up/down drag condition - close play controller */
+               if (abs(vpd->ctrl_start_y-vpd->ctrl_end_y) > screen_height / 5) {
+                       elm_object_part_content_unset(vpd->play_layout, "viewer.swallow.playctrl");
+                       evas_object_hide(vpd->play_controller);
+                       vpd->playcontroller_opened = false;
+
+                       msg_ui_viewer_play_controller_destroy_timer(vpd);
+               } else {
+                       int screen_width = 0;
+                       int screen_height = 0;
+                       int rotate = 0;
+
+                       /* get screen size */
+                       rotate = elm_win_rotation_get(vpd->main_window);
+                       if (rotate == 0 || rotate == 180) {
+                               screen_width = vpd->window_width;
+                               screen_height = vpd->window_height;
+                       } else if (rotate == 90 || rotate == 270) {
+                               screen_width = vpd->window_height;
+                               screen_height = vpd->window_width;
+                       } else {
+                               D_EMSG("Invalid ratation value");
+                               return;
+                       }
+
+                       int ctrl_height = (vpd->is_rotated) ? VIEWER_PLAY_CONTROLLER_HORIZONTAL_HEIGHT : VIEWER_PLAY_CONTROLLER_VERTICAL_HEIGHT;
+
+                       if (abs(vpd->ctrl_start_x-vpd->ctrl_end_x) < screen_width / 10 &&
+                               abs(vpd->ctrl_start_y-vpd->ctrl_end_y) < screen_height / 10 &&
+                               vpd->ctrl_end_y < screen_height-ctrl_height) {
+                               D_MSG("PLAY CONTROLLER [ON] => [OFF]");
+                               elm_object_part_content_unset(vpd->play_layout, "viewer.swallow.playctrl");
+                               evas_object_hide(vpd->play_controller);
+                               vpd->playcontroller_opened = false;
+
+                               msg_ui_viewer_play_controller_destroy_timer(vpd);
+                       }
+               }
+       }
+}
+
+Eina_Bool msg_ui_viewer_focused_in_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETVM_IF(vpd == NULL, ECORE_CALLBACK_DONE, "vpd is NULL!");
+
+       Ecore_X_Event_Window_Focus_In *ev = (Ecore_X_Event_Window_Focus_In *)event;
+
+       if (vpd->main_window != NULL && ev->win == elm_win_xwindow_get(vpd->main_window)) {
+               if (!vpd->popup)
+                       msg_ui_viewer_connect_handler(vpd);
+
+               if (vpd->mode == MSG_VIEWER_HIDED_BY_APPLICATION) {
+                       D_MSG("view mode will be changed [%d] ==> [%d]", vpd->mode, MSG_VIEWER_DEFAULT_MODE);
+                       /*reset launch_cmd and cmd_type*/
+                       vpd->mode = MSG_VIEWER_DEFAULT_MODE;
+               }
+       }
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+Eina_Bool msg_ui_viewer_focused_out_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETVM_IF(vpd == NULL, EINA_FALSE, "vpd is NULL!");
+
+       Ecore_X_Event_Window_Focus_Out *ev = (Ecore_X_Event_Window_Focus_Out *)event;
+
+       if ((vpd->main_window != NULL) && (ev->win == elm_win_xwindow_get(vpd->main_window))) {
+               msg_ui_viewer_disconnect_handler(vpd, true);
+               D_MSG("view mode will be changed [%d] ==> [%d]", vpd->mode, MSG_VIEWER_HIDED_BY_APPLICATION);
+               vpd->mode = MSG_VIEWER_HIDED_BY_APPLICATION;
+       }
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+void msg_ui_viewer_play_view_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL!");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL!");
+
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       Evas_Event_Mouse_Up *ev = event_info;
+
+       D_MSG("popup type = %d", vpd->popup_type);
+
+       if (ev->button == 3) {
+               msg_ui_viewer_popup_destroy(vpd);
+
+               /* connect handler again*/
+               msg_ui_viewer_connect_handler(vpd);
+       }
+}
+
+void msg_ui_viewer_play_view_popup_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL!");
+
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG("popup type = %d", vpd->popup_type);
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       /* connect handler again*/
+       msg_ui_viewer_connect_handler(vpd);
+}
+
+MSG_SMIL_ERROR_E msg_ui_viewer_set_entry_handle_cb(void *data, void *entry)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, MSG_ERR_SMIL_UNKNOWN, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       vpd->render_entry = (Evas_Object *)entry;
+
+       if (vpd->render_entry) {
+               SMIL_SLIDE_INFO_S *slide = msg_smil_get_current_slide_info(vpd->SmilHandle);
+               MSG_VIEWER_ENTRY_TYPE_E entry_type = (slide && slide->pageInfo && slide->pageInfo->isHelpPage && !slide->commonData->isTextOnlyMixed) ? MSG_VIEWER_ENTRY_HELP_TEXT : MSG_VIEWER_ENTRY_NORMAL_TEXT;
+               msg_ui_viewer_set_font_size(vpd, entry_type, MSG_VIEWER_FONT_CHANGE_LATEST_UPDATE);
+       }
+
+       return MSG_SMIL_SUCCESS;
+}
+
+Eina_Bool msg_ui_viewer_back_button_cb(void *data, Elm_Object_Item *it)
+{
+       D_ENTER;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
+
+       D_MSG("vpd->mode : %d", vpd->mode);
+
+       /*prevent invalid double pressing button event after launching ug or app(like call, vtcall)*/
+       if (vpd->mode != MSG_VIEWER_DEFAULT_MODE)
+               return EINA_FALSE;
+
+       if (vpd->status == MSG_VIEWER_PLAY || vpd->status == MSG_VIEWER_PAUSE) {
+               err = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_STOP);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", err);
+               }
+               device_power_release_lock(POWER_LOCK_DISPLAY);
+
+               vpd->status = MSG_VIEWER_STOP;
+               msg_ui_viewer_play_controller_update(vpd, MSG_VIEWER_STOP);
+       }
+
+       msg_ui_viewer_disconnect_handler(vpd, true);
+
+       if (!vpd->del_idler)
+               vpd->del_idler = ecore_idler_add(msg_ui_viewer_ug_quit, vpd->viewer_main);
+
+       D_LEAVE;
+
+       return EINA_FALSE;
+}
+
+MSG_BOOL msg_ui_viewer_command_play_pause(void *data, MSG_VIEWER_ACTION_TYPE_E action)
+{
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG("vpd->status : %d", vpd->status);
+
+       /*prevent invalid double pressing button event after launching ug or app( call, vtcall)*/
+       if (vpd->mode != MSG_VIEWER_DEFAULT_MODE) {
+               D_EMSG("PLAYER view is not MSG_VIEWER_DEFAULT_MODE (%d)", vpd->mode);
+               return FALSE;
+       }
+
+       switch (action) {
+               case MSG_VIEWER_ACTION_TOOLBAR_PAUSE:
+                       /* fall through */
+               case MSG_VIEWER_ACTION_AUTO_PAUSE:
+                       /* Do pause action only if current status is PLAY */
+                       if (vpd->status == MSG_VIEWER_PLAY) {
+                               err = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_PAUSE);
+                               if (err != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", err);
+                                       return FALSE;
+                               } else {
+                                       if (vpd->play_controller)
+                                               edje_object_signal_emit(_EDJ(vpd->play_controller), "play", "*");
+                                       vpd->status = MSG_VIEWER_PAUSE;
+
+                                       if (vpd->play_controller_progressbar_timer)
+                                               ecore_timer_freeze(vpd->play_controller_progressbar_timer);
+                                       if (!vpd->is_cmdplaypause_called) {
+                                               device_power_release_lock(POWER_LOCK_DISPLAY);
+                                               vpd->is_cmdplaypause_called = true;
+                                       }
+                               }
+                       }
+                       break;
+               case MSG_VIEWER_ACTION_TOOLBAR_PLAY:
+                       /* fall through */
+               case MSG_VIEWER_ACTION_AUTO_PLAY:
+                       /* Do play action when play status is STOP & PAUSE */
+                       if (vpd->status == MSG_VIEWER_STOP) {
+                               err = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_PLAY);
+                               if (err != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", err);
+                                       return FALSE;
+                               } else {
+                                       if (vpd->play_controller) {
+                                               edje_object_signal_emit(_EDJ(vpd->play_controller), "pause", "*");
+                                               msg_ui_viewer_play_controller_create_progressbar(vpd, 0);
+                                       }
+                                       vpd->status = MSG_VIEWER_PLAY;
+
+                                       device_power_request_lock(POWER_LOCK_DISPLAY, 0);
+                               }
+                       } else if (vpd->status == MSG_VIEWER_PAUSE) {
+                               err = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_RESUME);
+                               if (err != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", err);
+                                       return FALSE;
+                               } else {
+                                       if (vpd->play_controller)
+                                               edje_object_signal_emit(_EDJ(vpd->play_controller), "pause", "*");
+                                       vpd->status = MSG_VIEWER_PLAY;
+
+                                       if (vpd->play_controller_progressbar_timer)
+                                               ecore_timer_thaw(vpd->play_controller_progressbar_timer);
+
+                                       device_power_request_lock(POWER_LOCK_DISPLAY, 0);
+                               }
+                       }
+                       break;
+               default:
+                       D_EMSG("Invalid play status case");
+                       return FALSE;
+       }
+
+       /* refreshing play controller timer by button action */
+       if (action == MSG_VIEWER_ACTION_TOOLBAR_PLAY) {
+               msg_ui_viewer_play_controller_create_timer(vpd);
+               vpd->auto_resume_state = true;
+       } else if (action == MSG_VIEWER_ACTION_TOOLBAR_PAUSE) {
+               msg_ui_viewer_play_controller_create_timer(vpd);
+               vpd->auto_resume_state = false;
+       } else {
+               /* case for not button action */
+               if (vpd->status == MSG_VIEWER_PLAY) {
+                       /* show play controller again to notify SMIL is resumed */
+                       if (vpd->play_controller && !vpd->playcontroller_opened) {
+                               elm_object_part_content_set(vpd->play_layout, "viewer.swallow.playctrl", vpd->play_controller);
+                               evas_object_show(vpd->play_controller);
+                               vpd->playcontroller_opened = true;
+                               msg_ui_viewer_play_controller_create_timer(vpd);
+                       }
+               } else if (vpd->status == MSG_VIEWER_PAUSE) {
+                       if (vpd->previous_status == MSG_VIEWER_PLAY) {
+                               /* show play controller again to notify SMIL is paused */
+                               if (vpd->play_controller && !vpd->playcontroller_opened) {
+                                       elm_object_part_content_set(vpd->play_layout, "viewer.swallow.playctrl", vpd->play_controller);
+                                       evas_object_show(vpd->play_controller);
+                                       vpd->playcontroller_opened = true;
+                                       msg_ui_viewer_play_controller_create_timer(vpd);
+                               }
+                       }
+               }
+       }
+
+       D_LEAVE;
+
+       return TRUE;
+}
+
+void msg_ui_viewer_play_view_init(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       vpd->main_window = NULL;
+       vpd->navi_frame = NULL;
+       vpd->navi_item = NULL;
+       vpd->navi_title_layout = NULL;
+       vpd->subject_index_layout = NULL;
+       vpd->play_controller = NULL;
+       vpd->play_layout = NULL;
+       vpd->save_attachment_gl = NULL;
+       vpd->render_entry = NULL;
+       vpd->save_button = NULL;
+       vpd->m_x = 0;
+       vpd->m_y = 0;
+       vpd->mouse_down_event_handler = NULL;
+       vpd->mouse_up_event_handler = NULL;
+       vpd->msgHandle = NULL;
+       vpd->msgID = -1;
+       vpd->mode = MSG_VIEWER_DEFAULT_MODE;
+       vpd->status = MSG_VIEWER_UNKOWN;
+       vpd->saving_status = MSG_VIEWER_SAVING_STATUS_NONE;
+       vpd->msg_t = NULL;
+       vpd->mms_t = NULL;
+       vpd->smil_eventStatus = NULL;
+       vpd->popup = NULL;
+       vpd->popup_type = MSG_VIEWER_POPUP_NONE;
+       vpd->del_idler = NULL;
+       vpd->play_controller_timer = NULL;
+       vpd->ctrl_start_x = 0;
+       vpd->ctrl_start_y = 0;
+       vpd->insert_count = 0;
+       vpd->attach_count = 0;
+       vpd->insert_list = NULL;
+       vpd->attach_list = NULL;
+       vpd->playcontroller_opened = 0;
+       vpd->auto_resume_state = true;
+       vpd->is_rotated = 0;
+       vpd->volkey_release_handler = NULL;
+       vpd->volkey_press_handler = NULL;
+       vpd->vol_up_key_longpress = NULL;
+       vpd->vol_down_key_longpress = NULL;
+
+       memset(&vpd->cbs, 0x0, sizeof(struct ug_cbs));
+
+       vpd->title_th = elm_theme_new();
+       elm_theme_ref_set(vpd->title_th, NULL);
+       elm_theme_extension_add(vpd->title_th, MSG_CUSTOM_WINSET_EDJ);
+
+       vpd->progress_th = elm_theme_new();
+       elm_theme_ref_set(vpd->progress_th, NULL);
+       elm_theme_extension_add(vpd->progress_th, MSG_VIEWER_EDJ);
+
+       vpd->working_dir = NULL;
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_destroy_play_view(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
+
+       if (vpd->status == MSG_VIEWER_PLAY || vpd->status == MSG_VIEWER_PAUSE) {
+               err = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_STOP);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", err);
+               } else {
+                       vpd->status = MSG_VIEWER_STOP;
+               }
+               SMIL_HANDLER_S *smilhandle = (SMIL_HANDLER_S *)vpd->SmilHandle;
+               if (!smilhandle->smilRenderer->is_interrupt_called && !vpd->is_cmdplaypause_called) {
+                       device_power_release_lock(POWER_LOCK_DISPLAY);
+               }
+       }
+
+       if (vpd->insert_list) {
+               int index = 0;
+               int ntotal = 0;
+               ntotal = eina_list_count(vpd->insert_list);
+               for (index = 0; index < ntotal; index++) {
+                       MSG_VIEWER_MEDIA_INFO_S *pMedia_info = eina_list_nth(vpd->insert_list, index);
+                       if (pMedia_info) {
+                               free(pMedia_info);
+                               pMedia_info = NULL;
+                       }
+               }
+               eina_list_free(vpd->insert_list);
+               vpd->insert_list = NULL;
+       }
+
+       if (vpd->attach_list) {
+               int index = 0;
+               int ntotal = 0;
+               ntotal = eina_list_count(vpd->attach_list);
+               for (index = 0; index < ntotal; index++) {
+                       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = eina_list_nth(vpd->attach_list, index);
+                       if (pAttach_info) {
+                               free(pAttach_info);
+                               pAttach_info = NULL;
+                       }
+               }
+               eina_list_free(vpd->attach_list);
+               vpd->attach_list = NULL;
+       }
+
+       if (vpd->attach_ly) {
+               free(vpd->attach_ly);
+               vpd->attach_ly = NULL;
+       }
+
+       /* it can be unset from parent's layout because of calling elm_object_part_content_unset() */
+       if (elm_object_part_content_get(vpd->play_layout, "viewer.swallow.playctrl") == NULL) {
+               if (vpd->play_controller) {
+                       evas_object_del(vpd->play_controller);
+                       vpd->play_controller = NULL;
+               }
+       }
+
+       if (vpd->popup) {
+               if (vpd->popup_type != MSG_VIEWER_RENAME_ATTACHMENT_POPUP)
+                       msg_ui_viewer_popup_destroy(vpd);
+               else
+                       msg_ui_viewer_save_attachment_popup_destroy(vpd);
+       }
+
+       if (vpd->del_idler) {
+               ecore_idler_del(vpd->del_idler);
+               vpd->del_idler = NULL;
+       }
+
+       if (vpd->play_controller_timer) {
+               ecore_timer_del(vpd->play_controller_timer);
+               vpd->play_controller_timer = NULL;
+       }
+
+       if (vpd->play_controller_progressbar_timer) {
+               ecore_timer_del(vpd->play_controller_progressbar_timer);
+               vpd->play_controller_progressbar_timer = NULL;
+       }
+
+       if (vpd->title_th) {
+               elm_theme_extension_del(vpd->title_th, MSG_CUSTOM_WINSET_EDJ);
+               elm_theme_free(vpd->title_th);
+               vpd->title_th = NULL;
+       }
+
+       if (vpd->progress_th) {
+               elm_theme_extension_del(vpd->progress_th, EDJDIR"/msg_viewer.edj");
+               elm_theme_free(vpd->progress_th);
+               vpd->progress_th = NULL;
+       }
+
+       if (vpd->focus_in) {
+               ecore_event_handler_del(vpd->focus_in);
+               vpd->focus_in = NULL;
+       }
+
+       if (vpd->focus_out) {
+               ecore_event_handler_del(vpd->focus_out);
+               vpd->focus_out = NULL;
+       }
+
+       if (vpd->list_popup_idler) {
+               ecore_idler_del(vpd->list_popup_idler);
+               vpd->list_popup_idler = NULL;
+       }
+
+       vpd->working_dir = NULL;
+
+       msg_ui_viewer_disconnect_handler(vpd, !vpd->keep_keygrab);
+
+       evas_object_smart_callback_del_full(vpd->main_window, "wm,rotation,changed", __msg_ui_viewer_play_view_rotation_cb, vpd);
+       contacts_db_remove_changed_cb(_contacts_contact._uri, __msg_ui_viewer_contact_changed_cb, (void *)vpd);
+       D_LEAVE;
+}
+
+void msg_ui_viewer_connect_handler(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       /* connect mouse handler for flick event */
+       if (!vpd->mouse_down_event_handler)
+               vpd->mouse_down_event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, msg_ui_viewer_mouse_down_cb, (void *)vpd);
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_disconnect_handler(void *data, bool ungrab_key)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       if (vpd->mouse_up_event_handler) {
+               ecore_event_handler_del(vpd->mouse_up_event_handler);
+               vpd->mouse_up_event_handler = NULL;
+       }
+
+       if (vpd->mouse_down_event_handler) {
+               ecore_event_handler_del(vpd->mouse_down_event_handler);
+               vpd->mouse_down_event_handler = NULL;
+       }
+
+       if (vpd->volkey_release_handler) {
+               ecore_event_handler_del(vpd->volkey_release_handler);
+               vpd->volkey_release_handler = NULL;
+       }
+
+       if (vpd->vol_up_key_longpress) {
+               ecore_timer_del(vpd->vol_up_key_longpress);
+               vpd->vol_up_key_longpress = NULL;
+       }
+
+       if (vpd->volkey_press_handler) {
+               ecore_event_handler_del(vpd->volkey_press_handler);
+               vpd->volkey_press_handler = NULL;
+       }
+
+       if (vpd->vol_down_key_longpress) {
+               ecore_timer_del(vpd->vol_down_key_longpress);
+               vpd->vol_down_key_longpress = NULL;
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_play_view_rotation_cb(void *data, Evas_Object *obj, void *event)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       MSG_SMIL_ERROR_E Error = MSG_SMIL_SUCCESS;
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vpd->viewer_main;
+       D_MSG_RETM_IF(vmd == NULL, "vmd is NULL");
+       D_MSG_RETM_IF(vmd->destroy_on_close, "viewer will be destroyed!");
+
+       int changed_rotation = elm_win_rotation_get(obj);
+       D_MSG("changed rotation [%d]", changed_rotation);
+
+       if (changed_rotation == 90 || changed_rotation == 270)
+               vpd->is_rotated = true;
+       else
+               vpd->is_rotated = false;
+
+       if ((Error = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_ROTATE_WINDOW)) != MSG_SMIL_SUCCESS)
+               D_EMSG("PLAYER_EVENT_ROTATE_WINDOW failed : %d", Error);
+
+       /* create title laout again if MMS view is normal mode */
+       if (vmd->launch_mode == MSG_VIEWER_MMS_NORMAL_MODE)
+               __msg_ui_viewer_create_title_layout(vpd);
+
+       {
+               if (vpd->popup_type == MSG_VIEWER_ATTACHMENTS_POPUP) {
+                       int total_count = vpd->insert_count + vpd->attach_count;
+                       int popup_height = 0;
+                       if (vpd->is_rotated)
+                               popup_height = VIEWER_ATTACH_LIST_ITEM_HEIGHT * ((total_count > 2.5) ? 2.5 : ((total_count > 1) ? total_count + 1 : total_count));
+                       else
+                               popup_height = VIEWER_ATTACH_LIST_ITEM_HEIGHT * ((total_count >= 6.0) ? 6.0 : ((total_count > 1) ? total_count + 1 : total_count));
+
+                       Evas_Object *box = elm_object_content_get(vpd->popup);
+                       evas_object_size_hint_min_set(box, 0, ELM_SCALE_SIZE(popup_height));
+               } else if (vpd->popup_type == MSG_VIEWER_CONTACT_LIST_POPUP || vpd->popup_type == MSG_VIEWER_CUTLINK_POPUP) {
+                       msg_ui_viewer_list_popup_size_min_set(vpd);
+               }
+       }
+}
+
+static void __msg_ui_viewer_contact_changed_cb(const char *view_uri, void *user_data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(user_data == NULL, "user_data is NULL");
+
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)user_data;
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vpd->viewer_main;
+       D_MSG_RETM_IF(vmd == NULL, "vmd is NULL");
+       D_MSG_RETM_IF(vmd->destroy_on_close, "viewer will be destroyed!");
+
+       if (vmd->launch_mode == MSG_VIEWER_MMS_NORMAL_MODE)
+               __msg_ui_viewer_update_title_layout(vpd);
+
+       if (vpd->mode == MSG_VIEWER_RECIPIENT_MODE) {
+               Elm_Object_Item *it = elm_genlist_first_item_get(vpd->recipient_list);
+               while (it) {
+                       MSG_VIEWER_ADDR_INFO *addr_info = (MSG_VIEWER_ADDR_INFO *)elm_object_item_data_get(it);
+                       addr_info->person_id = msg_viewer_util_get_index_by_recipient(addr_info->address);
+                       if (addr_info->person_id > 0) {
+                               bzero(addr_info->name, sizeof(addr_info->name));
+                               msg_viewer_util_get_display_name_by_index(addr_info->person_id, addr_info->name, sizeof(addr_info->name));
+                       }
+                       elm_object_item_data_set(it, addr_info);
+                       elm_genlist_item_update(it);
+
+                       it = elm_genlist_item_next_get(it);
+               }
+       }
+}
+
+MSG_BOOL msg_ui_viewer_get_msg_content_list(void *data, bool exclude_text)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "view_data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETVM_IF(vpd->mms_t == NULL, FALSE, "mms_t is NULL");
+
+       int page_idx = 0;
+       int page_count = 0;
+       int media_count = 0;
+       int mediaType;
+       int total_media_order = 0;
+       int ref_attach_count = 0;
+
+       Eina_List *ref_attach_list = NULL;
+
+       char strFileName[MSG_FILENAME_LEN_MAX] = {0,};
+       char strFilePath[MSG_FILEPATH_LEN_MAX] = {0,};
+       char strContentType[DEF_BUF_LEN_S] = {0,};
+
+       /*get insert count*/
+       msg_list_handle_t pagelist_info = NULL;
+       msg_get_list_handle(vpd->mms_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
+       page_count = (msg_list_length(pagelist_info) > 0) ? msg_list_length(pagelist_info) : 0;
+
+       for (page_idx = 0; page_idx < page_count; ++page_idx) {
+               msg_struct_t page_info = NULL;
+               page_info = (msg_struct_t)msg_list_nth_data(pagelist_info, page_idx);
+               if (!page_info) {
+                       D_EMSG("page_info is NULL");
+                       continue;
+               }
+
+               msg_list_handle_t medialist_info = NULL;
+               msg_get_list_handle(page_info, MSG_MMS_PAGE_MEDIA_LIST_HND, (void **)&medialist_info);
+               media_count = (msg_list_length(medialist_info) > 0) ? msg_list_length(medialist_info) : 0;
+               D_MSG("page = %d, page media count = %d", page_idx, media_count);
+
+               int media_idx = 0;
+               for (media_idx = 0; media_idx < media_count; ++media_idx) {
+                       int page_ref_attach_count = 0;
+                       msg_struct_t media_info = NULL;
+                       const char *filename = NULL;
+                       int len = 0;
+                       media_info = (msg_struct_t)msg_list_nth_data(medialist_info, media_idx);
+
+                       if (!media_info) {
+                               D_EMSG("%d media_info is NULL", media_idx);
+                               continue;
+                       }
+
+                       bzero(strFileName, sizeof(strFileName));
+                       bzero(strFilePath, sizeof(strFilePath));
+
+                       msg_get_str_value(media_info, MSG_MMS_MEDIA_FILENAME_STR, strFileName, sizeof(strFileName));
+                       msg_get_str_value(media_info, MSG_MMS_MEDIA_FILEPATH_STR, strFilePath, sizeof(strFilePath));
+
+                       D_SEC_MSG("insert media file name: %s", strFileName);
+                       D_SEC_MSG("attachment file path: %s", strFilePath);
+
+                       MSG_VIEWER_MEDIA_INFO_S *pInsert_info = (MSG_VIEWER_MEDIA_INFO_S *)calloc(1, sizeof(MSG_VIEWER_MEDIA_INFO_S));
+                       if (pInsert_info == NULL) {
+                               D_EMSG("calloc is failed");
+                               goto FREE_LIST;
+                       } else {
+                               if (strlen(strFileName)) {
+                                       strncpy(pInsert_info->pfile_name, strFileName, MSG_VIEWER_FILENAME_MAX_LEN);
+                               } else {
+                                       const char *file_name = NULL;
+                                       file_name = msg_file_file_get(strFilePath);
+                                       if (file_name)
+                                               strncpy(pInsert_info->pfile_name, file_name, MSG_VIEWER_FILENAME_MAX_LEN);
+                                       else
+                                               strncpy(pInsert_info->pfile_name, strFilePath, MSG_VIEWER_FILENAME_MAX_LEN);
+                               }
+
+                               strncpy(pInsert_info->pfile_path, strFilePath, MSG_VIEWER_FILEPATH_MAX_LEN);
+                               filename = msg_file_file_get(strFilePath);
+                               if (filename && filename[0] != '\0') {
+                                       len = strlen(filename);
+                                       D_MSG("lenght of file name = %d", len);
+                               }
+                               pInsert_info->pfile_size = msg_file_size_get(strFilePath);
+                               pInsert_info->page_index = page_idx;
+                               pInsert_info->view_data = data;
+
+                               CONTENT_DISPLAY_TYPE content_type;
+
+                               msg_get_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
+                               D_MSG("mediaType =%d", mediaType);
+                               switch (mediaType) {
+                                       case MMS_SMIL_MEDIA_TEXT:
+                                               msg_get_str_value(media_info, MSG_MMS_MEDIA_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+                                               content_type = msg_ui_content_get_display_type(strContentType);
+
+                                               if (exclude_text) {
+                                                       if (content_type != DISPLAY_TEXT) {
+                                                               page_ref_attach_count++;
+                                                               pInsert_info->page_index = MSG_VIEWER_PAGE_INDEX_NONE;
+                                                               pInsert_info->media_index = ref_attach_count++;
+                                                               pInsert_info->total_count = 0;
+                                                               if (len >= 3 && (!strncmp(&filename[len - 3], "ics", 3) || !strncmp(&filename[len - 3], "vcf", 3) || !strncmp(&filename[len - 3], "vcs", 3)))
+                                                                       pInsert_info->media_type = MSG_VIEWER_MEDIA_ATTACH;
+                                                               ref_attach_list = eina_list_append(ref_attach_list, pInsert_info);
+                                                               D_MSG("Not available display text type!! (eg. text/x-vCard, text/x-vCalendar)");
+                                                               break;
+                                                       } else {
+                                                               D_EMSG("%d pMedia is TEXT type and has content type %s, skip adding list", media_idx, strContentType);
+                                                               free(pInsert_info);
+                                                               pInsert_info = NULL;
+                                                               break;
+                                                       }
+                                               } else {
+                                                       pInsert_info->media_type = MSG_VIEWER_MEDIA_TEXT;
+                                                       pInsert_info->media_subtype = MSG_VIEWER_MEDIA_TEXT;
+                                               }
+                                               break;
+                                       case MMS_SMIL_MEDIA_IMG:
+                                               pInsert_info->media_type = MSG_VIEWER_MEDIA_IMG;
+                                               pInsert_info->media_subtype = MSG_VIEWER_MEDIA_IMG;
+                                               break;
+                                       case MMS_SMIL_MEDIA_AUDIO:
+                                               pInsert_info->media_type = MSG_VIEWER_MEDIA_AUDIO;
+                                               pInsert_info->media_subtype = MSG_VIEWER_MEDIA_AUDIO;
+                                               break;
+                                       case MMS_SMIL_MEDIA_VIDEO:
+                                               pInsert_info->media_type = MSG_VIEWER_MEDIA_VIDEO;
+                                               pInsert_info->media_subtype = MSG_VIEWER_MEDIA_VIDEO;
+                                               break;
+                                       case MMS_SMIL_MEDIA_ANIMATE:
+                                               pInsert_info->media_type = MSG_VIEWER_MEDIA_ANIMATE;
+                                               pInsert_info->media_subtype = MSG_VIEWER_MEDIA_ANIMATE;
+                                               break;
+                                       case MMS_SMIL_MEDIA_IMG_OR_VIDEO:
+                                               bzero(strContentType, sizeof(strContentType));
+                                               msg_get_str_value(media_info, MSG_MMS_MEDIA_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+                                               content_type = msg_ui_content_get_display_type(strContentType);
+
+                                               if (content_type == DISPLAY_TEXT) {
+                                                       pInsert_info->media_type = MSG_VIEWER_MEDIA_TEXT;
+                                                       pInsert_info->media_subtype = MSG_VIEWER_MEDIA_TEXT;
+                                               } else if (content_type == DISPLAY_IMAGE) {
+                                                       pInsert_info->media_type = MSG_VIEWER_MEDIA_IMG;
+                                                       pInsert_info->media_subtype = MSG_VIEWER_MEDIA_IMG;
+                                               } else if (content_type == DISPLAY_VIDEO) {
+                                                       pInsert_info->media_type = MSG_VIEWER_MEDIA_VIDEO;
+                                                       pInsert_info->media_subtype = MSG_VIEWER_MEDIA_VIDEO;
+                                               } else if (content_type == DISPLAY_AUDIO) {
+                                                       pInsert_info->media_type = MSG_VIEWER_MEDIA_AUDIO;
+                                                       pInsert_info->media_subtype = MSG_VIEWER_MEDIA_AUDIO;
+                                               } else {
+                                                       page_ref_attach_count++;
+                                                       pInsert_info->page_index = MSG_VIEWER_PAGE_INDEX_NONE;
+                                                       pInsert_info->media_index = ref_attach_count++;
+                                                       pInsert_info->total_count = 0;
+                                                       if (len >= 3 && (!strncmp(&filename[len - 3], "ics", 3) || !strncmp(&filename[len - 3], "vcf", 3) || !strncmp(&filename[len - 3], "vcs", 3)))
+                                                                       pInsert_info->media_type = MSG_VIEWER_MEDIA_ATTACH;
+                                                       ref_attach_list = eina_list_append(ref_attach_list, pInsert_info);
+                                               }
+                                               break;
+                                       default:
+                                               D_MSG("%d type is not handled in switch!", mediaType);
+                                               pInsert_info->media_type = MSG_VIEWER_MEDIA_INVALID;
+                                               pInsert_info->media_subtype = MSG_VIEWER_MEDIA_INVALID;
+                                               pInsert_info->page_index = MSG_VIEWER_PAGE_INDEX_NONE;
+                                               break;
+                               }
+
+                               /*append insert item list*/
+                               if (pInsert_info && pInsert_info->page_index != MSG_VIEWER_PAGE_INDEX_NONE) {
+                                       pInsert_info->media_index = total_media_order++;
+                                       vpd->insert_list = eina_list_append(vpd->insert_list, pInsert_info);
+                                       vpd->insert_count++;
+                               }
+                       }
+               }
+       }
+
+       D_MSG("Total %d insert item(s) added", vpd->insert_count);
+
+       /* set total_count for each media list item */
+       int index = 0;
+       MSG_VIEWER_MEDIA_INFO_S *media_info = NULL;
+       for (index = 0; index < vpd->insert_count; index++) {
+               media_info = eina_list_nth(vpd->insert_list, index);
+               if (media_info != NULL)
+                       media_info->total_count = vpd->insert_count;
+       }
+
+       /*get attached content list*/
+       int attach_idx = 0;
+       int attach_count = 0;
+       bool is_oneTextAttached = false;
+
+       /*get attach count*/
+       msg_list_handle_t attachlist_info = NULL;
+       msg_get_list_handle(vpd->mms_t, MSG_MMS_ATTACH_LIST_HND, (void **)&attachlist_info);
+
+       if (attachlist_info)
+               attach_count = msg_list_length(attachlist_info);
+
+       if (page_count == 0) {
+               while (attach_idx < attach_count) {
+                       msg_struct_t attach_info = (msg_struct_t)msg_list_nth_data(attachlist_info, attach_idx++);
+                       msg_get_int_value(attach_info, MSG_MMS_ATTACH_MIME_TYPE_INT, &mediaType);
+
+                       if (mediaType == MIME_TEXT_TXT || mediaType == MIME_TEXT_PLAIN) {
+                               if (!is_oneTextAttached) {
+                                       is_oneTextAttached = true;
+                               } else {
+                                       is_oneTextAttached = false;
+                                       break;
+                               }
+                       }
+               }
+       }
+
+       for (attach_idx = 0; attach_idx < attach_count; ++attach_idx) {
+               msg_struct_t attach_info = NULL;
+
+               attach_info = (msg_struct_t)msg_list_nth_data(attachlist_info, attach_idx);
+
+               CONTENT_DISPLAY_TYPE content_type;
+
+               if (attach_info == NULL) {
+                       D_EMSG("pAttach is NULL");
+                       continue;
+               }  else {
+                       bzero(strFileName, sizeof(strFileName));
+                       bzero(strFilePath, sizeof(strFilePath));
+
+                       msg_get_str_value(attach_info, MSG_MMS_ATTACH_FILENAME_STR, strFileName, sizeof(strFileName));
+                       msg_get_str_value(attach_info, MSG_MMS_ATTACH_FILEPATH_STR, strFilePath, sizeof(strFilePath));
+
+                       D_SEC_MSG("attachment file name: %s", strFileName);
+                       D_SEC_MSG("attachment file path: %s", strFilePath);
+
+                       msg_get_int_value(attach_info, MSG_MMS_ATTACH_MIME_TYPE_INT, &mediaType);
+
+                       if (is_oneTextAttached && (mediaType == MIME_TEXT_TXT || mediaType == MIME_TEXT_PLAIN)) {
+                               D_MSG("Multipart mixed message has 1 text attachment, so it'll displayed in the page layout!!");
+                               continue;
+                       }
+
+                       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)calloc(1, sizeof(MSG_VIEWER_MEDIA_INFO_S));
+                       if (pAttach_info == NULL) {
+                               D_EMSG("calloc is failed");
+                               goto FREE_LIST;
+                       } else {
+                               if (strlen(strFileName)) {
+                                       strncpy(pAttach_info->pfile_name, strFileName, MSG_VIEWER_FILENAME_MAX_LEN);
+                               } else {
+                                       const char *file_name = NULL;
+                                       file_name = msg_file_file_get(strFilePath);
+                                       if (file_name)
+                                               strncpy(pAttach_info->pfile_name, file_name, MSG_VIEWER_FILENAME_MAX_LEN);
+                                       else
+                                               strncpy(pAttach_info->pfile_name, strFilePath, MSG_VIEWER_FILENAME_MAX_LEN);
+                               }
+
+                               strncpy(pAttach_info->pfile_path, strFilePath, MSG_VIEWER_FILEPATH_MAX_LEN);
+
+                               pAttach_info->pfile_size = msg_file_size_get(strFilePath);
+                               pAttach_info->media_index = attach_idx + ((ref_attach_count > 0) ? ref_attach_count : 0);
+                               pAttach_info->total_count = attach_count + ((ref_attach_count > 0) ? ref_attach_count : 0);
+                               pAttach_info->media_type = MSG_VIEWER_MEDIA_ATTACH;
+
+                               bzero(strContentType, sizeof(strContentType));
+                               msg_get_str_value(attach_info, MSG_MMS_MEDIA_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+                               content_type = msg_ui_content_get_display_type(strContentType);
+
+                               if (content_type == DISPLAY_TEXT)
+                                       pAttach_info->media_subtype = MSG_VIEWER_MEDIA_TEXT;
+                               else if (content_type == DISPLAY_IMAGE)
+                                       pAttach_info->media_subtype = MSG_VIEWER_MEDIA_IMG;
+                               else if (content_type == DISPLAY_VIDEO)
+                                       pAttach_info->media_subtype = MSG_VIEWER_MEDIA_VIDEO;
+                               else if (content_type == DISPLAY_AUDIO)
+                                       pAttach_info->media_subtype = MSG_VIEWER_MEDIA_AUDIO;
+
+                               pAttach_info->page_index = MSG_VIEWER_PAGE_INDEX_NONE;
+                               pAttach_info->view_data = data;
+
+                               /*append attach list*/
+                               vpd->attach_list = eina_list_append(vpd->attach_list, pAttach_info);
+                       }
+               }
+       }
+
+       vpd->attach_count = ((is_oneTextAttached) ? attach_count - 1 : attach_count) + ref_attach_count;
+
+       if (ref_attach_list) {
+               if (ref_attach_list) {
+                       Eina_List *l = NULL;
+                       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = NULL;
+                       EINA_LIST_FOREACH(vpd->attach_list, l, pAttach_info) {
+                               ref_attach_list = eina_list_append(ref_attach_list, pAttach_info);
+                               vpd->attach_list = eina_list_remove(vpd->attach_list, pAttach_info);
+                       }
+
+                       if (vpd->attach_list)
+                               eina_list_free(vpd->attach_list);
+
+                       vpd->attach_list = ref_attach_list;
+               }
+       }
+
+       D_MSG("Total %d attach(s) added", vpd->attach_count);
+
+       D_LEAVE;
+
+       return TRUE;
+
+FREE_LIST:
+       D_MSG("Free insert item list");
+       if (vpd->insert_list) {
+               int index = 0;
+               int ntotal = 0;
+               ntotal = eina_list_count(vpd->insert_list);
+               for (index = 0; index < ntotal; index++) {
+                       MSG_VIEWER_MEDIA_INFO_S *pMedia_info = eina_list_nth(vpd->insert_list, index);
+                       if (pMedia_info) {
+                               free(pMedia_info);
+                               pMedia_info = NULL;
+                       }
+               }
+               eina_list_free(vpd->insert_list);
+               vpd->insert_list = NULL;
+       }
+
+       D_MSG("Free attachment list");
+       if (vpd->attach_list) {
+               int index = 0;
+               int ntotal = 0;
+               ntotal = eina_list_count(vpd->attach_list);
+               for (index = 0; index < ntotal; index++) {
+                       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = eina_list_nth(vpd->attach_list, index);
+                       if (pAttach_info) {
+                               free(pAttach_info);
+                               pAttach_info = NULL;
+                       }
+               }
+               eina_list_free(vpd->attach_list);
+               vpd->attach_list = NULL;
+       }
+
+       return FALSE;
+}
+
+
+MSG_BOOL msg_ui_viewer_create_player_view(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETVM_IF(vpd->msg_t == NULL, FALSE, "vpd->msg_t is NULL");
+       D_MSG_RETVM_IF(vpd->mms_t == NULL, FALSE, "vpd->mms_t is NULL");
+       MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
+       Evas_Object *layout = NULL;
+       MSG_VIEWER_LAUNCH_MODE_E launch_mode = MSG_VIEWER_INVALID_MODE;
+
+       int sm_error = 0;
+        /* set sound session type as EXCLUSIVE, cause sound path should not be interfered while in playing media */
+        if ((sm_error = sound_manager_set_session_type(SOUND_SESSION_TYPE_MEDIA)) != SOUND_MANAGER_ERROR_NONE) {
+                D_EMSG("sound_manager_set_session_type() is failed, err= %d", sm_error);
+                return FALSE;
+        }
+
+        if ((sm_error = sound_manager_set_media_session_option(SOUND_SESSION_OPTION_PAUSE_OTHERS_WHEN_START, SOUND_SESSION_OPTION_INTERRUPTIBLE_DURING_PLAY)) != SOUND_MANAGER_ERROR_NONE) {
+                D_EMSG("sound_manager_set_media_session_option() is failed, err = %d", sm_error);
+                return FALSE;
+        }
+       /*get message information like bgcolor, insert and attach count
+         *it should be called before __msg_ui_viewer_create_control_toolbar*/
+       if (__msg_ui_viewer_play_view_get_message_info(vpd) == FALSE)
+               D_EMSG("__msg_ui_viewer_play_view_get_content_count is failed");
+
+       evas_object_smart_callback_add(vpd->main_window, "wm,rotation,changed", __msg_ui_viewer_play_view_rotation_cb, vpd);
+
+       int rotate = elm_win_rotation_get(vpd->main_window);
+       vpd->is_rotated = (rotate == 90 || rotate == 270) ? true : false;
+
+       layout = msg_ui_viewer_get_main_layout(vpd->viewer_main);
+       D_MSG_RETVM_IF(layout == NULL, FALSE, "layout is NULL");
+
+       /* create naviframe */
+       if (!vpd->navi_frame) {
+               vpd->navi_frame = msg_ui_viewer_create_navigation_layout(layout);
+               D_MSG_RETVM_IF(vpd->navi_frame == NULL, FALSE, "vpd->navi_frame is NULL");
+               msg_ui_viewer_set_navi_frame(vpd->viewer_main, vpd->navi_frame);
+       } else {
+               D_MSG("navi_frame is already created");
+       }
+
+       /*create play layout*/
+       if (__msg_ui_viewer_create_content_layout(vpd) == FALSE)
+               return FALSE;
+
+       msg_ui_viewer_get_viewer_launch_mode(vpd->viewer_main, &launch_mode);
+
+       /* set title text & title button */
+       if (launch_mode == MSG_VIEWER_MMS_PREVIEW_MODE) {
+               /* create naviframe item and push */
+               vpd->navi_item = elm_naviframe_item_push(vpd->navi_frame, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_HEADER_PREVIEW"), NULL, NULL, vpd->play_layout, NULL);
+       } else {
+               /* create naviframe item and push */
+               vpd->navi_item = elm_naviframe_item_push(vpd->navi_frame, NULL, NULL, NULL, vpd->play_layout, "empty");
+
+               /* create naviframe title layout and set */
+               __msg_ui_viewer_create_title_layout(vpd);
+       }
+
+       elm_naviframe_item_pop_cb_set(vpd->navi_item, msg_ui_viewer_back_button_cb, (void *)vpd);
+
+       /* font size set */
+       msg_ui_viewer_apply_font_size(vpd);
+       /* create subject & index layout */
+       __msg_ui_viewer_create_subject_index_layout(vpd);
+       /* create control toolbar */
+       __msg_ui_viewer_create_control_toolbar(vpd);
+       /* connect handlers */
+       msg_ui_viewer_connect_handler(vpd);
+
+       /* for checking focus */
+       vpd->focus_in = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, msg_ui_viewer_focused_in_cb, vpd);
+       vpd->focus_out = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, msg_ui_viewer_focused_out_cb, vpd);
+
+       /* create smil rendering layout */
+       if (msg_smil_create_smil_player_layout(vpd->SmilHandle, vpd->play_layout) == FALSE)
+               return FALSE;
+
+       SMIL_POSITION_S left_top = {0,};
+       SMIL_POSITION_S right_bottom = {0,};
+       __msg_ui_viewer_get_layout_size(vpd, &left_top, &right_bottom);
+
+       if (msg_smil_set_smil_player_layout_size(vpd->SmilHandle, &left_top, &right_bottom) == FALSE)
+               return FALSE;
+
+       /*register help page show callback to renderer */
+       if (msg_smil_set_smil_player_help_page_cb(vpd->SmilHandle, msg_ui_viewer_help_page_create_list, (void *)vpd) == FALSE)
+               D_EMSG("msg_smil_set_smil_player_help_page_cb is failed");
+
+       /*register change font size callback to render */
+       if (msg_smil_set_smil_player_entry_handle_cb(vpd->SmilHandle, msg_ui_viewer_set_entry_handle_cb) == FALSE)
+               D_EMSG("msg_smil_set_smil_player_entry_handle_cb is failed");
+
+       if (launch_mode == MSG_VIEWER_MMS_PREVIEW_MODE) {
+               err = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_PREVIEW_READY);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", err);
+                       if (err != MSG_ERR_SMIL_UI_DISPLAY_FAIURE)
+                               return FALSE;
+               }
+       } else {
+               err = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_READY);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", err);
+                       if (err != MSG_ERR_SMIL_UI_DISPLAY_FAIURE)
+                               return FALSE;
+               }
+       }
+
+       /* add contact changed cb for CONTACT UPDATE */
+       contacts_db_add_changed_cb(_contacts_contact._uri, __msg_ui_viewer_contact_changed_cb, (void *)vpd);
+
+       D_LEAVE;
+       return TRUE;
+}
+
+MSG_BOOL msg_ui_viewer_show_player_view(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
+
+       /* connect handler again*/
+       msg_ui_viewer_connect_handler(vpd);
+
+       /*change command bar*/
+       if (vpd->play_controller) {
+               edje_object_signal_emit(_EDJ(vpd->play_controller), "pause", "*");
+               msg_ui_viewer_play_controller_create_progressbar(vpd, 0);
+       }
+
+       /* Set title layout */
+       __msg_ui_viewer_create_title_layout(vpd);
+
+       /*play player view*/
+       err = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_PLAY);
+       if (err != MSG_SMIL_SUCCESS) {
+               D_EMSG("msg_smil_on_slide_event_handler failed! : %d", err);
+               return FALSE;
+       }
+
+       device_power_request_lock(POWER_LOCK_DISPLAY, 0);
+
+       D_LEAVE;
+       return TRUE;
+}
+
+Evas_Object *msg_ui_viewer_create_navigation_layout(Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *navi_frame = NULL;
+
+       navi_frame = elm_naviframe_add(parent);
+
+       elm_naviframe_prev_btn_auto_pushed_set(navi_frame, EINA_FALSE);
+       eext_object_event_callback_add(navi_frame, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
+       eext_object_event_callback_add(navi_frame, EEXT_CALLBACK_MORE, eext_naviframe_more_cb, NULL);
+
+       elm_object_part_content_set(parent, "elm.swallow.content", navi_frame);
+       evas_object_show(navi_frame);
+       elm_object_focus_set(navi_frame, EINA_TRUE);
+
+       D_LEAVE;
+       return navi_frame;
+}
+
+void msg_ui_viewer_apply_font_size(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       int index = 0;
+       int font_size = 0;
+       int access_font_index = 0;
+
+       /* get accessibility font index */
+       if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &access_font_index) < 0) {
+               D_EMSG("system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE) is failed !!");
+               access_font_index = MSG_SYS_FONT_SIZE_INDEX_NORMAL;     /* 1 */
+       }
+
+       if (msg_common_get_font_size(&index) == FALSE) {
+               D_EMSG("msg_common_get_font_size() is failed");
+               return;
+       } else {
+               D_MSG("selected font_size index = %d", index);
+       }
+
+       D_MSG("SYSTEM_SETTINGS_KEY_FONT_SIZE = %d", access_font_index);
+
+       font_size = msg_common_get_font_size_from_index(access_font_index);
+
+       /* sync current font size as accessibility font index */
+       if (msg_common_set_font_size(access_font_index) == FALSE)
+               D_EMSG("msg_common_set_font_size(index = %d) is failed !!", access_font_index);
+
+       vpd->font_size = font_size;
+}
+
+void msg_ui_viewer_set_font_size(void *data, MSG_VIEWER_ENTRY_TYPE_E entry_type, MSG_VIEWER_FONT_CHANGE_TYPE_E change_type)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       char font_size_str[DEF_BUF_LEN_S + 1] = {0,};
+
+       int index = 0;
+       if (change_type == MSG_VIEWER_FONT_CHANGE_LOAD_SETTING) {
+               if (msg_common_get_font_size(&index) == FALSE) {
+                       D_EMSG("msg_common_get_font_size() is failed");
+                       return;
+               } else {
+                       D_MSG("selected font_size index = %d", index);
+               }
+               vpd->font_size = msg_common_get_font_size_from_index(index);
+       } else {
+               index = msg_common_get_index_from_font_size(vpd->font_size);
+               D_MSG("use latest updated font, index = %d, size = %d", index, vpd->font_size);
+       }
+
+       if (vpd->render_entry) {
+               int r = 0;
+               int g = 0;
+               int b = 0;
+               int a = 0;
+               D_MSG("entry type = %d", entry_type);
+
+               if (entry_type == MSG_VIEWER_ENTRY_NORMAL_TEXT) {
+                       snprintf(font_size_str, sizeof(font_size_str), "DEFAULT='font_size=%d color=#%02x%02x%02x%02x'", vpd->font_size, COLOR_BLACK);
+               } else {
+                       int hp_font_size = 0;
+
+                       if (index == 1) {
+                               hp_font_size = VIEWER_HELP_PAGE_FONT_SMALL;
+                       } else if (index == 2) {
+                               hp_font_size = VIEWER_HELP_PAGE_FONT_NORMAL;
+                       } else if (index == 3) {
+                               hp_font_size = VIEWER_HELP_PAGE_FONT_LARGE;
+                       } else if (index == 4) {
+                               hp_font_size = VIEWER_HELP_PAGE_FONT_HUGE;
+                       } else if (index == 5) {
+                               hp_font_size = VIEWER_HELP_PAGE_FONT_GIANT;
+                       } else {
+                               D_EMSG("font index is invalid (%d), set normal font size (%d)", index, VIEWER_HELP_PAGE_FONT_NORMAL);
+                               hp_font_size = VIEWER_HELP_PAGE_FONT_NORMAL;
+                       }
+
+                       snprintf(font_size_str, sizeof(font_size_str), "DEFAULT='font_size=%d color=#%02x%02x%02x%02x'", hp_font_size, COLOR_BLACK);
+               }
+
+               D_MSG("font_style_str = (%s)", font_size_str);
+               elm_entry_text_style_user_push(vpd->render_entry, font_size_str);
+       }
+
+       if (vpd->rename_popup_entry) {
+               bzero(font_size_str, sizeof(font_size_str));
+               snprintf(font_size_str, sizeof(font_size_str), "DEFAULT='font_size=%d'", vpd->font_size);
+               elm_entry_text_style_user_push(vpd->rename_popup_entry, font_size_str);
+       }
+}
+
+static MSG_BOOL __msg_ui_viewer_create_content_layout(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       if (!vpd->play_layout) {
+               vpd->play_layout = elm_layout_add(vpd->navi_frame);
+               D_MSG_RETVM_IF(vpd->play_layout == NULL, FALSE, "vpd->play_layout is NULL");
+               elm_layout_file_set(vpd->play_layout, MSG_VIEWER_THEME, "viewer_main");
+               evas_object_size_hint_weight_set(vpd->play_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_show(vpd->play_layout);
+
+               evas_object_event_callback_add(vpd->play_layout, EVAS_CALLBACK_MOUSE_DOWN, msg_ui_viewer_play_layout_mouse_down_cb, (void *)vpd);
+               evas_object_event_callback_add(vpd->play_layout, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_play_layout_mouse_up_cb, (void *)vpd);
+       }
+
+       D_LEAVE;
+       return TRUE;
+}
+
+static void __msg_ui_viewer_create_subject_index_layout(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       D_MSG_RETM_IF(vpd->msg_t == NULL, "vpd->msg_t is NULL");
+       D_MSG_RETM_IF(vpd->mms_t == NULL, "vpd->mms_t is NULL");
+
+       char strSubject[MAX_SUBJECT_LEN] = {0};
+
+       Evas_Object *layout = elm_layout_add(vpd->navi_frame);
+       elm_layout_file_set(layout, MSG_VIEWER_THEME, "subject/pageindex");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(layout);
+       vpd->subject_index_layout = layout;
+
+       /* get subject str */
+       msg_get_str_value(vpd->msg_t, MSG_MESSAGE_SUBJECT_STR, strSubject, MAX_SUBJECT_LEN);
+       D_SEC_MSG("subject text is %s", strSubject);
+
+       char buf[DEF_BUF_LEN_S] = {0,};
+
+       if (strSubject[0] != '\0') {
+               edje_object_part_text_set(_EDJ(vpd->subject_index_layout), "subject/text", strSubject);
+       } else {
+               snprintf(buf, sizeof(buf), "(%s)", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_NO_SUBJECT"));
+               edje_object_part_text_set(_EDJ(vpd->subject_index_layout), "subject/text", buf);
+       }
+
+       elm_object_part_content_set(vpd->play_layout, "viewer.swallow.subject", vpd->subject_index_layout);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_create_control_toolbar(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETM_IF(vpd->msg_t == NULL, "vpd->msg_t is NULL");
+       D_MSG_RETM_IF(vpd->mms_t == NULL, "vpd->mms_t is NULL");
+
+       Evas_Object *more_btn = NULL;
+       MSG_VIEWER_LAUNCH_MODE_E launch_mode = MSG_VIEWER_INVALID_MODE;
+
+       msg_ui_viewer_get_viewer_launch_mode(vpd->viewer_main, &launch_mode);
+
+       if (launch_mode == MSG_VIEWER_MMS_NORMAL_MODE) {
+               /* unset and delete btn objects(init) */
+               more_btn = elm_object_item_part_content_unset(vpd->navi_item, "toolbar_more_btn");
+               if (more_btn)
+                       evas_object_del(more_btn);
+
+               /* More button */
+               more_btn = elm_button_add(vpd->navi_frame);
+               D_MSG_RETM_IF(more_btn == NULL, "more_btn is NULL");
+
+               elm_object_style_set(more_btn, "naviframe/more/default");
+               elm_object_item_part_content_set(vpd->navi_item, "toolbar_more_btn", more_btn);
+               evas_object_smart_callback_add(more_btn, "clicked", msg_ui_viewer_option_create_more_popup, data);
+       }
+}
+
+static void __msg_ui_viewer_title_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       int addr_cnt = msg_viewer_util_get_thread_address_count(vpd->msgHandle, vpd->msg_t);
+
+       if (addr_cnt <= 0) {
+               D_EMSG("invalid address count [%d]", addr_cnt);
+               return;
+       }
+
+       vpd->previous_status = vpd->status;
+       D_MSG("vpd->previous_status = %d", vpd->previous_status);
+
+       /* set player state to pause and update icon */
+       if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PAUSE)) {
+               D_EMSG("msg_ui_viewer_command_play_pause is failed");
+               return;
+       }
+
+       if (addr_cnt == 1) {
+               char *address = NULL;
+               msg_viewer_util_get_thread_nth_address(vpd->msgHandle, vpd->msg_t, 0, &address);
+
+               int pid = msg_viewer_util_get_index_by_recipient((const char *)address);
+
+               if (address)
+                       free(address);
+
+               if (pid > 0) {
+                       if (vpd->from_contact) {
+                               VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vpd->viewer_main;
+                               D_MSG_RETM_IF(vmd == NULL, "vmd is NULL");
+
+                               app_control_h svc_handle = NULL;
+
+                               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                       D_EMSG("app_control_create() is failed");
+                                       return;
+                               }
+
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_DESTROY);
+                               ug_send_result(vmd->viewer_ug, svc_handle);
+                               app_control_destroy(svc_handle);
+
+                               ug_destroy_me(vmd->viewer_ug);
+                               return;
+                       } else {
+                               msg_ui_viewer_option_view_contact_menu(vpd, NULL, NULL);
+                       }
+               } else {
+                       msg_ui_viewer_option_add_to_contact_menu(vpd, NULL, NULL);
+               }
+       } else if (addr_cnt > 1) {
+               msg_ui_viewer_launch_recipient_list_view(vpd);
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_create_title_layout(void *data)
+{
+       D_ENTER;
+
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       if (vpd->navi_title_layout) {
+               elm_object_item_part_content_unset(vpd->navi_item, "title");
+               evas_object_del(vpd->navi_title_layout);
+               vpd->navi_title_layout = NULL;
+       }
+
+       Evas_Object     *title_layout = elm_layout_add(vpd->navi_frame);
+       int rotation = elm_win_rotation_get(vpd->main_window);
+
+
+       elm_layout_file_set(title_layout, MSG_VIEWER_THEME, "title");
+
+       evas_object_size_hint_weight_set(title_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(title_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(title_layout);
+
+       int folder_id = MSG_MAX_FOLDER_ID;
+       char display_name[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+       char title_main_text[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+
+       char *address = NULL;
+       int person_id = 0;
+       int addr_count = 0;
+       bool is_valid_num = false;
+       bool is_valid_email = false;
+       bool is_unknown = false;
+
+       Evas_Object *title_button = NULL;
+
+       msg_get_int_value(vpd->msg_t, MSG_MESSAGE_FOLDER_ID_INT, &folder_id);
+
+       msg_viewer_util_get_thread_nth_address(vpd->msgHandle, vpd->msg_t, 0, &address);
+
+       if (address == NULL || strlen(address) == 0) {
+               is_unknown = true;
+       } else {
+               char *normalized_number = NULL;
+               addr_count = msg_viewer_util_get_thread_address_count(vpd->msgHandle, vpd->msg_t);
+               normalized_number = msg_common_make_normalized_number(address);
+               if (normalized_number) {
+                       is_valid_num = msg_common_is_valid_phone_number(normalized_number);
+
+                       if (!is_valid_num)
+                               is_valid_email = msg_common_is_valid_email_addr(address);
+
+                       if (is_valid_num || is_valid_email)
+                               person_id = msg_viewer_util_get_index_by_recipient(address);
+
+                       free(normalized_number);
+                       normalized_number = NULL;
+               } else {
+                       is_valid_num = msg_common_is_valid_phone_number(address);
+                       is_valid_email = msg_common_is_valid_email_addr(address);
+
+                       if (is_valid_num || is_valid_email)
+                               person_id = msg_viewer_util_get_index_by_recipient(address);
+               }
+       }
+
+       /* Get Main text */
+       if ((is_valid_num || is_valid_email) && !is_unknown) {
+               if (person_id > 0) {
+                       msg_viewer_util_get_display_name_by_index(person_id, display_name, sizeof(display_name));
+
+                       if (display_name[0] != '\0') {
+                               snprintf(title_main_text, sizeof(title_main_text), "%s", display_name);
+                       } else {
+                               D_MSG("Contact added, But there is no display name");
+                               snprintf(title_main_text, sizeof(title_main_text), "%s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_NO_NAME"));
+                       }
+               } else {
+                       if (address)
+                               snprintf(title_main_text, sizeof(title_main_text), "%s", address);
+               }
+       } else {
+               if (!is_unknown && address)
+                       snprintf(title_main_text, sizeof(title_main_text), "%s", address);
+       }
+
+       if ((is_valid_num || is_valid_email) && !is_unknown) {
+               if ((folder_id == MSG_INBOX_ID) || (folder_id == MSG_SPAMBOX_ID)) {
+                       if (person_id > 0) {
+                               /* caller id */
+                       } else {
+                               snprintf(title_main_text, sizeof(title_main_text), "%s", address);
+                       }
+               } else if (folder_id == MSG_OUTBOX_ID || folder_id == MSG_SENTBOX_ID) {
+                       if (addr_count > 1) {
+                               char title_text[DEF_BUF_LEN+1] = {0,};
+                               snprintf(title_text, sizeof(title_text), "%s +%d", title_main_text, addr_count-1);
+                               bzero(title_main_text, sizeof(title_main_text));
+                               strncpy(title_main_text, title_text, sizeof(title_main_text));
+                       }
+               } else {
+                       D_MSG("Invalid type of message folder id = [%d]", folder_id);
+               }
+       }
+
+       if ((!is_valid_num && !is_valid_email) || is_unknown) {
+               if (is_unknown)
+                       elm_object_domain_translatable_part_text_set(title_layout, "title_text", SYSTEM_STRING_PKGNAME, "IDS_COM_BODY_UNKNOWN");
+               else
+                       elm_object_part_text_set(title_layout, "title_text", title_main_text);
+       } else {
+               title_button = elm_button_add(vpd->navi_frame);
+
+               elm_object_theme_set(title_button, vpd->title_th);
+               elm_object_style_set(title_button, "title_button");
+
+               elm_object_text_set(title_button, title_main_text);
+
+               evas_object_show(title_button);
+               elm_object_part_content_set(title_layout, "title_btn", title_button);
+               evas_object_smart_callback_add(title_button, "clicked", __msg_ui_viewer_title_button_clicked_cb, (void *)vpd);
+       }
+
+       if (address)
+               free(address);
+
+       Evas_Object *back_button = msg_common_naviframe_back_button_add(title_layout, vpd->navi_frame);
+       elm_object_part_content_set(title_layout, "back_btn", back_button);
+
+       vpd->navi_title_layout = title_layout;
+       vpd->title_button = title_button;
+
+       elm_object_item_part_content_set(vpd->navi_item, "title", vpd->navi_title_layout);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_get_layout_size(void *data, SMIL_POSITION_S *left_top, SMIL_POSITION_S *right_bottom)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(left_top == NULL, "left_top is NULL");
+       D_MSG_RETM_IF(right_bottom == NULL, "right_bottom is NULL");
+
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       int navi_frame_height = 0;
+       int window_width = 0;
+       int window_height = 0;
+
+       /*get window size*/
+       elm_win_screen_size_get(vpd->main_window, NULL, NULL, &window_width, &window_height);
+       vpd->window_width = window_width;
+       vpd->window_height = window_height;
+
+       /*get navi_frame height*/
+       double scale = elm_config_scale_get();
+       D_MSG("scale = %lf", scale);
+
+       navi_frame_height = (int)(scale * VIEWER_NAVI_FRAME_HEIGHT);
+       D_SEC_MSG("navi_frame_height = %d", navi_frame_height);
+
+       left_top->x = 0;
+       left_top->y = navi_frame_height;
+       right_bottom->x = window_width;
+       right_bottom->y = window_height;
+
+       D_LEAVE;
+}
+
+static MSG_BOOL __msg_ui_viewer_play_view_get_message_info(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       /*get the SMIL content*/
+       if (!vpd->mms_t) {
+               D_EMSG("mms data struct is null");
+               return FALSE;
+       }
+
+       /* get insert and attach list except for TEXT media */
+       msg_ui_viewer_get_msg_content_list(vpd, true);
+
+       D_LEAVE;
+
+       return TRUE;
+}
+
+static void __msg_ui_viewer_update_title_layout(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       int addr_count = 0;
+       char display_name[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+       char title_main_text[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+       char *address = NULL;
+       int person_id = 0;
+
+       bool is_valid_num = false;
+       bool is_valid_email = false;
+       bool is_unknown = false;
+       Evas_Object *icon = NULL;
+
+       if (vpd->navi_title_layout == NULL) {
+               D_EMSG("navi_title_layout is NULL!!");
+               return;
+       }
+
+       if (vpd->title_button) {
+               icon = elm_object_part_content_unset(vpd->title_button, "title_icon");
+               if (icon) {
+                       evas_object_del(icon);
+                       icon = NULL;
+               }
+       }
+
+       msg_viewer_util_get_thread_nth_address(vpd->msgHandle, vpd->msg_t, 0, &address);
+
+       if (address == NULL || strlen(address) == 0) {
+               is_unknown = true;
+       } else {
+               char *normalized_number = NULL;
+               addr_count = msg_viewer_util_get_thread_address_count(vpd->msgHandle, vpd->msg_t);
+               normalized_number = msg_common_make_normalized_number(address);
+               if (normalized_number) {
+                       is_valid_num = msg_common_is_valid_phone_number(normalized_number);
+
+                       if (is_valid_num)
+                               person_id = msg_viewer_util_get_index_by_recipient(address);
+
+                       free(normalized_number);
+                       normalized_number = NULL;
+               } else {
+                       is_valid_num = msg_common_is_valid_phone_number(address);
+                       is_valid_email = msg_common_is_valid_email_addr(address);
+
+                       if (is_valid_num || is_valid_email)
+                               person_id = msg_viewer_util_get_index_by_recipient(address);
+               }
+       }
+
+       /* Get Main text */
+       if ((is_valid_num || is_valid_email) && !is_unknown) {
+               if (person_id > 0) {
+                       msg_viewer_util_get_display_name_by_index(person_id, display_name, sizeof(display_name));
+
+                       if (display_name[0] != '\0') {
+                               snprintf(title_main_text, sizeof(title_main_text), "%s", display_name);
+                       } else {
+                               D_MSG("Contact added, But there is no display name");
+                               snprintf(title_main_text, sizeof(title_main_text), "%s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_NO_NAME"));
+                       }
+               } else {
+                       if (address)
+                               snprintf(title_main_text, sizeof(title_main_text), "%s", address);
+               }
+       } else {
+               if (!is_unknown && address)
+                       snprintf(title_main_text, sizeof(title_main_text), "%s", address);
+       }
+
+       if ((is_valid_num || is_valid_email) && !is_unknown) {
+               int folder_id = MSG_MAX_FOLDER_ID;
+               msg_get_int_value(vpd->msg_t, MSG_MESSAGE_FOLDER_ID_INT, &folder_id);
+
+               if (folder_id == MSG_OUTBOX_ID || folder_id == MSG_SENTBOX_ID) {
+                       icon = elm_icon_add(vpd->navi_title_layout);
+                       if (addr_count > 1) {
+                               char title_text[DEF_BUF_LEN+1] = {0,};
+                               snprintf(title_text, sizeof(title_text), "%s +%d", title_main_text, addr_count-1);
+                               bzero(title_main_text, sizeof(title_main_text));
+                               strncpy(title_main_text, title_text, sizeof(title_main_text));
+                               elm_image_file_set(icon, MSG_IMAGES_EDJ, MSG_TITLE_THUMB_STYLE_GROUP);
+                       } else {
+                               if (person_id > 0) {
+                                       /* caller id */
+                                       contacts_record_h record = NULL;
+                                       char *thumb_path = NULL;
+                                       int ct_ret = CONTACTS_ERROR_NONE;
+
+                                       ct_ret = contacts_db_get_record(_contacts_person._uri, person_id, &record);
+                                       if (ct_ret != CONTACTS_ERROR_NONE) {
+                                               D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+                                               contacts_record_destroy(record, true);
+                                               elm_image_file_set(icon, MSG_IMAGES_EDJ, MSG_TITLE_THUMB_STYLE_CONTACT);
+                                       } else {
+                                               contacts_record_get_str(record, _contacts_person.image_thumbnail_path, &thumb_path);
+                                               if (thumb_path && thumb_path[0] != '\0') {
+                                                       elm_image_file_set(icon, thumb_path, NULL);
+                                                       free(thumb_path);
+                                               } else {
+                                                       elm_image_file_set(icon, MSG_IMAGES_EDJ, MSG_TITLE_THUMB_STYLE_CONTACT);
+                                               }
+                                               contacts_record_destroy(record, true);
+                                       }
+                               } else {
+                                       elm_image_file_set(icon, MSG_IMAGES_EDJ, MSG_TITLE_THUMB_STYLE_CONTACT);
+                               }
+                       }
+               } else {
+                       D_MSG("Invalid type of message folder id = [%d]", folder_id);
+               }
+       }
+
+       if ((!is_valid_num && !is_valid_email) || is_unknown) {
+               if (is_unknown)
+                       elm_object_domain_translatable_part_text_set(vpd->navi_title_layout, "title_text", SYSTEM_STRING_PKGNAME, "IDS_COM_BODY_UNKNOWN");
+               else
+                       elm_object_part_text_set(vpd->navi_title_layout, "title_text", title_main_text);
+       } else {
+               if (addr_count == 1) {
+                       if (display_name[0] != '\0') {
+                               elm_object_part_text_set(vpd->title_button, "elm.text", display_name);
+
+                               edje_object_signal_emit(_EDJ(vpd->title_button), "show,subtitle", "");
+                               elm_object_part_text_set(vpd->title_button, "elm.text.subtitle", address);
+                       } else {
+                               elm_object_part_text_set(vpd->title_button, "elm.text", address);
+                               edje_object_signal_emit(_EDJ(vpd->title_button), "hide,subtitle", "");
+                       }
+               } else if (addr_count > 1) {
+                       char title_text[DEF_BUF_LEN+1] = {0,};
+                       if (display_name[0] != '\0') {
+                               snprintf(title_text, sizeof(title_text), "%s +%d", display_name, addr_count-1);
+                       } else {
+                               snprintf(title_text, sizeof(title_text), "%s +%d", address, addr_count-1);
+                       }
+
+                       elm_object_part_text_set(vpd->title_button, "elm.text", title_text);
+                       edje_object_signal_emit(_EDJ(vpd->title_button), "hide,subtitle", "");
+               } else {
+                       elm_object_domain_translatable_part_text_set(vpd->title_button, "elm.text", SYSTEM_STRING_PKGNAME, "IDS_COM_BODY_UNKNOWN");
+                       edje_object_signal_emit(_EDJ(vpd->title_button), "hide,subtitle", "");
+               }
+       }
+
+       if (address)
+               free(address);
+
+       D_LEAVE;
+
+       return;
+}
+
+void msg_ui_viewer_show_popup(void *data, Evas_Object *parent, char *pcontent)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(parent == NULL, "parent is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       Evas_Object *popup = NULL;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       popup = elm_popup_add(parent);
+       D_MSG_RETM_IF(popup == NULL, "popup is NULL");
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+
+       vpd->popup = popup;
+       vpd->popup_type = MSG_VIEWER_NORMAL_POPUP;
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       if (pcontent) {
+               elm_object_text_set(popup, pcontent);
+               elm_popup_timeout_set(popup, 2);
+               evas_object_smart_callback_add(popup, "block,clicked", msg_ui_viewer_popup_block_clicked_cb, vpd);
+               evas_object_smart_callback_add(popup, "timeout", msg_ui_viewer_popup_timeout_cb, vpd);
+       } else {
+               evas_object_del(vpd->popup);
+               vpd->popup = NULL;
+               vpd->popup_type = MSG_VIEWER_POPUP_NONE;
+               return;
+       }
+
+       evas_object_show(popup);
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_popup_destroy(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       D_MSG("popup_type = %d", vpd->popup_type);
+
+       if (vpd->popup) {
+               if (vpd->popup_type != MSG_VIEWER_MENU_CTX_POPUP && \
+                       vpd->popup_type != MSG_VIEWER_RENAME_ATTACHMENT_POPUP) {
+                       void *popup_data = evas_object_data_del(vpd->popup, "popup_data");
+                       if (popup_data) {
+                               D_SEC_MSG("Freed popup_data = 0x%x", popup_data);
+                               free(popup_data);
+                       }
+                       evas_object_event_callback_del(vpd->popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_play_view_popup_mouseup_cb);
+                       eext_object_event_callback_del(vpd->popup, EEXT_CALLBACK_BACK, msg_ui_viewer_play_view_popup_back_cb);
+
+                       evas_object_del(vpd->popup);
+                       vpd->popup = NULL;
+                       vpd->popup_type = MSG_VIEWER_POPUP_NONE;
+
+                       /* play viewer again if previous status was PLAY */
+                       if (vpd->auto_resume_state && vpd->status == MSG_VIEWER_PAUSE && vpd->previous_status == MSG_VIEWER_PLAY) {
+                               if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PLAY))
+                                       D_EMSG("msg_ui_viewer_command_play_pause is failed");
+                       }
+               } else if (vpd->popup_type == MSG_VIEWER_MENU_CTX_POPUP) {
+                       evas_object_del(vpd->popup);
+
+                       vpd->popup = NULL;
+                       vpd->popup_type = MSG_VIEWER_POPUP_NONE;
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_list_popup_size_min_set(void *data)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       Evas_Object *layout = NULL;
+       layout = elm_object_content_get(vpd->popup);
+
+       if (vpd->is_rotated) {
+               if (vpd->popup_item_count > VIEWER_LIST_MAX_DISPLAY_MENU_NUM_H)
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * VIEWER_LIST_MAX_DISPLAY_MENU_NUM_H));
+               else
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * vpd->popup_item_count));
+       } else {
+               if (vpd->popup_item_count > VIEWER_LIST_MAX_DISPLAY_MENU_NUM_V)
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * VIEWER_LIST_MAX_DISPLAY_MENU_NUM_V));
+               else
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * vpd->popup_item_count));
+       }
+}
+
+Eina_Bool msg_ui_viewer_list_popup_size_min_set_idler(void *data)
+{
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       Evas_Object *layout = NULL;
+       layout = elm_object_content_get(vpd->popup);
+
+       if (vpd->is_rotated) {
+               if (vpd->popup_item_count > VIEWER_LIST_MAX_DISPLAY_MENU_NUM_H)
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * VIEWER_LIST_MAX_DISPLAY_MENU_NUM_H));
+               else
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * vpd->popup_item_count));
+       } else {
+               if (vpd->popup_item_count > VIEWER_LIST_MAX_DISPLAY_MENU_NUM_V)
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * VIEWER_LIST_MAX_DISPLAY_MENU_NUM_V));
+               else
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * vpd->popup_item_count));
+       }
+
+       vpd->list_popup_idler = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
diff --git a/viewer/src/msg-ui-viewer-play-view-options.c b/viewer/src/msg-ui-viewer-play-view-options.c
new file mode 100755 (executable)
index 0000000..7fab935
--- /dev/null
@@ -0,0 +1,1420 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-ui-viewer-play-view.h"
+#include "msg-ui-viewer-main.h"
+#include "msg-ui-viewer-utility.h"
+#include "msg-ui-common-utility.h"
+#include "msg-ui-content-utility.h"
+#include "msg-ui-image-resource.h"
+#include "msg-ui-common-app-control.h"
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+#include <device/power.h>
+
+#include <contacts.h>
+
+#include <app_control_internal.h>
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+static void __msg_ui_viewer_option_recipient_list_menu_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_option_recipient_list_menu_del(void *data, Evas_Object *obj);
+
+static void __msg_ui_viewer_option_more_ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_option_delete_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_option_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
+static void __msg_ui_viewer_option_copy_message_text_to_clipboard(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_option_create_msg_detail_popup(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_option_forward_not_available_popup(void *data);
+
+/*==================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+static void msg_ui_viewer_option_save_attachment_menu(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG("vpd->status : %d", vpd->status);
+
+       /* create popup for save attachments and insert items */
+       msg_ui_viewer_create_save_attachments_popup(vpd);
+
+       vpd->previous_status = vpd->status;
+       D_MSG("vpd->previous_status = %d", vpd->previous_status);
+
+       if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PAUSE)) { /* pause */
+               D_EMSG("msg_ui_viewer_command_play_pause is failed");
+               return;
+       }
+       D_LEAVE;
+}
+
+void msg_ui_viewer_option_create_delete_popup(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETM_IF(vpd->msg_t == NULL, "vpd->msg_t is NULL");
+       D_MSG_RETM_IF(vpd->mms_t == NULL, "vpd->mms_t is NULL");
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       Evas_Object *popup = elm_popup_add(vpd->main_window);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE");
+       elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED");
+
+       Evas_Object *btn_cancel = elm_button_add(popup);
+       elm_object_style_set(btn_cancel, "popup");
+       elm_object_domain_translatable_text_set(btn_cancel, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", btn_cancel);
+       evas_object_smart_callback_add(btn_cancel, "clicked", __msg_ui_viewer_option_cancel_clicked_cb, vpd);
+
+       Evas_Object *btn_ok = elm_button_add(popup);
+       elm_object_style_set(btn_ok, "popup");
+       elm_object_domain_translatable_text_set(btn_ok, MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE");
+       elm_object_part_content_set(popup, "button2", btn_ok);
+       evas_object_smart_callback_add(btn_ok, "clicked", __msg_ui_viewer_option_delete_ok_clicked_cb, vpd);
+
+       evas_object_show(popup);
+       vpd->popup = popup;
+       vpd->popup_type = MSG_VIEWER_DELETE_POPUP;
+       evas_object_focus_set(popup, EINA_TRUE);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_play_view_popup_mouseup_cb, vpd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_play_view_popup_back_cb, (void *)vpd);
+
+       /*disconnect mouse handler*/
+       msg_ui_viewer_disconnect_handler(vpd, true);
+
+       vpd->previous_status = vpd->status;
+       D_MSG("vpd->previous_status = %d", vpd->previous_status);
+
+       if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PAUSE)) {
+               D_EMSG("msg_ui_viewer_command_play_pause is failed");
+               return;
+       }
+
+       D_LEAVE;
+}
+
+Eina_Bool msg_ui_viewer_destroy_on_pause(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(!data, EINA_FALSE, "viewer data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
+
+       D_MSG("vpd->mode : %d, vpd->status = %d", vpd->mode, vpd->status);
+
+       if (vpd->mode != MSG_VIEWER_DEFAULT_MODE)
+               return EINA_FALSE;
+
+       if (vpd->status == MSG_VIEWER_PLAY || vpd->status == MSG_VIEWER_PAUSE) {
+               err = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_STOP);
+               if (err != MSG_SMIL_SUCCESS) {
+                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", err);
+               }
+
+               device_power_release_lock(POWER_LOCK_DISPLAY);
+
+               vpd->status = MSG_VIEWER_STOP;
+               msg_ui_viewer_play_controller_update(vpd, MSG_VIEWER_STOP);
+       }
+
+       msg_ui_viewer_disconnect_handler(vpd, true);
+
+       if (!vpd->del_idler)
+               vpd->del_idler = ecore_idler_add(msg_ui_viewer_ug_quit, vpd->viewer_main);
+
+       D_LEAVE;
+
+       return EINA_FALSE;
+}
+
+static void __msg_ui_viewer_option_delete_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       D_MSG_RETM_IF(vpd->msg_t == NULL, "vpd->msg_t is NULL");
+
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vpd->viewer_main;
+       D_MSG_RETM_IF(vmd == NULL, "vmd is NULL");
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       D_MSG("delete msg-id is %d", vpd->msgID);
+
+       app_control_h svc_handle = NULL;
+       char msgId[DEF_BUF_LEN_S] = {0,};
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed");
+       } else {
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_DEL_BUBBLE);
+               snprintf(msgId, DEF_BUF_LEN_S, "%d", vpd->msgID);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, msgId);
+               ug_send_result(vmd->viewer_ug, svc_handle);
+
+               app_control_destroy(svc_handle);
+       }
+
+       D_MSG("vpd->status = %d", vpd->status);
+       if (vpd->status == MSG_VIEWER_PAUSE) {
+               msg_ui_viewer_destroy_on_pause(vpd);
+       } else {
+               /*destroy viewer*/
+               ug_destroy_me(vmd->viewer_ug);
+       }
+
+       return;
+}
+
+static void __msg_ui_viewer_option_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       /* connect handler again*/
+       msg_ui_viewer_connect_handler(vpd);
+
+       /* play viewer again if previous status was PLAY */
+       if (vpd->auto_resume_state && vpd->status == MSG_VIEWER_PAUSE && vpd->previous_status == MSG_VIEWER_PLAY) {
+               if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+                       D_EMSG("msg_ui_viewer_command_play_pause is failed");
+                       return;
+               }
+       }
+}
+
+void msg_ui_viewer_option_forward_menu_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       char buf[DEF_BUF_LEN_S] = { 0, };
+       app_control_h svc_handle;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       int index = 0;
+       int ntotal = eina_list_count(vpd->insert_list);
+       for (index = 0; index < ntotal; index++) {
+               MSG_VIEWER_MEDIA_INFO_S *pMedia_info = eina_list_nth(vpd->insert_list, index);
+               if (pMedia_info) {
+                       int smil_media_type = 0;
+                       switch (pMedia_info->media_type) {
+                               case MSG_VIEWER_MEDIA_IMG:
+                                       smil_media_type = MMS_SMIL_MEDIA_IMG;
+                                       break;
+                               case MSG_VIEWER_MEDIA_AUDIO:
+                                       smil_media_type = MMS_SMIL_MEDIA_AUDIO;
+                                       break;
+                               case MSG_VIEWER_MEDIA_VIDEO:
+                               case MSG_VIEWER_MEDIA_ANIMATE:
+                               case MSG_VIEWER_MEDIA_IMG_OR_VIDEO:
+                                       smil_media_type = MMS_SMIL_MEDIA_VIDEO;
+                                       break;
+                               default:
+                                       smil_media_type = MMS_SMIL_MEDIA_INVALID;
+                                       break;
+                       }
+
+                       if (!msg_ui_content_check_forward_available(vpd->msgHandle, pMedia_info->pfile_path, smil_media_type)) {
+                               __msg_ui_viewer_option_forward_not_available_popup(vpd);
+                               return;
+                       }
+               }
+       }
+
+       /* create and call composer-ug */
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               snprintf(buf, sizeof(buf), "%d", vpd->msgID);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, buf);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_FORWARD);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, MSG_BUNDLE_VALUE_INTERNAL);
+
+               /* disconnect handler first - due to key ungrab senario with composer */
+               msg_ui_viewer_disconnect_handler(vpd, true);
+               /* for checking vpd->mode when layout_cb is called, set mode ahead of creating ug */
+               vpd->mode = MSG_VIEWER_LOAD_COMPOSER_UG;
+
+               ui_gadget_h loaded_ug;
+               loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(vpd->viewer_main), MSG_COMPOSER_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &vpd->cbs);
+
+               if (loaded_ug) {
+                       msg_ui_viewer_set_loaded_ug(vpd->viewer_main, loaded_ug);
+               } else {
+                       msg_ui_viewer_connect_handler(vpd);
+                       vpd->mode = MSG_VIEWER_DEFAULT_MODE;
+               }
+
+               app_control_destroy(svc_handle);
+       }
+
+       D_LEAVE;
+}
+
+static char *__msg_ui_viewer_addr_list_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       const char *label  = (char *) data;
+       D_MSG("label: %s", label);
+       if (!g_strcmp0(part, "elm.text")) {
+               return strdup(label);
+       }
+       return NULL;
+}
+
+void msg_ui_viewer_option_resend_menu_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vpd->viewer_main;
+       char str_id[DEF_BUF_LEN] = {0,};
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       app_control_h svc_handle = NULL;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed");
+               return;
+       }
+
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_RESEND);
+
+       snprintf(str_id, DEF_BUF_LEN, "%d", vpd->msgID);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, str_id);
+
+       ug_send_result(vmd->viewer_ug, svc_handle);
+       app_control_destroy(svc_handle);
+
+       D_MSG("vpd->status = %d", vpd->status);
+
+       if (vpd->status == MSG_VIEWER_PAUSE) {
+               msg_ui_viewer_destroy_on_pause(vpd);
+       } else {
+               msg_ui_viewer_disconnect_handler(vpd, true);
+               /*destroy viewer*/
+               ug_destroy_me(vmd->viewer_ug);
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_option_move_more_ctxpopup(Evas_Object *main_window, Evas_Object *ctx_popup)
+{
+       D_MSG_RETM_IF(main_window == NULL, "main_window is NULL");
+       D_MSG_RETM_IF(ctx_popup == NULL, "ctx is NULL");
+
+       Evas_Coord w = 0;
+       Evas_Coord h = 0;
+
+       elm_win_screen_size_get(main_window, NULL, NULL, &w, &h);
+       int pos = elm_win_rotation_get(main_window);
+
+       if (pos == 0 || pos == 180)
+               evas_object_move(ctx_popup, w/2, h);
+       else if (pos == 90)
+               evas_object_move(ctx_popup, h/2, w);
+       else if (pos == 270)
+               evas_object_move(ctx_popup, h/2, w);
+       else
+               D_MSG("indifferent degree [%d]", pos);
+}
+
+static void __msg_ui_viewer_option_resize_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       if (vpd->popup_type == MSG_VIEWER_MENU_CTX_POPUP)
+               __msg_ui_viewer_option_move_more_ctxpopup(vpd->main_window, vpd->popup);
+}
+
+static void __msg_ui_viewer_option_rotate_more_ctxpopup_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       if (vpd->popup_type == MSG_VIEWER_MENU_CTX_POPUP)
+               __msg_ui_viewer_option_move_more_ctxpopup(vpd->main_window, vpd->popup);
+}
+
+static void __msg_ui_viewer_option_delete_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       Evas_Object *ctx = obj;
+
+       evas_object_event_callback_del_full(vpd->main_window, EVAS_CALLBACK_RESIZE, __msg_ui_viewer_option_resize_more_ctxpopup_cb, vpd);
+       evas_object_smart_callback_del_full(elm_object_top_widget_get(ctx), "rotation,changed", __msg_ui_viewer_option_rotate_more_ctxpopup_cb, vpd);
+       evas_object_smart_callback_del(ctx, "dismissed", __msg_ui_viewer_option_more_ctxpopup_dismissed_cb);
+       evas_object_event_callback_del_full(ctx, EVAS_CALLBACK_DEL, __msg_ui_viewer_option_delete_more_ctxpopup_cb, vpd);
+}
+
+void msg_ui_viewer_option_create_more_popup(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETM_IF(vpd->msg_t == NULL, "vpd->msg_t is NULL");
+       D_MSG_RETM_IF(vpd->mms_t == NULL, "vpd->mms_t is NULL");
+
+       MSG_BOOL hasText = FALSE;
+       int media_count = 0;
+       int folder_id = MSG_MAX_FOLDER_ID;
+
+       if (vpd->popup) {
+               msg_ui_viewer_popup_destroy(vpd);
+       } else {
+               /* set current status to previous status */
+               vpd->previous_status = vpd->status;
+               D_MSG("vpd->previous_status = %d", vpd->previous_status);
+
+               /* set player state to pause*/
+               if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PAUSE)) {
+                       D_EMSG("msg_ui_viewer_command_play_pause is failed");
+                       return;
+               }
+
+               Evas_Object *ctx_popup = NULL;
+               ctx_popup = elm_ctxpopup_add(vpd->main_window);
+               elm_object_style_set(ctx_popup, "more/default");
+               elm_ctxpopup_auto_hide_disabled_set(ctx_popup, EINA_TRUE);
+               evas_object_smart_callback_add(ctx_popup, "dismissed", __msg_ui_viewer_option_more_ctxpopup_dismissed_cb, (void *)vpd);
+               evas_object_event_callback_add(ctx_popup, EVAS_CALLBACK_DEL, __msg_ui_viewer_option_delete_more_ctxpopup_cb, (void *)vpd);
+               evas_object_event_callback_add(vpd->main_window, EVAS_CALLBACK_RESIZE, __msg_ui_viewer_option_resize_more_ctxpopup_cb, (void *)vpd);
+               evas_object_smart_callback_add(elm_object_top_widget_get(ctx_popup), "rotation,changed", __msg_ui_viewer_option_rotate_more_ctxpopup_cb, (void *)vpd);
+
+               /* delete */
+               elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE"), NULL, msg_ui_viewer_option_create_delete_popup, (void *)vpd);
+
+               /* Add Copy Message text menu */
+               if (vpd->smil_eventStatus != NULL) {
+                       /* get msg body */
+                       msg_list_handle_t pagelist_info = NULL;
+                       msg_get_list_handle(vpd->mms_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
+
+                       msg_struct_t page_info = NULL;
+                       page_info = (msg_struct_t)msg_list_nth_data(pagelist_info, vpd->smil_eventStatus->pageIdx);
+                       if (page_info) {
+                               int i = 0;
+                               msg_list_handle_t medialist_info = NULL;
+                               msg_get_list_handle(page_info, MSG_MMS_PAGE_MEDIA_LIST_HND, (void **)&medialist_info);
+                               media_count = (msg_list_length(medialist_info) > 0) ? msg_list_length(medialist_info) : 0;
+
+                               for (i = 0; i < media_count; i++) {
+                                       int mediaType;
+                                       msg_struct_t media_info = NULL;
+                                       media_info = (msg_struct_t)msg_list_nth_data(medialist_info, i);
+
+                                       if (media_info == NULL) {
+                                               D_EMSG("getting media has failed");
+                                               continue;
+                                       }
+
+                                       msg_get_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
+                                       if (mediaType != MMS_SMIL_MEDIA_TEXT)
+                                               continue;
+
+                                       hasText = TRUE;
+                               }
+                       }
+               }
+
+               if (hasText) {
+                       elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TEXT"), NULL, __msg_ui_viewer_option_copy_message_text_to_clipboard, (void *)vpd);
+               }
+
+               /* Add FORWARD menu */
+               elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_FORWARD"), NULL, msg_ui_viewer_option_forward_menu_cb, (void *)vpd);
+
+               /* save attachment */
+               if (vpd->insert_count + vpd->attach_count > 0) {
+                       elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_SAVE_ATTACHMENTS_ABB"), NULL, msg_ui_viewer_option_save_attachment_menu, (void *)vpd);
+               }
+
+               __msg_ui_viewer_option_move_more_ctxpopup(vpd->main_window, ctx_popup);
+               evas_object_show(ctx_popup);
+
+               vpd->popup = ctx_popup;
+               vpd->popup_type = MSG_VIEWER_MENU_CTX_POPUP;
+
+               eext_object_event_callback_add(ctx_popup, EEXT_CALLBACK_MORE, eext_ctxpopup_back_cb, NULL);
+               eext_object_event_callback_add(ctx_popup, EEXT_CALLBACK_BACK, eext_ctxpopup_back_cb, NULL);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_option_email_menu(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETM_IF(vpd->msg_t == NULL, "vpd->msg_t is NULL");
+       D_MSG_RETM_IF(vpd->mms_t == NULL, "vpd->mms_t is NULL");
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       app_control_error_e err = APP_CONTROL_ERROR_NONE;
+
+       msg_list_handle_t addr_list = NULL;
+
+       msg_get_list_handle(vpd->msg_t, MSG_MESSAGE_ADDR_LIST_HND, (void **)&addr_list);
+
+       int addr_count = msg_list_length(addr_list);    /* get address count */
+
+       if (addr_count == 1) {
+               app_control_h svc_handle = NULL;
+               msg_struct_t addr_info = NULL;
+               char szAddress[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+               addr_info = (msg_struct_t)msg_list_nth_data(addr_list, 0);
+
+               msg_get_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, szAddress, MAX_ADDRESS_VAL_LEN);
+
+               char *address = (char *)calloc(1, strlen(szAddress)+1);
+               if (address == NULL) {
+                       D_EMSG("calloc is failed");
+                       return;
+               }
+
+               memcpy(address, szAddress, strlen(szAddress));
+
+               if ((err = app_control_create(&svc_handle)) != APP_CONTROL_ERROR_NONE || svc_handle == NULL) {
+                       D_EMSG("app_control_create() is failed, err = %d", err);
+                       free(address);
+                       return;
+               }
+
+               app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_COMPOSE);
+               app_control_set_app_id(svc_handle, "email-composer-efl");
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RUN_TYPE, MSG_BUNDLE_VALUE_EMAIL_COMPOSE);
+               app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_TO, address);
+
+               Ecore_X_Window win_id = elm_win_xwindow_get(vpd->main_window);
+               app_control_set_window(svc_handle, win_id);
+
+               err = app_control_send_launch_request(svc_handle, NULL, NULL);
+
+               if (err != APP_CONTROL_ERROR_NONE) {
+                       D_EMSG("app_control_send_launch_request is failed, err = %d", err);
+               }
+
+               free(address);
+               app_control_destroy(svc_handle);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_option_view_contact_menu(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       char *address = NULL;
+       msg_viewer_util_get_thread_nth_address(vpd->msgHandle, vpd->msg_t, 0, &address);
+
+       int pid = msg_viewer_util_get_index_by_recipient((const char *)address);
+
+       if (pid > 0) {
+               char szPersonID[DEF_BUF_LEN_S] = { 0, };
+
+               app_control_h svc_handle = NULL;
+               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                       D_EMSG("app_control_create() is failed");
+
+                       if (address)
+                               free(address);
+
+                       return;
+               }
+
+               snprintf(szPersonID, sizeof(szPersonID), "%d", pid);
+
+               D_SEC_MSG("person id = %d", pid);
+
+               app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_VIEW);
+
+               app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_ID, szPersonID);
+
+               app_control_set_mime(svc_handle, APP_CONTROL_MIME_CONTACT);
+               app_control_send_launch_request(svc_handle, NULL, NULL);
+
+               app_control_destroy(svc_handle);
+
+               if (address)
+                       free(address);
+       } else {
+               D_EMSG("current address has no persion id! Check contact synchronization!");
+       }
+}
+
+static void on_execute(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data)
+{
+       D_ENTER;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)user_data;
+       if (vpd && vpd->callee_svc_handle) {
+               app_control_send_terminate_request(vpd->callee_svc_handle);
+               app_control_destroy(vpd->callee_svc_handle);
+               vpd->callee_svc_handle = NULL;
+       }
+}
+
+static void __msg_ui_viewer_update_contact_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       elm_list_item_selected_set(item, 0);
+
+       const char *label = elm_object_item_data_get(item);
+       char title[DEF_THREAD_ADDR_LEN+1] = {0,};
+       snprintf(title, sizeof(title), "%s", elm_object_part_text_get(vpd->popup, "title,text"));
+       msg_ui_viewer_popup_destroy(vpd);
+
+       CONTACT_APPSVC_LAUNCH_DATA app_launch_data;
+       app_launch_data.on_reply = on_execute;
+       app_launch_data.on_reply_data = vpd;
+       vpd->callee_svc_handle = msg_common_appsvc_edit_contact(title, &app_launch_data);
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_add_to_contact_list_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       Elm_Object_Item *item = (Elm_Object_Item *) event_info;
+       elm_list_item_selected_set(item, 0);
+
+       const char *label = elm_object_item_data_get(item);
+       char title[DEF_THREAD_ADDR_LEN+1] = {0,};
+       snprintf(title, sizeof(title), "%s", elm_object_part_text_get(vpd->popup, "title,text"));
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       CONTACT_APPSVC_LAUNCH_DATA app_launch_data;
+       app_launch_data.on_reply = on_execute;
+       app_launch_data.on_reply_data = vpd;
+
+       vpd->callee_svc_handle = msg_common_appsvc_add_phone_num_to_contacts(title, &app_launch_data);
+       D_LEAVE;
+}
+
+
+void msg_ui_viewer_option_call_menu(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       const char *address = elm_object_part_text_get(vpd->popup, "title,text");
+       msg_ui_viewer_popup_destroy(vpd);
+       if (address  != NULL)
+               msg_ui_viewer_launch_voice_call(address, false);
+}
+
+void msg_ui_viewer_option_create_add_to_contact_popup(void *data, const char *address)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       Evas_Object *popup = NULL;
+       Evas_Object *genlist = NULL;
+       int count = 0;
+       msg_ui_viewer_popup_destroy(vpd);
+       if (vpd->call_option_enabled == FALSE) {
+               /* set current status to previous status */
+               vpd->previous_status = vpd->status;
+               D_MSG("vpd->previous_status = %d", vpd->previous_status);
+
+               /* set player state to pause*/
+               if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PAUSE)) {
+                       D_EMSG("msg_ui_viewer_command_play_pause is failed");
+               }
+       }
+       /* create popup */
+       popup = elm_popup_add(vpd->main_window);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       elm_object_part_text_set(popup, "title,text", address);
+
+       genlist = elm_genlist_add(popup);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_object_style_set(genlist, "popup");
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+       elm_genlist_homogeneous_set(genlist, EINA_TRUE);
+
+       vpd->itc_title_click.item_style = "default";
+       vpd->itc_title_click.func.text_get = __msg_ui_viewer_addr_list_gl_text_get;
+       vpd->itc_title_click.func.content_get = NULL;
+       vpd->itc_title_click.func.state_get = NULL;
+       vpd->itc_title_click.func.del = NULL;
+       if (vpd->call_option_enabled == TRUE) {
+               elm_genlist_item_append(genlist, &vpd->itc_title_click, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_MAKE_VOICE_CALL"), NULL, ELM_GENLIST_ITEM_NONE,
+                               msg_ui_viewer_option_call_menu, (void *)vpd);
+               count++;
+               vpd->call_option_enabled = FALSE;
+       }
+       elm_genlist_item_append(genlist, &vpd->itc_title_click, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB"), NULL, ELM_GENLIST_ITEM_NONE,
+                       __msg_ui_viewer_add_to_contact_list_clicked_cb, (void *)vpd);
+       count++;
+       elm_genlist_item_append(genlist, &vpd->itc_title_click, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_UPDATE_CONTACT"), NULL, ELM_GENLIST_ITEM_NONE,
+                       __msg_ui_viewer_update_contact_clicked_cb, (void *)vpd);
+       count++;
+
+       evas_object_show(genlist);
+       elm_object_content_set(popup, genlist);
+       elm_object_focus_set(popup, EINA_TRUE);
+       vpd->popup = popup;
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_play_view_popup_mouseup_cb, (void *)vpd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_play_view_popup_back_cb, (void *)vpd);
+       evas_object_smart_callback_add(popup, "block,clicked", msg_ui_viewer_play_view_popup_back_cb, (void *)vpd);
+       evas_object_show(popup);
+       vpd->popup_type = MSG_VIEWER_ADD_TO_CONTACT_POPUP;
+       msg_ui_viewer_disconnect_handler(vpd, true);
+}
+
+static void __msg_ui_viewer_add_to_contact_list_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       const char *label = elm_object_item_text_get((Elm_Object_Item *)event_info);
+
+       msg_ui_viewer_option_create_add_to_contact_popup(vpd, label);
+}
+
+static void __msg_ui_viewer_create_add_to_contact_list_popup(void *data, int addr_count)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       Evas_Object *popup = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *list = NULL;
+
+       int i = 0;
+       int item_count = 0;
+
+       /* create popup */
+       popup = elm_popup_add(vpd->main_window);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       /* create layout */
+       layout = elm_layout_add(popup);
+       elm_layout_file_set(layout, MSG_COMMON_EDJ, "elm/layout/content/menustyle");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       /** create menu list */
+       list = elm_list_add(layout);
+       elm_object_style_set(list, "popup");
+
+       char *nth_address = NULL;
+       for (i = 0; i < addr_count; i++) {
+               msg_viewer_util_get_thread_nth_address(vpd->msgHandle, vpd->msg_t, i, &nth_address);
+               if (msg_viewer_util_get_index_by_recipient((const char *)nth_address) <= 0) {
+                       elm_list_item_append(list, nth_address, NULL, NULL, __msg_ui_viewer_add_to_contact_list_sel_cb, (void *)vpd);
+                       item_count++;
+               }
+       }
+
+       elm_list_go(list);
+
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB");
+       elm_object_part_content_set(layout, "elm.swallow.content", list);
+       elm_object_content_set(popup, layout);
+       evas_object_show(popup);
+
+       vpd->popup = popup;
+       vpd->popup_type = MSG_VIEWER_CONTACT_LIST_POPUP;
+       vpd->popup_item_count = item_count;
+       evas_object_focus_set(popup, EINA_TRUE);
+
+       vpd->list_popup_idler = ecore_idler_add(msg_ui_viewer_list_popup_size_min_set_idler, vpd);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_play_view_popup_mouseup_cb, vpd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_play_view_popup_back_cb, (void *)vpd);
+       evas_object_smart_callback_add(popup, "block,clicked", msg_ui_viewer_play_view_popup_back_cb, (void *)vpd);
+
+       msg_ui_viewer_disconnect_handler(vpd, true);
+}
+
+
+void msg_ui_viewer_option_add_to_contact_menu(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       int addr_count = msg_viewer_util_get_thread_address_count(vpd->msgHandle, vpd->msg_t);
+       vpd->call_option_enabled = TRUE;
+       if (addr_count == 1) {
+               char *address = NULL;
+               msg_viewer_util_get_thread_nth_address(vpd->msgHandle, vpd->msg_t, 0, &address);
+               msg_ui_viewer_option_create_add_to_contact_popup(vpd, (const char *)address);
+       } else {
+               __msg_ui_viewer_create_add_to_contact_list_popup(vpd, addr_count);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_option_block_address_menu(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       int addr_count = msg_viewer_util_get_thread_address_count(vpd->msgHandle, vpd->msg_t);
+
+       if (addr_count == 1) {
+               msg_struct_t filter = msg_create_struct(MSG_STRUCT_FILTER);
+               msg_error_t err =  MSG_SUCCESS;
+
+               err = msg_set_int_value(filter, MSG_FILTER_TYPE_INT, MSG_FILTER_BY_ADDRESS_SAME);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_set_int_value failed err : %d", err);
+                       msg_release_struct(&filter);
+                       return;
+               }
+
+               char *address = NULL;
+
+               msg_viewer_util_get_thread_nth_address(vpd->msgHandle, vpd->msg_t, 0, &address);
+
+               if (address) {
+                       err = msg_set_str_value(filter, MSG_FILTER_VALUE_STR, address, strlen(address));
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_set_str_value failed err : %d", err);
+                               msg_release_struct(&filter);
+                               free(address);
+                               return;
+                       }
+
+                       err = msg_add_filter(vpd->msgHandle, filter);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_add_filter failed err : %d", err);
+                               msg_release_struct(&filter);
+                               free(address);
+                               return;
+                       }
+
+                       bool filter_state;
+                       err = msg_get_filter_operation(vpd->msgHandle, &filter_state);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_get_filter_operation failed err : %d", err);
+                               msg_release_struct(&filter);
+                               free(address);
+                               return;
+                       }
+
+                       if (!filter_state) {
+                               err = msg_set_filter_operation(vpd->msgHandle, !filter_state);
+                               if (err != MSG_SUCCESS) {
+                                       D_EMSG("msg_set_filter_operation failed err : %d", err);
+                                       msg_release_struct(&filter);
+                                       free(address);
+                                       return;
+                               }
+                       }
+
+                       char msg[DEF_BUF_LEN] = {0,};
+
+                       snprintf(msg, sizeof(msg), "%s", TEXT("IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"));
+
+                       msg_common_create_noti_toast_popup(msg);
+
+                       free(address);
+               } else {
+                       D_EMSG("address is NULL");
+                       msg_release_struct(&filter);
+                       return;
+               }
+
+               msg_release_struct(&filter);
+       }
+
+       /*connect mouse handler*/
+       msg_ui_viewer_connect_handler(vpd);
+
+       /* play viewer again if previous status was PLAY */
+       if (vpd->auto_resume_state && vpd->status == MSG_VIEWER_PAUSE && vpd->previous_status == MSG_VIEWER_PLAY) {
+               if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+                       D_EMSG("msg_ui_viewer_command_play_pause is failed");
+                       return;
+               }
+       }
+
+       return;
+}
+
+void msg_ui_viewer_option_unblock_address_menu(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       int filter_id = 0;
+       char *address = NULL;
+
+       msg_viewer_util_get_thread_nth_address(vpd->msgHandle, vpd->msg_t, 0, &address);
+
+       if (address) {
+               if (msg_ui_viewer_check_address_is_blocked(vpd->msgHandle, address, &filter_id)) {
+                       msg_error_t err =  MSG_SUCCESS;
+                       err = msg_delete_filter(vpd->msgHandle, (msg_filter_id_t)filter_id);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_delete_filter is failed err : %d", err);
+                               free(address);
+                               return;
+                       }
+
+                       char msg[DEF_BUF_LEN] = {0,};
+                       snprintf(msg, sizeof(msg), "%s", TEXT("IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"));
+                       msg_common_create_noti_toast_popup(msg);
+               }
+
+               free(address);
+       } else {
+               D_EMSG("address is NULL");
+               return;
+       }
+
+       /* play viewer again if previous status was PLAY */
+       if (vpd->auto_resume_state && vpd->status == MSG_VIEWER_PAUSE && vpd->previous_status == MSG_VIEWER_PLAY) {
+               if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+                       D_EMSG("msg_ui_viewer_command_play_pause is failed");
+                       return;
+               }
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_option_recipient_list_menu_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETM_IF(!vpd, "vpd is NULL!");
+
+       Elm_Object_Item *item = NULL;
+       MSG_VIEWER_ADDR_INFO *addrInfo = NULL;
+       app_control_h svc_handle = NULL;
+
+       item = (Elm_Object_Item *)event_info;
+       D_MSG_RETM_IF(!item, "Item is  NULL or Item is not Message item\n");
+
+       addrInfo = (MSG_VIEWER_ADDR_INFO *)elm_object_item_data_get(item);
+       D_MSG_RETM_IF(addrInfo == NULL, "item_data is NULL");
+
+       elm_genlist_item_selected_set(item, 0);
+
+       if (addrInfo->person_id > 0) {
+               if (vpd->from_contact) {
+                       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vpd->viewer_main;
+                       D_MSG_RETM_IF(vmd == NULL, "vmd is NULL");
+
+                       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                               D_EMSG("app_control_create() is failed");
+                               return;
+                       }
+
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_DESTROY);
+                       ug_send_result(vmd->viewer_ug, svc_handle);
+                       app_control_destroy(svc_handle);
+
+                       ug_destroy_me(vmd->viewer_ug);
+                       return;
+               } else {
+                       char szPersonID[DEF_BUF_LEN_S] = { 0, };
+
+                       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                               D_EMSG("app_control_create() is failed");
+                               return;
+                       }
+
+                       snprintf(szPersonID, sizeof(szPersonID), "%d", addrInfo->person_id);
+
+                       app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_VIEW);
+                       app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_ID, szPersonID);
+                       app_control_set_mime(svc_handle, APP_CONTROL_MIME_CONTACT);
+                       app_control_send_launch_request(svc_handle, NULL, NULL);
+
+                       app_control_destroy(svc_handle);
+               }
+       } else {
+               vpd->call_option_enabled = TRUE;
+               msg_ui_viewer_option_create_add_to_contact_popup(vpd, (const char *)addrInfo->address);
+       }
+
+       D_LEAVE;
+}
+
+static void  __msg_ui_viewer_option_recipient_list_menu_del(void *data, Evas_Object *obj)
+{
+       D_ENTER;
+       MSG_VIEWER_ADDR_INFO *addrInfo = (MSG_VIEWER_ADDR_INFO *)data;
+       D_MSG_RETM_IF(!addrInfo, "addrInfo is NULL!");
+
+       if (addrInfo)
+               free(addrInfo);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_option_more_ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       if (vpd->popup && vpd->popup_type == MSG_VIEWER_MENU_CTX_POPUP) {
+               evas_object_del(vpd->popup);
+               vpd->popup = NULL;
+               vpd->popup_type = MSG_VIEWER_POPUP_NONE;
+
+               /* play viewer again if previous status was PLAY */
+               if (vpd->auto_resume_state && vpd->status == MSG_VIEWER_PAUSE && vpd->previous_status == MSG_VIEWER_PLAY) {
+                       if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+                               D_EMSG("msg_ui_viewer_command_play_pause is failed");
+                               return;
+                       }
+               }
+       }
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_option_create_msg_detail_popup(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       Evas_Object *popup = NULL;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       /* create popup */
+       popup = elm_popup_add(vpd->main_window);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       /* set title text */
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSGF_HEADER_MESSAGE_DETAILS");
+
+       /* set popup text */
+       char *str = msg_common_make_message_detail_text(vpd->msgHandle, vpd->msgID);
+
+       if (str) {
+               elm_object_text_set(popup, str);
+               free(str);
+       } else {
+               D_EMSG("msg_common_make_message_detail_text is failed");
+               return;
+       }
+
+       vpd->popup = popup;
+       vpd->popup_type = MSG_VIEWER_DETAILS_POPUP;
+       evas_object_focus_set(popup, EINA_TRUE);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_play_view_popup_mouseup_cb, vpd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_play_view_popup_back_cb, (void *)vpd);
+       evas_object_smart_callback_add(popup, "block,clicked", msg_ui_viewer_play_view_popup_back_cb, (void *)vpd);
+
+       msg_ui_viewer_disconnect_handler(vpd, true);
+
+       Evas_Object *btn = elm_button_add(popup);
+       elm_object_style_set(btn, "popup");
+       elm_object_domain_translatable_text_set(btn, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       elm_object_part_content_set(popup, "button1", btn);
+       evas_object_smart_callback_add(btn, "clicked", __msg_ui_viewer_option_cancel_clicked_cb, vpd);
+
+       evas_object_show(popup);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_option_forward_not_available_popup(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       Evas_Object *popup = NULL;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       /* create popup */
+       popup = elm_popup_add(vpd->main_window);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       /* set popup text */
+       elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING");
+
+       vpd->popup = popup;
+       vpd->popup_type = MSG_VIEWER_FORWARD_RESTRICTED_POPUP;
+       evas_object_focus_set(popup, EINA_TRUE);
+
+       Evas_Object *btn_ok = elm_button_add(popup);
+       elm_object_style_set(btn_ok, "popup");
+       elm_object_domain_translatable_text_set(btn_ok, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       elm_object_part_content_set(popup, "button1", btn_ok);
+       evas_object_smart_callback_add(btn_ok, "clicked", __msg_ui_viewer_option_cancel_clicked_cb, vpd);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_play_view_popup_mouseup_cb, vpd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_play_view_popup_back_cb, (void *)vpd);
+
+       msg_ui_viewer_disconnect_handler(vpd, true);
+
+       evas_object_show(popup);
+}
+
+static void __msg_ui_viewer_option_copy_message_text_to_clipboard(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       SMIL_SLIDE_CLIENT_CB_PARAM_S *eventStatus = NULL;
+
+       int media_count = 0;
+       int media_idx = 0;
+       char strFilePath[MSG_FILEPATH_LEN_MAX] = {0,};
+       FILE *fp = NULL;
+
+       msg_ui_viewer_popup_destroy(vpd);
+
+       eventStatus = (SMIL_SLIDE_CLIENT_CB_PARAM_S *)vpd->smil_eventStatus;
+       D_MSG("Current page index is %d", eventStatus->pageIdx);
+
+       /*get page list info*/
+       msg_list_handle_t pagelist_info = NULL;
+       msg_get_list_handle(vpd->mms_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
+
+       msg_struct_t page_info = NULL;
+       page_info = (msg_struct_t)msg_list_nth_data(pagelist_info, eventStatus->pageIdx);
+       if (!page_info) {
+               D_EMSG("page_info is NULL");
+               return;
+       }
+
+       msg_list_handle_t medialist_info = NULL;
+       msg_get_list_handle(page_info, MSG_MMS_PAGE_MEDIA_LIST_HND, (void **)&medialist_info);
+       media_count = msg_list_length(medialist_info);
+       D_MSG("page = %d, page media count = %d", eventStatus->pageIdx, media_count);
+
+       for (media_idx = 0; media_idx < media_count; media_idx++) {
+               int mediaType;
+               msg_struct_t media_info = NULL;
+               media_info = (msg_struct_t)msg_list_nth_data(medialist_info, media_idx);
+
+               if (!media_info) {
+                       D_EMSG("%d media_info is NULL", media_idx);
+                       continue;
+               }
+
+               msg_get_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
+
+               if (mediaType != MMS_SMIL_MEDIA_TEXT) {
+                       D_EMSG("%d media type is not TEXT", media_idx);
+                       continue;
+               }
+
+               bzero(strFilePath, sizeof(strFilePath));
+               msg_get_str_value(media_info, MSG_MMS_MEDIA_FILEPATH_STR, strFilePath, sizeof(strFilePath));
+
+               /* if text media is exist, get text and store it */
+               fp = fopen(strFilePath, "r");
+               if (fp) {
+                       char *pszPageText = NULL;
+                       struct stat stat_buf;
+                       if (stat(strFilePath, &stat_buf) != 0) {
+                               D_EMSG("Getting file information Error");
+                               fclose(fp);
+                               return;
+                       }
+
+                       if (stat_buf.st_size > 0) {
+                               pszPageText = (void *)calloc(1, (size_t)stat_buf.st_size + 1);
+
+                               if (pszPageText == NULL) {
+                                       D_EMSG("calloc is failed");
+                                       fclose(fp);
+                                       return;
+                               } else {
+                                       int result = fread(pszPageText, sizeof(char), stat_buf.st_size, fp);
+                                       if (result != stat_buf.st_size) {
+                                               D_EMSG("fread is failed result : %d", result);
+                                               free(pszPageText);
+                                               pszPageText = NULL;
+                                               fclose(fp);
+                                               return;
+                                       }
+                               }
+                               D_MSG("pszPageText : (%s)", (char *)pszPageText);
+
+                               if (pszPageText != NULL && pszPageText[0] != '\0') {
+                                       Evas_Object *entry = elm_entry_add(vpd->main_window);
+                                       elm_cnp_selection_set(entry, ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_TEXT, pszPageText, strlen(pszPageText));
+                                       evas_object_del(entry);
+                               }
+
+                               /*free message text after displaying*/
+                               if (pszPageText != NULL) {
+                                       free(pszPageText);
+                                       pszPageText = NULL;
+                               }
+                       }
+
+                       fclose(fp);
+               }
+       }
+
+       /* play viewer again if previous status was PLAY */
+       if (vpd->auto_resume_state && vpd->status == MSG_VIEWER_PAUSE && vpd->previous_status == MSG_VIEWER_PLAY) {
+               if (!msg_ui_viewer_command_play_pause(vpd, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+                       D_EMSG("msg_ui_viewer_command_play_pause is failed");
+                       return;
+               }
+       }
+
+       D_LEAVE;
+}
+
+static char *__msg_ui_viewer_recipient_list_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       MSG_VIEWER_ADDR_INFO *addr_info = (MSG_VIEWER_ADDR_INFO *)data;
+       D_MSG_RETVM_IF(addr_info == NULL, NULL, "addr_info is NULL!!");
+
+       if (g_strcmp0(part, "elm.text.main.left.top") == 0) {
+               int person_id = -1;
+               person_id = msg_viewer_util_get_index_by_recipient(addr_info->address);
+               if (person_id > 0) {
+                       char display_name[MAX_ADDRESS_VAL_LEN+1] = {0,};
+                       msg_viewer_util_get_display_name_by_index(person_id, display_name, sizeof(display_name));
+                       return strdup(display_name);
+               } else if (addr_info->address[0] != '\0') {
+                       return strdup(addr_info->address);
+               } else {
+                       return strdup(dgettext(SYSTEM_STRING_PKGNAME, "IDS_COM_BODY_UNKNOWN"));
+               }
+       } else if (g_strcmp0(part, "elm.text.sub.left.bottom") == 0) {
+               if (addr_info->address[0] != '\0')
+                       return strdup(addr_info->address);
+               else
+                       return strdup(dgettext(SYSTEM_STRING_PKGNAME, "IDS_COM_BODY_UNKNOWN"));
+       }
+
+       return NULL;
+}
+
+static Evas_Object *__msg_ui_viewer_recipient_list_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_ENTER;
+       Evas_Object *image = NULL;
+       char *thumb_path = NULL;
+
+       if (g_strcmp0(part, "elm.icon.1") == 0) {
+               MSG_VIEWER_ADDR_INFO *addr_info = (MSG_VIEWER_ADDR_INFO *)data;
+               contacts_record_h record = NULL;
+               int ct_ret = CONTACTS_ERROR_NONE;
+
+               Evas_Object *ic_ly = elm_layout_add(obj);
+               elm_layout_theme_set(ic_ly, "layout", "list/B/type.2", "default");
+
+               int person_id = -1;
+               person_id = msg_viewer_util_get_index_by_recipient(addr_info->address);
+
+               if (person_id > 0) {
+                       ct_ret = contacts_db_get_record(_contacts_person._uri, person_id, &record);
+                       if (ct_ret != CONTACTS_ERROR_NONE) {
+                               D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+                               return NULL;
+                       }
+
+                       contacts_record_get_str_p(record, _contacts_person.image_thumbnail_path, &thumb_path);
+               }
+
+               image = elm_image_add(obj);
+               if (thumb_path && thumb_path[0] != '\0') {
+                       image = msg_common_get_thumbnail(obj, thumb_path, MSG_THUMB_TYPE_USER, MSG_THUMB_SIZE_LIST);
+               } else {
+                       image = msg_common_get_thumbnail(obj, MSG_LIST_THUMB_CONTACT, MSG_THUMB_TYPE_ICON, MSG_THUMB_SIZE_LIST);
+               }
+               elm_object_part_content_set(ic_ly, "elm.swallow.content", image);
+
+               contacts_record_destroy(record, true);
+
+               return ic_ly;
+       }
+       return NULL;
+}
+
+static Eina_Bool __msg_ui_viewer_recipient_list_pop_cb(void *data, Elm_Object_Item *it)
+{
+       D_ENTER;
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETVM_IF(vpd == NULL, EINA_FALSE, "vpd is NULL");
+
+       /* connect handlers */
+       msg_ui_viewer_connect_handler(vpd);
+
+       vpd->mode = MSG_VIEWER_DEFAULT_MODE;
+       vpd->recipient_list = NULL;
+
+       return EINA_TRUE;
+}
+
+void msg_ui_viewer_launch_recipient_list_view(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       Evas_Object *layout = NULL;
+       Evas_Object *genlist = NULL;
+       Elm_Object_Item *navi_it = NULL;
+       MSG_VIEWER_ADDR_INFO *addrInfo = NULL;
+       int i = 0;
+
+       layout = elm_layout_add(vpd->navi_frame);
+       if (layout == NULL) {
+               D_EMSG("elm_layout_add failed!!");
+               return ;
+       }
+
+       elm_layout_theme_set(layout, "layout", "application", "noindicator");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       genlist = elm_genlist_add(vpd->navi_frame);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_genlist_homogeneous_set(genlist, EINA_TRUE);
+
+       /** 3.1 set genlist styles */
+       vpd->itc_title.item_style = "2line.top";
+       vpd->itc_title.func.text_get = __msg_ui_viewer_recipient_list_gl_text_get;
+       vpd->itc_title.func.content_get = __msg_ui_viewer_recipient_list_gl_content_get;
+       vpd->itc_title.func.state_get = NULL;
+       vpd->itc_title.func.del = __msg_ui_viewer_option_recipient_list_menu_del;
+
+       int addr_count = msg_viewer_util_get_thread_address_count(vpd->msgHandle, vpd->msg_t);
+
+       for (i = 0; i < addr_count; i++) {
+               addrInfo = (MSG_VIEWER_ADDR_INFO *)calloc(1, sizeof(MSG_VIEWER_ADDR_INFO));
+               if (!addrInfo) {
+                       D_EMSG("addrInfo calloc failed");
+                       return;
+               }
+
+               char *address = NULL;
+               char display_name[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+               int person_id = 0;
+
+               msg_viewer_util_get_thread_nth_address(vpd->msgHandle, vpd->msg_t, i, &address);
+
+               if (!address) {
+                       D_EMSG("address is null");
+                       free(addrInfo);
+                       return;
+               }
+               strncpy(addrInfo->address, address, MAX_ADDRESS_VAL_LEN);
+
+               person_id = msg_viewer_util_get_index_by_recipient((const char *)address);
+
+               msg_viewer_util_get_display_name_by_index(person_id, display_name, sizeof(display_name));
+
+               if (display_name[0] != '\0')
+                       strncpy(addrInfo->name, display_name, MAX_DISPLAY_NAME_LEN);
+
+               addrInfo->person_id = person_id;
+
+               D_SEC_MSG("address = %s, name = %s, persion_id = %d", addrInfo->address, addrInfo->name, addrInfo->person_id);
+
+               elm_genlist_item_append(genlist, &(vpd->itc_title), addrInfo, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_viewer_option_recipient_list_menu_gl_sel, vpd);
+
+               free(address);
+       }
+
+       elm_object_part_content_set(layout, "elm.swallow.content", genlist);
+       evas_object_show(genlist);
+
+       vpd->recipient_list = genlist;
+
+       navi_it = elm_naviframe_item_push(vpd->navi_frame, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_HEADER_RECIPIENT_LIST"), NULL, NULL, layout, NULL);
+
+       elm_naviframe_item_pop_cb_set(navi_it, __msg_ui_viewer_recipient_list_pop_cb, vpd);
+
+       msg_ui_viewer_disconnect_handler(vpd, true);
+
+       vpd->mode = MSG_VIEWER_RECIPIENT_MODE;
+}
+
diff --git a/viewer/src/msg-ui-viewer-play-view-play-controller.c b/viewer/src/msg-ui-viewer-play-view-play-controller.c
new file mode 100755 (executable)
index 0000000..3772ab7
--- /dev/null
@@ -0,0 +1,408 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-ui-viewer-play-view.h"
+#include "msg-ui-viewer-main.h"
+#include "msg-ui-image-resource.h"
+#include "msg-ui-viewer-utility.h"
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+
+/*==================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+void msg_ui_viewer_play_controller_create(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       Evas_Object *layout = elm_layout_add(vpd->navi_frame);
+       elm_layout_file_set(layout, MSG_VIEWER_THEME, "play_controller");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(layout);
+
+       elm_object_part_content_set(vpd->play_layout, "viewer.swallow.playctrl", layout);
+       vpd->play_controller = layout;
+
+       /* add signal callbacks */
+       edje_object_signal_callback_add(_EDJ(vpd->play_controller), "prev_clicked", "", msg_ui_viewer_play_controller_prev_clicked_cb, (void *)vpd);
+       edje_object_signal_callback_add(_EDJ(vpd->play_controller), "play_clicked", "", msg_ui_viewer_play_controller_play_pause_clicked_cb, (void *)vpd);
+       edje_object_signal_callback_add(_EDJ(vpd->play_controller), "pause_clicked", "", msg_ui_viewer_play_controller_play_pause_clicked_cb, (void *)vpd);
+       edje_object_signal_callback_add(_EDJ(vpd->play_controller), "next_clicked", "", msg_ui_viewer_play_controller_next_clicked_cb, (void *)vpd);
+
+       vpd->playcontroller_opened = true;
+
+       /* register timer */
+       msg_ui_viewer_play_controller_create_timer(vpd);
+
+       /* create progressbar */
+       msg_ui_viewer_play_controller_create_progressbar(vpd, 0);
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_play_controller_update(void *data, MSG_VIEWER_PLAY_STATUS_E status)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       MSG_BOOL bfisrt_page = FALSE;
+       MSG_BOOL blast_page = FALSE;
+       SMIL_SLIDE_CLIENT_CB_PARAM_S *eventStatus = vpd->smil_eventStatus;
+       SMIL_SLIDE_INFO_S *slide = msg_smil_get_current_slide_info(vpd->SmilHandle);
+
+       if (status == MSG_VIEWER_STOP) {
+               if (vpd->play_controller) {
+                       edje_object_signal_emit(_EDJ(vpd->play_controller), "next_disable", "*");
+                       D_MSG("Disable next_button");
+                       edje_object_signal_emit(_EDJ(vpd->play_controller), "prev_disable", "*");
+                       D_MSG("Disable prev_button");
+               }
+       } else {
+               D_MSG_RETM_IF(eventStatus == NULL, "eventStatus is NULL");
+               D_MSG_RETM_IF(slide == NULL, "slide is NULL");
+               D_MSG_RETM_IF(slide->commonData == NULL, "slide->commonData is NULL");
+
+               if (slide->commonData->pageCnt > 0) {
+                       if (slide->pageIdx == 0)
+                               bfisrt_page = TRUE;
+
+                       if (slide->pageIdx + 1 == slide->commonData->pageCnt)
+                               blast_page = TRUE;
+
+                       if (bfisrt_page) {      /*first page*/
+                               if (vpd->play_controller) {
+                                       edje_object_signal_emit(_EDJ(vpd->play_controller), "prev_disable", "*");
+                                       D_MSG("Disable prev_button");
+                               }
+                       } else {
+                               if (vpd->play_controller) {
+                                       edje_object_signal_emit(_EDJ(vpd->play_controller), "prev_enable", "*");
+                                       D_MSG("Enable prev_button");
+                               }
+                       }
+
+                       if (blast_page) {        /*lastpage*/
+                               if (vpd->play_controller) {
+                                       edje_object_signal_emit(_EDJ(vpd->play_controller), "next_disable", "*");
+                                       D_MSG("Disable next_button");
+                               }
+                       } else {
+                               if (vpd->play_controller) {
+                                       edje_object_signal_emit(_EDJ(vpd->play_controller), "next_enable", "*");
+                                       D_MSG("Enable next_button");
+                               }
+                       }
+
+                       /*smil player is finished*/
+                       if (eventStatus->clientCbEvent == SMIL_RENDER_EVENT_LAST_PAGE_PLAY_COMPLETE &&
+                                       eventStatus->isLastSlide == TRUE) {
+                               if (vpd->play_controller) {
+                                       edje_object_signal_emit(_EDJ(vpd->play_controller), "next_disable", "*");
+                                       D_MSG("Disable next_button");
+                                       edje_object_signal_emit(_EDJ(vpd->play_controller), "prev_disable", "*");
+                                       D_MSG("Disable prev_button");
+                               }
+                       }
+               } else {
+                       D_MSG("Multipart.mixed message");
+                       if (vpd->play_controller) {
+                               edje_object_signal_emit(_EDJ(vpd->play_controller), "next_disable", "*");
+                               D_MSG("Disable next_button");
+                               edje_object_signal_emit(_EDJ(vpd->play_controller), "prev_disable", "*");
+                               D_MSG("Disable prev_button");
+                       }
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_play_controller_create_timer(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       /* register timer for disappear play_controller automatically when time elapsed after shown */
+       if (vpd->play_controller_timer) {
+               ecore_timer_del(vpd->play_controller_timer);
+               vpd->play_controller_timer = NULL;
+       }
+
+       vpd->play_controller_timer = ecore_timer_add(VIEWER_PLAY_CONTROLLER_LIFETIME, msg_ui_viewer_play_controller_timer_cb, (void *)vpd);
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_play_controller_create_progressbar(void *data, int slideIdx)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       D_MSG_RETM_IF(vpd->SmilHandle == NULL, "vpd->SmilHandle is NULL");
+
+       Evas_Object *progressbar = NULL;
+       MSG_VIEWER_LAUNCH_MODE_E launch_mode = MSG_VIEWER_INVALID_MODE;
+       MSG_BOOL bExcludeHp = FALSE;
+       double total_time = 0.0;
+       double remain_time = 0.0;
+       double elapse_time = 0.0;
+       int remain_second = 0.0;
+       int elapse_second = 0.0;
+       char strTimeBuf[10] = {0,};
+
+       if (slideIdx < 0) {
+               D_EMSG("slideIdx = %d, slideIdx must be same or over 0", slideIdx);
+               return;
+       }
+
+       if (!vpd->progressbar) {
+               progressbar = elm_progressbar_add(vpd->play_controller);
+               elm_object_theme_set(progressbar, vpd->progress_th);
+               elm_object_style_set(progressbar, "list_progress");
+               elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
+               evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_progressbar_unit_format_set(progressbar, NULL);
+               vpd->progressbar = progressbar;
+               evas_object_show(progressbar);
+               elm_object_part_content_set(vpd->play_controller, "progress_area", progressbar);
+       }
+
+       msg_ui_viewer_get_viewer_launch_mode(vpd->viewer_main, &launch_mode);
+
+       /* In preview mode, slide time for help page should not be considered to total slide time */
+       bExcludeHp = (launch_mode == MSG_VIEWER_MMS_PREVIEW_MODE) ? TRUE : FALSE;
+
+       if (!msg_smil_get_slide_time(vpd->SmilHandle, 0, bExcludeHp, &total_time)) {
+               D_EMSG("msg_smil_get_slide_time is failed, slideIdx = %d, bExcludeHp = %d", 0, bExcludeHp);
+               return;
+       }
+       if (!msg_smil_get_slide_time(vpd->SmilHandle, slideIdx, bExcludeHp, &remain_time)) {
+               D_EMSG("msg_smil_get_slide_time is failed, slideIdx = %d, bExcludeHp = %d", slideIdx, bExcludeHp);
+               return;
+       }
+
+       D_MSG("Total slide time is %f", total_time);
+       D_MSG("Remain slide time from current slide(%d) is %f", slideIdx, remain_time);
+       elapse_time = total_time-remain_time;
+       D_MSG("Elapsed slide time from first slide(0) to current slide(%d) is %f", slideIdx, elapse_time);
+
+       vpd->totalProgressTime = remain_second = (int)total_time/1000;
+       elapse_second = (int)elapse_time/1000;
+       vpd->elapsedProgressTime = elapse_second;
+
+       /* START timer text set */
+       snprintf(strTimeBuf, sizeof(strTimeBuf), "%02d:%02d", elapse_second/60, elapse_second%60);
+       edje_object_part_text_set(_EDJ(vpd->play_controller), "progress/start/time", strTimeBuf);
+
+       bzero(strTimeBuf, sizeof(strTimeBuf));
+
+       /* END timer text set */
+       snprintf(strTimeBuf, sizeof(strTimeBuf), "%02d:%02d", remain_second/60, remain_second%60);
+       edje_object_part_text_set(_EDJ(vpd->play_controller), "progress/end/time", strTimeBuf);
+
+       elm_progressbar_value_set(vpd->progressbar, ((double)vpd->elapsedProgressTime)/((double)vpd->totalProgressTime));
+
+       if (vpd->play_controller_progressbar_timer) {
+               ecore_timer_del(vpd->play_controller_progressbar_timer);
+               vpd->play_controller_progressbar_timer = NULL;
+       }
+
+       vpd->play_controller_progressbar_timer = ecore_timer_add(VIEWER_PLAY_CONTROLLER_PROGRESSBAR_TIME, msg_ui_viewer_play_controller_progressbar_timer_cb, vpd);
+
+       if (msg_smil_get_current_slide_status(vpd->SmilHandle) == PLAYER_STATUS_PAUSED) {
+               D_MSG("Pause progress timer because current slide status is PAUSED");
+               ecore_timer_freeze(vpd->play_controller_progressbar_timer);
+       }
+
+       D_LEAVE;
+}
+
+Eina_Bool  msg_ui_viewer_play_controller_progressbar_timer_cb(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       char strTimeBuf[10] = {0,};
+
+       vpd->elapsedProgressTime += VIEWER_PLAY_CONTROLLER_PROGRESSBAR_TIME;
+
+       /* update START timer text */
+       snprintf(strTimeBuf, sizeof(strTimeBuf), "%02d:%02d", vpd->elapsedProgressTime/60, vpd->elapsedProgressTime%60);
+       edje_object_part_text_set(_EDJ(vpd->play_controller), "progress/start/time", strTimeBuf);
+
+       if (vpd->elapsedProgressTime == vpd->totalProgressTime) {
+               if (vpd->play_controller && evas_object_visible_get(vpd->play_controller) == EINA_FALSE) {
+                       elm_object_part_content_set(vpd->play_layout, "viewer.swallow.playctrl", vpd->play_controller);
+                       evas_object_show(vpd->play_controller);
+                       vpd->playcontroller_opened = true;
+
+                       msg_ui_viewer_play_controller_create_timer(vpd);
+               } else {
+                       /* create play controller timer again */
+                       msg_ui_viewer_play_controller_create_timer(vpd);
+               }
+
+               elm_progressbar_value_set(vpd->progressbar, 1.0);
+               vpd->play_controller_progressbar_timer = NULL;
+
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       elm_progressbar_value_set(vpd->progressbar, ((double)vpd->elapsedProgressTime)/((double)vpd->totalProgressTime));
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+void msg_ui_viewer_destroy_play_controller_progressbar_timer(VIEWER_PLAY_DATA_S *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       if (vpd->play_controller_progressbar_timer) {
+               ecore_timer_del(vpd->play_controller_progressbar_timer);
+               vpd->play_controller_progressbar_timer = NULL;
+               vpd->elapsedProgressTime = 0;
+       }
+
+       D_LEAVE;
+}
+
+Eina_Bool msg_ui_viewer_play_controller_timer_cb(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, EINA_FALSE, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       vpd->play_controller_timer = NULL;
+
+       if (vpd->playcontroller_opened) {
+               D_MSG("Play controller is hided after 3 seconds elapsed");
+               elm_object_part_content_unset(vpd->play_layout, "viewer.swallow.playctrl");
+               evas_object_hide(vpd->play_controller);
+               vpd->playcontroller_opened = false;
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void msg_ui_viewer_play_controller_destroy_timer(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       if (vpd->play_controller_timer) {
+               ecore_timer_del(vpd->play_controller_timer);
+               vpd->play_controller_timer = NULL;
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_play_controller_prev_clicked_cb(void *data, Evas_Object * o, const char *emission, const char *source)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+       SMIL_PLAYER_STATUS_E play_status = PLAYER_STATUS_NONE;
+       D_MSG_RETM_IF(vpd->SmilHandle == NULL, "vpd->SmilHandle is NULL");
+
+       play_status = msg_smil_get_current_slide_status(vpd->SmilHandle);
+       D_MSG("play_status : %d", play_status);
+       D_MSG_RETM_IF(vpd->smil_eventStatus == NULL, "vpd->smil_eventStatus is NULL");
+
+       if (!strcmp(emission, "prev_clicked")) {
+               /* prev*/
+               int pageIdx = vpd->smil_eventStatus->pageIdx;
+               if (pageIdx >= 0) {
+                       if (play_status != PLAYER_STATUS_PLAY_END && play_status != PLAYER_STATUS_STOPPED) {
+                               MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
+                               err = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_PREV_SLIDE);
+                               if (err != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", err);
+                               } else {
+                                       /* set progressbar and progress text sync */
+                                       if (vpd->progressbar && vpd->play_controller_progressbar_timer)
+                                               msg_ui_viewer_play_controller_create_progressbar(vpd, pageIdx-1);
+                               }
+                       }
+               }
+
+               /* create play controller timer repeatedly */
+               msg_ui_viewer_play_controller_create_timer(vpd);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_play_controller_play_pause_clicked_cb(void *data, Evas_Object * o, const char *emission, const char *source)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       if (!msg_ui_viewer_command_play_pause(vpd, (vpd->status == MSG_VIEWER_PLAY) ? MSG_VIEWER_ACTION_TOOLBAR_PAUSE : MSG_VIEWER_ACTION_TOOLBAR_PLAY))
+               D_EMSG("msg_ui_viewer_command_play_pause is failed");
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_play_controller_next_clicked_cb(void *data, Evas_Object * o, const char *emission, const char *source)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_PLAY_DATA_S *vpd = (VIEWER_PLAY_DATA_S *)data;
+
+       if (!strcmp(emission, "next_clicked")) {
+               SMIL_PLAYER_STATUS_E play_status = PLAYER_STATUS_NONE;
+               D_MSG_RETM_IF(vpd->SmilHandle == NULL, "vpd->SmilHandle is NULL");
+
+               play_status = msg_smil_get_current_slide_status(vpd->SmilHandle);
+               D_MSG("play_status : %d", play_status);
+               D_MSG_RETM_IF(vpd->smil_eventStatus == NULL, "vpd->smil_eventStatus is NULL");
+
+               /*next*/
+               int pageIdx = vpd->smil_eventStatus->pageIdx + 1;
+               int total_page = vpd->smil_eventStatus->pageCnt;
+               if (total_page >= pageIdx) {
+                       if (play_status != PLAYER_STATUS_PLAY_END && play_status != PLAYER_STATUS_STOPPED) {
+                               MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
+                               err = msg_smil_on_slide_event_handler(&(vpd->SmilHandle), PLAYER_EVENT_NEXT_SLIDE);
+                               if (err != MSG_SMIL_SUCCESS) {
+                                       D_EMSG("msg_smil_on_slide_event_handler failed! : %d", err);
+                               } else {
+                                       /* set progressbar and progress text sync */
+                                       if (vpd->progressbar && vpd->play_controller_progressbar_timer)
+                                               msg_ui_viewer_play_controller_create_progressbar(vpd, pageIdx);
+                               }
+                       }
+               }
+
+               /* create play controller timer repeatedly */
+               msg_ui_viewer_play_controller_create_timer(vpd);
+       }
+}
diff --git a/viewer/src/msg-ui-viewer-summary-view-attachment.c b/viewer/src/msg-ui-viewer-summary-view-attachment.c
new file mode 100755 (executable)
index 0000000..85a3d27
--- /dev/null
@@ -0,0 +1,861 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-ui-viewer-summary-view.h"
+#include "msg-ui-viewer-main.h"
+#include "msg-ui-viewer-utility.h"
+#include "msg-ui-common-utility.h"
+#include "msg-ui-image-resource.h"
+#include "msg-file-util.h"
+
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+/* save attachment popup */
+static void __msg_ui_viewer_summary_view_rename_popup_entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_rename_popup_entry_activated_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_rename_popup_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_rename_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_rename_popup_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static char *__msg_ui_viewer_summary_view_save_attachments_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__msg_ui_viewer_summary_view_save_attachments_gl_content_get(void *data, Evas_Object *obj, const char *part);
+static void __msg_ui_viewer_summary_view_save_attachments_check_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_save_attachments_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_save_attachments_popup_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_save_attachments_popup_save_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_save_item(MSG_VIEWER_MEDIA_INFO_S *media_info);
+
+/*==================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+void msg_ui_viewer_summary_view_create_save_attachments_popup(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       Evas_Object *popup = NULL;
+       Evas_Object *genlist = NULL;
+       Evas_Object *btn_save = NULL;
+       Evas_Object *btn_close = NULL;
+       int total_media_count = 0;
+
+       /* destroy previous popup */
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       total_media_count = vsd->attach_count;
+
+       /* create popup */
+       popup = elm_popup_add(vsd->main_window);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       /* set popup title */
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSGF_OPT_SAVE_ATTACHMENT");
+
+       /* set select all genlist item style */
+       vsd->attach_sa_class.item_style = "default";
+       vsd->attach_sa_class.func.text_get = __msg_ui_viewer_summary_view_save_attachments_gl_text_get;
+       vsd->attach_sa_class.func.content_get = __msg_ui_viewer_summary_view_save_attachments_gl_content_get;
+       vsd->attach_sa_class.func.state_get = NULL;
+       vsd->attach_sa_class.func.del = NULL;
+
+       /* create genlist */
+       genlist = elm_genlist_add(popup);
+       elm_object_style_set(genlist, "popup");
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+       evas_object_data_set(genlist, "vsd", vsd);
+       vsd->media_chk_cnt = 0;
+       /* add genlist item based on media count, if item's count is over 1 then 'select all' item should be inserted*/
+       if (total_media_count > 1) {
+               /* add Select all item */
+               MSG_VIEWER_MEDIA_INFO_S *media_info = NULL;
+               const char *str_sel_all = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_SAVE_ALL");
+               media_info = (MSG_VIEWER_MEDIA_INFO_S *)calloc(1, sizeof(MSG_VIEWER_MEDIA_INFO_S));
+               if (media_info != NULL) {
+                       eina_strlcpy(media_info->pfile_name, str_sel_all, sizeof(media_info->pfile_name));
+                       elm_genlist_item_append(genlist, &vsd->attach_sa_class, media_info, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_viewer_summary_view_save_attachments_gl_sel, vsd);
+               }
+       }
+
+       /* add inserted items */
+       int pg_idx = 0;
+       for (pg_idx = 0; pg_idx < vsd->mms_parsed_data->page_count; pg_idx++) {
+               PARSED_MMS_PAGE_DATA_S *cur_page_data = &vsd->mms_parsed_data->page_data[pg_idx];
+               int media_idx = 0;
+               MSG_VIEWER_MEDIA_INFO_S *media_info = eina_list_nth(cur_page_data->insert_list, media_idx);
+               while (media_info) {
+                       switch (media_info->media_type) {
+                               case MSG_VIEWER_MEDIA_IMG:
+                               case MSG_VIEWER_MEDIA_AUDIO:
+                               case MSG_VIEWER_MEDIA_VIDEO:
+                               case MSG_VIEWER_MEDIA_ANIMATE:
+                               case MSG_VIEWER_MEDIA_IMG_OR_VIDEO:
+                               case MSG_VIEWER_MEDIA_DRM:
+                                       elm_genlist_item_append(genlist, &vsd->attach_sa_class, media_info, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_viewer_summary_view_save_attachments_gl_sel, vsd);
+                                       D_MSG("appended item is [%d], page index [%d], media index [%d]", media_info->media_type, pg_idx, media_idx-1);
+                                       break;
+                               default:
+                                       break;
+                       }
+                       media_info = eina_list_nth(cur_page_data->insert_list, ++media_idx);
+               }
+       }
+       /* add attached items */
+       if (vsd->mms_parsed_data->attach_count > 0) {
+               PARSED_MMS_ATTACH_DATA_S *attach_data = vsd->mms_parsed_data->attach_data;
+               int attach_idx = 0;
+               for (attach_idx = 0; attach_idx < vsd->mms_parsed_data->attach_count; attach_idx++) {
+                       MSG_VIEWER_MEDIA_INFO_S *media_info = eina_list_nth(attach_data->attach_list, attach_idx);
+                       if (media_info)
+                               elm_genlist_item_append(genlist, &vsd->attach_sa_class, media_info, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_viewer_summary_view_save_attachments_gl_sel, vsd);
+               }
+       }
+
+       /* add close button */
+       btn_close = elm_button_add(popup);
+       elm_object_style_set(btn_close, "popup");
+       elm_object_domain_translatable_text_set(btn_close, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", btn_close);
+       evas_object_smart_callback_add(btn_close, "clicked", __msg_ui_viewer_summary_view_save_attachments_popup_cancel_clicked_cb, vsd);
+
+       /* add save button */
+       btn_save = elm_button_add(popup);
+       elm_object_style_set(btn_save, "popup");
+       elm_object_domain_translatable_text_set(btn_save, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_SAVE_ABB2");
+       elm_object_part_content_set(popup, "button2", btn_save);
+       evas_object_smart_callback_add(btn_save, "clicked", __msg_ui_viewer_summary_view_save_attachments_popup_save_clicked_cb, vsd);
+       vsd->save_button = btn_save;
+       elm_object_disabled_set(vsd->save_button, EINA_TRUE);
+
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+       evas_object_show(genlist);
+       elm_object_content_set(popup, genlist);
+
+       /* show popup */
+       evas_object_show(popup);
+       vsd->save_attachment_gl = genlist;
+       vsd->popup = popup;
+       vsd->popup_type = MSG_VIEWER_ATTACHMENTS_POPUP;
+       evas_object_focus_set(popup, EINA_TRUE);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_summary_view_popup_mouseup_cb, vsd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_summary_view_popup_back_cb, (void *)vsd);
+
+       /*disconnect mouse handler*/
+       msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+
+       D_LEAVE;
+}
+
+
+static void __msg_ui_viewer_summary_view_save_attachments_popup_save_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETM_IF(vsd == NULL, "vsd is NULL");
+
+       int pg_idx = 0;
+
+       /* destroy previous popup */
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       vsd->saving_status = MSG_VIEWER_SAVING_PAGE_MEDIA_N_ATTACHMENT;
+       MSG_VIEWER_MEDIA_INFO_S *media_info = NULL;
+
+       /* save inserted items */
+       for (pg_idx = 0; pg_idx < vsd->mms_parsed_data->page_count; pg_idx++) {
+               PARSED_MMS_PAGE_DATA_S *cur_page_data = &vsd->mms_parsed_data->page_data[pg_idx];
+               int media_idx = 0;
+               media_info = eina_list_nth(cur_page_data->insert_list, media_idx);
+               while (media_info) {
+                       if (elm_check_state_get(media_info->check_item)) {
+                               __msg_ui_viewer_summary_view_save_item(media_info);
+                       }
+                       media_info = eina_list_nth(cur_page_data->insert_list, ++media_idx);
+               }
+       }
+       /* save attached items */
+       if (vsd->mms_parsed_data->attach_count > 0) {
+               PARSED_MMS_ATTACH_DATA_S *attach_data = vsd->mms_parsed_data->attach_data;
+               int attach_idx = 0;
+               for (attach_idx = 0; attach_idx < vsd->mms_parsed_data->attach_count; attach_idx++) {
+                       MSG_VIEWER_MEDIA_INFO_S *media_info = eina_list_nth(attach_data->attach_list, attach_idx);
+                       if (media_info) {
+                               if (elm_check_state_get(media_info->check_item))
+                                       __msg_ui_viewer_summary_view_save_item(media_info);
+                       }
+               }
+       }
+
+       /* connect handler again */
+       msg_ui_viewer_summary_view_connect_handler(vsd);
+
+       vsd->saving_status = MSG_VIEWER_SAVING_STATUS_NONE;
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_summary_view_save_item(MSG_VIEWER_MEDIA_INFO_S *media_info)
+{
+       Eina_Bool is_file_exist = EINA_FALSE;
+       /* get default file path */
+       MSG_BOOL result = FALSE;
+       char dir_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0};
+
+       result = msg_viewer_util_get_default_path(dir_path, sizeof(dir_path));
+       if (result) {
+               char dst_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0,};
+               snprintf(dst_path, sizeof(dst_path), "%s/%s", dir_path, media_info->pfile_name);
+               D_SEC_MSG("dest pfile_path [%s]", dst_path);
+               D_SEC_MSG("src pfile_path [%s]", media_info->pfile_path);
+
+               is_file_exist = msg_file_exists(dst_path);
+
+               if (is_file_exist) {
+                       /* make new file path */
+                       char *file_ext = NULL;
+                       char file_name_no_ext[MSG_FILENAME_LEN_MAX+1] = {0,};
+                       file_ext = strrchr(media_info->pfile_name, '.');
+                       if (file_ext) {
+                               file_ext++;
+                               strncpy(file_name_no_ext, media_info->pfile_name, strlen(media_info->pfile_name) - strlen(file_ext) - 1);
+                       } else {
+                               strncpy(file_name_no_ext, media_info->pfile_name, strlen(media_info->pfile_name));
+                       }
+                       int count = 1;
+                       while (count < MSG_VIEWER_FILEPATH_DUPLICATE_MAX_COUNT) {
+                               memset(dst_path, 0x00, sizeof(dst_path));
+                               snprintf(dst_path, MSG_VIEWER_FILEPATH_MAX_LEN, "%s/%s_%02d.%s", dir_path, file_name_no_ext, count, file_ext);
+                               D_SEC_MSG("new dest pfile_path [%s]", dst_path);
+                               if (msg_file_exists(dst_path) == EINA_TRUE) {
+                                       count++;
+                               } else {
+                                       char *new_filename = msg_ui_viewer_util_copy_file(media_info->pfile_path, dst_path, false, false);
+                                       if (new_filename) {
+                                               notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVED_IN_MY_FILES"));
+                                               free(new_filename);
+                                       } else {
+                                               D_EMSG("msg_ui_viewer_util_copy_file is failed index = %d", index);
+                                               notification_status_message_post(dgettext(SYSTEM_STRING_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+                                       }
+                                       break;
+                               }
+                       }
+               } else {
+                       char *result_path = msg_ui_viewer_util_copy_file(media_info->pfile_path, dst_path, false, false);
+                       if (result_path) {
+                               notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVED_IN_MY_FILES"));
+                               free(result_path);
+                       } else {
+                               D_EMSG("msg_ui_viewer_util_copy_file is failed index = %d", index);
+                               notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+                       }
+               }
+       } else {
+               notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+       }
+}
+
+static void __msg_ui_viewer_summary_view_save_attachments_popup_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       /* connect handler again*/
+       msg_ui_viewer_summary_view_connect_handler(vsd);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_summary_view_save_attachments_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj || !event_info);
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)evas_object_data_get(obj, "vsd");
+       D_MSG_RETM_IF(vsd == NULL, "vsd is NULL");
+
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+       MSG_VIEWER_MEDIA_INFO_S *media_info = (MSG_VIEWER_MEDIA_INFO_S *)elm_object_item_data_get(item);
+       elm_genlist_item_selected_set(item, false);
+
+       elm_check_state_set(media_info->check_item, !elm_check_state_get(media_info->check_item));
+
+       elm_genlist_item_fields_update(item, "elm.icon.right", ELM_GENLIST_ITEM_FIELD_CONTENT);
+       evas_object_smart_callback_call(media_info->check_item, "changed", event_info);
+}
+
+static char *__msg_ui_viewer_summary_view_save_attachments_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)evas_object_data_get(obj, "vsd");
+       D_MSG_RETVM_IF(vsd == NULL, NULL, "vsd is NULL");
+
+       MSG_VIEWER_MEDIA_INFO_S *media_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+
+       if (!strcmp(part, "elm.text")) {
+               D_SEC_MSG("Media name is  = %s", media_info->pfile_name);
+               return strdup(media_info->pfile_name);
+       }
+       return NULL;
+}
+
+static Evas_Object *__msg_ui_viewer_summary_view_save_attachments_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)evas_object_data_get(obj, "vsd");
+       D_MSG_RETVM_IF(vsd == NULL, NULL, "vsd is NULL");
+
+       MSG_VIEWER_MEDIA_INFO_S *media_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+
+       if (media_info != NULL) {
+               if (!strcmp(part, "elm.swallow.end")) {
+                       Evas_Object *check = elm_check_add(obj);
+                       elm_object_style_set(check, "list");
+                       evas_object_propagate_events_set(check, EINA_FALSE);
+
+                       media_info->check_item = check;
+                       evas_object_data_set(check, "media_info", media_info);
+
+                       evas_object_smart_callback_add(check, "changed", __msg_ui_viewer_summary_view_save_attachments_check_changed_cb, vsd);
+
+                       return check;
+               } else {
+                       D_EMSG("Invalid part : %s", part);
+               }
+       }
+
+       return NULL;
+}
+
+static void __msg_ui_viewer_summary_view_save_attachments_check_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       MSG_VIEWER_MEDIA_INFO_S *media_info = (MSG_VIEWER_MEDIA_INFO_S *)evas_object_data_get(obj, "media_info");
+       Elm_Object_Item *it = NULL;
+
+       int genlist_count = elm_genlist_items_count(vsd->save_attachment_gl);
+       int media_count = 0;
+
+       if (genlist_count == 1)
+               media_count = 1;
+       else
+               media_count = genlist_count - 1;
+
+       D_MSG("media count = %d", media_count);
+
+       if (media_count == 1) {
+               if (media_info != NULL && elm_check_state_get(media_info->check_item))
+                       vsd->media_chk_cnt = 1;
+               else
+                       vsd->media_chk_cnt = 0;
+       } else if (media_count > 1) {
+               it = elm_genlist_first_item_get(vsd->save_attachment_gl);
+
+               if (!strcmp(media_info->pfile_name, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_SAVE_ALL"))) {
+                       while (it) {
+                               MSG_VIEWER_MEDIA_INFO_S *tmp_media_info = (MSG_VIEWER_MEDIA_INFO_S *)elm_object_item_data_get(it);
+                               if (tmp_media_info) {
+                                       elm_check_state_set(tmp_media_info->check_item, elm_check_state_get(tmp_media_info->check_item));
+                               }
+
+                               it = elm_genlist_item_next_get(it);
+                       }
+
+                       if (elm_check_state_get(media_info->check_item))
+                               vsd->media_chk_cnt = media_count;
+                       else
+                               vsd->media_chk_cnt = 0;
+               } else {
+                       MSG_VIEWER_MEDIA_INFO_S *tmp_media_info = NULL;
+
+                       if (elm_check_state_get(media_info->check_item)) {
+                               vsd->media_chk_cnt++;
+
+                               D_MSG("media_chk_cnt = %d", vsd->media_chk_cnt);
+
+                               /* handle select  all */
+                               if (vsd->media_chk_cnt == media_count) {
+
+                                       D_MSG("vsd->media_chk_cnt == media_count]%d]", media_count);
+
+                                       it = elm_genlist_first_item_get(vsd->save_attachment_gl);
+                                       tmp_media_info = (MSG_VIEWER_MEDIA_INFO_S *)elm_object_item_data_get(it);
+                                       if (tmp_media_info) {
+                                               elm_check_state_set(tmp_media_info->check_item, EINA_TRUE);
+                                       }
+                               }
+                       } else {
+                               /* handle select all */
+                               if (vsd->media_chk_cnt == media_count) {
+
+                                       D_MSG("vsd->media_chk_cnt == media_count]%d]", media_count);
+
+                                       it = elm_genlist_first_item_get(vsd->save_attachment_gl);
+                                       tmp_media_info = (MSG_VIEWER_MEDIA_INFO_S *)elm_object_item_data_get(it);
+                                       if (tmp_media_info) {
+                                               elm_check_state_set(tmp_media_info->check_item, EINA_FALSE);
+                                       }
+                               }
+                               vsd->media_chk_cnt--;
+
+                               D_MSG("media_chk_cnt = %d", vsd->media_chk_cnt);
+                       }
+               }
+       }
+
+       if (vsd->save_button) {
+               if (vsd->media_chk_cnt > 0)
+                       elm_object_disabled_set(vsd->save_button, EINA_FALSE);
+               else
+                       elm_object_disabled_set(vsd->save_button, EINA_TRUE);
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_summary_view_rename_popup_entry_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL!");
+       D_MSG_RETM_IF(obj == NULL, "entry obj is NULL");
+
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       char file_ext[MSG_VIEWER_FILE_EXT_MAX_LEN + 1] = {0};
+       char file_name_without_ext[MSG_VIEWER_FILENAME_MAX_LEN + 1] = {0};
+
+       if (msg_viewer_util_get_file_ext(pAttach_info->pfile_name, file_ext, MSG_VIEWER_FILE_EXT_MAX_LEN)) {
+               strncpy(file_name_without_ext, pAttach_info->pfile_name, MSG_VIEWER_FILENAME_MAX_LEN);
+               file_name_without_ext[strlen(file_name_without_ext) - strlen(file_ext) - 1] = '\0';
+       }
+
+       char *enter_str = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+       if (enter_str == NULL) {
+               D_EMSG("enter_str is NULL");
+               return;
+       }
+
+       Evas_Object *btn = evas_object_data_get(obj, "ok_btn");
+
+       if (enter_str == NULL || strlen(g_strstrip(enter_str)) == 0  || !strcmp(file_name_without_ext, enter_str))
+               elm_object_disabled_set(btn, EINA_TRUE);
+       else
+               elm_object_disabled_set(btn, EINA_FALSE);
+
+       g_free(enter_str);
+}
+
+static void __msg_ui_viewer_summary_view_rename_popup_entry_activated_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       Evas_Object *entry = (Evas_Object *)obj;
+       Ecore_IMF_Context *context = NULL;
+
+       context = elm_entry_imf_context_get(entry);
+       ecore_imf_context_input_panel_hide(context);
+}
+
+static void __msg_ui_viewer_summary_view_rename_popup_do_next(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)pAttach_info->view_data;
+       D_MSG_RETM_IF(vsd == NULL, "vsd is NULL");
+
+       MSG_VIEWER_MEDIA_INFO_S *pNext_media_info = NULL;
+       PARSED_MMS_DATA_S *mms_data = vsd->mms_parsed_data;
+
+       if (vsd->saving_status == MSG_VIEWER_SAVING_ATTACHMENT) {
+               if (pAttach_info->media_index < pAttach_info->total_count - 1) {
+                       PARSED_MMS_ATTACH_DATA_S *attach_data = (PARSED_MMS_ATTACH_DATA_S *)vsd->mms_parsed_data->attach_data;
+                       pNext_media_info = eina_list_nth(attach_data->attach_list, pAttach_info->media_index + 1);
+                       msg_ui_viewer_summary_view_create_rename_popup(pNext_media_info);
+               } else {
+                       vsd->saving_status = MSG_VIEWER_SAVING_STATUS_NONE;
+                       /* connect handler again*/
+                       msg_ui_viewer_summary_view_connect_handler(vsd);
+               }
+       } else if (vsd->saving_status == MSG_VIEWER_SAVING_PAGE_MEDIA_N_ATTACHMENT) {
+               if (pAttach_info->media_type != MSG_VIEWER_MEDIA_ATTACH) {
+                       PARSED_MMS_PAGE_DATA_S *cur_page_data = NULL;
+                       PARSED_MMS_PAGE_DATA_S *next_page_data = NULL;
+                       PARSED_MMS_ATTACH_DATA_S *attach_data = NULL;
+                       bool found_next_item = false;
+
+                       D_MSG("current media index = %d, total count = %d", pAttach_info->media_index, pAttach_info->total_count);
+                       if (pAttach_info->media_index < pAttach_info->total_count - 1) {
+                               int cur_media_index = pAttach_info->media_index;
+
+                               cur_page_data = (PARSED_MMS_PAGE_DATA_S *)&vsd->mms_parsed_data->page_data[pAttach_info->page_index];
+
+                               while (cur_media_index < cur_page_data->media_count - 1) {
+                                       pNext_media_info = eina_list_nth(cur_page_data->insert_list, ++cur_media_index);
+                                       if (pNext_media_info && pNext_media_info->media_type != MSG_VIEWER_MEDIA_TEXT)
+                                               break;
+                                       pNext_media_info = NULL;
+                               }
+
+                               if (pNext_media_info == NULL) {
+                                       if (pAttach_info->page_index < mms_data->page_count - 1) {
+                                               int page_index = pAttach_info->page_index;
+                                               while (page_index < mms_data->page_count - 1) {
+                                                       next_page_data = (PARSED_MMS_PAGE_DATA_S *)&vsd->mms_parsed_data->page_data[++page_index];
+                                                       if (next_page_data->media_count > 0) {
+                                                               int next_media_index = 0;
+                                                               do {
+                                                                       pNext_media_info = eina_list_nth(next_page_data->insert_list, next_media_index++);
+                                    if (pNext_media_info && pNext_media_info->media_type != MSG_VIEWER_MEDIA_TEXT) {
+                                                                               found_next_item = true;
+                                                                               break;
+                                                                       }
+                                                                       pNext_media_info = NULL;
+                                                               } while (next_media_index < next_page_data->media_count);
+                                                       } else {
+                                                               continue;
+                                                       }
+
+                                                       if (found_next_item) break;
+                                               }
+
+                                               if (pNext_media_info == NULL && mms_data->attach_count > 0) {
+                                                       attach_data = (PARSED_MMS_ATTACH_DATA_S *)mms_data->attach_data;
+                                                       pNext_media_info = eina_list_nth(attach_data->attach_list, 0);
+                                               }
+                                       } else {
+                                               if (mms_data->attach_count > 0) {
+                                                       attach_data = (PARSED_MMS_ATTACH_DATA_S *)mms_data->attach_data;
+                                                       pNext_media_info = eina_list_nth(attach_data->attach_list, 0);
+                                               }
+                                       }
+                               }
+                       } else {
+                               D_MSG("current page index = %d, total page count = %d", pAttach_info->page_index, mms_data->page_count);
+
+                               if (pAttach_info->page_index < mms_data->page_count - 1) {
+                                       int page_index = pAttach_info->page_index;
+                                       while (page_index < mms_data->page_count - 1) {
+                                               next_page_data = (PARSED_MMS_PAGE_DATA_S *)&vsd->mms_parsed_data->page_data[++page_index];
+
+                                               if (next_page_data) {
+                                                       if (next_page_data->media_count > 0) {
+                                                               int next_media_index = 0;
+                                                               do {
+                                                                       pNext_media_info = eina_list_nth(next_page_data->insert_list, next_media_index++);
+                                                                       if (pNext_media_info != NULL && pNext_media_info->media_type != MSG_VIEWER_MEDIA_TEXT) {
+                                                                               found_next_item = true;
+                                                                               break;
+                                                                       }
+                                                                       pNext_media_info = NULL;
+                                                               } while (next_media_index < next_page_data->media_count);
+                                                       } else {
+                                                               continue;
+                                                       }
+                                               }
+
+                                               if (found_next_item) break;
+                                       }
+                               } else {
+                                       if (mms_data->attach_count > 0) {
+                                               attach_data = (PARSED_MMS_ATTACH_DATA_S *)mms_data->attach_data;
+                                               pNext_media_info = eina_list_nth(attach_data->attach_list, 0);
+                                       }
+                               }
+                       }
+
+                       if (pNext_media_info) {
+                               msg_ui_viewer_summary_view_create_rename_popup(pNext_media_info);
+                       } else {
+                               vsd->saving_status = MSG_VIEWER_SAVING_STATUS_NONE;
+                               /* connect handler again*/
+                               msg_ui_viewer_summary_view_connect_handler(vsd);
+                               return;
+                       }
+               } else {                /* attachment */
+                       if (pAttach_info->media_index < pAttach_info->total_count - 1) {
+                               int current_idx = pAttach_info->media_index;
+                               PARSED_MMS_ATTACH_DATA_S *attach_data = (PARSED_MMS_ATTACH_DATA_S *)vsd->mms_parsed_data->attach_data;
+                               while (current_idx < pAttach_info->total_count - 1) {
+                                       pNext_media_info = eina_list_nth(attach_data->attach_list, ++current_idx);
+                                       if (pNext_media_info)
+                                               break;
+                               }
+                       }
+
+                       if (pNext_media_info) {
+                               msg_ui_viewer_summary_view_create_rename_popup(pNext_media_info);
+                       } else {
+                               vsd->saving_status = MSG_VIEWER_SAVING_STATUS_NONE;
+                               /* connect handler again*/
+                               msg_ui_viewer_summary_view_connect_handler(vsd);
+                       }
+               }
+       }
+}
+
+static void __msg_ui_viewer_summary_view_rename_popup_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)pAttach_info->view_data;
+       D_MSG_RETM_IF(vsd == NULL, "vsd is NULL");
+
+       char file_ext[MSG_VIEWER_FILE_EXT_MAX_LEN + 1] = {0};
+
+       const char *new_filename = elm_entry_entry_get(vsd->rename_popup_entry);
+       D_SEC_MSG("Edited pfile_name = [%s]", new_filename);
+
+       msg_viewer_util_get_file_ext(pAttach_info->pfile_name, file_ext, MSG_VIEWER_FILE_EXT_MAX_LEN);
+       D_SEC_MSG("Original file extension = [%s]", file_ext);
+
+       MSG_BOOL result = 0;
+       char dir_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0};
+
+       /*get default file path*/
+       result = msg_viewer_util_get_default_path(dir_path, sizeof(dir_path));
+       if (result) {
+               char dst_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0,};
+               if (strlen(file_ext) > 0)
+                       snprintf(dst_path, sizeof(dst_path), "%s/%s.%s", dir_path, new_filename, file_ext);
+               else
+                       snprintf(dst_path, sizeof(dst_path), "%s/%s", dir_path, new_filename);
+
+               D_SEC_MSG("dst_path = [%s]", dst_path);
+
+               /* do not concern about same file name is exist */
+               char *result_path = msg_ui_viewer_util_copy_file(pAttach_info->pfile_path, dst_path, false, false);
+               if (result_path) {
+                       free(result_path);
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVED_IN_MY_FILES"));
+               } else {
+                       D_SEC_EMSG("msg_ui_viewer_util_copy_file is failed, [src] = %s, [dst] = %s", pAttach_info->pfile_path, dst_path);
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+               }
+       } else {
+               D_EMSG("msg_viewer_util_get_default_path is failed");
+               notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_SAVE"));
+               return;
+       }
+
+       msg_ui_viewer_summary_view_rename_popup_destroy(vsd);
+       vsd->rename_popup_entry = NULL;
+
+       __msg_ui_viewer_summary_view_rename_popup_do_next(pAttach_info);
+}
+
+void msg_ui_viewer_summary_view_rename_popup_destroy(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       if (vsd->popup && vsd->popup_type == MSG_VIEWER_RENAME_ATTACHMENT_POPUP) {
+               evas_object_event_callback_del(vsd->popup, EVAS_CALLBACK_MOUSE_UP, __msg_ui_viewer_summary_view_rename_popup_mouseup_cb);
+               eext_object_event_callback_del(vsd->popup, EEXT_CALLBACK_BACK, __msg_ui_viewer_summary_view_rename_popup_cancel_clicked_cb);
+
+               evas_object_del(vsd->popup);
+               vsd->popup = NULL;
+               vsd->popup_type = MSG_VIEWER_POPUP_NONE;
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_summary_view_rename_popup_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)pAttach_info->view_data;
+       D_MSG_RETM_IF(vsd == NULL, "vsd is NULL");
+
+       D_MSG("popup type = %d", vsd->popup_type);
+
+       msg_ui_viewer_summary_view_rename_popup_destroy(vsd);
+       vsd->rename_popup_entry = NULL;
+
+       __msg_ui_viewer_summary_view_rename_popup_do_next(pAttach_info);
+}
+
+static void __msg_ui_viewer_summary_view_rename_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL!");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL!");
+       Evas_Event_Mouse_Up *ev = event_info;
+
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)pAttach_info->view_data;
+       D_MSG_RETM_IF(vsd == NULL, "vsd is NULL");
+
+       D_MSG("button type = %d", ev->button);
+       D_MSG("popup type = %d", vsd->popup_type);
+
+       if (ev->button == 3) {
+               msg_ui_viewer_summary_view_rename_popup_destroy(vsd);
+               vsd->rename_popup_entry = NULL;
+
+               __msg_ui_viewer_summary_view_rename_popup_do_next(pAttach_info);
+       }
+}
+
+void __msg_ui_viewer_summary_view_check_filename_string(void *data, Evas_Object *entry, char **text)
+{
+       D_MSG_RETM_IF(entry == NULL, "Parameter Entry is Invalid");
+       D_MSG_RETM_IF((!text || !(*text)), "Parameter Text is Invalid");
+
+       char *utf8_str = elm_entry_markup_to_utf8(*text);
+
+       if (utf8_str && (g_utf8_strlen(utf8_str, -1) > 0)) {
+               if (strstr("\\:/*?\"<>|", utf8_str) != NULL)
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSG_TPOP_INVALID_CHARACTER_ENTERED"));
+       }
+
+       if (utf8_str)
+               free(utf8_str);
+}
+
+static void __msg_ui_viewer_summary_view_entry_max_chars_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSG_TPOP_MAXIMUM_NUMBER_OF_CHARACTERS_EXCEEDED"));
+}
+
+void msg_ui_viewer_summary_view_create_rename_popup(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)pAttach_info->view_data;
+
+       Evas_Object *btn1 = NULL;
+       Evas_Object *btn2 = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *entry = NULL;
+       Evas_Object *popup = NULL;
+
+       Elm_Entry_Filter_Limit_Size limit_filter;
+       Elm_Entry_Filter_Accept_Set reject_set = {
+               .accepted = NULL,
+               .rejected = "\\:/*?\"<>|"
+       };
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       /* create popup */
+       popup = elm_popup_add(vsd->navi_frame);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, __msg_ui_viewer_summary_view_rename_popup_mouseup_cb, (void *)pAttach_info);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, __msg_ui_viewer_summary_view_rename_popup_cancel_clicked_cb, (void *)pAttach_info);
+
+       /* create custom popup inner layout */
+       layout = elm_layout_add(popup);
+       elm_layout_file_set(layout, MSG_VIEWER_CUSTOM_EDJ, "viewer/popup/entry");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_object_domain_translatable_part_text_set(layout, "popup.text", MESSAGE_PKGNAME, "IDS_MSGF_POP_IF_YOU_DONT_WANT_TO_REPLACE_THE_FILE_RENAME_IT");
+
+       entry = elm_entry_add(layout);
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+       elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_NORMAL);
+       elm_entry_input_panel_return_key_type_set(entry, ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE);
+       elm_entry_prediction_allow_set(entry, EINA_FALSE);
+       elm_entry_autocapital_type_set(entry, ELM_AUTOCAPITAL_TYPE_SENTENCE);
+       elm_entry_markup_filter_append(entry, __msg_ui_viewer_summary_view_check_filename_string, NULL);
+       elm_entry_markup_filter_append(entry, elm_entry_filter_accept_set, &reject_set);
+       eext_entry_selection_back_event_allow_set(entry, EINA_TRUE);
+
+       /*get default file path*/
+       char font_size_str[DEF_BUF_LEN_S + 1] = {0,};
+       snprintf(font_size_str, sizeof(font_size_str), "DEFAULT='font_size=%d'", vsd->font_size);
+       elm_entry_text_style_user_push(entry, font_size_str);
+       elm_entry_scrollable_set(entry, EINA_TRUE);
+
+       char file_ext[MSG_VIEWER_FILE_EXT_MAX_LEN + 1] = {0};
+       char file_name_without_ext[MSG_VIEWER_FILENAME_MAX_LEN + 1] = {0};
+
+       if (msg_viewer_util_get_file_ext(pAttach_info->pfile_name, file_ext, MSG_VIEWER_FILE_EXT_MAX_LEN)) {
+               strncpy(file_name_without_ext, pAttach_info->pfile_name, MSG_VIEWER_FILENAME_MAX_LEN);
+               file_name_without_ext[strlen(file_name_without_ext) - strlen(file_ext) - 1] = '\0';
+       }
+
+       limit_filter.max_char_count = 0;
+       limit_filter.max_byte_count = MSG_VIEWER_FILENAME_MAX_LEN - strlen(file_ext) - 1;
+       elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter);
+
+       if (strlen(file_ext) > 0 && strlen(file_name_without_ext) > 0)
+               elm_object_text_set(entry, file_name_without_ext);
+       else
+               elm_object_text_set(entry, pAttach_info->pfile_name);
+
+       elm_entry_cursor_end_set(entry);
+
+       evas_object_smart_callback_add(entry, "maxlength,reached", __msg_ui_viewer_summary_view_entry_max_chars_cb, NULL);
+       evas_object_smart_callback_add(entry, "changed", __msg_ui_viewer_summary_view_rename_popup_entry_changed_cb, (void *)pAttach_info);
+       evas_object_smart_callback_add(entry, "activated", __msg_ui_viewer_summary_view_rename_popup_entry_activated_cb, NULL);
+
+       elm_object_part_content_set(layout, "popup.swallow.entry", entry);
+       evas_object_show(entry);
+       evas_object_show(layout);
+
+       elm_object_content_set(popup, layout);
+
+       /* create button */
+       btn1 = elm_button_add(popup);
+       elm_object_style_set(btn1, "popup");
+       elm_object_domain_translatable_text_set(btn1, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", __msg_ui_viewer_summary_view_rename_popup_cancel_clicked_cb, (void *)pAttach_info);
+
+       btn2 = elm_button_add(popup);
+       elm_object_style_set(btn2, "popup");
+       elm_object_domain_translatable_text_set(btn2, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       elm_object_part_content_set(popup, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", __msg_ui_viewer_summary_view_rename_popup_ok_clicked_cb, (void *)pAttach_info);
+       evas_object_data_set(entry, "ok_btn", btn2);
+       elm_object_disabled_set(btn2, EINA_TRUE);
+
+       evas_object_show(popup);
+
+       vsd->rename_popup_entry = entry;
+       vsd->popup = popup;
+       vsd->popup_type = MSG_VIEWER_RENAME_ATTACHMENT_POPUP;
+
+       elm_object_focus_set(entry, EINA_TRUE);
+
+       elm_object_focus_next_object_set(entry, btn1, ELM_FOCUS_DOWN);
+       elm_object_focus_next_object_set(entry, btn1, ELM_FOCUS_RIGHT);
+       elm_object_focus_next_object_set(btn1, entry, ELM_FOCUS_LEFT);
+       elm_object_focus_next_object_set(btn1, btn2, ELM_FOCUS_RIGHT);
+       elm_object_focus_next_object_set(btn2, btn1, ELM_FOCUS_LEFT);
+       elm_object_focus_next_object_set(btn1, entry, ELM_FOCUS_UP);
+       elm_object_focus_next_object_set(btn2, entry, ELM_FOCUS_UP);
+
+       msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+}
diff --git a/viewer/src/msg-ui-viewer-summary-view-main.c b/viewer/src/msg-ui-viewer-summary-view-main.c
new file mode 100755 (executable)
index 0000000..783ef77
--- /dev/null
@@ -0,0 +1,1814 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-ui-viewer-main.h"
+#include "msg-ui-viewer-summary-view.h"
+#include "msg-ui-viewer-utility.h"
+#include "msg-ui-common-utility.h"
+#include "msg-ui-image-resource.h"
+#include "msg-file-util.h"
+
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+#include <contacts.h>
+
+#include <Ecore_X.h>
+#include <utilX.h>
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+static Evas_Object *__msg_ui_viewer_summary_view_create_naviframe(Evas_Object *parent);
+static void __msg_ui_viewer_summary_view_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_create_content_layout(void *data);
+
+static void __msg_ui_viewer_summary_view_create_title_layout(void *data);
+static void __msg_ui_viewer_summary_view_update_title_layout(void *data);
+static void __msg_ui_viewer_summary_view_create_subject_layout(void *data);
+static void __msg_ui_viewer_summary_view_create_control_toolbar(void *data);
+static Eina_Bool __msg_ui_viewer_summary_view_focused_in_cb(void *data, int type, void *event);
+static Eina_Bool __msg_ui_viewer_summary_view_focused_out_cb(void *data, int type, void *event);
+static Eina_Bool __msg_ui_viewer_summary_view_back_button_cb(void *data, Elm_Object_Item *it);
+static void __msg_ui_viewer_summary_view_contact_changed_cb(const char *view_uri, void *user_data);
+
+static Evas_Event_Flags __msg_ui_viewer_summary_view_zoom_start(void *data, void *event_info);
+static Evas_Event_Flags __msg_ui_viewer_summary_view_zoom_move(void *data, void *event_info);
+static Evas_Event_Flags __msg_ui_viewer_summary_view_zoom_end_n_abort(void *data, void *event_info);
+
+static void __msg_ui_viewer_summary_view_timezone_change_cb(system_settings_key_e key, void *data);
+static void __msg_ui_viewer_summary_view_timezone_change_cb_main(void *data);
+/*==================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+void msg_ui_viewer_summary_view_init(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       vsd->main_window = NULL;
+       vsd->navi_frame = NULL;
+       vsd->navi_item = NULL;
+       vsd->navi_title_layout = NULL;
+       vsd->content_layout = NULL;
+       vsd->content_subject = NULL;
+       vsd->content_scroller = NULL;
+       vsd->content_box = NULL;
+       vsd->content_image = NULL;
+       vsd->content_audio = NULL;
+       vsd->content_entry = NULL;
+       vsd->content_saveall_layout = NULL;
+       vsd->content_bg_rect = NULL;
+       vsd->content_top_padding = NULL;
+       vsd->content_mid_padding_1 = NULL;
+       vsd->content_mid_padding_2 = NULL;
+       vsd->content_bottom_padding = NULL;
+       vsd->msgHandle = NULL;
+       vsd->msgID = -1;
+       vsd->msg_type = 0;
+       vsd->mode = MSG_VIEWER_DEFAULT_MODE;
+       vsd->zoom_value = 0.0;
+       vsd->zoom_delta = 0.0;
+       vsd->msg_t = NULL;
+       vsd->mms_t = NULL;
+       vsd->popup = NULL;
+       vsd->popup_type = MSG_VIEWER_POPUP_NONE;
+       vsd->is_reset = false;
+       vsd->is_rotated = false;
+       vsd->volkey_release_handler = NULL;
+       vsd->volkey_press_handler = NULL;
+       vsd->vol_up_key_longpress = NULL;
+       vsd->vol_down_key_longpress = NULL;
+       vsd->ug_destroy_initiated = false;
+
+       memset(&vsd->cbs, 0x0, sizeof(struct ug_cbs));
+
+       vsd->title_th = elm_theme_new();
+       elm_theme_ref_set(vsd->title_th, NULL);
+       elm_theme_extension_add(vsd->title_th, MSG_CUSTOM_WINSET_EDJ);
+
+       vsd->button_th = elm_theme_new();
+       elm_theme_ref_set(vsd->button_th, NULL);
+       elm_theme_extension_add(vsd->button_th, MSG_VIEWER_CUSTOM_EDJ);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_summary_view_contact_changed_cb(const char *view_uri, void *user_data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(user_data == NULL, "user_data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)user_data;
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vsd->viewer_main;
+       D_MSG_RETM_IF(vmd == NULL, "vmd is NULL");
+       D_MSG_RETM_IF(vmd->destroy_on_close, "viewer will be destroyed!");
+
+       __msg_ui_viewer_summary_view_update_title_layout(vsd);
+
+       if (vsd->mode == MSG_VIEWER_RECIPIENT_MODE) {
+               Elm_Object_Item *it = elm_genlist_first_item_get(vsd->recipient_list);
+               while (it) {
+                       MSG_VIEWER_ADDR_INFO *addr_info = (MSG_VIEWER_ADDR_INFO *)elm_object_item_data_get(it);
+                       addr_info->person_id = msg_viewer_util_get_index_by_recipient(addr_info->address);
+                       if (addr_info->person_id > 0) {
+                               bzero(addr_info->name, sizeof(addr_info->name));
+                               msg_viewer_util_get_display_name_by_index(addr_info->person_id, addr_info->name, sizeof(addr_info->name));
+                       }
+                       elm_object_item_data_set(it, addr_info);
+                       elm_genlist_item_update(it);
+
+                       it = elm_genlist_item_next_get(it);
+               }
+       }
+}
+
+MSG_BOOL msg_ui_viewer_create_summary_view(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETVM_IF(vsd->msg_t == NULL, FALSE, "vsd->msg_t is NULL");
+
+       Evas_Object *layout = NULL;
+       bool reset = false;
+
+       layout = msg_ui_viewer_get_main_layout(vsd->viewer_main);
+       D_MSG_RETVM_IF(layout == NULL, FALSE, "layout is NULL");
+
+       int rotate = elm_win_rotation_get(vsd->main_window);
+       vsd->is_rotated = (rotate == 90 || rotate == 270) ? true : false;
+
+       /*get msg type*/
+       msg_get_int_value(vsd->msg_t, MSG_MESSAGE_TYPE_INT, &vsd->msg_type);
+
+       /* create working dir if mms */
+       if (vsd->msg_type == MSG_TYPE_MMS) {
+               vsd->working_path = msg_ui_viewer_util_create_working_dir();
+               if (!vsd->working_path) {
+                       D_EMSG("msg_ui_viewer_util_create_working_dir is failed");
+                       return FALSE;
+               }
+       }
+
+       /* set locale and time format */
+       msg_ui_summary_viewer_get_locale_n_datetime_ptn(vsd);
+       msg_ui_summary_viewer_get_time_format(vsd);
+
+       if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED, __msg_ui_viewer_summary_view_timezone_change_cb, (void *)vsd) < 0) {
+               D_SEC_EMSG("Fail to register SYSTEM_SETTINGS_KEY_TIME_CHANGED key");
+       }
+
+       if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR , __msg_ui_viewer_summary_view_timezone_change_cb, (void *)vsd) < 0) {
+               D_SEC_EMSG("Fail to register system setting time format");
+       }
+
+       /* create naviframe */
+       if (!vsd->navi_frame) {
+               vsd->navi_frame = __msg_ui_viewer_summary_view_create_naviframe(layout);
+               D_MSG_RETVM_IF(vsd->navi_frame == NULL, FALSE, "vsd->navi_frame is NULL");
+               msg_ui_viewer_set_navi_frame(vsd->viewer_main, vsd->navi_frame);
+       } else {
+               D_MSG("navi_frame is already created");
+               reset = true;
+       }
+
+       vsd->effect_layout = elm_layout_add(vsd->navi_frame);
+       elm_layout_theme_set(vsd->effect_layout, "layout", "application", "noindicator");
+       evas_object_size_hint_weight_set(vsd->effect_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(vsd->effect_layout);
+
+       /* add container layout*/
+       vsd->effect_bg_layout = elm_layout_add(vsd->navi_frame);
+       elm_layout_file_set(vsd->effect_bg_layout, MSG_VIEWER_THEME, "bg_layout");
+       evas_object_show(vsd->effect_bg_layout);
+       elm_object_part_content_set(vsd->effect_layout, "elm.swallow.content", vsd->effect_bg_layout);
+
+       if (vsd->view_order == VIEWER_PREVIOUS_MSG) {
+               edje_object_signal_emit(_EDJ(vsd->effect_bg_layout), "show,blank_left,signal", "edje");
+       } else if (vsd->view_order == VIEWER_NEXT_MSG) {
+               edje_object_signal_emit(_EDJ(vsd->effect_bg_layout), "show,blank_right,signal", "edje");
+       }
+
+       /*create content layout*/
+       __msg_ui_viewer_summary_view_create_content_layout(vsd);
+
+       __msg_ui_viewer_summary_view_create_subject_layout(vsd);
+
+       /* fill content */
+       if (vsd->msg_type == MSG_TYPE_MMS) {
+               msg_ui_viewer_summary_view_fill_mms_context(vsd);
+       } else {
+               msg_ui_viewer_summary_view_fill_text_content(vsd);
+       }
+
+       /* create gesture layer */
+       Evas_Object *gesture = elm_gesture_layer_add(vsd->content_layout);
+       if (elm_gesture_layer_attach(gesture, vsd->content_layout) == EINA_TRUE) {
+               elm_gesture_layer_cb_set(gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_START, __msg_ui_viewer_summary_view_zoom_start, vsd);
+               elm_gesture_layer_cb_set(gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_MOVE, __msg_ui_viewer_summary_view_zoom_move, vsd);
+               elm_gesture_layer_cb_set(gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_END, __msg_ui_viewer_summary_view_zoom_end_n_abort, vsd);
+               elm_gesture_layer_cb_set(gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_ABORT, __msg_ui_viewer_summary_view_zoom_end_n_abort, vsd);
+       }
+
+       elm_object_part_content_set(vsd->effect_bg_layout, "content", vsd->content_layout);
+
+       if (reset == false) {
+               /* create naviframe item and push */
+               vsd->navi_item = elm_naviframe_item_push(vsd->navi_frame, NULL, NULL, NULL, vsd->effect_layout, "empty");
+       } else {
+               elm_object_part_content_set(vsd->navi_frame, "elm.swallow.content", vsd->effect_layout);
+               vsd->navi_item = elm_naviframe_top_item_get(vsd->navi_frame);
+       }
+
+       elm_naviframe_item_pop_cb_set(vsd->navi_item, __msg_ui_viewer_summary_view_back_button_cb, (void *)vsd);
+
+       /* create naviframe title layout and set */
+       __msg_ui_viewer_summary_view_create_title_layout(vsd);
+
+       /* font size set */
+       msg_ui_viewer_summary_view_apply_font_size(vsd);
+       msg_ui_viewer_summary_view_set_font_size(vsd, MSG_VIEWER_FONT_CHANGE_LOAD_SETTING);
+
+       /* create control toolbar */
+       __msg_ui_viewer_summary_view_create_control_toolbar(vsd);
+
+       /* connect handlers */
+       msg_ui_viewer_summary_view_connect_handler(vsd);
+
+       /* for checking focus */
+       vsd->focus_in = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, __msg_ui_viewer_summary_view_focused_in_cb, vsd);
+       vsd->focus_out = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, __msg_ui_viewer_summary_view_focused_out_cb, vsd);
+
+       /* add storage changed callback for updating msg_id_list of sweep event */
+       msg_reg_storage_change_callback(vsd->msgHandle, &msg_ui_viewer_msg_storage_change_cb, (void *)vsd->viewer_main);
+
+       /* add contact changed cb for CONTACT UPDATE */
+       contacts_db_add_changed_cb(_contacts_contact._uri, __msg_ui_viewer_summary_view_contact_changed_cb, (void *)vsd);
+
+       if (reset)
+               edje_object_signal_emit(_EDJ(vsd->effect_bg_layout), "animate,in,signal", "edje");
+
+       int window_width = 0;
+       int window_height = 0;
+
+       /*get window size*/
+       elm_win_screen_size_get(vsd->main_window, NULL, NULL, &window_width, &window_height);
+       vsd->window_width = window_width;
+       vsd->window_height = window_height;
+
+       /*set read status*/
+       bool readStatus = false;
+       msg_get_bool_value(vsd->msg_t, MSG_MESSAGE_READ_BOOL, &readStatus);
+
+       if (!readStatus)
+               msg_update_read_status(vsd->msgHandle, vsd->msgID, true);
+
+       D_LEAVE;
+       return TRUE;
+}
+
+void msg_ui_viewer_destroy_summary_view(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       if (vsd->popup) {
+               if (vsd->popup_type != MSG_VIEWER_RENAME_ATTACHMENT_POPUP)
+                       msg_ui_viewer_summary_view_popup_destroy(vsd);
+               else
+                       msg_ui_viewer_summary_view_rename_popup_destroy(vsd);
+       }
+
+       if (vsd->title_th) {
+               elm_theme_extension_del(vsd->title_th, MSG_CUSTOM_WINSET_EDJ);
+               elm_theme_free(vsd->title_th);
+               vsd->title_th = NULL;
+       }
+
+       if (vsd->button_th) {
+               elm_theme_extension_del(vsd->button_th, MSG_VIEWER_CUSTOM_EDJ);
+               elm_theme_free(vsd->button_th);
+               vsd->button_th = NULL;
+       }
+
+       if (vsd->focus_in) {
+               ecore_event_handler_del(vsd->focus_in);
+               vsd->focus_in = NULL;
+       }
+
+       if (vsd->focus_out) {
+               ecore_event_handler_del(vsd->focus_out);
+               vsd->focus_out = NULL;
+       }
+
+       if (vsd->date_ptn) {
+               free(vsd->date_ptn);
+               vsd->date_ptn = NULL;
+       }
+
+       if (vsd->time12_ptn) {
+               free(vsd->time12_ptn);
+               vsd->time12_ptn = NULL;
+       }
+
+       if (vsd->time24_ptn) {
+               free(vsd->time24_ptn);
+               vsd->time24_ptn = NULL;
+       }
+
+       if (vsd->list_popup_idler) {
+               ecore_idler_del(vsd->list_popup_idler);
+               vsd->list_popup_idler = NULL;
+       }
+
+       if (vsd->load_idler) {
+               ecore_idler_del(vsd->load_idler);
+               vsd->load_idler = NULL;
+       }
+
+       msg_ui_viewer_summary_view_cleanup_parsed_mms_message(vsd);
+
+       msg_ui_viewer_summary_view_disconnect_handler(vsd, !vsd->keep_keygrab);
+
+       contacts_db_remove_changed_cb(_contacts_contact._uri, __msg_ui_viewer_summary_view_contact_changed_cb, (void *)vsd);
+
+       if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED) < 0) {
+               D_EMSG("Fail to remove SYSTEM_SETTINGS_KEY_TIME_CHANGED key");
+       }
+
+       if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR) < 0) {
+               D_EMSG("Fail to remove SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR key");
+       }
+
+       if (vsd->working_path) {
+           msg_file_recursive_rm(vsd->working_path);
+               g_free(vsd->working_path);
+               vsd->working_path = NULL;
+       }
+
+       msg_ui_viewer_remove_thread_msg_id_list(vsd->viewer_main);
+}
+
+
+static Evas_Object *__msg_ui_viewer_summary_view_create_naviframe(Evas_Object *parent)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(parent == NULL, NULL, "parent is NULL");
+       Evas_Object *navi_frame = NULL;
+
+       navi_frame = elm_naviframe_add(parent);
+
+       elm_naviframe_prev_btn_auto_pushed_set(navi_frame, EINA_FALSE);
+       eext_object_event_callback_add(navi_frame, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
+       eext_object_event_callback_add(navi_frame, EEXT_CALLBACK_MORE, eext_naviframe_more_cb, NULL);
+
+       elm_object_part_content_set(parent, "elm.swallow.content", navi_frame);
+       evas_object_show(navi_frame);
+       elm_object_focus_set(navi_frame, EINA_TRUE);
+
+       D_LEAVE;
+       return navi_frame;
+}
+
+static void __msg_ui_viewer_summary_view_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       Evas_Event_Mouse_Down *ev = event_info;
+
+       vsd->ctrl_start_x = ev->canvas.x;
+       vsd->ctrl_start_y = ev->canvas.y;
+}
+
+static void __msg_ui_viewer_summary_view_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETM_IF(vsd == NULL, "vsd is NULL!");
+       Evas_Event_Mouse_Up *ev = event_info;
+
+       if (vsd->ctrl_start_x == -1 || vsd->ctrl_start_y == -1) {
+               D_MSG("No sweep action after zoom event");
+               return;
+       }
+
+       vsd->ctrl_end_x = ev->canvas.x;
+       vsd->ctrl_end_y = ev->canvas.y;
+
+       if (vsd->internal_mode == VIEWER_INTERNAL_NONE) {
+               int screen_width = 0;
+               int screen_height = 0;
+               int rotate = 0;
+
+               rotate = elm_win_rotation_get(vsd->main_window);
+               if (rotate == 0 || rotate == 180) {     /*PORTRAIT mode*/
+                       screen_width = vsd->window_width;
+                       screen_height = vsd->window_height;
+               } else if (rotate == 90 || rotate == 270) {     /*LANDSCAPE mode*/
+                       screen_width = vsd->window_height;
+                       screen_height = vsd->window_width;
+               } else {
+                       D_EMSG("Invalid orient value");
+                       return;
+               }
+
+               D_MSG("move_x = %d, move_y = %d, screen_width = %d", vsd->ctrl_end_x - vsd->ctrl_start_x, abs(vsd->ctrl_end_y - vsd->ctrl_start_y),     screen_width);
+
+               int msgid = -1;
+               /* sweep to previous message */
+               if ((vsd->ctrl_end_x - vsd->ctrl_start_x > screen_width / 3) && (abs(vsd->ctrl_end_y - vsd->ctrl_start_y) < screen_height / 5)) {
+                       app_control_h svc_handle;
+                       char msgId[DEF_BUF_LEN_S] = {0,};
+                       msgid = msg_ui_summary_viewer_get_convmsg_id_by_order(vsd, VIEWER_PREVIOUS_MSG);
+
+                       if (msgid != -1) {
+                               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                       D_EMSG("app_control_create() is failed !!");
+                               } else {
+                                       snprintf(msgId, DEF_BUF_LEN_S, "%d", msgid);
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, msgId);
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_PAGE_CHANGE, MSG_BUNDLE_VALUE_PAGE_PREV);
+                                       vsd->is_reset = true;
+
+                                       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vsd->viewer_main;
+                                       ug_send_message(vmd->viewer_ug, svc_handle);
+                                       app_control_destroy(svc_handle);
+                               }
+                       }
+               } else if ((vsd->ctrl_start_x - vsd->ctrl_end_x > screen_width / 3) && (abs(vsd->ctrl_end_y - vsd->ctrl_start_y) < screen_height / 5)) { /* sweep to next message */
+                       app_control_h svc_handle;
+                       char msgId[DEF_BUF_LEN_S] = {0,};
+                       msgid = msg_ui_summary_viewer_get_convmsg_id_by_order(vsd, VIEWER_NEXT_MSG);
+
+                       if (msgid != -1) {
+                               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                       D_EMSG("app_control_create() is failed !!");
+                               } else {
+                                       snprintf(msgId, DEF_BUF_LEN_S, "%d", msgid);
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, msgId);
+                                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_PAGE_CHANGE, MSG_BUNDLE_VALUE_PAGE_NEXT);
+                                       vsd->is_reset = true;
+
+                                       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vsd->viewer_main;
+                                       ug_send_message(vmd->viewer_ug, svc_handle);
+                                       app_control_destroy(svc_handle);
+                               }
+                       }
+               }
+       }
+}
+
+static void __msg_ui_viewer_summary_view_create_content_layout(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       Evas_Object *layout = NULL;
+       Evas_Object *scroller = NULL;
+       Evas_Object *box = NULL;
+       Evas_Object *bg = NULL;
+
+       /* create content layout */
+       layout = elm_layout_add(vsd->navi_frame);
+       D_MSG_RETM_IF(layout == NULL, "layout is NULL");
+
+       elm_layout_file_set(layout, MSG_VIEWER_THEME, "viewer_main");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(layout);
+
+       /*create scroller*/
+       scroller = elm_scroller_add(layout);
+       elm_object_style_set(scroller, "effect");
+       evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_bounce_set(scroller, FALSE, TRUE);
+       elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+       elm_object_part_content_set(layout, "viewer.body", scroller);
+       evas_object_show(scroller);
+
+       /* create content box */
+       box = elm_box_add(layout);
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(box, EVAS_HINT_FILL, 0.0);
+       elm_box_homogeneous_set(box, EINA_FALSE);
+       evas_object_show(box);
+       elm_object_content_set(scroller, box);
+
+       /* bg color rectangular */
+       bg = evas_object_rectangle_add(evas_object_evas_get(layout));
+
+       evas_object_color_set(bg, COLOR_GRAY);
+
+       elm_object_part_content_set(layout,  "viewer.body.bg", bg);
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, 0.0);
+       evas_object_show(bg);
+
+       vsd->content_layout = layout;
+       vsd->content_scroller = scroller;
+       vsd->content_box = box;
+       vsd->content_bg_rect = bg;
+
+       evas_object_event_callback_add(vsd->content_layout, EVAS_CALLBACK_MOUSE_DOWN, __msg_ui_viewer_summary_view_mouse_down_cb, (void *)vsd);
+       evas_object_event_callback_add(vsd->content_layout, EVAS_CALLBACK_MOUSE_UP, __msg_ui_viewer_summary_view_mouse_up_cb, (void *)vsd);
+}
+
+static void __msg_ui_viewer_summary_view_create_subject_layout(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETM_IF(vsd->msg_t == NULL, "vsd->msg_t is NULL");
+
+       char subjText[MAX_SUBJECT_LEN];
+       char buf[DEF_BUF_LEN_S] = {0,};
+
+       /* set SUBJECT layout */
+       Evas_Object *subj_layout = elm_layout_add(vsd->content_layout);
+       elm_layout_file_set(subj_layout, MSG_VIEWER_THEME, "subject/pageindex");
+       evas_object_size_hint_weight_set(subj_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(subj_layout);
+       vsd->content_subject = subj_layout;
+
+       if (vsd->msg_type == MSG_TYPE_MMS) {
+               msg_get_str_value(vsd->msg_t, MSG_MESSAGE_SUBJECT_STR, subjText, MAX_SUBJECT_LEN);
+               D_SEC_MSG("subject text is %s", subjText);
+
+               if (subjText[0] != '\0') {
+                       edje_object_part_text_set(_EDJ(vsd->content_subject), "subject/text", subjText);
+               } else {
+                       snprintf(buf, sizeof(buf), "(%s)", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_NO_SUBJECT"));
+                       edje_object_part_text_set(_EDJ(vsd->content_subject), "subject/text", buf);
+               }
+       } else {
+               int msg_time = 0;
+               msg_get_int_value(vsd->msg_t, MSG_MESSAGE_DISPLAY_TIME_INT, &msg_time);
+
+               char *time_str = NULL;
+               char *date_str = msg_common_get_formatted_date(vsd->locale, vsd->date_ptn, (void *)&msg_time);
+
+               if (vsd->time_fmt == MSG_TIME_FORMAT_24H) {
+                       time_str = msg_common_get_formatted_date(vsd->locale, vsd->time24_ptn, (void *)&msg_time);
+               } else {
+                       time_str = msg_common_get_formatted_date(vsd->locale, vsd->time12_ptn, (void *)&msg_time);
+               }
+
+               if (date_str && time_str) {
+                       D_SEC_MSG("Changed date = %s and time str = %s", date_str, time_str);
+                       snprintf(buf, sizeof(buf), "%s %s", date_str, time_str);
+               }
+
+               if (date_str)
+                       free(date_str);
+
+               if (time_str)
+                       free(time_str);
+
+               edje_object_part_text_set(_EDJ(vsd->content_subject), "subject/text", buf);
+       }
+
+       elm_object_part_content_set(vsd->content_layout, "viewer.swallow.subject", vsd->content_subject);
+}
+
+static void __msg_ui_viewer_summary_view_create_title_layout(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETM_IF(vsd->msg_t == NULL, "vsd->msg_t is NULL");
+
+       char display_name[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+       char title_main_text[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+
+       char *address = NULL;
+       int person_id = 0;
+       int addr_count = 0;
+       bool is_valid_num = false;
+       bool is_valid_email = false;
+       bool is_unknown = false;
+
+       Evas_Object *title_button = NULL;
+
+       if (vsd->navi_title_layout) {
+               elm_object_item_part_content_unset(vsd->navi_item, "title");
+               evas_object_del(vsd->navi_title_layout);
+               vsd->navi_title_layout = NULL;
+       }
+
+       int rotation = elm_win_rotation_get(vsd->main_window);
+       Evas_Object     *title_layout = elm_layout_add(vsd->navi_frame);
+
+       if (rotation == 0 || rotation == 180)
+               elm_layout_file_set(title_layout, MSG_VIEWER_THEME, "title");
+       else
+               elm_layout_file_set(title_layout, MSG_VIEWER_THEME, "title_horizontal");
+
+       evas_object_size_hint_weight_set(title_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(title_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_object_tree_focus_allow_set(title_layout, EINA_TRUE);
+       evas_object_show(title_layout);
+
+       msg_viewer_util_get_thread_nth_address(vsd->msgHandle, vsd->msg_t, 0, &address);
+
+       if (address == NULL || strlen(address) == 0) {
+               is_unknown = true;
+       } else {
+               char *normalized_number = NULL;
+               addr_count = msg_viewer_util_get_thread_address_count(vsd->msgHandle, vsd->msg_t);
+               normalized_number = msg_common_make_normalized_number(address);
+               if (normalized_number) {
+                       is_valid_num = msg_common_is_valid_phone_number(normalized_number);
+
+                       if (is_valid_num)
+                               person_id = msg_viewer_util_get_index_by_recipient(address);
+
+                       free(normalized_number);
+                       normalized_number = NULL;
+               } else {
+                       is_valid_num = msg_common_is_valid_phone_number(address);
+                       is_valid_email = msg_common_is_valid_email_addr(address);
+
+                       if (is_valid_num || is_valid_email)
+                               person_id = msg_viewer_util_get_index_by_recipient(address);
+               }
+       }
+
+       /* Get Main text */
+       if (is_valid_num || is_valid_email) {
+               if (person_id > 0) {
+                       msg_viewer_util_get_display_name_by_index(person_id, display_name, sizeof(display_name));
+
+                       if (display_name[0] != '\0') {
+                               snprintf(title_main_text, sizeof(title_main_text), "%s", display_name);
+                       } else {
+                               D_MSG("Contact added, But there is no display name");
+                               snprintf(title_main_text, sizeof(title_main_text), "%s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_NO_NAME"));
+                       }
+               } else {
+                       if (address)
+                               snprintf(title_main_text, sizeof(title_main_text), "%s", address);
+               }
+       } else {
+               if (!is_unknown && address)
+                       snprintf(title_main_text, sizeof(title_main_text), "%s", address);
+       }
+
+       if ((is_valid_num || is_valid_email) && !is_unknown) {
+               int folder_id = MSG_MAX_FOLDER_ID;
+               msg_get_int_value(vsd->msg_t, MSG_MESSAGE_FOLDER_ID_INT, &folder_id);
+
+                if (folder_id == MSG_OUTBOX_ID || folder_id == MSG_SENTBOX_ID) {
+                       if (addr_count > 1) {
+                               char title_text[DEF_BUF_LEN+1] = {0,};
+                               snprintf(title_text, sizeof(title_text), "%s +%d", title_main_text, addr_count-1);
+                               bzero(title_main_text, sizeof(title_main_text));
+                               strncpy(title_main_text, title_text, sizeof(title_main_text));
+                       }
+               } else {
+                       D_MSG("Invalid type of message folder id = [%d]", folder_id);
+               }
+       }
+
+       if ((!is_valid_num && !is_valid_email) || is_unknown) {
+               if (is_unknown)
+                       elm_object_domain_translatable_part_text_set(title_layout, "title_text", SYSTEM_STRING_PKGNAME, "IDS_COM_BODY_UNKNOWN");
+               else
+                       elm_object_part_text_set(title_layout, "title_text", title_main_text);
+       } else {
+               title_button = elm_button_add(vsd->navi_frame);
+
+               elm_object_theme_set(title_button, vsd->title_th);
+               elm_object_style_set(title_button, "title_button");
+
+               elm_object_text_set(title_button, title_main_text);
+               if (addr_count == 1 && person_id > 0) {
+                       elm_object_part_text_set(title_button, "elm.text.subtitle", address);
+                       edje_object_signal_emit(_EDJ(title_button), "show,subtitle", "");
+               }
+
+               evas_object_show(title_button);
+               elm_object_part_content_set(title_layout, "title_btn", title_button);
+               evas_object_smart_callback_add(title_button, "clicked", msg_ui_viewer_summary_view_title_button_clicked_cb, (void *)vsd);
+       }
+
+       elm_object_item_part_content_set(vsd->navi_item, "title", title_layout);
+
+       Evas_Object *back_button = msg_common_naviframe_back_button_add(title_layout, vsd->navi_frame);
+       elm_object_part_content_set(title_layout, "back_btn", back_button);
+
+       vsd->navi_title_layout = title_layout;
+       vsd->title_button = title_button;
+
+       if (address)
+               free(address);
+
+       /* set focus chain
+        * 1. last object of content (tap, right) title button or bt1
+        * 2. bt2 (tap, right) save all button
+        * 3. save all button (up) title button or bt1 or bt2
+        */
+       if (vsd->title_button) {
+               elm_object_focus_next_object_set(vsd->focus_object, vsd->title_button, ELM_FOCUS_NEXT);
+               elm_object_focus_next_object_set(vsd->title_button, vsd->focus_object, ELM_FOCUS_PREVIOUS);
+       }
+}
+
+static void __msg_ui_viewer_summary_view_create_control_toolbar(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETM_IF(vsd->msg_t == NULL, "vsd->msg_t is NULL");
+
+       /* unset buttons */
+       Evas_Object *more_btn = elm_object_item_part_content_unset(vsd->navi_item, "toolbar_more_btn");
+       if (more_btn)
+               evas_object_del(more_btn);
+
+       /* More button */
+       more_btn = elm_button_add(vsd->navi_frame);
+       D_MSG_RETM_IF(more_btn == NULL, "more_btn is NULL");
+       elm_object_style_set(more_btn, "naviframe/more/default");
+
+       elm_object_item_part_content_set(vsd->navi_item, "toolbar_more_btn", more_btn);
+       evas_object_smart_callback_add(more_btn, "clicked", msg_ui_viewer_summary_view_option_create_more_popup, (void *)vsd);
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_summary_view_connect_handler(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_summary_view_disconnect_handler(void *data, bool ungrab_key)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       if (vsd->volkey_press_handler) {
+               ecore_event_handler_del(vsd->volkey_press_handler);
+               vsd->volkey_press_handler = NULL;
+       }
+
+       if (vsd->vol_down_key_longpress) {
+               ecore_timer_del(vsd->vol_down_key_longpress);
+               vsd->vol_down_key_longpress = NULL;
+       }
+
+       if (vsd->volkey_release_handler) {
+               ecore_event_handler_del(vsd->volkey_release_handler);
+               vsd->volkey_release_handler = NULL;
+       }
+
+       if (vsd->vol_up_key_longpress) {
+               ecore_timer_del(vsd->vol_up_key_longpress);
+               vsd->vol_up_key_longpress = NULL;
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_summary_view_update_title_layout(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       int addr_count = 0;
+       char display_name[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+       char title_main_text[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+       char *address = NULL;
+       int person_id = 0;
+
+       bool is_valid_num = false;
+       bool is_valid_email = false;
+       bool is_unknown = false;
+       Evas_Object *icon = NULL;
+
+       if (vsd->navi_title_layout == NULL) {
+               D_EMSG("navi_title_layout is NULL!!");
+               return;
+       }
+
+       if (vsd->title_button) {
+               icon = elm_object_part_content_unset(vsd->title_button, "title_icon");
+               if (icon) {
+                       evas_object_del(icon);
+                       icon = NULL;
+               }
+       }
+
+       msg_viewer_util_get_thread_nth_address(vsd->msgHandle, vsd->msg_t, 0, &address);
+
+       if (address == NULL || strlen(address) == 0) {
+               is_unknown = true;
+       } else {
+               char *normalized_number = NULL;
+               addr_count = msg_viewer_util_get_thread_address_count(vsd->msgHandle, vsd->msg_t);
+               normalized_number = msg_common_make_normalized_number(address);
+               if (normalized_number) {
+                       is_valid_num = msg_common_is_valid_phone_number(normalized_number);
+
+                       if (is_valid_num)
+                               person_id = msg_viewer_util_get_index_by_recipient(address);
+
+                       free(normalized_number);
+                       normalized_number = NULL;
+               } else {
+                       is_valid_num = msg_common_is_valid_phone_number(address);
+                       is_valid_email = msg_common_is_valid_email_addr(address);
+
+                       if (is_valid_num || is_valid_email)
+                               person_id = msg_viewer_util_get_index_by_recipient(address);
+               }
+       }
+
+       /* Get Main text */
+       if ((is_valid_num || is_valid_email) && !is_unknown) {
+               if (person_id > 0) {
+                       msg_viewer_util_get_display_name_by_index(person_id, display_name, sizeof(display_name));
+
+                       if (display_name[0] != '\0') {
+                               snprintf(title_main_text, sizeof(title_main_text), "%s", display_name);
+                       } else {
+                               D_MSG("Contact added, But there is no display name");
+                               snprintf(title_main_text, sizeof(title_main_text), "%s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_NO_NAME"));
+                       }
+               } else {
+                       if (address)
+                               snprintf(title_main_text, sizeof(title_main_text), "%s", address);
+               }
+       } else {
+               if (!is_unknown && address)
+                       snprintf(title_main_text, sizeof(title_main_text), "%s", address);
+       }
+
+       if ((is_valid_num || is_valid_email) && !is_unknown) {
+               int folder_id = MSG_MAX_FOLDER_ID;
+               msg_get_int_value(vsd->msg_t, MSG_MESSAGE_FOLDER_ID_INT, &folder_id);
+
+               if (folder_id == MSG_INBOX_ID || folder_id == MSG_CBMSGBOX_ID || folder_id == MSG_SPAMBOX_ID) {
+                       icon = elm_icon_add(vsd->navi_title_layout);
+                       if (person_id > 0) {
+                               /* caller id */
+                               contacts_record_h record = NULL;
+                               char *thumb_path = NULL;
+                               int ct_ret = CONTACTS_ERROR_NONE;
+
+                               ct_ret = contacts_db_get_record(_contacts_person._uri, person_id, &record);
+                               if (ct_ret != CONTACTS_ERROR_NONE) {
+                                       D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+                                       contacts_record_destroy(record, true);
+                                       elm_image_file_set(icon, MSG_IMAGES_EDJ, MSG_TITLE_THUMB_STYLE_CONTACT);
+                               } else {
+                                       contacts_record_get_str(record, _contacts_person.image_thumbnail_path, &thumb_path);
+                                       if (thumb_path && thumb_path[0] != '\0') {
+                                               elm_image_file_set(icon, thumb_path, NULL);
+                                               free(thumb_path);
+                                       } else {
+                                               elm_image_file_set(icon, MSG_IMAGES_EDJ, MSG_TITLE_THUMB_STYLE_CONTACT);
+                                       }
+                                       contacts_record_destroy(record, true);
+                               }
+                       } else {
+                               elm_image_file_set(icon, MSG_IMAGES_EDJ, MSG_TITLE_THUMB_STYLE_CONTACT);
+                       }
+               } else if (folder_id == MSG_OUTBOX_ID || folder_id == MSG_SENTBOX_ID) {
+                       icon = elm_icon_add(vsd->navi_title_layout);
+                       if (addr_count > 1) {
+                               char title_text[DEF_BUF_LEN+1] = {0,};
+                               snprintf(title_text, sizeof(title_text), "%s +%d", title_main_text, addr_count-1);
+                               bzero(title_main_text, sizeof(title_main_text));
+                               strncpy(title_main_text, title_text, sizeof(title_main_text));
+                               elm_image_file_set(icon, MSG_IMAGES_EDJ, MSG_TITLE_THUMB_STYLE_GROUP);
+                       } else {
+                               if (person_id > 0) {
+                                       /* caller id */
+                                       contacts_record_h record = NULL;
+                                       char *thumb_path = NULL;
+                                       int ct_ret = CONTACTS_ERROR_NONE;
+
+                                       ct_ret = contacts_db_get_record(_contacts_person._uri, person_id, &record);
+                                       if (ct_ret != CONTACTS_ERROR_NONE) {
+                                               D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+                                               contacts_record_destroy(record, true);
+                                               elm_image_file_set(icon, MSG_IMAGES_EDJ, MSG_TITLE_THUMB_STYLE_CONTACT);
+                                       } else {
+                                               contacts_record_get_str(record, _contacts_person.image_thumbnail_path, &thumb_path);
+                                               if (thumb_path && thumb_path[0] != '\0') {
+                                                       elm_image_file_set(icon, thumb_path, NULL);
+                                                       free(thumb_path);
+                                               } else {
+                                                       elm_image_file_set(icon, MSG_IMAGES_EDJ, MSG_TITLE_THUMB_STYLE_CONTACT);
+                                               }
+                                               contacts_record_destroy(record, true);
+                                       }
+                               } else {
+                                       elm_image_file_set(icon, MSG_IMAGES_EDJ, MSG_TITLE_THUMB_STYLE_CONTACT);
+                               }
+                       }
+               } else {
+                       D_MSG("Invalid type of message folder id = [%d]", folder_id);
+               }
+       }
+
+       if ((!is_valid_num && !is_valid_email) || is_unknown) {
+               if (is_unknown)
+                       elm_object_domain_translatable_part_text_set(vsd->navi_title_layout, "title_text", SYSTEM_STRING_PKGNAME, "IDS_COM_BODY_UNKNOWN");
+               else
+                       elm_object_part_text_set(vsd->navi_title_layout, "title_text", title_main_text);
+       } else {
+               if (addr_count == 1) {
+                       if (display_name[0] != '\0') {
+                               elm_object_part_text_set(vsd->title_button, "elm.text", display_name);
+
+                               edje_object_signal_emit(_EDJ(vsd->title_button), "show,subtitle", "");
+                               elm_object_part_text_set(vsd->title_button, "elm.text.subtitle", address);
+                       } else {
+                               elm_object_part_text_set(vsd->title_button, "elm.text", address);
+                               edje_object_signal_emit(_EDJ(vsd->title_button), "hide,subtitle", "");
+                       }
+               } else if (addr_count > 1) {
+                       char title_text[DEF_BUF_LEN+1] = {0,};
+                       if (display_name[0] != '\0') {
+                               snprintf(title_text, sizeof(title_text), "%s +%d", display_name, addr_count-1);
+                       } else {
+                               snprintf(title_text, sizeof(title_text), "%s +%d", address, addr_count-1);
+                       }
+
+                       elm_object_part_text_set(vsd->title_button, "elm.text", title_text);
+                       edje_object_signal_emit(_EDJ(vsd->title_button), "hide,subtitle", "");
+               } else {
+                       elm_object_domain_translatable_part_text_set(vsd->title_button, "elm.text", SYSTEM_STRING_PKGNAME, "IDS_COM_BODY_UNKNOWN");
+                       edje_object_signal_emit(_EDJ(vsd->title_button), "hide,subtitle", "");
+               }
+
+               if (icon) {
+                       evas_object_show(icon);
+                       elm_object_part_content_set(vsd->title_button, "title_icon", icon);
+               }
+       }
+
+       if (address)
+               free(address);
+
+       D_LEAVE;
+
+       return;
+}
+
+static Eina_Bool __msg_ui_viewer_summary_view_focused_in_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETVM_IF(vsd == NULL, EINA_FALSE, "vsd is NULL!");
+
+       Ecore_X_Event_Window_Focus_Out *ev = (Ecore_X_Event_Window_Focus_Out *)event;
+
+       if (vsd->main_window != NULL && ev->win == elm_win_xwindow_get(vsd->main_window)) {
+               if (!vsd->popup)
+                       msg_ui_viewer_summary_view_connect_handler(vsd);
+
+               if (vsd->mode == MSG_VIEWER_HIDED_BY_APPLICATION) {
+                       /*reset launch_cmd and cmd_type*/
+                       vsd->mode = MSG_VIEWER_DEFAULT_MODE;
+               }
+       }
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool __msg_ui_viewer_summary_view_focused_out_cb(void *data, int type, void *event)
+{
+       D_ENTER;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETVM_IF(vsd == NULL, EINA_FALSE, "vsd is NULL!");
+
+       Ecore_X_Event_Window_Focus_Out *ev = (Ecore_X_Event_Window_Focus_Out *)event;
+
+       if ((vsd->main_window != NULL) && (ev->win == elm_win_xwindow_get(vsd->main_window))) {
+               msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+               vsd->mode = MSG_VIEWER_HIDED_BY_APPLICATION;
+       }
+
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool __msg_ui_viewer_summary_view_back_button_cb(void *data, Elm_Object_Item *it)
+{
+       D_ENTER;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       if (vsd->mode != MSG_VIEWER_DEFAULT_MODE) {
+               D_MSG("Now loading another application, ignore request");
+               return EINA_FALSE;
+       }
+
+       msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+
+       if (vsd->msg_type == MSG_TYPE_MMS) {
+               if (msg_ui_viewer_summary_view_check_mms_read_report(vsd) == MSG_VIEWER_READ_REPORT_IS_NEEDED_BUT_NOT_YET) {
+                       msg_ui_viewer_summary_view_show_popup(vsd, MESSAGE_PKGNAME, "IDS_MSGC_BODY_READ_REPORT_WILL_BE_SENT", \
+                               MSG_VIEWER_READ_REPORT_SENT_POPUP, MSG_VIEWER_POPUP_CANCEL_OK_BUTTON, \
+                               msg_ui_viewer_summary_view_send_read_report_popup_cancel_cb, \
+                               msg_ui_viewer_summary_view_send_read_report_popup_ok_cb);
+                       return EINA_FALSE;
+               }
+       }
+
+       if (vsd->viewer_main) {
+               VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vsd->viewer_main;
+               if (vmd->viewer_ug) {
+                       vsd->ug_destroy_initiated = true;
+                       ug_destroy_me(vmd->viewer_ug);
+               }
+       }
+
+       return EINA_FALSE;
+}
+
+void msg_ui_viewer_summary_view_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL!");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL!");
+
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       Evas_Event_Mouse_Up *ev = event_info;
+
+       D_MSG("popup type = %d", vsd->popup_type);
+
+       if (ev->button == 3) {
+               msg_ui_viewer_summary_view_popup_destroy(vsd);
+               msg_ui_viewer_summary_view_connect_handler(vsd);
+       }
+}
+
+void msg_ui_viewer_summary_view_popup_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL!");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG("popup type = %d", vsd->popup_type);
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       msg_ui_viewer_summary_view_connect_handler(vsd);
+}
+
+void msg_ui_viewer_summary_view_read_report_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL!");
+       D_MSG_RETM_IF(event_info == NULL, "event_info is NULL!");
+
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       Evas_Event_Mouse_Up *ev = event_info;
+
+       D_MSG("popup type = %d", vsd->popup_type);
+
+       if (ev->button == 3) {
+               msg_ui_viewer_summary_view_send_read_report_popup_cancel_cb(vsd, NULL, NULL);
+       }
+}
+
+void msg_ui_viewer_summary_view_read_report_popup_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL!");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG("popup type = %d", vsd->popup_type);
+
+       msg_ui_viewer_summary_view_send_read_report_popup_cancel_cb(vsd, NULL, NULL);
+}
+
+void msg_ui_viewer_summary_view_apply_font_size(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       int index = 0;
+       int font_size = 0;
+       int access_font_index = 0;
+
+       /* get accessibility font index */
+       if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &access_font_index) < 0) {
+               D_EMSG("system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE) is failed !!");
+               access_font_index = MSG_SYS_FONT_SIZE_INDEX_NORMAL;     /* 1 */
+       }
+
+       if (msg_common_get_font_size(&index) == FALSE) {
+               D_EMSG("msg_common_get_font_size() is failed");
+               return;
+       } else {
+               D_MSG("selected font_size index = %d", index);
+       }
+
+       D_MSG("SYSTEM_SETTINGS_KEY_FONT_SIZE = %d", access_font_index);
+
+       font_size = msg_common_get_font_size_from_index(access_font_index);
+
+       /* sync current font size as accessibility font index */
+       if (msg_common_set_font_size(access_font_index) == FALSE)
+               D_EMSG("msg_common_set_font_size(index = %d) is failed !!", access_font_index);
+
+       vsd->font_size = font_size;
+}
+
+void msg_ui_viewer_summary_view_set_font_size(void *data, MSG_VIEWER_FONT_CHANGE_TYPE_E change_type)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       char font_size_str[DEF_BUF_LEN_S + 1] = {0,};
+
+       int index = 0;
+       if (change_type == MSG_VIEWER_FONT_CHANGE_LOAD_SETTING) {
+               if (msg_common_get_font_size(&index) == FALSE) {
+                       D_EMSG("msg_common_get_font_size() is failed");
+                       return;
+               } else {
+                       D_MSG("selected font_size index = %d", index);
+               }
+               vsd->font_size = msg_common_get_font_size_from_index(index);
+       } else if (change_type == MSG_VIEWER_FONT_CHANGE_LATEST_UPDATE) {
+               index = msg_common_get_index_from_font_size(vsd->font_size);
+               D_MSG("use latest updated font, index = %d, size = %d", index, vsd->font_size);
+       } else if (change_type == MSG_VIEWER_FONT_CHANGE_PINCH_ZOOM) {
+               if (vsd->zoom_delta > 0)
+                       vsd->font_size += RoundOff(vsd->zoom_delta * 40, 0);
+               else
+                       vsd->font_size += ceil(vsd->zoom_delta * 100);
+
+               /* set max min value by zoom */
+               if (vsd->font_size < MSG_APP_FONT_SIZE_SMALL)
+                       vsd->font_size = MSG_APP_FONT_SIZE_SMALL;
+
+               if (vsd->font_size > MSG_APP_FONT_SIZE_GIANT)
+                       vsd->font_size = MSG_APP_FONT_SIZE_GIANT;
+       }
+
+       if (vsd->mms_parsed_data) {
+               /* update font size in all entry object with mms parsed data */
+               PARSED_MMS_DATA_S *mms_data = vsd->mms_parsed_data;
+
+               if (mms_data->page_count > 0) {
+                       int page_index = 0;
+                       PARSED_MMS_PAGE_DATA_S *page_data = NULL;
+
+                       while (page_index < mms_data->page_count) {
+                               page_data = &mms_data->page_data[page_index++];
+                               int media_index = 0;
+                               MSG_VIEWER_MEDIA_INFO_S *pMedia_info = NULL;
+
+                               while (media_index < page_data->media_count) {
+                                       pMedia_info = eina_list_nth(page_data->insert_list, media_index++);
+
+                                       if (pMedia_info && pMedia_info->media_type == MSG_VIEWER_MEDIA_TEXT) {
+                                               bzero(font_size_str, sizeof(font_size_str));
+                                               snprintf(font_size_str, sizeof(font_size_str), "DEFAULT='font_size=%d'", vsd->font_size);
+                                               elm_entry_text_style_user_push(pMedia_info->check_item, font_size_str);
+                                       }
+                               }
+                       }
+               }
+
+               if (vsd->rename_popup_entry) {
+                       bzero(font_size_str, sizeof(font_size_str));
+                       snprintf(font_size_str, sizeof(font_size_str), "DEFAULT='font_size=%d'", vsd->font_size);
+                       elm_entry_text_style_user_push(vsd->rename_popup_entry, font_size_str);
+               }
+       } else {
+               if (vsd->content_entry) {
+                       bzero(font_size_str, sizeof(font_size_str));
+                       snprintf(font_size_str, sizeof(font_size_str), "DEFAULT='font_size=%d'", vsd->font_size);
+                       elm_entry_text_style_user_push(vsd->content_entry, font_size_str);
+               }
+       }
+}
+
+void msg_ui_viewer_summary_view_popup_destroy(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       if (vsd->popup) {
+               if (vsd->popup_type != MSG_VIEWER_MENU_CTX_POPUP && \
+                       vsd->popup_type != MSG_VIEWER_RENAME_ATTACHMENT_POPUP) {
+                       void *popup_data = evas_object_data_del(vsd->popup, "popup_data");
+                       if (popup_data) {
+                               D_SEC_MSG("Freed popup_data = 0x%x", popup_data);
+                               free(popup_data);
+                       }
+
+                       evas_object_event_callback_del(vsd->popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_summary_view_popup_mouseup_cb);
+                       eext_object_event_callback_del(vsd->popup, EEXT_CALLBACK_BACK, msg_ui_viewer_summary_view_popup_back_cb);
+                       evas_object_del(vsd->popup);
+
+                       vsd->popup = NULL;
+                       vsd->popup_type = MSG_VIEWER_POPUP_NONE;
+               } else if (vsd->popup_type == MSG_VIEWER_MENU_CTX_POPUP) {
+                       evas_object_del(vsd->popup);
+
+                       vsd->popup = NULL;
+                       vsd->popup_type = MSG_VIEWER_POPUP_NONE;
+               }
+       }
+
+       D_LEAVE;
+}
+
+static Evas_Event_Flags __msg_ui_viewer_summary_view_zoom_start(void *data, void *event_info)
+{
+       D_MSG_RETVM_IF(data == NULL, EVAS_EVENT_FLAG_NONE, "data is NULL");
+       D_MSG_RETVM_IF(event_info == NULL, EVAS_EVENT_FLAG_NONE, "event_info is NULL");
+
+       Elm_Gesture_Zoom_Info *p = (Elm_Gesture_Zoom_Info *)event_info;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       vsd->zoom_value = p->zoom;
+       vsd->zoom_delta = 0;
+       vsd->zoom_event_count = 0;
+
+       /* Set invalid value mouse dowe value for not to do sweep action after zoom */
+       vsd->ctrl_start_x = -1;
+       vsd->ctrl_start_y = -1;
+
+       return EVAS_EVENT_FLAG_NONE;
+}
+
+static Evas_Event_Flags __msg_ui_viewer_summary_view_zoom_move(void *data, void *event_info)
+{
+       D_MSG_RETVM_IF(data == NULL, EVAS_EVENT_FLAG_NONE, "data is NULL");
+       D_MSG_RETVM_IF(event_info == NULL, EVAS_EVENT_FLAG_NONE, "event_info is NULL");
+
+       Elm_Gesture_Zoom_Info *p = (Elm_Gesture_Zoom_Info *)event_info;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       /* get zoom delta value between previous zoom value and current zoom value,
+        * if delta value is over than 0, that means font enlanging. But if not, that means font shrinking */
+       vsd->zoom_delta = p->zoom - vsd->zoom_value;
+
+       /* after calculating and setting entry, store current zoom value */
+       vsd->zoom_value = p->zoom;
+
+       /* filter zoom event count. do process once per five count because entry user push performance */
+       if (++(vsd->zoom_event_count) < MSG_VIEWER_ZOOM_COUNT_FILTER)
+               return EVAS_EVENT_FLAG_NONE;
+
+       vsd->zoom_event_count = 0;
+
+       /* calculate zooming font size and set entry */
+       msg_ui_viewer_summary_view_set_font_size(vsd, MSG_VIEWER_FONT_CHANGE_PINCH_ZOOM);
+
+       return EVAS_EVENT_FLAG_NONE;
+}
+
+static Evas_Event_Flags __msg_ui_viewer_summary_view_zoom_end_n_abort(void *data, void *event_info)
+{
+       D_MSG_RETVM_IF(data == NULL, EVAS_EVENT_FLAG_NONE, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       vsd->zoom_value  = 0;
+       vsd->zoom_delta = 0;
+       vsd->zoom_event_count = 0;
+
+       return EVAS_EVENT_FLAG_NONE;
+}
+
+MSG_VIEWER_READ_REPORT_STATUS msg_ui_viewer_summary_view_check_mms_read_report(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, MSG_VIEWER_READ_REPORT_INVALID, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       int folder_id = MSG_MAX_FOLDER_ID;
+       msg_get_int_value(vsd->msg_t, MSG_MESSAGE_FOLDER_ID_INT, &folder_id);
+
+       if (folder_id != MSG_INBOX_ID) {
+               D_MSG("Sending read report is not needed.. Folder type [%d]", folder_id);
+               return MSG_VIEWER_READ_REPORT_IS_NOT_NEEDED;
+       }
+
+       /* get setting read report setting */
+       bool bReadReport = false;
+       msg_struct_t rcvSetting_info = msg_create_struct(MSG_STRUCT_SETTING_MMS_RECV_OPT);
+       msg_get_mms_recv_opt(vsd->msgHandle, rcvSetting_info);
+       msg_get_bool_value(rcvSetting_info, MSG_MMS_RECVOPT_READ_REPORT_BOOL, &bReadReport);
+       msg_release_struct(&rcvSetting_info);
+
+       if (!bReadReport) {
+               D_MSG("Sending read report is not needed.. Receive Setting value [Send read report = %d]", bReadReport);
+               return MSG_VIEWER_READ_REPORT_IS_NOT_NEEDED;
+       }
+
+       /* check current message is requesting report report */
+       bool bReadReq = false;
+       msg_struct_t mmsSendOpt = NULL;
+       msg_struct_t msg = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+       if (msg_get_message(vsd->msgHandle, vsd->msgID, msg, sendOpt) != MSG_SUCCESS) {
+               msg_release_struct(&msg);
+               msg_release_struct(&sendOpt);
+               return MSG_VIEWER_READ_REPORT_IS_NOT_NEEDED;
+       }
+       msg_get_struct_handle(sendOpt, MSG_SEND_OPT_MMS_OPT_HND, &mmsSendOpt);
+       msg_get_bool_value(mmsSendOpt, MSG_MMS_SENDOPTION_READ_REQUEST_BOOL, &bReadReq);
+       msg_release_struct(&msg);
+       msg_release_struct(&sendOpt);
+
+       if (!bReadReq) {
+               D_MSG("Sending read report is not needed.. Current message is not required to send read report [%d]", bReadReq);
+               return MSG_VIEWER_READ_REPORT_IS_NOT_NEEDED;
+       }
+
+       msg_struct_list_s report_list;
+       msg_struct_t report;
+       msg_report_type_t report_type;
+       int report_status;
+       int i = 0;
+
+       msg_get_report_status(vsd->msgHandle, vsd->msgID, &report_list);
+
+       for (i = 0; i < report_list.nCount; i++) {
+               report = report_list.msg_struct_info[i];
+
+               msg_get_int_value(report, MSG_REPORT_TYPE_INT, (int *)&report_type);
+               msg_get_int_value(report, MSG_REPORT_STATUS_INT, (int *)&report_status);
+
+               if (report_type == MSG_REPORT_TYPE_READ_REPORT_SENT) {
+                       if (report_status == MMS_RECEIVE_READ_REPORT_SENT)
+                               return MSG_VIEWER_READ_REPORT_IS_SENT;
+                       else if (report_status == MMS_RECEIVE_READ_REPORT_NO_SENT)
+                               return MSG_VIEWER_READ_REPORT_IS_NEEDED_BUT_NOT_SENT;
+                       else
+                               return MSG_VIEWER_READ_REPORT_IS_NEEDED_BUT_NOT_YET;
+               } else {
+                       continue;
+               }
+       }
+
+       return MSG_VIEWER_READ_REPORT_IS_NOT_NEEDED;
+}
+
+void msg_ui_viewer_summary_view_send_read_report_popup_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL!");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG("popup type = %d", vsd->popup_type);
+
+       int err;
+       err = msg_mms_send_read_report(vsd->msgHandle, vsd->msgID, MSG_READ_REPORT_REJECT_BY_USER);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_mms_send_read_report() is failed, err = %d", err);
+               /* continue */
+       }
+
+       /* destroy viewer ug */
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vsd->viewer_main;
+       if (vsd->is_reset) {
+               char *page_order = (char *)evas_object_data_del(vsd->popup, "page_order");
+               char *msgid_str = (char *)evas_object_data_del(vsd->popup, "msgid");
+
+               app_control_h svc_data = NULL;
+               if (app_control_create(&svc_data) < 0 || svc_data == NULL) {
+                       D_EMSG("app_control_create() is failed");
+                       return;
+               }
+
+               D_MSG("page_order = %s", page_order);
+               D_MSG("msgid = %s", msgid_str);
+
+               app_control_add_extra_data(svc_data, MSG_BUNDLE_KEY_MSG_ID, msgid_str);
+               app_control_add_extra_data(svc_data, MSG_BUNDLE_KEY_PAGE_CHANGE, page_order);
+
+               msg_ui_viewer_reload_viewer(vmd, svc_data);
+               app_control_destroy(svc_data);
+
+               if (msgid_str)
+                       free(msgid_str);
+
+               if (page_order)
+                       free(page_order);
+
+               msg_ui_viewer_summary_view_popup_destroy(vsd);
+       } else {
+               msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+               if (vmd->viewer_ug)
+                       ug_destroy_me(vmd->viewer_ug);
+       }
+}
+
+void msg_ui_viewer_summary_view_send_read_report_popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       /*read report request status and sent read report result of current message will be checked by MF after calling msg_mms_send_read_report.
+        *So, currently ui always call msg_mms_send_read_report when setting value of send read report is on*/
+       msg_mms_send_read_report(vsd->msgHandle, vsd->msgID, MSG_READ_REPORT_IS_READ);
+
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vsd->viewer_main;
+       if (vsd->is_reset) {
+               char *page_order = (char *)evas_object_data_del(vsd->popup, "page_order");
+               char *msgid_str = (char *)evas_object_data_del(vsd->popup, "msgid");
+
+               app_control_h svc_data = NULL;
+               if (app_control_create(&svc_data) < 0 || svc_data == NULL) {
+                       D_EMSG("app_control_create() is failed");
+                       return;
+               }
+
+               D_MSG("page_order = %s", page_order);
+               D_MSG("msgid = %s", msgid_str);
+
+               app_control_add_extra_data(svc_data, MSG_BUNDLE_KEY_MSG_ID, msgid_str);
+               app_control_add_extra_data(svc_data, MSG_BUNDLE_KEY_PAGE_CHANGE, page_order);
+
+               msg_ui_viewer_reload_viewer(vmd, svc_data);
+               app_control_destroy(svc_data);
+
+               if (msgid_str)
+                       free(msgid_str);
+
+               if (page_order)
+                       free(page_order);
+
+               msg_ui_viewer_summary_view_popup_destroy(vsd);
+       } else {
+               msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+               if (vmd->viewer_ug)
+                       ug_destroy_me(vmd->viewer_ug);
+       }
+}
+
+void msg_ui_viewer_summary_view_show_popup(void *data,
+                                                                                                       char *domain,
+                                                                                                       char *pcontent,
+                                                                                                       MSG_VIEWER_POPUP_TYPE_E popup_type,
+                                                                                                       MSG_VIEWER_POPUP_BTN_TYPE_E btn_type,
+                                                                                                       pf_popup_cancel_btn_cb bt1_cb,
+                                                                                                       pf_popup_ok_btn_cb bt2_cb)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(pcontent == NULL, "pcontent is NULL");
+
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       Evas_Object *popup = NULL;
+       Evas_Object *button1 = NULL;
+       Evas_Object *button2 = NULL;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       D_MSG_RETM_IF(btn_type == MSG_VIEWER_POPUP_OK_BUTTON && bt2_cb == NULL, "Invalid callback function parameter!");
+       D_MSG_RETM_IF(btn_type == MSG_VIEWER_POPUP_CANCEL_BUTTON && bt1_cb == NULL, "Invalid callback function parameter!");
+       D_MSG_RETM_IF(btn_type == MSG_VIEWER_POPUP_CANCEL_OK_BUTTON && (bt1_cb == NULL || bt2_cb == NULL), "Invalid callback function parameter!");
+
+       popup = elm_popup_add(vsd->main_window);
+       D_MSG_RETM_IF(popup == NULL, "popup is NULL");
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+
+       vsd->popup = popup;
+       vsd->popup_type = popup_type;
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       if (domain)
+               elm_object_domain_translatable_text_set(popup, domain, pcontent);
+       else
+               elm_object_text_set(popup, pcontent);
+
+       switch (btn_type) {
+               case MSG_VIEWER_POPUP_NO_BUTTON:
+                       elm_popup_timeout_set(popup, 2);
+                       evas_object_smart_callback_add(popup, "block,clicked", msg_ui_viewer_summary_view_popup_back_cb, vsd);
+                       evas_object_smart_callback_add(popup, "timeout", msg_ui_viewer_summary_view_popup_back_cb, vsd);
+                       break;
+               case MSG_VIEWER_POPUP_OK_BUTTON:
+                       button1 = elm_button_add(popup);
+                       elm_object_style_set(button1, "popup");
+                       elm_object_domain_translatable_text_set(button1, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+                       elm_object_part_content_set(popup, "button1", button1);
+                       evas_object_smart_callback_add(button1, "clicked", bt2_cb, vsd);
+                       break;
+               case MSG_VIEWER_POPUP_CANCEL_BUTTON:
+                       button1 = elm_button_add(popup);
+                       elm_object_style_set(button1, "popup");
+                       elm_object_domain_translatable_text_set(button1, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+                       elm_object_part_content_set(popup, "button1", button1);
+                       evas_object_smart_callback_add(button1, "clicked", bt1_cb, vsd);
+                       break;
+               case MSG_VIEWER_POPUP_CANCEL_OK_BUTTON:
+                       button1 = elm_button_add(popup);
+                       elm_object_style_set(button1, "popup");
+                       elm_object_domain_translatable_text_set(button1, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+                       elm_object_part_content_set(popup, "button1", button1);
+                       evas_object_smart_callback_add(button1, "clicked", bt1_cb, vsd);
+
+                       button2 = elm_button_add(popup);
+                       elm_object_style_set(button2, "popup");
+                       elm_object_domain_translatable_text_set(button2, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+                       elm_object_part_content_set(popup, "button2", button2);
+                       evas_object_smart_callback_add(button2, "clicked", bt2_cb, vsd);
+                       break;
+               default:
+                       break;
+       }
+
+       evas_object_show(popup);
+       evas_object_focus_set(popup, EINA_TRUE);
+
+       if (popup_type != MSG_VIEWER_READ_REPORT_SENT_POPUP) {
+               evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_summary_view_popup_mouseup_cb, vsd);
+               eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_summary_view_popup_back_cb, (void *)vsd);
+       } else {
+               evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_summary_view_read_report_popup_mouseup_cb, vsd);
+               eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_summary_view_read_report_popup_back_cb, (void *)vsd);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_summary_viewer_get_locale_n_datetime_ptn(void *data)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       const char *locale;
+
+       locale = msg_common_get_default_locale();
+
+       if (locale) {
+               strncpy(vsd->locale, locale, sizeof(vsd->locale)-1);
+       }
+
+       D_MSG("Locale = %s", vsd->locale);
+
+       if (vsd->date_ptn) {
+               free(vsd->date_ptn);
+               vsd->date_ptn = NULL;
+       }
+
+       if (vsd->time12_ptn) {
+               free(vsd->time12_ptn);
+               vsd->time12_ptn = NULL;
+       }
+
+       if (vsd->time24_ptn) {
+               free(vsd->time24_ptn);
+               vsd->time24_ptn = NULL;
+       }
+
+       vsd->date_ptn = msg_common_get_date_best_pattern(vsd->locale, MSG_VIEWER_DATE_FORMAT);
+       vsd->time12_ptn = msg_common_get_date_best_pattern(vsd->locale, MSG_VIEWER_TIME_FORMAT_12);
+       vsd->time24_ptn = msg_common_get_date_best_pattern(vsd->locale, MSG_VIEWER_TIME_FORMAT_24);
+}
+
+void msg_ui_summary_viewer_get_time_format(void *data)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       int timeformat = msg_common_get_timeformat();
+
+       if (timeformat == MSG_TIME_FORMAT_UNKNOWN)
+               vsd->time_fmt = MSG_TIME_FORMAT_12H;
+       else
+               vsd->time_fmt = timeformat;
+
+       D_MSG("%s", vsd->time_fmt == MSG_TIME_FORMAT_24H ? "TIME FORMAT = 24h" : "TIME FORMAT = 12h");
+}
+
+static void __msg_ui_viewer_summary_view_timezone_change_cb(system_settings_key_e key, void *data)
+{
+       __msg_ui_viewer_summary_view_timezone_change_cb_main(data);
+}
+
+static void __msg_ui_viewer_summary_view_timezone_change_cb_main(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       char *timezone_id = NULL;
+       i18n_uchar utimezone_id[DEF_BUF_LEN] = {0,};
+       int status = I18N_ERROR_NONE;
+
+       timezone_id = msg_common_get_timezone();
+
+       if (!timezone_id)
+               return;
+
+       i18n_ustring_copy_ua(utimezone_id, timezone_id);
+       status = i18n_ucalendar_set_default_timezone(utimezone_id);
+
+       if (timezone_id)
+               free(timezone_id);
+
+       if (status != I18N_ERROR_NONE) {
+               D_EMSG("i18n_ucalendar_set_default_timezone failed");
+               return;
+       }
+
+       if (vsd->date_ptn) {
+               free(vsd->date_ptn);
+               vsd->date_ptn = NULL;
+       }
+
+       if (vsd->time12_ptn) {
+               free(vsd->time12_ptn);
+               vsd->time12_ptn = NULL;
+       }
+
+       if (vsd->time24_ptn) {
+               free(vsd->time24_ptn);
+               vsd->time24_ptn = NULL;
+       }
+
+       msg_ui_summary_viewer_get_locale_n_datetime_ptn(vsd);
+       msg_ui_summary_viewer_get_time_format(vsd);
+
+       vsd->date_ptn = msg_common_get_date_best_pattern(vsd->locale, MSG_VIEWER_DATE_FORMAT);
+       vsd->time12_ptn = msg_common_get_date_best_pattern(vsd->locale, MSG_VIEWER_TIME_FORMAT_12);
+       vsd->time24_ptn = msg_common_get_date_best_pattern(vsd->locale, MSG_VIEWER_TIME_FORMAT_24);
+
+       if (vsd->mms_parsed_data == NULL) {
+               char buf[DEF_BUF_LEN_S] = {0,};
+               int msg_time = 0;
+               msg_get_int_value(vsd->msg_t, MSG_MESSAGE_DISPLAY_TIME_INT, &msg_time);
+
+               char *time_str = NULL;
+               char *date_str = msg_common_get_formatted_date(vsd->locale, vsd->date_ptn, (void *)&msg_time);
+
+               if (vsd->time_fmt == MSG_TIME_FORMAT_24H) {
+                       time_str = msg_common_get_formatted_date(vsd->locale, vsd->time24_ptn, (void *)&msg_time);
+               } else {
+                       time_str = msg_common_get_formatted_date(vsd->locale, vsd->time12_ptn, (void *)&msg_time);
+               }
+
+               if (date_str && time_str) {
+                       D_SEC_MSG("Changed date = %s and time str = %s", date_str, time_str);
+                       snprintf(buf, sizeof(buf), "%s %s", date_str, time_str);
+               }
+
+               if (date_str)
+                       free(date_str);
+
+               if (time_str)
+                       free(time_str);
+
+               if (vsd->content_subject)
+                       edje_object_part_text_set(_EDJ(vsd->content_subject), "subject/text", buf);
+       }
+       D_LEAVE;
+}
+
+int msg_ui_summary_viewer_get_convmsg_id_by_order(void *data, MSG_VIEWER_RESET_ORDER msg_order)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, -1, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vsd->viewer_main;
+       D_MSG_RETVM_IF(vmd == NULL, -1, "vmd is NULL");
+
+       int i = 0;
+       int msg_id = -1;
+       int prv_msg_id = -1;
+       bool found_cur_msg_id = false;
+       int msg_id_head = -1;
+       bool head_found = false;
+       int msg_id_tail = -1;
+
+       if (vmd->msg_id_list == NULL) {
+               D_EMSG("msg id list is not prepared!!");
+               return -1;
+       }
+
+       int count = eina_list_count(vmd->msg_id_list);
+       char *msgid = NULL;
+
+       for (i = 0; i < count; i++) {
+               if ((msgid = eina_list_nth(vmd->msg_id_list, i)) == NULL) {
+                       D_EMSG("Failed in getting msg id of msg_id_list");
+                       continue;
+               }
+
+               msg_id = atoi(msgid);
+
+               if (head_found == false) {
+                       msg_id_head = msg_id;
+                       head_found = true;
+               }
+
+               msg_id_tail = msg_id;
+
+               if (msg_id == vsd->msgID) {
+                       if (msg_order == VIEWER_PREVIOUS_MSG) {
+                               if (prv_msg_id != -1) {
+                                       return prv_msg_id;
+                               }
+                       }
+                       found_cur_msg_id = true;
+               } else {
+                       if (found_cur_msg_id) {
+                               if (msg_order == VIEWER_NEXT_MSG) {
+                                       return msg_id;
+                               } else if (msg_order == VIEWER_PREVIOUS_MSG)
+                                       continue;
+                       } else {
+                               prv_msg_id = msg_id;
+                       }
+               }
+       }
+
+       if (prv_msg_id == -1 && msg_order == VIEWER_PREVIOUS_MSG)
+               return msg_id_tail;
+
+       if (msg_order == VIEWER_NEXT_MSG)
+               return msg_id_head;
+
+       D_LEAVE;
+
+       return -1;
+}
+
+void msg_ui_viewer_summary_view_list_popup_size_min_set(void *data)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       Evas_Object *layout = NULL;
+       layout = elm_object_content_get(vsd->popup);
+
+       if (vsd->is_rotated) {
+               if (vsd->popup_item_count > VIEWER_LIST_MAX_DISPLAY_MENU_NUM_H)
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * VIEWER_LIST_MAX_DISPLAY_MENU_NUM_H));
+               else
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * vsd->popup_item_count));
+       } else {
+               if (vsd->popup_item_count > VIEWER_LIST_MAX_DISPLAY_MENU_NUM_V)
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * VIEWER_LIST_MAX_DISPLAY_MENU_NUM_V));
+               else
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * vsd->popup_item_count));
+       }
+}
+
+Eina_Bool msg_ui_viewer_summary_view_list_popup_size_min_set_idler(void *data)
+{
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       Evas_Object *layout = NULL;
+       layout = elm_object_content_get(vsd->popup);
+
+       if (vsd->is_rotated) {
+               if (vsd->popup_item_count > VIEWER_LIST_MAX_DISPLAY_MENU_NUM_H)
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * VIEWER_LIST_MAX_DISPLAY_MENU_NUM_H));
+               else
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * vsd->popup_item_count));
+       } else {
+               if (vsd->popup_item_count > VIEWER_LIST_MAX_DISPLAY_MENU_NUM_V)
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * VIEWER_LIST_MAX_DISPLAY_MENU_NUM_V));
+               else
+                       evas_object_size_hint_min_set(layout, -1, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * vsd->popup_item_count));
+       }
+
+       vsd->list_popup_idler = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
diff --git a/viewer/src/msg-ui-viewer-summary-view-message.c b/viewer/src/msg-ui-viewer-summary-view-message.c
new file mode 100755 (executable)
index 0000000..030ea24
--- /dev/null
@@ -0,0 +1,1440 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-ui-viewer-main.h"
+#include "msg-ui-viewer-summary-view.h"
+#include "msg-ui-viewer-utility.h"
+#include "msg-ui-common-utility.h"
+#include "msg-ui-content-utility.h"
+#include "msg-ui-image-resource.h"
+#include "msg-file-util.h"
+
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+#include <contacts.h>
+#include <metadata_extractor.h>
+#include <image_util.h>
+#include <Ecore_X.h>
+#include <utilX.h>
+
+#include <app_control_internal.h>
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+static void __msg_ui_viewer_summary_view_thumbnail_selected_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+
+/*==================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+static Evas_Object *__msg_ui_viewer_summary_view_create_text_media_layout(MSG_VIEWER_MEDIA_INFO_S *pMedia_info)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(pMedia_info == NULL, NULL, "pMedia_info is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)pMedia_info->view_data;
+
+       Evas_Object *content_layout = elm_layout_add(vsd->content_layout);
+       elm_layout_file_set(content_layout, MSG_VIEWER_THEME, "body_content_layout");
+       evas_object_size_hint_weight_set(content_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(content_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(content_layout);
+
+       Evas_Object *entry = elm_entry_add(vsd->content_layout);
+       elm_entry_entry_set(entry, "");
+       elm_entry_editable_set(entry, EINA_FALSE);
+       evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       eext_entry_selection_back_event_allow_set(entry, EINA_TRUE);
+
+       elm_object_part_content_set(content_layout, "swallow.content", entry);
+       elm_box_pack_end(vsd->content_box, content_layout);
+       evas_object_show(entry);
+
+       elm_object_focus_next_object_set(vsd->focus_object, entry, ELM_FOCUS_RIGHT);
+       elm_object_focus_next_object_set(vsd->focus_object, entry, ELM_FOCUS_NEXT);
+       elm_object_focus_next_object_set(entry, vsd->focus_object, ELM_FOCUS_LEFT);
+       elm_object_focus_next_object_set(entry, vsd->focus_object, ELM_FOCUS_PREVIOUS);
+       vsd->focus_object = entry;
+
+       /* set text */
+       FILE *fp = fopen(pMedia_info->pfile_path, "r");
+       if (fp) {
+               struct stat stat_buf;
+               if (stat(pMedia_info->pfile_path, &stat_buf) != 0) {
+                       D_EMSG("Getting file information Error");
+                       fclose(fp);
+                       return NULL;
+               }
+
+               D_MSG("FileSize : %d", (int)stat_buf.st_size);
+               if (stat_buf.st_size > 0) {
+                       char* page_text = (void *)calloc(1, (size_t)stat_buf.st_size + 1);
+                       if (page_text == NULL) {
+                               D_EMSG("calloc is failed");
+                               fclose(fp);
+                               return NULL;
+                       } else {
+                               page_text[0] = '\0';
+                               int result = fread(page_text, sizeof(char), stat_buf.st_size, fp);
+                               if (result != stat_buf.st_size) {
+                                       D_EMSG("fread is failed result : %d", result);
+                               }
+                       }
+
+                       D_SEC_MSG("%d page_text : (%s)", pMedia_info->page_index, (char *)page_text);
+
+                       if (page_text[0] != '\0') {
+                               /* get marked up text */
+                               char *markup_text = elm_entry_utf8_to_markup(msg_common_convert_cr_to_nl(page_text));
+                               if (markup_text) {
+                                       elm_entry_entry_set(entry, markup_text);
+                                       free(markup_text);
+                               }
+
+                               /* convert emoticon string */
+                               msg_common_apply_emoticon_to_entry(entry);
+
+                               /* set checked item as entry itself */
+                               pMedia_info->check_item = entry;
+                       }
+
+                       /*free message text after displaying*/
+                       if (page_text) {
+                               free(page_text);
+                               page_text = NULL;
+                       }
+               } else {
+                       D_EMSG("Invalid file size");
+               }
+
+               fclose(fp);
+       } else {
+               D_EMSG("File Open Error");
+               return NULL;
+       }
+
+       /* return focus object, not layout */
+       return entry;
+}
+
+static void __msg_ui_viewer_summary_view_thumbnail_pressed_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pMedia_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+
+       edje_object_signal_emit(_EDJ(pMedia_info->check_item), "pressed", "swallow.thumbnail");
+}
+
+static void __msg_ui_viewer_summary_view_thumbnail_released_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pMedia_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+
+       edje_object_signal_emit(_EDJ(pMedia_info->check_item), "unpressed", "swallow.thumbnail");
+}
+
+static void __msg_ui_viewer_summary_view_thumbnail_key_down_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+
+       Evas_Event_Key_Down *ev = event_info;
+       if (ev == NULL) {
+               D_EMSG("event_info is NULL");
+               return;
+       }
+
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+               return;
+
+       if ((!strcmp(ev->keyname, KEY_NAME_RETURN)) || \
+               (!strcmp(ev->keyname, KEY_NAME_ENTER)) || \
+               (!strcmp(ev->keyname, KEY_NAME_SPACE))) {
+               __msg_ui_viewer_summary_view_thumbnail_selected_cb(data, obj, NULL, NULL);
+       }
+}
+
+static void __msg_ui_viewer_summary_view_thumbnail_selected_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)pAttach_info->view_data;
+
+       app_control_h svc_handle = NULL;
+       app_control_error_e err = MSG_SUCCESS;
+
+       D_SEC_MSG("pfile_name = [%s]", pAttach_info->pfile_name);
+       D_SEC_MSG("pfile_path = [%s]", pAttach_info->pfile_path);
+       D_MSG("media_type = %d", pAttach_info->media_type);
+
+       if (vsd->mode != MSG_VIEWER_DEFAULT_MODE) {
+               D_MSG("Now loading another application, ignore request");
+               return;
+       }
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+               return;
+       }
+
+       char dst_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0,};
+       const char *filename = (const char *)msg_file_file_get(pAttach_info->pfile_path);
+
+       snprintf(dst_path, sizeof(dst_path), "%s%s", vsd->working_path, filename);
+       D_SEC_MSG("dst_path = %s", dst_path);
+
+       if (msg_file_cp(pAttach_info->pfile_path, dst_path) == EINA_FALSE) {
+               D_EMSG("msg_file_cp is failed");
+               app_control_destroy(svc_handle);
+               return;
+       }
+
+       edje_object_signal_emit(obj, "play,press,sound", "*");
+
+       if (dst_path[0] != '\0') {
+               app_control_set_uri(svc_handle, dst_path);
+               app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_VIEW);
+
+               Ecore_X_Window x_win = elm_win_xwindow_get(vsd->main_window);
+               app_control_set_window(svc_handle, x_win);
+
+               if (pAttach_info->media_subtype == MSG_VIEWER_MEDIA_AUDIO) {
+                       app_control_add_extra_data(svc_handle, "ExitOnBack", "true");
+               } else if (pAttach_info->media_subtype == MSG_VIEWER_MEDIA_VIDEO) {
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_LAUNCH_APPLICATION, MESSAGE_PKGNAME);
+               } else if (pAttach_info->media_subtype == MSG_VIEWER_MEDIA_IMG) {
+                       app_control_add_extra_data(svc_handle, "View Mode", "DISPLAY");
+                       app_control_add_extra_data(svc_handle, "SaveFile", "TRUE");
+               }
+
+               err = app_control_send_launch_request(svc_handle, NULL, NULL);
+
+               if (err == APP_CONTROL_ERROR_NONE) {
+                       vsd->mode = MSG_VIEWER_LOADING_APPLICATION;
+               } else {
+                       D_EMSG("app_control_send_launch_request is failed, err = %d", err);
+               }
+       }
+
+       app_control_destroy(svc_handle);
+
+       return;
+}
+
+static void __msg_ui_viewer_summary_view_thumbnail_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pMedia_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+
+       Evas_Object *thumb_image = NULL;
+       thumb_image = (Evas_Object *)elm_object_part_content_get(obj, "swallow.thumbnail");
+
+       if (thumb_image) {
+               D_SEC_MSG("thumbnail_image = 0x%8x", thumb_image);
+               if (pMedia_info->unable_display == false) {
+                       evas_object_event_callback_del(thumb_image, EVAS_CALLBACK_MOUSE_DOWN, __msg_ui_viewer_summary_view_thumbnail_pressed_cb);
+                       evas_object_event_callback_del(thumb_image, EVAS_CALLBACK_MOUSE_UP, __msg_ui_viewer_summary_view_thumbnail_released_cb);
+               }
+       }
+}
+
+static Evas_Object *__msg_ui_viewer_summary_view_create_padding_layout(void *data, MSG_VIEWER_PADDING_TYPE_E padding_type)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       Evas_Object *padding = elm_layout_add(vsd->content_layout);
+       elm_layout_file_set(padding, MSG_VIEWER_THEME, "viewer_layout_padding");
+
+       if (padding_type == MSG_VIEWER_PADDING_TOP_2) {
+               elm_object_signal_emit(padding, "padding,top2", "");
+       } else if (padding_type == MSG_VIEWER_PADDING_MIDDLE_1) {
+               elm_object_signal_emit(padding, "padding,middle", "");
+       } else if (padding_type == MSG_VIEWER_PADDING_BOTTOM) {
+               elm_object_signal_emit(padding, "padding,bottom", "");
+       }
+
+       evas_object_size_hint_weight_set(padding, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(padding, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       elm_box_pack_end(vsd->content_box, padding);
+       evas_object_show(padding);
+
+       return padding;
+}
+
+static MSG_BOOL __msg_ui_viewer_summary_view_get_image_region(int content_w, int content_h, int *w, int *h)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(w == NULL, FALSE, "w is NULL");
+       D_MSG_RETVM_IF(h == NULL, FALSE, "h is NULL");
+
+       D_MSG("content_w = %d, content_h = %d", content_w, content_h);
+
+       int canvas_height = 0;
+       int canvas_width = VIEWER_CANVAS_WIDTH;
+
+       canvas_height = (content_w > content_h) ? VIEWER_VIDEO_CANVAS_HEIGHT_LANDSCAPE : VIEWER_VIDEO_CANVAS_HEIGHT_PORTRAIT;
+
+       /*check image size*/
+       if (content_w > canvas_width) {
+               *w = canvas_width;
+               *h = content_h * canvas_width / content_w;
+
+               if (*h > canvas_height) {
+                       *w = content_w * canvas_height / content_h;
+                       *h = canvas_height;
+               }
+       } else if (content_h > canvas_height) {
+               *w = content_w * canvas_height / content_h;
+               *h = canvas_height;
+
+               if (*w > canvas_width) {
+                       *w = canvas_width;
+                       *h = content_h * canvas_width / content_w;
+               }
+       } else if (content_w <= canvas_width && content_h <= canvas_height) {
+               /* resize image based maximum height first */
+               if (content_w * canvas_height / content_h > VIEWER_CANVAS_WIDTH) {
+                       *w = canvas_width;
+                       *h = content_h * canvas_width / content_w;
+               } else {
+                       *w = content_w * canvas_height / content_h;
+                       *h = canvas_height;
+               }
+       } else {
+               D_EMSG("Invalid case");
+               *w = content_w;
+               *h = content_h;
+       }
+
+       /*make size as even number becasue of hardware limitation*/
+       if (*w % 2)
+        *w = *w - 1;
+
+       if (*h % 2)
+        *h = *h - 1;
+
+       /*make size as multiples of 16 because of hardware limitation, C110*/
+       int remained = 0;
+       if ((remained = *w % 16))
+               *w = *w - remained;
+
+       if ((remained = *h % 16))
+               *h = *h - remained;
+
+       D_MSG("Result content width = %d, height = %d", *w, *h);
+       return TRUE;
+}
+
+static MSG_BOOL __msg_ui_viewer_summary_view_get_image_in_video(const char *video_file_path, char *image_file_path)
+{
+       D_ENTER;
+       metadata_extractor_h metadata_h = NULL;
+       int ret = METADATA_EXTRACTOR_ERROR_NONE;
+       int video_w = 0;
+       int video_h = 0;
+       int thumbsize = 0;
+       void *thumbnail = NULL;
+       char *value = NULL;
+
+       ret = metadata_extractor_create(&metadata_h);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_create is failed ret = %d", ret);
+               return FALSE;
+       }
+
+       ret = metadata_extractor_set_path(metadata_h, video_file_path);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_set_path is failed ret = %d", ret);
+               metadata_extractor_destroy(metadata_h);
+               return FALSE;
+       }
+
+       ret = metadata_extractor_get_metadata(metadata_h, METADATA_VIDEO_WIDTH, &value);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_get_metadata is failed ret = %d", ret);
+               metadata_extractor_destroy(metadata_h);
+               return FALSE;
+       }
+
+       if (value) {
+               video_w = atoi(value);
+               free(value);
+               value = NULL;
+       }
+
+       ret = metadata_extractor_get_metadata(metadata_h, METADATA_VIDEO_HEIGHT, &value);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_get_metadata is failed ret = %d", ret);
+               metadata_extractor_destroy(metadata_h);
+               return FALSE;
+       }
+
+       if (value) {
+               video_h = atoi(value);
+               free(value);
+               value = NULL;
+       }
+
+       ret = metadata_extractor_get_frame(metadata_h, &thumbnail, &thumbsize);
+       if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+               D_EMSG("metadata_extractor_get_frame is failed ret = %d", ret);
+               metadata_extractor_destroy(metadata_h);
+               return FALSE;
+       }
+
+       if (thumbnail) {
+               ret = image_util_encode_jpeg((unsigned char *)thumbnail, video_w, video_h, IMAGE_UTIL_COLORSPACE_RGB888, 90, image_file_path);
+               if (ret != IMAGE_UTIL_ERROR_NONE) {
+                       D_EMSG("image_util_encode_jpeg is failed ret = %d", ret);
+                       goto err_return;
+               }
+
+               free(thumbnail);
+       }
+
+       metadata_extractor_destroy(metadata_h);
+
+       D_LEAVE;
+       return TRUE;
+
+err_return:
+       if (thumbnail)
+               free(thumbnail);
+
+       if (metadata_h)
+               metadata_extractor_destroy(metadata_h);
+
+       return FALSE;
+}
+
+static MSG_BOOL __msg_ui_viewer_summary_view_get_video_thumbnail(void *data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, FALSE, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)pAttach_info->view_data;
+
+       char temp_img_file[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0,};
+       char *filename_without_ext = NULL;
+       const char *filename = NULL;
+
+       if (pAttach_info->pfile_path[0] == '\0') {
+               D_EMSG("file path or thumbnail path is NULL");
+               return FALSE;
+       }
+
+       if (!msg_file_exists(pAttach_info->pfile_path)) {
+               D_EMSG("file path is not exist");
+               return FALSE;
+       }
+
+       if (pAttach_info->media_type == MSG_VIEWER_MEDIA_VIDEO) {
+               filename = msg_file_file_get(pAttach_info->pfile_path);
+               if (filename) {
+                       filename_without_ext = msg_file_strip_ext(filename);
+                       if (filename_without_ext && vsd->working_path) {
+                               snprintf(temp_img_file, sizeof(temp_img_file), "%sthumbnail_%s.jpg", vsd->working_path, filename_without_ext);
+                               D_MSG("temp_img_file = %s", temp_img_file);
+                               free(filename_without_ext);
+                       } else {
+                               if (filename_without_ext)
+                                       free(filename_without_ext);
+                               return FALSE;
+                       }
+               } else {
+                       return FALSE;
+               }
+
+               /* get image of video*/
+               if (__msg_ui_viewer_summary_view_get_image_in_video(pAttach_info->pfile_path, temp_img_file)) {
+                       strncpy(pAttach_info->pthumb_file_path, temp_img_file, MSG_VIEWER_FILEPATH_MAX_LEN);
+               } else {
+                       D_EMSG("Fail in creating video thumbnail!!!");
+                       return FALSE;
+               }
+       } else {
+               D_EMSG("media type is not video type media_type = %d !!");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+static Evas_Object *__msg_ui_viewer_summary_view_create_thumbnail_media_layout(MSG_VIEWER_MEDIA_INFO_S *pMedia_info)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(pMedia_info == NULL, NULL, "pMedia_info is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)pMedia_info->view_data;
+
+       Evas_Object *content_layout = elm_layout_add(vsd->content_layout);
+       elm_layout_file_set(content_layout, MSG_VIEWER_THEME, "body_content_layout");
+       evas_object_size_hint_weight_set(content_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(content_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(content_layout);
+
+       /* add layout */
+       Evas_Object *media_layout = elm_layout_add(vsd->content_box);
+       elm_layout_file_set(media_layout, MSG_VIEWER_EDJ, "media_item_layout");
+       evas_object_size_hint_weight_set(media_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(media_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(media_layout);
+
+       /* creat thumbnail layout */
+       Evas_Object *thumbnail_layout = elm_layout_add(media_layout);
+       elm_layout_file_set(thumbnail_layout, MSG_VIEWER_EDJ, "thumbnail_layout");
+       evas_object_size_hint_weight_set(thumbnail_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(thumbnail_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       int content_w = 0;
+       int content_h = 0;
+       int display_w = 0;
+       int display_h = 0;
+
+       Evas *evas = evas_object_evas_get(vsd->main_window);
+       Evas_Object *img = evas_object_image_add(evas);
+       evas_object_image_load_orientation_set(img, EINA_TRUE);
+
+       if (pMedia_info->media_type == MSG_VIEWER_MEDIA_VIDEO)
+               evas_object_image_file_set(img, pMedia_info->pthumb_file_path, NULL);
+       else
+               evas_object_image_file_set(img, pMedia_info->pfile_path, NULL);
+
+       evas_object_image_size_get(img, &content_w, &content_h);
+       evas_object_del(img);
+
+       D_MSG("thumbnail width = %d, thumbnail height = %d", content_w, content_h);
+
+       if (content_w == 0 || content_h == 0) {
+               D_WMSG("Unavailable to get thumbnail size!! Classify it as not displayable type!");
+               pMedia_info->unable_display = true;
+       }
+
+       Evas_Object *image = elm_image_add(thumbnail_layout);
+
+       if (pMedia_info->media_type == MSG_VIEWER_MEDIA_VIDEO) {
+               if (pMedia_info->pthumb_file_path[0] != '\0') {
+                       elm_image_file_set(image, pMedia_info->pthumb_file_path, NULL);
+               } else {
+                       elm_image_file_set(image, MSG_IMAGES_EDJ, MSG_VIEWER_IMAGE_UNSUPPORT_ICON);
+                       pMedia_info->unable_display = true;
+               }
+       } else {
+               if (pMedia_info->unable_display == false)
+                       elm_image_file_set(image, pMedia_info->pfile_path, NULL);
+               else
+                       elm_image_file_set(image, MSG_IMAGES_EDJ, MSG_VIEWER_IMAGE_UNSUPPORT_ICON);
+       }
+
+       if (__msg_ui_viewer_summary_view_get_image_region(content_w, content_h, &display_w, &display_h) == FALSE) {
+               D_MSG("Get default thumbnail size! (width = %d, height = %d)", content_w, content_h);
+
+               display_w = content_w;
+               display_h = content_h;
+       }
+       evas_object_size_hint_min_set(image, display_w, display_h);
+       elm_image_aspect_fixed_set(image, EINA_FALSE);
+       elm_object_focus_allow_set(image, EINA_TRUE);
+
+       elm_object_part_content_set(thumbnail_layout, "swallow.thumbnail", image);
+
+       if (pMedia_info->media_type == MSG_VIEWER_MEDIA_VIDEO && !pMedia_info->unable_display)
+               elm_object_signal_emit(thumbnail_layout, "elm,state,icon,show", "");
+
+       elm_object_part_content_set(media_layout, "swallow.media", thumbnail_layout);
+
+       /* Let pMedia_info get the private data of thumbnail layout */
+       pMedia_info->check_item = thumbnail_layout;
+
+       /* add signal */
+       if (!pMedia_info->unable_display) {
+               edje_object_signal_callback_add(_EDJ(thumbnail_layout), "clicked", "*", __msg_ui_viewer_summary_view_thumbnail_selected_cb, pMedia_info);
+               evas_object_event_callback_add(image, EVAS_CALLBACK_MOUSE_DOWN, __msg_ui_viewer_summary_view_thumbnail_pressed_cb, (void *)pMedia_info);
+               evas_object_event_callback_add(image, EVAS_CALLBACK_MOUSE_UP, __msg_ui_viewer_summary_view_thumbnail_released_cb, (void *)pMedia_info);
+               evas_object_event_callback_add(image, EVAS_CALLBACK_KEY_DOWN, __msg_ui_viewer_summary_view_thumbnail_key_down_cb, (void *)pMedia_info);
+       }
+       evas_object_event_callback_add(thumbnail_layout, EVAS_CALLBACK_DEL, __msg_ui_viewer_summary_view_thumbnail_delete_cb, pMedia_info);
+
+       elm_object_focus_next_object_set(vsd->focus_object, image, ELM_FOCUS_RIGHT);
+       elm_object_focus_next_object_set(vsd->focus_object, image, ELM_FOCUS_NEXT);
+       elm_object_focus_next_object_set(image, vsd->focus_object, ELM_FOCUS_LEFT);
+       elm_object_focus_next_object_set(image, vsd->focus_object, ELM_FOCUS_PREVIOUS);
+       vsd->focus_object = image;
+
+       elm_object_part_content_set(content_layout, "swallow.content", media_layout);
+       elm_box_pack_end(vsd->content_box, content_layout);
+
+       /* return focus object, not layout */
+       return image;
+}
+
+static void __msg_ui_viewer_summary_view_attach_item_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pMedia_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+
+       Evas_Object *attach_item = NULL;
+       attach_item = (Evas_Object *)elm_object_part_content_get(_EDJ(pMedia_info->check_item), "over_event");
+
+       if (attach_item) {
+               D_SEC_MSG("attach_item = 0x%8x", attach_item);
+               evas_object_event_callback_del(attach_item, EVAS_CALLBACK_MOUSE_DOWN, __msg_ui_viewer_summary_view_thumbnail_pressed_cb);
+               evas_object_event_callback_del(attach_item, EVAS_CALLBACK_MOUSE_UP, __msg_ui_viewer_summary_view_thumbnail_released_cb);
+       }
+}
+
+static void __msg_ui_viewer_summary_view_attach_item_pressed_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pMedia_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+
+       edje_object_signal_emit(_EDJ(pMedia_info->check_item), "pressed", "over_event");
+}
+
+static void __msg_ui_viewer_summary_view_attach_item_released_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pMedia_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+
+       edje_object_signal_emit(_EDJ(pMedia_info->check_item), "unpressed", "over_event");
+}
+
+static void __msg_ui_viewer_summary_view_create_attach_media_layout(MSG_VIEWER_MEDIA_INFO_S *pMedia_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(pMedia_info == NULL, "pMedia_info is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)pMedia_info->view_data;
+
+       Evas_Object *content_layout = elm_layout_add(vsd->content_layout);
+       elm_layout_file_set(content_layout, MSG_VIEWER_THEME, "body_content_layout");
+       evas_object_size_hint_weight_set(content_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(content_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(content_layout);
+
+       /* add layout */
+       Evas_Object *attach_layout = elm_layout_add(content_layout);
+       elm_layout_file_set(attach_layout, MSG_VIEWER_EDJ, "attach_item_layout");
+       evas_object_size_hint_weight_set(attach_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(attach_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(attach_layout);
+
+       /* add layout */
+       Evas_Object *attach_item = elm_layout_add(content_layout);
+       elm_layout_file_set(attach_item, MSG_VIEWER_EDJ, "attach_item");
+       evas_object_size_hint_weight_set(attach_item, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(attach_item, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_object_focus_allow_set(attach_item, EINA_TRUE);
+       evas_object_show(attach_item);
+
+       elm_object_part_content_set(attach_layout, "swallow.rect", attach_item);
+       elm_object_part_content_set(content_layout, "swallow.content", attach_layout);
+       elm_box_pack_end(vsd->content_box, content_layout);
+       evas_object_show(attach_layout);
+
+       elm_object_focus_next_object_set(vsd->focus_object, attach_item, ELM_FOCUS_RIGHT);
+       elm_object_focus_next_object_set(vsd->focus_object, attach_item, ELM_FOCUS_NEXT);
+       elm_object_focus_next_object_set(attach_item, vsd->focus_object, ELM_FOCUS_LEFT);
+       elm_object_focus_next_object_set(attach_item, vsd->focus_object, ELM_FOCUS_PREVIOUS);
+       vsd->focus_object = attach_item;
+
+       /* Add file thumbnail */
+       Evas_Object *thumb_nail = elm_icon_add(attach_item);
+
+       /*set attach file icon*/
+       /* audio media is always display audio icon */
+       if (pMedia_info->media_type == MSG_VIEWER_MEDIA_AUDIO) {
+               elm_image_file_set(thumb_nail, MSG_IMAGES_EDJ, MSG_COMMON_FILE_MUSIC_ICON);
+       } else {        /* media_type == MSG_VIEWER_MEDIA_ATTACH */
+               if (strlen(pMedia_info->pfile_path)) {
+                       const char *icon_path = NULL;
+
+                       icon_path = msg_common_get_file_icon(pMedia_info->pfile_path);
+                       if (icon_path) {
+                               elm_image_file_set(thumb_nail, MSG_IMAGES_EDJ, icon_path);
+                       } else {
+                               D_EMSG("icon_path is NULL");
+                               elm_image_file_set(thumb_nail, MSG_IMAGES_EDJ, MSG_VIEWER_IMAGE_ATTACH_ICON);
+                       }
+               } else {
+                       D_EMSG("filepath is NULL");
+               }
+       }
+
+       if (thumb_nail) evas_object_size_hint_aspect_set(thumb_nail, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+
+       elm_object_part_content_set(attach_item, "item.thumbnail.icon", thumb_nail);
+
+       /* Add file name */
+       edje_object_part_text_set(_EDJ(attach_item), "item.filename.text", pMedia_info->pfile_name);
+
+       /* Let pMedia_info get the private data of thumbnail layout */
+       pMedia_info->check_item = attach_item;
+
+       /* add signal */
+       edje_object_signal_callback_add(_EDJ(attach_item), "clicked", "*", __msg_ui_viewer_summary_view_thumbnail_selected_cb, pMedia_info);
+       evas_object_event_callback_add(attach_item, EVAS_CALLBACK_DEL, __msg_ui_viewer_summary_view_attach_item_delete_cb, pMedia_info);
+       evas_object_event_callback_add(attach_item, EVAS_CALLBACK_KEY_DOWN, __msg_ui_viewer_summary_view_thumbnail_key_down_cb, pMedia_info);
+
+       Evas_Object *text_bg = NULL;
+       text_bg = (Evas_Object *)edje_object_part_object_get(_EDJ(attach_item), "over_event");
+       if (text_bg) {
+               evas_object_event_callback_add(text_bg, EVAS_CALLBACK_MOUSE_DOWN, __msg_ui_viewer_summary_view_attach_item_pressed_cb, (void *)pMedia_info);
+               evas_object_event_callback_add(text_bg, EVAS_CALLBACK_MOUSE_UP, __msg_ui_viewer_summary_view_attach_item_released_cb, (void *)pMedia_info);
+       }
+}
+
+static PARSED_MMS_DATA_REGION_ORDER __msg_ui_viewer_summary_view_check_mms_message_region_order(void *data, PARSED_MMS_PAGE_DATA_S *page_data)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(data == NULL, REGION_ORDER_UNDEFINED, "data is NULL");
+       D_MSG_RETVM_IF(page_data == NULL, REGION_ORDER_UNDEFINED, "page_data is NULL");
+
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       D_MSG("[Current page] --- Text = %d, Video = %d, Image = %d, Audio = %d", page_data->has_text, page_data->has_video, page_data->has_image, page_data->has_audio);
+
+       if (page_data->has_text && (page_data->has_video || page_data->has_image)) {
+               int nTop_0 = 0;
+               int nTop_1 = 0;
+               int nHeight_0 = 0;
+               int nHeight_1 = 0;
+               char szID_0[MAX_SMIL_REGION_ID] = {0,};
+               char szID_1[MAX_SMIL_REGION_ID] = {0,};
+
+               msg_list_handle_t region_list = NULL;
+               msg_get_list_handle(vsd->mms_t, MSG_MMS_REGION_LIST_HND, (void **)&region_list);
+
+               /* Get 0th region */
+               msg_struct_t region_info_0 = (msg_struct_t)msg_list_nth_data(region_list, 0);
+               msg_get_str_value(region_info_0, MSG_MMS_REGION_ID_STR, szID_0, sizeof(szID_0));
+               msg_get_int_value(region_info_0, MSG_MMS_REGION_LENGTH_TOP_INT, &nTop_0);
+               msg_get_int_value(region_info_0, MSG_MMS_REGION_LENGTH_HEIGHT_INT, &nHeight_0);
+
+               /* Get 1th region */
+               msg_struct_t region_info_1 = (msg_struct_t)msg_list_nth_data(region_list, 1);
+               msg_get_str_value(region_info_1, MSG_MMS_REGION_ID_STR, szID_1, sizeof(szID_1));
+               msg_get_int_value(region_info_1, MSG_MMS_REGION_LENGTH_TOP_INT, &nTop_1);
+               msg_get_int_value(region_info_1, MSG_MMS_REGION_LENGTH_HEIGHT_INT, &nHeight_1);
+
+               /*find and set image, text region*/
+               if (!strcasecmp(szID_0, "Image")) {     /*Image top region_info_0 is IMAGE REGION*/
+                       if (nTop_1 == 0 && nTop_0 != 0) {
+                               return REGION_ORDER_TEXT_TOP;
+                       } else if (nTop_1 < nTop_0) {
+                               return REGION_ORDER_TEXT_TOP;
+                       } else if (nTop_1 == 0 && nTop_0 == 0) {
+                               if (nHeight_1 < nHeight_0) {
+                                       return REGION_ORDER_TEXT_TOP;
+                               }
+                       }
+
+               } else if (!strcasecmp(szID_1, "Image")) { /* region_info_1 is IMAGE_REGION */
+                       if (nTop_0 == 0 && nTop_1 != 0) {
+                               return REGION_ORDER_TEXT_TOP;
+                       } else if (nTop_0 < nTop_1) {
+                               return REGION_ORDER_TEXT_TOP;
+                       } else if (nTop_0 == 0 && nTop_1 == 0) {
+                               if (nHeight_0 < nHeight_1) {
+                                       return REGION_ORDER_TEXT_TOP;
+                               }
+                       }
+               }
+       } else if (page_data->has_text) {
+               return REGION_ORDER_TEXT_TOP;
+       }
+
+       return REGION_ORDER_UNDEFINED;
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_summary_view_parse_mms_message(void *data, int *page_media_cnt, int *attach_media_cnt)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       if (!page_media_cnt || !attach_media_cnt)
+               goto FREE_LIST;
+
+       msg_ui_viewer_summary_view_cleanup_parsed_mms_message(data);
+
+       vsd->mms_parsed_data = (PARSED_MMS_DATA_S *)calloc(1, sizeof(PARSED_MMS_DATA_S));
+       if (vsd->mms_parsed_data == NULL)
+               goto FREE_LIST;
+
+       int page_idx = 0;
+       int page_count = 0;
+       int media_count = 0;
+       char strFileName[MSG_FILENAME_LEN_MAX] = {0,};
+       char strFilePath[MSG_FILEPATH_LEN_MAX] = {0,};
+       char strContentType[DEF_BUF_LEN_S] = {0,};
+
+       *page_media_cnt = 0;
+       *attach_media_cnt = 0;
+
+       int ref_attach_count = 0;
+       Eina_List *ref_attach_list = NULL;
+
+       /* get page data */
+       msg_list_handle_t pagelist_info = NULL;
+       msg_get_list_handle(vsd->mms_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
+       page_count = (msg_list_length(pagelist_info) > 0) ? msg_list_length(pagelist_info) : 0;
+
+       vsd->mms_parsed_data->page_count = page_count;
+       vsd->mms_parsed_data->page_data = (PARSED_MMS_PAGE_DATA_S *)calloc(page_count, sizeof(PARSED_MMS_PAGE_DATA_S));
+       if (vsd->mms_parsed_data->page_data == NULL)
+               goto FREE_LIST;
+
+       /*get insert count*/
+       for (page_idx = 0; page_idx < page_count; ++page_idx) {
+               msg_struct_t page_info = NULL;
+               page_info = (msg_struct_t)msg_list_nth_data(pagelist_info, page_idx);
+               if (!page_info) {
+                       D_EMSG("page_info is NULL");
+                       continue;
+               }
+
+               msg_list_handle_t medialist_info = NULL;
+               msg_get_list_handle(page_info, MSG_MMS_PAGE_MEDIA_LIST_HND, (void **)&medialist_info);
+               media_count = (msg_list_length(medialist_info) > 0) ? msg_list_length(medialist_info) : 0;
+               D_MSG("[Before checking REF type] page = %d, page media count = %d", page_idx, media_count);
+               vsd->mms_parsed_data->page_data[page_idx].media_count = media_count;
+
+               int media_idx = 0;
+
+               for (media_idx = 0; media_idx < media_count; ++media_idx) {
+                       int page_ref_attach_count = 0;
+                       msg_struct_t media_info = NULL;
+                       media_info = (msg_struct_t)msg_list_nth_data(medialist_info, media_idx);
+
+                       if (!media_info) {
+                               D_EMSG("%d media_info is NULL", media_idx);
+                               continue;
+                       }
+
+                       bzero(strFileName, sizeof(strFileName));
+                       bzero(strFilePath, sizeof(strFilePath));
+
+                       msg_get_str_value(media_info, MSG_MMS_MEDIA_FILENAME_STR, strFileName, sizeof(strFileName));
+                       msg_get_str_value(media_info, MSG_MMS_MEDIA_FILEPATH_STR, strFilePath, sizeof(strFilePath));
+
+                       D_SEC_MSG("insert media file name: %s", strFileName);
+                       D_SEC_MSG("insert media file path: %s", strFilePath);
+
+                       MSG_VIEWER_MEDIA_INFO_S *pInsert_info = (MSG_VIEWER_MEDIA_INFO_S *)calloc(1, sizeof(MSG_VIEWER_MEDIA_INFO_S));
+                       if (pInsert_info == NULL) {
+                               D_EMSG("calloc is failed");
+                               goto FREE_LIST;
+                       } else {
+                               if (strlen(strFileName)) {
+                                       strncpy(pInsert_info->pfile_name, strFileName, MSG_VIEWER_FILENAME_MAX_LEN);
+                               } else {
+                                       const char *file_name = NULL;
+                                       file_name = msg_file_file_get(strFilePath);
+                                       if (file_name)
+                                               strncpy(pInsert_info->pfile_name, file_name, MSG_VIEWER_FILENAME_MAX_LEN);
+                                       else
+                                               strncpy(pInsert_info->pfile_name, strFilePath, MSG_VIEWER_FILENAME_MAX_LEN);
+                               }
+
+                               strncpy(pInsert_info->pfile_path, strFilePath, MSG_VIEWER_FILEPATH_MAX_LEN);
+
+                               pInsert_info->pfile_size = msg_file_size_get(strFilePath);
+                               pInsert_info->page_index = page_idx;
+                               pInsert_info->media_index = media_idx-page_ref_attach_count;
+                               pInsert_info->total_count = media_count-page_ref_attach_count;
+                               pInsert_info->view_data = data;
+
+                               int mediaType;
+                               CONTENT_DISPLAY_TYPE content_type;
+
+                               msg_get_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
+                               switch (mediaType) {
+                                       case MMS_SMIL_MEDIA_TEXT:
+                                               msg_get_str_value(media_info, MSG_MMS_MEDIA_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+                                               content_type = msg_ui_content_get_display_type(strContentType);
+                                               if (content_type != DISPLAY_TEXT) {
+                                                       vsd->mms_parsed_data->page_data[page_idx].media_count--;
+                                                       page_ref_attach_count++;
+                                                       pInsert_info->page_index = MSG_VIEWER_PAGE_INDEX_NONE;
+                                                       pInsert_info->media_index = ref_attach_count++;
+                                                       pInsert_info->total_count = 0;
+                                                       ref_attach_list = eina_list_append(ref_attach_list, pInsert_info);
+                                                       D_MSG("Not available display text type!! (eg. text/x-vCard, text/x-vCalendar)");
+                                                       break;
+                                               }
+                                               pInsert_info->media_type = MSG_VIEWER_MEDIA_TEXT;
+                                               pInsert_info->media_subtype = MSG_VIEWER_MEDIA_TEXT;
+                                               vsd->mms_parsed_data->page_data[page_idx].has_text = true;
+                                               break;
+                                       case MMS_SMIL_MEDIA_IMG:
+                                               pInsert_info->media_type = MSG_VIEWER_MEDIA_IMG;
+                                               pInsert_info->media_subtype = MSG_VIEWER_MEDIA_IMG;
+                                               vsd->mms_parsed_data->page_data[page_idx].has_image = true;
+                                               (*page_media_cnt)++;
+                                               break;
+                                       case MMS_SMIL_MEDIA_AUDIO:
+                                               pInsert_info->media_type = MSG_VIEWER_MEDIA_AUDIO;
+                                               pInsert_info->media_subtype = MSG_VIEWER_MEDIA_AUDIO;
+                                               vsd->mms_parsed_data->page_data[page_idx].has_audio = true;
+                                               (*page_media_cnt)++;
+                                               break;
+                                       case MMS_SMIL_MEDIA_VIDEO:
+                                               pInsert_info->media_type = MSG_VIEWER_MEDIA_VIDEO;
+                                               pInsert_info->media_subtype = MSG_VIEWER_MEDIA_VIDEO;
+                                               vsd->mms_parsed_data->page_data[page_idx].has_video = true;
+                                               __msg_ui_viewer_summary_view_get_video_thumbnail(pInsert_info);
+                                               (*page_media_cnt)++;
+                                               break;
+                                       case MMS_SMIL_MEDIA_ANIMATE:
+                                               pInsert_info->media_type = MSG_VIEWER_MEDIA_ANIMATE;
+                                               pInsert_info->media_subtype = MSG_VIEWER_MEDIA_ANIMATE;
+                                               vsd->mms_parsed_data->page_data[page_idx].has_image = true;
+                                               (*page_media_cnt)++;
+                                               break;
+                                       case MMS_SMIL_MEDIA_IMG_OR_VIDEO:                       /* ref media type */
+                                               bzero(strContentType, sizeof(strContentType));
+                                               msg_get_str_value(media_info, MSG_MMS_MEDIA_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+                                               content_type = msg_ui_content_get_display_type(strContentType);
+
+                                               if (content_type == DISPLAY_TEXT) {
+                                                       pInsert_info->media_type = MSG_VIEWER_MEDIA_TEXT;
+                                                       pInsert_info->media_subtype = MSG_VIEWER_MEDIA_TEXT;
+                                                       vsd->mms_parsed_data->page_data[page_idx].has_text = true;
+                                               } else if (content_type == DISPLAY_IMAGE) {
+                                                       pInsert_info->media_type = MSG_VIEWER_MEDIA_IMG;
+                                                       pInsert_info->media_subtype = MSG_VIEWER_MEDIA_IMG;
+                                                       vsd->mms_parsed_data->page_data[page_idx].has_image = true;
+                                                       (*page_media_cnt)++;
+                                               } else if (content_type == DISPLAY_VIDEO) {
+                                                       pInsert_info->media_type = MSG_VIEWER_MEDIA_VIDEO;
+                                                       pInsert_info->media_subtype = MSG_VIEWER_MEDIA_VIDEO;
+                                                       vsd->mms_parsed_data->page_data[page_idx].has_video = true;
+                                                       __msg_ui_viewer_summary_view_get_video_thumbnail(pInsert_info);
+                                                       (*page_media_cnt)++;
+                                               } else if (content_type == DISPLAY_AUDIO) {
+                                                       pInsert_info->media_type = MSG_VIEWER_MEDIA_AUDIO;
+                                                       pInsert_info->media_subtype = MSG_VIEWER_MEDIA_AUDIO;
+                                                       vsd->mms_parsed_data->page_data[page_idx].has_audio = true;
+                                                       (*page_media_cnt)++;
+                                               } else {
+                                                       vsd->mms_parsed_data->page_data[page_idx].media_count--;
+                                                       page_ref_attach_count++;
+                                                       pInsert_info->page_index = MSG_VIEWER_PAGE_INDEX_NONE;
+                                                       pInsert_info->media_index = ref_attach_count++;
+                                                       pInsert_info->total_count = 0;
+                                                       ref_attach_list = eina_list_append(ref_attach_list, pInsert_info);
+                                               }
+                                               break;
+                                       default:
+                                               D_MSG("%d type is not handled in switch!", mediaType);
+                                               break;
+                               }
+
+                               /*append insert item list*/
+                               if (pInsert_info->page_index != MSG_VIEWER_PAGE_INDEX_NONE)
+                                       vsd->mms_parsed_data->page_data[page_idx].insert_list = eina_list_append(vsd->mms_parsed_data->page_data[page_idx].insert_list, pInsert_info);
+                       }
+               }
+
+               D_MSG("[After checking REF type] page = %d, page media count = %d", page_idx, vsd->mms_parsed_data->page_data[page_idx].media_count);
+
+               /* set region order */
+               vsd->mms_parsed_data->page_data[page_idx].region_order = __msg_ui_viewer_summary_view_check_mms_message_region_order(vsd, &vsd->mms_parsed_data->page_data[page_idx]);
+
+               D_MSG("Region order of Page[%d] = %d", page_idx, vsd->mms_parsed_data->page_data[page_idx].region_order);
+       }
+
+       /*get attached content list*/
+       int attach_idx = 0;
+       int attach_count = 0;
+
+       /*get attach count*/
+       msg_list_handle_t attachlist_info = NULL;
+       msg_get_list_handle(vsd->mms_t, MSG_MMS_ATTACH_LIST_HND, (void **)&attachlist_info);
+       attach_count = (msg_list_length(attachlist_info) > 0) ? msg_list_length(attachlist_info) : 0;
+
+       if (attach_count != 0) {
+               vsd->mms_parsed_data->attach_count = attach_count + ref_attach_count;
+               vsd->mms_parsed_data->attach_data = (PARSED_MMS_ATTACH_DATA_S *)calloc(1, sizeof(PARSED_MMS_ATTACH_DATA_S));
+               if (vsd->mms_parsed_data->attach_data == NULL)
+                       goto FREE_LIST;
+
+               if (ref_attach_count > 0)
+                       *attach_media_cnt = ref_attach_count;
+
+               for (attach_idx = 0; attach_idx < attach_count; ++attach_idx) {
+                       msg_struct_t attach_info = NULL;
+
+                       attach_info = (msg_struct_t)msg_list_nth_data(attachlist_info, attach_idx);
+
+                       CONTENT_DISPLAY_TYPE content_type;
+
+                       if (attach_info == NULL) {
+                               D_EMSG("pAttach is NULL");
+                               continue;
+                       }  else {
+                               bzero(strFileName, sizeof(strFileName));
+                               bzero(strFilePath, sizeof(strFilePath));
+
+                               msg_get_str_value(attach_info, MSG_MMS_ATTACH_FILENAME_STR, strFileName, sizeof(strFileName));
+                               msg_get_str_value(attach_info, MSG_MMS_ATTACH_FILEPATH_STR, strFilePath, sizeof(strFilePath));
+
+                               D_SEC_MSG("attachment file name: %s", strFileName);
+                               D_SEC_MSG("attachment file path: %s", strFilePath);
+
+                               MSG_VIEWER_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_MEDIA_INFO_S *)calloc(1, sizeof(MSG_VIEWER_MEDIA_INFO_S));
+                               if (pAttach_info == NULL) {
+                                       D_EMSG("calloc is failed");
+                                       goto FREE_LIST;
+                               } else {
+                                       if (strlen(strFileName)) {
+                                               strncpy(pAttach_info->pfile_name, strFileName, MSG_VIEWER_FILENAME_MAX_LEN);
+                                       } else {
+                                               const char *file_name = NULL;
+                                               file_name = msg_file_file_get(strFilePath);
+                                               if (file_name)
+                                                       strncpy(pAttach_info->pfile_name, file_name, MSG_VIEWER_FILENAME_MAX_LEN);
+                                               else
+                                                       strncpy(pAttach_info->pfile_name, strFilePath, MSG_VIEWER_FILENAME_MAX_LEN);
+                                       }
+
+                                       strncpy(pAttach_info->pfile_path, strFilePath, MSG_VIEWER_FILEPATH_MAX_LEN);
+
+                                       pAttach_info->pfile_size = msg_file_size_get(strFilePath);
+                                       pAttach_info->media_index = attach_idx + ref_attach_count;
+                                       pAttach_info->total_count = attach_count + ref_attach_count;
+                                       pAttach_info->media_type = MSG_VIEWER_MEDIA_ATTACH;
+
+                                       bzero(strContentType, sizeof(strContentType));
+                                       msg_get_str_value(attach_info, MSG_MMS_MEDIA_CONTENT_TYPE_STR, strContentType, sizeof(strContentType));
+                                       content_type = msg_ui_content_get_display_type(strContentType);
+
+                                       if (content_type == DISPLAY_TEXT)
+                                               pAttach_info->media_subtype = MSG_VIEWER_MEDIA_TEXT;
+                                       else if (content_type == DISPLAY_IMAGE)
+                                               pAttach_info->media_subtype = MSG_VIEWER_MEDIA_IMG;
+                                       else if (content_type == DISPLAY_VIDEO)
+                                               pAttach_info->media_subtype = MSG_VIEWER_MEDIA_VIDEO;
+                                       else if (content_type == DISPLAY_AUDIO)
+                                               pAttach_info->media_subtype = MSG_VIEWER_MEDIA_AUDIO;
+
+                                       pAttach_info->page_index = MSG_VIEWER_PAGE_INDEX_NONE;
+
+                                       pAttach_info->view_data = data;
+                                       (*attach_media_cnt)++;
+
+                                       /*append attach list*/
+                                       vsd->mms_parsed_data->attach_data->attach_list = eina_list_append(vsd->mms_parsed_data->attach_data->attach_list, pAttach_info);
+                               }
+                       }
+               }
+
+               if (ref_attach_list) {
+                       Eina_List *l = NULL;
+                       MSG_VIEWER_MEDIA_INFO_S *pAttach_info = NULL;
+                       EINA_LIST_FOREACH(vsd->mms_parsed_data->attach_data->attach_list, l, pAttach_info) {
+                               ref_attach_list = eina_list_append(ref_attach_list, pAttach_info);
+                               vsd->mms_parsed_data->attach_data->attach_list = eina_list_remove(vsd->mms_parsed_data->attach_data->attach_list, pAttach_info);
+                       }
+
+                       if (vsd->mms_parsed_data->attach_data->attach_list)
+                               eina_list_free(vsd->mms_parsed_data->attach_data->attach_list);
+
+                       vsd->mms_parsed_data->attach_data->attach_list = ref_attach_list;
+               }
+       } else {
+               if (ref_attach_list) {
+                       *attach_media_cnt = vsd->mms_parsed_data->attach_count = ref_attach_count;
+
+                       vsd->mms_parsed_data->attach_data = (PARSED_MMS_ATTACH_DATA_S *)calloc(1, sizeof(PARSED_MMS_ATTACH_DATA_S));
+                       if (vsd->mms_parsed_data->attach_data == NULL)
+                               goto FREE_LIST;
+
+                       vsd->mms_parsed_data->attach_data->attach_list = ref_attach_list;
+               }
+       }
+
+       D_SEC_MSG("Available to Save count : Page media = %d, Attach media %d", *page_media_cnt, *attach_media_cnt);
+
+       return;
+
+FREE_LIST:
+       D_MSG("Free media item list");
+       msg_ui_viewer_summary_view_cleanup_parsed_mms_message(data);
+}
+
+static Eina_Bool _load_finish_idler_cb(void *data)
+{
+       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
+       MSG_VIEWER_MEDIA_INFO_S *pMedia_info = (MSG_VIEWER_MEDIA_INFO_S *)data;
+
+       __msg_ui_viewer_summary_view_create_attach_media_layout(pMedia_info);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+void msg_ui_viewer_summary_view_fill_mms_context(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       /* parse smil contents */
+       int insert_count = 0;
+       int attach_count = 0;
+
+       __msg_ui_viewer_summary_view_parse_mms_message(vsd, &insert_count, &attach_count);
+
+       vsd->attach_count = insert_count + attach_count;
+
+       /* display page medias */
+       int page_index = 0;
+       Evas_Object *first_focus_item = NULL;
+
+       for (page_index = 0; page_index < vsd->mms_parsed_data->page_count; page_index++) {
+               PARSED_MMS_PAGE_DATA_S *cur_page_data = &vsd->mms_parsed_data->page_data[page_index];
+               if (NULL == cur_page_data) {
+                       D_MSG("fail in getting current page data, index = [%d]", page_index);
+                       continue;
+               }
+
+               int media_index = 0;
+               int text_index = -1;
+               int image_index = -1;
+               int video_index = -1;
+               int audio_index = -1;
+               int drm_index = -1;
+
+               /* get media index of each page */
+               MSG_VIEWER_MEDIA_INFO_S *pMedia_info = eina_list_nth(cur_page_data->insert_list, media_index);
+               while (pMedia_info) {
+                       switch (pMedia_info->media_type) {
+                               case MSG_VIEWER_MEDIA_TEXT:
+                                       text_index = media_index;
+                                       break;
+                               case MSG_VIEWER_MEDIA_IMG:
+                                       image_index = media_index;
+                                       break;
+                               case MSG_VIEWER_MEDIA_AUDIO:
+                                       audio_index = media_index;
+                                       break;
+                               case MSG_VIEWER_MEDIA_VIDEO:
+                               case MSG_VIEWER_MEDIA_ANIMATE:
+                               case MSG_VIEWER_MEDIA_IMG_OR_VIDEO:
+                                       video_index = media_index;
+                                       break;
+                               case MSG_VIEWER_MEDIA_DRM:
+                                       drm_index = media_index;
+                                       break;
+                               case MSG_VIEWER_MEDIA_ATTACH:
+                               case MSG_VIEWER_MEDIA_INVALID:
+                                       break;
+                       }
+
+                       pMedia_info = eina_list_nth(cur_page_data->insert_list, ++media_index);
+               }
+               /* if text top, set order as text > image(video) > audio > DRM
+                * else if image top, set order as image(video) > text > audio > DRM */
+
+               D_MSG("region order = %d", cur_page_data->region_order);
+
+               if (cur_page_data->region_order == REGION_ORDER_TEXT_TOP) {
+                       /* 1. text append */
+                       if (text_index != -1) {
+                               __msg_ui_viewer_summary_view_create_padding_layout(vsd, MSG_VIEWER_PADDING_TOP_2);
+                               pMedia_info = eina_list_nth(cur_page_data->insert_list, text_index);
+                               Evas_Object *entry = __msg_ui_viewer_summary_view_create_text_media_layout(pMedia_info);
+                               first_focus_item = (!first_focus_item) ? entry : first_focus_item;
+                       }
+
+                       /* 2. video of image append */
+                       int second_region = (image_index != -1) ? image_index : ((video_index != -1) ? video_index : -1);
+
+                       if (second_region != -1) {
+                               __msg_ui_viewer_summary_view_create_padding_layout(vsd, MSG_VIEWER_PADDING_TOP_2);
+                               pMedia_info = eina_list_nth(cur_page_data->insert_list, second_region);
+                               Evas_Object *layout = __msg_ui_viewer_summary_view_create_thumbnail_media_layout(pMedia_info);
+                               first_focus_item = (!first_focus_item) ? layout : first_focus_item;
+                       }
+
+                       /* 3. audio append */
+                       if (audio_index != -1) {
+                               __msg_ui_viewer_summary_view_create_padding_layout(vsd, MSG_VIEWER_PADDING_TOP_2);
+                               pMedia_info = eina_list_nth(cur_page_data->insert_list, audio_index);
+
+                               MSG_ECORE_IDLER_DEL(vsd->load_idler);
+
+                               if (vsd->load_idler == NULL) {
+                                       vsd->load_idler = ecore_idler_add(_load_finish_idler_cb, pMedia_info);
+                               }
+                       }
+
+                       /* 4. Drm append */
+                       if (drm_index != -1) {
+                               __msg_ui_viewer_summary_view_create_padding_layout(vsd, MSG_VIEWER_PADDING_TOP_2);
+                               pMedia_info = eina_list_nth(cur_page_data->insert_list, drm_index);
+                               Evas_Object *layout = __msg_ui_viewer_summary_view_create_thumbnail_media_layout(pMedia_info);
+                               first_focus_item = (!first_focus_item) ? layout : first_focus_item;
+                       }
+               } else {
+                       /* 1. video of image append */
+                       int first_region = (image_index != -1) ? image_index : (video_index != -1 ? video_index : -1);
+
+                       if (first_region != -1) {
+                               __msg_ui_viewer_summary_view_create_padding_layout(vsd, MSG_VIEWER_PADDING_TOP_2);
+                               pMedia_info = eina_list_nth(cur_page_data->insert_list, first_region);
+                               Evas_Object *layout = __msg_ui_viewer_summary_view_create_thumbnail_media_layout(pMedia_info);
+                               first_focus_item = (!first_focus_item) ? layout : first_focus_item;
+                       }
+
+                       /* 2. text append */
+                       if (text_index != -1) {
+                               __msg_ui_viewer_summary_view_create_padding_layout(vsd, MSG_VIEWER_PADDING_TOP_2);
+                               pMedia_info = eina_list_nth(cur_page_data->insert_list, text_index);
+                               Evas_Object *entry = __msg_ui_viewer_summary_view_create_text_media_layout(pMedia_info);
+                               first_focus_item = (!first_focus_item) ? entry : first_focus_item;
+                       }
+
+                       /* 3. audio append */
+                       if (audio_index != -1) {
+                               __msg_ui_viewer_summary_view_create_padding_layout(vsd, MSG_VIEWER_PADDING_TOP_2);
+                               pMedia_info = eina_list_nth(cur_page_data->insert_list, audio_index);
+
+                               MSG_ECORE_IDLER_DEL(vsd->load_idler);
+
+                               if (vsd->load_idler == NULL) {
+                                       vsd->load_idler = ecore_idler_add(_load_finish_idler_cb, pMedia_info);
+                               }
+                       }
+
+                       /* 4. Drm append */
+                       if (drm_index != -1) {
+                               __msg_ui_viewer_summary_view_create_padding_layout(vsd, MSG_VIEWER_PADDING_TOP_2);
+                               pMedia_info = eina_list_nth(cur_page_data->insert_list, drm_index);
+                               Evas_Object *layout = __msg_ui_viewer_summary_view_create_thumbnail_media_layout(pMedia_info);
+                               first_focus_item = (!first_focus_item) ? layout : first_focus_item;
+                       }
+               }
+       }
+
+       /* display attach medias */
+       if (vsd->mms_parsed_data->attach_count > 0) {
+               __msg_ui_viewer_summary_view_create_padding_layout(vsd, MSG_VIEWER_PADDING_TOP_2);
+
+               PARSED_MMS_ATTACH_DATA_S *attach_data = vsd->mms_parsed_data->attach_data;
+               int attach_index = 0;
+               for (attach_index = 0; attach_index < vsd->mms_parsed_data->attach_count; attach_index++) {
+                       MSG_VIEWER_MEDIA_INFO_S *pMedia_info = eina_list_nth(attach_data->attach_list, attach_index);
+                       if (pMedia_info) {
+                               __msg_ui_viewer_summary_view_create_padding_layout(vsd, MSG_VIEWER_PADDING_MIDDLE_1);
+
+                               MSG_ECORE_IDLER_DEL(vsd->load_idler);
+
+                               if (vsd->load_idler == NULL) {
+                                       vsd->load_idler = ecore_idler_add(_load_finish_idler_cb, pMedia_info);
+                               }
+                       }
+               }
+       }
+
+       /* add bottom padding */
+       __msg_ui_viewer_summary_view_create_padding_layout(vsd, MSG_VIEWER_PADDING_BOTTOM);
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_summary_view_cleanup_parsed_mms_message(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       /* clean up buffer */
+       if (vsd->mms_parsed_data) {
+               PARSED_MMS_DATA_S *mms_data = vsd->mms_parsed_data;
+
+               D_MSG("Freeing INSERT DATA");
+
+               if (mms_data->page_data) {
+                       int index = 0;
+                       int ntotal = 0;
+                       int page_index = 0;
+
+                       D_MSG("page count = %d", mms_data->page_count);
+
+                       for (page_index = 0; page_index < mms_data->page_count; page_index++) {
+                               PARSED_MMS_PAGE_DATA_S *page_data = &mms_data->page_data[page_index];
+                               ntotal = eina_list_count(page_data->insert_list);
+                               for (index = 0; index < ntotal; index++) {
+                                       MSG_VIEWER_MEDIA_INFO_S *pMedia_info = eina_list_nth(page_data->insert_list, index);
+                                       if (pMedia_info) {
+                                               /* to delete callback of MOUSE EVENT */
+                                               evas_object_del(pMedia_info->check_item);
+                                               free(pMedia_info);
+                                               pMedia_info = NULL;
+                                       }
+                               }
+                               eina_list_free(page_data->insert_list);
+                               page_data->insert_list = NULL;
+                       }
+
+                       free(mms_data->page_data);
+                       mms_data->page_data = NULL;
+               }
+
+               D_MSG("Freeing ATTACH DATA");
+
+               if (mms_data->attach_data) {
+                       int index = 0;
+                       int ntotal = 0;
+                       PARSED_MMS_ATTACH_DATA_S *attach_data = mms_data->attach_data;
+                       ntotal = eina_list_count(attach_data->attach_list);
+                       for (index = 0; index < ntotal; index++) {
+                               MSG_VIEWER_MEDIA_INFO_S *pMedia_info = eina_list_nth(attach_data->attach_list, index);
+                               if (pMedia_info) {
+                                       /* to delete callback of MOUSE EVENT */
+                                       evas_object_del(pMedia_info->check_item);
+                                       free(pMedia_info);
+                                       pMedia_info = NULL;
+                               }
+                       }
+                       eina_list_free(attach_data->attach_list);
+                       attach_data->attach_list = NULL;
+
+                       free(mms_data->attach_data);
+                       mms_data->attach_data = NULL;
+               }
+
+               free(vsd->mms_parsed_data);
+               vsd->mms_parsed_data = NULL;
+       }
+}
+
+void msg_ui_viewer_summary_view_fill_text_content(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETM_IF(vsd->msg_t == NULL, "vsd->msg_t is NULL");
+
+       int msg_size = 0;
+       char subject[DEF_BUF_LEN_S+1] = {0,};
+       char *body_text = NULL;
+
+       msg_get_int_value(vsd->msg_t, MSG_MESSAGE_DATA_SIZE_INT, &msg_size);
+
+       if (msg_size > 0) {
+               Evas_Object *content_layout = elm_layout_add(vsd->content_layout);
+               elm_layout_file_set(content_layout, MSG_VIEWER_THEME, "body_content_layout");
+               evas_object_size_hint_weight_set(content_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(content_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_show(content_layout);
+
+               /* create entry */
+               Evas_Object *entry = elm_entry_add(vsd->content_layout);
+               elm_entry_entry_set(entry, "");
+               elm_entry_editable_set(entry, EINA_FALSE);
+               evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               eext_entry_selection_back_event_allow_set(entry, EINA_TRUE);
+
+               elm_object_part_content_set(content_layout, "swallow.content", entry);
+               elm_box_pack_end(vsd->content_box, content_layout);
+               evas_object_show(entry);
+               vsd->content_entry = entry;
+
+               /* get content */
+               if (vsd->msg_type == MSG_TYPE_MMS_NOTI) {
+                       msg_get_str_value(vsd->msg_t, MSG_MESSAGE_SUBJECT_STR, subject, DEF_BUF_LEN_S);
+                       if (strlen(subject) > 0) {
+                               body_text = (char *)calloc(1, strlen(subject)+1);
+
+                if (body_text) {
+                    strncpy(body_text, subject, strlen(subject));
+                } else {
+                    D_EMSG("body_text is NULL. Memory cannot be allocated");
+                }
+                       } else {
+                               D_EMSG("msg_get_str_value(MSG_MESSAGE_SUBJECT_STR) is failed !!");
+                       }
+               } else {
+                       char msg_text[msg_size + 1];
+                       memset(msg_text, 0, msg_size + 1);
+                       msg_get_str_value(vsd->msg_t, MSG_MESSAGE_SMS_DATA_STR, msg_text, msg_size);
+                       if (strlen(msg_text) > 0) {
+                               body_text = (char *)calloc(1, msg_size + 1);
+                               if (body_text != NULL)
+                                       strncpy(body_text, msg_text, msg_size);
+                       } else {
+                               D_EMSG("msg_get_str_value(MSG_MESSAGE_SMS_DATA_STR) is failed !!");
+                       }
+               }
+
+               /* add bottom padding */
+               Evas_Object *top_padding = elm_layout_add(vsd->content_layout);
+               elm_layout_file_set(top_padding, MSG_VIEWER_THEME, "viewer_layout_padding");
+               elm_object_signal_emit(top_padding, "padding,top2", "");
+
+               evas_object_size_hint_weight_set(top_padding, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(top_padding, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               elm_box_pack_start(vsd->content_box, top_padding);
+               evas_object_show(top_padding);
+               vsd->content_top_padding = top_padding;
+
+               /* create body bottom padding */
+               Evas_Object *padding = elm_layout_add(vsd->content_layout);
+               elm_layout_file_set(padding, MSG_VIEWER_THEME, "viewer_layout_padding");
+               elm_object_signal_emit(padding, "padding,bottom", "");
+
+               evas_object_size_hint_weight_set(padding, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(padding, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               elm_box_pack_end(vsd->content_box, padding);
+               evas_object_show(padding);
+               vsd->content_bottom_padding = padding;
+
+               if (body_text) {
+                       char *markup_text = elm_entry_utf8_to_markup(msg_common_convert_cr_to_nl(body_text));
+
+                       /* get marked up text */
+                       if (markup_text) {
+                               elm_entry_entry_set(vsd->content_entry, markup_text);
+                               free(markup_text);
+                       }
+
+                       free(body_text);
+
+                       msg_common_apply_emoticon_to_entry(vsd->content_entry);
+               } else {
+                       D_WMSG("There's no body text to display");
+               }
+       } else {
+               D_EMSG("msg_get_int_value(MSG_MESSAGE_DATA_SIZE_INT) is failed !!");
+       }
+}
diff --git a/viewer/src/msg-ui-viewer-summary-view-option.c b/viewer/src/msg-ui-viewer-summary-view-option.c
new file mode 100755 (executable)
index 0000000..b03b0a3
--- /dev/null
@@ -0,0 +1,1811 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                                     INCLUDE HEADERS
+ *==================================================================================================*/
+#include "msg-ui-viewer-main.h"
+#include "msg-ui-viewer-summary-view.h"
+#include "msg-ui-viewer-utility.h"
+#include "msg-ui-common-utility.h"
+#include "msg-ui-content-utility.h"
+#include "msg-ui-image-resource.h"
+#include <msg.h>
+#include <msg_storage.h>
+#include <msg_transport.h>
+
+#include <contacts.h>
+#include "msg-system-util.h"
+
+#include <app_control_internal.h>
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+/* More Options */
+static void __msg_ui_viewer_summary_view_option_more_ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_option_delete_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_option_popup_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_option_forward(void *data);
+static void __msg_ui_viewer_summary_view_option_save_attachment_menu(void *data);
+static void __msg_ui_viewer_summary_view_option_resend(void *data);
+static void __msg_ui_viewer_summary_view_option_reply(void *data);
+static void __msg_ui_viewer_summary_view_copy_message_text_to_clipboard(void *data);
+static void __msg_ui_viewer_summary_view_option_copy_to(void *data);
+static void __msg_ui_viewer_summary_view_restore_msg(void *data);
+
+static void __msg_ui_viewer_summary_view_option_launch_spam_setting(void *data);
+static void __msg_ui_viewer_summary_view_option_view_slideshow(void *data);
+
+static void __msg_ui_viewer_summary_view_option_recipient_list_menu_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static void  __msg_ui_viewer_summary_view_option_recipient_list_menu_del(void *data, Evas_Object *obj);
+static void __msg_ui_viewer_summary_view_option_email_menu(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_option_block_address_menu(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_summary_view_option_unblock_address_menu(void *data, Evas_Object *obj, void *event_info);
+
+/*==================================================================================================
+ *                                                             FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+static void __msg_ui_viewer_summary_view_option_save_attachment_menu(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       /* create popup for save attachments and insert items */
+       msg_ui_viewer_summary_view_create_save_attachments_popup(vsd);
+       D_LEAVE;
+}
+
+static void __msg_ui_summary_viewer_option_move_more_ctxpopup(Evas_Object *main_window, Evas_Object *ctx_popup)
+{
+       D_MSG_RETM_IF(main_window == NULL, "main_window is NULL");
+       D_MSG_RETM_IF(ctx_popup == NULL, "ctx is NULL");
+
+       Evas_Coord w = 0;
+       Evas_Coord h = 0;
+
+       elm_win_screen_size_get(main_window, NULL, NULL, &w, &h);
+       int pos = elm_win_rotation_get(main_window);
+
+       if (pos == 0 || pos == 180)
+               evas_object_move(ctx_popup, w/2, h);
+       else if (pos == 90)
+               evas_object_move(ctx_popup, h/2, w);
+       else if (pos == 270)
+               evas_object_move(ctx_popup, h/2, w);
+       else
+               D_MSG("indifferent degree [%d]", pos);
+}
+
+static void __msg_ui_summary_viewer_option_resize_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       if (vsd->popup_type == MSG_VIEWER_MENU_CTX_POPUP)
+               __msg_ui_summary_viewer_option_move_more_ctxpopup(vsd->main_window, vsd->popup);
+}
+
+static void __msg_ui_summary_viewer_option_rotate_more_ctxpopup_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(!data, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       if (vsd->popup_type == MSG_VIEWER_MENU_CTX_POPUP)
+               __msg_ui_summary_viewer_option_move_more_ctxpopup(vsd->main_window, vsd->popup);
+}
+
+static void __msg_ui_summary_viewer_option_delete_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       Evas_Object *ctx = obj;
+
+       evas_object_event_callback_del_full(vsd->navi_frame, EVAS_CALLBACK_RESIZE, __msg_ui_summary_viewer_option_resize_more_ctxpopup_cb, vsd);
+       evas_object_smart_callback_del_full(elm_object_top_widget_get(ctx), "rotation,changed", __msg_ui_summary_viewer_option_rotate_more_ctxpopup_cb, vsd);
+       evas_object_smart_callback_del(ctx, "dismissed", __msg_ui_viewer_summary_view_option_more_ctxpopup_dismissed_cb);
+       evas_object_event_callback_del_full(ctx, EVAS_CALLBACK_DEL, __msg_ui_summary_viewer_option_delete_more_ctxpopup_cb, vsd);
+}
+
+void msg_ui_viewer_summary_view_option_create_more_popup(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETM_IF(vsd->msg_t == NULL, "vsd->msg_t is NULL");
+
+       if (vsd->ug_destroy_initiated)
+               return;
+
+       int folder_id = MSG_MAX_FOLDER_ID;
+       int storage_id = MSG_STORAGE_UNKNOWN;
+
+       if (vsd->popup) {
+               msg_ui_viewer_summary_view_popup_destroy(vsd);
+       } else {
+               Evas_Object *ctx_popup = NULL;
+               ctx_popup = elm_ctxpopup_add(vsd->navi_frame);
+               elm_object_style_set(ctx_popup, "more/default");
+               elm_ctxpopup_auto_hide_disabled_set(ctx_popup, EINA_TRUE);
+
+               elm_ctxpopup_direction_priority_set(ctx_popup, ELM_CTXPOPUP_DIRECTION_UP,
+                                                                                ELM_CTXPOPUP_DIRECTION_UNKNOWN,
+                                                                                ELM_CTXPOPUP_DIRECTION_UNKNOWN,
+                                                                                ELM_CTXPOPUP_DIRECTION_UNKNOWN);
+               evas_object_smart_callback_add(ctx_popup, "dismissed", __msg_ui_viewer_summary_view_option_more_ctxpopup_dismissed_cb, (void *)vsd);
+               evas_object_event_callback_add(ctx_popup, EVAS_CALLBACK_DEL, __msg_ui_summary_viewer_option_delete_more_ctxpopup_cb, (void *)vsd);
+               evas_object_event_callback_add(vsd->navi_frame, EVAS_CALLBACK_RESIZE, __msg_ui_summary_viewer_option_resize_more_ctxpopup_cb, (void *)vsd);
+               evas_object_smart_callback_add(elm_object_top_widget_get(ctx_popup), "rotation,changed", __msg_ui_summary_viewer_option_rotate_more_ctxpopup_cb, (void *)vsd);
+
+               /* Get folder ID and Add Resend / Reply menu */
+               msg_get_int_value(vsd->msg_t, MSG_MESSAGE_FOLDER_ID_INT, &folder_id);
+
+               int addr_count = msg_viewer_util_get_thread_address_count(vsd->msgHandle, vsd->msg_t);
+
+               char *address = NULL;
+               msg_viewer_util_get_thread_nth_address(vsd->msgHandle, vsd->msg_t, 0, &address);
+
+               if (folder_id == MSG_OUTBOX_ID) {
+                       if (vsd->internal_mode == VIEWER_INTERNAL_NONE) {
+                               int status;
+                               msg_get_int_value(vsd->msg_t, MSG_MESSAGE_NETWORK_STATUS_INT, &status);
+
+                               if (status != MSG_NETWORK_SENDING) {
+                                       elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BUTTON_RESEND_ABB"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+                               }
+                       }
+               }
+               if (vsd->internal_mode == VIEWER_INTERNAL_SPAM_MSG) {
+                       elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+                       elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_SK_RESTORE"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+               }
+
+               /* Add FORWARD menu */
+               if (vsd->internal_mode != VIEWER_INTERNAL_SPAM_MSG) {
+                       elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_FORWARD"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+               }
+
+               /* save attachment */
+               if (vsd->attach_count > 0) {
+                       elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_SAVE_ATTACHMENT"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+               }
+
+               if (vsd->internal_mode == VIEWER_INTERNAL_NONE) {
+                       if ((vsd->msg_type != MSG_TYPE_MMS && vsd->msg_type != MSG_TYPE_SMS_CB) && folder_id != MSG_OUTBOX_ID) {
+                               msg_struct_t conv = msg_create_struct(MSG_STRUCT_CONV_INFO);
+
+                               if (msg_get_conversation(vsd->msgHandle, vsd->msgID, conv) == MSG_SUCCESS) {
+                                       msg_get_int_value(conv, MSG_CONV_MSG_STORAGE_ID_INT, (int *)&storage_id);
+                               } else {
+                                       D_EMSG("Failed in getting Conversation");
+                               }
+
+                               msg_release_struct(&conv);
+
+                               if (storage_id == MSG_STORAGE_PHONE) {
+                                       if (msg_common_is_sim_inserted() == TRUE) {
+                                               bool flight_mode = false;
+                                               msg_sys_flight_mode_get(&flight_mode);
+                                               if (!flight_mode) {
+                                                       elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+                                               }
+                                       }
+                               } else if (storage_id == MSG_STORAGE_SIM) {
+                                       elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+                               }
+                       }
+               } else if (vsd->internal_mode == VIEWER_INTERNAL_SIM_MSG) {
+                       if (vsd->msg_type != MSG_TYPE_MMS) {
+                               elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_DEVICE_ABB"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+                       }
+               }
+
+               /* Add Copy Message text menu */
+               if (vsd->internal_mode != VIEWER_INTERNAL_SPAM_MSG) {
+                       if ((char *)elm_object_text_get(vsd->content_entry) != NULL) {
+                               elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_COPY_TEXT"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+                       }
+               }
+
+               bool is_phonenum = false;
+               bool is_email = false;
+
+               if (addr_count == 1 && address) {
+                       D_SEC_MSG("address = %s", address);
+
+                       if (true == (is_phonenum = msg_common_is_valid_phone_number(address))) {
+                               int filter_id = 0;
+                               if (msg_ui_viewer_check_address_is_blocked(vsd->msgHandle, address, &filter_id)) {
+                                       elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+                               } else {
+                                       if (vsd->internal_mode != VIEWER_INTERNAL_SPAM_MSG) {
+                                               elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+                                       }
+                               }
+
+                       } else if (true == (is_email = msg_common_is_valid_email_addr(address))) {
+                               elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_EMAIL"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+                       } else {
+                               D_MSG("address is invalid type");
+                       }
+               }
+
+               if (vsd->internal_mode != VIEWER_INTERNAL_SPAM_MSG) {
+                       if (addr_count == 1) {
+                               if (is_phonenum || is_email) {
+                                       int pid = msg_viewer_util_get_index_by_recipient((const char *)address);
+
+                                       if (pid > 0) {
+                                               elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+                                       } else {
+                                               elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+                                       }
+                               }
+                       } else if (addr_count > 1) {
+                               int i = 0;
+                               for (i = 0; i < addr_count; i++) {
+                                       char *nth_address = NULL;
+                                       msg_viewer_util_get_thread_nth_address(vsd->msgHandle, vsd->msg_t, i, &nth_address);
+                                       if (msg_viewer_util_get_index_by_recipient((const char *)nth_address) <= 0) {
+                                               elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+                                               break;
+                                       }
+                               }
+                       }
+               }
+
+               if (address)
+                       free(address);
+
+               /* Add view message details menu */
+               elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_DETAILS_ABB"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+
+               /* Add view slideshow menu */
+               if (vsd->msg_type == MSG_TYPE_MMS) {
+                       elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB"), NULL, msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb, (void *)vsd);
+               }
+
+               Evas_Coord w = 0;
+               Evas_Coord h = 0;
+
+               elm_win_screen_size_get(vsd->main_window, NULL, NULL, &w, &h);
+               int rotation = elm_win_rotation_get(vsd->main_window);
+
+               if (rotation == 0 || rotation == 180)
+                       evas_object_move(ctx_popup, w/2, h);
+               else if (rotation == 90)
+                       evas_object_move(ctx_popup, h/2, w);
+               else if (rotation == 270)
+                       evas_object_move(ctx_popup, h/2, w);
+
+               evas_object_show(ctx_popup);
+
+               vsd->popup = ctx_popup;
+               vsd->popup_type = MSG_VIEWER_MENU_CTX_POPUP;
+
+               eext_object_event_callback_add(ctx_popup, EEXT_CALLBACK_MORE, eext_ctxpopup_back_cb, NULL);
+               eext_object_event_callback_add(ctx_popup, EEXT_CALLBACK_BACK, eext_ctxpopup_back_cb, NULL);
+       }
+
+       /* Do not add mouse/keypad callback with CTX popup */
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_summary_view_option_more_ctxpopup_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       const char *label = elm_object_item_text_get((Elm_Object_Item *)event_info);
+
+       if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_MAKE_VOICE_CALL")) == 0) {
+               D_MSG("VOICE CALL");
+               msg_ui_viewer_summary_view_option_call_menu(data, obj, event_info);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_EMAIL")) == 0) {
+               D_MSG("CREATE EMAIL");
+               __msg_ui_viewer_summary_view_option_email_menu(data, obj, event_info);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_FORWARD")) == 0) {
+               D_MSG("FORWARD MSG by NORMAL COMPOSER");
+               __msg_ui_viewer_summary_view_option_forward(vsd);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_SAVE_ATTACHMENT")) == 0) {
+               D_MSG("SAVE ATTACHMENTS");
+               __msg_ui_viewer_summary_view_option_save_attachment_menu(vsd);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_BUTTON_RESEND_ABB")) == 0) {
+               D_MSG("RESEND FAILED MESSAGE");
+               __msg_ui_viewer_summary_view_option_resend(vsd);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_REPLY")) == 0) {
+               D_MSG("REPLY MSG by NORMAL COMPOSER");
+               __msg_ui_viewer_summary_view_option_reply(vsd);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_COPY_TEXT")) == 0) {
+               D_MSG("COPY MSGTEXT TO CLIPBOARD");
+               __msg_ui_viewer_summary_view_copy_message_text_to_clipboard(vsd);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_DETAILS_ABB")) == 0) {
+               D_MSG("SHOW DETAIL INFO POPUP");
+               msg_ui_viewer_summary_view_option_create_msg_detail_popup(vsd);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_SIM_CARD_ABB")) == 0 || \
+               strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_COPY_TO_DEVICE_ABB")) == 0) {
+               D_MSG("COPY TO SIM/PHONE");
+               __msg_ui_viewer_summary_view_option_copy_to(vsd);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE")) == 0) {
+               D_MSG("DELETE SPAM MESSAGE");
+               msg_ui_viewer_summary_view_option_create_delete_popup(vsd);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_SK_RESTORE")) == 0) {
+               D_MSG("RESTORE BLOCKED MESSAGE");
+               __msg_ui_viewer_summary_view_restore_msg(vsd);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_SETTINGS")) == 0) {
+               D_MSG("MESSAGE_SETTING");
+                __msg_ui_viewer_summary_view_option_launch_spam_setting(vsd);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_ADD_TO_BLOCK_LIST_ABB")) == 0) {
+               D_MSG("ADD TO BLOCK LIST");
+                __msg_ui_viewer_summary_view_option_block_address_menu(data, obj, event_info);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_REMOVE_FROM_BLOCK_LIST_ABB")) == 0) {
+               D_MSG("REMOVE FROM BLOCK LIST");
+               __msg_ui_viewer_summary_view_option_unblock_address_menu(data, obj, event_info);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_AS_SLIDESHOW_ABB")) == 0) {
+               D_MSG("VIEW_SLIDESHOW");
+                __msg_ui_viewer_summary_view_option_view_slideshow(vsd);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB")) == 0) {
+               D_MSG("ADD_TO_CONTACT");
+               msg_ui_viewer_summary_view_option_add_to_contact_menu(vsd);
+       } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_VIEW_CONTACT_DETAILS_ABB")) == 0) {
+               D_MSG("VIEW_CONTACT_DETAILS");
+               msg_ui_viewer_summary_view_option_view_contact_menu(vsd);
+       } else {
+               D_MSG("invalid list type");
+               return;
+       }
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_summary_view_option_more_ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       if (vsd->popup && vsd->popup_type == MSG_VIEWER_MENU_CTX_POPUP) {
+               evas_object_del(vsd->popup);
+               vsd->popup = NULL;
+               vsd->popup_type = MSG_VIEWER_POPUP_NONE;
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_viewer_summary_view_option_create_delete_popup(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETM_IF(vsd->msg_t == NULL, "vsd->msg_t is NULL");
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       Evas_Object *popup = elm_popup_add(vsd->main_window);
+
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE");
+       elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_POP_1_MESSAGE_WILL_BE_DELETED");
+
+       Evas_Object *btn_cancel = elm_button_add(popup);
+       elm_object_style_set(btn_cancel, "popup");
+       elm_object_domain_translatable_text_set(btn_cancel, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_CANCEL_ABB");
+       elm_object_part_content_set(popup, "button1", btn_cancel);
+       evas_object_smart_callback_add(btn_cancel, "clicked", __msg_ui_viewer_summary_view_option_popup_cancel_clicked_cb, vsd);
+
+       Evas_Object *btn_ok = elm_button_add(popup);
+       elm_object_style_set(btn_ok, "popup");
+       elm_object_domain_translatable_text_set(btn_ok, MESSAGE_PKGNAME, "IDS_MSG_OPT_DELETE");
+       elm_object_part_content_set(popup, "button2", btn_ok);
+       evas_object_smart_callback_add(btn_ok, "clicked", __msg_ui_viewer_summary_view_option_delete_ok_clicked_cb, vsd);
+
+       evas_object_show(popup);
+       vsd->popup = popup;
+       vsd->popup_type = MSG_VIEWER_DELETE_POPUP;
+       evas_object_focus_set(popup, EINA_TRUE);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_summary_view_popup_mouseup_cb, vsd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_summary_view_popup_back_cb, (void *)vsd);
+
+       /*disconnect mouse handler*/
+       msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_summary_view_option_delete_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETM_IF(vsd->msg_t == NULL, "vsd->msg_t is NULL");
+
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vsd->viewer_main;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       D_MSG("delete msg-id is %d", vsd->msgID);
+
+       if (vsd->internal_mode != VIEWER_INTERNAL_NONE) {
+               if (msg_delete_message(vsd->msgHandle, vsd->msgID) == MSG_SUCCESS) {
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSG_POP_DELETED"));
+               } else {
+                       D_EMSG("msg_delete_message is failed");
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_DELETE"));
+                       return;
+               }
+
+               /* send result to caller to request update items */
+               app_control_h svc_handle = NULL;
+               char buf[DEF_BUF_LEN_S] = {0,};
+               int thread_id;
+
+               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                       D_EMSG("app_control_create() is failed");
+                       return;
+               }
+
+               msg_get_int_value(vsd->msg_t, MSG_MESSAGE_THREAD_ID_INT, &thread_id);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RESULT, MSG_BUNDLE_VALUE_DEL_BUBBLE);
+
+               snprintf(buf, sizeof(buf), "%d", thread_id);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_THREAD_ID, buf);
+
+               ug_send_result(vmd->viewer_ug, svc_handle);
+               app_control_destroy(svc_handle);
+       }
+
+       /*destroy viewer*/
+       ug_destroy_me(vmd->viewer_ug);
+
+       return;
+}
+
+static void __msg_ui_viewer_summary_view_option_popup_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       /* connect handler again*/
+       msg_ui_viewer_summary_view_connect_handler(vsd);
+}
+
+static void __msg_ui_viewer_summary_view_option_forward(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       char buf[DEF_BUF_LEN_S] = { 0, };
+       app_control_h svc_handle;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       if (vsd->msg_type == MSG_TYPE_MMS) {
+               if (vsd->mms_parsed_data) {
+                       PARSED_MMS_DATA_S *pd = (PARSED_MMS_DATA_S *)vsd->mms_parsed_data;
+                       int page_index = 0;
+                       for (page_index = 0; page_index < pd->page_count; page_index++) {
+                               PARSED_MMS_PAGE_DATA_S *page_data = &pd->page_data[page_index];
+                               int media_index = 0;
+                               for (media_index = 0; media_index < page_data->media_count; media_index++) {
+                                       MSG_VIEWER_MEDIA_INFO_S *pMedia_info = eina_list_nth(page_data->insert_list, media_index);
+                                       if (pMedia_info) {
+                                               int smil_media_type = 0;
+                                               switch (pMedia_info->media_type) {
+                                                       case MSG_VIEWER_MEDIA_IMG:
+                                                               smil_media_type = MMS_SMIL_MEDIA_IMG;
+                                                               break;
+                                                       case MSG_VIEWER_MEDIA_AUDIO:
+                                                               smil_media_type = MMS_SMIL_MEDIA_AUDIO;
+                                                               break;
+                                                       case MSG_VIEWER_MEDIA_VIDEO:
+                                                       case MSG_VIEWER_MEDIA_ANIMATE:
+                                                       case MSG_VIEWER_MEDIA_IMG_OR_VIDEO:
+                                                               smil_media_type = MMS_SMIL_MEDIA_VIDEO;
+                                                               break;
+                                                       default:
+                                                               smil_media_type = MMS_SMIL_MEDIA_INVALID;
+                                                               break;
+                                               }
+
+                                               if (!msg_ui_content_check_forward_available(vsd->msgHandle, pMedia_info->pfile_path, smil_media_type)) {
+                                                       msg_ui_viewer_summary_view_option_forward_not_available_popup(vsd);
+                                                       return;
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+
+       /* create and call composer-ug */
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               snprintf(buf, sizeof(buf), "%d", vsd->msgID);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, buf);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_FORWARD);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, MSG_BUNDLE_VALUE_INTERNAL);
+
+               /* disconnect handler first - due to key ungrab senario with composer */
+               msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+
+               ui_gadget_h loaded_ug;
+               loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(vsd->viewer_main), MSG_COMPOSER_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &vsd->cbs);
+
+               if (loaded_ug) {
+                       msg_ui_viewer_set_loaded_ug(vsd->viewer_main, loaded_ug);
+                       vsd->mode = MSG_VIEWER_LOAD_COMPOSER_UG;
+               } else {
+                       msg_ui_viewer_summary_view_connect_handler(vsd);
+               }
+
+               app_control_destroy(svc_handle);
+       }
+}
+
+static void __msg_ui_viewer_summary_view_option_resend(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vsd->viewer_main;
+       char str_id[DEF_BUF_LEN] = {0,};
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       D_MSG("failed msg-id is %d", vsd->msgID);
+
+       app_control_h svc_handle = NULL;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed");
+               return;
+       }
+
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_RESEND);
+
+       snprintf(str_id, DEF_BUF_LEN, "%d", vsd->msgID);
+       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, str_id);
+
+       ug_send_result(vmd->viewer_ug, svc_handle);
+       app_control_destroy(svc_handle);
+
+       msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+
+       /*destroy viewer*/
+       ug_destroy_me(vmd->viewer_ug);
+
+       D_LEAVE;
+}
+
+static void __msg_ui_viewer_summary_view_option_reply(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       app_control_h svc_handle;
+
+       /* create and call composer-ug */
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, MSG_BUNDLE_VALUE_INTERNAL);
+
+               char *address = NULL;
+               msg_viewer_util_get_thread_nth_address(vsd->msgHandle, vsd->msg_t, 0, &address);
+               if (address != NULL) {
+                       D_SEC_MSG("address = %d", address);
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TO, address);
+               }
+
+               /* disconnect handler first - due to key ungrab senario with composer */
+               msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+
+               ui_gadget_h loaded_ug;
+               loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(vsd->viewer_main), MSG_COMPOSER_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &vsd->cbs);
+
+               if (loaded_ug) {
+                       msg_ui_viewer_set_loaded_ug(vsd->viewer_main, loaded_ug);
+                       vsd->mode = MSG_VIEWER_LOAD_COMPOSER_UG;
+               } else {
+                       msg_ui_viewer_summary_view_connect_handler(vsd);
+               }
+
+               app_control_destroy(svc_handle);
+       }
+}
+
+static void __msg_ui_viewer_summary_view_copy_message_text_to_clipboard(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETM_IF(vsd->msg_t == NULL, "vsd->msg_t is NULL");
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       int msg_size = 0;
+       msg_get_int_value(vsd->msg_t, MSG_MESSAGE_DATA_SIZE_INT, &msg_size);
+
+       if (msg_size > 0) {
+               char msg_text[msg_size + 1];
+               memset(msg_text, 0, msg_size + 1);
+               msg_get_str_value(vsd->msg_t, MSG_MESSAGE_SMS_DATA_STR, msg_text, msg_size);
+
+               int i = 0;
+               int copy_str_len = strlen(msg_text);
+               for (i = 0; i < copy_str_len; i++) {
+                       if (msg_text[i] == '\r' && msg_text[i+1] != '\n')
+                               msg_text[i] = '\n';
+               }
+
+               elm_cnp_selection_set(vsd->content_entry, ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_TEXT, msg_text, strlen(msg_text));
+       } else {
+               D_EMSG("Invalid length(%d) of msg body text", msg_size);
+       }
+}
+
+static void __msg_ui_viewer_summary_view_option_view_slideshow(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       app_control_h svc_handle;
+       char msgId[DEF_BUF_LEN_S] = {0,};
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               snprintf(msgId, DEF_BUF_LEN_S, "%d", vsd->msgID);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, msgId);
+
+               if (vsd->internal_mode == VIEWER_INTERNAL_SPAM_MSG)
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_VIEWER_INTERNAL_CALLER, MSG_BUNDLE_VALUE_SPAM_SUMMARY_MMS);
+               else /* VIEWER_INTERNAL_NONE */
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_VIEWER_INTERNAL_CALLER, MSG_BUNDLE_VALUE_NORMAL_SUMMARY_MMS);
+
+               ui_gadget_h loaded_ug;
+               loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(vsd->viewer_main), MSG_VIEWER_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &vsd->cbs);
+
+               if (loaded_ug) {
+                       msg_ui_viewer_set_loaded_ug(vsd->viewer_main, loaded_ug);
+                       vsd->mode = MSG_VIEWER_LOAD_VIEWER_UG;
+                       msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+               }
+
+               app_control_destroy(svc_handle);
+       }
+}
+
+void msg_ui_viewer_summary_view_option_create_msg_detail_popup(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       Evas_Object *popup = NULL;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       /* create popup */
+       popup = elm_popup_add(vsd->main_window);
+
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       /* set title text */
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSGF_HEADER_MESSAGE_DETAILS");
+
+       /* set popup text */
+       char *str = msg_common_make_message_detail_text(vsd->msgHandle, vsd->msgID);
+       if (str) {
+               elm_object_text_set(popup, str);
+               free(str);
+       } else {
+               D_EMSG("msg_common_make_message_detail_text is failed");
+               return;
+       }
+
+       vsd->popup = popup;
+       vsd->popup_type = MSG_VIEWER_DETAILS_POPUP;
+       evas_object_focus_set(popup, EINA_TRUE);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_summary_view_popup_mouseup_cb, vsd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_summary_view_popup_back_cb, (void *)vsd);
+       evas_object_smart_callback_add(popup, "block,clicked", msg_ui_viewer_summary_view_popup_back_cb, vsd);
+
+       msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+
+       Evas_Object *btn = elm_button_add(popup);
+       elm_object_style_set(btn, "popup");
+       elm_object_domain_translatable_text_set(btn, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       elm_object_part_content_set(popup, "button1", btn);
+       evas_object_smart_callback_add(btn, "clicked", __msg_ui_viewer_summary_view_option_popup_cancel_clicked_cb, vsd);
+
+       evas_object_show(popup);
+}
+
+void msg_ui_viewer_summary_view_option_forward_not_available_popup(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       Evas_Object *popup = NULL;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       /* create popup */
+       popup = elm_popup_add(vsd->main_window);
+
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       /* set popup text */
+       elm_object_domain_translatable_text_set(popup, MESSAGE_PKGNAME, "IDS_MSG_BODY_TO_USE_RESTRICTED_MEDIA_TYPES_CHANGE_YOUR_MMS_CREATION_MODE_SETTING");
+
+       vsd->popup = popup;
+       vsd->popup_type = MSG_VIEWER_FORWARD_RESTRICTED_POPUP;
+       evas_object_focus_set(popup, EINA_TRUE);
+
+       Evas_Object *btn_ok = elm_button_add(popup);
+       elm_object_style_set(btn_ok, "popup");
+       elm_object_domain_translatable_text_set(btn_ok, MESSAGE_PKGNAME, "IDS_MSG_BUTTON_OK_ABB");
+       elm_object_part_content_set(popup, "button1", btn_ok);
+       evas_object_smart_callback_add(btn_ok, "clicked", __msg_ui_viewer_summary_view_option_popup_cancel_clicked_cb, vsd);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_summary_view_popup_mouseup_cb, vsd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_summary_view_popup_back_cb, (void *)vsd);
+       evas_object_smart_callback_add(popup, "block,clicked", msg_ui_viewer_summary_view_popup_back_cb, (void *)vsd);
+
+       msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+
+       evas_object_show(popup);
+}
+
+static void __msg_ui_viewer_summary_view_option_copy_to(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       msg_error_t err = MSG_SUCCESS;
+       int new_msg_id = 0;
+       int storage_id = 0;
+
+       /* Get Message */
+       msg_struct_t msg = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+       msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+       if (msg_get_message(vsd->msgHandle, vsd->msgID, msg, sendOpt) != MSG_SUCCESS)
+               goto CATCH_COPY_FAILED;
+
+       /* STORAGE VALUE */
+       msg_get_int_value(msg, MSG_MESSAGE_STORAGE_ID_INT, &storage_id);
+
+       if (storage_id == MSG_STORAGE_PHONE) {
+               if ((new_msg_id = msg_add_message(vsd->msgHandle, msg, sendOpt)) < 0)
+                       goto CATCH_COPY_FAILED;
+               err = msg_move_msg_to_storage(vsd->msgHandle, new_msg_id, MSG_STORAGE_SIM);
+       } else if (storage_id == MSG_STORAGE_SIM) {
+               msg_set_int_value(msg, MSG_MESSAGE_STORAGE_ID_INT, MSG_STORAGE_PHONE);
+               if ((new_msg_id = msg_add_message(vsd->msgHandle, msg, sendOpt)) < 0)
+                       goto CATCH_COPY_FAILED;
+       } else {
+               D_EMSG("invalid storage id [%d]", storage_id);
+               goto CATCH_COPY_FAILED;
+       }
+
+       /** remove if it failed to move */
+       if (err == MSG_SUCCESS) {
+               if (storage_id == MSG_STORAGE_PHONE) {
+                       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vsd->viewer_main;
+                       char str_id[DEF_BUF_LEN] = {0,};
+                       app_control_h svc_handle = NULL;
+
+                       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                               D_EMSG("app_control_create() is failed");
+                               goto CATCH_COPY_FAILED;
+                       }
+
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_COPY_TO_SIM);
+
+                       snprintf(str_id, DEF_BUF_LEN, "%d", new_msg_id);
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, str_id);
+
+                       ug_send_result(vmd->viewer_ug, svc_handle);
+                       app_control_destroy(svc_handle);
+
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGC_POP_COPIED_TO_SIM_CARD"));
+               } else {
+                       notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_MESSAGE_COPIED_FROM_SIM_CARD"));
+               }
+
+       } else {
+               msg_delete_message(vsd->msgHandle, new_msg_id);
+               goto CATCH_COPY_FAILED;
+       }
+
+       if (msg)
+               msg_release_struct(&msg);
+
+       if (sendOpt)
+               msg_release_struct(&sendOpt);
+
+       return;
+
+CATCH_COPY_FAILED:
+       if (msg)
+               msg_release_struct(&msg);
+
+       if (sendOpt)
+               msg_release_struct(&sendOpt);
+
+       if (err == MSG_ERR_SIM_STORAGE_FULL)
+               msg_ui_viewer_summary_view_show_popup(vsd, MESSAGE_PKGNAME, "IDS_MSGF_BODY_SIM_MEMORY_FULL_DELETE_SOME_ITEMS", MSG_VIEWER_NORMAL_POPUP, MSG_VIEWER_POPUP_OK_BUTTON, NULL, msg_ui_viewer_summary_view_popup_back_cb);
+       else
+               notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_UNABLE_TO_COPY"));
+}
+
+static void __msg_ui_viewer_summary_view_restore_msg(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       msg_error_t err = MSG_SUCCESS;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       err = msg_move_msg_to_folder(vsd->msgHandle, vsd->msgID, MSG_INBOX_ID);
+
+       if (err != MSG_SUCCESS) {
+               notification_status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSG_BODY_FAILED_M_STATUS_ABB2"));
+       } else {
+               msg_common_create_noti_toast_popup("IDS_MSG_TPOP_1_MESSAGE_MOVED_TO_MESSAGE_LIST");
+               char str_id[DEF_BUF_LEN] = {0,};
+               app_control_h svc_handle = NULL;
+
+               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                       D_EMSG("app_control_create() is failed");
+                       return;
+               }
+
+               snprintf(str_id, DEF_BUF_LEN, "%d", vsd->msgID);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, str_id);
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RESULT, MSG_BUNDLE_VALUE_RESTORE);
+
+               if (vsd->viewer_main) {
+                       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vsd->viewer_main;
+
+                       ug_send_result(vmd->viewer_ug, svc_handle);
+                       app_control_destroy(svc_handle);
+
+                       if (vmd->viewer_ug)
+                               ug_destroy_me(vmd->viewer_ug);
+               } else {
+                       app_control_destroy(svc_handle);
+               }
+       }
+}
+
+static void __msg_ui_viewer_summary_view_option_launch_spam_setting(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       app_control_h svc_handle = NULL;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               ui_gadget_h loaded_ug;
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TYPE, MSG_BUNDLE_VALUE_SPAM_SETTING);
+               /* disconnect handler first - due to key ungrab senario with composer */
+               msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+
+               loaded_ug = ug_create(NULL, MSG_SETTING_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &vsd->cbs);
+
+               if (loaded_ug) {
+                       msg_ui_viewer_set_loaded_ug(vsd->viewer_main, loaded_ug);
+                       vsd->mode = MSG_VIEWER_LOAD_SETTING_UG;
+               } else {
+                       msg_ui_viewer_summary_view_connect_handler(vsd);
+               }
+
+               app_control_destroy(svc_handle);
+       }
+}
+
+/************ title button ***************/
+void msg_ui_viewer_summary_view_title_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       if (vsd->mode != MSG_VIEWER_DEFAULT_MODE) {
+               D_MSG("Now loading another application, ignore request");
+               return;
+       }
+
+       int addr_cnt = msg_viewer_util_get_thread_address_count(vsd->msgHandle, vsd->msg_t);
+
+       if (addr_cnt <= 0) {
+               D_EMSG("invalid address count [%d]", addr_cnt);
+               return;
+       }
+
+       if (addr_cnt == 1) {
+               char *address = NULL;
+               msg_viewer_util_get_thread_nth_address(vsd->msgHandle, vsd->msg_t, 0, &address);
+
+               int pid = msg_viewer_util_get_index_by_recipient((const char *)address);
+
+               if (address)
+                       free(address);
+
+               if (pid > 0) {
+                       if (vsd->from_contact) {
+                               VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vsd->viewer_main;
+                               D_MSG_RETM_IF(vmd == NULL, "vmd is NULL");
+
+                               app_control_h svc_handle = NULL;
+
+                               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                                       D_EMSG("app_control_create() is failed");
+                                       return;
+                               }
+
+                               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_DESTROY);
+                               ug_send_result(vmd->viewer_ug, svc_handle);
+                               app_control_destroy(svc_handle);
+
+                               ug_destroy_me(vmd->viewer_ug);
+                               return;
+                       } else {
+                               msg_ui_viewer_summary_view_option_view_contact_menu(vsd);
+                       }
+               } else {
+                       msg_ui_viewer_summary_view_option_add_to_contact_menu(vsd);
+               }
+       } else if (addr_cnt > 1) {
+               msg_ui_viewer_summary_view_launch_recipient_list_view(vsd);
+       }
+}
+
+static void __msg_ui_viewer_summary_view_option_recipient_list_menu_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETM_IF(!vsd, "vsd is NULL!");
+
+       Elm_Object_Item *item = NULL;
+       MSG_VIEWER_ADDR_INFO *addrInfo = NULL;
+
+       item = (Elm_Object_Item *)event_info;
+       D_MSG_RETM_IF(!item, "Item is  NULL or Item is not Message item\n");
+
+       addrInfo = (MSG_VIEWER_ADDR_INFO *)elm_object_item_data_get(item);
+       D_MSG_RETM_IF(addrInfo == NULL, "item_data is NULL");
+
+       elm_genlist_item_selected_set(item, 0);
+
+       char buf[DEF_BUF_LEN_D] = { 0, };
+       app_control_h svc_handle = NULL;
+
+       if (addrInfo->person_id > 0) {
+               if (vsd->from_contact) {
+                       VIEWER_MAIN_DATA_S *vmd = (VIEWER_MAIN_DATA_S *)vsd->viewer_main;
+                       D_MSG_RETM_IF(vmd == NULL, "vmd is NULL");
+
+                       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                               D_EMSG("app_control_create() is failed");
+                               return;
+                       }
+
+                       app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_DESTROY);
+                       ug_send_result(vmd->viewer_ug, svc_handle);
+                       app_control_destroy(svc_handle);
+
+                       ug_destroy_me(vmd->viewer_ug);
+                       return;
+               } else {
+                       char szPersonID[DEF_BUF_LEN_S] = { 0, };
+
+                       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                               D_EMSG("app_control_create() is failed");
+                               return;
+                       }
+
+                       snprintf(szPersonID, sizeof(szPersonID), "%d", addrInfo->person_id);
+                       snprintf(buf, sizeof(buf), "%d", MSG_CT_UG_REQUEST_DETAIL);
+
+                       app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_TYPE, buf);
+                       app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_ID, szPersonID);
+
+                       app_control_set_window(svc_handle, elm_win_xwindow_get(vsd->main_window));
+                       app_control_send_launch_request(svc_handle, NULL, NULL);
+#if 0
+                       ui_gadget_h loaded_ug = NULL;
+                       loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(vsd->viewer_main), UG_NAME_CONTACTS_DETAILS, UG_MODE_FULLVIEW, svc_handle, &vsd->cbs);
+
+                       if (loaded_ug) {
+                               msg_ui_viewer_set_loaded_ug(vsd->viewer_main, loaded_ug);
+                               msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+                               vsd->mode = MSG_VIEWER_LOAD_CONTACT_UG;
+                       }
+#endif
+                       app_control_destroy(svc_handle);
+               }
+       } else {
+               vsd->call_option_enabled = true;
+               msg_ui_viewer_summary_view_option_create_add_to_contact_popup(vsd, (const char *)addrInfo->address);
+       }
+}
+
+static void  __msg_ui_viewer_summary_view_option_recipient_list_menu_del(void *data, Evas_Object *obj)
+{
+       D_ENTER;
+       MSG_VIEWER_ADDR_INFO *addrInfo = (MSG_VIEWER_ADDR_INFO *)data;
+       D_MSG_RETM_IF(!addrInfo, "addrInfo is NULL!");
+
+       if (addrInfo)
+               free(addrInfo);
+}
+
+static void __msg_ui_viewer_summary_view_option_email_menu(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETM_IF(vsd->msg_t == NULL, "vsd->msg_t is NULL");
+
+       app_control_error_e err = APP_CONTROL_ERROR_NONE;
+
+       msg_list_handle_t addr_list = NULL;
+
+       msg_get_list_handle(vsd->msg_t, MSG_MESSAGE_ADDR_LIST_HND, (void **)&addr_list);
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       int addr_count = msg_list_length(addr_list);    /* get address count */
+
+       if (addr_count == 1) {
+               app_control_h svc_handle = NULL;
+               msg_struct_t addr_info = NULL;
+               char szAddress[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+               addr_info = (msg_struct_t)msg_list_nth_data(addr_list, 0);
+
+               msg_get_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, szAddress, MAX_ADDRESS_VAL_LEN);
+
+               char *address = (char *)calloc(1, strlen(szAddress)+1);
+               if (address == NULL) {
+                       D_EMSG("calloc is failed");
+                       return;
+               }
+
+               memcpy(address, szAddress, strlen(szAddress));
+
+               if ((err = app_control_create(&svc_handle)) != APP_CONTROL_ERROR_NONE || svc_handle == NULL) {
+                       D_EMSG("app_control_create() is failed, err = %d", err);
+                       free(address);
+                       return;
+               }
+
+               app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_COMPOSE);
+               app_control_set_app_id(svc_handle, "email-composer-efl");
+               app_control_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RUN_TYPE, MSG_BUNDLE_VALUE_EMAIL_COMPOSE);
+               app_control_add_extra_data(svc_handle, APP_CONTROL_DATA_TO, address);
+
+               Ecore_X_Window win_id = elm_win_xwindow_get(vsd->main_window);
+               app_control_set_window(svc_handle, win_id);
+
+               err = app_control_send_launch_request(svc_handle, NULL, NULL);
+
+               if (err != APP_CONTROL_ERROR_NONE) {
+                       D_EMSG("app_control_send_launch_request is failed, err = %d", err);
+               }
+
+               free(address);
+               app_control_destroy(svc_handle);
+       }
+}
+
+char *msg_ui_viewer_get_trimmed_number(const char *org_num)
+{
+       char num_str[DEF_BUF_LEN_L] = { 0, };
+       int i = 0, idx = 0;
+
+       if (org_num[0] == '+' || org_num[0] == '*') {
+               num_str[0] = org_num[0];
+               i++;
+               idx++;
+       }
+
+       while (org_num[i] && i < strlen(org_num)) {
+               if (g_ascii_isdigit(org_num[i])) {
+                       num_str[idx] = org_num[i];
+                       idx++;
+               }
+               i++;
+       }
+
+       return strdup(num_str);
+}
+void msg_ui_viewer_launch_voice_call(const char *call_num, bool isDirect_call)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !call_num);
+
+       char *num_str = msg_ui_viewer_get_trimmed_number(call_num);
+       app_control_h svc_handle;
+       char telnum[255] = {0,};
+
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed !!");
+       } else {
+               app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_CALL);
+
+               if (num_str) {
+                       snprintf(telnum, sizeof(telnum), "tel:%s", num_str);     /* Number to make a call */
+                       app_control_set_uri(svc_handle, telnum);
+               }
+
+               if (isDirect_call)
+                       app_control_add_extra_data(svc_handle, "directcall", "1");
+
+               app_control_send_launch_request(svc_handle, NULL, NULL);
+               app_control_destroy(svc_handle);
+       }
+       if (num_str)
+               free(num_str);
+       D_LEAVE;
+}
+
+void msg_ui_viewer_summary_view_option_call_menu(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+
+       const char *address = elm_object_part_text_get(vsd->popup, "title,text");
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+       if (address != NULL)
+               msg_ui_viewer_launch_voice_call(address, false);
+
+}
+
+void msg_ui_viewer_summary_view_option_view_contact_menu(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       char *address = NULL;
+       msg_viewer_util_get_thread_nth_address(vsd->msgHandle, vsd->msg_t, 0, &address);
+
+       int pid = msg_viewer_util_get_index_by_recipient((const char *)address);
+
+       if (pid > 0) {
+               char szPersonID[DEF_BUF_LEN_S] = { 0, };
+               char buf[DEF_BUF_LEN_D] = { 0, };
+
+               app_control_h svc_handle = NULL;
+               if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+                       D_EMSG("app_control_create() is failed");
+
+                       if (address)
+                               free(address);
+
+                       return;
+               }
+
+               snprintf(szPersonID, sizeof(szPersonID), "%d", pid);
+               snprintf(buf, sizeof(buf), "%d", MSG_CT_UG_REQUEST_DETAIL);
+
+               D_SEC_MSG("person id = %d", pid);
+
+               app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_TYPE, buf);
+               app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_ID, szPersonID);
+
+               app_control_set_window(svc_handle, elm_win_xwindow_get(vsd->main_window));
+               app_control_set_app_id(svc_handle, "contacts-details-efl");
+               app_control_send_launch_request(svc_handle, NULL, NULL);
+#if 0
+               ui_gadget_h loaded_ug = NULL;
+               loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(vsd->viewer_main), UG_NAME_CONTACTS_DETAILS, UG_MODE_FULLVIEW, svc_handle, &vsd->cbs);
+
+               if (loaded_ug) {
+                       msg_ui_viewer_set_loaded_ug(vsd->viewer_main, loaded_ug);
+                       msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+                       vsd->mode = MSG_VIEWER_LOAD_CONTACT_UG;
+               } else {
+                       D_EMSG("launching UG is failed!");
+               }
+#endif
+               app_control_destroy(svc_handle);
+
+               if (address)
+                       free(address);
+       } else {
+               D_EMSG("current address has no persion id!! Check address synchronization!!");
+       }
+}
+
+static void __msg_ui_viewer_summary_view_add_to_contact_list_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       Elm_Object_Item *item = (Elm_Object_Item *) event_info;
+       elm_list_item_selected_set(item, 0);
+
+       const char *label = elm_object_item_data_get(item);
+       char title[DEF_THREAD_ADDR_LEN+1] = {0,};
+       snprintf(title, sizeof(title), "%s", elm_object_part_text_get(vsd->popup, "title,text"));
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       ui_gadget_h loaded_ug = NULL;
+       app_control_h svc_handle = NULL;
+       char buf[DEF_BUF_LEN_D] = { 0, };
+       char *normalized_number = NULL;
+       if (app_control_create(&svc_handle) < 0 || svc_handle == NULL) {
+               D_EMSG("app_control_create() is failed");
+               return;
+       }
+       normalized_number = msg_common_make_normalized_number(title);
+
+       if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB")) == 0) {
+               if (msg_common_is_valid_email_addr(title)) {
+                       snprintf(buf, sizeof(buf), "%d", MSG_CT_UG_REQUEST_ADD_WITH_EMAIL);
+               } else if ((msg_common_is_valid_phone_number(title)) || (normalized_number && msg_common_is_valid_phone_number(normalized_number))) {
+                       snprintf(buf, sizeof(buf), "%d", MSG_CT_UG_REQUEST_ADD_WITH_NUM);
+               } else {
+                       D_EMSG("invalid title text!!");
+                       goto CONTACT_LIST_FAIL;
+                       return;
+               }
+       } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_UPDATE_CONTACT")) == 0) {
+               if (msg_common_is_valid_email_addr(title)) {
+                       snprintf(buf, sizeof(buf), "%d", MSG_CT_UG_REQUEST_UPDATE_WITH_EMAIL);
+               } else if ((msg_common_is_valid_phone_number(title)) || (normalized_number && msg_common_is_valid_phone_number(normalized_number))) {
+                       snprintf(buf, sizeof(buf), "%d", MSG_CT_UG_REQUEST_UPDATE_WITH_NUM);
+               } else {
+                       D_EMSG("invalid title text!!");
+                       goto CONTACT_LIST_FAIL;
+                       return;
+               }
+       } else {
+               D_EMSG("invalid label!!");
+               goto CONTACT_LIST_FAIL;
+               return;
+       }
+
+       app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_TYPE, buf);
+       if (msg_common_is_valid_email_addr(title))
+               app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_EMAIL, title);
+       else if ((msg_common_is_valid_phone_number(title)) || (normalized_number && msg_common_is_valid_phone_number(normalized_number)))
+               app_control_add_extra_data(svc_handle, MSG_CT_UG_BUNDLE_NUM, title);
+
+       if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB")) == 0) {
+               app_control_set_window(svc_handle, elm_win_xwindow_get(vsd->main_window));
+               app_control_set_app_id(svc_handle, "contacts-details-efl");
+               app_control_send_launch_request(svc_handle, NULL, NULL);
+       } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_UPDATE_CONTACT")) == 0) {
+               loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(vsd->viewer_main), UG_NAME_CONTACTS_LIST, UG_MODE_FULLVIEW, svc_handle, &vsd->cbs);
+       }
+
+       if (loaded_ug) {
+               msg_ui_viewer_set_loaded_ug(vsd->viewer_main, loaded_ug);
+               msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+               vsd->mode = MSG_VIEWER_LOAD_CONTACT_UG;
+       }
+
+CONTACT_LIST_FAIL:
+
+       app_control_destroy(svc_handle);
+       if (normalized_number) {
+               free(normalized_number);
+               normalized_number = NULL;
+       }
+
+       D_LEAVE;
+}
+
+static char *__msg_ui_viewer_summary_view_option_addr_list_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       const char *label  = (char *) data;
+       D_MSG("label:%s", label);
+       if (!g_strcmp0(part, "elm.text")) {
+               if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_UPDATE_CONTACT")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_UPDATE_CONTACT"));
+               } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_MAKE_VOICE_CALL")) == 0) {
+                       return strdup(dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_MAKE_VOICE_CALL"));
+               }
+       }
+       return NULL;
+}
+
+void msg_ui_viewer_summary_view_option_create_add_to_contact_popup(void *data, const char *address)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       Evas_Object *popup = NULL;
+       Evas_Object *genlist = NULL;
+       int count = 0;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       /* create popup */
+       popup = elm_popup_add(vsd->main_window);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       elm_object_part_text_set(popup, "title,text", address);
+
+       genlist = elm_genlist_add(popup);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+
+       vsd->itc_title_single.item_style = "default";
+       vsd->itc_title_single.func.text_get = __msg_ui_viewer_summary_view_option_addr_list_gl_text_get;
+       vsd->itc_title_single.func.content_get = NULL;
+       vsd->itc_title_single.func.state_get = NULL;
+       vsd->itc_title_single.func.del = NULL;
+       if (vsd->call_option_enabled) {
+               elm_genlist_item_append(genlist, &vsd->itc_title_single, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_MAKE_VOICE_CALL"), NULL, ELM_GENLIST_ITEM_NONE,
+                               msg_ui_viewer_summary_view_option_call_menu, vsd);
+               count++;
+
+               vsd->call_option_enabled = false;
+       }
+       elm_genlist_item_append(genlist, &vsd->itc_title_single, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_CREATE_CONTACT_ABB"), NULL, ELM_GENLIST_ITEM_NONE,
+                       __msg_ui_viewer_summary_view_add_to_contact_list_clicked_cb, vsd);
+       count++;
+       elm_genlist_item_append(genlist, &vsd->itc_title_single, (void *)dgettext(MESSAGE_PKGNAME, "IDS_MSG_OPT_UPDATE_CONTACT"), NULL, ELM_GENLIST_ITEM_NONE,
+                       __msg_ui_viewer_summary_view_add_to_contact_list_clicked_cb, vsd);
+       count++;
+
+       Evas_Object *box = elm_box_add(popup);
+       evas_object_size_hint_min_set(box, 0, ELM_SCALE_SIZE(VIEWER_LIST_1TEXT_HEIGHT * count));
+       evas_object_show(genlist);
+       elm_box_pack_end(box, genlist);
+       elm_object_content_set(popup, box);
+
+       vsd->popup = popup;
+       vsd->popup_type = MSG_VIEWER_ADD_TO_CONTACT_POPUP;
+       evas_object_focus_set(popup, EINA_TRUE);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_summary_view_popup_mouseup_cb, (void *)vsd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_summary_view_popup_back_cb, (void *)vsd);
+       evas_object_smart_callback_add(popup, "block,clicked", msg_ui_viewer_summary_view_popup_back_cb, (void *)vsd);
+       evas_object_show(popup);
+
+       msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+}
+
+static void __msg_ui_viewer_summary_view_add_to_contact_list_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       const char *label = elm_object_item_text_get((Elm_Object_Item *)event_info);
+
+       vsd->call_option_enabled = true;
+       msg_ui_viewer_summary_view_option_create_add_to_contact_popup(vsd, label);
+}
+
+static void __msg_ui_summary_view_create_add_to_contact_list_popup(void *data, int addr_count)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       Evas_Object *popup = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *list = NULL;
+
+       int i = 0;
+       int item_count = 0;
+
+       /* create popup */
+       popup = elm_popup_add(vsd->main_window);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       /* create layout */
+       layout = elm_layout_add(popup);
+       elm_layout_file_set(layout, MSG_COMMON_EDJ, "elm/layout/content/menustyle");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       /** create menu list */
+       list = elm_list_add(layout);
+       elm_object_style_set(list, "popup");
+
+       for (i = 0; i < addr_count; i++) {
+               char *nth_address = NULL;
+               msg_viewer_util_get_thread_nth_address(vsd->msgHandle, vsd->msg_t, i, &nth_address);
+               if (msg_viewer_util_get_index_by_recipient((const char *)nth_address) <= 0) {
+                       elm_list_item_append(list, nth_address, NULL, NULL, __msg_ui_viewer_summary_view_add_to_contact_list_sel_cb, (void *)vsd);
+                       item_count++;
+               }
+       }
+
+       elm_list_go(list);
+
+       elm_object_domain_translatable_part_text_set(popup, "title,text", MESSAGE_PKGNAME, "IDS_MSG_OPT_ADD_TO_CONTACTS_ABB");
+       elm_object_part_content_set(layout, "elm.swallow.content", list);
+       elm_object_content_set(popup, layout);
+       evas_object_show(popup);
+
+       vsd->popup = popup;
+       vsd->popup_type = MSG_VIEWER_CONTACT_LIST_POPUP;
+       vsd->popup_item_count = item_count;
+       evas_object_focus_set(popup, EINA_TRUE);
+
+       vsd->list_popup_idler = ecore_idler_add(msg_ui_viewer_summary_view_list_popup_size_min_set_idler, vsd);
+
+       evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, msg_ui_viewer_summary_view_popup_mouseup_cb, (void *)vsd);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, msg_ui_viewer_summary_view_popup_back_cb, (void *)vsd);
+       evas_object_smart_callback_add(popup, "block,clicked", msg_ui_viewer_summary_view_popup_back_cb, (void *)vsd);
+
+       msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+}
+
+void msg_ui_viewer_summary_view_option_add_to_contact_menu(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       int addr_count = msg_viewer_util_get_thread_address_count(vsd->msgHandle, vsd->msg_t);
+
+       if (addr_count == 1) {
+               char *address = NULL;
+               msg_viewer_util_get_thread_nth_address(vsd->msgHandle, vsd->msg_t, 0, &address);
+               vsd->call_option_enabled = true;
+               msg_ui_viewer_summary_view_option_create_add_to_contact_popup(vsd, (const char *)address);
+       } else {
+               __msg_ui_summary_view_create_add_to_contact_list_popup(vsd, addr_count);
+       }
+}
+
+static void __msg_ui_viewer_summary_view_option_block_address_menu(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       int addr_count = msg_viewer_util_get_thread_address_count(vsd->msgHandle, vsd->msg_t);
+
+       if (addr_count == 1) {
+               msg_struct_t filter = msg_create_struct(MSG_STRUCT_FILTER);
+               msg_error_t err =  MSG_SUCCESS;
+
+               err = msg_set_int_value(filter, MSG_FILTER_TYPE_INT, MSG_FILTER_BY_ADDRESS_SAME);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_set_int_value failed err : %d", err);
+                       msg_release_struct(&filter);
+                       return;
+               }
+
+               char *address = NULL;
+
+               msg_viewer_util_get_thread_nth_address(vsd->msgHandle, vsd->msg_t, 0, &address);
+
+               if (address) {
+                       err = msg_set_str_value(filter, MSG_FILTER_VALUE_STR, address, strlen(address));
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_set_str_value failed err : %d", err);
+                               msg_release_struct(&filter);
+                               free(address);
+                               return;
+                       }
+
+                       err = msg_add_filter(vsd->msgHandle, filter);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_add_filter failed err : %d", err);
+                               msg_release_struct(&filter);
+                               free(address);
+                               return;
+                       }
+
+                       bool filter_state;
+                       err = msg_get_filter_operation(vsd->msgHandle, &filter_state);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_get_filter_operation failed err : %d", err);
+                               msg_release_struct(&filter);
+                               free(address);
+                               return;
+                       }
+
+                       if (!filter_state) {
+                               err = msg_set_filter_operation(vsd->msgHandle, !filter_state);
+                               if (err != MSG_SUCCESS) {
+                                       D_EMSG("msg_set_filter_operation failed err : %d", err);
+                                       msg_release_struct(&filter);
+                                       free(address);
+                                       return;
+                               }
+                       }
+
+                       char msg[DEF_BUF_LEN] = {0,};
+
+                       snprintf(msg, sizeof(msg), "%s", TEXT("IDS_MSG_TPOP_NUMBER_ADDED_TO_MESSAGE_BLOCK_LIST"));
+
+                       msg_common_create_noti_toast_popup(msg);
+
+                       free(address);
+               } else {
+                       D_EMSG("address is NULL");
+                       msg_release_struct(&filter);
+                       return;
+               }
+
+               msg_release_struct(&filter);
+       }
+
+       msg_ui_viewer_summary_view_connect_handler(vsd);
+
+       return;
+}
+
+static void __msg_ui_viewer_summary_view_option_unblock_address_menu(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       int filter_id = 0;
+       char *address = NULL;
+
+       msg_ui_viewer_summary_view_popup_destroy(vsd);
+
+       msg_viewer_util_get_thread_nth_address(vsd->msgHandle, vsd->msg_t, 0, &address);
+
+       if (address) {
+               if (msg_ui_viewer_check_address_is_blocked(vsd->msgHandle, address, &filter_id)) {
+                       msg_error_t err =  MSG_SUCCESS;
+                       err = msg_delete_filter(vsd->msgHandle, (msg_filter_id_t)filter_id);
+                       if (err != MSG_SUCCESS) {
+                               D_EMSG("msg_delete_filter is failed err : %d", err);
+                               free(address);
+                               return;
+                       }
+
+                       char msg[DEF_BUF_LEN] = {0,};
+                       snprintf(msg, sizeof(msg), "%s", TEXT("IDS_MSG_TPOP_NUMBER_REMOVED_FROM_MESSAGE_BLOCK_LIST"));
+                       msg_common_create_noti_toast_popup(msg);
+               }
+
+               free(address);
+       } else {
+               D_EMSG("address is NULL");
+               return;
+       }
+}
+
+static char *__msg_ui_viewer_summary_view_recipient_list_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       MSG_VIEWER_ADDR_INFO *addr_info = (MSG_VIEWER_ADDR_INFO *)data;
+       D_MSG_RETVM_IF(addr_info == NULL, NULL, "addr_info is NULL!!");
+
+       if (g_strcmp0(part, "elm.text.main.left.top") == 0) {
+               int person_id = -1;
+               person_id = msg_viewer_util_get_index_by_recipient(addr_info->address);
+               if (person_id > 0) {
+                       char display_name[MAX_ADDRESS_VAL_LEN+1] = {0,};
+                       msg_viewer_util_get_display_name_by_index(person_id, display_name, sizeof(display_name));
+                       return strdup(display_name);
+               } else if (addr_info->address[0] != '\0') {
+                       return strdup(addr_info->address);
+               } else {
+                       return strdup(dgettext(SYSTEM_STRING_PKGNAME, "IDS_COM_BODY_UNKNOWN"));
+               }
+       } else if (g_strcmp0(part, "elm.text.sub.left.bottom") == 0) {
+               if (addr_info->address[0] != '\0')
+                       return strdup(addr_info->address);
+               else
+                       return strdup(dgettext(SYSTEM_STRING_PKGNAME, "IDS_COM_BODY_UNKNOWN"));
+       }
+
+       return NULL;
+}
+
+static Evas_Object *__msg_ui_viewer_summary_view_recipient_list_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       Evas_Object *image = NULL;
+       char *thumb_path = NULL;
+
+       if (g_strcmp0(part, "elm.icon.1") == 0) {
+               MSG_VIEWER_ADDR_INFO *addr_info = (MSG_VIEWER_ADDR_INFO *)data;
+               contacts_record_h record = NULL;
+               int ct_ret = CONTACTS_ERROR_NONE;
+
+               Evas_Object *ic_ly = elm_layout_add(obj);
+               elm_layout_theme_set(ic_ly, "layout", "list/B/type.2", "default");
+
+               int person_id = -1;
+               person_id = msg_viewer_util_get_index_by_recipient(addr_info->address);
+
+               if (person_id > 0) {
+                       ct_ret = contacts_db_get_record(_contacts_person._uri, person_id, &record);
+                       if (ct_ret != CONTACTS_ERROR_NONE) {
+                               D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+                               return NULL;
+                       }
+
+                       contacts_record_get_str_p(record, _contacts_person.image_thumbnail_path, &thumb_path);
+               }
+
+               if (thumb_path && thumb_path[0] != '\0') {
+                       image = msg_common_get_thumbnail(obj, thumb_path, MSG_THUMB_TYPE_USER, MSG_THUMB_SIZE_LIST);
+               } else {
+                       image = msg_common_get_thumbnail(obj, MSG_LIST_THUMB_CONTACT, MSG_THUMB_TYPE_ICON, MSG_THUMB_SIZE_LIST);
+               }
+               elm_object_part_content_set(ic_ly, "elm.swallow.content", image);
+
+               contacts_record_destroy(record, true);
+
+               return ic_ly;
+       }
+       return NULL;
+}
+
+static Eina_Bool __msg_ui_viewer_summary_view_recipient_list_pop_cb(void *data, Elm_Object_Item *it)
+{
+       D_ENTER;
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+       D_MSG_RETVM_IF(vsd == NULL, EINA_FALSE, "vsd is NULL");
+
+       /* connect handlers */
+       msg_ui_viewer_summary_view_connect_handler(vsd);
+
+       vsd->mode = MSG_VIEWER_DEFAULT_MODE;
+       vsd->recipient_list = NULL;
+
+       return EINA_TRUE;
+}
+
+void msg_ui_viewer_summary_view_launch_recipient_list_view(void *data)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       VIEWER_SUMMARY_DATA_S *vsd = (VIEWER_SUMMARY_DATA_S *)data;
+
+       Evas_Object *layout = NULL;
+       Evas_Object *genlist = NULL;
+       Elm_Object_Item *navi_it = NULL;
+       MSG_VIEWER_ADDR_INFO *addrInfo = NULL;
+       int i = 0;
+
+       layout = elm_layout_add(vsd->navi_frame);
+       if (layout == NULL) {
+               D_EMSG("elm_layout_add failed!!");
+               return ;
+       }
+
+       elm_layout_theme_set(layout, "layout", "application", "noindicator");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       genlist = elm_genlist_add(vsd->navi_frame);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_genlist_homogeneous_set(genlist, EINA_TRUE);
+
+       /** 3.1 set genlist styles */
+       vsd->itc_title.item_style = "2line.top";
+       vsd->itc_title.func.text_get = __msg_ui_viewer_summary_view_recipient_list_gl_text_get;
+       vsd->itc_title.func.content_get = __msg_ui_viewer_summary_view_recipient_list_gl_content_get;
+       vsd->itc_title.func.state_get = NULL;
+       vsd->itc_title.func.del = __msg_ui_viewer_summary_view_option_recipient_list_menu_del;
+
+       int addr_count = msg_viewer_util_get_thread_address_count(vsd->msgHandle, vsd->msg_t);
+
+       for (i = 0; i < addr_count; i++) {
+               addrInfo = (MSG_VIEWER_ADDR_INFO *)calloc(1, sizeof(MSG_VIEWER_ADDR_INFO));
+               if (!addrInfo) {
+                       D_EMSG("addrInfo calloc failed");
+                       return;
+               }
+
+               char *address = NULL;
+               char display_name[MAX_ADDRESS_VAL_LEN + 1] = {0,};
+               int person_id = 0;
+
+               msg_viewer_util_get_thread_nth_address(vsd->msgHandle, vsd->msg_t, i, &address);
+
+               if (!address) {
+                       D_EMSG("address is null");
+                       free(addrInfo);
+                       return;
+               }
+               strncpy(addrInfo->address, address, MAX_ADDRESS_VAL_LEN);
+
+               person_id = msg_viewer_util_get_index_by_recipient((const char *)address);
+
+               msg_viewer_util_get_display_name_by_index(person_id, display_name, sizeof(display_name));
+
+               if (display_name[0] != '\0')
+                       strncpy(addrInfo->name, display_name, MAX_DISPLAY_NAME_LEN);
+
+               addrInfo->person_id = person_id;
+
+               D_SEC_MSG("address = %s, name = %s, persion_id = %d", addrInfo->address, addrInfo->name, addrInfo->person_id);
+
+               elm_genlist_item_append(genlist, &(vsd->itc_title), addrInfo, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_viewer_summary_view_option_recipient_list_menu_gl_sel, vsd);
+
+               free(address);
+       }
+
+       elm_object_part_content_set(layout, "elm.swallow.content", genlist);
+       evas_object_show(genlist);
+
+       vsd->recipient_list = genlist;
+
+       navi_it = elm_naviframe_item_push(vsd->navi_frame, NULL, NULL, NULL, layout, NULL);
+
+       elm_object_item_domain_translatable_part_text_set(navi_it, "elm.text.title", MESSAGE_PKGNAME, "IDS_MSGC_HEADER_RECIPIENT_LIST");
+       elm_naviframe_item_pop_cb_set(navi_it, __msg_ui_viewer_summary_view_recipient_list_pop_cb, vsd);
+
+       msg_ui_viewer_summary_view_disconnect_handler(vsd, true);
+
+       vsd->mode = MSG_VIEWER_RECIPIENT_MODE;
+}
+
diff --git a/viewer/src/msg-ui-viewer-utility.c b/viewer/src/msg-ui-viewer-utility.c
new file mode 100755 (executable)
index 0000000..c103c26
--- /dev/null
@@ -0,0 +1,580 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*==================================================================================================
+ *                                                             INCLUDE HEADERS
+ * ==================================================================================================*/
+#include "msg-ui-viewer-utility.h"
+#include <glib-object.h>
+#include <glib.h>
+#include <msg-ui-util.h>
+#include <contacts.h>
+#include <ctype.h>
+#include <Ecore_File.h>
+#include <media_content.h>
+#include "msg-ui-common-utility.h"
+#include "msg-file-util.h"
+#include "msg-system-util.h"
+
+/*==================================================================================================
+ *                                                                     FUNCTION DECLARATIONS
+ *==================================================================================================*/
+static void __msg_viewer_util_get_color_code(int color_dec);
+
+/*==================================================================================================
+ *                                                     FUNCTION IMPLEMENTATIONS
+ *================================================================================================*/
+int msg_viewer_util_get_thread_address_count(msg_handle_t msgHandle, msg_struct_t msg_t)
+{
+       D_MSG_RETVM_IF(msgHandle == NULL, -1, "msgHandle is NULL");
+       D_MSG_RETVM_IF(msg_t == NULL, -1, "msg_t is NULL");
+
+       msg_struct_list_s addrList;
+       int thread_id;
+       msg_error_t err = MSG_SUCCESS;
+       int count = 0;
+
+       /* get address list(thread) */
+       memset(&addrList, 0x00, sizeof(msg_struct_list_s));
+       msg_get_int_value(msg_t, MSG_MESSAGE_THREAD_ID_INT, &thread_id);
+
+       err = msg_get_address_list(msgHandle, thread_id, &addrList);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_address_list has failed");
+               return -1;
+       }
+
+       count = addrList.nCount;
+
+       msg_release_list_struct(&addrList);
+
+       return count;
+}
+
+void msg_viewer_util_get_thread_nth_address(msg_handle_t msgHandle, msg_struct_t msg_t, int number, char **address)
+{
+       D_MSG_RETM_IF(msgHandle == NULL, "msgHandle is NULL");
+       D_MSG_RETM_IF(msg_t == NULL, "msg_t is NULL");
+
+       msg_struct_list_s addrList;
+       int thread_id;
+       msg_error_t err = MSG_SUCCESS;
+       char buf_address[MAX_ADDRESS_VAL_LEN+1] = {0,};
+
+       /* get address list(thread) */
+       memset(&addrList, 0x00, sizeof(msg_struct_list_s));
+       msg_get_int_value(msg_t, MSG_MESSAGE_THREAD_ID_INT, &thread_id);
+
+       err = msg_get_address_list(msgHandle, thread_id, &addrList);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_address_list has failed");
+               return;
+       }
+
+       /* get Nth address */
+       if (addrList.msg_struct_info[number]) {
+               err = msg_get_str_value(addrList.msg_struct_info[number], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, buf_address, MAX_ADDRESS_VAL_LEN);
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_get_str_value() is failed");
+                       msg_release_list_struct(&addrList);
+                       return;
+               }
+       } else {
+               D_EMSG("addrList.msg_struct_info[%d] is NULL", number);
+               msg_release_list_struct(&addrList);
+               return;
+       }
+
+       msg_release_list_struct(&addrList);
+
+       *address = (char *)calloc(1, strlen(buf_address) + 1);
+       if (*address == NULL) {
+               D_EMSG("*address is NULL");
+               return;
+       }
+
+       strncpy(*address, buf_address, strlen(buf_address));
+
+       D_SEC_MSG("%dth address is %s", number, *address);
+}
+
+bool msg_viewer_util_get_display_name_by_index(int index, char *dest, int dest_size)
+{
+       D_MSG_RETVM_IF(dest == NULL, false, "dest is NULL");
+
+       int ct_ret = CONTACTS_ERROR_NONE;
+       char *display = NULL;
+       contacts_record_h ct_value = NULL;
+
+       ct_ret = contacts_db_get_record(_contacts_person._uri, index, &ct_value);
+       if (ct_ret != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_record is failed ct_ret = %d", ct_ret);
+               return false;
+       }
+
+       contacts_record_get_str_p(ct_value, _contacts_person.display_name, &display);
+
+       if (!display) {
+               D_EMSG("display name is NULL");
+               contacts_record_destroy(ct_value, true);
+               return false;
+       } else {
+               if (strlen(display)) {
+                       strncpy(dest, display, dest_size);
+               } else {
+                       contacts_record_destroy(ct_value, true);
+                       return false;
+               }
+       }
+
+       contacts_record_destroy(ct_value, true);
+
+       return true;
+}
+
+int msg_viewer_util_get_index_by_recipient(const char *address)
+{
+       int index = -1;
+       int ct_err = CONTACTS_ERROR_NONE;
+       contacts_list_h list = NULL;
+       contacts_query_h query = NULL;
+       contacts_filter_h filter = NULL;
+
+       /* get number list first */
+       contacts_query_create(_contacts_person_number._uri, &query);
+       contacts_filter_create(_contacts_person_number._uri, &filter);
+       contacts_filter_add_str(filter, _contacts_person_number.number_filter, CONTACTS_MATCH_EXACTLY, address);
+       contacts_query_set_filter(query, filter);
+
+       ct_err = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+       filter = NULL;
+       query = NULL;
+
+       if (ct_err != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+               contacts_list_destroy(list, true);
+               return index;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_err) {
+               contacts_record_h ct_value = NULL;
+               contacts_list_get_current_record_p(list, &ct_value);
+
+               if (ct_value) {
+                       contacts_record_get_int(ct_value, _contacts_person_number.person_id, &index);
+                       if (index > 0) {
+                               contacts_list_destroy(list, true);
+                               return index;
+                       }
+               }
+
+               ct_err = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+       list = NULL;
+
+       /* get email list second */
+       contacts_query_create(_contacts_person_email._uri, &query);
+       contacts_filter_create(_contacts_person_email._uri, &filter);
+       contacts_filter_add_str(filter, _contacts_person_email.email, CONTACTS_MATCH_EXACTLY, address);
+       contacts_query_set_filter(query, filter);
+
+       ct_err = contacts_db_get_records_with_query(query, 0, 0, &list);
+       contacts_filter_destroy(filter);
+       contacts_query_destroy(query);
+
+       if (ct_err != CONTACTS_ERROR_NONE) {
+               D_EMSG("contacts_db_get_records_with_query is failed error_code = %d", ct_err);
+               contacts_list_destroy(list, true);
+               return index;
+       }
+
+       while (CONTACTS_ERROR_NONE == ct_err) {
+               contacts_record_h ct_value = NULL;
+               contacts_list_get_current_record_p(list, &ct_value);
+
+               if (ct_value) {
+                       contacts_record_get_int(ct_value, _contacts_person_email.person_id, &index);
+                       if (index > 0) {
+                               contacts_list_destroy(list, true);
+                               return index;
+                       }
+               }
+
+               ct_err = contacts_list_next(list);
+       }
+
+       contacts_list_destroy(list, true);
+
+       return index;
+}
+
+MSG_BOOL msg_viewer_util_get_file_ext(const char *filepath, char *file_ext, int ext_len)
+{
+       D_MSG_RETVM_IF(filepath == NULL, FALSE, "filepath is NULL");
+       D_MSG_RETVM_IF(file_ext == NULL, FALSE, "file_ext is NULL");
+       const char *filename = NULL;
+       char *pdot = NULL;
+
+       filename = (const char *)msg_file_file_get(filepath);
+       D_MSG_RETVM_IF(filename == NULL, FALSE, "filename is NULL");
+
+       pdot = strrchr(filename, '.');
+
+       if (!pdot) {
+               return FALSE;
+       } else if (pdot != filepath) {
+               strncpy(file_ext, pdot + 1, ext_len);
+               return TRUE;
+       } else {
+               return FALSE;
+       }
+}
+
+int msg_viewer_util_get_next_number(char *file_name_without_ext)
+{
+       D_MSG_RETVM_IF(file_name_without_ext == NULL, MSG_VIEWER_INVALID_FILE_NUMBER, "file_name_without_ext is NULL");
+       int nCount = 0;
+       int nLength = 0;
+       int nUnderline = 0;
+       MSG_BOOL bAllDigits = TRUE;
+       int i = 0;
+
+       /* check _02d format */
+       nLength = strlen(file_name_without_ext);
+
+       for (nUnderline = nLength - 1 ; nUnderline >= 0 ; nUnderline--) {
+               if (file_name_without_ext[nUnderline] == '_') {
+                       break;
+               }
+       }
+
+       if (nUnderline == 0 && file_name_without_ext[0] != '_') {
+               return MSG_VIEWER_DEFAULT_FILE_NUMBER; /*doesn't match*/
+       }
+
+       /* check the right characters are all digits */
+       for (i = nUnderline + 1 ; i < nLength ; i++) {
+               if (file_name_without_ext[i] < '0' || file_name_without_ext[i] > '9') {
+                       bAllDigits = FALSE;
+                       break;
+               }
+       }
+
+       if (bAllDigits) {
+               for (i = nUnderline + 1 ; i < nLength ; i++) {
+                       nCount *= 10;
+                       nCount += file_name_without_ext[i]-'0';
+               }
+               /* truncate the last '_dd' */
+               file_name_without_ext[nUnderline] = '\0';
+       }
+
+       /* increase nCount by 1*/
+       nCount++;
+
+       return nCount;
+}
+
+char hexa_data[MSG_VIEWER_COLOR_HEXA_BUFFER_LEN];
+char hexa_value[MSG_VIEWER_HEXA_SIZE] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
+static void __msg_viewer_util_get_color_code(int color_dec)
+{
+       int col = color_dec;
+       int rem = 0;
+
+       memset(hexa_data, 0x00, sizeof(hexa_data));
+       rem = col % MSG_VIEWER_HEXA_SIZE;
+       col = col / MSG_VIEWER_HEXA_SIZE;
+       hexa_data[0] = hexa_value[col];
+       hexa_data[1] = hexa_value[rem];
+}
+
+void msg_viewer_util_get_color_as_string(char *szcolor, int szcolor_len, int r, int g, int b)
+{
+       D_MSG_RETM_IF(szcolor == NULL, "szcolor is NULL");
+       D_MSG_RETM_IF(szcolor_len >= MSG_VIEWER_RGB_COLOR_BUF, "szcolor_len is longer than MSG_VIEWER_RGB_COLOR_BUF");
+       char col_hex[MSG_VIEWER_RGB_COLOR_BUF] = {0x0,};
+       /* Get color*/
+       __msg_viewer_util_get_color_code(r);
+       col_hex[0] = hexa_data[0];
+       col_hex[1] = hexa_data[1];
+       __msg_viewer_util_get_color_code(g);
+       col_hex[2] = hexa_data[0];
+       col_hex[3] = hexa_data[1];
+       __msg_viewer_util_get_color_code(b);
+       col_hex[4] = hexa_data[0];
+       col_hex[5] = hexa_data[1];
+       col_hex[6] = '\0';
+
+       snprintf(szcolor, MSG_VIEWER_RGB_COLOR_BUF, "%s", col_hex);
+}
+
+MSG_BOOL msg_viewer_util_get_default_path(char *dir_path, int dir_path_len)
+{
+       D_MSG_RETVM_IF(dir_path == NULL, FALSE, "dir_path is NULL");
+
+       if (msg_file_is_dir(MSG_VIEWER_DOWNLOAD_PATH) == EINA_FALSE) {
+               if (msg_file_mkdir(MSG_VIEWER_DOWNLOAD_PATH) == EINA_FALSE) {
+                       D_EMSG("msg_file_mkdir is failed");
+                       snprintf(dir_path, dir_path_len, "%s", MSG_VIEWER_CONTENT_PATH);
+               } else {
+                       snprintf(dir_path, dir_path_len, "%s", MSG_VIEWER_DOWNLOAD_PATH);
+               }
+       } else {
+               snprintf(dir_path, dir_path_len, "%s", MSG_VIEWER_DOWNLOAD_PATH);
+       }
+
+       return TRUE;
+}
+
+unsigned char *msg_ui_viewer_get_buffer_from_file(const char *filepath, const char *opt, unsigned int *buffer_size)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(filepath == NULL, NULL, "filepath is NULL");
+       D_MSG_RETVM_IF(buffer_size == NULL, NULL, "buffer_size is NULL");
+
+       *buffer_size = 0;
+       FILE *pFile = NULL;
+
+       pFile = fopen(filepath, opt);
+       if (pFile == NULL) {
+               D_EMSG("File Open Error");
+               return NULL;
+       }
+
+       if (fseek(pFile, 0, SEEK_END) < 0) {
+               fclose(pFile);
+               D_EMSG("File fseek Error: ");
+               return NULL;
+       }
+
+       int file_size = ftell(pFile);
+
+       if (file_size <= 0) {
+               D_SEC_EMSG("Filesize is error : %d", file_size);
+               fclose(pFile);
+               return NULL;
+       }
+
+       if (fseek(pFile, 0, SEEK_SET) < 0) {
+               fclose(pFile);
+               D_EMSG("File seek Error");
+               return NULL;
+       }
+
+       unsigned char *buffer = (unsigned char *)malloc(file_size);
+
+       if (!buffer) {
+               D_EMSG("buffer is NULL");
+               fclose(pFile);
+               return NULL;
+       }
+
+       if (fread(buffer, sizeof(char), file_size, pFile) != (size_t)file_size) {
+               fclose(pFile);
+               free(buffer);
+               D_EMSG("File Read Error");
+               return NULL;
+       }
+
+       *buffer_size = file_size;
+       fclose(pFile);
+
+       return buffer;
+}
+
+char *msg_ui_viewer_util_copy_file(const char *src_path, char *dst_path, bool unique, bool hidden)
+{
+       D_ENTER;
+       D_MSG_RETVM_IF(src_path == NULL, NULL, "src_path is NULL");
+       D_MSG_RETVM_IF(dst_path == NULL, NULL, "dst_path is NULL");
+       char file_ext[MSG_VIEWER_FILE_EXT_MAX_LEN + 1] = {0};
+       char file_name_without_ext[MSG_VIEWER_FILENAME_MAX_LEN + 1] = {0};
+       char new_file_name[MSG_VIEWER_FILENAME_MAX_LEN + 1] = {0};
+       MSG_BOOL result = FALSE;
+       int ret = 0;
+       int ncount = 0;
+       Eina_Bool is_exists = FALSE;
+
+       snprintf(new_file_name, sizeof(new_file_name), "%s", dst_path);
+
+       D_SEC_MSG("new_file_name = %s", new_file_name);
+
+       if (unique) {
+               /*check for same file*/
+               is_exists = msg_file_exists(new_file_name);
+               if (is_exists == EINA_TRUE) {
+                       strncpy(file_name_without_ext, dst_path, MSG_VIEWER_FILENAME_MAX_LEN);
+                       result = msg_viewer_util_get_file_ext(dst_path, file_ext, MSG_VIEWER_FILE_EXT_MAX_LEN);
+                       if (result)
+                               file_name_without_ext[strlen(file_name_without_ext) - strlen(file_ext) - 1] = '\0';
+
+                       ncount = MSG_VIEWER_DEFAULT_FILE_NUMBER;
+                       memset(new_file_name, 0x00, sizeof(new_file_name));
+
+                       /*make new filename*/
+                       do {
+                               if (strlen(file_ext) > 0)
+                                       snprintf(new_file_name, sizeof(new_file_name), "%s_%02d.%s", file_name_without_ext, ncount, file_ext);
+                               else
+                                       snprintf(new_file_name, sizeof(new_file_name), "%s_%02d", file_name_without_ext, ncount);
+                               /*check for same file*/
+                               is_exists = msg_file_exists(new_file_name);
+                               if (is_exists == EINA_TRUE) {
+                                       memset(new_file_name, 0x00, sizeof(new_file_name));
+                                       ncount++;
+                               } else {
+                                       break;
+                               }
+                       } while (is_exists);
+               }
+
+               D_SEC_MSG("revised new_file_name = %s", new_file_name);
+       }
+
+       if (hidden) {
+               if (msg_file_cp(src_path, new_file_name) == EINA_FALSE) {
+                       D_EMSG("msg_file_cp is failed");
+                       return NULL;
+               }
+       } else {
+               /* if dst folder is not hidden folder, media scan should be done after copying file */
+               ret = media_content_connect();
+
+               if (!ret) {
+                       if (msg_file_cp(src_path, new_file_name) == EINA_FALSE) {
+                               D_EMSG("msg_file_cp is failed");
+                               media_content_disconnect();
+                               return NULL;
+                       }
+
+                       if (media_content_scan_file(new_file_name) != MEDIA_CONTENT_ERROR_NONE) {
+                               D_EMSG("media_content_scan_file() is failed");
+                               media_content_disconnect();
+                               return NULL;
+                       }
+
+                       ret = media_content_disconnect();
+
+                       if (!ret)
+                               D_EMSG("media_content_disconnect is failed");
+               } else {
+                       D_EMSG("media_content_connect is failed");
+                       return NULL;
+               }
+       }
+
+       return strdup(new_file_name);
+}
+
+char *msg_ui_viewer_util_create_working_dir(void)
+{
+       D_ENTER;
+       char *base_dir = "/tmp/message";
+       char working_path[DEF_PATH_MAX] = {0,};
+       int i = 0;
+
+       /*Create base dir*/
+       if (msg_file_exists(base_dir) == EINA_FALSE) {
+               if (msg_file_mkdir(base_dir) == EINA_FALSE) {
+                       return NULL;
+               }
+       }
+
+       /*Create work dir*/
+       do {
+               bzero(working_path, DEF_PATH_MAX);
+               snprintf(working_path, sizeof(working_path)-1, "%s/viewer_%d/", base_dir, i);
+               if (msg_file_exists(working_path) == EINA_FALSE) {
+                       if (msg_file_mkdir(working_path) == EINA_FALSE) {
+                               return NULL;
+                       } else {
+                               D_SEC_MSG("Success to create working path = %s", working_path);
+                               return strdup(working_path);
+                       }
+                       break;
+               }
+               i++;
+       } while (i < 255);
+
+       return NULL;
+}
+
+MSG_BOOL msg_ui_viewer_check_address_is_blocked(msg_handle_t msg_handle, char *address, int *filter_id)
+{
+       D_ENTER;
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_list_s filter_list;
+       int i = 0;
+       int total_cnt = 0;
+       char filter_val[MAX_FILTER_VALUE_LEN] = {0,};
+
+       int min_match_num = 0;
+       if (msg_sys_phonenumber_min_match_digit_get(&min_match_num) < 0) {
+               D_EMSG("msg_sys_phonenumber_min_match_digit_get is failed !!");
+               return FALSE;
+       }
+
+       char filter_val_cli_digits[min_match_num + 1];
+       char address_cli_digits[min_match_num + 1];
+
+       bzero(filter_val_cli_digits, sizeof(filter_val_cli_digits));
+       bzero(address_cli_digits, sizeof(address_cli_digits));
+
+       err = msg_get_filter_list(msg_handle, &filter_list);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("msg_get_filter_list() fail - err [%d]", err);
+               return FALSE;
+       }
+
+       total_cnt = filter_list.nCount;
+
+       for (i = 0; i < total_cnt; i++) {
+               /* get number */
+               bzero(filter_val, sizeof(filter_val));
+               bzero(filter_val_cli_digits, sizeof(filter_val_cli_digits));
+               bzero(address_cli_digits, sizeof(address_cli_digits));
+               err = msg_get_str_value(filter_list.msg_struct_info[i], MSG_FILTER_VALUE_STR, filter_val, sizeof(filter_val));
+
+               if (err != MSG_SUCCESS) {
+                       D_EMSG("msg_get_str_value() fail - err [%d]", err);
+                       msg_release_list_struct(&filter_list);
+                       return FALSE;
+               }
+
+               msg_common_remove_prefix_from_number(address, address_cli_digits);
+               msg_common_remove_prefix_from_number(filter_val, filter_val_cli_digits);
+
+               if (!strcmp(filter_val_cli_digits, address_cli_digits)) {
+                       int filter_type;
+                       msg_get_int_value(filter_list.msg_struct_info[i], MSG_FILTER_TYPE_INT, &filter_type);
+                       if (filter_type == MSG_FILTER_BY_ADDRESS_SAME) {
+                               /* get filter id if address is exist in block list */
+                               msg_get_int_value(filter_list.msg_struct_info[i], MSG_FILTER_ID_INT, filter_id);
+                               msg_release_list_struct(&filter_list);
+                               return TRUE;
+                       }
+               }
+       }
+
+       msg_release_list_struct(&filter_list);
+       return FALSE;
+}
diff --git a/viewer/theme/msg_viewer.edc b/viewer/theme/msg_viewer.edc
new file mode 100755 (executable)
index 0000000..06a2131
--- /dev/null
@@ -0,0 +1,2300 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg_viewer_defines.edc"
+
+#define TIME_TEXT_HEIGHT 43
+
+collections {
+       base_scale: 2.6;
+
+       plugins {
+               plugin {
+                       name: "touch_sound";
+                       source: "feedback";
+                       param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+               }
+       }
+
+       group {
+               name: "play_controller";
+               images {
+                       image: PREV_BTN COMP;
+                       image: PLAY_BTN COMP;
+                       image: PAUSE_BTN COMP;
+                       image: NEXT_BTN COMP;
+               }
+               parts {
+                       part {
+                               name: "rect";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 PLAY_CTRBAR_MIN_VERTICAL_H;
+                                       color: COLOR_GRAY;
+                               }
+                       }
+                       part {
+                               name: "rect/padding/top";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 55;
+                                       align: 0.0 0.0;
+                                       fixed: 1 1;
+                                       rel1{to:"rect"; relative:0.0 0.0;}
+                                       rel2{to:"rect"; relative:1.0 0.0;}
+                               }
+                       }
+                       part {
+                               name: "progress/start/time";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 TIME_TEXT_HEIGHT;
+                                       align: 0.0 0.0;
+                                       fixed: 1 1;
+                                       rel1{to:"progress_area"; relative:0.0 1.0; offset: 0 8;}
+                                       rel2{to:"progress_area"; relative:0.2 1.0; offset: 0 8;}
+                                       text {
+                                               size: 28;
+                                               align: 0.0 0.5;
+                                               text_class: "label";
+                                       }
+                                       color: COLOR_TIME_TEXT_EDC;
+                               }
+                       }
+                       part {
+                               name: "progress_area";
+                               mouse_events: 1;
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 16;
+                                       align: 0.5 0.0;
+                                       fixed: 1 1;
+                                       rel1{to:"rect/padding/top"; relative:0.0 1.0; offset: 30 0;}
+                                       rel2{to:"rect/padding/top"; relative:1.0 1.0; offset: -30 0;}
+                               }
+                               description {
+                                       state: "horizontal" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "progress/end/time";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       min: 0 TIME_TEXT_HEIGHT;
+                                       align: 1.0 0.0;
+                                       fixed: 1 1;
+                                       rel1{to:"progress_area"; relative:0.8 1.0; offset: 0 8;}
+                                       rel2{to:"progress_area"; relative:1.0 1.0; offset: 0 8;}
+                                       text {
+                                               size: 28;
+                                               align: 1.0 0.5;
+                                               text_class: "label";
+                                       }
+                                       color: COLOR_TIME_TEXT_EDC;
+                               }
+                       }
+                       part {
+                               name: "rect/padding/middle";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 11;
+                                       align: 0.0 0.0;
+                                       fixed: 1 1;
+                                       rel1{to_y:"progress/start/time"; relative:0.0 1.0;}
+                                       rel2{to_y:"progress/start/time"; relative:1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "rect/padding/button/top";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       align: 0.0 0.0;
+                                       fixed: 1 1;
+                                       rel1{to:"rect/padding/middle"; relative:0.0 1.0;}
+                                       rel2{to:"rect/padding/middle"; relative:1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "rect/padding/button/bottom";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       align: 0.0 1.0;
+                                       fixed: 1 1;
+                                       rel1{to:"rect/padding/bottom"; relative:0.0 0.0;}
+                                       rel2{to:"rect/padding/bottom"; relative:1.0 0.0;}
+                               }
+                       }
+                       part {
+                               name: "rect/padding/bottom";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 15;
+                                       align: 0.0 1.0;
+                                       fixed: 1 1;
+                                       rel1{to:"rect"; relative:0.0 1.0;}
+                                       rel2{to:"rect"; relative:1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "rect/padding/button_small";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       rel1{to:"rect/padding/button/top"; relative:0.0 1.0;}
+                                       rel2{to:"rect/padding/button/bottom"; relative:1.0 0.0;}
+                                       align: 0.0 0.5;
+                               }
+                       }
+                       part {
+                               name: "rect/padding/button_large";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       rel1{to:"rect/padding/middle"; relative:0.0 1.0;}
+                                       rel2{to:"rect/padding/bottom"; relative:1.0 0.0;}
+                               }
+                       }
+                       part {
+                               name: "prev_bg";
+                               mouse_events: 0;
+                               type: RECT;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 1.0 0.5;
+                                       visible: 1;
+                                       min: PLAY_CTRBAR_SMALL_BUTTON_W PLAY_CTRBAR_SMALL_BUTTON_W;
+                                       max: PLAY_CTRBAR_SMALL_BUTTON_W PLAY_CTRBAR_SMALL_BUTTON_W;
+                                       fixed: 1 1;
+                                       rel1 {
+                                               relative: 0.0 1.0;
+                                               to_x: "play_pause_bg";
+                                               to_y: "rect/padding/middle";
+                                               offset: -25 0;
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "play_pause_bg";
+                                               to_y: "rect/padding/bottom";
+                                               offset: -25 0;
+                                       }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "prev";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       visible:1;
+                                       image { normal: PREV_BTN; }
+                                       rel1 {
+                                               relative: 0 0;
+                                               to: "prev_bg";
+                                       }
+                                       rel2 {
+                                               relative: 1 1;
+                                               to: "prev_bg";
+                                       }
+                                       color: BUBBLE_NAVI_TITLE_COLOR;
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "play_pause_bg";
+                               mouse_events: 0;
+                               type: RECT;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       visible: 1;
+                                       min: PLAY_CTRBAR_LARGE_BUTTON_W PLAY_CTRBAR_LARGE_BUTTON_W;
+                                       max: PLAY_CTRBAR_LARGE_BUTTON_W PLAY_CTRBAR_LARGE_BUTTON_W;
+                                       fixed: 1 1;
+                                       rel1 {
+                                               relative: 0.5 1.0;
+                                               to: "rect/padding/middle";
+                                       }
+                                       rel2 {
+                                               relative: 0.5 0.0;
+                                               to: "rect/padding/bottom";
+                                       }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "play_pause";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       visible:1;
+                                       image { normal: PLAY_BTN; }
+                                       rel1 {
+                                               relative: 0 0;
+                                               to: "play_pause_bg";
+                                       }
+                                       rel2 {
+                                               relative: 1 1;
+                                               to: "play_pause_bg";
+                                       }
+                                       color: BUBBLE_NAVI_TITLE_COLOR;
+                               }
+                               description {
+                                       state: "default" 1.0;
+                                       image { normal: PAUSE_BTN; }
+                                       rel1 {
+                                               relative: 0 0;
+                                               to: "play_pause_bg";
+                                       }
+                                       rel2 {
+                                               relative: 1 1;
+                                               to: "play_pause_bg";
+                                       }
+                                       color: BUBBLE_NAVI_TITLE_COLOR;
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                               description {
+                                       state: "press" 1.0;
+                                       inherit: "default" 1.0;
+                               }
+                       }
+                       part {
+                               name: "next_bg";
+                               mouse_events: 0;
+                               type: RECT;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       visible: 1;
+                                       min: PLAY_CTRBAR_SMALL_BUTTON_W PLAY_CTRBAR_SMALL_BUTTON_W;
+                                       max: PLAY_CTRBAR_SMALL_BUTTON_W PLAY_CTRBAR_SMALL_BUTTON_W;
+                                       fixed: 1 1;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "play_pause_bg";
+                                               to_y: "rect/padding/middle";
+                                               offset: 25 0;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to_x: "play_pause_bg";
+                                               to_y: "rect/padding/bottom";
+                                               offset: 25 0;
+                                       }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "next";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       visible:1;
+                                       image { normal: NEXT_BTN; }
+                                       rel1 {
+                                               relative: 0 0;
+                                               to: "next_bg";
+                                       }
+                                       rel2 {
+                                               relative: 1 1;
+                                               to: "next_bg";
+                                       }
+                                       color: BUBBLE_NAVI_TITLE_COLOR;
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+
+                       programs {
+                               program {
+                                       name: "play_touch_snd";
+                                       signal: "play.touch.sound";
+                                       source: "";
+                                       action: RUN_PLUGIN "touch_sound";
+                               }
+                               program {
+                                       name: "prev_btn_click";
+                                       source: "prev";
+                                       signal: "mouse,clicked,1";
+                                       script {
+                                               new st[31];
+                                               new Float:vl;
+                                               get_state(PART:"prev", st, 30, vl)
+
+                                               if (!strcmp(st, "default"))
+                                                       emit ("prev_clicked", "");
+                                       }
+                               }
+                               program {
+                                       name: "prev_btn_down";
+                                       source: "prev";
+                                       signal: "mouse,down,1";
+                                       script {
+                                               new st[31];
+                                               new Float:vl;
+                                               get_state(PART:"prev", st, 30, vl)
+
+                                               if (!strcmp(st, "default")) {
+                                                       set_state(PART:"prev", "press", 0.0);
+                                               }
+                                       }
+                               }
+                               program {
+                                       name: "prev_btn_up";
+                                       source: "prev";
+                                       signal: "mouse,up,1";
+                                       script {
+                                               new st[31];
+                                               new Float:vl;
+                                               get_state(PART:"prev", st, 30, vl)
+
+                                               if (!strcmp(st, "press")) {
+                                                       set_state(PART:"prev", "default", 0.0);
+                                               }
+                                       }
+                               }
+                               program {
+                                       name: "prev_btn_enable";
+                                       source: "*";
+                                       signal: "prev_enable";
+                                       script {
+                                               set_state(PART:"prev", "default", 0.0);
+                                       }
+                               }
+                               program {
+                                       name: "prev_btn_disable";
+                                       source: "*";
+                                       signal: "prev_disable";
+                                       script {
+                                               set_state(PART:"prev", "default", 0.0);
+                                       }
+                               }
+                               program {
+                                       name: "play_btn_click";
+                                       source: "play_pause";
+                                       signal: "mouse,clicked,1";
+                                       script {
+                                               new st[31];
+                                               new Float:vl;
+                                               get_state(PART:"play_pause", st, 30, vl)
+                                               if(vl == 0.0)
+                                                       emit ("play_clicked", "");
+                                               else
+                                                       emit ("pause_clicked", "");
+                                       }
+                               }
+                               program {
+                                       name: "play_btn_down";
+                                       source: "play_pause";
+                                       signal: "mouse,down,1";
+                                       script {
+                                               new st[31];
+                                               new Float:vl;
+                                               get_state(PART:"play_pause", st, 30, vl)
+                                               if(vl == 0.0) {
+                                                       set_state(PART:"play_pause", "press", 0.0);
+                                               } else {
+                                                       set_state(PART:"play_pause", "press", 1.0);
+                                               }
+
+                                       }
+                               }
+                               program {
+                                       name: "play_btn_up";
+                                       source: "play_pause";
+                                       signal: "mouse,up,1";
+                                       script {
+                                               new st[31];
+                                               new Float:vl;
+                                               get_state(PART:"play_pause", st, 30, vl)
+                                               if(vl == 0.0) {
+                                                       set_state(PART:"play_pause", "default", 0.0);
+                                               } else {
+                                                       set_state(PART:"play_pause", "default", 1.0);
+                                               }
+                                       }
+                               }
+                               program {
+                                       name: "play_btn_play";
+                                       source: "*";
+                                       signal: "play";
+                                       script {
+                                               set_state(PART:"play_pause", "default", 0.0);
+                                       }
+                               }
+                               program {
+                                       name: "play_btn_pause";
+                                       source: "*";
+                                       signal: "pause";
+                                       script {
+                                               set_state(PART:"play_pause", "default", 1.0);
+                                       }
+                               }
+                               program {
+                                       name: "next_btn_click";
+                                       source: "next";
+                                       signal: "mouse,clicked,1";
+                                       script {
+                                               new st[31];
+                                               new Float:vl;
+                                               get_state(PART:"next", st, 30, vl)
+
+                                               if (!strcmp(st, "default"))
+                                                       emit ("next_clicked", "");
+                                       }
+                               }
+                               program {
+                                       name: "next_btn_down";
+                                       source: "next";
+                                       signal: "mouse,down,1";
+                                       script {
+                                               new st[31];
+                                               new Float:vl;
+                                               get_state(PART:"next", st, 30, vl)
+
+                                               if (!strcmp(st, "default")) {
+                                                       set_state(PART:"next", "press", 0.0);
+                                               }
+                                       }
+                               }
+                               program {
+                                       name: "next_btn_up";
+                                       source: "next";
+                                       signal: "mouse,up,1";
+                                       script {
+                                               new st[31];
+                                               new Float:vl;
+                                               get_state(PART:"next", st, 30, vl)
+
+                                               if (!strcmp(st, "press")) {
+                                                       set_state(PART:"next", "default", 0.0);
+                                               }
+                                       }
+                               }
+                               program {
+                                       name: "next_btn_enable";
+                                       source: "*";
+                                       signal: "next_enable";
+                                       script {
+                                               set_state(PART:"next", "default", 0.0);
+                                       }
+                               }
+                               program {
+                                       name: "next_btn_disable";
+                                       source: "*";
+                                       signal: "next_disable";
+                                       script {
+                                               set_state(PART:"next", "default", 0.0);
+                                       }
+                               }
+                               program {
+                                       name: "progress_vertical";
+                                       signal: "progress,set,vertical";
+                                       source: "*";
+                                       action: STATE_SET "default" 0.0;
+                                       target: "progress_area";
+                               }
+                               program {
+                                       name: "progress_horizontal";
+                                       signal: "progress,set,horizontal";
+                                       source: "*";
+                                       action: STATE_SET "horizontal" 0.0;
+                                       target: "progress_area";
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "progress_bar";
+               images {
+                       image: PROGRESS_BG COMP;
+                       image: PROGRESS_BAR COMP;
+                       image: PROGRESS_BAR_BUTTON COMP;
+                       image: PROGRESS_BAR_BUTTON_PRESSED COMP;
+               }
+
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "progressbar_bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.5; to: "bg";}
+                                       rel2 { relative: 1.0 0.5; to: "bg";}
+                                       image { normal: PROGRESS_BG; border: 14 14 0 0; }
+                                       min: 0 PLAYER_PROGRESSBAR_H;
+                                       fixed: 0 1;
+                                       align: 0.5 0.5;
+                               }
+                       }
+                       part {
+                               name: "progressbar_current";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "progressbar_bg"; }
+                                       rel2 { relative: 1.0 1.0; to_x: "progressbar_playing"; to_y: "progressbar_bg"; offset: -13 0;}
+                                       image { normal: PROGRESS_BAR; border: 6 6 0 0; }
+                                       min: 0 PLAYER_PROGRESSBAR_H;
+                                       fixed: 0 1;
+                                       align: 0.5 0.5;
+                                       color_class: "W062L2";
+                               }
+                       }
+                       part {
+                               name: "progressbar_playing_confine_rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 0.5; to: "progressbar_bg"; offset: -7 0; }
+                                       rel2 { relative: 1.0 0.5; to: "progressbar_bg"; offset: 7 0; }
+                                       min: 0 PLAYER_CIRCLE_H;
+                                       fixed: 0 1;
+                                       align: 0.5 0.5;
+                               }
+                       }
+                       part {
+                               name: "progressbar_playing";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       image { normal: PROGRESS_BAR_BUTTON; }
+                                       min: PLAYER_CIRCLE_W PLAYER_CIRCLE_H;
+                                       fixed: 1 1;
+                                       color_class: "W062L2";
+                               }
+                               dragable {
+                                       confine: "progressbar_playing_confine_rect";
+                                       x: 1 1 1;
+                               }
+                       }
+                       part {
+                               name: "progressbar_playing_press_circle";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       image { normal: PROGRESS_BAR_BUTTON_PRESSED; }
+                                       min: PLAYER_CIRCLE_PRESS_W PLAYER_CIRCLE_PRESS_H;
+                                       color_class: "W062L2";
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.5 0.5; to: "progressbar_playing"; }
+                                       rel2 { relative: 0.5 0.5; to: "progressbar_playing"; }
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit: "default";
+                                       visible: 1;
+                               }
+                       }
+
+                       part {
+                               name: "touch_area";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "bg"; offset: -29 -10; }
+                                       rel2 { to: "bg"; offset: 29 10; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+               }
+
+               programs {
+                       program{
+                               name: "progress_bar_down";
+                               source: "*";
+                               signal: "mouse,down,1";
+                               action: STATE_SET "press" 0.0;
+                               target: "progressbar_playing_press_circle";
+                       }
+                       program{
+                               name: "progress_bar_up";
+                               source: "*";
+                               signal: "mouse,up,1";
+                               action: STATE_SET "default" 0.0;
+                               target: "progressbar_playing_press_circle";
+                       }
+               }
+       }
+
+       group {
+               name: "subject/pageindex";
+               images {
+                       image: LOCK_ICON COMP;
+               }
+               parts {
+                       part {
+                               name: "rect";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 SUBJECT_MIN_H;
+                                       color: COLOR_GRAY;
+                               }
+                       }
+                       part {
+                               name: "subject/text";
+                               type: TEXT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1{to:"rect"; relative:0.0 0.0; offset: DETAIL_PADDING_H_MIN 0; }
+                                       align: 0.0 0.5;
+                                       color: COLOR_GRAY_TITLE_TEXT_EDC;
+                                       text {
+                                               size: 36;
+                                               align: 0.0 0.5;
+                                               min: 0 1;
+                                               max: 1 0;
+                                               text_class: "label";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "padding_rect_left";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 13 0;
+                                       max: 13 0;
+                                       fixed: 1 0;
+                                       rel1 { to_x: "subject/text"; relative: 1.0 0.0; }
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "page/text";
+                               type: TEXT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       rel1{to_x:"padding_rect_left"; relative:1.0 0.0;}
+                                       rel2{to:"rect"; relative:1.0 1.0;}
+                                       color: COLOR_GRAY_TITLE_TEXT_EDC;
+                                       text {
+                                               size: 30;
+                                               align: 0.0 0.5;
+                                               text_class: "label";
+                                       }
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 SUBJECT_MIN_H;
+                                       rel1{to:"rect"; relative:1.0 0.0;}
+                                       rel2{to:"rect"; relative:1.0 1.0;}
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "lock/icon";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: SUBJECT_LOCK_WIDTH SUBJECT_LOCK_WIDTH;
+                                       max: SUBJECT_LOCK_WIDTH SUBJECT_LOCK_WIDTH;
+                                       fixed: 1 1;
+                                       rel1{to:"page/text"; relative:0.0 0.0; offset: -SUBJECT_MIN_H 0;}
+                                       rel2{to:"page/text"; relative:0.0 1.0; offset: -17 0;}
+                                       align: 1.0 0.5;
+                                       image.normal: LOCK_ICON;
+                                       color: COLOR_LOCK_BTN_EDC;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "show_padding" 0.0;
+                                       inherit: "show" 0.0;
+                                       rel1{to:"rect"; relative:1.0 0.0; offset: -48 0;}
+                                       rel2{to:"rect"; relative:1.0 1.0; offset: -10 0;}
+                               }
+                       }
+                       programs {
+                               program {
+                                       name: "lock/icon/enabled";
+                                       source: "*";
+                                       signal: "lock/icon/show";
+                                       script {
+                                               new st[31];
+                                               new Float:vl;
+                                               get_state(PART:"page/text", st, 30, vl)
+
+                                               if (!strcmp(st, "hide")) {
+                                                       set_state(PART:"lock/icon", "show_padding", 0.0);
+                                               } else {
+                                                       set_state(PART:"lock/icon", "show", 0.0);
+                                               }
+                                       }
+                               }
+                               program {
+                                       name: "lock/icon/disabled";
+                                       source: "*";
+                                       signal: "lock/icon/hide";
+                                       script {
+                                               set_state(PART:"lock/icon", "default", 0.0);
+                                       }
+                               }
+                               program {
+                                       name: "page/index/disabled";
+                                       source: "*";
+                                       signal: "page/index/hide";
+                                       script {
+                                               set_state(PART:"page/text", "hide", 0.0);
+                                       }
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "supplement/content";
+               images {
+                       image: AUDIO_ICON COMP;
+               }
+               parts {
+                       part {
+                               name: "rect";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 SUPPLEMENT_AREA_H;
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       min: 0 SUPPLEMENT_AUDIO_AREA_H;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "swallow.button";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       rel1.to: "rect";
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.to: "rect";
+                                       rel2.relative: 1.0 1.0;
+                                       min: 1 0;
+                                       max: 464 0;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "elm.text";
+                               type: TEXT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1{to:"rect"; relative:0.0 0.0; offset: 76 0; }
+                                       rel2{to:"rect"; relative:0.8 1.0;}
+                                       align: 0.0 0.5;
+                                       color: COLOR_BLACK;
+                                       text {
+                                               size: 24;
+                                               align: 0.0 0.5;
+                                               text_class: "label";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "elm.icon";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       min: 38 38;
+                                       max: 38 38;
+                                       fixed: 1 1;
+                                       rel1{to:"rect"; relative:0.0 0.0; offset: 20 0;}
+                                       rel2{to:"rect"; relative:0.0 1.0; offset: 20 0;}
+                                       align: 0.0 0.5;
+                                       image { normal: AUDIO_ICON; }
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       programs {
+                               program {
+                                       name: "audio.icon.show";
+                                       signal: "audio,icon,show";
+                                       source: "*";
+                                       action: STATE_SET "show" 0.0;
+                                       target: "rect";
+                                       target: "elm.icon";
+                               }
+                               program {
+                                       name: "audio.icon.hide";
+                                       signal: "audio,icon,hide";
+                                       source: "*";
+                                       action: STATE_SET "default" 0.0;
+                                       target: "rect";
+                                       target: "elm.icon";
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "viewer_layout_padding";
+               parts {
+                       part {
+                               name: "rect";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 BODY_PADDING_TOP_1_MIN;
+                               }
+                               description {
+                                       state: "top_2" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 BODY_PADDING_TOP_2_MIN;
+                               }
+                               description {
+                                       state: "middle" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 BODY_PADDING_MID_1_MIN;
+                               }
+                               description {
+                                       state: "bottom" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 BODY_PADDING_BOTTOM_MIN;
+                               }
+                       }
+                       programs {
+                               program {
+                                       name: "padding_set_top_2";
+                                       signal: "padding,top2";
+                                       source: "";
+                                       action: STATE_SET "top_2" 0.0;
+                                       target: "rect";
+                               }
+                               program {
+                                       name: "padding_set_middle";
+                                       signal: "padding,middle";
+                                       source: "";
+                                       action: STATE_SET "middle" 0.0;
+                                       target: "rect";
+                               }
+                               program {
+                                       name: "padding_set_bottom";
+                                       signal: "padding,bottom";
+                                       source: "";
+                                       action: STATE_SET "bottom" 0.0;
+                                       target: "rect";
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "media_item_layout";
+               parts {
+                       part{
+                               name: "rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1{relative: 0.0 0.0;}
+                                       rel2{relative: 1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "rect.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "rect"; relative: 0.0 0.0; }
+                                       rel2 { to: "rect"; relative: 1.0 1.0; }
+                                       align: 0.0 0.0;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "swallow.media";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 0;
+                                       min: 0 0;
+                                       align: 0.0 0.5;
+                                       rel1{to: "rect"; relative: 0.0 0.0;}
+                                       rel2{to: "rect"; relative: 0.0 1.0;}
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "video_layout";
+               parts {
+                       part{
+                               name: "rect";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "pad_left";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 0;
+                                       min: 32 0;
+                                       max: 32 0;
+                                       align: 0 0.0;
+                                       rel1 {relative: 0.0 0.0;to:"rect";}
+                                       rel2 {relative: 0.0 1.0; to:"rect"; }
+                               }
+                       }
+                       part {
+                               name: "pad_right";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 0;
+                                       min: 32 0;
+                                       max: 32 0;
+                                       align: 1 0.0;
+                                       rel1 {relative: 0.0 0.0; to:"rect";}
+                               }
+                       }
+                       part {
+                               name: "bg.swallow";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "pad_left"; relative: 1.0 0.0; }
+                                       rel2 { to: "pad_right"; relative: 0.0 1.0; }
+                                       align: 0.0 0.0;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel1 { to: "pad_left"; relative: 1.0 0.0; }
+                                       rel2 { to: "pad_right"; relative: 0.0 1.0; }
+                               }
+                       }
+                       part {
+                               name: "swallow.thumbnail";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 0;
+                                       align: 0.0 0.0;
+                                       rel1{to: "bg.swallow"; relative: 0.0 0.0;}
+                                       rel2{to: "bg.swallow"; relative: 1.0 1.0;}
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "show_landscape";
+                               signal: "show,landscape";
+                               source: "*";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "bg.swallow";
+                       }
+                               program {
+                               name: "show_portrait";
+                               signal: "show,portrait";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg.swallow";
+                       }
+               }
+       }
+
+       group {
+               name: "thumbnail_layout";
+               images {
+                       image: "00_video_play.png" COMP;
+               }
+
+               parts {
+                       part{
+                               name: "rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events : 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+                                       rel1{relative: 0.0 0.0;}
+                                       rel2{relative: 1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "rect.bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "rect"; relative: 0.0 0.0; }
+                                       rel2 { to: "rect"; relative: 1.0 1.0; }
+                                       align: 0.0 0.0;
+                                       color: 0 0 0 0;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       color_class: "B041P";
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "rect.thumbnail";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "rect.bg"; relative: 0.0 0.0; offset: 6 6;}
+                                       rel2 { to: "rect.bg"; relative: 1.0 1.0; offset: -6 -6;}
+                                       align: 0.0 0.0;
+                                       visible: 0;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "swallow.thumbnail";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 0;
+                                       align: 0.0 0.0;
+                                       rel1{to: "rect.thumbnail"; relative: 0.0 0.0;}
+                                       rel2{to: "rect.thumbnail"; relative: 1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "play_button";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       image.normal: "00_video_play.png";
+                                       align: 0.5 0.5;
+                                       min: 72 72;
+                                       rel1 {to: "swallow.thumbnail"; relative: 0.5 0.5; offset: -36 -36;}
+                                       rel2 {to: "swallow.thumbnail"; relative: 0.5 0.5; offset: 36 36;}
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "play_button_show";
+                               signal: "elm,state,icon,show";
+                               source: "";
+                               action: STATE_SET "show" 0.0;
+                               target: "play_button";
+                       }
+                       program {
+                               name: "mouse_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "swallow.thumbnail";
+                               action: SIGNAL_EMIT "clicked" "";
+                       }
+                       program {
+                               name: "thumbnail.pressed";
+                               signal: "pressed";
+                               source: "swallow.thumbnail";
+                               action: STATE_SET "pressed" 0.0;
+                               target: "rect.bg";
+                       }
+                       program {
+                               name: "thumbnail.unpressed";
+                               signal: "unpressed";
+                               source: "swallow.thumbnail";
+                               action: STATE_SET "default" 0.0;
+                               target: "rect.bg";
+                       }
+                       program {
+                               name: "item_press";
+                               signal: "play,press,sound";
+                               source: "*";
+                               action: RUN_PLUGIN "touch_sound";
+                       }
+               }
+       }
+
+       group {
+               name: "attach_item_layout";
+               parts {
+                       part {
+                               name: "rect";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 74;
+                                       rel1{relative: 0.0 0.0;}
+                                       rel2{relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "rect.bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 0.0; to: "rect"; }
+                                       rel2 { relative: 1.0 1.0; to: "rect"; }
+                               }
+                       }
+                       PART_SWALLOW("swallow.rect", "rect.bg")
+               }
+       }
+
+       group {
+               name: "attach_item";
+               images {
+                       image: FILE_BG COMP;
+                       image: FILE_BG_EFFECT COMP;
+               }
+               parts {
+                       part {
+                               name: "rect";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 74;
+                                       rel1{relative: 0.0 0.0;}
+                                       rel2{relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "bg_image";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "rect"; }
+                                       rel2 { relative: 1.0 1.0; to: "rect"; }
+                                       image.normal: FILE_BG;
+                                       color: COLOR_BLUE;
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "bg_image_effect";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "rect"; }
+                                       rel2 { relative: 1.0 1.0; to: "rect"; }
+                                       image.normal: FILE_BG_EFFECT;
+                               }
+                       }
+                       part {
+                               name: "pad.left.thumbnail";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 12 0;
+                                       fixed: 1 0;
+                                       align: 0 0.5;
+                                       rel1 { relative: 0 0.0; to: "rect"; }
+                                       rel2 { relative: 0 1.0; to: "rect"; }
+                               }
+                       }
+                       part {
+                               name: "item.thumbnail.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       fixed: 1 1;
+                                       min: 45 45;
+                                       max: 45 45;
+                                       rel1 { relative: 1.0 0.0; to_x: "pad.left.thumbnail"; to_y: "rect"; }
+                                       rel2 { relative: 1.0 1.0; to_x: "pad.left.thumbnail"; to_y: "rect"; }
+                                       align: 0.0 0.5;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       PART_SWALLOW("item.thumbnail.icon", "item.thumbnail.rect")
+                       part {
+                               name: "pad.right.thumbnail";
+                               type: SPACER;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 12 0;
+                                       fixed: 1 0;
+                                       align: 0 0.5;
+                                       rel1 { relative: 1 0.0; to: "item.thumbnail.icon"; }
+                                       rel2 { relative: 1 1.0; to: "item.thumbnail.icon"; }
+                               }
+                       }
+                       part {
+                               name: "item.filename.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "pad.right.thumbnail"; to_y: "rect"; }
+                                       rel2 { relative: 1.0 1.0; to: "rect"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       PART_TEXT("item.filename.text", "item.filename.rect", 0.0, 0.5)
+                       PART_RECT("over", 0.0, 0.0, "rect", "rect", 1.0, 1.0, "rect", "rect")
+                       PART_EVENT_RECT("over_event", "over")
+               }
+
+               programs {
+                       program {
+                               name: "mouse_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "over_event";
+                               action: SIGNAL_EMIT "clicked" "";
+                       }
+                       program {
+                               name: "item.pressed";
+                               signal: "pressed";
+                               source: "over_event";
+                               action: STATE_SET "pressed" 0.0;
+                               target: "bg_image";
+                               target: "item.filename.text";
+                       }
+                       program {
+                               name: "item.unpressed";
+                               signal: "unpressed";
+                               source: "over_event";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_image";
+                               target: "item.filename.text";
+                       }
+                       program {
+                               name: "item_press";
+                               signal: "play,press,sound";
+                               source: "*";
+                               action: RUN_PLUGIN "touch_sound";
+                       }
+               }
+       }
+
+       group {
+               name: "bg_layout";
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: COLOR_BLUE;
+                               }
+                       }
+                       part {
+                               name: "content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1.to:"bg";
+                                       rel2 {
+                                               relative: 1 1;
+                                               to_x: "bg";
+                                       }
+                                       align: 0 0;
+                               }
+                               description {
+                                       state, "right_out" 0.0;
+                                       inherit, "default";
+                                       rel1.to:"bg";
+                                       rel1.relative: 2 0;
+                                       rel2 {
+                                               relative: 3 1;
+                                               to_x: "bg";
+                                       }
+                               }
+                               description {
+                                       state, "left_out" 0.0;
+                                       inherit, "default";
+                                       rel1.to:"bg";
+                                       rel1.relative: -2 0;
+                                       rel2 {
+                                               relative: -1 1;
+                                               to_x: "bg";
+                                       }
+                               }
+                       }
+               }
+
+               programs {
+                       program { name: "show,blank_right";
+                               signal: "show,blank_right,signal";
+                               source: "edje";
+                               action: STATE_SET "right_out" 0.0;
+                               target: "content";
+                       }
+                       program { name: "show,blank_left";
+                               signal: "show,blank_left,signal";
+                               source: "edje";
+                               action: STATE_SET "left_out" 0.0;
+                               target: "content";
+                       }
+                       program { name: "animate,in";
+                               signal: "animate,in,signal";
+                               source: "edje";
+                               action: STATE_SET "default" 0.0;
+                               transition: SINUSOIDAL 0.7;
+                               target: "content";
+                       }
+               }
+       }
+
+       group {
+               name : "viewer_main";
+               parts {
+                       part {
+                               name: "rect";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "viewer.body.bg";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+                                       rel1{to: "rect"; relative: 0.0 0.0;}
+                                       rel2{to: "rect"; relative: 1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "viewer.swallow.subject";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 {to: "rect"; relative:0.0 0.0;}
+                                       rel2 {to: "rect"; relative:1.0 0.0;}
+                               }
+                       }
+                       part {
+                               name: "viewer.body";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 0 0;
+                                       color: 0 0 0 0;
+                                       rel1 {to: "viewer.swallow.subject"; relative: 0.0 1.0;}
+                                       rel2 {to: "viewer.swallow.bottom.content"; relative: 1.0 0.0;}
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "viewer.body.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min:0 0;
+                                       color: 0 0 0 0;
+                                       rel1 {to: "viewer.swallow.subject"; relative: 0.0 1.0;}
+                                       rel2 {to: "viewer.swallow.bottom.content"; relative: 1.0 0.0;}
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "viewer.swallow.bottom.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 1.0;
+                                       rel1 {to: "rect"; relative:0.0 1.0;}
+                                       rel2 {to: "rect"; relative:1.0 1.0;}
+                               }
+                       }
+                       part {
+                               name: "viewer.swallow.playctrl";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 PLAY_CTRBAR_MIN_VERTICAL_H;
+                                       visible: 1;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 {to: "rect"; relative:0.0 1.0;}
+                                       rel2 {to: "rect"; relative:1.0 1.0;}
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "cutlink_press";
+                               signal: "play,press,sound";
+                               source: "*";
+                               action: RUN_PLUGIN "touch_sound";
+                       }
+               }
+       }
+
+       group {
+               name: "image_layout";
+               parts {
+                       part {
+                               name: "pad_left";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: DETAIL_PADDING_H_MIN 0;
+                                       max: DETAIL_PADDING_H_MIN 0;
+                                       align: 0 0;
+                               }
+                       }
+                       part {
+                               name: "pad_right";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: DETAIL_PADDING_H_MIN 0;
+                                       max: DETAIL_PADDING_H_MIN 0;
+                                       align: 1 0;
+                               }
+                       }
+                       part {
+                               name: "rect";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {relative: 1.0 0.0; to_x: "pad_left";}
+                                       rel2 {relative: 0.0 1.0; to_x: "pad_right";}
+                               }
+                       }
+                       part {
+                               name: "image.swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel1 {relative: 0.0 0.0; to: "rect";}
+                                       rel2 {relative: 1.0 1.0; to: "rect";}
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       align: 0.5 0.0;
+                                       rel1 {relative: 0.0 0.0; to: "rect";}
+                                       rel2 {relative: 1.0 1.0; to: "rect";}
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "show_landscape";
+                               signal: "show,landscape";
+                               source: "*";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "image.swallow.content";
+                       }
+                       program {
+                               name: "show_portrait";
+                               signal: "show,portrait";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "image.swallow.content";
+                       }
+               }
+       }
+
+       group {
+               name: "body_content_layout";
+               parts {
+                       part {
+                               name: "pad_left";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 7 0;
+                                       max: 7 0;
+                                       align: 0 0.5;
+                                       rel1.relative: 0 0;
+                                       rel2.relative: 0 1;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 170 0;
+                                       max: 170 0;
+                               }
+                       }
+                       part {
+                               name: "swallow.content";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 1 0;
+                                       align: 0 0.5;
+                                       rel1.relative: 1.0 0.0;
+                                       rel2.relative: 0.0 0.0;
+                                       rel1.to: "pad_left";
+                                       rel2.to: "pad_right";
+                               }
+                       }
+                       part {
+                               name: "pad_right";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 7 0;
+                                       max: 7 0;
+                                       align: 1 0.5;
+                                       rel1.relative: 1 0;
+                                       rel2.relative: 1 1;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 170 0;
+                                       max: 170 0;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "show_landscape";
+                               signal: "show,landscape";
+                               source: "*";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "pad_right";
+                               target: "pad_left";
+                       }
+                               program {
+                               name: "show_portrait";
+                               signal: "show,portrait";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "pad_right";
+                               target: "pad_left";
+                       }
+               }
+       }
+
+#define TITLE_HEIGHT 110
+#define TITLE_RIGHT_PAD 90
+#define TITLE_LEFT_BTN_PAD 10
+
+       group {
+               name: "title";
+               images {
+                       image: TITLE_BG COMP;
+               }
+               parts {
+                       part {
+                               name: "bg";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       min: 0 TITLE_HEIGHT;
+                                       image.normal: TITLE_BG;
+                                       color: BUBBLE_NAVI_TITLE_COLOR;
+                               }
+                       }
+                       part {
+                               name: "padding_left";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 16 72;
+                                       max: 16 72;
+                                       align: 0 0.5;
+                                       rel1.relative: 0 0;
+                                       rel2.relative: 0 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "padding_top";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       min: 0 4;
+                                       align: 0.5 0;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 1.0 0.0;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "padding_bottom";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       min: 0 4;
+                                       align: 0.5 1;
+                                       rel1.relative: 0.0 1.0;
+                                       rel2.relative: 1.0 1.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "right_padding";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: TITLE_RIGHT_PAD TITLE_HEIGHT;
+                                       max: TITLE_RIGHT_PAD TITLE_HEIGHT;
+                                       align: 1 0.5;
+                                       rel1 { relative: 1.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+                       part {
+                               name: "base";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       min: 0 TITLE_HEIGHT;
+                                       max: 1 TITLE_HEIGHT;
+                                       align: 0.0 0.0;
+                                       rel1.relative: 0.0 1.0;
+                                       rel2.relative: 1.0 0.0;
+                                       rel1.to: "padding_top";
+                                       rel2.to: "padding_bottom";
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "title_bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 64;
+                                       fixed: 0 1;
+                                       align : 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "back_btn"; to_y: "base";}
+                                       rel2 { relative: 0.0 1.0; to_x: "right_padding"; to_y: "base";}
+                                       color: BUBBLE_NAVI_TITLE_COLOR;
+                               }
+                               description {
+                                       state: "subtitle_enable" 0.0;
+                                       min: 0 35;
+                                       max: 6666 37;
+                                       fixed: 1 1;
+                                       rel1 { relative: 1.0 0.0; to_x: "back_btn"; to_y: "base"; }
+                                       rel2 { relative: 0.0 0.0; to_x: "right_padding"; to_y: "base"; }
+                                       align: 0.0 0.0;
+                                       color: BUBBLE_NAVI_TITLE_COLOR;
+                               }
+                       }
+                       part {
+                               name: "title_btn";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "back_btn"; to_y: "base";}
+                                       rel2 { relative: 0.0 1.0; to_x: "right_padding"; to_y: "base";}
+                               }
+                       }
+                       part {
+                               name: "back_btn_padding_left";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: TITLE_LEFT_BTN_PAD TITLE_HEIGHT;
+                                       max: TITLE_LEFT_BTN_PAD TITLE_HEIGHT;
+                                       align: 0 0.5;
+                                       rel1.relative: 0 0;
+                                       rel2.relative: 0 1;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "back_btn";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 0;
+                                       rel1 { relative: 1.0 1.0; to_x: "back_btn_padding_left"; to_y: "padding_top"; }
+                                       rel2 { relative: 1.0 0.0; to_x: "back_btn_padding_left"; to_y: "padding_bottom"; }
+                                       align: 0.0 0.5;
+                               }
+                               description {
+                                       state: "show_select_info";
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "title_text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       text {
+                                               size: 21;
+                                               min: 0 0;
+                                               max: 1 0;
+                                               align: 0.5 0.5;
+                                               text_class: "label";
+                                       }
+                                       color: COLOR_WHITE;
+                                       align: 0.0 0.5;
+                                       min: 0 64;
+                                       max: 6666 64;
+                                       fixed: 1 0;
+                                       rel1.to: "title_bg";
+                                       rel2.to: "title_bg";
+                               }
+                               description {
+                                       state: "subtitle_enable";
+                                       inherit: "default" 0.0;
+                                       text.text_class: "title_bar";
+                                       color_class: "T0201";
+                                       min: 0 35;
+                                       max: 6666 37;
+                               }
+                       }
+                       part {
+                               name: "subtitle_bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       max: 0 0;
+                                       fixed: 1 0;
+                                       rel1.to: "title_bg";
+                                       rel2.to: "title_bg";
+                               }
+                               description {
+                                       state: "subtitle_enable" 0.0;
+                                       min: 0 25;
+                                       fixed: 1 0;
+                                       rel1 { relative: 1.0 1.0; to_x: "padding_left"; to_y: "title_bg"; offset: 0 4;}
+                                       rel2 { relative: 0.0 1.0; to_x: "right_padding"; to_y: "base";}
+                                       align: 0.0 0.0;
+                                       color: BUBBLE_NAVI_TITLE_COLOR;
+                               }
+                       }
+                       part {
+                               name: "subtitle_text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       max: 0 0;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "subtitle_enable" 0.0;
+                                       text {
+                                               size: 24;
+                                               min: 0 0;
+                                               max: 1 0;
+                                               align: 0.5 0.5;
+                                               text_class: "label";
+                                       }
+                                       color: COLOR_WHITE_TRANSPARENT;
+                                       min: 0 25;
+                                       fixed:  0 1;
+                                       rel1.to: "subtitle_bg";
+                                       rel2.to: "subtitle_bg";
+                                       align: 0.0 0.5;
+                               }
+                       }
+                       part {
+                               name: "padding_button1";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 0 0;
+                                       max: 0 0;
+                                       align: 1.0 0.5;
+                                       rel1.to: "button1";
+                                       rel2.to: "button1";
+                                       rel1.relative: 0 0;
+                                       rel2.relative: 0 1;
+                                       color_class: "B0551";
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 1 48;
+                                       max: 1 48;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "button1";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       min: 0 63;
+                                       align: 1 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "padding_button2"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "padding_button2"; }
+                               }
+                       }
+                       part {
+                               name: "padding_button2";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 0 0;
+                                       max: 0 0;
+                                       align: 1.0 0.5;
+                                       rel1.to: "button2";
+                                       rel2.to: "button2";
+                                       rel1.relative: 0 0;
+                                       rel2.relative: 0 1;
+                                       color_class: "B0551";
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 1 48;
+                                       max: 1 48;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "button2";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       min: 0 63;
+                                       align: 1 0.5;
+                                       color: 0 0 0 0;
+                                       rel1 { relative: 1.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "show_subtitle";
+                               signal: "show,subtitle";
+                               source: "";
+                               action: STATE_SET "subtitle_enable" 0.0;
+                               target: "title_text";
+                               target: "title_bg";
+                               target: "subtitle_bg";
+                               target: "subtitle_text";
+                       }
+                       program {
+                               name: "hide_subtitle";
+                               signal: "hide,subtitle";
+                               source: "";
+                               action: STATE_SET "default" 0.0;
+                               target: "title_text";
+                               target: "title_bg";
+                               target: "subtitle_bg";
+                               target: "subtitle_text";
+                       }
+                       program {
+                               name: "show_button1";
+                               signal: "show,button1";
+                               source: "";
+                               action: STATE_SET "show" 0.0;
+                               target: "padding_button1";
+                       }
+                       program {
+                               name: "hide_button1";
+                               signal: "hide,button1";
+                               source: "";
+                               action: STATE_SET "default" 0.0;
+                               target: "padding_button1";
+                       }
+                       program {
+                               name: "show_button2";
+                               signal: "show,button2";
+                               source: "";
+                               action: STATE_SET "show" 0.0;
+                               target: "padding_button2";
+                       }
+                       program {
+                               name: "hide_button2";
+                               signal: "hide,button2";
+                               source: "";
+                               action: STATE_SET "default" 0.0;
+                               target: "padding_button2";
+                       }
+               }
+       }
+
+       group {
+               name: "help_page_save_all";
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 100;
+                                       color: COLOR_BLUE;
+                               }
+                       }
+
+                       PART_PADDING_LEFT("pad.left", 16, "bg");
+                       PART_PADDING_RIGHT("pad.right", 16, "bg");
+
+                       part {
+                               name: "item.filename.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "pad.left"; to_y: "bg"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "pad.filename.right"; to_y: "bg"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       PART_TEXT("item.filename.text", "item.filename.rect", 0.0, 0.5)
+                       PART_H_PIXEL_RECT("pad.filename.right", 12, 1.0, 0.0, "pad.right")
+
+                       PART_TOP_LINE("line.top", "bg")
+                       PART_BOTTOM_LINE("line.bottom", "bg")
+                       PART_LEFT_LINE("line.left", "bg")
+                       PART_RIGHT_LINE("line.right", "bg")
+               }
+       }
+
+       group {
+               name: "help_page_item";
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 100;
+                                       color_class: "WO21L1";
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       color_class: "B0211P";
+                               }
+                       }
+
+                       PART_PADDING_LEFT("pad.left", 16, "bg");
+                       PART_PADDING_RIGHT("pad.right", 16, "bg");
+
+                       part {
+                               name: "item.thumbnail.rect";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       fixed: 1 1;
+                                       min: 74 74;
+                                       max: 74 74;
+                                       rel1 { relative: 1.0 0.0; to_x: "pad.left"; to_y: "bg"; }
+                                       rel2 { relative: 1.0 1.0; to_x: "pad.left"; to_y: "bg"; }
+                                       align: 0.0 0.5;
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       PART_PADDING_TOP("thumbnail.icon.line.top", 1, "item.thumbnail.rect")
+                       PART_PADDING_LEFT("thumbnail.icon.line.left", 1, "item.thumbnail.rect")
+                       PART_PADDING_RIGHT("thumbnail.icon.line.right", 1, "item.thumbnail.rect")
+                       PART_PADDING_BOTTOM("thumbnail.icon.line.bottom", 1, "item.thumbnail.rect")
+
+                       PART_SWALLOW("item.thumbnail.icon", "item.thumbnail.rect")
+                       PART_H_PIXEL_RECT("pad.thumbnail.icon.right", 10, 0.0, 1.0, "item.thumbnail.icon")
+
+                       part {
+                               name: "item.filename.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       rel1 { relative: 1.0 0.0; to_x: "pad.thumbnail.icon.right"; to_y: "bg"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "pad.filename.right"; to_y: "bg"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       PART_TEXT("item.filename.text", "item.filename.rect", 0.0, 0.5)
+                       PART_H_PIXEL_RECT("pad.filename.right", 10, 1.0, 0.0, "item.filesize.rect")
+
+                       part {
+                               name: "item.filesize.rect";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 80 0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 0.0 0.0; to_x: "pad.right"; to_y: "pad.right"; }
+                                       rel2 { relative: 0.0 1.0; to_x: "pad.right"; to_y: "pad.right"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       PART_TEXT("item.filesize.text", "item.filesize.rect", 1.0, 0.5)
+
+                       PART_RECT("over", 0.0, 0.0, "bg", "bg", 0.0, 1.0, "item.filesize.rect", "item.filesize.rect")
+                       PART_EVENT_RECT("over_event", "over")
+
+                       PART_TOP_LINE("line.top", "bg")
+                       PART_BOTTOM_LINE("line.bottom", "bg")
+                       PART_LEFT_LINE("line.left", "bg")
+                       PART_RIGHT_LINE("line.right", "bg")
+               }
+
+               programs {
+                       program {
+                               name: "mouse_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "over_event";
+                               action: SIGNAL_EMIT "clicked" "";
+                       }
+                       program {
+                               name: "item.pressed";
+                               signal: "pressed";
+                               source: "over_event";
+                               action: STATE_SET "pressed" 0.0;
+                               target: "bg";
+                               target: "item.filename.text";
+                               target: "item.filesize.text";
+                       }
+                       program {
+                               name: "item.unpressed";
+                               signal: "unpressed";
+                               source: "over_event";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg";
+                               target: "item.filename.text";
+                               target: "item.filesize.text";
+                       }
+                       program {
+                               name: "item_press";
+                               signal: "play,press,sound";
+                               source: "*";
+                               action: RUN_PLUGIN "touch_sound";
+                       }
+               }
+       }
+}
diff --git a/viewer/theme/msg_viewer_custom.edc b/viewer/theme/msg_viewer_custom.edc
new file mode 100755 (executable)
index 0000000..3e6b351
--- /dev/null
@@ -0,0 +1,221 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "msg_viewer_defines.edc"
+
+collections {
+       base_scale: 2.6;
+
+       sounds {
+               sample {
+                       name: "touch_sound" RAW;
+                       source: "Tizen_Touch.wav";
+               }
+       }
+       //////////////////////////////////////////////////////////////
+       //                                              Rename popup                                    //
+       /////////////////////////////////////////////////////////////
+       styles {
+               style {
+                       name: "popup_desc_style";
+                       base: "font=Tizen:style=Roman font_size=30 align=left color=#FFFFFF color_class=T123 wrap=mixed text_class=label";
+                       tag:  "br" "\n";
+                       tag:  "ps" "ps";
+                       tag:  "whitecolor" "+ color=#ffffff";
+                       tag:  "tab" "\t";
+               }
+       }
+
+       group {
+               name: "viewer/popup/entry";
+               parts {
+                       part {
+                               name: "base";
+                               type: SPACER;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 197;
+                                       fixed: 0 0;
+                               }
+                       }
+                       part {
+                               name: "padding.top";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 27;
+                                       fixed: 0 1;
+                                       visible: 0;
+                                       rel1{relative: 0.0 0.0;}
+                                       rel2{relative: 1.0 0.0;}
+                                       align: 0.0 0.0;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "padding.bottom";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       visible: 0;
+                                       rel1{relative: 0.0 1.0;}
+                                       rel2{relative: 1.0 1.0;}
+                                       align: 0.0 1.0;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "padding.left";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 15 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1{relative: 0.0 0.0;}
+                                       rel2{relative: 0.0 1.0;}
+                                       align: 0.0 0.0;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "padding.right";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 15 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1{relative: 1.0 0.0;}
+                                       rel2{relative: 1.0 1.0;}
+                                       align: 1.0 0.0;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "popup.text.rect";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 76;
+                                       fixed: 0 1;
+                                       rel1 {
+                                               to_x: "padding.left";
+                                               to_y: "padding.top";
+                                               relative: 1.0 1.0;
+                                       }
+                                       rel2 {
+                                               to_x: "padding.right";
+                                               to_y: "padding.top";
+                                               relative: 0.0 1.0;
+                                       }
+                                       align: 0.0 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "popup.text";
+                               type: TEXTBLOCK;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       rel1 { to: "popup.text.rect"; relative: 0.0 0.0;}
+                                       rel2 { to: "popup.text.rect"; relative: 1.0 1.0;}
+                                       text {
+                                               style: "popup_desc_style";
+                                               min: 0 0;
+                                               max: 0 1;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "padding.text.middle";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       fixed: 0 1;
+                                       rel1 {
+                                               to: "popup.text.rect";
+                                               relative: 0.0 1.0;
+                                       }
+                                       rel2 {
+                                               to: "popup.text.rect";
+                                               relative: 1.0 1.0;
+                                       }
+                                       align: 0.5 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "entry_bg";
+                               type: SPACER;
+                               scale: 1;
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       min: 0 96;
+                                       fixed: 1 0;
+                                       rel1 {
+                                               to_x: "padding.left";
+                                               to_y: "padding.text.middle";
+                                               relative: 1.0 1.0;
+                                       }
+                                       rel2 {
+                                               to_x: "padding.right";
+                                               to_y: "padding.bottom";
+                                               relative: 0.0 0.0;
+                                       }
+                               }
+                       }
+                       part {
+                               name:"popup.swallow.entry";
+                               type: SWALLOW;
+                               scale : 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 0;
+                                       align: 0.5 1.0;
+                                       fixed: 1 0;
+                                       rel1 {
+                                               to: "entry_bg";
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               to: "entry_bg";
+                                               relative: 1.0 1.0;
+                                       }
+                               }
+                       }
+               }
+       }
+}
diff --git a/viewer/theme/msg_viewer_defines.edc b/viewer/theme/msg_viewer_defines.edc
new file mode 100755 (executable)
index 0000000..ba92e07
--- /dev/null
@@ -0,0 +1,468 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.
+ *
+ */
+
+//Layout
+#define MAIN_W 220
+#define MAIN_W_HORIZONTAL 480
+
+//Body attributes
+#define BODY_PADDING_TOP_1_MIN 30
+#define BODY_PADDING_TOP_2_MIN 15
+#define BODY_PADDING_MID_1_MIN 6
+#define BODY_PADDING_BOTTOM_MIN 12
+
+#define SUBJECT_LOCK_WIDTH 80
+#define SUBJECT_MIN_H 80
+#define SUPPLEMENT_AREA_H 76
+#define SUPPLEMENT_AUDIO_AREA_H 42
+#define SUMMARY_AUDIO_AREA_H 46
+#define PAGE_INDEX_MIN_W 64
+#define DETAIL_PADDING_V_MIN 14
+#define DETAIL_PADDING_H_MIN 32
+
+//play controllbar attributes
+#define PLAY_CTRBAR_MIN_VERTICAL_H 320
+#define PLAY_CTRBAR_TOP_PADDING_MIN_H 12
+#define PLAY_CTRBAR_MIDDLE_PADDING_MIN_H 7
+#define PLAY_CTRBAR_BOTTOM_PADDING_MIN_H 12
+#define PLAY_CTRBAR_PROGRESS_BAR_VERTICAL_W 348
+#define PLAY_CTRBAR_PROGRESS_BAR_HORIZONTAL_W 688
+#define PLAYER_PROGRESSBAR_H 8
+#define PLAYER_CIRCLE_W 26
+#define PLAYER_CIRCLE_H 26
+#define PLAYER_CIRCLE_PRESS_W 26
+#define PLAYER_CIRCLE_PRESS_H 26
+#define PLAY_CTRBAR_SMALL_BUTTON_W 126
+#define PLAY_CTRBAR_LARGE_BUTTON_W 126
+#define PLAY_CTRBAR_BUTTON_MARGIN 34
+#define PLAY_CTRBAR_BUTTON_TEXT_MARGIN 14
+#define PLAY_CTRBAR_PROGRESS_TEXT_MARGIN 14
+#define PLAY_CTRBAR_PROGRESS_TEXT_W 40
+#define PLAY_CTRBAR_BUTTON_VOLUME_START_X 18
+
+//edc images
+#define TITLE_BG "00_title_bg.#.png"
+#define SMALL_BTN_CIRCLE "full_player_button_02.png"
+#define LARGE_BTN_CIRCLE "full_player_button_01.png"
+#define PREV_BTN "full_player_button_prev.png"
+#define PLAY_BTN "full_player_button_play.png"
+#define PAUSE_BTN "full_player_button_pause.png"
+#define NEXT_BTN "full_player_button_next.png"
+#define PROGRESS_BG "T02_progress_bg.png"
+#define PROGRESS_BAR "T02_progress_bar.png"
+#define PROGRESS_BAR_BUTTON "T02_progress_bar_button.png"
+#define PROGRESS_BAR_BUTTON_PRESSED "T02_progress_bar_button_pressed.png"
+#define LOCK_ICON "messages_state_ic_lock.png"
+#define AUDIO_ICON "M01_icon_play.png"
+#define FILE_BG "M01_file_bg.#.png"
+#define FILE_BG_EFFECT "M01_file_bg_ef.#.png"
+
+#define COLOR_BLACK                    0 0 0 255
+#define COLOR_BLACK_TRANSPARENT 0 0 0 204
+#define COLOR_WHITE                            255 255 255 255
+#define COLOR_WHITE_TRANSPARENT        255 255 255 128
+#define COLOR_GRAY                             245 245 242 255
+#define COLOR_DARK_GRAY                        213 213 212 255
+#define COLOR_BLUE                             2 61 132 255
+#define COLOR_DARK_BLUE                        1 37 79 255
+#define COLOR_BLUE_TRANSPARENT 179 197 218 255
+#define COLOR_RED                              224 33 33 255
+#define BUBBLE_NAVI_TITLE_COLOR 61 185 204 255
+#define COLOR_GRAY_TITLE_TEXT_EDC 128 128 128 255
+#define COLOR_TIME_TEXT_EDC 102 102 102 255
+#define COLOR_LOCK_BTN_EDC 179 179 179 255
+
+//MACROS
+#define PART_BG(pName) \
+       part { \
+               name: pName; \
+               type: RECT; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       color: 0 0 0 0; \
+               } \
+       }
+
+#define PART_RECT(pName, pR1x, pR1y, pR1xt, pR1yt, pR2x, pR2y, pR2xt, pR2yt) \
+       part { \
+               name: pName; \
+               type: RECT; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       rel1 { relative: pR1x pR1y; to_x: pR1xt; to_y: pR1yt; } \
+                       rel2 { relative: pR2x pR2y; to_x: pR2xt; to_y: pR2yt; } \
+                       color: 0 0 0 0; \
+               } \
+       }
+
+#define PART_PIXEL_RECT(pName, pX, pY, pAx, pAy, pRx, pRy, pRt) \
+       part { \
+               name: pName; \
+               type: RECT; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       min: pX pY; \
+                       align: pAx pAy; \
+                       rel1 { relative: pRx pRy; to: pRt; } \
+                       rel2 { relative: pRx pRy; to: pRt; } \
+                       color: 0 0 0 0; \
+               } \
+       }
+
+#define PART_PIXEL_RECT_EX(pName, pX, pY, pAx, pAy, pR1x, pR1y, pR2x, pR2y, pRt) \
+       part { \
+               name: pName; \
+               type: RECT; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       min: pX pY; \
+                       max: pX pY; \
+                       align: pAx pAy; \
+                       rel1 { relative: pR1x pR1y; to: pRt; } \
+                       rel2 { relative: pR2x pR2y; to: pRt; } \
+                       color: 0 0 0 0; \
+               } \
+       }
+
+
+#define PART_V_PIXEL_RECT(pName, pY, pAy, pRy, pRt) \
+       part { \
+               name: pName; \
+               type: SPACER; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       min: 0 pY; \
+                       fixed: 0 1; \
+                       align: 0.5 pAy; \
+                       rel1 { relative: 0.0 pRy; to: pRt; } \
+                       rel2 { relative: 1.0 pRy; to: pRt; } \
+               } \
+       }
+
+#define PART_H_PIXEL_RECT(pName, pX, pAx, pRx, pRt) \
+       part { \
+               name: pName; \
+               type: SPACER; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       min: pX 0; \
+                       fixed: 1 0; \
+                       align: pAx 0.5; \
+                       rel1 { relative: pRx 0.0; to: pRt; } \
+                       rel2 { relative: pRx 1.0; to: pRt; } \
+               } \
+       }
+
+#define PART_SWALLOW(pName, pTo) \
+       part { \
+               name: pName; \
+               type: SWALLOW; \
+               mouse_events: 1; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       fixed: 1 1; \
+                       rel1 { relative: 0.0 0.0; to: pTo; } \
+                       rel2 { relative: 1.0 1.0; to: pTo; } \
+               } \
+       }
+
+#define PART_EVENT_RECT(pName, pTo) \
+       part { \
+               name: pName; \
+               type: RECT; \
+               mouse_events: 1; \
+               repeat_events: 1; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       rel1 { relative: 0.0 0.0; to: pTo; } \
+                       rel2 { relative: 1.0 1.0; to: pTo; } \
+                       color: 0 0 0 0; \
+                       visible: 1; \
+               } \
+               description { \
+                       state: "disabled" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 0; \
+               } \
+       }
+
+#define PART_COLOR_RECT(pName, pCr, pCg, pCb, pCa, pTo) \
+       part { \
+               name: pName; \
+               type: RECT; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       rel1 { relative: 0.0 0.0; to: pTo; } \
+                       rel2 { relative: 1.0 1.0; to: pTo; } \
+                       color: pCr pCg pCb pCa; \
+               } \
+       }
+
+#define PART_SWALLOW_RECT_BAR(pName, pTo, pRx1, pRy1, pRx2, pRy2)\
+       part{\
+               name: pName;\
+               type: SWALLOW;\
+               mouse_events: 0; \
+               scale: 1;\
+               description{\
+                       state: "default" 0.0;\
+                       rel1 { relative: pRx1 pRy1; to: pTo;}\
+                       rel2 { relative: pRx2 pRy2; to: pTo;}\
+               }\
+       }
+
+#define PART_TEXT(pName, pTo, pAx, pAy) \
+       part { \
+               name: pName; \
+               type: TEXT; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       rel1 { relative: 0.0 0.0; to: pTo; } \
+                       rel2 { relative: 1.0 1.0; to: pTo; } \
+                       text { \
+                               size: 30; \
+                               align: pAx pAy; \
+                               ellipsis: 0.0; \
+                               text_class: "label"; \
+                       } \
+                       color: COLOR_BLACK; \
+               } \
+               description { \
+                       state: "pressed" 0.0; \
+                       inherit: "default" 0.0; \
+                       text.size: 30; \
+                       color: COLOR_BLACK; \
+               } \
+       }
+
+#define PART_IMAGE(pName, pTo, pImage) \
+       part { \
+               name: pName; \
+               type: IMAGE; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       rel1 { relative: 0.0 0.0; to: pTo; } \
+                       rel2 { relative: 1.0 1.0; to: pTo; } \
+                       image.normal: pImage; \
+               } \
+       }
+
+#define PART_BORDER_IMAGE(pName, pTo, pImage, pL, pR, pT, pB) \
+       part { \
+               name: pName; \
+               type: IMAGE; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       rel1 { relative: 0.0 0.0; to: pTo; } \
+                       rel2 { relative: 1.0 1.0; to: pTo; } \
+                       image.normal: pImage; \
+                       image.border: pL pR pT pB; \
+               } \
+       }
+
+#define PART_TOP_LINE(pName, pTo) \
+       part \
+       { \
+               name: pName; \
+               type: RECT; \
+               mouse_events: 0; \
+               description { \
+                       state: "default" 0.0; \
+                       min: 0 1; \
+                       fixed: 0 1; \
+                       visible: 1; \
+                       color: COLOR_BLUE; \
+                       rel1 { relative: 0.0 0.0; to: pTo; offset: 0 0; } \
+                       rel2 { relative: 1.0 0.0; to: pTo; offset: 0 0; } \
+               } \
+       } \
+
+#define PART_LEFT_LINE(pName, pTo) \
+       part \
+       { \
+               name: pName; \
+               type: RECT; \
+               mouse_events: 0; \
+               description { \
+                       state: "default" 0.0; \
+                       min: 1 0; \
+                       fixed: 1 0; \
+                       visible: 1; \
+                       color: COLOR_BLUE; \
+                       rel1 { relative: 0.0 0.0; to: pTo; offset: -1 0; } \
+                       rel2 { relative: 0.0 1.0; to: pTo; offset: -1 0; } \
+               } \
+       } \
+
+#define PART_RIGHT_LINE(pName, pTo) \
+       part \
+       { \
+               name: pName; \
+               type: RECT; \
+               mouse_events: 0; \
+               description { \
+                       state: "default" 0.0; \
+                       min: 1 0; \
+                       fixed: 1 0; \
+                       visible: 1; \
+                       color: COLOR_BLUE; \
+                       rel1 { relative: 1.0 0.0; to: pTo; offset: 1 0; } \
+                       rel2 { relative: 1.0 1.0; to: pTo; offset: 1 0; } \
+               } \
+       } \
+
+#define PART_BOTTOM_LINE(pName, pTo) \
+       part \
+       { \
+               name: pName; \
+               type: RECT; \
+               mouse_events: 0; \
+               description { \
+                       state: "default" 0.0; \
+                       min: 0 1; \
+                       fixed: 0 1; \
+                       visible: 1; \
+                       color: COLOR_BLUE; \
+                       rel1 { relative: 0.0 1.0; to: pTo; offset: 0 0; } \
+                       rel2 { relative: 1.0 1.0; to: pTo; offset: 0 0; } \
+               } \
+       } \
+
+#define PART_BOTTOM_LINE_DOUBLE(pName, pTo) \
+       part \
+       { \
+               name: pName; \
+               type: RECT; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       min: 0 1; \
+                       fixed: 0 1; \
+                       visible: 1; \
+                       color: 98 102 117 255; \
+                       rel1 { relative: 0.0 1.0; to: pTo; offset: 0 -1; } \
+                       rel2 { relative: 1.0 1.0; to: pTo; offset: 0 -1; } \
+               } \
+       } \
+       part \
+       { \
+               name: pName##"2"; \
+               type: RECT; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       min: 0 1; \
+                       fixed: 0 1; \
+                       visible: 1; \
+                       color: 64 64 64 255; \
+                       rel1 { relative: 0.0 1.0; to: pTo; offset: 0 0; } \
+                       rel2 { relative: 1.0 1.0; to: pTo; offset: 0 0; } \
+               } \
+       } \
+
+#define PART_ACCESS_RECT(pTo) \
+       part \
+       { \
+               name: "access"; \
+               type: RECT; \
+               repeat_events: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       fixed: 1 1; \
+                       color: 0 0 0 0; \
+                       rel1 { relative: 0.0 1.0; to: pTo; offset: 0 0; } \
+                       rel2 { relative: 1.0 1.0; to: pTo; offset: 0 0; } \
+               } \
+       } \
+
+#define PART_PADDING_TOP(pName, pSize, pTo) \
+       PART_V_PIXEL_RECT(pName, pSize, 0.0, 0.0, pTo)
+
+#define PART_PADDING_BOTTOM(pName, pSize, pTo) \
+       PART_V_PIXEL_RECT(pName, pSize, 1.0, 1.0, pTo)
+
+#define PART_PADDING_LEFT(pName, pSize, pTo) \
+       PART_H_PIXEL_RECT(pName, pSize, 0.0, 0.0, pTo)
+
+#define PART_PADDING_RIGHT(pName, pSize, pTo) \
+       PART_H_PIXEL_RECT(pName, pSize, 1.0, 1.0, pTo)
+
+#define SCRIPT_CUSTOM_PART(pPart) \
+       custom_state(PART:pPart, "default", 0.0); \
+       set_state(PART:pPart, "custom", 0.0);
+
+#define SCRIPT_SET_IMAGE(pPart, pVal) \
+       set_state_val(PART:pPart, STATE_IMAGE, IMAGE:pVal);
+
+#define SCRIPT_SET_VISIBLE(pPart, pVal) \
+       set_state_val(PART:pPart, STATE_VISIBLE, pVal);
+
+#define SCRIPT_SET_STATE_DISABLED(pPart) \
+       set_state(PART:pPart, "disabled", 0.0);
+
+#define SCRIPT_SET_STATE_DEFAULT(pPart) \
+       set_state(PART:pPart, "default", 0.0);
+
+#define SCRIPT_SET_STATE_SHOW(pPart) \
+       set_state(PART:pPart, "show", 0.0);
+
+#define SCRIPT_SET_STATE_HIDE(pPart) \
+       set_state(PART:pPart, "hide", 0.0);
+
+#define PROGRAM_SET_VISIBLE(pName, pSignal, pSource, pPart) \
+       program { \
+               name: pName; \
+               signal: pSignal; \
+               source: pSource; \
+               script { \
+                       SCRIPT_SET_STATE_SHOW(pPart) \
+               } \
+       }
+
+#define PROGRAM_SET_INVISIBLE(pName, pSignal, pSource, pPart) \
+       program { \
+               name: pName; \
+               signal: pSignal; \
+               source: pSource; \
+               script { \
+                       SCRIPT_SET_STATE_HIDE(pPart) \
+               } \
+       }