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);
eina_list_free(col_names);
eina_list_free(col_types);
-
+#endif
}
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);
time_t t = cur_time;
char *format = NULL;
- format = "%d %B %Y";
+ format = "%a, %d%b. %Y";
struct tm lt;
char res[256];
time_t t = cur_time;
char *format = NULL;
- format = "%d %B %Y";
+ format = "%a, %d%b. %Y";
struct tm lt;
char res[256];
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)
{
#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
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},*/
};
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;
}
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, };
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;
}
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;
}
{
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) {
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)
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;
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) {
}
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) {
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);
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);
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;
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);
}
elm_index_level_go(index, 0);
-
+ elm_genlist_realized_items_update(search_list);
if (entry_text) {
free(entry_text);
}
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);
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);
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)
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;
}
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");
_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);
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
}