Implemented add friend and delete features 33/54633/2
authorpolu.sandeep <polu.sandeep@samsung.com>
Thu, 17 Dec 2015 00:31:34 +0000 (09:31 +0900)
committerSung-jae Park <nicesj@nicesj.com>
Thu, 17 Dec 2015 02:37:21 +0000 (18:37 -0800)
Change-Id: I93e9dd7ea22b24452f4cf4feb746477d90c18ec8

TelegramTizen/inc/tg_search_peer_view.h
TelegramTizen/src/telegramtizen.c
TelegramTizen/src/tg_messaging_view.c
TelegramTizen/src/tg_search_peer_view.c
TelegramTizen/tg_utils/tg_common.c
TelegramTizen/tg_utils/tg_common.h

index dc2aa69..0f4acd8 100644 (file)
@@ -11,7 +11,7 @@
 #include "tg_common.h"
 
 extern void launch_start_peer_search_view(appdata_s* ad);
-extern int on_create_new_contact(appdata_s* ad);
+extern void on_create_new_contact(appdata_s* ad);
 extern void on_new_contact_added_response_received(appdata_s *ad, int buddy_id, Eina_Bool is_success);
 
 #endif /* TG_SEARCH_PEER_VIEW_H_ */
index 3d42ace..e17c309 100644 (file)
@@ -3444,8 +3444,13 @@ void app_nf_back_cb(void *data, Evas_Object *obj, void *event_info)
                        break;
                case TG_ADD_CONTACT_STATE:
                        elm_naviframe_item_pop(ad->nf);
-                       ad->current_app_state = TG_PEER_SEARCH_VIEW_STATE;
-                       show_floating_button(ad);
+                       if (ad->is_loading_from_msg_view) {
+                               ad->is_loading_from_msg_view = EINA_FALSE;
+                               ad->current_app_state = TG_CHAT_MESSAGING_VIEW_STATE;
+                       } else {
+                               ad->current_app_state = TG_PEER_SEARCH_VIEW_STATE;
+                               show_floating_button(ad);
+                       }
                        break;
                case TG_BUDDY_LIST_SELECTION_STATE:
                        if (ad->buddy_list) {
index 893ced5..6fa6622 100644 (file)
@@ -15,6 +15,7 @@
 #include "tg_chat_info_view.h"
 #include "tg_audio_player.h"
 #include <metadata_extractor.h>
+#include "tg_search_peer_view.h"
 
 static int scroller_show_bottom_edge(Evas_Object *scroller)
 {
@@ -110,7 +111,8 @@ void on_messaging_menu_option_selected_cb(void *data, Evas_Object *obj, void *ev
        if (get_buddy_unknown_status(user_data->peer_id) && user_data->peer_type == TGL_PEER_USER) {
 
                if (id == 0) {
-                       show_toast(ad, "Add contact to ur buddies");
+                       ad->is_loading_from_msg_view = EINA_TRUE;
+                       on_create_new_contact(ad);
                } else if (id == 1) {
 #if 0
                        char* tablename = get_table_name_from_number(user_data->peer_id);
@@ -356,10 +358,12 @@ void on_messaging_menu_option_selected_cb(void *data, Evas_Object *obj, void *ev
 
        } else if (id == 2) { //Delete
                if (user_data->peer_type == TGL_PEER_USER) {
+                       show_loading_popup(ad);
                        char* tablename = get_table_name_from_number(user_data->peer_id);
                        delete_all_records(tablename);
                        free(tablename);
 
+#if 0
                        // clear all messages
                        Evas_Object *genlist = evas_object_data_get(ad->nf, "chat_list");
                        elm_genlist_clear(genlist);
@@ -395,7 +399,15 @@ void on_messaging_menu_option_selected_cb(void *data, Evas_Object *obj, void *ev
 
 
                        app_nf_back_cb(ad, NULL, NULL);
-
+#else
+                       elm_naviframe_item_pop(ad->nf);
+                       load_registered_user_data(ad);
+                       load_buddy_list_data(ad);
+                       load_unknown_buddy_list_data(ad);
+                       load_peer_data(ad);
+                       load_main_list_data(ad);
+                       ecore_timer_add(1, on_load_main_view_requested, ad);
+#endif
 
                } else if (user_data->peer_type == TGL_PEER_CHAT) {
 
index 81d6543..1305f46 100755 (executable)
@@ -364,9 +364,13 @@ static Evas_Object *_get_content_cb(void *data, Evas_Object *obj, const char *pa
 
                appdata_s *ad = evas_object_data_get(obj, "app_data");
                if (ad) {
+                       if(ad->is_loading_from_msg_view) {
+                               char temp_name[512] = {'\0'};
+                               snprintf(temp_name, 512, "%s", get_buddy_phone_num_from_id(ad->peer_in_cahtting_data->use_data->peer_id));
+                               elm_object_text_set(phone_entry, temp_name);
+                       }
                        evas_object_data_set(ad->nf, "add_contact_phone_number", phone_entry);
                }
-
                return layout;
        } else if (0 == strcmp(part, "elm.icon.2")) {
 
@@ -718,24 +722,38 @@ void add_contact_to_phone_book(appdata_s *ad)
 void on_new_contact_added_response_received(appdata_s *ad, int buddy_id, Eina_Bool is_success)
 {
        if (is_success) {
-               elm_naviframe_item_pop(ad->nf);
-               ad->current_app_state = TG_PEER_SEARCH_VIEW_STATE;
-               show_floating_button(ad);
 
-               // add new buddy to list
-               Evas_Object *peer_list = evas_object_data_get(ad->nf, "search_list");
-               if (peer_list) {
-                       elm_genlist_clear(peer_list);
-                       clear_search_list(ad);
-                       free_contact_list(ad->contact_list);
-
-                       ad->search_peer_list = load_buddy_data_by_name(ad->user_id.id, NULL);
-                       ad->contact_list = get_contact_list_from_device_db();
-
-                       _append_command_item(peer_list, ad);
-                       _append_peer_item(peer_list, ad, ad->search_peer_list);
-                       if (ad->contact_list && eina_list_count(ad->contact_list) > 0) {
-                               _append_contact_item(peer_list, ad, ad->contact_list);
+               if (ad->is_loading_from_msg_view) {
+                       show_loading_popup(ad);
+                       elm_naviframe_item_pop(ad->nf);
+                       ad->current_app_state = TG_CHAT_MESSAGING_VIEW_STATE;
+                       elm_naviframe_item_pop(ad->nf);
+                       load_registered_user_data(ad);
+                       load_buddy_list_data(ad);
+                       load_unknown_buddy_list_data(ad);
+                       load_peer_data(ad);
+                       load_main_list_data(ad);
+                       ecore_timer_add(1, on_load_main_view_requested, ad);
+               } else {
+                       elm_naviframe_item_pop(ad->nf);
+                       ad->current_app_state = TG_PEER_SEARCH_VIEW_STATE;
+                       show_floating_button(ad);
+
+                       // add new buddy to list
+                       Evas_Object *peer_list = evas_object_data_get(ad->nf, "search_list");
+                       if (peer_list) {
+                               elm_genlist_clear(peer_list);
+                               clear_search_list(ad);
+                               free_contact_list(ad->contact_list);
+
+                               ad->search_peer_list = load_buddy_data_by_name(ad->user_id.id, NULL);
+                               ad->contact_list = get_contact_list_from_device_db();
+
+                               _append_command_item(peer_list, ad);
+                               _append_peer_item(peer_list, ad, ad->search_peer_list);
+                               if (ad->contact_list && eina_list_count(ad->contact_list) > 0) {
+                                       _append_contact_item(peer_list, ad, ad->contact_list);
+                               }
                        }
                }
        } else {
@@ -774,15 +792,22 @@ static void on_new_contact_done_clicked(void *data, Evas_Object *obj, void *even
 static void on_new_contact_cancel_clicked(void *data, Evas_Object *obj, void *event_info)
 {
        appdata_s* ad = data;
+       if (!ad)
+               return;
        elm_naviframe_item_pop(ad->nf);
-       ad->current_app_state = TG_PEER_SEARCH_VIEW_STATE;
-       show_floating_button(ad);
+       if (ad->is_loading_from_msg_view) {
+               ad->is_loading_from_msg_view = EINA_FALSE;
+               ad->current_app_state = TG_CHAT_MESSAGING_VIEW_STATE;
+       } else {
+               ad->current_app_state = TG_PEER_SEARCH_VIEW_STATE;
+               show_floating_button(ad);
+       }
 }
 
-int on_create_new_contact(appdata_s* ad)
+void on_create_new_contact(appdata_s* ad)
 {
        if (!ad)
-               return 0;
+               return;
 
        delete_floating_button(ad);
        ad->current_app_state = TG_ADD_CONTACT_STATE;
index 13102b3..14da405 100644 (file)
@@ -433,6 +433,7 @@ void on_floating_icon_clicked(void *data, Evas_Object *obj, void *event_info)
        switch(ad->current_app_state) {
        case TG_PEER_SEARCH_VIEW_STATE:
                //elm_image_file_set(image, ui_utils_get_resource(TG_ICON_FLOATING_PENCIL), NULL);
+               ad->is_loading_from_msg_view = EINA_FALSE;
                on_create_new_contact(ad);
                //delete_floating_button(ad);
                break;
index 79c0724..830e318 100644 (file)
@@ -584,6 +584,7 @@ typedef struct appdata {
        //int msg_count;
        Eina_List *contact_list;
        Elm_Naviframe_Item *main_item;
+       Eina_Bool is_loading_from_msg_view;
 } appdata_s;
 
 extern void show_toast(appdata_s* ad, char* value);