From 2221f4c28811c837add57ca4979abccd45c4c153 Mon Sep 17 00:00:00 2001 From: "polu.sandeep" Date: Thu, 17 Dec 2015 09:31:34 +0900 Subject: [PATCH] Implemented add friend and delete features Change-Id: I93e9dd7ea22b24452f4cf4feb746477d90c18ec8 --- TelegramTizen/inc/tg_search_peer_view.h | 2 +- TelegramTizen/src/telegramtizen.c | 9 ++++- TelegramTizen/src/tg_messaging_view.c | 16 +++++++- TelegramTizen/src/tg_search_peer_view.c | 69 ++++++++++++++++++++++----------- TelegramTizen/tg_utils/tg_common.c | 1 + TelegramTizen/tg_utils/tg_common.h | 1 + 6 files changed, 71 insertions(+), 27 deletions(-) diff --git a/TelegramTizen/inc/tg_search_peer_view.h b/TelegramTizen/inc/tg_search_peer_view.h index dc2aa69..0f4acd8 100644 --- a/TelegramTizen/inc/tg_search_peer_view.h +++ b/TelegramTizen/inc/tg_search_peer_view.h @@ -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_ */ diff --git a/TelegramTizen/src/telegramtizen.c b/TelegramTizen/src/telegramtizen.c index 3d42ace..e17c309 100644 --- a/TelegramTizen/src/telegramtizen.c +++ b/TelegramTizen/src/telegramtizen.c @@ -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) { diff --git a/TelegramTizen/src/tg_messaging_view.c b/TelegramTizen/src/tg_messaging_view.c index 893ced5..6fa6622 100644 --- a/TelegramTizen/src/tg_messaging_view.c +++ b/TelegramTizen/src/tg_messaging_view.c @@ -15,6 +15,7 @@ #include "tg_chat_info_view.h" #include "tg_audio_player.h" #include +#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) { diff --git a/TelegramTizen/src/tg_search_peer_view.c b/TelegramTizen/src/tg_search_peer_view.c index 81d6543..1305f46 100755 --- a/TelegramTizen/src/tg_search_peer_view.c +++ b/TelegramTizen/src/tg_search_peer_view.c @@ -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; diff --git a/TelegramTizen/tg_utils/tg_common.c b/TelegramTizen/tg_utils/tg_common.c index 13102b3..14da405 100644 --- a/TelegramTizen/tg_utils/tg_common.c +++ b/TelegramTizen/tg_utils/tg_common.c @@ -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; diff --git a/TelegramTizen/tg_utils/tg_common.h b/TelegramTizen/tg_utils/tg_common.h index 79c0724..830e318 100644 --- a/TelegramTizen/tg_utils/tg_common.h +++ b/TelegramTizen/tg_utils/tg_common.h @@ -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); -- 2.7.4