implmeneted Image + text feature 67/55467/1
authorpolu.sandeep <polu.sandeep@samsung.com>
Thu, 24 Dec 2015 02:02:33 +0000 (11:02 +0900)
committerpolu.sandeep <polu.sandeep@samsung.com>
Thu, 24 Dec 2015 02:02:33 +0000 (11:02 +0900)
Change-Id: I43036a6e5331b4a7f04e40e1595c2a6b6c2e2707

TelegramTizen/inc/tg_messaging_view.h
TelegramTizen/src/telegramtizen.c
TelegramTizen/src/tg_messaging_view.c
tg-engine-service/inc/server_response.h
tg-engine-service/src/server_response.c
tg-engine-service/tg_engine/tg_engine.c

index 3da1a20..d514009 100644 (file)
@@ -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);
index ea92e4c..33eeee4 100644 (file)
@@ -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;
 }
index 04c7dbc..8e33cb6 100644 (file)
@@ -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', "<br>");
@@ -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)
index 00b87f8..c2b3b02 100644 (file)
@@ -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);
index cb9b216..02f1fe2 100644 (file)
@@ -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);
 
index b2821b5..d5a4228 100644 (file)
@@ -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 {