--- /dev/null
+/*
+ * tg_main_item_deletion_view.h
+ *
+ * Created on: Oct 19, 2015
+ * Author: sandeep
+ */
+
+#ifndef TG_MAIN_ITEM_DELETION_VIEW_H_
+#define TG_MAIN_ITEM_DELETION_VIEW_H_
+
+
+#include "tg_common.h"
+
+extern void launch_main_item_deletion_view_cb(appdata_s* ad);
+
+
+#endif /* TG_MAIN_ITEM_DELETION_VIEW_H_ */
} \
}
-
-
-
images {
image: "camera_btn_gallery_mask.png" COMP;
image: "telegram_date_divider.#.png" COMP;
precise_is_inside: 1;
description {
state: default 0.0;
- rel1.relative: 0.0 0.05;
- rel2.relative: 1.0 0.95;
+ rel1.relative: 0.0 0.08;
+ rel2.relative: 1.0 0.92;
color: 250 250 250 0;
}
}
precise_is_inside: 1;
description {
state: default 0.0;
- rel1.relative: 0.0 0.05;
- rel2.relative: 1.0 0.95;
+ rel1.relative: 0.0 0.08;
+ rel2.relative: 1.0 0.92;
image.normal: camera_btn_gallery_mask.png;
}
}
type: SWALLOW;
description {
state: default 0.0;
- min: 0 130;
+ min: 0 135;
rel1.relative: 0.0 0.0;
rel2.relative: 1.0 1.0;
color: 0 0 0 0;
}
}
+ group {
+ name: "search_circle_layout";
+ parts {
+ part {
+ name: masking_bg;
+ type: RECT;
+ precise_is_inside: 1;
+ description {
+ state: default 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 1.0;
+ color: 250 250 250 0;
+ }
+ }
+ part {
+ name: masking;
+ type: IMAGE;
+ precise_is_inside: 1;
+ description {
+ state: default 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 1.0;
+ 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: 250 250 250 0;
+ }
+ }
+ 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;
+ }
+ }
+ }
+ }
+
}
return SVC_RES_OK;
}
-
// update profile pic if buddy list view is present.
if(user_id == app->user_id.id) {
// registerd user.
ad->buddy_in_cahtting_data = NULL;
ad->peer_in_cahtting_data = NULL;
elm_naviframe_item_pop(ad->nf);
- create_floating_button(ad);
+ show_floating_button(ad);
ad->current_app_state = TG_USER_MAIN_VIEW_STATE;
break;
case TG_SELECT_BUDDY_VIEW:
elm_naviframe_item_pop(ad->nf);
ad->current_app_state = TG_CHAT_MESSAGING_VIEW_STATE;
break;
+ case TG_USER_MAIN_VIEW_SELECTION_STATE:
case TG_PEER_SEARCH_VIEW_STATE:
case TG_START_MESSAGING_VIEW_STATE:
case TG_SETTINGS_SCREEN_STATE:
elm_naviframe_item_pop(ad->nf);
ad->current_app_state = TG_USER_MAIN_VIEW_STATE;
- create_floating_button(ad);
+ show_floating_button(ad);
//evas_object_show(ad->panel);
//elm_panel_hidden_set(ad->panel, EINA_FALSE);
break;
--- /dev/null
+/*
+ * tg_main_item_deletion_view.c
+ *
+ * Created on: Oct 19, 2015
+ * Author: sandeep
+ */
+
+
+#include "tg_main_item_deletion_view.h"
+
+static Evas_Object* create_image_object_from_file(const char *icon_name, Evas_Object *parent)
+{
+ Evas_Object *icon = elm_image_add(parent);
+ evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_image_file_set(icon, icon_name, NULL);
+ evas_object_show(icon);
+ return icon;
+}
+
+static Evas_Object* create_check(Evas_Object *parent)
+{
+ Evas_Object *check;
+ check = elm_check_add(parent);
+ return check;
+}
+
+char* on_mainlist_title_requested(void *data, Evas_Object *obj, const char *part)
+{
+
+ int org_id = (int) data;
+ if (org_id == 0) {
+ if (!strcmp(part,"elm.text.main.left.top") || !strcmp(part,"elm.text")){
+ return strdup(i18n_get_text("IDS_TGRAM_MBODY_SELECT_ALL"));
+ }
+ return NULL;
+ }
+
+ int id = org_id - 1;
+
+ appdata_s* ad = evas_object_data_get(obj, "app_data");
+
+ if (ad->main_list == NULL || eina_list_count(ad->main_list) <= 0) {
+ return NULL;
+ }
+ tg_main_list_item_s* item = eina_list_nth(ad->main_list, id);
+ if (!item) {
+ return NULL;
+ }
+ if (!strcmp(part,"elm.text.main.left.top") || !strcmp(part,"elm.text")){
+ char *full_name = replace(item->peer_print_name, '_', " ");
+ return full_name;
+ } else if (!strcmp(part, "elm.text.sub.left.bottom") || !strcmp(part,"elm.text.sub")) {
+ char* org_msg = NULL;
+ if (item->last_message) {
+ org_msg = item->last_message;
+ } else {
+ org_msg = "";
+ }
+ return strdup(org_msg);
+ } else {
+ return NULL;
+ }
+}
+
+Evas_Object* on_mainlist_content_requested(void *data, Evas_Object *obj, const char *part)
+{
+ int org_id = (int) data;
+
+ if (!strcmp("elm.swallow.end", part)) {
+ return create_check(obj);
+ }
+
+ if (org_id == 0) {
+ return NULL;
+ }
+
+ int id = org_id - 1;
+
+ appdata_s* ad = evas_object_data_get(obj, "app_data");
+
+ if (ad->main_list == NULL || eina_list_count(ad->main_list) <= 0) {
+ return NULL;
+ }
+ tg_main_list_item_s* item = eina_list_nth(ad->main_list, id);
+ if (!item) {
+ return NULL;
+ }
+
+
+ Evas_Object *eo = NULL;
+ if (!strcmp(part, "elm.icon.left") || !strcmp(part, "elm.icon.1") || !strcmp(part, "elm.swallow.icon")) {
+ //if (item->profile_pic == NULL) {
+ Evas_Object *profile_pic = NULL;
+ if (item->profile_pic_path && strcmp(item->profile_pic_path, "") != 0) {
+ profile_pic = elm_image_add(obj);
+ evas_object_size_hint_weight_set(profile_pic, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(profile_pic, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_focus_set(profile_pic, EINA_FALSE);
+
+ Eina_Bool is_success = elm_image_file_set(profile_pic, item->profile_pic_path, NULL);
+
+ if (!is_success) {
+ if (item->peer_type == TGL_PEER_USER) {
+ profile_pic = create_image_object_from_file(ui_utils_get_resource(DEFAULT_LIST_THUMB_SINGLE_PIC), obj);
+ // send download request again To-Do
+ } else if (item->peer_type == TGL_PEER_CHAT) {
+ profile_pic = create_image_object_from_file(ui_utils_get_resource(DEFAULT_LIST_THUMB_MULTI_PIC), obj);
+ // send download request again To-Do
+ } else {
+
+ }
+ evas_object_color_set(profile_pic, 45, 165, 224, 255);
+ }
+ evas_object_show(profile_pic);
+ } else {
+
+ if (item->peer_type == TGL_PEER_USER) {
+ profile_pic = create_image_object_from_file(ui_utils_get_resource(DEFAULT_LIST_THUMB_SINGLE_PIC), obj);
+ } else if (item->peer_type == TGL_PEER_CHAT) {
+ profile_pic = create_image_object_from_file(ui_utils_get_resource(DEFAULT_LIST_THUMB_MULTI_PIC), obj);
+ } else {
+
+ }
+ 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(ad->nf);
+ elm_layout_file_set(user_pic_layout, edj_path, "search_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);
+ }
+ return eo;
+}
+
+
+void launch_main_item_deletion_view_cb(appdata_s* ad)
+{
+ if (!ad)
+ return;
+
+ ad->current_app_state = TG_USER_MAIN_VIEW_SELECTION_STATE;
+ delete_floating_button(ad);
+ ad->is_tg_initilized = EINA_TRUE;
+ char edj_path[PATH_MAX] = {0, };
+ app_get_resource(TELEGRAM_INIT_VIEW_EDJ, edj_path, (int)PATH_MAX);
+
+ Evas_Object* scroller = elm_scroller_add(ad->nf);
+ elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
+ elm_scroller_policy_set(scroller,ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+
+ Evas_Object* layout = elm_layout_add(ad->nf);
+ elm_layout_file_set(layout, edj_path, "user_main_screen_new");
+ 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);
+ elm_object_content_set(scroller, layout);
+
+ Evas_Object *buddy_list = NULL;
+ Evas_Object* bg_box = elm_box_add(layout);
+ evas_object_size_hint_weight_set(bg_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(bg_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(bg_box);
+ elm_object_part_content_set(layout, "main_box", bg_box);
+
+ if (ad->main_list == NULL || eina_list_count(ad->main_list) <= 0) {
+ return;
+ } else {
+ int i;
+ static Elm_Genlist_Item_Class itc;
+ buddy_list = elm_genlist_add(ad->nf);
+ elm_list_mode_set(buddy_list, ELM_LIST_COMPRESS);
+ elm_genlist_mode_set(buddy_list, ELM_LIST_COMPRESS);
+ evas_object_size_hint_weight_set(buddy_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(buddy_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_data_set(buddy_list, "app_data", ad);
+ elm_genlist_homogeneous_set(buddy_list, EINA_TRUE);
+
+ itc.item_style = "type1";
+ itc.func.text_get = on_mainlist_title_requested;
+ itc.func.content_get = on_mainlist_content_requested;
+ itc.func.state_get = NULL;
+ itc.func.del = NULL;
+
+ int size = eina_list_count(ad->main_list);
+ if(size > 0) {
+ for (i = 0; i <= size; i++) {
+ elm_genlist_item_append(buddy_list, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, NULL, (void*) i);
+ }
+ } else {
+ i = 1;
+ elm_genlist_item_append(buddy_list, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, NULL, (void*) i);
+ }
+ evas_object_show(buddy_list);
+ elm_box_pack_end(bg_box, buddy_list);
+ }
+ evas_object_data_set(ad->nf, "main_list_box", bg_box);
+ elm_naviframe_item_push(ad->nf, i18n_get_text("IDS_TGRAM_HEADER_SELECT_CHATS_ABB"), NULL, NULL, scroller, NULL);
+
+}
+
if (!strcmp(part,"elm.text.main.left.top") || !strcmp(part,"elm.text")){
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")) {
char* last_seen = get_budy_state(ad, user->user_id.id);
if (last_seen) {
if (!strcmp(part, "elm.icon.left") || !strcmp(part, "elm.icon.1") || !strcmp(part, "elm.swallow.icon") ) {
-
-#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, };
- 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, "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);
-#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);
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;
}
{
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;
- }
- 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) {
- profile_pic = create_image_object_from_file(user->photo_path, obj);
- } else {
- profile_pic = create_image_object_from_file(ui_utils_get_resource(DEFAULT_PROFILE_PIC), obj);
- }
-
-
- 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", 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);
-#else
int id = (int) data;
appdata_s* ad = evas_object_data_get(obj, "app_data");
int size = eina_list_count(ad->search_peer_list);
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");
+ elm_layout_file_set(user_pic_layout, edj_path, "search_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);
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_new_contact_creation_reply_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data)
+{
+ if (result == APP_CONTROL_RESULT_SUCCEEDED) {
+ appdata_s* ad = user_data;
+ char* file_path = NULL;
+ char** path_arryay = NULL;
+ int array_length = 0;
+ int status;
+ char* mime_type = NULL;
+ 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]);
+ free(file_path);
+ }
+ }
+}
+
+int on_create_new_contact(appdata_s* ad)
+{
+ app_control_h request;
+ app_control_create(&request);
+ app_control_set_operation(request, "http://tizen.org/appcontrol/operation/add");
+ app_control_set_mime(request, "application/vnd.tizen.contact");
+ int result = app_control_send_launch_request(request, &on_new_contact_creation_reply_cb, ad);
+ app_control_destroy(request);
+ return result;
+}
+
+
static void on_invite_friends_clicked(void *data, Evas_Object *obj, void *event_info)
{
Elm_Object_Item *it = event_info;
Elm_Object_Item *it = event_info;
elm_genlist_item_selected_set(it, EINA_FALSE);
appdata_s* ad = evas_object_data_get(obj, "app_data");
+ delete_floating_button(ad);
launch_contact_selction_view(ad);
}
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");
-
- 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;
- ad->peer_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->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) {
- ad->buddy_in_cahtting_data = item;
- break;
- }
- }
- }
-
- for (int i = 0; i < eina_list_count(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) {
- ad->peer_in_cahtting_data = pic_item;
- buddy_id = i;
- break;
- }
- }
-
- 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->peer_id) {
- ad->main_item_in_cahtting_data = item;
- break;
- }
- }
-
- elm_naviframe_item_pop(ad->nf);
- 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);
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)
static void _on_search_entry_focused(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object *layout = data;
-
if (elm_object_focus_get(layout)) {
elm_object_signal_emit(layout, "elm,state,focused", "");
} else{
elm_object_signal_emit(layout, "elm,state,unfocused", "");
}
-
}
Evas_Object *_create_searchbar(Evas_Object* parent, void* data)
{
-
char edj_path[PATH_MAX] = {0, };
app_get_resource(TELEGRAM_INIT_VIEW_EDJ, edj_path, (int)PATH_MAX);
/* 1. Special character & Numbers */
elm_index_item_append(index, "#", NULL, NULL);
-#if 1
/* 2. Local language */
str = dgettext("efl-extension", "IDS_EA_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ");
len = strlen(str);
elm_index_item_append(index, buf, NULL, NULL);
}
-#endif
elm_index_level_go(index, 0);
evas_object_smart_callback_add(index, "selected", _index_selected_cb, ad);
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");
- elm_object_part_content_set(layout, "elm.swallow.content", fs_layout);
- evas_object_data_set(ad->nf, "fs_layout", fs_layout);
-
- /* fastscroll */
- Evas_Object* index = create_fastscroll(ad);
- elm_object_part_content_set(fs_layout, "elm.swallow.fastscroll", index);
- evas_object_data_set(ad->nf, "fs_index", index);
-
- /* peer list - Genlist */
- Evas_Object* peer_list = create_genlist(ad, fs_layout);
-
- _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);
-
- /* 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);
-
- 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_item_simple_push(ad->nf, scroller);
- //elm_naviframe_item_simple_push(ad->nf, layout);
-#endif
}
#include "tg_db_manager.h"
#include "server_requests.h"
#include "tg_db_wrapper.h"
+#include "tg_main_item_deletion_view.h"
static Evas_Object *create_image_object_from_file(const char *icon_name, Evas_Object *parent)
{
char* user_name = replace(item->peer_print_name, '_', "");
char buf[512] = {'\0'};
- snprintf(buf, 512, "<font=Tizen:style=Bold color=#000000 align=left><font_size=32>%s</font_size></font>", user_name);
+ snprintf(buf, 512, "<font=Tizen:style=Bold color=#000000 align=left><font_size=35>%s</font_size></font>", user_name);
free(user_name);
Evas_Object* name_lbl = elm_label_add(ad->nf);
if(len_org_str > 30) {
strncpy(res, org_msg, 29);
if(item->last_msg_service) {
- sprintf(status_buf,"<font=Tizen:style=Bold color=#158CB0 align=left><font_size=26>%s</font_size></font>", res);
+ sprintf(status_buf,"<font=Tizen:style=Bold color=#158CB0 align=left><font_size=28>%s</font_size></font>", res);
} else {
- sprintf(status_buf,"<font=Tizen:style=Bold color=#A4A4A4 align=left><font_size=26>%s</font_size></font>", res);
+ sprintf(status_buf,"<font=Tizen:style=Bold color=#A4A4A4 align=left><font_size=28>%s</font_size></font>", res);
}
} else {
if(item->last_msg_service) {
- sprintf(status_buf, "<font=Tizen:style=Bold color=#158CB0 align=left><font_size=26>%s</font_size></font>", org_msg);
+ sprintf(status_buf, "<font=Tizen:style=Bold color=#158CB0 align=left><font_size=28>%s</font_size></font>", org_msg);
} else {
- sprintf(status_buf, "<font=Tizen:style=Bold color=#A4A4A4 align=left><font_size=26>%s</font_size></font>", org_msg);
+ sprintf(status_buf, "<font=Tizen:style=Bold color=#A4A4A4 align=left><font_size=28>%s</font_size></font>", org_msg);
}
}
_ctxpopup_dismiss_cb(ad, NULL, NULL);
- /* please input here when delete menu is clicked */
+ launch_main_item_deletion_view_cb(ad);
}
static void ctxpopup_search_select_cb(void *data, Evas_Object *obj, void *event_info)
}
_ctxpopup_dismiss_cb(ad, NULL, NULL);
-
+ on_floating_icon_clicked(data, obj, event_info);
/* please input here when contact menu is clicked */
}
evas_object_size_hint_weight_set(buddy_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(buddy_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_data_set(buddy_list, "app_data", ad);
- elm_genlist_block_count_set(buddy_list, 14);
elm_genlist_homogeneous_set(buddy_list, EINA_TRUE);
{
appdata_s* ad = data;
+ if (ad->menu_popup) {
+ evas_object_del(ad->menu_popup);
+ ad->menu_popup = NULL;
+ }
+
Evas_Object* image = (Evas_Object*)evas_object_data_get(ad->floating_btn, "image");
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);
- launch_settings_screen(ad);
- delete_floating_button(ad);
+ //elm_image_file_set(image, ui_utils_get_resource(TG_ICON_FLOATING_PENCIL), NULL);
+ on_create_new_contact(ad);
+ //delete_floating_button(ad);
break;
case TG_USER_MAIN_VIEW_STATE:
elm_image_file_set(image, ui_utils_get_resource(TG_ICON_FLOATING_ADD), NULL);
return;
if (ad->floating_btn){
+ update_floating_button(ad, ad->current_app_state);
elm_layout_signal_emit(ad->floating_btn, "elm,state,floatingbutton,visible", "elm");
}
}
elm_image_file_set(image, ui_utils_get_resource(TG_ICON_FLOATING_ADD), NULL);
break;
case TG_USER_MAIN_VIEW_STATE:
- elm_image_file_set(image, ui_utils_get_resource(TG_ICON_FLOATING_ADD), NULL);
+ elm_image_file_set(image, ui_utils_get_resource(TG_ICON_FLOATING_PENCIL), NULL);
break;
default :
elm_image_file_set(image, ui_utils_get_resource(TG_ICON_FLOATING_PENCIL), NULL);
TG_BUDDY_CHAT_STATE,
TG_BUDDY_CHAT_CONV_STATE,
TG_USER_MAIN_VIEW_STATE,
+ TG_USER_MAIN_VIEW_SELECTION_STATE,
TG_START_MESSAGING_VIEW_STATE,
TG_CHAT_MESSAGING_VIEW_STATE,
TG_PEER_SEARCH_VIEW_STATE,
extern void on_new_message_clicked(void *data, Evas_Object *obj, void *event_info);
+extern void on_floating_icon_clicked(void *data, Evas_Object *obj, void *event_info);
+
#endif /* TG_COMMON_H_ */
tg_data->mhash = NULL;
tg_data->lazy_init_idler = NULL;
tg_data->s_notififcation = NULL;
+ tg_data->chat_list = NULL;
+ tg_data->current_chat_index = 0;
+ tg_data->buddy_list = NULL;
+ tg_data->current_buddy_index = 0;
//tg_data->is_loading_completed = EINA_FALSE;
RETVM_IF(!tg_data->tg_server, SVC_RES_FAIL, "Failed to create proxy client");
result = _tg_server_set_remote_data(tg_data->tg_server, TELEGRAM_CLIENT_APP_NAME, TELEGRAM_CLIENT_PORT_NAME);
result = tg_server_register_msg_receive_callback(tg_data->tg_server, _on_tg_server_msg_received_cb, tg_data);
- // if wi-fi or data is on
- create_data_base_tables();
-
int err = badge_new(TELEGRAM_APP_ID);
if (BADGE_ERROR_NONE != err) {
free_contact_data(tg_data->contact_list_to_add);
tg_data->contact_list_to_add = NULL;
}
+
+ if (tg_data->chat_list) {
+ eina_list_free(tg_data->chat_list);
+ tg_data->chat_list = NULL;
+ }
+
+ if (tg_data->buddy_list) {
+ eina_list_free(tg_data->buddy_list);
+ tg_data->buddy_list = NULL;
+ }
+
tgl_engine_var_free();
tg_db_fini();
t_id.id = TLS->our_id;
t_id.type = TGL_PEER_USER;
tg_data->is_first_time_registration = EINA_TRUE;
+ create_data_base_tables();
tgl_do_get_user_info(TLS, t_id, offline_mode, &on_user_info_loaded, NULL);
}
}
}
+void on_chat_history_received(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[])
+{
+ tg_engine_data_s *tg_data = TLS->callback_data;
+ for (int i = 0; i < size; i++) {
+ struct tgl_message* message = list[i];
+ if (message->service || message->from_id.id == tg_data->id.id) {
+ continue;
+ }
+ Eina_Bool ret = insert_buddy_msg_to_db(message);
+ if (ret) {
+ tg_msg_receive(s_info.TLS, message);
+ }
+ }
+ tg_data->current_chat_index = tg_data->current_chat_index + 1;
+ if (tg_data->current_chat_index < eina_list_count(tg_data->chat_list)) {
+ tgl_peer_t* UC = eina_list_nth(tg_data->chat_list, tg_data->current_chat_index);
+ tgl_do_get_history(s_info.TLS, UC->id, 20, 0, on_chat_history_received, UC);
+ } else {
+ tg_data->current_chat_index = 0;
+ }
+}
+
+static Eina_Bool on_load_chat_history_requested(void *data)
+{
+ struct tgl_state *TLS = data;
+ if (TLS) {
+ tg_engine_data_s *tg_data = TLS->callback_data;
+ tg_data->current_chat_index = 0;
+ tgl_peer_t* UC = eina_list_nth(tg_data->chat_list, tg_data->current_chat_index);
+ tgl_do_get_history(s_info.TLS, UC->id, 20, 0, on_chat_history_received, UC);
+ }
+ return ECORE_CALLBACK_CANCEL;
+}
+
+void on_buddy_history_received(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[])
+{
+ tg_engine_data_s *tg_data = TLS->callback_data;
+ for (int i = 0; i < size; i++) {
+ struct tgl_message* message = list[i];
+ if (message->service || message->from_id.id == tg_data->id.id) {
+ continue;
+ }
+ Eina_Bool ret = insert_buddy_msg_to_db(message);
+ if (ret) {
+ tg_msg_receive(s_info.TLS, message);
+ }
+ }
+ tg_data->current_buddy_index = tg_data->current_buddy_index + 1;
+ if (tg_data->current_buddy_index < eina_list_count(tg_data->buddy_list)) {
+ tgl_peer_t* UC = eina_list_nth(tg_data->buddy_list, tg_data->current_buddy_index);
+ tgl_do_get_history(s_info.TLS, UC->id, 20, 0, on_buddy_history_received, UC);
+ } else {
+ tg_data->current_buddy_index = 0;
+ ecore_timer_add(5, on_load_chat_history_requested, TLS);
+ }
+}
+
+static Eina_Bool on_load_buddy_history_requested(void *data)
+{
+ struct tgl_state *TLS = data;
+ if (TLS) {
+ tg_engine_data_s *tg_data = TLS->callback_data;
+ tg_data->current_buddy_index = 0;
+ tgl_peer_t* UC = eina_list_nth(tg_data->buddy_list, tg_data->current_buddy_index);
+ tgl_do_get_history(s_info.TLS, UC->id, 20, 0, on_buddy_history_received, UC);
+ }
+ return ECORE_CALLBACK_CANCEL;
+}
+
void on_contacts_received(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_user *contacts[])
{
+ tg_engine_data_s *tg_data = TLS->callback_data;
for (int i = size - 1; i >= 0; i--) {
struct tgl_user *buddy = contacts[i];
-
char* msg_table = get_table_name_from_number(buddy->id.id);
create_buddy_msg_table(msg_table);
free(msg_table);
- //tgl_do_get_user_info(TLS, buddy->id, 0, &on_buddy_info_loaded, NULL);
if (buddy->id.id == 333000 || buddy->id.id == 777000) {
buddy->is_unknown = 1;
} else {
struct tgl_user *buddy = contacts[i];
tgl_do_get_user_info(TLS, buddy->id, 0, on_buddy_info_loaded, NULL);
}
- tg_engine_data_s *tg_data = TLS->callback_data;
- //tg_data->is_loading_completed = EINA_TRUE;
-
send_response_for_server_connection_status(tg_data, tg_data->is_login_activated);
- ecore_timer_add(5, on_send_unsent_messages_requested, TLS);
-}
-
-void on_history_received(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[])
-{
- for (int i = 0; i < size; i++) {
- //struct tgl_message
- struct tgl_message* message = list[i];
- if (message->service) {
- continue;
- }
- Eina_Bool ret = insert_buddy_msg_to_db(message);
- if (ret) {
- tg_msg_receive(s_info.TLS, message);
- }
- }
+ ecore_timer_add(3, on_send_unsent_messages_requested, TLS);
+ ecore_timer_add(6, on_load_buddy_history_requested, TLS);
}
-#if 0
-static Eina_Bool on_load_history_requested(void *data)
-{
- tgl_peer_t* UC = data;
- tgl_do_get_history(s_info.TLS, UC->id, 15, 0, on_history_received, UC);
- return ECORE_CALLBACK_CANCEL;
-}
-#endif
void on_contacts_and_chats_loaded(struct tgl_state *TLS, void *callback_extra, int success, int size, tgl_peer_id_t peers[], int last_msg_id[], int unread_count[])
{
-#if 0
- int int_cnt = 5;
-#endif
+ tg_engine_data_s *tg_data = TLS->callback_data;
+ if (tg_data->chat_list) {
+ eina_list_free(tg_data->chat_list);
+ tg_data->chat_list = NULL;
+ }
+ if (tg_data->buddy_list) {
+ eina_list_free(tg_data->buddy_list);
+ tg_data->buddy_list = NULL;
+ }
for (int i = size - 1; i >= 0; i--) {
tgl_peer_t* UC = tgl_peer_get(TLS, peers[i]);
// insert into peer table
insert_peer_into_database(UC, last_msg_id[i], unread_count[i], 0);
-#if 0
- int_cnt = int_cnt + 3;
- ecore_timer_add(int_cnt, on_load_history_requested, UC);
-#endif
switch (tgl_get_peer_type(peers[i])) {
case TGL_PEER_USER:
- // To-Do
+ tg_data->buddy_list = eina_list_append(tg_data->buddy_list, UC);
break;
case TGL_PEER_CHAT:
- // To-Do
+ tg_data->chat_list = eina_list_append(tg_data->chat_list, UC);
break;
case TGL_PEER_ENCR_CHAT:
// To-Do
char* mhash;
//Eina_Bool is_loading_completed;
notification_h s_notififcation;
+ Eina_List *chat_list;
+ int current_chat_index;
+
+ Eina_List *buddy_list;
+ int current_buddy_index;
} tg_engine_data_s;
typedef struct contact_data {