From 56c7ec6204f4ffd284fbc334606524e8bbf24e44 Mon Sep 17 00:00:00 2001 From: "polu.sandeep" Date: Thu, 24 Dec 2015 11:02:33 +0900 Subject: [PATCH] implmeneted Image + text feature Change-Id: I43036a6e5331b4a7f04e40e1595c2a6b6c2e2707 --- TelegramTizen/inc/tg_messaging_view.h | 4 ++-- TelegramTizen/src/telegramtizen.c | 11 +++++++++-- TelegramTizen/src/tg_messaging_view.c | 20 +++++++++++++++++--- tg-engine-service/inc/server_response.h | 4 ++-- tg-engine-service/src/server_response.c | 28 ++++++++++++++++++++++++++-- tg-engine-service/tg_engine/tg_engine.c | 12 ++++++------ 6 files changed, 62 insertions(+), 17 deletions(-) diff --git a/TelegramTizen/inc/tg_messaging_view.h b/TelegramTizen/inc/tg_messaging_view.h index 3da1a20..d514009 100644 --- a/TelegramTizen/inc/tg_messaging_view.h +++ b/TelegramTizen/inc/tg_messaging_view.h @@ -13,8 +13,8 @@ extern void launch_messaging_view_cb(appdata_s* ad, int user_id); extern void on_text_message_received_from_buddy(appdata_s* ad, long long message_id, int type_of_chat); extern void on_text_message_state_changed(appdata_s* ad, tg_message_s *msg, int type_of_chat); -extern void on_video_thumb_download_completed(appdata_s* ad, int buddy_id, long long media_id, const char* file_path); -extern void on_media_download_completed(appdata_s* ad, int buddy_id, long long media_id, const char* file_path); +extern void on_video_thumb_download_completed(appdata_s* ad, int buddy_id, long long media_id, const char* file_path, const char *caption); +extern void on_media_download_completed(appdata_s* ad, int buddy_id, long long media_id, const char* file_path, const char *caption); extern void on_user_presence_state_changed(appdata_s* ad, int buddy_id); extern void on_user_status_changed(appdata_s* ad, char* status); extern void on_group_chat_info_changed(appdata_s *ad, char *type_of_change); diff --git a/TelegramTizen/src/telegramtizen.c b/TelegramTizen/src/telegramtizen.c index ea92e4c..33eeee4 100644 --- a/TelegramTizen/src/telegramtizen.c +++ b/TelegramTizen/src/telegramtizen.c @@ -2312,10 +2312,14 @@ static int on_media_message_download_completed(appdata_s *app, bundle *const rec show_toast(app, "media download failed."); } + char* caption = NULL; + result = bundle_get_str(rec_msg, "caption", &caption); + + if (file_name && app->current_app_state == TG_CHAT_MESSAGING_VIEW_STATE && app->peer_in_cahtting_data && app->peer_in_cahtting_data->use_data->peer_id == to_id) { // update media to sent state - on_media_download_completed(app, buddy_id, media_id, file_name); + on_media_download_completed(app, buddy_id, media_id, file_name, caption); } return result; } @@ -2338,10 +2342,13 @@ static int on_video_message_thumb_download_completed(appdata_s *app, bundle *con char* file_name = NULL; result = bundle_get_str(rec_msg, "file_name", &file_name); + char* caption = NULL; + result = bundle_get_str(rec_msg, "caption", &caption); + if (file_name && app->current_app_state == TG_CHAT_MESSAGING_VIEW_STATE && app->peer_in_cahtting_data && app->peer_in_cahtting_data->use_data->peer_id == to_id) { // update thumbnail icon - on_video_thumb_download_completed(app, buddy_id, media_id, file_name); + on_video_thumb_download_completed(app, buddy_id, media_id, file_name, caption); } return result; } diff --git a/TelegramTizen/src/tg_messaging_view.c b/TelegramTizen/src/tg_messaging_view.c index 04c7dbc..8e33cb6 100644 --- a/TelegramTizen/src/tg_messaging_view.c +++ b/TelegramTizen/src/tg_messaging_view.c @@ -1512,6 +1512,7 @@ Evas_Object *on_message_item_content_get_cb(void *data, Evas_Object *obj, const // To be handled for group chat Eina_Strbuf *buf = eina_strbuf_new(); + char *caption = NULL; if (msg->media_type == tgl_message_media_none) { char *temp_msg = replace(msg->message, '\n', "
"); @@ -1523,6 +1524,9 @@ Evas_Object *on_message_item_content_get_cb(void *data, Evas_Object *obj, const elm_entry_item_provider_append(entry, item_provider, chat_scroller); tgl_media_s *media_msg = get_media_details_from_db(atoll(msg->media_id)); + if (media_msg->caption && strlen(media_msg) > 0) { + caption = strdup(media_msg->caption); + } if (msg->out) { if (media_msg) { if (strstr(media_msg->doc_type, "audio") != NULL) { @@ -1555,6 +1559,9 @@ Evas_Object *on_message_item_content_get_cb(void *data, Evas_Object *obj, const } else if(msg->media_type == tgl_message_media_geo) { tgl_media_s *media_msg = get_media_details_from_db(atoll(msg->media_id)); + if (media_msg->caption && strlen(media_msg) > 0) { + caption = strdup(media_msg->caption); + } char loc_url[4*256] = {0,}; if (media_msg) { snprintf(loc_url, sizeof(loc_url), "https://maps.google.com/?q=%s,%s", media_msg->latitude, media_msg->longitude); @@ -1573,6 +1580,9 @@ Evas_Object *on_message_item_content_get_cb(void *data, Evas_Object *obj, const } else if(msg->media_type == tgl_message_media_contact) { tgl_media_s *media_msg = get_media_details_from_db(atoll(msg->media_id)); + if (media_msg->caption && strlen(media_msg) > 0) { + caption = strdup(media_msg->caption); + } if (media_msg) { char temp_msg[4*256] = {0,}; @@ -1593,6 +1603,10 @@ Evas_Object *on_message_item_content_get_cb(void *data, Evas_Object *obj, const } ad->loaded_msg_list = eina_list_append(ad->loaded_msg_list, entry); + if (caption) { + // implement UI. + free(caption); + } //set time time_t t = msg->date; @@ -1750,7 +1764,7 @@ void on_text_message_received_from_buddy(appdata_s* ad, long long message_id, in } -void on_media_download_completed(appdata_s* ad, int buddy_id, long long media_id, const char* file_path) +void on_media_download_completed(appdata_s* ad, int buddy_id, long long media_id, const char *file_path, const char *caption) { if (!ad) return; @@ -1855,9 +1869,9 @@ void on_media_download_completed(appdata_s* ad, int buddy_id, long long media_id //elm_object_part_content_set(comp_img_layout, "swallow.chat_send_image", image); -void on_video_thumb_download_completed(appdata_s* ad, int buddy_id, long long media_id, const char* file_path) +void on_video_thumb_download_completed(appdata_s* ad, int buddy_id, long long media_id, const char* file_path, const char *caption) { - on_media_download_completed(ad, buddy_id, media_id, file_path); + on_media_download_completed(ad, buddy_id, media_id, file_path, caption); } void on_text_message_state_changed(appdata_s* ad, tg_message_s *msg, int type_of_chat) diff --git a/tg-engine-service/inc/server_response.h b/tg-engine-service/inc/server_response.h index 00b87f8..c2b3b02 100644 --- a/tg-engine-service/inc/server_response.h +++ b/tg-engine-service/inc/server_response.h @@ -56,8 +56,8 @@ extern void send_message_sent_to_buddy_response(tg_engine_data_s *tg_data, int b extern void send_group_chat_deleted_response(tg_engine_data_s *tg_data, int chat_id, Eina_Bool is_success); extern void send_selected_group_chats_deleted_response(tg_engine_data_s *tg_data); extern void send_message_read_by_buddy_response(tg_engine_data_s *tg_data, int buddy_id, int message_id, char* table_name, char* phone, int type_of_chat); -extern void send_media_download_completed_response(tg_engine_data_s *tg_data, int buddy_id, int to_id, long long media_id, const char* filename); -extern void send_video_thumb_download_completed_response(tg_engine_data_s *tg_data, int buddy_id, int to_id, long long media_id, const char* filename); +extern void send_media_download_completed_response(tg_engine_data_s *tg_data, int buddy_id, int to_id, long long media_id, const char* filename, const char *caption); +extern void send_video_thumb_download_completed_response(tg_engine_data_s *tg_data, int buddy_id, int to_id, long long media_id, const char* filename, const char* caption); extern void send_new_group_added_response(tg_engine_data_s *tg_data, int chat_id); extern void send_new_buddy_added_response(tg_engine_data_s *tg_data, int buddy_id); extern void send_group_chat_updated_response(tg_engine_data_s *tg_data, int chat_id, const char *type_of_change); diff --git a/tg-engine-service/src/server_response.c b/tg-engine-service/src/server_response.c index cb9b216..02f1fe2 100644 --- a/tg-engine-service/src/server_response.c +++ b/tg-engine-service/src/server_response.c @@ -1447,7 +1447,7 @@ void send_message_sent_to_buddy_response(tg_engine_data_s *tg_data, int buddy_id bundle_free(msg); } -void send_video_thumb_download_completed_response(tg_engine_data_s *tg_data, int buddy_id, int to_id, long long media_id, const char* filename) +void send_video_thumb_download_completed_response(tg_engine_data_s *tg_data, int buddy_id, int to_id, long long media_id, const char* filename, const char* caption) { bundle *msg = bundle_create(); if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0) { @@ -1496,6 +1496,18 @@ void send_video_thumb_download_completed_response(tg_engine_data_s *tg_data, int } } + if (caption) { + if (bundle_add_str(msg, "caption", caption) != 0) { + ERR("Failed to add data by key to bundle"); + bundle_free(msg); + } + } else { + if (bundle_add_str(msg, "caption", "") != 0) { + ERR("Failed to add data by key to bundle"); + bundle_free(msg); + } + } + int result = SVC_RES_FAIL; result = tg_server_send_message(tg_data->tg_server, msg); @@ -1505,7 +1517,7 @@ void send_video_thumb_download_completed_response(tg_engine_data_s *tg_data, int bundle_free(msg); } -void send_media_download_completed_response(tg_engine_data_s *tg_data, int buddy_id, int to_id, long long media_id, const char* filename) +void send_media_download_completed_response(tg_engine_data_s *tg_data, int buddy_id, int to_id, long long media_id, const char* filename, const char *caption) { bundle *msg = bundle_create(); if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0) { @@ -1554,6 +1566,18 @@ void send_media_download_completed_response(tg_engine_data_s *tg_data, int buddy } } + if (caption) { + if (bundle_add_str(msg, "caption", caption) != 0) { + ERR("Failed to add data by key to bundle"); + bundle_free(msg); + } + } else { + if (bundle_add_str(msg, "caption", "") != 0) { + ERR("Failed to add data by key to bundle"); + bundle_free(msg); + } + } + int result = SVC_RES_FAIL; result = tg_server_send_message(tg_data->tg_server, msg); diff --git a/tg-engine-service/tg_engine/tg_engine.c b/tg-engine-service/tg_engine/tg_engine.c index b2821b5..d5a4228 100644 --- a/tg-engine-service/tg_engine/tg_engine.c +++ b/tg-engine-service/tg_engine/tg_engine.c @@ -1112,7 +1112,7 @@ void on_video_thumb_loaded(struct tgl_state *TLS, void *callback_extra, int succ update_video_thumb_in_db(media_id, filename); tg_engine_data_s *tg_data = TLS->callback_data; if (M->from_id.id == tg_data->id.id) { - send_video_thumb_download_completed_response(tg_data, M->from_id.id, M->to_id.id, media_id, filename); + send_video_thumb_download_completed_response(tg_data, M->from_id.id, M->to_id.id, media_id, filename, NULL); } else { send_message_received_response(TLS->callback_data, M->from_id.id, M->to_id.id, M->id, tgl_get_peer_type(M->to_id)); } @@ -2373,11 +2373,11 @@ void on_image_download_completed(struct tgl_state *TLS, void *callback_extra, in if(photo_prop && filename) { update_receive_media_info_in_db(media_id, filename); //send response to application - send_media_download_completed_response(tg_data, buddy_id, to_id, media_id, filename); + send_media_download_completed_response(tg_data, buddy_id, to_id, media_id, filename, photo_prop->caption); free(photo_prop); } } else { - send_media_download_completed_response(tg_data, buddy_id, to_id, media_id, NULL); + send_media_download_completed_response(tg_data, buddy_id, to_id, media_id, NULL, NULL); } } @@ -2392,10 +2392,10 @@ void on_document_download_completed(struct tgl_state *TLS, void *callback_extra, if(doc_prop && filename) { update_receive_media_info_in_db(media_id, filename); //send response to application - send_media_download_completed_response(tg_data, buddy_id, to_id, media_id, filename); + send_media_download_completed_response(tg_data, buddy_id, to_id, media_id, filename, doc_prop->caption); } } else { - send_media_download_completed_response(tg_data, buddy_id, to_id, media_id, NULL); + send_media_download_completed_response(tg_data, buddy_id, to_id, media_id, NULL, NULL); } if (doc_prop) { @@ -2898,7 +2898,7 @@ void media_download_request(tg_engine_data_s *tg_data, int buddy_id, long long m struct tgl_media* img_details = get_media_details_from_db(media_id); if(!img_details) { - send_media_download_completed_response(tg_data, -1, buddy_id, media_id, NULL); + send_media_download_completed_response(tg_data, -1, buddy_id, media_id, NULL, NULL); return; } else { -- 2.7.4