Made UI changes as per UX guidelines. 71/49671/1
authorpolu.sandeep <polu.sandeep@samsung.com>
Sat, 17 Oct 2015 11:38:52 +0000 (20:38 +0900)
committerpolu.sandeep <polu.sandeep@samsung.com>
Sat, 17 Oct 2015 11:38:52 +0000 (20:38 +0900)
Change-Id: I9ab30cc42bdf415436c5bd92b949708b4e600730

13 files changed:
TelegramTizen/inc/tg_db_wrapper.h
TelegramTizen/res/edje/telegram_init_screen.edc
TelegramTizen/res/images/telegram_thumb_add.png [new file with mode: 0644]
TelegramTizen/src/telegramtizen.c
TelegramTizen/src/tg_db_wrapper.c
TelegramTizen/src/tg_messaging_view.c
TelegramTizen/src/tg_search_peer_view.c
TelegramTizen/src/tg_start_messaging_view.c
TelegramTizen/src/tg_user_main_view.c
TelegramTizen/tg_utils/tg_common.c
TelegramTizen/tg_utils/tg_common.h
tg-engine-service/inc/tg_db_wrapper.h
tg-engine-service/src/tg_db_wrapper.c

index 8ff7ed9..6e0c1b2 100644 (file)
@@ -262,6 +262,8 @@ int get_media_size_from_db(long long media_id);
 
 int get_number_of_unread_messages();
 
+Eina_List* load_buddy_data_by_name(int current_user, char* name);
+Eina_List* get_all_buddy_details(char* name);
 
 void create_buddy_msg_table(const char* table_name);
 
index 16c4a62..0acac27 100644 (file)
@@ -613,7 +613,7 @@ collections {
                                state: "default" 0.0;
                        rel1 { relative: 0.0 0.0; }
                        rel2 { relative: 1.0 1.0; }
-                       color: 255 255 255 255;
+                       color: 0 0 0 0;
                        }
                }
                part {
@@ -623,7 +623,7 @@ collections {
                                state: "default" 0.0;
                        rel1 { relative: 0.0 0.0; }
                        rel2 { relative: 1.0 1.0; }
-                       color: 222 222 100 222;
+                       color: 0 0 0 0;
                        }
                }
                part {
@@ -815,7 +815,7 @@ collections {
                 state: default 0.0;
                rel1.relative: 0.0 0.05;
                rel2.relative: 1.0 0.95;
-               color: 250 250 250 255;
+               color: 250 250 250 0;
             }
          }
          part { 
@@ -837,7 +837,7 @@ collections {
                 state: default 0.0;
                rel1.relative: 0.0 0.0;
                rel2.relative: 1.0 1.0;
-               color: 250 250 250 255;
+               color: 250 250 250 0;
             }
          }
          part { 
@@ -881,6 +881,56 @@ collections {
     }
        
        
+       group { 
+         name: "menu_circle_layout";
+      parts {
+          part { 
+            name: masking_bg;
+            type: RECT;
+            precise_is_inside: 1;
+            description {
+                state: default 0.0;
+               rel1.relative: 0.0 0.05;
+               rel2.relative: 1.0 0.95;
+               color: 250 250 250 0;
+            }
+         }
+         part { 
+            name: masking;
+            type: IMAGE;
+            precise_is_inside: 1;
+            description { 
+               state: default 0.0;
+               rel1.relative: 0.0 0.05;
+               rel2.relative: 1.0 0.95;
+               image.normal: camera_btn_gallery_mask.png;
+            }
+         }
+         part { 
+            name: content_bg;
+            type: RECT;
+            clip_to: masking;
+            description {
+                state: default 0.0;
+               rel1.relative: 0.0 0.0;
+               rel2.relative: 1.0 1.0;
+               color: 45 165 224 255;
+            }
+         }
+         part { 
+            name: content;
+            type: SWALLOW;
+            clip_to: masking;
+            description {
+                state: default 0.0;
+               rel1.relative: 0.0 0.0;
+               rel2.relative: 1.0 1.0;
+            }
+         }
+      }
+    }
+       
+       
        group {
          name: "start_messaging_layout";
                parts {
@@ -1838,7 +1888,7 @@ group
                min: 0 130;
                rel1.relative: 0.0 0.0;
                rel2.relative: 1.0 1.0;
-               color: 0 0 0 0;               
+               color: 0 0 0 0;
             }
          }
       }
diff --git a/TelegramTizen/res/images/telegram_thumb_add.png b/TelegramTizen/res/images/telegram_thumb_add.png
new file mode 100644 (file)
index 0000000..d3e7ca3
Binary files /dev/null and b/TelegramTizen/res/images/telegram_thumb_add.png differ
index 638de85..6086bef 100644 (file)
@@ -2566,11 +2566,6 @@ void app_nf_back_cb(void *data, Evas_Object *obj, void *event_info)
                        elm_naviframe_item_pop(ad->nf);
                        ad->current_app_state = TG_SET_CHAT_INFO_STATE;
                        break;
-               case TG_PEER_SEARCH_VIEW_STATE:
-                       elm_naviframe_item_pop(ad->nf);
-                       create_floating_button(ad);
-                       ad->current_app_state = TG_USER_MAIN_VIEW_STATE;
-                       break;
                case TG_SET_USERNAME_STATE:
                        elm_naviframe_item_pop(ad->nf);
                        ad->current_app_state = TG_SETTINGS_SCREEN_STATE;
@@ -2584,6 +2579,7 @@ void app_nf_back_cb(void *data, Evas_Object *obj, void *event_info)
                        elm_naviframe_item_pop(ad->nf);
                        ad->current_app_state = TG_CHAT_MESSAGING_VIEW_STATE;
                        break;
+               case TG_PEER_SEARCH_VIEW_STATE:
                case TG_START_MESSAGING_VIEW_STATE:
                case TG_SETTINGS_SCREEN_STATE:
                        elm_naviframe_item_pop(ad->nf);
@@ -2638,10 +2634,7 @@ void app_nf_back_cb(void *data, Evas_Object *obj, void *event_info)
                                }
                        }
                        elm_naviframe_item_pop(ad->nf);
-                       ad->current_app_state = TG_BUDDY_LIST_STATE;
-                       //evas_object_show(ad->panel);
-                       //elm_panel_hidden_set(ad->panel, EINA_FALSE);
-                       //refresh_buddy_list(ad);
+                       ad->current_app_state = TG_PEER_SEARCH_VIEW_STATE;
                        break;
                case TG_GROUP_CHAT_NAME_ENTRY_STATE:
                        if (ad->buddy_list) {
@@ -2728,7 +2721,7 @@ static void create_base_gui(appdata_s *ad)
        app_get_resource(TELEGRAM_CUSTOM_WINSET_EDJ, edj_path, (int)PATH_MAX);
 
        Elm_Theme *theme = elm_theme_new();
-       elm_theme_extension_add(theme, edj_path);
+       elm_theme_extension_add(NULL, edj_path);
        ad->theme = theme;
        evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL);
 
index b008b43..0377f6b 100644 (file)
@@ -9,6 +9,7 @@
 
 void create_data_base_tables()
 {
+#if 0
        char* table_name = USER_INFO_TABLE_NAME;
        Eina_List* col_names = NULL;
        col_names = eina_list_append(col_names, USER_INFO_TABLE_USER_ID);
@@ -406,7 +407,7 @@ void create_data_base_tables()
 
        eina_list_free(col_names);
        eina_list_free(col_types);
-
+#endif
 }
 
 
@@ -1031,7 +1032,7 @@ Eina_List* get_buddy_list_info()
        strcat(where_clause, " = ");
        strcat(where_clause, unknown_str);
 
-       user_details = get_values_from_table_sync_order_by(table_name, col_names, col_types, USER_INFO_TABLE_PRINT_NAME, EINA_TRUE, where_clause);
+       user_details = get_values_from_table_sync_order_by(table_name, col_names, col_types, USER_INFO_TABLE_FIRST_NAME, EINA_TRUE, where_clause);
 
        eina_list_free(col_names);
        eina_list_free(col_types);
@@ -1894,7 +1895,7 @@ int insert_current_date_to_table(char* tb_name)
                        time_t t = cur_time;
 
                        char *format = NULL;
-                       format = "%d %B %Y";
+                       format = "%a, %d%b. %Y";
 
                        struct tm lt;
                        char res[256];
@@ -1928,7 +1929,7 @@ int insert_current_date_to_table(char* tb_name)
                time_t t = cur_time;
 
                char *format = NULL;
-               format = "%d %B %Y";
+               format = "%a, %d%b. %Y";
 
                struct tm lt;
                char res[256];
@@ -3096,6 +3097,246 @@ Eina_List* get_image_details_from_db(long long media_id)
        return vals;
 }
 
+Eina_List* get_all_buddy_details(char* start_name)
+{
+
+       Eina_List* user_details = NULL;
+       if (!start_name)
+       {
+               start_name = "";
+       }
+
+       char* table_name = BUDDY_INFO_TABLE_NAME;
+       Eina_List* col_names = NULL;
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_USER_ID);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_PRINT_NAME);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_STRUCTURE_VERSION);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_PHOTO_PATH);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_PHOTO_ID);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_FIRST_NAME);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_LAST_NAME);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_PHONE_NO);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_ACCESS_HASH);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_REAL_FIRST_NAME);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_REAL_LAST_NAME);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_USER_NAME);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_ONLINE_STATUS);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_LAST_SEEN_TIME);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_IS_BLOCKED);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_IS_DELETED);
+       col_names = eina_list_append(col_names, USER_INFO_TABLE_IS_UNKNOWN_PEER);
+
+
+       Eina_List* col_types = NULL;
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+       int unknown = 0;
+       char unknown_str[50];
+       sprintf(unknown_str, "%d", unknown);
+
+       char* where_clause = (char*)malloc(strlen(" ( ") + strlen(USER_INFO_TABLE_IS_UNKNOWN_PEER) + strlen(" = ") + strlen(unknown_str) + strlen(" AND ") + strlen(USER_INFO_TABLE_IS_DELETED) + strlen(" = ") + strlen(unknown_str) + strlen(" ) ") + strlen(" AND (") + strlen(USER_INFO_TABLE_PRINT_NAME) + strlen(" LIKE '") + strlen(start_name) + strlen("%' )") + 1);
+       strcpy(where_clause, " ( ");
+       strcat(where_clause, USER_INFO_TABLE_IS_UNKNOWN_PEER);
+       strcat(where_clause, " = ");
+       strcat(where_clause, unknown_str);
+       strcat(where_clause, " AND ");
+       strcat(where_clause, USER_INFO_TABLE_IS_DELETED);
+       strcat(where_clause, " = ");
+       strcat(where_clause, unknown_str);
+       strcat(where_clause, " ) ");
+
+       strcat(where_clause, " AND (");
+       strcat(where_clause, USER_INFO_TABLE_PRINT_NAME);
+       strcat(where_clause, " LIKE '");
+       strcat(where_clause, start_name);
+       strcat(where_clause, "%' )");
+
+       user_details = get_values_from_table_sync_order_by(table_name, col_names, col_types, USER_INFO_TABLE_FIRST_NAME, EINA_TRUE, where_clause);
+
+       eina_list_free(col_names);
+       eina_list_free(col_types);
+       free(where_clause);
+
+       return user_details;
+
+}
+
+Eina_List* load_buddy_data_by_name(int current_user, char* name)
+{
+       Eina_List* buddy_list = NULL;
+       Eina_List* user_info = get_all_buddy_details(name);
+
+       if (!user_info) {
+               return buddy_list;
+       }
+
+       int row_count = eina_list_count(user_info);
+
+       for (int i = 0 ; i < row_count ; i++) {
+               Eina_List* row_vals = eina_list_nth(user_info, i);
+
+               int *temp_user_id = (int*)eina_list_nth(row_vals, 0);
+
+               if (current_user == (*temp_user_id)) {
+                       for (int i = 0 ; i < eina_list_count(row_vals); i++) {
+                               void* val = eina_list_nth(row_vals, i);
+                               free(val);
+                       }
+                       continue;
+               }
+
+               user_data_s* user_data = (user_data_s*)malloc(sizeof(user_data_s));
+               user_data->is_selected = EINA_FALSE;
+
+
+               if (temp_user_id) {
+                       user_data->user_id.id = *temp_user_id;
+                       user_data->user_id.type = TGL_PEER_USER;
+                       free(temp_user_id);
+               }
+
+               char *print_name = (char*)eina_list_nth(row_vals, 1);
+               if(print_name) {
+                       user_data->print_name = strdup(print_name);
+                       free(print_name);
+               } else {
+                       user_data->print_name = NULL;
+               }
+
+               int *temp_struct_ver = (int*)eina_list_nth(row_vals, 2);
+               if(temp_struct_ver) {
+                       user_data->structure_version = *temp_struct_ver;
+                       free(temp_struct_ver);
+               }
+
+               char *photo_path = (char*)eina_list_nth(row_vals, 3);
+               if(photo_path) {
+                       user_data->photo_path = strdup(photo_path);
+                       free(photo_path);
+               } else {
+                       user_data->photo_path = NULL;
+               }
+
+
+               int *temp_photo_id = (int*)eina_list_nth(row_vals, 4);
+               if(temp_photo_id) {
+                       user_data->photo_id = *temp_photo_id;
+                       free(temp_photo_id);
+               }
+
+               char *first_name = (char*)eina_list_nth(row_vals, 5);
+               if(first_name) {
+                       user_data->first_name = strdup(first_name);
+                       free(first_name);
+               } else {
+                       user_data->first_name = NULL;
+               }
+
+               char *last_name = (char*)eina_list_nth(row_vals, 6);
+               if(last_name) {
+                       user_data->last_name = strdup(last_name);
+                       free(last_name);
+               } else {
+                       user_data->last_name = NULL;
+               }
+
+               char *phone_no = (char*)eina_list_nth(row_vals, 7);
+               if(phone_no) {
+                       user_data->phone = strdup(phone_no);
+                       free(phone_no);
+               } else {
+                       user_data->phone = NULL;
+               }
+
+               int *temp_access_hash = (int*)eina_list_nth(row_vals, 8);
+               if(temp_access_hash) {
+                       user_data->access_hash = *temp_access_hash;
+                       free(temp_access_hash);
+               }
+
+               char *real_first_name = (char*)eina_list_nth(row_vals, 9);
+               if(real_first_name) {
+                       user_data->real_first_name = strdup(real_first_name);
+                       free(real_first_name);
+               } else {
+                       user_data->real_first_name = NULL;
+               }
+
+               char *real_last_name = (char*)eina_list_nth(row_vals, 10);
+               if(real_last_name) {
+                       user_data->real_last_name = strdup(real_last_name);
+                       free(real_last_name);
+               } else {
+                       user_data->real_last_name = NULL;
+               }
+
+               char *user_name = (char*)eina_list_nth(row_vals, 11);
+               if(user_name) {
+                       user_data->username = strdup(user_name);
+                       free(user_name);
+               } else {
+                       user_data->username = NULL;
+               }
+
+               int *temp_online_status = (int*)eina_list_nth(row_vals, 12);
+               if(temp_online_status) {
+                       user_data->online = *temp_online_status;
+                       free(temp_online_status);
+               }
+
+               int *temp_last_seen = (int*)eina_list_nth(row_vals, 13);
+               if(temp_last_seen) {
+                       user_data->last_seen = *temp_last_seen;
+                       free(temp_last_seen);
+               }
+
+               int *temp_is_blocked = (int*)eina_list_nth(row_vals, 14);
+               if(temp_is_blocked) {
+                       user_data->is_blocked = *temp_is_blocked;
+                       free(temp_is_blocked);
+               }
+
+               int *temp_is_deleted = (int*)eina_list_nth(row_vals, 15);
+               if(temp_is_deleted) {
+                       user_data->is_deleted = *temp_is_deleted;
+                       free(temp_is_deleted);
+               }
+
+               int *temp_is_unknown = (int*)eina_list_nth(row_vals, 16);
+               if(temp_is_unknown) {
+                       user_data->is_unknown = *temp_is_unknown;
+                       free(temp_is_unknown);
+               }
+
+               user_data_with_pic_s *item = (user_data_with_pic_s*) malloc(sizeof (user_data_with_pic_s));
+               item->use_data = user_data;
+               //item->pic_file_location = NULL;
+               item->contact_icon = NULL;
+               buddy_list = eina_list_append(buddy_list, item);
+
+               eina_list_free(row_vals);
+
+       }
+       eina_list_free(user_info);
+       return buddy_list;
+}
+
 
 Eina_List* load_peer_data_by_name(char* name)
 {
index 0546713..9d70b5e 100644 (file)
@@ -880,9 +880,9 @@ Evas_Object *on_message_item_content_get_cb(void *data, Evas_Object *obj, const
 
                        //elm_entry_magnifier_disabled_set(entry, EINA_TRUE);
                        // FIXME: Deprecated API
-                       //elm_entry_selection_handler_disabled_set(entry, EINA_TRUE);
+                       elm_entry_selection_handler_disabled_set(entry, EINA_TRUE);
 
-                       elm_object_theme_set(layout, ad->theme);
+                       //elm_object_theme_set(layout, ad->theme);
 
                        char *sender_name = NULL;
                        if(msg->out) {
@@ -2036,21 +2036,38 @@ Eina_Bool load_chat_history(Evas_Object *chat_list)
 void on_gallery_app_control_reply_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data)
 {
        if (result == APP_CONTROL_RESULT_SUCCEEDED) {
-
                Evas_Object* chat_list = user_data;
                char* file_path = NULL;
                char** path_arryay = NULL;
                int array_length = 0;
-               app_control_get_extra_data_array(reply, APP_CONTROL_DATA_SELECTED, &path_arryay,  &array_length);
-
+               int status;
                char* mime_type = NULL;
-               app_control_get_mime(reply, &mime_type);
+               appdata_s* ad = evas_object_data_get(chat_list, "app_data");
+
+               status = app_control_get_extra_data_array(reply, APP_CONTROL_DATA_SELECTED, &path_arryay,  &array_length);
+               if (status != APP_CONTROL_ERROR_NONE) {
+                       status = app_control_get_extra_data_array(reply, APP_CONTROL_DATA_PATH, &path_arryay,  &array_length);
+                       if (status != APP_CONTROL_ERROR_NONE) {
+                               if (ad) {
+                                       show_toast(ad, "Unable to get the result from attach panel");
+                               }
+                               return;
+                       }
+               }
+
+               status = app_control_get_mime(reply, &mime_type);
+               if (status != APP_CONTROL_ERROR_NONE) {
+                       if (ad) {
+                               show_toast(ad, "Unable to get the mime type from attach panel");
+                       }
+                       return;
+               }
 
                for(int i = 0 ; i < array_length ; i++) {
                        file_path = strdup(path_arryay[i]);
                        send_media_message_to_buddy(chat_list, file_path, tgl_message_media_photo);
                        free(file_path);
-                       break;
+                       //break;
                }
        }
 }
@@ -2084,13 +2101,33 @@ void on_video_app_control_reply_cb(app_control_h request, app_control_h reply, a
                char* file_path = NULL;
                char** path_arryay = NULL;
                int array_length = 0;
-               app_control_get_extra_data_array(reply, APP_CONTROL_DATA_SELECTED, &path_arryay,  &array_length);
+               int status;
+               char* mime_type = NULL;
+               appdata_s* ad = evas_object_data_get(chat_list, "app_data");
 
+               status = app_control_get_extra_data_array(reply, APP_CONTROL_DATA_SELECTED, &path_arryay,  &array_length);
+               if (status != APP_CONTROL_ERROR_NONE) {
+                       status = app_control_get_extra_data_array(reply, APP_CONTROL_DATA_PATH, &path_arryay,  &array_length);
+                       if (status != APP_CONTROL_ERROR_NONE) {
+                               if (ad) {
+                                       show_toast(ad, "Unable to get the result from attach panel");
+                               }
+                               return;
+                       }
+               }
+
+               status = app_control_get_mime(reply, &mime_type);
+               if (status != APP_CONTROL_ERROR_NONE) {
+                       if (ad) {
+                               show_toast(ad, "Unable to get the mime type from attach panel");
+                       }
+                       return;
+               }
                for(int i = 0 ; i < array_length ; i++) {
                        file_path = strdup(path_arryay[i]);
                        send_media_message_to_buddy(chat_list, file_path, tgl_message_media_document);
                        free(file_path);
-                       break;
+                       //break;
                }
        }
 }
@@ -2148,13 +2185,34 @@ static void on_voice_record_reply_cb(app_control_h request, app_control_h reply,
                char* file_path = NULL;
                char** path_arryay = NULL;
                int array_length = 0;
-               app_control_get_extra_data_array(reply, APP_CONTROL_DATA_SELECTED, &path_arryay,  &array_length);
+               int status;
+               char* mime_type = NULL;
+               appdata_s* ad = evas_object_data_get(chat_list, "app_data");
+
+               status = app_control_get_extra_data_array(reply, APP_CONTROL_DATA_SELECTED, &path_arryay,  &array_length);
+               if (status != APP_CONTROL_ERROR_NONE) {
+                       status = app_control_get_extra_data_array(reply, APP_CONTROL_DATA_PATH, &path_arryay,  &array_length);
+                       if (status != APP_CONTROL_ERROR_NONE) {
+                               if (ad) {
+                                       show_toast(ad, "Unable to get the result from attach panel");
+                               }
+                               return;
+                       }
+               }
+
+               status = app_control_get_mime(reply, &mime_type);
+               if (status != APP_CONTROL_ERROR_NONE) {
+                       if (ad) {
+                               show_toast(ad, "Unable to get the mime type from attach panel");
+                       }
+                       return;
+               }
 
                for(int i = 0 ; i < array_length ; i++) {
                        file_path = strdup(path_arryay[i]);
                        send_media_message_to_buddy(chat_list, file_path, tgl_message_media_document);
                        free(file_path);
-                       break;
+                       //break;
                }
        }
 }
@@ -2504,7 +2562,7 @@ void launch_messaging_view_cb(appdata_s* ad, int user_id)
        evas_object_size_hint_weight_set(chat_conv_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        evas_object_size_hint_align_set(chat_conv_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
        // FIXME: Deprecated API
-       //elm_genlist_realization_mode_set(chat_conv_list, EINA_TRUE);
+       elm_genlist_realization_mode_set(chat_conv_list, EINA_TRUE);
        //evas_object_color_set(chat_conv_list, 255 , 255, 255, 255);
 
        evas_object_show(chat_conv_list);
index b8aaee7..284004f 100755 (executable)
@@ -8,6 +8,7 @@
 #include "tg_search_peer_view.h"
 #include "tg_db_wrapper.h"
 #include "tg_messaging_view.h"
+#include "contact_selection_view.h"
 
 #define COMMAND_MENU_ITEM_COUNT 2
 
@@ -24,8 +25,8 @@ static void on_group_chat_clicked(void *data, Evas_Object *obj, void *event_info
 static void on_secret_chat_clicked(void *data, Evas_Object *obj, void *event_info);
 
 static _command_item_info contact_screen_command_item_list[COMMAND_MENU_ITEM_COUNT] = {
-       {"invites friends",     "telegram_list_thumb_image_add.png",    on_invite_friends_clicked, NULL},
-       {"group chat",          "telegram_list_thumb_image_multi.png", on_group_chat_clicked, NULL},
+       {"invites friends",     TELEGRAM_BUTTON_ADD_ICON,       on_invite_friends_clicked, NULL},
+       {"group chat",          DEFAULT_LIST_THUMB_MULTI_PIC, on_group_chat_clicked, NULL},
        /*{"secret chat",               "telegram_list_thumb_image_secrete.png", on_secret_chat_clicked, NULL},*/
 };
 
@@ -76,23 +77,31 @@ char* on_peer_list_name_requested(void *data, Evas_Object *obj, const char *part
 
        appdata_s* ad = evas_object_data_get(obj, "app_data");
 
-       peer_with_pic_s* item = eina_list_nth(ad->search_peer_list, id);
-       if(!item) {
+       user_data_with_pic_s *item = eina_list_nth(ad->search_peer_list, id);
+       if (!item) {
+               return NULL;
+       }
+
+       user_data_s* user = item->use_data;
+       if (!user) {
                return NULL;
        }
-       tg_peer_info_s* user = item->use_data;
 
        if (!strcmp(part,"elm.text.main.left.top") || !strcmp(part,"elm.text")){
-               return strdup(user->print_name);
+               char *full_name = replace(user->print_name, '_', " ");
+               return full_name;
+#if 0
+               char temp_full_name[256];
+               sprintf(temp_full_name, "<font=Tizen:style=Bold color=#000000 align=center><font_size=30>%s</font_size></font>", full_name);
+               free(full_name);
+               return strdup(temp_full_name);
+#endif
        } else if (!strcmp(part, "elm.text.sub.left.bottom") || !strcmp(part,"elm.text.sub")) {
-               if (user->peer_type == TGL_PEER_USER) {
-                       char* last_seen = get_budy_state(ad, user->peer_id);
-                       if (last_seen) {
-                               return last_seen;
-                       }
+               char* last_seen = get_budy_state(ad, user->user_id.id);
+               if (last_seen) {
+                       return last_seen;
                }
        }
-
        return NULL;
 }
 
@@ -118,9 +127,9 @@ Evas_Object* _on_command_name_image_requested(void *data, Evas_Object *obj, cons
 
        if (!strcmp(part, "elm.icon.left") || !strcmp(part, "elm.icon.1") || !strcmp(part, "elm.swallow.icon")  ) {
 
-               sprintf(path, "%s%s", FM_ICON_PATH, contact_screen_command_item_list[row].image_path);
 
-               Evas_Object *profile_pic = create_image_object_from_file(ui_utils_get_resource(path), obj);
+#if 0
+               Evas_Object *profile_pic = create_image_object_from_file(ui_utils_get_resource(contact_screen_command_item_list[row].image_path), obj);
                evas_object_color_set(profile_pic, 155, 216, 226, 255);
 
                char edj_path[PATH_MAX] = {0, };
@@ -136,6 +145,26 @@ Evas_Object* _on_command_name_image_requested(void *data, Evas_Object *obj, cons
                eo = elm_layout_add(obj);
                elm_layout_theme_set(eo, "layout", "list/B/type.2", "default");
                elm_layout_content_set(eo, "elm.swallow.content", user_pic_layout);
+#else
+               Evas_Object *profile_pic = NULL;
+               profile_pic = create_image_object_from_file(ui_utils_get_resource(contact_screen_command_item_list[row].image_path), obj);
+               //evas_object_color_set(profile_pic, 45, 165, 224, 255);
+
+               char edj_path[PATH_MAX] = {0, };
+               app_get_resource(TELEGRAM_INIT_VIEW_EDJ, edj_path, (int)PATH_MAX);
+               Evas_Object *user_pic_layout = elm_layout_add(obj);
+               elm_layout_file_set(user_pic_layout, edj_path, "menu_circle_layout");
+               evas_object_size_hint_weight_set(user_pic_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(user_pic_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_show(user_pic_layout);
+               elm_object_part_content_set(user_pic_layout, "content", profile_pic);
+
+
+
+               eo = elm_layout_add(obj);
+               elm_layout_theme_set(eo, "layout", "list/B/type.2", "default");
+               elm_layout_content_set(eo, "elm.swallow.content", user_pic_layout);
+#endif
        }
        return eo;
 }
@@ -143,7 +172,7 @@ Evas_Object* _on_command_name_image_requested(void *data, Evas_Object *obj, cons
 
 void on_peer_icon_deleted(void *data, Evas *e, Evas_Object *icon, void *event_info)
 {
-       peer_with_pic_s *item  = data;
+       user_data_with_pic_s *item  = data;
        item->contact_icon = NULL;
 }
 
@@ -151,14 +180,14 @@ Evas_Object* on_peer_list_image_requested(void *data, Evas_Object *obj, const ch
 {
        Evas_Object *eo = NULL;
        if (!strcmp(part, "elm.icon.left") || !strcmp(part, "elm.icon.1") || !strcmp(part, "elm.swallow.icon")  ) {
-
+#if 0
                int id = (int) data;
                appdata_s* ad = evas_object_data_get(obj, "app_data");
                int size = eina_list_count(ad->search_peer_list);
                if (size <= 0) {
                        return eo;
                }
-               peer_with_pic_s* item = eina_list_nth(ad->search_peer_list, id);
+               user_data_with_pic_s* item = eina_list_nth(ad->search_peer_list, id);
                tg_peer_info_s* user = item->use_data;
                Evas_Object *profile_pic = NULL;
                if (user->photo_path && strcmp(user->photo_path, "") != 0) {
@@ -183,51 +212,125 @@ Evas_Object* on_peer_list_image_requested(void *data, Evas_Object *obj, const ch
                eo = elm_layout_add(obj);
                elm_layout_theme_set(eo, "layout", "list/B/type.2", "default");
                elm_layout_content_set(eo, "elm.swallow.content", user_pic_layout);
+#else
+               int id = (int) data;
+               appdata_s* ad = evas_object_data_get(obj, "app_data");
+               int size = eina_list_count(ad->search_peer_list);
+               if (size <= 0) {
+                       return eo;
+               }
+
+               user_data_with_pic_s *item = eina_list_nth(ad->search_peer_list, id);
+               user_data_s *user = item->use_data;
+               Evas_Object *profile_pic = NULL;
+
+               if (user->photo_path && strcmp(user->photo_path, "") != 0) {
+                       profile_pic = create_image_object_from_file(user->photo_path, obj);
+               } else {
+                       profile_pic = create_image_object_from_file(ui_utils_get_resource(DEFAULT_LIST_THUMB_SINGLE_PIC), obj);
+                       evas_object_color_set(profile_pic, 45, 165, 224, 255);
+               }
+
+               item->contact_icon = profile_pic;
+               evas_object_event_callback_add(item->contact_icon, EVAS_CALLBACK_DEL, on_peer_icon_deleted, item);
+               char edj_path[PATH_MAX] = {0, };
+               app_get_resource(TELEGRAM_INIT_VIEW_EDJ, edj_path, (int)PATH_MAX);
+               Evas_Object* user_pic_layout = elm_layout_add(ad->nf);
+               elm_layout_file_set(user_pic_layout, edj_path, "circle_layout");
+               evas_object_size_hint_weight_set(user_pic_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(user_pic_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_show(user_pic_layout);
+               elm_object_part_content_set(user_pic_layout, "content", item->contact_icon);
+
+               eo = elm_layout_add(obj);
+               elm_layout_theme_set(eo, "layout", "list/B/type.2", "default");
+               elm_layout_content_set(eo, "elm.swallow.content", user_pic_layout);
+#endif
        }
        return eo;
 }
 
 static void clear_search_list(appdata_s *ad)
 {
-       if (ad->search_peer_list) {
-               for (int i = 0; i < eina_list_count(ad->search_peer_list) ; i++) {
-                       peer_with_pic_s* pic_item = eina_list_nth(ad->search_peer_list, i);
-                       tg_peer_info_s* item = pic_item->use_data;
-                       if (item) {
-                               if (item->print_name) {
-                                       free(item->print_name);
-                                       item->print_name = NULL;
-                               }
-                               if (item->photo_path) {
-                                       free(item->photo_path);
-                                       item->photo_path = NULL;
-                               }
-                               pic_item->contact_icon = NULL;
-                               pic_item->msg_object = NULL;
-                               pic_item->name_object = NULL;
-                               free(item);
-                       }
-                       free(pic_item);
+       if (!ad) {
+               return;
+       }
+       for (int i = 0; i < eina_list_count(ad->search_peer_list) ; i++) {
+               user_data_with_pic_s *item = eina_list_nth(ad->search_peer_list, i);
+               user_data_s* user_data = item->use_data;
+
+               if (user_data->print_name) {
+                       free(user_data->print_name);
+                       user_data->print_name = NULL;
+               }
+
+               if (user_data->photo_path) {
+                       free(user_data->photo_path);
+                       user_data->photo_path = NULL;
+               }
+
+               if (user_data->first_name) {
+                       free(user_data->first_name);
+                       user_data->first_name = NULL;
+               }
+
+               if (user_data->last_name) {
+                       free(user_data->last_name);
+                       user_data->last_name = NULL;
+               }
+
+               if (user_data->phone) {
+                       free(user_data->phone);
+                       user_data->phone = NULL;
+               }
+               if (user_data->real_first_name) {
+                       free(user_data->real_first_name);
+                       user_data->real_first_name = NULL;
                }
-               eina_list_free(ad->search_peer_list);
+
+               if (user_data->real_last_name) {
+                       free(user_data->real_last_name);
+                       user_data->real_last_name = NULL;
+               }
+
+               if (user_data->username) {
+                       free(user_data->username);
+                       user_data->username = NULL;
+               }
+               free(user_data);
+               free(item);
        }
+
+       eina_list_free(ad->search_peer_list);
        ad->search_peer_list = NULL;
+
 }
 
 static void on_invite_friends_clicked(void *data, Evas_Object *obj, void *event_info)
 {
        Elm_Object_Item *it = event_info;
        elm_genlist_item_selected_set(it, EINA_FALSE);
-
-       show_toast(data, "on_invite_friends_clicked");
+       app_control_h app_control;
+       int ret = app_control_create(&app_control);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               return;
+       }
+       app_control_set_operation(app_control, APP_CONTROL_OPERATION_COMPOSE);
+       app_control_set_mime(app_control,"text/html");
+       char *text = "Invite you to telegram! https://telegram.org/dl";
+       app_control_add_extra_data(app_control, APP_CONTROL_DATA_TEXT, text);
+       if (app_control_send_launch_request(app_control, NULL, NULL) == APP_CONTROL_ERROR_NONE) {
+               // sms view launched
+       }
+       app_control_destroy(app_control);
 }
 
 static void on_group_chat_clicked(void *data, Evas_Object *obj, void *event_info)
 {
        Elm_Object_Item *it = event_info;
        elm_genlist_item_selected_set(it, EINA_FALSE);
-
-       show_toast(data, "on_group_chat_clicked");
+       appdata_s* ad = evas_object_data_get(obj, "app_data");
+       launch_contact_selction_view(ad);
 }
 
 static void on_secret_chat_clicked(void *data, Evas_Object *obj, void *event_info)
@@ -240,14 +343,15 @@ static void on_secret_chat_clicked(void *data, Evas_Object *obj, void *event_inf
 
 static void on_peer_item_clicked(void *data, Evas_Object *obj, void *event_info)
 {
+#if 0
        Elm_Object_Item *it = event_info;
        elm_genlist_item_selected_set(it, EINA_FALSE);
 
        int item_id = (int) data;
        appdata_s* ad = evas_object_data_get(obj, "app_data");
 
-       peer_with_pic_s* sel_pic_item = eina_list_nth(ad->search_peer_list, item_id);
-       tg_peer_info_s* sel_item = sel_pic_item->use_data;
+       user_data_with_pic_s* sel_pic_item = eina_list_nth(ad->search_peer_list, item_id);
+       user_data_s* sel_item = sel_pic_item->use_data;
 
 
        ad->buddy_in_cahtting_data = NULL;
@@ -255,8 +359,8 @@ static void on_peer_item_clicked(void *data, Evas_Object *obj, void *event_info)
        int buddy_id = -1;
        if (sel_item) {
                if (sel_item->peer_type == TGL_PEER_USER) {
-                       for (int i = 0; i < eina_list_count(ad->buddy_list); i++) {
-                               user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+                       for (int i = 0; i < eina_list_count(ad->search_peer_list); i++) {
+                               user_data_with_pic_s *item = eina_list_nth(ad->search_peer_list, i);
                                user_data_s* user_data = item->use_data;
 
                                if (user_data->user_id.id == sel_item->peer_id) {
@@ -267,7 +371,7 @@ static void on_peer_item_clicked(void *data, Evas_Object *obj, void *event_info)
                }
 
                for (int i = 0; i < eina_list_count(ad->peer_list); i++) {
-                       peer_with_pic_s* pic_item = eina_list_nth(ad->peer_list, i);
+                       user_data_with_pic_s* pic_item = eina_list_nth(ad->peer_list, i);
                        tg_peer_info_s* item = pic_item->use_data;
 
                        if (item->peer_id == sel_item->peer_id) {
@@ -290,15 +394,66 @@ static void on_peer_item_clicked(void *data, Evas_Object *obj, void *event_info)
                clear_search_list(ad);
                launch_messaging_view_cb(ad, buddy_id);
        }
+#else
+       Elm_Object_Item *it = event_info;
+       elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       int item_id = (int) data;
+       appdata_s* ad = evas_object_data_get(obj, "app_data");
+
+       user_data_with_pic_s* sel_item = eina_list_nth(ad->search_peer_list, item_id);
+       ad->buddy_in_cahtting_data = sel_item;
+
+       int peer_id = -1;
+       for (int i = 0; i < eina_list_count(ad->peer_list); i++) {
+               peer_with_pic_s* pic_item = eina_list_nth(ad->peer_list, i);
+               tg_peer_info_s* item = pic_item->use_data;
+
+               if (item->peer_id == sel_item->use_data->user_id.id) {
+                       ad->peer_in_cahtting_data = pic_item;
+                       peer_id = i;
+                       break;
+               }
+       }
+
+       if (peer_id == -1) {
+               ad->peer_in_cahtting_data = NULL;
+               ad->buddy_in_cahtting_data = NULL;
+               show_toast(ad, "Unable to retrieve buddy details");
+               return;
+       }
+
+       ad->main_item_in_cahtting_data = NULL;
+       for (int i = 0 ; i < eina_list_count(ad->main_list) ; i++) {
+               tg_main_list_item_s *item = eina_list_nth(ad->main_list, i);
+               if (item->peer_id == sel_item->use_data->user_id.id) {
+                       ad->main_item_in_cahtting_data = item;
+                       break;
+               }
+       }
+
+       ad->buddy_in_cahtting_data = NULL;
+       for (int i = 0 ; i < eina_list_count(ad->buddy_list) ; i++) {
+               user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+               if (item->use_data->user_id.id == sel_item->use_data->user_id.id) {
+                       ad->buddy_in_cahtting_data = item;
+                       break;
+               }
+       }
+
+       elm_naviframe_item_pop(ad->nf);
+       launch_messaging_view_cb(ad, peer_id);
+#endif
 }
 
 static void _update_index_item(void *data, void *item_data, int id)
 {
        appdata_s* ad = data;
-       peer_with_pic_s* item = eina_list_nth(ad->search_peer_list, id);
-       tg_peer_info_s* user = item->use_data;
+       user_data_with_pic_s* item = eina_list_nth(ad->search_peer_list, id);
+       user_data_s* user = item->use_data;
 
        Evas_Object *index = evas_object_data_get(ad->nf, "fs_index");
+
        /*
        char *index_text = NULL;
        int unicode_len = eina_unicode_utf8_get_len(user->print_name);
@@ -307,6 +462,7 @@ static void _update_index_item(void *data, void *item_data, int id)
 
        index_text = strndup(user->print_name, lang_byte);
        */
+
        char *index_text = _util_get_first_char(user->print_name);
 
        Elm_Object_Item *it = elm_index_item_append(index, index_text, NULL, NULL);
@@ -426,10 +582,6 @@ void _append_gl_group_index(Evas_Object *genlist, char* text) {
        elm_genlist_item_append(genlist, &itc, strdup(text), NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
 }*/
 
-
-
-
-
 static void _on_search_entry_changed(void *data, Evas_Object *obj, void *event_info)
 {
        appdata_s* ad = data;
@@ -448,16 +600,21 @@ static void _on_search_entry_changed(void *data, Evas_Object *obj, void *event_i
        clear_search_list(ad);
        elm_index_item_clear(index);
 
-       entry_text = trim(elm_object_text_get(obj));
+       entry_text = trim(elm_entry_markup_to_utf8(elm_object_text_get(obj)));
 
+       Eina_Bool is_name_null = EINA_FALSE;
        if (strlen(entry_text) > 0) {
-               ad->search_peer_list = load_peer_data_by_name(entry_text);
+               ad->search_peer_list = load_buddy_data_by_name(ad->user_id.id, entry_text);
        } else {
-               ad->search_peer_list = load_peer_data_by_name(NULL);
+               is_name_null = EINA_TRUE;
+               ad->search_peer_list = load_buddy_data_by_name(ad->user_id.id, NULL);
        }
 
        if (ad->search_peer_list) {
                Evas_Object *fs_layout = evas_object_data_get(ad->nf, "fs_layout");
+               if (is_name_null) {
+                       _append_command_item(search_list, ad);
+               }
                _append_peer_item(search_list, data, ad->search_peer_list);
                elm_object_part_content_unset(main_layout, "elm.swallow.content");
                elm_object_part_content_set(main_layout, "elm.swallow.content", fs_layout);
@@ -469,7 +626,7 @@ static void _on_search_entry_changed(void *data, Evas_Object *obj, void *event_i
        }
 
        elm_index_level_go(index, 0);
-
+       elm_genlist_realized_items_update(search_list);
        if (entry_text) {
                free(entry_text);
        }
@@ -523,6 +680,7 @@ Evas_Object *_create_searchbar(Evas_Object* parent, void* data)
 
 
        evas_object_smart_callback_add(searchbar_entry, "changed", _on_search_entry_changed, data);
+       evas_object_smart_callback_add(searchbar_entry, "preedit,changed", _on_search_entry_changed, data);
        evas_object_smart_callback_add(searchbar_entry, "focused", _on_search_entry_focused, searchbar_layout);
        /*
        evas_object_smart_callback_add(ad->searchbar_entry, "maxlength,reached", _searchbar_entry_max_length_reached_cb, data);
@@ -536,23 +694,22 @@ Evas_Object *_create_searchbar(Evas_Object* parent, void* data)
 
 static void _index_selected_cb(void *data, Evas_Object *obj, void *event_info)
 {
-#if 0
        appdata_s* ad = data;
        Evas_Object *search_list = evas_object_data_get(ad->nf, "search_list");
        //Elm_Object_Item *gl_item = elm_genlist_first_item_get(search_list);
 
-       peer_with_pic_s* gl_item = NULL;//eina_list_nth(ad->search_peer_list, 0);
+       user_data_with_pic_s* gl_item = NULL;//eina_list_nth(ad->search_peer_list, 0);
 
        //tg_peer_info_s* user = item->use_data;
        Eina_List* list = ad->search_peer_list;
 
+       int index = 0;
        while (list) {
                //const char *part_text = elm_object_item_part_text_get(gl_item, "elm.text");
-
                //const char *part_text = elm_object_item_data_get(gl_item);
                gl_item = eina_list_data_get(list);
                char *part_text = gl_item->use_data->print_name;
-               int id = gl_item->use_data->peer_id;
+
                const char *index_letter = elm_index_item_letter_get(event_info);
 
                int unicode_len = eina_unicode_utf8_get_len(part_text);
@@ -560,21 +717,16 @@ static void _index_selected_cb(void *data, Evas_Object *obj, void *event_info)
                int lang_byte = str_len/unicode_len+(str_len%unicode_len > 0 ? 1: 0);
                char *compare_text = strndup(part_text, lang_byte);
 
-               Elm_Object_Item *item = elm_genlist_nth_item_get(search_list, id);
+               Elm_Object_Item *item = elm_genlist_nth_item_get(search_list, index);
 
-               if (!strcmp(index_letter, compare_text)) {
+               if (!strcasecmp(index_letter, compare_text)) {
                        elm_genlist_item_show(item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
                        break;
                }
-
                //gl_item = elm_genlist_item_next_get(gl_item);
                list = eina_list_next(list);
-
+               index++;
        }
-
-#endif
-       elm_genlist_item_show(elm_object_item_data_get(event_info), ELM_GENLIST_ITEM_SCROLLTO_TOP);
-       elm_index_item_selected_set(event_info, EINA_FALSE);
 }
 
 static Evas_Object* create_fastscroll(appdata_s *ad)
@@ -620,17 +772,12 @@ static Evas_Object* create_fastscroll(appdata_s *ad)
 static Evas_Object* create_genlist(appdata_s *ad, Evas_Object *layout)
 {
        Evas_Object *list = elm_genlist_add(ad->nf);
-
        elm_list_mode_set(list, ELM_LIST_COMPRESS);
        elm_genlist_mode_set(list, ELM_LIST_COMPRESS);
-
        evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
-       evas_object_data_set(list, "app_data", ad);
-       elm_object_part_content_set(layout, "elm.swallow.content", list);
        evas_object_show(list);
        elm_object_focus_set(list, EINA_TRUE);
-
        return list;
 }
 
@@ -643,20 +790,63 @@ void launch_start_peer_search_view(appdata_s* ad)
        ad->current_app_state = TG_PEER_SEARCH_VIEW_STATE;
 
        clear_search_list(ad);
-       ad->search_peer_list = load_peer_data_by_name(NULL);
+       ad->search_peer_list = load_buddy_data_by_name(ad->user_id.id, NULL);
 
-       /* main layout */
        Evas_Object* layout = elm_layout_add(ad->nf);
        elm_layout_theme_set(layout, "layout", "application", "searchbar_base");
        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_show(layout);
+
+       Evas_Object* searchbar_layout = _create_searchbar(layout, ad);
+       elm_object_part_content_set(layout, "searchbar", searchbar_layout);
+
+       Evas_Object* fs_layout = elm_layout_add(layout);
+       elm_layout_theme_set(fs_layout, "layout", "application", "fastscroll");
+       elm_object_part_content_set(layout, "elm.swallow.content", fs_layout);
+
+       Evas_Object* index = create_fastscroll(ad);
+       elm_object_part_content_set(fs_layout, "elm.swallow.fastscroll", index);
+
+       Evas_Object* peer_list = create_genlist(ad, fs_layout);
+       evas_object_data_set(peer_list, "app_data", ad);
+       elm_object_part_content_set(fs_layout, "elm.swallow.content", peer_list);
+
+       _append_command_item(peer_list, ad);
+       _append_peer_item(peer_list, ad, ad->search_peer_list);
+
+       /* no contents */
+       Evas_Object *nocontents = elm_layout_add(ad->nf);
+       elm_layout_theme_set(nocontents, "layout", "nocontents", "default");
+       evas_object_size_hint_weight_set(nocontents, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(nocontents, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_object_part_text_set(nocontents, "elm.text", "No Items");
+       evas_object_data_set(ad->nf, "no_contents_layout", nocontents);
+
+       evas_object_data_set(ad->nf, "fs_layout", fs_layout);
+       evas_object_data_set(ad->nf, "fs_index", index);
        evas_object_data_set(ad->nf, "main_layout", layout);
+       evas_object_data_set(ad->nf, "search_list", peer_list);
+
+       elm_naviframe_item_push(ad->nf, "<font=Tizen:style=Bold color=#ffffff align=center><font_size=48>Contacts</font_size></font>", NULL, NULL, layout, NULL);
+
+#if 0
+
+       clear_search_list(ad);
+       ad->search_peer_list = load_buddy_data_by_name(NULL);
+
+       /* main layout */
+       Evas_Object* layout = elm_layout_add(ad->nf);
+       elm_layout_theme_set(layout, "layout", "application", "searchbar_base");
+       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_show(layout);
+       //evas_object_data_set(ad->nf, "main_layout", layout);
 
        /* search field */
        Evas_Object* searchbar_layout = _create_searchbar(layout, ad);
        elm_object_part_content_set(layout, "searchbar", searchbar_layout);
-
+       _util_get_first_char
        /* fastscroll layout */
        Evas_Object* fs_layout = elm_layout_add(layout);
        elm_layout_theme_set(fs_layout, "layout", "application", "fastscroll");
@@ -673,7 +863,7 @@ void launch_start_peer_search_view(appdata_s* ad)
 
        _append_command_item(peer_list, ad);
        _append_peer_item(peer_list, ad, ad->search_peer_list);
-       evas_object_data_set(ad->nf, "search_list", peer_list);
+       //evas_object_data_set(ad->nf, "search_list", peer_list);
 
        /* no contents */
        Evas_Object *nocontents = elm_layout_add(ad->nf);
@@ -684,10 +874,11 @@ void launch_start_peer_search_view(appdata_s* ad)
        evas_object_data_set(ad->nf, "no_contents_layout", nocontents);
 
        Elm_Object_Item* navi_item = elm_naviframe_item_push(ad->nf, "Telegram", NULL, NULL, layout, NULL);
-       elm_naviframe_prev_btn_auto_pushed_set(ad->nf, EINA_FALSE);
-       eext_object_event_callback_add(ad->nf, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
+       //elm_naviframe_prev_btn_auto_pushed_set(ad->nf, EINA_FALSE);
+       //eext_object_event_callback_add(ad->nf, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
 
 
        //elm_naviframe_item_simple_push(ad->nf, scroller);
        //elm_naviframe_item_simple_push(ad->nf, layout);
+#endif
 }
index 56f41f8..83c1b89 100644 (file)
@@ -268,10 +268,7 @@ void launch_start_messaging_view(appdata_s* ad)
        elm_object_text_set(contact_lbl, "<font=Tizen:style=Bold color=#ffffff align=left><font_size=45>&nbsp;&nbsp;Contacts</font_size></font>");
        elm_object_part_content_set(layout, "contacts_header", contact_lbl);
        /***************** contacts header *************************/
-
-
        /***************** contacts list *************************/
-
        int i;
        static Elm_Genlist_Item_Class itc1;
        Evas_Object *buddy_list = elm_genlist_add(ad->nf);
@@ -305,7 +302,6 @@ void launch_start_messaging_view(appdata_s* ad)
        elm_object_part_content_set(layout, "contacts_layout", buddy_list);
        /***************** contacts list *************************/
 
-
        Evas_Object* search_layout = elm_layout_add(ad->nf);
        elm_layout_file_set(search_layout, edj_path, "title_search_layout");
        evas_object_size_hint_weight_set(search_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
index 9d00ef5..401d204 100644 (file)
@@ -651,7 +651,6 @@ Evas_Object* on_chat_item_load_requested(void *data, Evas_Object *obj, const cha
                evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
                evas_object_show(layout);
                Evas_Object* item_layout = elm_layout_add(ad->nf);
-
                if (ad->target_direction == TELEGRAM_TARGET_DIRECTION_LANDSCAPE_INVERSE || ad->target_direction == TELEGRAM_TARGET_DIRECTION_LANDSCAPE) {
                        if ((item->last_message == NULL) || (strlen(item->last_message) <= 0) || (strcmp(item->last_message, " ") == 0) || (item->number_of_unread_msgs == 0 &&(!item->is_out_msg || !item->last_msg_service))) {
                                elm_layout_file_set(item_layout, edj_path, "main_list_custom_no_msg_item_land");
@@ -1067,7 +1066,7 @@ void launch_user_main_view_cb(appdata_s* ad)
 
        //elm_layout_theme_set(ad->layout, "layout", "drawer", "panel");
        // sandeep
-       create_side_main_view(ad);
+       //create_side_main_view(ad);
 
 
        /************** no chat item++ *********************/
@@ -1151,9 +1150,10 @@ void launch_user_main_view_cb(appdata_s* ad)
     evas_object_smart_callback_add(search_btn, "unpressed", on_search_icon_unpressed, search_icon);
 #endif
 
-    Elm_Object_Item* navi_item = elm_naviframe_item_push(ad->nf, "<font=Tizen:style=Bold color=#ffffff align=center><font_size=48>Telegram</font_size></font>", NULL, NULL, scroller, NULL);
+    elm_naviframe_item_push(ad->nf, "<font=Tizen:style=Bold color=#ffffff align=center><font_size=48>Telegram</font_size></font>", NULL, NULL, scroller, NULL);
 
 #if 0
+    Elm_Object_Item* navi_item = elm_naviframe_item_push(ad->nf, "<font=Tizen:style=Bold color=#ffffff align=center><font_size=48>Telegram</font_size></font>", NULL, NULL, scroller, NULL);
        elm_object_item_part_content_set(navi_item, "title_right_btn", search_layout);
        /* left panel toggle button */
        Evas_Object *panel_btn = create_button(ad->nf, "naviframe/drawers", NULL);
index 4ce74cd..b892a85 100644 (file)
@@ -415,12 +415,6 @@ void on_new_message_clicked(void *data, Evas_Object *obj, void *event_info)
        }
        //delete_floating_button(ad);
        launch_start_messaging_view(ad);
-
-       //update_floating_button(ad, 1);
-       //launch_start_peer_search_view(ad);
-
-       //delete_floating_button(ad);
-       //launch_settings_screen(ad);
 }
 
 
@@ -456,7 +450,6 @@ void on_add_contact_clicked(void *data, Evas_Object *obj, void *event_info)
        show_toast(ad, "on_add_contact_clicked");
 }
 
-
 void create_floating_button(appdata_s* ad)
 {
        if (!ad)
index e7c6357..17e6060 100644 (file)
@@ -60,9 +60,9 @@
 #define BLUR_BG FM_ICON_PATH"/blur_img.png"
 #define CAMERA_ICON FM_ICON_PATH"/camera-icon.png"
 #define MESSAGE_READ_ICON FM_ICON_PATH"/telegram_bubble_read.png"
-#define MESSAGE_SENDING_ICON FM_ICON_PATH"/ic_message_sending.png"
-#define MESSAGE_SENT_ICON FM_ICON_PATH"/telegram_icon_check.png"
-#define MESSAGE_FAILED_ICON FM_ICON_PATH"/ic_message_failed.png"
+#define MESSAGE_SENDING_ICON FM_ICON_PATH"/telegram_icon_check.png"
+#define MESSAGE_SENT_ICON FM_ICON_PATH"/telegram_icon_double_check.png"
+#define MESSAGE_FAILED_ICON FM_ICON_PATH"/telegram_icon_check.png"
 #define MESSAGE_DELIVERED_ICON FM_ICON_PATH"/telegram_icon_double_check.png"
 #define FLOATING_MSG_ICON FM_ICON_PATH"/floating_message.png"
 
@@ -71,6 +71,8 @@
 #define MEDIA_PLAY_ICON FM_ICON_PATH"/playvideo.png"
 #define DEFAULT_TELEGRAM_ICON FM_ICON_PATH"/tg_icon.png"
 
+#define TELEGRAM_BUTTON_ADD_ICON FM_ICON_PATH"/telegram_button_add.png"
+#define TELEGRAM_THUMB_ADD_ICON FM_ICON_PATH"/telegram_thumb_add.png"
 
 #define FM_ICON_CAMERA       FM_ICON_PATH"floating_camera.png"
 #define FM_ICON_GALLERY       FM_ICON_PATH"ic_attach_gallery.png"
 #define FM_ICON_FILE       FM_ICON_PATH"ic_attach_doc.png"
 #define FM_ICON_LOCATION       FM_ICON_PATH"ic_attach_location.png"
 
-
-
-
 #define TG_ICON_FLOATING_PENCIL       FM_ICON_PATH"telegram_floating_btn_ic.png"
 #define TG_ICON_FLOATING_BG       FM_ICON_PATH"floating_pressed.png"
 #define TG_ICON_FLOATING_ADD   FM_ICON_PATH"telegram_button_add.png"
 #define TG_SEARCH_ICON       FM_ICON_PATH"ic_ab_search.png"
 #define TG_SEARCH_PRESSED_ICON       FM_ICON_PATH"ic_ab_search_pressed.png"
 
-
 #define TG_MENU_GROUP       FM_ICON_PATH"menu_newgroup.png"
 #define TG_MENU_INVITE       FM_ICON_PATH"menu_invite.png"
 #define TG_MENU_CONTACTS       FM_ICON_PATH"menu_contacts.png"
index 344d75c..8bc69db 100644 (file)
 
 
 #define TG_DB_COLUMN_INTEGER "INTEGER"
+#define TG_DB_COLUMN_INTEGER_DEFAULT "INTEGER DEFAULT 0"
 #define TG_DB_COLUMN_INTEGER_PRIMARY_KEY "INTEGER PRIMARY KEY NOT NULL"
 #define TG_DB_COLUMN_INTEGER_PRIMARY_AUTO_INC_KEY "INTEGER PRIMARY KEY   AUTOINCREMENT"
 #define TG_DB_COLUMN_TEXT "TEXT"
index 2da5346..d31942f 100644 (file)
@@ -45,9 +45,9 @@ void create_data_base_tables()
        col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
        col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
        col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
-       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
-       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
-       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_DEFAULT);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_DEFAULT);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_DEFAULT);
 
        Eina_Bool ret = create_table(table_name, col_names, col_types);
        if(!ret) {
@@ -91,9 +91,9 @@ void create_data_base_tables()
        col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
        col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
        col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
-       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
-       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
-       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_DEFAULT);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_DEFAULT);
+       col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_DEFAULT);
 
        ret = create_table(table_name, col_names, col_types);
        if(!ret) {
@@ -716,7 +716,7 @@ int insert_current_date_to_table(char* tb_name)
                        time_t t = cur_time;
 
                        char *format = NULL;
-                       format = "%d %B %Y";
+                       format = "%a, %d%b. %Y";
 
                        struct tm lt;
                        char res[256];
@@ -749,7 +749,7 @@ int insert_current_date_to_table(char* tb_name)
                time_t t = cur_time;
 
                char *format = NULL;
-               format = "%d %B %Y";
+               format = "%a, %d%b. %Y";
 
                struct tm lt;
                char res[256];