Eina_List *chk_list;
Eina_List *added_list;
Eina_List *media_list;
+ Eina_List *date_line_list;
Eina_Bool sel_all_checked;
#include "msg-ui-composer-data.h"
#include "msg-ui-composer-util.h"
+int msg_ui_composer_get_ref_count(void);
+void msg_ui_composer_increase_ref_count(void);
+void msg_ui_composer_decrease_ref_count(void);
+
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, service_h svc_handle);
elm_object_part_text_set(layout, "elm.text.date", item_data->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_data_set(layout, "bubble_info", item_data);
evas_object_show(layout);
elm_box_pack_start(bubble_data->box, layout);
+ bubble_data->date_line_list = eina_list_append(bubble_data->date_line_list, layout);
}
bubble_data->realized_list = eina_list_append(bubble_data->realized_list, item_data);
elm_scroller_gravity_set(bubble_data->scrl, 0.0, 1.0);
if (pack_info) {
+ PMSG_APP_CONV_DATA_S prev_data = NULL;
+ prev_data = (PMSG_APP_CONV_DATA_S) eina_list_nth(bubble_data->realized_list, 0);
+
+ if((!prev_data || g_strcmp0(prev_data->displayDate, pack_info->add_item->displayDate) != 0)) {
+ 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", pack_info->add_item->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_data_set(layout, "bubble_info", pack_info->add_item);
+ evas_object_show(layout);
+
+ elm_box_pack_end(bubble_data->box, layout);
+ bubble_data->date_line_list = eina_list_prepend(bubble_data->date_line_list, layout);
+ }
+
__add_bubble_item(bubble_data, pack_info->add_item, pack_info->pack_type, pack_info->rel_obj);
- bubble_data->realized_list = eina_list_append(bubble_data->realized_list, pack_info->add_item);
+ bubble_data->realized_list = eina_list_prepend(bubble_data->realized_list, pack_info->add_item);
bubble_data->added_list = eina_list_remove(bubble_data->added_list, pack_info);
MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, !bubble_data);
int msg_id = 0;
+ Evas_Object *date_line_layout = NULL;
PMSG_APP_CONV_DATA_S prev_data = NULL;
PMSG_APP_CONV_DATA_S insert_data = NULL;
BUBBLE_PACK_INFO *add_pack_info = NULL;
if (prev_data) {
if (prev_data->msgId == msg_id) {
if (eina_list_data_find(bubble_data->realized_list, (const void *)prev_data)) {
+ EINA_LIST_FOREACH(bubble_data->date_line_list, l, date_line_layout) {
+ if (date_line_layout) {
+ PMSG_APP_CONV_DATA_S bubble_info = NULL;
+ PMSG_APP_CONV_DATA_S next_bubble = NULL;
+ bubble_info = (PMSG_APP_CONV_DATA_S)evas_object_data_get(date_line_layout, "bubble_info");
+
+ if (bubble_info && (bubble_info == prev_data)) {
+ Eina_List *temp_list = NULL;
+ temp_list = eina_list_data_find_list(bubble_data->realized_list, prev_data);
+ temp_list = eina_list_prev(temp_list);
+ next_bubble = (PMSG_APP_CONV_DATA_S)eina_list_nth(temp_list, 0);
+
+ if (!next_bubble || (g_strcmp0(next_bubble->displayDate, bubble_info->displayDate) != 0)) {
+ bubble_data->date_line_list = eina_list_remove(bubble_data->date_line_list, date_line_layout);
+ elm_box_unpack(bubble_data->box, date_line_layout);
+ evas_object_del(date_line_layout);
+ } else {
+ evas_object_data_del(date_line_layout, "bubble_info");
+ evas_object_data_set(date_line_layout, "bubble_info", next_bubble);
+ }
+ break;
+ }
+ }
+ }
elm_box_unpack(bubble_data->box, prev_data->ly);
evas_object_hide(prev_data->ly);
evas_object_del(prev_data->ly);
+ elm_box_recalculate(bubble_data->box);
bubble_data->realized_list = eina_list_remove(bubble_data->realized_list, (const void *)prev_data);
}
{
D_ENTER;
- MSG_COMPOSER_VIEW_DATA_S *cd = priv;
- Evas_Object *entry;
+ 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] = { 0, };
+ char *memo_image = NULL;
+ char buf[DEF_BUF_LEN_S + 1] = {0, };
int img_count = 0;
int txt_count = 0;
int i;
return;
}
- if (service_get_extra_data(result, MSG_BUNDLE_KEY_PATH, &str) == SERVICE_ERROR_NONE) {
- gchar **split_str = NULL;
-
- split_str = g_strsplit_set(str, "\n", -1);
+ if (service_get_extra_data(result, MSG_BUNDLE_KEY_IMAGE, &str) == SERVICE_ERROR_NONE) {
+ if (str)
+ img_count = atoi(str);
+ }
- if (split_str) {
- int count = g_strv_length(split_str);
+ D_MSG("[MEMO] attach image count : %d", img_count);
- for (i = 0; i < count; i++) {
- if (split_str[i] && strlen(split_str[i])) {
- D_MSG("%dth split_str = (%s)", i, split_str[i]);
- cd->attachlist = eina_list_append(cd->attachlist, g_strdup(split_str[i]));
- }
+ /* if image memo then attach image */
+ if (img_count > 0) {
+ for (i = 1; i <= img_count; i++) {
+ snprintf(buf, sizeof(buf)-1, "image%d", i);
+ if (service_get_extra_data(result, buf, &memo_image) == SERVICE_ERROR_NONE) {
+ if (memo_image)
+ cd->attachlist = eina_list_append(cd->attachlist, g_strdup(memo_image));
}
-
- g_strfreev(split_str);
}
-
}
+ str = NULL;
+
if (service_get_extra_data(result, MSG_BUNDLE_KEY_TEXT, &str) == SERVICE_ERROR_NONE) {
if (str)
txt_count = atoi(str);
COMPOSER_RECP_ADDR_E recp_type = msg_ui_composer_recipient_addr_type_get(cd->recipient);
for (i = 1; i <= txt_count; i++) {
- char* memo_str = NULL;
+ char *memo_str = NULL;
snprintf(buf, sizeof(buf)-1, "text%d", i);
service_get_extra_data(result, buf, &tmp_memo);
#define UG_MODULE_API __attribute__ ((visibility("default")))
#endif
+int ref_count;
+
+int msg_ui_composer_get_ref_count(void)
+{
+ D_MSG("ref_count = %d", ref_count);
+ return ref_count;
+}
+
+void msg_ui_composer_increase_ref_count(void)
+{
+ ++ref_count;
+ D_MSG("ref_count = %d", ref_count);
+}
+
+void msg_ui_composer_decrease_ref_count(void)
+{
+ --ref_count;
+ D_MSG("ref_count = %d", ref_count);
+
+ if (ref_count < 0)
+ ref_count = 0;
+}
+
static void __base_layout_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
D_ENTER;
return NULL;
}
+ if (cd->base)
+ msg_ui_composer_increase_ref_count();
+
return cd->base;
}
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_composer_decrease_ref_count();
+
if (!cd)
return COMPOSER_RETURN_FAIL;
}
/* rollback indicator mode to previous mode */
- elm_win_indicator_mode_set(cd->main_window, cd->indicator_mode);
+ if (msg_ui_composer_get_ref_count() <= 0)
+ elm_win_indicator_mode_set(cd->main_window, cd->indicator_mode);
D_PRINT("===== Composer UG Destroy End =====");
pListData = msg_ui_thread_get_current_list();
if (!g_strcmp0(str_result, MSG_BUNDLE_VALUE_DEL_ALL)) {
+ elm_object_focus_set(pListData->genlist, EINA_TRUE);
ug_destroy(ug);
if (pListData) {
struct appdata *ad = (struct appdata *)priv;
int ug_type = ad->ug_type;
+ PMSG_THREAD_LIST_DATA pListData = NULL;
+
+ pListData = msg_ui_thread_get_current_list();
if (ug == ad->composer_ug) {
+ if (pListData && pListData->genlist)
+ elm_object_focus_set(pListData->genlist, EINA_TRUE);
+
ug_destroy(ug);
ad->composer_ug = NULL;
ad->ug_type = MSG_COMPOSER_UG_TYPE_NONE;
if (ad->layout_main) {
PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)ad->thread_data;
- PMSG_THREAD_LIST_DATA pListData = NULL;
-
- pListData = msg_ui_thread_get_current_list();
if (pListData == NULL) {
elm_exit();
return;
Name: org.tizen.message
Summary: message application
-Version: 0.8.44
+Version: 0.8.45
Release: 1
Group: devel
License: Samsung
/usr/share/icons/default/small/*.png
%changelog
+* Sat Feb 16 2013 Jaeyun Jeong <jyjeong@samsung.com>
+- N_SE-25398 : Fix lags on entering SMIL player.
+- Fix N_SE-25203: bubble position issue & date_line issue.
+- Fix N_SE-25242, N_SE-25243, N_SE-25248. Show normal view on horizontal edit mode.
+- Fix N_SE-25254, splitview composer indicator issue, ref_count is applied in composer.
+- Fix N_SE-25224, drawing memo inserting issue.
+
* Mon Feb 12 2013 Jaeyun Jeong <jyjeong@samsung.com>
- Fix N_SE-24797. Hide toolbar on horizontal search mode.
- Fix N_SE-24783. Cancel search mode after delete message.
- Fix N_SE-22522, uri of filepath is supported.
* Mon Jan 21 2013 Jaeyun Jeong <jyjeong@samsung.com>
+- Change license URL from "tizenopensource.org" to "floralicense.org".
+- Change enum value related with SESSION policy in MMFW.
+ (It is re-submitted because of invalid tag.)
+
+* Mon Jan 21 2013 Jaeyun Jeong <jyjeong@samsung.com>
- Apply EFL API changes.
- Change elm_scale_get to elm_config_scale_get of composer.
- Change name of deprecated api elm_scale_get() to elm_config_scale_get().
pListData->action_type = THREAD_ACTION_NONE;
pListData->include_protected_msg = false;
- msg_ui_thread_show_normal_mode(pListData);
-
if (pListData->list_type == THREAD_NORMAL_LIST_TYPE) {
msg_ui_thread_list_load(pListData, FALSE);
} else {
if (pDefaultListData)
msg_ui_thread_list_load(pDefaultListData, FALSE); //might be changed
}
+
+ msg_ui_thread_show_normal_mode(pListData);
}
void msg_ui_thread_ctlbar_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
- elm_panes_content_left_size_set(pData->panes, 0.4);
+ if (pListData && pListData->view_mode == THREAD_NORMAL_VIEW) {
+ elm_panes_content_left_size_set(pData->panes, 0.4);
+ elm_object_signal_emit(pData->panes, "elm,panes,pair", "");
- if (pListData) {
- if (pListData->view_mode == THREAD_NORMAL_VIEW && pListData->item_cnt > 0) {
+
+ if (pListData->item_cnt > 0) {
edje_object_signal_emit(_EDJ(pListData->content_ly), "show_searchbar", "sel_all");
evas_object_show(pListData->searchbar);
elm_object_part_content_set(pListData->content_ly, "sel_all", pListData->searchbar);
}
if (pData->detail_layout) {
- elm_naviframe_item_pop(pData->navi_frame);
+ elm_object_item_del(elm_naviframe_top_item_get(pData->navi_frame));
pData->detail_layout = NULL;
if (pListData->sel_gen_item > 0)
msg_ui_thread_launch_msg_detail_view(pListData, elm_object_item_data_get(pListData->sel_gen_item));
}
}
}
-
- elm_object_signal_emit(pData->panes, "elm,panes,pair", "");
+ D_LEAVE;
}
void msg_ui_thread_split_view_hide(PMSG_THREAD_DATA pData)
PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
- elm_object_part_content_set(pData->panes, "left", pData->layout_main);
- elm_panes_content_left_size_set(pData->panes, 1.0);
- if (pData->split_data) {
- elm_object_part_content_unset(pData->panes, "right");
- msg_ui_thread_destroy_split_data(pData->split_data);
- }
+ if (pListData && pListData->view_mode == THREAD_NORMAL_VIEW) {
+ elm_object_part_content_set(pData->panes, "left", pData->layout_main);
+ elm_panes_content_left_size_set(pData->panes, 1.0);
+ if (pData->split_data) {
+ elm_object_part_content_unset(pData->panes, "right");
+ msg_ui_thread_destroy_split_data(pData->split_data);
+ }
- if (pListData) {
if (pListData->search_mode == THREAD_SEARCH_OFF) {
+ edje_object_signal_emit(_EDJ(pListData->content_ly), "hide_searchbar", "sel_all");
+ elm_object_part_content_unset(pListData->content_ly, "sel_all");
+ evas_object_hide(pListData->searchbar);
msg_ui_thread_show_toolbar(pListData);
-
- if (pListData->view_mode == THREAD_NORMAL_VIEW) {
- edje_object_signal_emit(_EDJ(pListData->content_ly), "hide_searchbar", "sel_all");
- elm_object_part_content_unset(pListData->content_ly, "sel_all");
- evas_object_hide(pListData->searchbar);
- }
+ } else {
+ Evas_Object *entry = NULL;
+ entry = elm_object_part_content_get(pListData->searchbar, "elm.swallow.content");
+ if (entry && elm_object_focus_get(entry) == EINA_FALSE)
+ msg_ui_thread_show_toolbar(pListData);
}
+
elm_naviframe_item_title_visible_set(pListData->nf_it, EINA_TRUE);
Evas_Object * layout = msg_ui_get_composer_ug_viewer_layout();
if (layout) {
elm_object_part_content_set(pData->panes, "right", layout);
- elm_object_part_content_unset(pData->panes, "left");
elm_panes_content_left_size_set(pData->panes, 0.0);
evas_object_hide(pData->layout_main);
} else if (pData->detail_layout) {
if (pListData->sel_gen_item > 0)
msg_ui_thread_launch_msg_detail_view(pListData, elm_object_item_data_get(pListData->sel_gen_item));
}
+
+ elm_object_signal_emit(pData->panes, "elm,panes,unpair", "");
}
- elm_object_signal_emit(pData->panes, "elm,panes,unpair", "");
+ D_LEAVE;
}
elm_object_part_content_unset(pListData->content_ly, "sel_all");
evas_object_hide(pListData->sel_all_ly);
- elm_object_part_content_set(pListData->content_ly, "sel_all", pListData->searchbar);
if (msg_ui_thread_rotation_get() == false)
edje_object_signal_emit(_EDJ(pListData->content_ly), "hide_searchbar", "sel_all");
else
pListData->select_info = NULL;
}
- msg_ui_thread_set_navi_toolbar_item(pListData);
-
if (pListData->list_type == THREAD_NORMAL_LIST_TYPE)
elm_object_item_text_set(pListData->nf_it, dgettext("sys_string", "IDS_COM_BODY_MESSAGES"));
else if (pListData->list_type == THREAD_SPAM_LIST_TYPE)
elm_naviframe_item_title_visible_set(pListData->nf_it, EINA_TRUE);
msg_ui_thread_show_toolbar(pListData);
} else {
- elm_naviframe_item_title_visible_set(pListData->nf_it, EINA_FALSE);
- msg_ui_thread_hide_toolbar(pListData, true);
+ msg_ui_thread_split_view_show(msg_ui_thread_get_data());
}
D_LEAVE;
name : "title";
parts {
part {
- name: "rect";
- type: RECT;
- scale: 1;
- description {
- state: "default" 0.0;
- color: 0 0 0 0;
- }
- }
- part {
name: "title_top_padding";
type: RECT;
scale: 1;
state: "default" 0.0;
visible: 0;
fixed: 0 1;
- min: 0 10;
+ min: 0 32;
align: 0.5 0;
- rel1{to: "rect"; relative: 0.0 0.0;}
- rel2{to: "rect"; relative: 1.0 0.0;}
+ rel1{relative: 0.0 0.0;}
+ rel2{relative: 1.0 0.0;}
}
}
part {
state: "default" 0.0;
visible: 0;
fixed: 0 1;
- min: 0 16;
- align: 0 1.0;
- rel1{to: "rect"; relative: 0.0 1.0;}
- rel2{to: "rect"; relative: 1.0 1.0;}
+ min: 0 10;
+ align: 0.5 1.0;
+ rel1{relative: 0.0 1.0;}
+ rel2{relative: 1.0 1.0;}
}
}
part {
visible: 0;
fixed: 1 0;
min: 16 0;
- align: 1.0 0.5;
- rel1{to: "title_btn"; relative: 0.0 0.0;}
- rel2{to: "title_btn"; relative: 0.0 1.0;}
+ align: 0 0.5;
+ rel1{to: "title_top_padding"; relative: 0.0 1.0;}
+ rel2{to: "title_bottom_padding"; relative: 0.0 0.0;}
}
}
part {
description {
state: "default" 0.0;
fixed: 0 0;
- min: 0 72;
- align: 0 0.5;
+ min: 0 68;
+ align: 0.5 0.5;
rel1{to_x: "title_left_padding"; to_y: "title_top_padding"; relative: 1.0 1.0;}
rel2{to_x: "title_attach_left_padding"; to_y: "title_bottom_padding"; relative: 0.0 0.0;}
}
state: "default" 0.0;
visible: 0;
fixed: 1 0;
- min: 16 0;
+ min: 10 68;
align: 1.0 0.5;
- rel1{to_x: "attach_btn"; to_y: "rect"; relative: 0.0 0.0;}
- rel2{to_x: "attach_btn"; to_y: "rect"; relative: 0.0 1.0;}
+ rel1{to_x: "attach_btn"; relative: 0.0 0.0;}
+ rel2{to_x: "attach_btn"; relative: 0.0 1.0;}
}
}
part {
scale: 1;
description {
state: "default" 0.0;
- fixed: 0 0;
- min: 0 72;
- align: 1 0.5;
+ fixed: 1 1;
+ min: 68 68;
+ align: 1.0 0.75;
rel1{to_x: "title_right_padding"; to_y: "title_top_padding"; relative: 0.0 1.0;}
rel2{to_x: "title_right_padding"; to_y: "title_bottom_padding"; relative: 0.0 0.0;}
}
fixed: 1 0;
min: 16 0;
align: 1.0 0.5;
- rel1{to: "rect"; relative: 1.0 0.0;}
- rel2{to: "rect"; relative: 1.0 1.0;}
+ rel1{relative: 1.0 0.0;}
+ rel2{relative: 1.0 1.0;}
}
}
}