description {
state: "default" 0.0;
min: 0 64;
- fixed: 1 1;
+ fixed: 0 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";}
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;
align: 0.5 0.5;
min: 0 64;
max: -1 64;
- fixed: 1 1;
+ fixed: 1 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;}
}
scale: 1;
description {
state: "default" 0.0;
- fixed: 1 1;
+ fixed: 0 0;
image.normal: "core_icon_expand_close.png";
color: BUBBLE_NAVI_TITLE_ARROW_COLOR;
min: 80 80;
return ret;
}
-static void __msg_common_get_self_number(char **self_ph_num) {
+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 (telephony_init(&tel_handle_list) == 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);
+ int err = telephony_sim_get_subscriber_number (tel_handle, self_ph_num);
- if (err != TELEPHONY_ERROR_NONE) {
+ if (err != TELEPHONY_ERROR_NONE)
+ {
if (*self_ph_num) {
free(*self_ph_num);
}
+
D_EMSG("Cannot get self phone number, err = %d", err);
+ } else if (*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), sizeof(char));
+ strcpy(*self_ph_num, unkn_str);
}
} 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);
- }
+ telephony_deinit(&tel_handle_list);
+ } else {
+ D_EMSG("telephony_init is failed.");
}
}
}
}
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_TOP("padding_top", 10); //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 .
mouse_events: 0;
description {
state: "default" 0.0;
- min: 0 37;
+ min: 0 20;
fixed: 0 1;
rel1 { to_y: "padding_top"; relative: 0.0 1.0; }
rel2 { to_y: "padding_top"; relative: 1.0 1.0; }
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_BOTTOM("padding_send_btn_bottom", 20);
PADDING_LEFT("padding_left", 11);
- PADDING_RIGHT("padding_right", 0);
-
+ PADDING_RIGHT("padding_right", 15);
part {
name: "rect.add_bt_area";
}
part {
+ name: "rect";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ visible: 0;
+ state: "default" 0.0;
+ min: 0 MSGC_BODY_MAIN_MIN_H;
+ rel1{ to_x: "padding_rect_left"; relative: 1.0 0.0; }
+ rel2{ relative: 1.0 1.0; }
+ color: COLOR_BUBBLE_LINE_EDC;
+ image {
+ normal: "messages_bubble_line_send.#.png";
+ border: 60 60 60 60;
+ border_scale: 1;
+ }
+ }
+ }
+
+ part {
name: "swl.main"; //input field
type: SWALLOW;
scale: 1;
description {
state: "default" 0.0;
min: 0 48;
- max: -1 -1;
+ max: -1 48;
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; }
+ rel1 { to_x: "padding1"; to_y: "rect"; relative: 1.0 0.5; }
+ rel2 { to_x: "padding2"; to_y: "rect"; relative: 0.0 0.5; }
align: 0.0 0.5;
}
}
part {
+ name: "text_padding"; //padding between char count and send button.
+ type: SPACER;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 2;
+ max: -1 2;
+ fixed: 1 1;
+ align: 0.0 1.0;
+ rel1 { to_x: "text_count_rect"; to_y: "text_count_rect"; relative: 0.0 1.0; }
+ rel2 { to_x: "text_count_rect"; to_y: "text_count_rect"; relative: 1.0 1.0; }
+ }
+ }
+ part {
name: "text.char_count";
type: TEXT;
scale: 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; }
+ rel1 { to_x: "padding_right"; to_y: "text_padding"; relative: 0.0 1.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; }
+ rel1 { to_x: "padding_right"; to_y: "text_padding"; relative: 0.0 1.0; }
rel2 { to_x: "padding_right"; to_y: "padding_send_btn_bottom"; relative: 0.0 0.0; }
}
}
target: "rect.add_bt_area";
#endif
target: "swl.main";
+ target: "text_padding";
}
program {
name: "show.landscape.mode";
target: "rect.add_bt_area";
#endif
target: "swl.main";
+ target: "text_padding";
}
}
}
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)
{
msg_ui_bubble_destroy_popup(pData);
}
-static void _show_mbe_with_contacts(MSG_COMPOSER_VIEW_DATA_S *cd)
+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;
PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
- D_MSG_RETM_IF(!bubble_data, "bubble_data is NULL!!");
msg_ui_composer_unset_view(cd);
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;
+ PMSG_BUBBLE_DATA bubble_data = cd->bubble_data;
- _show_mbe_with_contacts(cd);
D_LEAVE;
}
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);
}
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;
}
_attach_panel_selected_cb(cd, attach_panel, content_category, select, length);
free(select);
}
+
+ if (cd->center_popup == NULL) {
+ msg_ui_composer_entry_input_panel_show(cd->last_focus_entry);
+ }
}
static void _attach_panel_selected_cb(MSG_COMPOSER_VIEW_DATA_S *cd, attach_panel_h attach_panel,
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;
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");
+ if (elm_entry_is_empty(page_data->entry)) {
+ D_MSG("remove page if entry is empty");
msg_ui_composer_mms_body_remove_page(cd, remove_layout, true);
}
}
}
+ msg_ui_destroy_attach_panel(cd);
+
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_ENTER;
if (cd && cd->attach_panel) {
msg_ui_hide_attach_panel(cd);
+
attach_panel_unset_result_cb(cd->attach_panel);
+ attach_panel_remove_content_category(cd->attach_panel, ATTACH_PANEL_CONTENT_CATEGORY_IMAGE);
+ attach_panel_remove_content_category(cd->attach_panel, ATTACH_PANEL_CONTENT_CATEGORY_CAMERA);
+ attach_panel_remove_content_category(cd->attach_panel, ATTACH_PANEL_CONTENT_CATEGORY_VOICE);
+ attach_panel_remove_content_category(cd->attach_panel, ATTACH_PANEL_CONTENT_CATEGORY_VIDEO);
+ attach_panel_remove_content_category(cd->attach_panel, ATTACH_PANEL_CONTENT_CATEGORY_AUDIO);
+ attach_panel_remove_content_category(cd->attach_panel, ATTACH_PANEL_CONTENT_CATEGORY_MYFILES);
int destroy_res = attach_panel_destroy(cd->attach_panel);
D_MSG("attach_panel_destroy() returned %d", destroy_res);
- cd->attach_panel = NULL;
+ if (ATTACH_PANEL_ERROR_NONE == destroy_res || ATTACH_PANEL_ERROR_ALREADY_DESTROYED == destroy_res) {
+ cd->attach_panel = NULL;
+ }
}
}
}
}
- msg_ui_hide_attach_panel(cd);
+ msg_ui_destroy_attach_panel(cd);
}
char *msg_ui_composer_edj_get(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) {
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;
}
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;
+ if (cd->isAppControl && cd->isEmulator) {
+ 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);
+ } else {
+ D_EMSG("Invalid list type!!");
}
} else {
- D_EMSG("Invalid list type!!");
+ 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!!");
+ }
}
}
}
}
-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;
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);
+ 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);
+ }
}
D_MSG("rd->was_entry_empty = %d", rd->was_entry_empty);
if (rd->was_entry_empty) {
- __msg_ui_contacts_button_set(rd);
return;
}
}
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");
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 {
+ if (cd->isAppControl && cd->isEmulator) {
snprintf(title_str, sizeof(title_str), "%s", r_item->recipient);
+ } else {
+ 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) {
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;
}
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)
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);
free(language_set);
language_set = NULL;
}
+
+ /* elm_config_preferred_engine_set("opengl_x11"); //"software_x11" */
/* create window */
ad->win_main = __msg_ui_create_win(MESSAGE_PKGNAME);
<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"/>
+ <uri name=""/>
</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"/>
+ <uri name="file"/>
+ <uri name=""/>
<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"/>
+ <uri name=""/>
+ <mime name="*/*"/>
</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"/>
+ <uri name=""/>
</application-service>
<application-service>
<operation name="http://tizen.org/appcontrol/operation/share_contact"/>
#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);
{
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 (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);
- }
+ if (index == MSG_UI_SETTING_MM_MENU_AUTO_RETRIEVE)
+ return strdup(TEXT("IDS_MSG_BODY_RETRIEVE_MESSAGES_AUTOMATICALLY"));
+ 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)
+ return strdup(TEXT(setting_menu_its[index + 1].name));
}
return NULL;
}
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_MANAGE_SIM_CARD_MSG)
+ return strdup(TEXT(setting_menu_its[index + 1].name));
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);
- }
+ if (index == MSG_UI_SETTING_TEXT_MENU_DELIVERY_REPORT)
+ return strdup(TEXT(setting_menu_its[index + 1].name));
} 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;
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);
+ __msg_ui_back_to_main_settings_view(settingData);
}
static void __msg_ui_setting_sim_msg_delete_worker_feedback_cb(void *data, Ecore_Thread *thread, void *msg_data)
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_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);
D_LEAVE;
}
+void msg_ui_thread_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_CONV_DATA_S item_data = NULL;
+ app_control_h svc_handle = 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_CONV) {
+
+ item_data = (PMSG_APP_THREAD_CONV_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", item_data->thread_id, pListData->sel_msg_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);
+ D_MSG_RETM_IF(item_data->thread_id <= 0, "thread id is 0");
+
+ switch (pListData->view_mode) {
+ case THREAD_NORMAL_VIEW:
+ case THREAD_UNLOAD_VIEW:
+ 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;
+ 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) {
+ D_EMSG("msg_get_message_list2() is failed !!: err = %d", err);
+ msg_release_list_struct(&draft_list);
+ msg_release_struct(&listCond);
+
+ 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;
+ }
+
+ if (item_data->bDraft && (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);
+ ug_type = MSG_COMPOSER_UG_TYPE_COMPOSER;
+ } else {
+ msg_ui_thread_get_bubble_data(item_data, svc_handle);
+ 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, 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(pListData->sel_gen_item, &pListData->itc_read);
+ 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);
free(search_str);
}
- item_data = (PMSG_APP_THREAD_CONV_DATA_S)elm_object_item_data_get(item);
+ 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_CONV_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_CONV;
+
+ ecore_imf_context_input_panel_event_callback_add((Ecore_IMF_Context *)context, ECORE_IMF_INPUT_PANEL_STATE_EVENT, msg_ui_thread_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_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);
if (elm_genlist_item_selected_get(gen_item))
elm_genlist_item_selected_set(gen_item, false);
+
+ free(item_data);
elm_object_item_data_set(gen_item, NULL);
elm_object_item_del((Elm_Object_Item *)gen_item);