summaryrefslogtreecommitdiff
path: root/lib/list
diff options
context:
space:
mode:
Diffstat (limited to 'lib/list')
-rwxr-xr-xlib/list/CMakeLists.txt18
-rw-r--r--lib/list/contacts-list-efl.xml35
-rwxr-xr-xlib/list/ct-group-edit-view.h23
-rwxr-xr-xlib/list/ct-group-view.cpp1696
-rwxr-xr-xlib/list/ct-list-contact-view.cpp1264
-rwxr-xr-xlib/list/ct-list-contact-view.h31
-rwxr-xr-xlib/list/ct-list-edit-view.cpp1102
-rwxr-xr-xlib/list/ct-list-edit-view.h45
-rwxr-xr-xlib/list/ct-list-main.cpp994
-rwxr-xr-xlib/list/ct-list-utils.cpp1153
-rwxr-xr-xlib/list/ct-list-utils.h59
-rwxr-xr-xlib/list/ct-list-view-ug.cpp888
-rwxr-xr-xlib/list/ct-list-view-ug.h31
-rwxr-xr-xlib/list/include/ct-list.h320
14 files changed, 0 insertions, 7659 deletions
diff --git a/lib/list/CMakeLists.txt b/lib/list/CMakeLists.txt
deleted file mode 100755
index ec71fa7..0000000
--- a/lib/list/CMakeLists.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-LINK_DIRECTORIES(${CMAKE_BINARY_DIR})
-
-SET(TARGET ${CT_LIST})
-
-FILE(GLOB SRCS *.cpp)
-
-ADD_LIBRARY(${TARGET} SHARED ${SRCS})
-SET_TARGET_PROPERTIES(${TARGET} PROPERTIES SOVERSION ${VERSION_MAJOR})
-SET_TARGET_PROPERTIES(${TARGET} PROPERTIES VERSION ${VERSION})
-
-SET_TARGET_PROPERTIES(${TARGET} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS})
-TARGET_LINK_LIBRARIES(${TARGET} ${COMMON_LIB} ${ug_pkgs_LDFLAGS} ${CT_DETAILS})
-
-ADD_DEPENDENCIES(${TARGET} contacts_edj_build contacts_theme_build group_theme_edj_build image_layout_edj_build list_theme_edj_build contact_button_edj_build)
-
-INSTALL(TARGETS ${TARGET} DESTINATION ${UGLIBDIR})
-
-INSTALL(FILES ${CMAKE_BINARY_DIR}/lib/list/contacts-list-efl.xml DESTINATION "/usr/share/packages")
diff --git a/lib/list/contacts-list-efl.xml b/lib/list/contacts-list-efl.xml
deleted file mode 100644
index 728ec36..0000000
--- a/lib/list/contacts-list-efl.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns="http://tizen.org/ns/packages" package="contacts-list-efl" version="0.1.0-0" install-location="internal-only">
- <label>contacts-list</label>
- <author email="ensung.park@samsung.com" href="www.samsung.com">ensung park</author>
- <description>contacts-list-efl Application</description>
- <ui-application appid="contacts-list-efl" exec="/usr/ug/bin/contacts-list-efl" nodisplay="true" multiple="true" type="capp" taskmanage="false">
- <icon>org.tizen.contacts.png</icon>
- <label>contacts-list</label>
- <label xml:lang="en-us">contacts-list</label>
- <label xml:lang="nl-nl">contacts-list</label>
- <label xml:lang="de-de">contacts-list</label>
- <label xml:lang="en-gb">contacts-list</label>
- <label xml:lang="zh-hk">contacts-list</label>
- <label xml:lang="zh-cn">contacts-list</label>
- <label xml:lang="ru-ru">contacts-list</label>
- <label xml:lang="zh-tw">contacts-list</label>
- <label xml:lang="ja-jp">contacts-list</label>
- <label xml:lang="es-es">contacts-list</label>
- <label xml:lang="el-gr">contacts-list</label>
- <label xml:lang="it-it">contacts-list</label>
- <label xml:lang="tr-tr">contacts-list</label>
- <label xml:lang="pt-pt">contacts-list</label>
- <label xml:lang="fr-fr">contacts-list</label>
- <label xml:lang="ko-kr">contacts-list</label>
- <application-service>
- <operation name="http://tizen.org/ns/packages"/>
- </application-service>
- <application-service>
- <operation name="http://tizen.org/appcontrol/operation/social/pick"/>
- </application-service>
- <application-service>
- <operation name="http://tizen.org/appcontrol/operation/social/choose"/>
- </application-service>
- </ui-application>
-</manifest>
diff --git a/lib/list/ct-group-edit-view.h b/lib/list/ct-group-edit-view.h
deleted file mode 100755
index 5426186..0000000
--- a/lib/list/ct-group-edit-view.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __CT_GROUP_EDIT_VIEW_H__
-#define __CT_GROUP_EDIT_VIEW_H__
-
-void ctui_gedit_push_view(Evas_Object *win, Evas_Object *navi,
- ct_group_list *info, ct_group_rename_update_cb fn, void *fn_data);
-
-#endif /* __CT_GROUP_EDIT_VIEW_H__ */
diff --git a/lib/list/ct-group-view.cpp b/lib/list/ct-group-view.cpp
deleted file mode 100755
index ee702be..0000000
--- a/lib/list/ct-group-view.cpp
+++ /dev/null
@@ -1,1696 +0,0 @@
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <app.h>
-#include <vconf.h>
-#include <vconf-keys.h>
-#include <fcntl.h>
-#include <app_service.h>
-#include <Ecore_X.h>
-#include <ui-gadget-module.h>
-#include <account.h>
-#include <efl_assist.h>
-#include "phone.h"
-#include "ct-list.h"
-#include "ct-group.h"
-#include "ct-list-utils.h"
-#include "ct-list-contact-view.h"
-#include "ViewManager.h"
-
-//TODO: use it instead of magic-strings across the project
-#define KEY_GROUP_DATA "cgroup_d"
-#define FRIENDS "friends"
-#define FAMILY "family"
-#define COWORKERS "coworkers"
-#define QUICK_MENU_SIZE 160
-#define PART_ICON "icon"
-
-
-enum
-{
- GROUP_MODE_NORMAL,
- GROUP_MODE_EDIT,
-};
-
-typedef void (*quick_menu_cb)(void *data, Evas_Object *obj, void *event_info);
-
-typedef struct : public Common::View
-{
- Evas_Object *gengrid;
- Ecore_Timer *update_timer;
- Ecore_Timer *waiting_timer;
- Evas_Object *ctrl_button;
- Evas_Object *delete_button;
- bool is_background;
- int count;
- Evas_Object *quick_menu_popup;
- int ug_request;
- int ug_cnt_max;
- int group_mode;
- void *crop_ug;
- char *ug_data;
- bool need_update;
-} ct_group_data;
-
-enum GROUP_ITC_TYPE
-{
- GROUP_ITC_1IMAGE,
- GROUP_ITC_2IMAGE,
- GROUP_ITC_3IMAGE,
- GROUP_ITC_6IMAGE,
- GROUP_ITC_GROUP_TITLE,
- GROUP_ITC_MAX,
-};
-
-static Elm_Gengrid_Item_Class group_itcs[] =
-{
- {
- 0, 0, 1, "groupitem.1image", NULL, NULL,
- {NULL, NULL, NULL, NULL},
- },
- {
- 0, 0, 1, "groupitem.2image", NULL, NULL,
- {NULL, NULL, NULL, NULL},
- },
- {
- 0, 0, 1, "groupitem.3image", NULL, NULL,
- {NULL, NULL, NULL, NULL},
- },
- {
- 0, 0, 1, "groupitem.6image", NULL, NULL,
- {NULL, NULL, NULL, NULL},
- },
- {
- 0, 0, 1, "group_index", NULL, NULL,
- {NULL, NULL, NULL, NULL},
- },
-};
-
-static Eina_Bool group_changed(void *user_data);
-
-static void group_gl_del(void *data, Evas_Object *obj)
-{
- PH_TRACE;
- int i;
- ct_group_list *info = (ct_group_list *) data;
- p_retm_if(NULL == info, "data is NULL");
-
- for (i = 0; i < 6; i++)
- free(info->img_list[i]);
- free(info->img);
- free(info->name);
- free(info);
-}
-
-static char* group_gl_label_get(void *data, Evas_Object *obj, const char *part)
-{
- PH_TRACE;
- char buf[PH_TEXT_MAX_LEN];
- ct_group_list *info = (ct_group_list *) data;
- ct_group_data *cgroup_d;
-
- p_retvm_if(NULL == data, NULL, "The parameter(data) is NULL");
-
- cgroup_d = (ct_group_data *) evas_object_data_get(obj, KEY_GROUP_DATA);
- p_retvm_if(NULL == cgroup_d, NULL, "evas_object_data_get() return NULL");
-
- if ((0 == strcmp(part, "text.name")
- && cgroup_d->group_mode == GROUP_MODE_NORMAL)
- || (0 == strcmp(part, "text.edit.name")
- && cgroup_d->group_mode == GROUP_MODE_EDIT))
- {
- if (info->name)
- return strdup(info->name);
- else
- return strdup("Noname");
- }
- else if ((0 == strcmp(part, "text.count")
- && cgroup_d->group_mode == GROUP_MODE_NORMAL)
- || (0 == strcmp(part, "text.edit.count")
- && cgroup_d->group_mode == GROUP_MODE_EDIT))
- {
- snprintf(buf, sizeof(buf), "%d", info->count);
- return strdup(buf);
- }
- return NULL;
-}
-
-static char* group_gl_index_label_get(void *data, Evas_Object *obj,
- const char *part)
-{
- PH_TRACE;
- char *title = (char *) data;
-
- if (title && *title)
- return strdup((const char *) data);
-
- return NULL;
-}
-
-static void group_popup_hide_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- Evas_Object *icon;
- Evas_Object *btn;
- ct_group_data *cgroup_d = (ct_group_data *) data;
- btn = (Evas_Object *) evas_object_data_get(obj, "expand_btn");
- if (btn)
- {
- icon = elm_object_part_content_get(btn, PART_ICON);
- elm_image_file_set(icon, CTUI_IMG_ICON_EXPAND_OPENED, NULL);
- elm_object_part_content_set(btn, PART_ICON, icon);
- }
- evas_object_del(cgroup_d->popup);
- cgroup_d->popup = NULL;
-}
-
-static void group_destroy_child_ug(void *data)
-{
- PH_TRACE;
- ct_group_data *cgroup_d = (ct_group_data *) data;
- cgroup_d->child_ug = NULL;
-}
-
-API void phone_group_message_result_cb(void *data, int *list, int cnt)
-{
- PH_TRACE;
- service_h service;
- ui_gadget_h ug;
- struct ug_cbs cbs = { 0 };
- struct ug_priv_data *priv_data;
- ct_group_data *cgroup_d = (ct_group_data *) data;
- char buf[PH_TEXT_MAX_LEN] = { '\0' };
- char temp[PH_TEXT_MAX_LEN + 1] = { '\0' };
- int ret, i;
- contacts_record_h number_record = NULL;
- char *number;
-
- p_retm_if(NULL == cgroup_d, "parameter(cgroup_d) is NULL");
- p_retm_if(0 == cnt || NULL == list, "parameter(list) is NULL");
-
- priv_data = (ug_priv_data *) calloc(1, sizeof(struct ug_priv_data));
- p_retm_if(NULL == priv_data, "calloc is failed");
-
- priv_data->destroy_cb = group_destroy_child_ug;
- priv_data->cb_param = cgroup_d;
-
- service_create(&service);
-
- for (i = 0; i < cnt; i++)
- {
- ret = contacts_db_get_record(_contacts_number._uri, list[i],
- &number_record);
- if (CONTACTS_ERROR_NONE != ret)
- {
- ERR("contacts_db_get_record() Failed(%d)", ret);
- continue;
- }
-
- contacts_record_get_str_p(number_record, _contacts_number.number,
- &number);
- if (number && *number)
- {
- if (*buf)
- snprintf(temp, sizeof(temp), "%s", buf);
- if (*temp)
- snprintf(buf, sizeof(buf), "%s,%s", temp, number);
- else
- snprintf(buf, sizeof(buf), "%s", number);
- }
- contacts_record_destroy(number_record, true);
- }
- if (*buf)
- {
- PH_DBG("number %s", buf);
- service_add_extra_data(service, "TO", buf);
- }
- cbs.priv = priv_data;
- cbs.layout_cb = ug_common_layout_cb;
- cbs.result_cb = NULL;
- cbs.destroy_cb = ug_common_destroy_cb;
-
- ug = ug_create(cgroup_d->ug, MSG_COMPOSER_UG, UG_MODE_FULLVIEW, service,
- &cbs);
- service_destroy(service);
-
- if (ug == NULL)
- {
- free(priv_data);
- ERR("%s ug_create is failed", MSG_COMPOSER_UG);
- }
- evas_object_smart_callback_del(cgroup_d->navi, "transition,finished",
- ctui_list_edit_navi_pop);
- cgroup_d->child_ug = ug;
-}
-
-API void phone_group_email_result_cb(void *data, int *list, int cnt)
-{
- PH_TRACE;
- service_h service;
- Ecore_X_Window win_id;
- ct_group_data *cgroup_d = (ct_group_data *) data;
- int ret, i;
- char *email;
- contacts_record_h email_record = NULL;
- char buf[PH_TEXT_MAX_LEN + 1] = { '\0' };
- char temp[PH_TEXT_MAX_LEN + 1] = { '\0' };
-
- p_retm_if(NULL == cgroup_d, "parameter(cgroup_d) is NULL");
- p_retm_if(0 == cnt || NULL == list, "parameter(list) is NULL");
-
- win_id = elm_win_xwindow_get(cgroup_d->win);
- service_create(&service);
- service_set_app_id(service, EMAIL_COMPOSER_PKG);
- service_set_window(service, win_id);
-
- for (i = 0; i < cnt; i++)
- {
- ret = contacts_db_get_record(_contacts_email._uri, list[i],
- &email_record);
- if (CONTACTS_ERROR_NONE != ret)
- {
- ERR("contacts_db_get_record() Failed(%d)", ret);
- continue;
- }
- contacts_record_get_str_p(email_record, _contacts_email.email, &email);
- if (email && *email)
- {
- if (*buf)
- snprintf(temp, sizeof(temp), "%s", buf);
-
- if (*temp)
- snprintf(buf, sizeof(buf), "%s;%s", temp, email);
- else
- snprintf(buf, sizeof(buf), "%s", email);
- }
- contacts_record_destroy(email_record, true);
- }
- if (*buf)
- {
- PH_DBG("email %s", buf);
- service_add_extra_data(service, SERVICE_DATA_TO, buf);
- }
-
- service_send_launch_request(service, NULL, NULL);
- service_destroy(service);
-}
-
-static void group_notify_update(ct_group_data *cgroup_d)
-{
- PH_TRACE;
- if (GROUP_MODE_NORMAL == cgroup_d->group_mode)
- phone_hide_notify(cgroup_d->layout);
- else
- {
- if (0 < cgroup_d->count)
- {
- char buf[PH_TEXT_MAX_LEN + 1];
- snprintf(buf, sizeof(buf), "%s (%d)", S_(PH_SYS_POP_SELECTED),
- cgroup_d->count);
- phone_show_notify(cgroup_d->layout, buf);
- }
- else
- phone_show_notify(cgroup_d->layout,
- T_(CT_GET_TEXT_BASE_OP, CTTEXT_SELECT_GROUP));
- }
-}
-
-static void group_edit_result_cb(int grp_id, void *data, bool changed)
-{
- PH_TRACE;
- ct_group_data *cgroup_d = (ct_group_data *) data;
- group_notify_update((ct_group_data *) data);
-
- if (changed)
- {
- cgroup_d->group_mode = GROUP_MODE_NORMAL;
- phone_hide_notify(cgroup_d->layout);
- phone_group_set_navi(cgroup_d->layout);
- }
-}
-
-static void group_edit_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- ct_group_data *cgroup_d;
- ct_group_list *info = (ct_group_list *) data;
-
- cgroup_d = (ct_group_data *) evas_object_data_get(elm_object_item_widget_get(info->item),
- "cgroup_d");
- p_retm_if(NULL == cgroup_d, "evas_object_data_get() return NULL");
-
- phone_hide_notify(cgroup_d->layout);
- ctui_create_group_input_view(cgroup_d->win, cgroup_d->navi, (ct_group_list *) data,
- group_edit_result_cb, cgroup_d);
-}
-
-static void group_navi_item_update(ct_group_data *cgroup_d)
-{
- PH_TRACE;
- if (0 < cgroup_d->count)
- elm_object_disabled_set(cgroup_d->delete_button, EINA_FALSE);
- else
- elm_object_disabled_set(cgroup_d->delete_button, EINA_TRUE);
-}
-
-static void group_check_changed_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- ct_group_list *info = (ct_group_list *) data;
- ct_group_data *cgroup_d;
- p_retm_if(NULL == data, "data is NULL");
-
- cgroup_d = (ct_group_data *) evas_object_data_get(elm_object_item_widget_get(info->item),
- "cgroup_d");
- p_retm_if(NULL == cgroup_d, "evas_object_data_get() return NULL");
-
- if (EINA_TRUE == info->selected && false == info->is_read_only)
- cgroup_d->count++;
- else
- cgroup_d->count--;
- group_navi_item_update(cgroup_d);
- group_notify_update(cgroup_d);
-}
-
-static void group_quick_ctxpopup_dismissed_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- ct_group_data *cgroup_d = (ct_group_data *) data;
- p_retm_if(NULL == data, "invalid data");
- Evas_Object *btn = obj;
- p_retm_if(NULL == btn, "invalid btn");
- Evas_Object *icon = elm_object_part_content_get(btn, PART_ICON);
- p_retm_if(NULL == icon, "invalid icon");
- elm_image_file_set(icon, CTUI_IMG_ICON_EXPAND_OPENED, NULL);
- elm_object_part_content_set(btn, PART_ICON, icon);
- evas_object_del(cgroup_d->quick_menu_popup);
- cgroup_d->quick_menu_popup = NULL;
-}
-
-static void group_quick_ctxpopup_hide_cb(void *data, Evas *e, Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- Evas_Object *btn = (Evas_Object *) data;
- p_retm_if(NULL == data, "invalid data");
- Evas_Object *icon = elm_object_part_content_get(btn, PART_ICON);
- p_retm_if(NULL == icon, "invalid icon");
- elm_image_file_set(icon, CTUI_IMG_ICON_EXPAND_OPENED, NULL);
- elm_object_part_content_set(btn, PART_ICON, icon);
-}
-
-ct_list_data *create_group_list_date(Evas_Object *ctxpopup)
-{
- PH_TRACE;
- p_retv_if(NULL == ctxpopup, NULL);
- ct_list_data *clist_d = (ct_list_data *) calloc(1, sizeof(ct_list_data));
- p_retv_if(NULL == clist_d, NULL);
- Evas_Object * btn = (Evas_Object *)evas_object_data_get(ctxpopup, "quick_menu_button");
- ct_group_data * cgroup_d = (ct_group_data *)evas_object_data_get(ctxpopup, "cgroup_data");
- p_retv_if(NULL == cgroup_d,NULL);
- group_quick_ctxpopup_dismissed_cb(cgroup_d, btn, NULL);
- ct_group_list *info = (ct_group_list *)evas_object_data_get(ctxpopup, "group_list");
- p_retv_if(NULL == info, NULL);
-
- ph_view_info *view_info = (ph_view_info *) calloc(1, sizeof(ph_view_info));
- phone_set_view_info(view_info, cgroup_d->win, cgroup_d->navi,
- cgroup_d->ug, cgroup_d->ug_request, cgroup_d->ug_cnt_max,
- cgroup_d->ug_data);
-
- clist_d->win = view_info->win;
- clist_d->navi = view_info->navi;
- clist_d->ug = view_info->ug;
- clist_d->ug_data = view_info->ug_data;
- clist_d->ug_request = view_info->ug_request;
- clist_d->base_ab = -1;
-
- clist_d->base_ab = info->id_ab;
- clist_d->base_grp = info->id_grp;
- clist_d->base_ab_mode = info->mode;
- clist_d->title = SAFE_STRDUP(info->name);
-
- free(view_info);
- return clist_d;
-}
-
-static void list_email_group_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- ct_list_data *clist_d = create_group_list_date(obj);
- p_retm_if(NULL == clist_d, "clist_d is NULL");
- p_retm_if(NULL == evas_object_data_get(clist_d->navi, "cgroup_d"), " return NULL");
-
- int list_op = 0;
- if (-1 == clist_d->base_grp)
- list_op = CT_GET_LIST_PERSON_HAD_EMAIL_OF_ADDRBOOK_ID;
- else if (clist_d->base_grp)
- list_op = CT_GET_LIST_PERSON_HAD_EMAIL_OF_GROUP_ID;
- else
- list_op = CT_GET_LIST_PERSON_NOT_ASSIGNED_HAD_EMAIL_OF_ADDRBOOK_ID;
-
- ctui_create_list_select_view(clist_d->navi, phone_group_email_result_cb,
- evas_object_data_get(clist_d->navi, "cgroup_d"), list_op,
- clist_d->base_ab, clist_d->base_grp, 0);
- free(clist_d);
-}
-
-static void list_message_group_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- ct_list_data *clist_d = create_group_list_date(obj);
- p_retm_if(NULL == clist_d, "clist_d is NULL");
- p_retm_if(NULL == evas_object_data_get(clist_d->navi, "cgroup_d"), " return NULL");
-
- int list_op = 0;
- if (-1 == clist_d->base_grp)
- list_op = CT_GET_LIST_PERSON_HAD_NUMBER_OF_ADDRBOOK_ID;
- else if (clist_d->base_grp)
- list_op = CT_GET_LIST_PERSON_HAD_NUMBER_OF_GROUP_ID;
- else
- list_op = CT_GET_LIST_PERSON_NOT_ASSIGNED_HAD_NUMBER_OF_ADDRBOOK_ID;
-
- ctui_create_list_select_view(clist_d->navi, phone_group_message_result_cb,
- evas_object_data_get(clist_d->navi, "cgroup_d"), list_op,
- clist_d->base_ab, clist_d->base_grp, 0);
- free(clist_d);
-}
-
-void item_new(Evas_Object *ctxpopup, const char * text, const char * icon, quick_menu_cb group_quick_menu)
-{
- PH_TRACE;
- if(!ctxpopup)
- {
- return;
- }
- Evas_Object *layout = elm_layout_add(ctxpopup);
- evas_object_propagate_events_set(layout, EINA_FALSE);
- elm_layout_file_set(layout, CONTACT_BUTTON_THEME_EDJ, "quick.munu");
- evas_object_size_hint_min_set(layout, QUICK_MENU_SIZE, QUICK_MENU_SIZE);
- Evas_Object *exp_icon = elm_icon_add(layout);
- elm_image_file_set(exp_icon, icon, NULL);
- elm_object_part_content_set(layout, PART_ICON, exp_icon);
- elm_image_resizable_set(exp_icon, EINA_FALSE, EINA_FALSE);
- evas_object_show(layout);
- elm_object_part_text_set(layout,"elm.text.quick", text);
- elm_ctxpopup_item_append(ctxpopup, NULL, layout, group_quick_menu, NULL);
-}
-
-static void group_quick_menu(void *data, Evas *e, Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- ct_group_list *info = (ct_group_list *)evas_object_data_get(obj, "group_list");
- ct_group_data *cgroup_d = (ct_group_data *)data;
- p_retm_if(NULL == cgroup_d, "invalid cgroup_d");
- p_retm_if(NULL == data, "invalid data");
- const char *file_icon = NULL;
- const char *file_group = NULL;
- Evas_Object *icon = elm_object_part_content_get(obj, PART_ICON);
- elm_image_file_get(icon, &file_icon, &file_group);
- p_retm_if(NULL == file_icon, "elm_image_file_set() return NULL");
-
- if (0 == strcmp(file_icon, CTUI_IMG_ICON_EXPAND_CLOSED))
- {
- elm_image_file_set(icon, CTUI_IMG_ICON_EXPAND_OPENED, NULL);
- elm_object_part_content_set(obj, PART_ICON, icon);
- }
- else
- {
- elm_image_file_set(icon, CTUI_IMG_ICON_EXPAND_CLOSED, NULL);
- elm_object_part_content_set(obj, PART_ICON, icon);
-
- if (cgroup_d->quick_menu_popup)
- {
- evas_object_del(cgroup_d->quick_menu_popup);
- cgroup_d->quick_menu_popup = NULL;
- }
- cgroup_d->quick_menu_popup = elm_ctxpopup_add(cgroup_d->navi);
- evas_object_propagate_events_set(cgroup_d->quick_menu_popup, EINA_FALSE);
- int rotate = (int) evas_object_data_get(cgroup_d->navi, "phone_rotate");
- evas_object_data_set(cgroup_d->quick_menu_popup, "cgroup_data", cgroup_d);
- evas_object_data_set(cgroup_d->quick_menu_popup, "group_list", info);
- evas_object_data_set(cgroup_d->quick_menu_popup, "quick_menu_button", obj);
-
- if (0 == rotate || 180 == rotate)
- {
- elm_ctxpopup_direction_priority_set(cgroup_d->quick_menu_popup,
- ELM_CTXPOPUP_DIRECTION_DOWN, ELM_CTXPOPUP_DIRECTION_UP,
- ELM_CTXPOPUP_DIRECTION_LEFT, ELM_CTXPOPUP_DIRECTION_RIGHT);
- }
-
- evas_object_smart_callback_add(cgroup_d->quick_menu_popup, "dismissed",
- group_quick_ctxpopup_dismissed_cb, cgroup_d);
- evas_object_event_callback_add(cgroup_d->quick_menu_popup, EVAS_CALLBACK_HIDE,
- group_quick_ctxpopup_hide_cb, obj);
-
- elm_ctxpopup_horizontal_set(cgroup_d->quick_menu_popup, EINA_TRUE);
- item_new(cgroup_d->quick_menu_popup, T_(PH_GET_TEXT_BASIC, PHTEXT_EMAIL), IMG_MESSAGE_ICON, list_email_group_btn_cb);
- item_new(cgroup_d->quick_menu_popup, T_(PH_GET_TEXT_BASIC, PHTEXT_MESSAGE),PH_IMG_ICON_MESSAGE_PRESS, list_message_group_btn_cb);
-
- int x = 0;
- int y = 0;
- evas_pointer_canvas_xy_get(evas_object_evas_get(cgroup_d->navi), &x, &y);
- evas_object_move(cgroup_d->quick_menu_popup, x, y);
- evas_object_show(cgroup_d->quick_menu_popup);
- }
-}
-
-static Evas_Object* group_gl_content_get(void *data, Evas_Object *obj,
- const char *part)
-{
- PH_TRACE;
- Evas_Object *icon;
- Evas_Object *button;
- Evas_Object *check;
- ct_group_data *cgroup_d;
- ct_group_list *info = (ct_group_list *) data;
-
- cgroup_d = (ct_group_data *) evas_object_data_get(obj, "cgroup_d");
- p_retvm_if(NULL == cgroup_d, NULL, "evas_object_data_get() return NULL");
-
- if (0 == strcmp(part, "swallow.icon"))
- {
- if (CT_UG_REQUEST_SELECT_GROUP == cgroup_d->ug_request
- || CT_UG_REQUEST_SELECT_GROUP_ADD_TO_HOME
- == cgroup_d->ug_request)
- return NULL;
- if (GROUP_MODE_NORMAL == cgroup_d->group_mode)
- return NULL;
- else if (info->id_grp)
- {
- button = elm_button_add(obj);
- p_retvm_if(NULL == button, NULL, "elm_button_add() return NULL");
- evas_object_propagate_events_set(button, EINA_FALSE);
- elm_object_style_set(button, "rename");
- evas_object_smart_callback_add(button, "clicked", group_edit_btn_cb,
- info);
- return button;
- }
- }
- else if (0 == strncmp(part, "swallow.content", 15))
- {
- int index = -1;
- sscanf(part, "swallow.content%d", &index);
- p_retvm_if(index<1 || 6<index, NULL, "index(%d) is out of range",
- index);
-
- if (info->img && *info->img)
- {
- icon = elm_icon_add(obj);
- p_retvm_if(NULL == icon, NULL, "elm_icon_add() return NULL");
- elm_image_file_set(icon, info->img, NULL);
- evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_NONE, 1,
- 1);
- evas_object_size_hint_align_set(icon, 0.5, EVAS_HINT_FILL);
- return icon;
- }
- else if (info->img_list[index - 1] && *info->img_list[index - 1])
- {
- icon = elm_icon_add(obj);
- p_retvm_if(NULL == icon, NULL, "elm_icon_add() return NULL");
- elm_image_file_set(icon, info->img_list[index - 1], NULL);
- evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_NONE, 1,
- 1);
- evas_object_size_hint_align_set(icon, 0.5, EVAS_HINT_FILL);
- return icon;
- }
- }
- else if (0 == strcmp(part, "swallow.edit.icon")
- && GROUP_MODE_EDIT == cgroup_d->group_mode)
- {
- if (CT_UG_REQUEST_SELECT_GROUP == cgroup_d->ug_request)
- return NULL;
- if (info->is_read_only == true)
- {
- check = elm_check_add(obj);
- p_retvm_if(NULL == check, NULL, "elm_check_add() return NULL");
- evas_object_show(check);
- elm_object_disabled_set(check, EINA_TRUE);
- return check;
- }
-
- check = elm_check_add(obj);
- p_retvm_if(NULL == check, NULL, "elm_check_add() return NULL");
- evas_object_show(check);
- evas_object_propagate_events_set(check, EINA_FALSE);
- elm_check_state_pointer_set(check, &info->selected);
- elm_check_state_set(check, info->selected);
- evas_object_smart_callback_add(check, "changed", group_check_changed_cb,
- info);
- return check;
- }
- else if(0 == strcmp(part,"quick.menu.button") && GROUP_MODE_NORMAL == cgroup_d->group_mode)
- {
- Evas_Object *btn = elm_button_add(obj);
- evas_object_data_set(btn, "group_list", info);
- elm_object_style_set(btn, "transparency");
- Evas_Object *exp_icon = elm_icon_add(btn);
- elm_image_file_set(exp_icon, CTUI_IMG_ICON_EXPAND_OPENED, NULL);
- elm_object_part_content_set(btn, PART_ICON, exp_icon);
- evas_object_propagate_events_set(btn, EINA_FALSE);
- evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_UP, group_quick_menu, cgroup_d);
- evas_object_show(btn);
- return btn;
- }
- return NULL;
-}
-
-static void __group_return_id(ui_gadget_h ug, int group_id)
-{
- PH_TRACE;
- service_h service = NULL;
- char buf[16] = { 0, };
-
- service_create(&service);
-
- if (group_id)
- {
- snprintf(buf, sizeof(buf), "%d", group_id);
- service_add_extra_data(service, CT_UG_BUNDLE_RESULT_GROUP_ID, buf);
- }
-
- PH_DBG("group_id=%d", group_id);
- ug_send_result(ug, service);
-
- service_destroy(service);
-}
-
-static void group_gl_sel(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- Elm_Object_Item *item = (Elm_Object_Item *) event_info;
- ct_group_data *cgroup_d = (ct_group_data *) data;
- ct_group_list *info = (ct_group_list *) elm_object_item_data_get(item);
- ph_view_info *view_info;
- p_retm_if(NULL == info, "elm_object_item_data_get() return NULL");
-
- elm_gengrid_item_selected_set(item, EINA_FALSE);
-
- if (CT_UG_REQUEST_SELECT_GROUP == cgroup_d->ug_request)
- {
- __group_return_id(cgroup_d->ug, info->id_grp);
- ug_destroy_me(cgroup_d->ug);
- cgroup_d->ug = NULL;
- }
- else if (GROUP_MODE_NORMAL == cgroup_d->group_mode)
- {
- view_info = (ph_view_info *) calloc(1, sizeof(ph_view_info));
- phone_set_view_info(view_info, cgroup_d->win, cgroup_d->navi,
- cgroup_d->ug, cgroup_d->ug_request, cgroup_d->ug_cnt_max,
- cgroup_d->ug_data);
-
- if (0 < info->id_grp)
- ctui_list_create_contact_view_with_info(view_info,
- CT_GET_LIST_PERSON_OF_GROUP_ID, info);
- else
- // not assigned
- ctui_list_create_contact_view_with_info(view_info,
- CT_GET_LIST_PERSON_NOT_ASSIGNED_OF_ADDRBOOK_ID, info);
- free(view_info);
- }
- else
- {
-
- if (info->is_read_only == true)
- return; //skip default group
-
- info->selected = !info->selected;
- elm_gengrid_item_update(info->item);
-
- if (EINA_TRUE == info->selected)
- cgroup_d->count++;
- else
- cgroup_d->count--;
-
- group_navi_item_update(cgroup_d);
- group_notify_update(cgroup_d);
- }
-}
-
-static void group_create_itcs()
-{
- PH_TRACE;
- group_itcs[GROUP_ITC_GROUP_TITLE].func.text_get = group_gl_index_label_get;
-
- group_itcs[GROUP_ITC_1IMAGE].func.text_get = group_gl_label_get;
- group_itcs[GROUP_ITC_1IMAGE].func.content_get = group_gl_content_get;
- group_itcs[GROUP_ITC_1IMAGE].func.del = group_gl_del;
-
- group_itcs[GROUP_ITC_2IMAGE].func.text_get = group_gl_label_get;
- group_itcs[GROUP_ITC_2IMAGE].func.content_get = group_gl_content_get;
- group_itcs[GROUP_ITC_2IMAGE].func.del = group_gl_del;
-
- group_itcs[GROUP_ITC_3IMAGE].func.text_get = group_gl_label_get;
- group_itcs[GROUP_ITC_3IMAGE].func.content_get = group_gl_content_get;
- group_itcs[GROUP_ITC_3IMAGE].func.del = group_gl_del;
-
- group_itcs[GROUP_ITC_6IMAGE].func.text_get = group_gl_label_get;
- group_itcs[GROUP_ITC_6IMAGE].func.content_get = group_gl_content_get;
- group_itcs[GROUP_ITC_6IMAGE].func.del = group_gl_del;
-}
-
-static Elm_Gengrid_Item_Class* group_get_gengrid_item_class(const char *img,
- int count)
-{
- PH_TRACE;
- PH_DBG("count = %d", count);
- if (img && *img)
- {
- return &group_itcs[GROUP_ITC_1IMAGE];
- }
- else if (count <= 10)
- {
- return &group_itcs[GROUP_ITC_3IMAGE];
- }
- else
- {
- return &group_itcs[GROUP_ITC_6IMAGE];
- }
-}
-
-static contacts_filter_h group_create_filter_int(contacts_filter_h filter,
- const char *view_uri, int property_id, contacts_match_int_flag_e flag,
- int match_value)
-{
- PH_TRACE;
- int err = CONTACTS_ERROR_NONE;
-
- if (NULL == filter)
- {
- err = contacts_filter_create(view_uri, &filter);
- p_retvm_if(CONTACTS_ERROR_NONE != err, NULL,
- "contacts_filter_create() Failed(%d)", err);
- }
- else
- {
- err = contacts_filter_add_operator(filter,
- CONTACTS_FILTER_OPERATOR_AND);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_filter_add_operator() Failed(%d)", err);
- }
-
- err = contacts_filter_add_int(filter, property_id, flag, match_value);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_filter_add_int() Failed(%d)", err);
-
- return filter;
-}
-
-static void __group_get_images(ct_group_list *info, contacts_list_h person_list)
-{
- PH_TRACE;
- int cnt = 0;
- int err = CONTACTS_ERROR_NONE;
- contacts_record_h record = NULL;
-
- if (person_list == NULL)
- {
- ERR("person list is null");
- return;
- }
-
- err = contacts_list_get_current_record_p(person_list, &record);
- p_retm_if(CONTACTS_ERROR_NONE != err, "phone_cts_get_list() Failed(%d)",
- err);
- while (record)
- {
- char *path = NULL;
- contacts_record_get_str_p(record,
- _contacts_person_grouprel.image_thumbnail_path, &path);
- info->img_list[cnt++] = SAFE_STRDUP(path);
- err = contacts_list_next(person_list);
- if (CONTACTS_ERROR_NONE != err)
- break;
- contacts_list_get_current_record_p(person_list, &record);
- if (5 < cnt)
- break;
- }
-
-}
-
-static void __group_append_gengrid_of_ab(ct_group_data *cgroup_d, int ab_id,
- int ab_mode)
-{
- PH_TRACE;
- int err = CONTACTS_ERROR_NONE;
- unsigned int count = 0;
- ct_group_list *info;
- contacts_record_h record = NULL;
- contacts_list_h group_list = NULL;
- contacts_list_h person_list = NULL;
- contacts_filter_h filter = NULL;
- contacts_query_h query = NULL;
-
- unsigned int person_grouprel_projection[] = {
- _contacts_person_grouprel.person_id,
- _contacts_person_grouprel.status,
- _contacts_person_grouprel.display_name,
- _contacts_person_grouprel.display_name_index,
- _contacts_person_grouprel.addressbook_ids,
- _contacts_person_grouprel.image_thumbnail_path,
- _contacts_person_grouprel.link_count, };
-
- err = phone_cts_get_list(_contacts_group._uri,
- _contacts_group.address_book_id, ab_id, &group_list);
- p_warn_if(CONTACTS_ERROR_NONE != err, "phone_cts_get_list() Failed(%d)",
- err);
-
- err = contacts_list_get_current_record_p(group_list, &record);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_list_get_current_record_p() Failed(%d)", err);
- while (record)
- {
- int grp_id;
- char* img = NULL;
- char* group_system_id = NULL;
- bool is_read_only = false;
-
- err = contacts_record_get_int(record, _contacts_group.id, &grp_id);
- p_retm_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
- info = (ct_group_list *) calloc(1, sizeof(ct_group_list));
- if (NULL == info)
- {
- ERR("calloc() return NULL");
- break;
- }
- info->id_ab = ab_id;
- info->mode = ab_mode;
- info->id_grp = grp_id;
- info->name = '\0';
- err = contacts_record_get_str_p(record, _contacts_group.image_path,
- &img);
-
- if(CONTACTS_ERROR_NONE != err)
- {
- free(info);
- info = NULL;
- return;
- }
-
- info->img = SAFE_STRDUP(img);
-
- contacts_record_get_str_p(record, _contacts_group.extra_data,
- &group_system_id);
- if (group_system_id && cgroup_d->group_mode != GROUP_MODE_NORMAL)
- {
- free(info);
- info = NULL;
- err = contacts_list_next(group_list);
- if (CONTACTS_ERROR_NONE != err)
- {
- ERR("contacts_list_next() Failed(%d)", err);
- break;
- }
- err = contacts_list_get_current_record_p(group_list, &record);
- if (CONTACTS_ERROR_NONE != err)
- {
- ERR("contacts_list_get_current_record_p() Failed(%d)", err);
- break;
- }
- continue;
- }
- else
- {
- info->name = SAFE_STRDUP(phone_get_group_name(record));
- }
-
- err = phone_cts_get_list(_contacts_person_grouprel._uri,
- _contacts_person_grouprel.group_id, grp_id, &person_list);
- p_retm_if(CONTACTS_ERROR_NONE != err, "phone_cts_get_list() Failed(%d)",
- err);
-
- err = contacts_record_get_bool(record, _contacts_group.is_read_only,
- &is_read_only);
- p_retm_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_bool() Failed(%d)", err);
- info->is_read_only = is_read_only;
-
- err = contacts_list_get_count(person_list, &count);
- p_retm_if(CONTACTS_ERROR_NONE != err,
- "contacts_list_get_count() Failed(%d)", err);
- info->count = count;
- __group_get_images(info, person_list);
-
- info->item = elm_gengrid_item_append(cgroup_d->gengrid,
- group_get_gengrid_item_class(info->img, info->count), info,
- group_gl_sel, cgroup_d);
-
- err = contacts_list_next(group_list);
- if (CONTACTS_ERROR_NONE != err)
- {
- ERR("contacts_list_next() Failed(%d)", err);
- break;
- }
- err = contacts_list_get_current_record_p(group_list, &record);
- if (CONTACTS_ERROR_NONE != err)
- {
- ERR("contacts_list_get_current_record_p() Failed(%d)", err);
- break;
- }
- }
- err = contacts_list_destroy(group_list, true);
- p_retm_if(CONTACTS_ERROR_NONE != err,
- "contacts_list_get_current_record_p() Failed(%d)", err);
-
- err = contacts_query_create(_contacts_person_grouprel._uri, &query);
- p_retm_if(CONTACTS_ERROR_NONE != err, "contacts_query_create() Failed(%d)",
- err);
-
- filter = group_create_filter_int(filter, _contacts_person_grouprel._uri,
- _contacts_person_grouprel.address_book_id, CONTACTS_MATCH_EQUAL,
- ab_id);
- filter = group_create_filter_int(filter, _contacts_person_grouprel._uri,
- _contacts_person_grouprel.group_id, CONTACTS_MATCH_NONE, 0);
-
- do
- {
- if (CONTACTS_ERROR_NONE
- != (err = contacts_query_set_filter(query, filter)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_query_set_distinct(query, true)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_query_set_projection(query,
- person_grouprel_projection,
- sizeof(person_grouprel_projection) / sizeof(int))))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_db_get_records_with_query(query, 0, 0,
- &person_list)))
- break;
-
- err = contacts_list_get_count(person_list, &count);
- p_retm_if(CONTACTS_ERROR_NONE != err,
- "contacts_list_get_count() Failed(%d)", err);
-
- if (0 < count && cgroup_d->group_mode == GROUP_MODE_NORMAL)
- {
- info = (ct_group_list *) calloc(1, sizeof(ct_group_list));
- p_retm_if(NULL == info, "calloc() return NULL");
- info->id_ab = ab_id;
- info->count = count;
- info->mode = ab_mode;
- if (0 == ab_id)
- info->name = strdup(T_(CT_GET_TEXT_BASIC, CTTEXT_NOT_ASSIGNED));
- else
- info->name = strdup(T_(CT_GET_TEXT_BASIC, CTTEXT_ALL_CONTACTS));
- __group_get_images(info, person_list);
- info->item = elm_gengrid_item_append(cgroup_d->gengrid,
- group_get_gengrid_item_class(info->img, info->count), info,
- group_gl_sel, cgroup_d);
- }
- }
- while (0);
-
- contacts_query_destroy(query);
- contacts_filter_destroy(filter);
-}
-
-static void __group_fill_layout(ct_group_data *cgroup_d)
-{
- PH_TRACE;
- int ret;
- contacts_record_h record = NULL;
- contacts_list_h addressbook_list = NULL;
-
- ret = contacts_db_get_all_records(_contacts_address_book._uri, 0, 0,
- &addressbook_list);
- p_retm_if(CONTACTS_ERROR_NONE != ret,
- "contacts_db_get_all_records() Failed(%d)", ret);
- ret = contacts_list_get_current_record_p(addressbook_list, &record);
- p_retm_if(CONTACTS_ERROR_NONE != ret,
- "contacts_list_get_current_record_p() Failed(%d)", ret);
- while (record)
- {
- int ab_id;
- int ab_mode;
- char *name;
-
- ret = contacts_record_get_int(record, _contacts_address_book.id,
- &ab_id);
- p_retm_if(CONTACTS_ERROR_NONE != ret,
- "contacts_record_get_int() Failed(%d)", ret);
- if (0 == ab_id)
- name = (char *) T_(CT_GET_TEXT_BASIC, CTTEXT_MY_PHONE);
- else
- {
- ret = contacts_record_get_str_p(record, _contacts_address_book.name,
- &name);
- p_retm_if(CONTACTS_ERROR_NONE != ret,
- "contacts_record_get_str() Failed(%d)", ret);
- }
- ret = contacts_record_get_int(record, _contacts_address_book.mode,
- &ab_mode);
- p_retm_if(CONTACTS_ERROR_NONE != ret,
- "contacts_record_get_int() Failed(%d)", ret);
-
- if (GROUP_MODE_NORMAL == cgroup_d->group_mode
- || CONTACTS_ADDRESS_BOOK_MODE_READONLY != ab_mode)
- {
- elm_gengrid_item_append(cgroup_d->gengrid,
- &group_itcs[GROUP_ITC_GROUP_TITLE], name, NULL, NULL);
- __group_append_gengrid_of_ab(cgroup_d, ab_id, ab_mode);
- }
- ret = contacts_list_next(addressbook_list);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_list_next() Failed(%d)",
- ret);
- ret = contacts_list_get_current_record_p(addressbook_list, &record);
- p_retm_if(CONTACTS_ERROR_NONE != ret,
- "contacts_list_get_current_record_p() Failed(%d)", ret);
- }
- ret = contacts_list_destroy(addressbook_list, true);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_list_destroy() Failed(%d)",
- ret);
-}
-
-static void group_edit_mode_end(ct_group_data *cgroup_d, bool redraw)
-{
- PH_TRACE;
- p_retm_if(NULL == cgroup_d, "parameter(cgroup_d) is NULL");
- cgroup_d->count = 0;
- phone_hide_notify(cgroup_d->layout);
- cgroup_d->group_mode = GROUP_MODE_NORMAL;
- if (redraw)
- phone_group_set_navi(cgroup_d->layout);
- elm_gengrid_clear(cgroup_d->gengrid);
- __group_fill_layout(cgroup_d);
-}
-
-static Eina_Bool group_wait_changed(void *user_data)
-{
- PH_TRACE;
- ct_group_data *cgroup_d = (ct_group_data *) user_data;
- ecore_timer_del(cgroup_d->waiting_timer);
- cgroup_d->waiting_timer = NULL;
- if (cgroup_d->need_update)
- {
- PH_DBG("need to update");
- cgroup_d->need_update = false;
- group_changed(cgroup_d);
- }
- return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool group_changed(void *user_data)
-{
- PH_TRACE;
- ct_group_data *cgroup_d = (ct_group_data *) user_data;
- PH_DBG("group_changed");
- if (cgroup_d->update_timer)
- {
- ecore_timer_del(cgroup_d->update_timer);
- cgroup_d->update_timer = NULL;
- }
-
- if (cgroup_d->waiting_timer)
- {
- PH_DBG("waiting 3 seconds for group change");
- cgroup_d->need_update = true;
- return ECORE_CALLBACK_RENEW;;
- }
- else
- {
- cgroup_d->waiting_timer = ecore_timer_add(3.0, group_wait_changed,
- cgroup_d);
- }
-
- elm_gengrid_clear(cgroup_d->gengrid);
- __group_fill_layout(cgroup_d);
-
- return ECORE_CALLBACK_CANCEL;
-}
-
-static void group_data_lazy_update(const char* view_uri, void *data)
-{
- PH_TRACE;
- ct_group_data *cgroup_d = (ct_group_data *) data;
-
- if (cgroup_d->update_timer)
- {
- ecore_timer_del(cgroup_d->update_timer);
- cgroup_d->update_timer = NULL;
- }
-
- PH_DBG("cgroup_d->is_background = %d", cgroup_d->is_background);
-
- if (cgroup_d->is_background)
- cgroup_d->update_timer = ecore_timer_add(3.0, group_changed, cgroup_d);
- else
- group_changed(cgroup_d);
-
- if (cgroup_d->group_mode == GROUP_MODE_EDIT)
- group_edit_mode_end(cgroup_d, true);
-}
-
-static void group_delete_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- int ret;
- bool completed = true;
- Elm_Object_Item * item;
- const Elm_Gengrid_Item_Class *itc_temp;
- ct_group_data *cgroup_d = (ct_group_data *) data;
-
- group_popup_hide_cb(cgroup_d, NULL, NULL);
-
- item = elm_gengrid_first_item_get(cgroup_d->gengrid);
-
- while (item)
- {
- itc_temp = elm_gengrid_item_item_class_get(item);
- if (0
- == strcmp(itc_temp->item_style,
- group_itcs[GROUP_ITC_GROUP_TITLE].item_style))
- {
- item = elm_gengrid_item_next_get(item);
- continue;
- }
-
- ct_group_list *info = (ct_group_list *) elm_object_item_data_get(item);
- if (info && info->selected)
- {
- ret = contacts_db_delete_record(_contacts_group._uri, info->id_grp);
- if (CONTACTS_ERROR_NONE != ret)
- {
- ERR("Error : contacts_db_delete_record() Failed(%d)", ret);
- completed = false;
- break;
- }
- }
- item = elm_gengrid_item_next_get(item);
- }
- if (completed)
- phone_show_tickernoti(S_(PH_SYS_POP_REMOVED));
- else
- phone_show_tickernoti(S_(PH_SYS_POP_FAILED));
-
- group_edit_mode_end(cgroup_d, true);
-}
-
-static void group_cancel_btn_cb(void *data)
-{
- PH_TRACE;
- Elm_Object_Item * item;
- ct_group_data *cgroup_d = (ct_group_data *) data;
- ct_group_list *info;
- const Elm_Gengrid_Item_Class *itc_temp;
-
- item = elm_gengrid_first_item_get(cgroup_d->gengrid);
- while (item)
- {
- itc_temp = elm_gengrid_item_item_class_get(item);
- if (0
- == strcmp(itc_temp->item_style,
- group_itcs[GROUP_ITC_GROUP_TITLE].item_style))
- {
- item = elm_gengrid_item_next_get(item);
- continue;
- }
-
- info = (ct_group_list *) elm_object_item_data_get(item);
- if (NULL == info)
- continue;
- info->selected = EINA_FALSE;
- item = elm_gengrid_item_next_get(item);
- }
- group_edit_mode_end(cgroup_d, true);
-}
-
-static void group_edit_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- ct_group_data *cgroup_d = (ct_group_data *) data;
- if (cgroup_d->popup)
- {
- evas_object_del(cgroup_d->popup);
- cgroup_d->popup = NULL;
- }
-
- cgroup_d->group_mode = GROUP_MODE_EDIT;
- phone_group_set_navi(cgroup_d->layout);
- elm_gengrid_clear(cgroup_d->gengrid);
- __group_fill_layout(cgroup_d);
- phone_show_notify(cgroup_d->layout,
- T_(CT_GET_TEXT_BASE_OP, CTTEXT_SELECT_GROUP));
-
-}
-
-static void group_more_cb(void *data)
-{
- PH_TRACE;
- int rotate;
- int x, y, w, h;
- ct_group_data *cgroup_d = (ct_group_data *) data;
-
- if (cgroup_d->popup)
- {
- evas_object_del(cgroup_d->popup);
- cgroup_d->popup = NULL;
- }
-
- cgroup_d->popup = elm_ctxpopup_add(cgroup_d->navi);
- p_retm_if(NULL == cgroup_d->popup, "elm_ctxpopup_add() return NULL");
-
- rotate = (int) evas_object_data_get(cgroup_d->navi, "phone_rotate");
- if (0 == rotate || 180 == rotate)
- elm_ctxpopup_direction_priority_set(cgroup_d->popup,
- ELM_CTXPOPUP_DIRECTION_DOWN, ELM_CTXPOPUP_DIRECTION_UP,
- ELM_CTXPOPUP_DIRECTION_LEFT, ELM_CTXPOPUP_DIRECTION_RIGHT);
-
- evas_object_smart_callback_add(cgroup_d->popup, "dismissed",
- group_popup_hide_cb, cgroup_d);
-
- elm_ctxpopup_item_append(cgroup_d->popup, S_(PH_SYS_SK_EDIT), NULL,
- group_edit_cb, cgroup_d);
-
- evas_object_geometry_get(cgroup_d->navi, &x, &y, &w, &h);
- evas_object_move(cgroup_d->popup, 0, y + h);
- evas_object_show(cgroup_d->popup);
-}
-
-static void group_add_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- ct_group_data *cgroup_d = (ct_group_data *) data;
- evas_object_data_set(cgroup_d->navi, "navi_it_pop_to", cgroup_d->navi_item);
- ctui_create_group_input_view(cgroup_d->win, cgroup_d->navi, NULL, NULL,
- NULL);
-}
-
-#ifdef _CT_GROUP_DEFAULT_GROUP_UPDATE_DB
-static void group_update_default_group_name(keynode_t *key, void *data)
-{
- PH_TRACE;
- int ret;
- int text_index= -1;
- contacts_record_h record = NULL;
- contacts_record_h group_record = NULL;
- contacts_list_h group_list = NULL;
-
- group_list = NULL;
- ret = contacts_db_get_all_records( _contacts_group._uri,0,0,&group_list);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_db_get_all_records() Failed(%d)", ret);
- ret = contacts_list_get_current_record_p(group_list, &record);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_list_get_current_record_p() Failed(%d)", ret);
- while(record)
- {
- int grp_id;
- char* group_sysid;
- char* group_name;
-
- ret = contacts_record_get_int(record,_contacts_group.id,&grp_id);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_record_get_int() Failed(%d)", ret);
- ret = contacts_record_get_str_p(record,_contacts_group.extra_data,&group_sysid);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_record_get_str_p() Failed(%d)", ret);
- ret = contacts_record_get_str_p(record,_contacts_group.name,&group_name);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_record_get_str_p() Failed(%d)", ret);
- if(group_sysid == NULL)
- {
- PH_DBG("sysid null ,group_name__ = %s ", group_name);
-
- ret = contacts_list_next(group_list);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_list_next() Failed(%d)", ret);
-
- ret = contacts_list_get_current_record_p(group_list, &record);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_list_get_current_record_p() Failed(%d)", ret);
- continue;
- }
- PH_DBG("group_sysid = %s",group_sysid);
- if(strcmp(group_sysid,FRIENDS)==0)
- text_index = CTTEXT_FRIENDS;
- else if(strcmp(group_sysid,FAMILY)==0)
- text_index = CTTEXT_FRIENDS+1;
- else if(strcmp(group_sysid,COWORKERS)==0)
- text_index = CTTEXT_FRIENDS+2;
- else
- {
- ret = contacts_list_next(group_list);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_list_next() Failed(%d)", ret);
-
- ret = contacts_list_get_current_record_p(group_list, &record);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_list_get_current_record_p() Failed(%d)", ret);
- continue;
- }
-
- if(text_index == -1)
- {
- ret = contacts_list_next(group_list);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_list_next() Failed(%d)", ret);
-
- ret = contacts_list_get_current_record_p(group_list, &record);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_list_get_current_record_p() Failed(%d)", ret);
- ERR("text_index is -1, failed");
- continue;
- }
- else
- PH_DBG("text_index = %d",text_index);
-
- PH_DBG("group = %s , %s", group_name,T_(CT_GET_TEXT_BASIC, text_index));
-
- if(strcmp(group_name,T_(CT_GET_TEXT_BASIC, text_index)) != 0)
- {
- ret = contacts_db_get_record(_contacts_group._uri,grp_id,&group_record);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_db_get_record() Failed(%d)", ret);
-
- ret = contacts_record_set_str(group_record,_contacts_group.name,T_(CT_GET_TEXT_BASIC, text_index));
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_record_set_str() Failed(%d)", ret);
-
- ret = contacts_db_update_record(group_record);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_db_update_record() Failed(%d)", ret);
-
- ret = contacts_record_destroy(group_record, true);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_record_destroy() Failed(%d)", ret);
- }
- ret = contacts_list_next(group_list);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_list_next() Failed(%d)", ret);
-
- ret = contacts_list_get_current_record_p(group_list, &record);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_list_get_current_record_p() Failed(%d)", ret);
- }
- ret = contacts_list_destroy(group_list, true);
- p_retm_if(CONTACTS_ERROR_NONE != ret, "contacts_list_destroy() Failed(%d)", ret);
-
-}
-#endif
-
-static void __group_pop_as_topmost(void *data, Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- ct_group_data *cgroup_d = (ct_group_data *) data;
- if (cgroup_d->navi_item == elm_naviframe_top_item_get(obj))
- {
- group_notify_update(cgroup_d);
- }
-}
-
-static void group_view_delete_cb(void *data, Evas *e, Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- int ret;
- ct_group_data *cgroup_d = (ct_group_data *) data;
- p_retm_if(NULL == cgroup_d, "parameter(cgroup_d) is NULL");
-
- ret = contacts_db_remove_changed_cb(_contacts_contact._uri,
- group_data_lazy_update, cgroup_d);
- p_warn_if(CONTACTS_ERROR_NONE, "contacts_db_remove_changed_cb() Failed(%d)",
- ret);
- ret = contacts_db_remove_changed_cb(_contacts_group._uri,
- group_data_lazy_update, cgroup_d);
- p_warn_if(CONTACTS_ERROR_NONE, "contacts_db_remove_changed_cb() Failed(%d)",
- ret);
- ret = contacts_db_remove_changed_cb(_contacts_person._uri,
- group_data_lazy_update, cgroup_d);
- p_warn_if(CONTACTS_ERROR_NONE, "contacts_db_remove_changed_cb() Failed(%d)",
- ret);
-
-#ifdef _CT_GROUP_DEFAULT_GROUP_UPDATE_DB
- ret = vconf_ignore_key_changed(VCONFKEY_LANGSET, group_update_default_group_name);
- p_warn_if(-1 == ret, "vconf_ignore_key_changed() Failed");
-#endif
-
- if (cgroup_d->th)
- {
- elm_theme_extension_del(cgroup_d->th, GROUP_THEME_EDJ);
- elm_theme_extension_del(cgroup_d->th, CONTACT_BUTTON_THEME_EDJ);
- elm_theme_free(cgroup_d->th);
- }
-
- if (cgroup_d->child_ug)
- ug_destroy(cgroup_d->child_ug);
-
- if (cgroup_d->crop_ug)
- ug_destroy((ui_gadget_h) cgroup_d->crop_ug);
-
- if (cgroup_d->child_ug)
- ug_destroy(cgroup_d->child_ug);
-
- if (cgroup_d->popup)
- evas_object_del(cgroup_d->popup);
-
- if (cgroup_d->update_timer)
- ecore_timer_del(cgroup_d->update_timer);
-
- if (cgroup_d->waiting_timer)
- ecore_timer_del(cgroup_d->waiting_timer);
-
- evas_object_smart_callback_del(cgroup_d->navi, "transition,finished",
- __group_pop_as_topmost);
-
- free(cgroup_d);
-}
-
-static int group_create_layout(ct_group_data *cgroup_d, Evas_Object *parent)
-{
- PH_TRACE;
- int ret;
- const int CT_GROUP_ITEM_WIDTH = 360;
- const int CT_GROUP_ITEM_HEIGHT = 340;
- double scale;
- Evas_Object *layout;
- Evas_Object *base;
- Evas_Object *gengrid;
- cgroup_d->navi = parent;
-
- base = elm_layout_add(cgroup_d->navi);
- p_retvm_if(NULL == base, -1, "elm_layout_add() return NULL");
- elm_layout_file_set(base, SELECTION_INFO_EDJ, "selectioninfo_layout");
- layout = phone_create_base_layout(base, false);
- p_retvm_if(NULL == layout, -1, "phone_create_base_layout() return NULL");
- elm_object_part_content_set(base, "contents", layout);
- cgroup_d->layout = base;
-
- gengrid = elm_gengrid_add(layout);
- p_retvm_if(NULL == gengrid, -1, "elm_gengrid_add() return NULL");
- elm_object_theme_set(gengrid, cgroup_d->th);
- evas_object_size_hint_weight_set(gengrid, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
- elm_gengrid_align_set(gengrid, 0.5, 0.0);
- evas_object_data_set(gengrid, "cgroup_d", cgroup_d);
-
- scale = elm_config_scale_get();
- elm_gengrid_group_item_size_set(gengrid, (int) (720 * scale),
- (int) (50 * scale));
- elm_gengrid_item_size_set(gengrid, (int) (CT_GROUP_ITEM_WIDTH * scale),
- (int) (CT_GROUP_ITEM_HEIGHT * scale));
- elm_gengrid_horizontal_set(gengrid, EINA_FALSE);
-
- elm_scroller_policy_set(gengrid, ELM_SCROLLER_POLICY_OFF,
- ELM_SCROLLER_POLICY_AUTO);
- elm_object_part_content_set(layout, "elm.swallow.content", gengrid);
- cgroup_d->gengrid = gengrid;
-
-#ifdef _CT_GROUP_DEFAULT_GROUP_UPDATE_DB
- group_update_default_group_name(NULL, NULL);
- ret = vconf_notify_key_changed(VCONFKEY_LANGSET, group_update_default_group_name, NULL);
- p_warn_if(-1 == ret, "vconf_notify_key_changed() Failed");
-#endif
-
- group_create_itcs();
- __group_fill_layout(cgroup_d);
-
- evas_object_event_callback_add(cgroup_d->layout, EVAS_CALLBACK_DEL,
- group_view_delete_cb, cgroup_d);
-
- ret = contacts_db_add_changed_cb(_contacts_contact._uri,
- group_data_lazy_update, cgroup_d);
- p_warn_if(CONTACTS_ERROR_NONE, "contacts_db_add_changed_cb() Failed(%d)",
- ret);
-
- ret = contacts_db_add_changed_cb(_contacts_group._uri,
- group_data_lazy_update, cgroup_d);
- p_warn_if(CONTACTS_ERROR_NONE, "contacts_db_add_changed_cb() Failed(%d)",
- ret);
-
- ret = contacts_db_add_changed_cb(_contacts_person._uri,
- group_data_lazy_update, cgroup_d);
- p_warn_if(CONTACTS_ERROR_NONE, "contacts_db_add_changed_cb() Failed(%d)",
- ret);
-
- return 0;
-
-}
-
-API void phone_group_set_navi(Evas_Object *layout)
-{
- PH_TRACE;
- ct_group_data *cgroup_d;
- Elm_Object_Item *navi_it;
-
- cgroup_d = (ct_group_data *) evas_object_data_get(layout, KEY_GROUP_DATA);
- p_retm_if(NULL == cgroup_d, "cgroup_d is NULL");
- navi_it = elm_naviframe_bottom_item_get(cgroup_d->navi);
- p_retm_if(NULL == navi_it, "navi item is NULL");
-
- phone_navi_item_reset(cgroup_d->navi_item, cgroup_d);
-
- if (!cgroup_d->ug)
- {
- if (GROUP_MODE_NORMAL == cgroup_d->group_mode)
- {
- Evas_Object *group_button;
-
- group_button = phone_create_toolbar_btn(cgroup_d->layout,
- T_(CT_GET_TEXT_BASE_OP, CTTEXT_CREATE_GROUP), group_add_cb, cgroup_d);
- elm_object_part_content_set(cgroup_d->layout, "toolbar",
- group_button);
-
- cgroup_d->menu_cb = group_more_cb;
- }
- else
- {
- cgroup_d->delete_button = phone_create_toolbar_btn(cgroup_d->layout,
- T_(PH_GET_TEXT_BASIC, CTTEXT_REMOVE), group_delete_btn_cb, cgroup_d);
- elm_object_part_content_set(cgroup_d->layout, "toolbar",
- cgroup_d->delete_button);
- elm_object_disabled_set(cgroup_d->delete_button, EINA_TRUE);
-
- cgroup_d->back_cb = group_cancel_btn_cb;
- }
- }
-}
-
-API Evas_Object* phone_create_group_view(ph_view_info *view_info)
-{
- PH_TRACE;
- int ret;
- Elm_Theme *th;
- ct_group_data *cgroup_d = (ct_group_data *) calloc(1, sizeof(ct_group_data));
- p_retvm_if(NULL == cgroup_d, NULL, "Fail to calloc ct_group_data");
- cgroup_d->ug = view_info->ug;
- cgroup_d->ug_request = view_info->ug_request;
- cgroup_d->ug_cnt_max = view_info->ug_cnt_max;
- cgroup_d->ug_data = view_info->ug_data;
- cgroup_d->win = view_info->win;
- cgroup_d->navi_item = elm_naviframe_bottom_item_get(view_info->navi);
- cgroup_d->is_background = true;
-
- th = elm_theme_new();
- elm_theme_ref_set(th, NULL);
- elm_theme_extension_add(th, GROUP_THEME_EDJ);
- elm_theme_extension_add(th, CONTACT_BUTTON_THEME_EDJ);
- cgroup_d->th = th;
-
- ret = group_create_layout(cgroup_d, view_info->navi);
- if (ret < 0)
- {
- free(cgroup_d);
- return NULL;
- }
-
- evas_object_data_set(cgroup_d->layout, KEY_GROUP_DATA, cgroup_d);
- evas_object_data_set(cgroup_d->navi, KEY_GROUP_DATA, cgroup_d);
-
- evas_object_smart_callback_add(view_info->navi, "transition,finished",
- __group_pop_as_topmost, cgroup_d);
-
- return cgroup_d->layout;
-}
-
-API void phone_group_view_reset(Evas_Object *base)
-{
- PH_TRACE;
- ct_group_data *cgroup_d;
- Elm_Object_Item * item;
-
- cgroup_d = (ct_group_data *) evas_object_data_get(base, KEY_GROUP_DATA);
- p_retm_if(NULL == cgroup_d, "cgroup_d is null");
-
- if (cgroup_d->child_ug)
- {
- ug_destroy(cgroup_d->child_ug);
- cgroup_d->child_ug = NULL;
- }
-
- item = elm_naviframe_bottom_item_get(cgroup_d->navi);
- if (elm_naviframe_top_item_get(cgroup_d->navi) != item)
- elm_naviframe_item_pop_to(item);
-
- if (GROUP_MODE_EDIT == cgroup_d->group_mode)
- group_edit_mode_end(cgroup_d, false);
-}
-
-API void phone_group_view_language_changed(Evas_Object *base)
-{
- PH_TRACE;
- ct_group_data *cgroup_d;
- cgroup_d = (ct_group_data *) evas_object_data_get(base, KEY_GROUP_DATA);
- p_retm_if(NULL == cgroup_d, "evas_object_data_get() return NULL");
- group_changed(cgroup_d);
-
- if (cgroup_d->group_mode == GROUP_MODE_EDIT)
- group_notify_update(cgroup_d);
-}
-
-API void phone_group_set_background(Evas_Object *obj, bool is_background)
-{
- PH_TRACE;
- ct_group_data *cgroup_d;
- cgroup_d = (ct_group_data *) evas_object_data_get(obj, KEY_GROUP_DATA);
- p_retm_if(NULL == cgroup_d, "group data is null");
-
- cgroup_d->is_background = is_background;
- if (cgroup_d->update_timer)
- {
- ecore_timer_del(cgroup_d->update_timer);
- cgroup_d->update_timer = NULL;
- group_changed(cgroup_d);
- }
-}
-
-API Evas_Object* phone_create_group_view_ug(ui_gadget_h ug, Evas_Object *parent,
- int ug_request)
-{
- PH_TRACE;
- int ret;
- Elm_Theme *th;
- ct_group_data *cgroup_d = (ct_group_data *) calloc(1, sizeof(ct_group_data));
- p_retvm_if(NULL == cgroup_d, NULL, "Fail to calloc ct_group_data");
- cgroup_d->ug = ug;
- cgroup_d->ug_request = ug_request;
- cgroup_d->navi = elm_naviframe_add(parent);
- p_retvm_if(NULL == cgroup_d->navi, FALSE,
- "elm_naviframe_add() return NULL");
-
- ea_object_event_callback_add(cgroup_d->navi, EA_CALLBACK_BACK, &Common::ViewManager::onBack, cgroup_d->win);
- ea_object_event_callback_add(cgroup_d->navi, EA_CALLBACK_MORE, &Common::ViewManager::onMenu, NULL);
- elm_object_part_content_set(parent, "elm.swallow.content", cgroup_d->navi);
- evas_object_show(cgroup_d->navi);
-
- th = elm_theme_new();
- elm_theme_ref_set(th, NULL);
- elm_theme_extension_add(th, GROUP_THEME_EDJ);
- elm_theme_extension_add(th, CONTACT_BUTTON_THEME_EDJ);
- cgroup_d->th = th;
-
- ret = group_create_layout(cgroup_d, cgroup_d->navi);
- if (ret < 0)
- {
- free(cgroup_d);
- return NULL;
- }
- cgroup_d->navi_item = elm_naviframe_item_push(cgroup_d->navi,
- T_(CT_GET_TEXT_BASIC, CTTEXT_GROUP), NULL, NULL,
- cgroup_d->layout, NULL);
- evas_object_data_set(cgroup_d->layout, KEY_GROUP_DATA, cgroup_d);
- return cgroup_d->layout;
-}
-
diff --git a/lib/list/ct-list-contact-view.cpp b/lib/list/ct-list-contact-view.cpp
deleted file mode 100755
index 6cd06ea..0000000
--- a/lib/list/ct-list-contact-view.cpp
+++ /dev/null
@@ -1,1264 +0,0 @@
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-
-#include <string.h>
-#include <ui-gadget-module.h>
-
-#include "phone.h"
-#include "ct-detail.h"
-#include "ct-list.h"
-#include "ct-list-utils.h"
-#include "ct-list-view-ug.h"
-#include "ct-list-edit-view.h"
-#include "ct-list-contact-view.h"
-#include "ct-group.h"
-#include "ct-list.h"
-#include "phone-common.h"
-
-static void __list_insert_records(ct_list_data *clist_d);
-
-API void ctui_list_new_btn_clicked_cb(void *data,
- Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
- ct_detail_data *cdetail_d = NULL;
- ph_view_info *view_info = NULL;
-
- assert(clist_d);
- p_ret_if(!clist_d);
-
- switch (clist_d->ug_request)
- {
- //case PH_UG_REQUEST_SET_WITH_NUM:
- //case PH_UG_REQUEST_SET_WITH_EMAIL:
- //case PH_UG_REQUEST_SET_WITH_WEB:
- case PH_UG_REQUEST_SET_WITH_IMG:
- case PH_UG_REQUEST_SET_WITH_RINGTONE:
- case CT_UG_REQUEST_UPDATE_CONTACT:
- case CT_UG_REQUEST_UPDATE_WITH_NUM:
- case CT_UG_REQUEST_UPDATE_WITH_EMAIL:
- case CT_UG_REQUEST_UPDATE_WITH_WEB:
- case CT_UG_REQUEST_SAVE_IMG:
- case CT_UG_REQUEST_SAVE_RINGTONE:
- view_info = (ph_view_info *) calloc(1, sizeof(ph_view_info));
- phone_set_view_info(view_info, clist_d->win, clist_d->navi,
- clist_d->ug, clist_d->ug_request, clist_d->cnt_max_check,
- clist_d->ug_data);
- ctui_list_update_with_data(view_info, clist_d, 0, clist_d->base_grp,
- clist_d->base_ab);
- free(view_info);
- break;
- default:
-
- // hide sweeped item
- Elm_Object_Item *lastItem = clist_d->last_sweep_item;
-
- if (NULL != lastItem)
- {
- elm_genlist_item_decorate_mode_set(lastItem, "slide", EINA_FALSE);
- elm_genlist_item_select_mode_set(lastItem, ELM_OBJECT_SELECT_MODE_DEFAULT);
- clist_d->last_sweep_item = NULL;
- }
-
- cdetail_d = (ct_detail_data *) calloc(1, sizeof(ct_detail_data));
- p_retm_if(!cdetail_d, "cdetail_d is NULL, Not enough memory");
-
- ctui_ld_to_dd(clist_d, cdetail_d);
-
- if (0 < cdetail_d->base_ab)
- {
- int err = CONTACTS_ERROR_NONE;
- contacts_record_h record = NULL;
- char temp[PH_TEXT_MAX_LEN + 1];
-
- err = contacts_db_get_record(_contacts_address_book._uri,
- cdetail_d->base_ab, &record);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_db_record_get() Failed(%d)", err);
-
- err = contacts_record_get_int(record,
- _contacts_address_book.mode,
- &(cdetail_d->base_ab_mode));
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
-
- err = contacts_record_destroy(record, true);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_destroy() Failed(%d)", err);
-
- temp[0] = '\0';
- ctui_get_addressbook_name(cdetail_d->base_ab, temp,
- sizeof(temp));
- if (*temp)
- cdetail_d->base_ab_name = strdup(temp);
- }
- else if (0 == cdetail_d->base_ab)
- {
- cdetail_d->base_ab_mode = CONTACTS_ADDRESS_BOOK_MODE_NONE;
- cdetail_d->base_ab_name = strdup(
- T_(CT_GET_TEXT_BASIC, CTTEXT_PHONE));
- }
- cdetail_d->only_input = true;
- ctui_create_input_view(cdetail_d);
-
- break;
- }
-}
-
-static void list_popup_hide_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- assert(data);
- if (NULL != data)
- {
- ct_list_data *clist_d = static_cast<ct_list_data*>( data );
- if (NULL != clist_d->popup)
- {
- evas_object_del(clist_d->popup);
- clist_d->popup = NULL;
- }
- elm_object_tree_focus_allow_set(clist_d->navi, EINA_TRUE);
- }
-}
-
-static void list_menu_hide_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- assert(data);
- if (NULL != data)
- {
- ct_list_data *clist_d = static_cast<ct_list_data*>( data );
- if (NULL != clist_d->m_Menu)
- {
- evas_object_del(clist_d->m_Menu);
- clist_d->m_Menu = NULL;
- }
- elm_object_tree_focus_allow_set(clist_d->navi, EINA_TRUE);
- }
-}
-
-static void list_remove_member_button_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
- p_retm_if(NULL == clist_d->navi_item, "parameter(navi_item) is NULL");
-
- list_menu_hide_cb(data, NULL, NULL);
- clist_d->view_id = CT_LIST_MULTI_REMOVE_MEMBER;
-
- if (clist_d->genlist)
- elm_object_focus_set(clist_d->genlist, EINA_TRUE);
- if (!clist_d->ug)
- ctui_list_edit_mode_start(clist_d);
-}
-
-static void list_ab_popup_view_button_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- int selected_id;
- Evas_Object *popup;
- Evas_Object *genlist;
- Evas_Object *radio_main;
- ct_list_data *clist_d = (ct_list_data *) data;
- p_retm_if(NULL == clist_d, "parameter(clist_d) is NULL");
-
- popup = clist_d->popup;
- p_retm_if(NULL == clist_d, "popup is NULL");
-
- genlist = elm_object_content_get(popup);
- p_retm_if(NULL == genlist, "elm_object_content_get() is NULL");
-
- radio_main = (Evas_Object *) evas_object_data_get(genlist, "radio_main");
- p_retm_if(NULL == radio_main, "evas_object_data_get() is NULL");
-
- selected_id = elm_radio_value_get(radio_main);
-
- if (clist_d->list_op != CT_GET_LIST_ALL_PERSON && selected_id == -1)
- {
- clist_d->list_op = CT_GET_LIST_ALL_PERSON;
- clist_d->base_ab = -1;
- }
- else if (clist_d->base_ab != selected_id)
- {
- clist_d->list_op = CT_GET_LIST_PERSON_OF_ADDRBOOK_ID;
- clist_d->base_ab = selected_id;
- }
-
- ctui_set_view_mode(clist_d->base_ab);
- ctui_list_genlist_update(clist_d);
-
- list_popup_hide_cb(data, NULL, NULL);
-}
-
-static void list_ab_popup_cancel_button_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- list_popup_hide_cb(data, NULL, NULL);
-}
-
-static void list_ab_popup_sel(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- Evas_Object *genlist;
- Evas_Object *radio_main;
- Elm_Object_Item *item = (Elm_Object_Item *) event_info;
- ct_ab_popup_data *ab_popup_data;
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
-
- genlist = elm_object_item_widget_get(item);
- p_retm_if(NULL == genlist, "elm_object_item_widget_get() return NULL");
-
- ab_popup_data = (ct_ab_popup_data *) elm_object_item_data_get(item);
- p_retm_if(NULL == ab_popup_data, "elm_object_item_data_get() return NULL");
-
- radio_main = (Evas_Object *) evas_object_data_get(genlist, "radio_main");
- p_retm_if(NULL == radio_main, "evas_object_data_get() return NULL");
-
- elm_radio_value_set(radio_main, ab_popup_data->id);
-}
-
-static void list_view_button_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- assert(data);
- if (NULL != data)
- {
- ct_list_data* clist_d = static_cast<ct_list_data*>(data);
- p_retm_if(NULL == clist_d, "parameter(clist_d) is NULL");
-
- list_popup_hide_cb(data, NULL, NULL);
-
- Evas_Object *popup = NULL;
- popup = ctui_addrbook_popup(clist_d->win, list_ab_popup_sel, clist_d, CT_AB_POPUP_TYPE_LIST_VIEW);
- p_retm_if(NULL == popup, "ctui_addrbook_popup() return NULL");
- elm_object_part_text_set(popup, "title,text", T_(PH_GET_TEXT_BASIC, PHTEXT_CONTACTS_MENU_CONTACTS_TO_DISPLAY));
- clist_d->popup = popup;
-
- Evas_Object *btnOK = NULL;
- btnOK = elm_button_add(popup);
- p_retm_if(NULL == btnOK, "elm_button_add() return NULL");
- elm_object_text_set(btnOK, S_(PH_SYS_SK_OK));
- elm_object_part_content_set(popup, "button1", btnOK);
- elm_object_style_set(btnOK, "popup_button/default");
- evas_object_smart_callback_add(btnOK, "clicked", list_ab_popup_view_button_cb, clist_d);
-
- Evas_Object *btnCancel = NULL;
- btnCancel = elm_button_add(popup);
- p_retm_if(NULL == btnCancel, "elm_button_add() return NULL");
- elm_object_text_set(btnCancel, S_(PH_SYS_SK_CANCEL));
- elm_object_part_content_set(popup, "button2", btnCancel);
- elm_object_style_set(btnCancel, "popup_button/default");
- evas_object_smart_callback_add(btnCancel, "clicked", list_ab_popup_cancel_button_cb, clist_d);
- }
-}
-
-static void list_add_button_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
-
- evas_object_data_set(clist_d->navi, "navi_it_pop", clist_d->navi_item);
- ctui_create_gadd_list_select_view(clist_d->win, clist_d->navi,
- clist_d->base_grp, clist_d->base_ab, &clist_d->list, true);
-}
-
-static bool list_load_vcard_foreach_cb(contacts_record_h record, void *data)
-{
- PH_TRACE;
- int err;
- ph_progress_info *p_info;
- ct_list_data *clist_d = (ct_list_data *) data;
- contacts_record_h record_clone = NULL;
-
- p_retvm_if(NULL == clist_d, -1, "parameter(clist_d) is NULL");
-
- p_info = clist_d->p_info;
- p_retvm_if(NULL == p_info, -1, "clist_d->p_info is NULL");
-
- PH_DBG("list_load_vcard_foreach_cb total_cnt %d",
- clist_d->cnt_import_total);
-
- if (!p_info->alive)
- {
- p_info->result = FALSE;
- p_info->completed = true;
- return false;
- }
-
- err = contacts_record_clone(record, &record_clone);
- if (CONTACTS_ERROR_NONE != err)
- {
- ERR("contacts_record_clone() Failed(%d)", err);
- return false;
- }
- clist_d->list_import_records = eina_list_append(
- clist_d->list_import_records, record_clone);
- clist_d->cnt_import_total++;
-
- return true;
-}
-
-static PTHREAD_FN list_load_vcard_contacts_thread_fn(void* data)
-{
- PH_TRACE;
- int err = CONTACTS_ERROR_NONE;
- ct_list_data *clist_d = (ct_list_data *) data;
- char *last = NULL;
- const char *path = NULL;
- ph_progress_info *p_info = clist_d->p_info;
-
- err = contacts_connect2();
- p_warn_if(CONTACTS_ERROR_NONE != err, "contacts_connect2() Failed(%d)",
- err);
-
- path = (const char *) strtok_r((char *) clist_d->vcard_path, "?", &last);
- while (path)
- {
- err = contacts_vcard_parse_to_contact_foreach(path,
- list_load_vcard_foreach_cb, clist_d);
- if (CONTACTS_ERROR_NONE != err)
- {
- p_info->result = FALSE;
- ERR("contacts_svc_vcard_foreach() Failed(%d)", p_info->result);
- break;
- }
- path = strtok_r(NULL, "?", &last);
- }
-
- p_info->next_job = true;
-
- contacts_disconnect2();
-
- pthread_exit(NULL);
-}
-
-static void __list_insert_records_cb(int err, int *ids, unsigned int count,
- void *data)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
- contacts_error_e _err = CONTACTS_ERROR_NONE;
-
- PH_DBG("err %d", err);
-
- if (CONTACTS_ERROR_NONE != err)
- {
- if (clist_d->p_info)
- {
- clist_d->p_info->completed = true;
- clist_d->p_info->alive = false;
- clist_d->p_info->result = false;
- }
- return;
- }
-
- _err = (contacts_error_e) contacts_list_destroy(clist_d->import_list, true);
- p_retm_if(CONTACTS_ERROR_NONE != _err, "contacts_list_destroy() Failed(%d)",
- _err);
-
- PH_DBG("__list_insert_records_cb total count %d, count %d",
- clist_d->cnt_import_total, clist_d->cnt_import);
-
- if (clist_d->p_info)
- {
- if (!clist_d->p_info->alive)
- {
- clist_d->p_info->result = FALSE;
- clist_d->p_info->completed = true;
- return;
- }
- }
- else
- return;
-
- if (clist_d->cnt_import == clist_d->cnt_import_total)
- {
- if (clist_d->p_info)
- {
- clist_d->p_info->completed = true;
- clist_d->p_info->alive = false;
- clist_d->p_info->result = true;
- }
- return;
- }
-
- __list_insert_records(clist_d);
-}
-
-static void __list_insert_records(ct_list_data *clist_d)
-{
- PH_TRACE;
- const int LIST_BULK_LENGTH = 50;
- Eina_List *l;
- int err = CONTACTS_ERROR_NONE;
- void *v_record_temp = NULL;
-
- err = contacts_list_create(&clist_d->import_list);
- p_retm_if(CONTACTS_ERROR_NONE != err, "contacts_list_create() Failed(%d)",
- err);
-
- EINA_LIST_FOREACH(clist_d->list_import_records, l, v_record_temp)
- {
- contacts_record_h record_temp = (contacts_record_h) v_record_temp;
- err = contacts_list_add(clist_d->import_list, record_temp);
- p_retm_if(CONTACTS_ERROR_NONE != err,
- "contacts_list_add() Failed(%d) count %d",
- err, clist_d->cnt_import);
- clist_d->list_import_records = eina_list_remove_list(
- clist_d->list_import_records, l);
-
- clist_d->cnt_import++;
-
- if ((clist_d->cnt_import % LIST_BULK_LENGTH) == 0)
- break;
- }
- err = contacts_db_insert_records_async(clist_d->import_list,
- __list_insert_records_cb, clist_d);
- p_retm_if(CONTACTS_ERROR_NONE != err,
- "contacts_db_insert_records_async() Failed(%d)", err);
- ctui_create_contacts_error_popup(clist_d->navi, err);
-}
-
-static Eina_Bool list_load_vcard_timer_cb(void *data)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
- ph_progress_info *p_info;
-
- p_retvm_if(NULL == clist_d, ECORE_CALLBACK_CANCEL,
- "parameter(clist_d) is NULL");
- p_info = clist_d->p_info;
-
- if (p_info->next_job)
- {
- pthread_join(p_info->thread, NULL);
- __list_insert_records(clist_d);
- p_info->next_job = false;
- }
-
- if (!p_info->alive && !p_info->completed)
- {
- p_info->result = FALSE;
- p_info->completed = true;
- }
-
- if (!p_info->completed)
- {
- return ECORE_CALLBACK_RENEW;
- }
- else
- {
- Eina_List *l;
- void *v_record = NULL;
- const char *message;
-
- pthread_join(p_info->thread, NULL);
-
- if (p_info->result)
- message = T_(CT_GET_TEXT_BASIC, CTTEXT_IMPORTED);
- else
- message = S_(PH_SYS_POP_FAILED);
-
- list_popup_hide_cb(data, NULL, NULL);
- list_menu_hide_cb(data, NULL, NULL);
- phone_show_tickernoti(message);
-
- EINA_LIST_FOREACH(clist_d->list_import_records, l, v_record)
- {
- contacts_record_h record = (contacts_record_h) v_record;
- contacts_record_destroy(record, true);
- }
- eina_list_free(clist_d->list_import_records);
-
- free(p_info);
- clist_d->p_info = NULL;
-
- return ECORE_CALLBACK_CANCEL;
- }
-}
-
-static void list_add_all_contacts_button_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- int ret;
- ct_list_data *clist_d = (ct_list_data *) data;
- ph_progress_info *p_info;
-
- p_info = (ph_progress_info *) calloc(1, sizeof(ph_progress_info));
- if (NULL == p_info)
- {
- ERR("calloc() return NULL");
- elm_exit();
- }
-
- clist_d->p_info = p_info;
- clist_d->list = NULL;
- clist_d->cnt_import_total = 0;
- clist_d->cnt_import = 0;
-
- p_info->cnt = 0;
- p_info->alive = true;
- p_info->result = TRUE;
- p_info->completed = false;
-
- ret = pthread_create(&p_info->thread, NULL,
- list_load_vcard_contacts_thread_fn, clist_d);
- if (0 != ret)
- {
- ERR("Thread creation failed(%d)", ret);
- free(p_info);
- clist_d->p_info = NULL;
- elm_exit();
- }
- p_info->timer = ecore_timer_add(0.5, list_load_vcard_timer_cb, clist_d);
- if (NULL == p_info->timer)
- {
- ERR("ecore_timer_add() return NULL");
-
- p_info->alive = false;
- pthread_join(p_info->thread, NULL);
-
- free(p_info);
- clist_d->p_info = NULL;
- elm_exit();
- }
- clist_d->popup = phone_progressbar_popup(clist_d->win, p_info,
- T_(CT_GET_TEXT_BASIC, CTTEXT_IMPORTING_SD_CONTACTS));
-}
-
-static void list_message_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- int list_op;
- ct_list_data *clist_d = (ct_list_data *) data;
-
- p_retm_if(NULL == clist_d, "clist_d is NULL");
- list_menu_hide_cb(clist_d, NULL, NULL);
-
- p_retm_if(NULL == evas_object_data_get(clist_d->navi, "cgroup_d"),
- "evas_object_data_get() return NULL");
-
- if (-1 == clist_d->base_grp)
- list_op = CT_GET_LIST_PERSON_HAD_NUMBER_OF_ADDRBOOK_ID;
- else if (clist_d->base_grp)
- list_op = CT_GET_LIST_PERSON_HAD_NUMBER_OF_GROUP_ID;
- else
- list_op = CT_GET_LIST_PERSON_NOT_ASSIGNED_HAD_NUMBER_OF_ADDRBOOK_ID;
-
- ctui_create_list_select_view(clist_d->navi, phone_group_message_result_cb,
- evas_object_data_get(clist_d->navi, "cgroup_d"), list_op,
- clist_d->base_ab, clist_d->base_grp, 0);
-}
-
-static void list_email_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- int list_op;
- ct_list_data *clist_d = (ct_list_data *) data;
-
- p_retm_if(NULL == clist_d, "clist_d is NULL");
- list_menu_hide_cb(clist_d, NULL, NULL);
-
- p_retm_if(NULL == evas_object_data_get(clist_d->navi, "cgroup_d"),
- "evas_object_data_get() return NULL");
-
- if (-1 == clist_d->base_grp)
- list_op = CT_GET_LIST_PERSON_HAD_EMAIL_OF_ADDRBOOK_ID;
- else if (clist_d->base_grp)
- list_op = CT_GET_LIST_PERSON_HAD_EMAIL_OF_GROUP_ID;
- else
- list_op = CT_GET_LIST_PERSON_NOT_ASSIGNED_HAD_EMAIL_OF_ADDRBOOK_ID;
-
- ctui_create_list_select_view(clist_d->navi, phone_group_email_result_cb,
- evas_object_data_get(clist_d->navi, "cgroup_d"), list_op,
- clist_d->base_ab, clist_d->base_grp, 0);
-}
-
-static Evas_Object* ct_send_message_email_create_popup(ct_list_data* clist_d)
-{
- PH_TRACE;
- Evas_Object* popup = elm_popup_add(clist_d->navi);
- p_retvm_if(NULL == popup, NULL, "popup add failed");
- elm_object_part_text_set(popup, TITLE_TEXT, T_(PH_GET_TEXT_BASIC, PHTEXT_SEND_MESSAGE_EMAIL));
-
- if(!phone_popup_add_button(popup, S_(PH_SYS_SK_CANCEL), NULL, clist_d))
- {
- evas_object_del(popup);
- return NULL;
- }
-
- elm_object_style_set(popup, "content_no_vhpad");
- evas_object_show(popup);
- return popup;
-}
-
-static char* ct_send_message_email_gen_it_text_get(void *data, Evas_Object *obj, const char *part)
-{
- PH_TRACE;
- p_retvm_if(NULL == data, NULL, "data is null");
- return strdup((char*)data);
-}
-
-static void ct_send_message_email_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- p_retm_if(NULL == data, "data is null");
- ct_list_data* clist_d = (ct_list_data*)data;
-
- list_popup_hide_cb(data, NULL, NULL);
- list_menu_hide_cb(data, NULL, NULL);
-
- clist_d->popup = ct_send_message_email_create_popup(clist_d);
- p_retm_if(NULL == clist_d->popup, "popup is null");
-
- Evas_Object* genlist = elm_genlist_add(clist_d->popup);
- if(NULL == genlist)
- {
- ERR("genlist is null");
- list_popup_hide_cb(data, NULL, NULL);
- return;
- }
- elm_object_content_set(clist_d->popup, genlist);
-
- Elm_Genlist_Item_Class* itc = elm_genlist_item_class_new();
- itc->item_style = "1text/popup";
- itc->func.text_get = ct_send_message_email_gen_it_text_get;
-
- Elm_Object_Item* item = elm_genlist_item_append(genlist, itc, T_(PH_GET_TEXT_BASIC, PHTEXT_SEND_MESSAGE),
- NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_object_item_disabled_set(item, EINA_TRUE);
-
- item = elm_genlist_item_append(genlist, itc, T_(PH_GET_TEXT_BASIC, PHTEXT_SEND_EMAIL),
- NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_object_item_disabled_set(item, EINA_TRUE);
-
- elm_genlist_item_class_free(itc);
-}
-
-static void ctui_list_more_btn_clicked_cb(void *data)
-{
- PH_TRACE;
- assert(data);
- if (NULL != data)
- {
- ct_list_data* clist_d = static_cast<ct_list_data*>(data);
-
- // hide sweeped view
- Elm_Object_Item *lastItem = clist_d->last_sweep_item;
-
- if (NULL != lastItem)
- {
- elm_genlist_item_decorate_mode_set(lastItem, "slide", EINA_FALSE);
- elm_genlist_item_select_mode_set(lastItem, ELM_OBJECT_SELECT_MODE_DEFAULT);
- clist_d->last_sweep_item = NULL;
- }
-
- list_popup_hide_cb(data, NULL, NULL);
- list_menu_hide_cb(data, NULL, NULL);
-
- clist_d->m_Menu = elm_ctxpopup_add(clist_d->navi);
- if (clist_d->m_Menu)
- {
- int rotate = (int) evas_object_data_get(clist_d->navi, "phone_rotate");
- if (0 == rotate || 180 == rotate)
- elm_ctxpopup_direction_priority_set(clist_d->m_Menu, ELM_CTXPOPUP_DIRECTION_DOWN, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_LEFT, ELM_CTXPOPUP_DIRECTION_RIGHT);
- evas_object_smart_callback_add(clist_d->popup, "dismissed", list_menu_hide_cb, clist_d);
-
- if (clist_d->list)
- {
- if (CONTACTS_ADDRESS_BOOK_MODE_READONLY != clist_d->base_ab_mode)
- {
- elm_ctxpopup_item_append(clist_d->m_Menu, S_(PH_SYS_SK_DELETE), NULL, ct_list_edit_cb, clist_d);
-
- Elm_Object_Item* menu_item = NULL;
-
- menu_item = elm_ctxpopup_item_append(clist_d->m_Menu, T_(PH_GET_TEXT_BASIC, PHTEXT_IMPORT_EXPORT), NULL, NULL, clist_d);
- elm_object_item_disabled_set(menu_item, EINA_TRUE);
- menu_item = elm_ctxpopup_item_append(clist_d->m_Menu, T_(PH_GET_TEXT_BASIC, PHTEXT_ACCOUNTS), NULL, NULL, clist_d);
- elm_object_item_disabled_set(menu_item, EINA_TRUE);
- elm_ctxpopup_item_append(clist_d->m_Menu, T_(PH_GET_TEXT_BASIC, PHTEXT_SEND_MESSAGE_EMAIL), NULL, ct_send_message_email_cb, clist_d);
- menu_item = elm_ctxpopup_item_append(clist_d->m_Menu, T_(PH_GET_TEXT_BASIC, PHTEXT_CONTACTS_MENU_CONTACTS_TO_DISPLAY), NULL, list_view_button_cb, clist_d);
-
- if (NULL != menu_item)
- {
- unsigned int acc_cnt = 1;
- contacts_list_h list = NULL;
- const unsigned int MIN_NUMBER_OF_ADDRESSBOOKS = 2;
- int err = CONTACTS_ERROR_NONE;
- err = contacts_db_get_all_records(_contacts_address_book._uri, 0, 0, &list);
- if (CONTACTS_ERROR_NONE != err)
- ERR("contacts_db_get_all_records() Failed(%d)", err);
- err = contacts_list_get_count(list, &acc_cnt);
- if (CONTACTS_ERROR_NONE != err)
- ERR("contacts_list_get_count() Failed(%d)", err);
- err = contacts_list_destroy(list, true);
- if (CONTACTS_ERROR_NONE != err)
- ERR("contacts_list_destroy() Failed(%d)", err);
-
- if (acc_cnt < MIN_NUMBER_OF_ADDRESSBOOKS)
- {
- elm_object_item_disabled_set(menu_item, EINA_TRUE);
- }
- }
- }
-
- elm_ctxpopup_item_append(clist_d->m_Menu, T_(PH_GET_TEXT_BASIC, PHTEXT_CONTACTS_MENU_SETTINGS), NULL, ct_list_settings_cb, clist_d);
- }
-
- int x, y, w, h;
- evas_object_geometry_get(clist_d->navi, &x, &y, &w, &h);
- evas_object_move(clist_d->m_Menu, 0, y + h);
- evas_object_show(clist_d->m_Menu);
- }
- else
- {
- ERR("ctui_list_more_btn_clicked_cb failed: %s", "elm_ctxpopup_add() return NULL");
- }
- }
-}
-
-static void list_more_button_cb(void *data)
-{
- PH_TRACE;
- assert(data);
- if (NULL != data)
- {
- ct_list_data* clist_d = static_cast<ct_list_data*>(data);
-
- list_popup_hide_cb(data, NULL, NULL);
- list_menu_hide_cb(data, NULL, NULL);
-
- clist_d->m_Menu = elm_ctxpopup_add(clist_d->navi);
- if (NULL != clist_d->m_Menu)
- {
- int rotate = (int) evas_object_data_get(clist_d->navi, "phone_rotate");
- if (0 == rotate || 180 == rotate)
- elm_ctxpopup_direction_priority_set(clist_d->m_Menu, ELM_CTXPOPUP_DIRECTION_DOWN, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_LEFT, ELM_CTXPOPUP_DIRECTION_RIGHT);
-
- evas_object_smart_callback_add(clist_d->m_Menu, "dismissed", list_menu_hide_cb, clist_d);
-
- elm_ctxpopup_item_append(clist_d->m_Menu, S_(PH_SYS_BODY_MESSAGE), NULL, list_message_btn_cb, clist_d);
- elm_ctxpopup_item_append(clist_d->m_Menu, T_(CT_GET_TEXT_BASIC ,CTTEXT_EMAIL), NULL, list_email_btn_cb, clist_d);
- elm_ctxpopup_item_append(clist_d->m_Menu, S_(PH_SYS_BODY_REMOVE), NULL, list_remove_member_button_cb, clist_d);
-
- int x, y, w, h;
- evas_object_geometry_get(clist_d->navi, &x, &y, &w, &h);
- evas_object_move(clist_d->m_Menu, 0, y + h);
- evas_object_show(clist_d->m_Menu);
- }
- else
- {
- ERR("list_more_button_cb failed: %s", "elm_ctxpopup_add() return NULL");
- }
- }
-}
-
-static void list_navi_item_update(void *data)
-{
- PH_TRACE;
- Evas_Object *new_button;
- ct_list_data *clist_d = (ct_list_data *) data;
-
- p_retm_if(NULL == clist_d, "parameter(clist_d) is NULL");
- new_button = (Evas_Object *) evas_object_data_get(clist_d->navi, "new_button");
-
- if (!clist_d->ug)
- {
- if (new_button)
- {
- if (CONTACTS_ADDRESS_BOOK_MODE_READONLY == clist_d->base_ab_mode)
- elm_object_disabled_set(new_button, EINA_TRUE);
- else
- elm_object_disabled_set(new_button, EINA_FALSE);
- }
- if (NULL == clist_d->list)
- {
- clist_d->menu_cb = NULL;
- }
- else
- {
- clist_d->menu_cb = ctui_list_more_btn_clicked_cb;
- }
- }
-}
-
-static void __list_ug_destroy_me_cb(void *data)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
-
- if (clist_d->service_operation)
- phone_service_reply_simple(clist_d->service_operation,
- SERVICE_RESULT_FAILED);
-
- ug_destroy_me(clist_d->ug);
-}
-
-static Evas_Object *list_create_add_contact_button(Evas_Object *pLayout_search, ct_list_data &clist_d,
- Evas_Smart_Cb click_cb_func)
-{
- PH_TRACE;
- Evas_Object *pAddBtn = elm_object_part_content_get(clist_d.searchbar, "button_add");
- if (!pAddBtn)
- {
- pAddBtn = elm_button_add(pLayout_search);
- if (pAddBtn)
- {
- elm_object_part_content_set(pLayout_search, "button_add", pAddBtn);
- elm_object_style_set(pAddBtn, "plus");
- evas_object_size_hint_weight_set(pAddBtn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_smart_callback_add(pAddBtn, "clicked", click_cb_func, &clist_d);
- evas_object_data_set(clist_d.searchbar, "add_button", pAddBtn);
- evas_object_show(pAddBtn);
-
- Evas_Object *icon = elm_icon_add(pLayout_search);
- elm_icon_standard_set(icon, PH_IMG_ICON_ADD);
- elm_object_part_content_set(pAddBtn, "icon", icon);
- }
- }
- return pAddBtn;
-}
-
-static void list_make_navi(ct_list_data *clist_d)
-{
- PH_TRACE;
- p_retm_if(NULL == clist_d, "clist_d is NULL");
-
- if (NULL == clist_d->list_navi_item_update_fn)
- clist_d->list_navi_item_update_fn = list_navi_item_update;
-
- phone_navi_item_reset(clist_d->navi_item, clist_d);
- // FIXME : should be rearragned accoring to new UX
- if (CT_GET_LIST_VCARD == clist_d->list_op)
- {
- list_create_add_contact_button(clist_d->searchbar, *clist_d, list_add_all_contacts_button_cb);
- }
- else if (clist_d->navi_item != elm_naviframe_bottom_item_get(clist_d->navi))
- { // from group view
- if (!clist_d->ug)
- {
- if (clist_d->base_grp)
- {
- Evas_Object *add_button = NULL;
- add_button = list_create_add_contact_button(clist_d->searchbar, *clist_d, list_add_button_cb);
-
- if (CONTACTS_ADDRESS_BOOK_MODE_READONLY == clist_d->base_ab_mode)
- elm_object_disabled_set(add_button, EINA_TRUE);
-
- if (clist_d->list)
- {
- clist_d->menu_cb = list_more_button_cb;
- }
- }
- }
- }
- else if (!clist_d->ug ||
- !(PH_UG_REQUEST_LAUNCH_VOICECALL == clist_d->ug_request ||
- CT_UG_REQUEST_LIST_WITH_BACK >= clist_d->ug_request ||
- CT_UG_REQUEST_SELECT_CONTACT_ADD_TO_HOME == clist_d->ug_request ||
- CT_UG_REQUEST_SELECT_GROUP_ADD_TO_HOME == clist_d->ug_request)
- )
- {
-
- Evas_Object *create_button __attribute__ ((unused)) = NULL;
- if (!clist_d->ug)
- {
- if (clist_d->list)
- {
- clist_d->menu_cb = ctui_list_more_btn_clicked_cb;
- }
- }
- create_button = list_create_add_contact_button(clist_d->searchbar, *clist_d, ctui_list_new_btn_clicked_cb);
- if (NULL == clist_d->ug
- || clist_d->ug_request < CT_UG_REQUEST_SELECT_PERSON
- || (CT_UG_REQUEST_UPDATE_CONTACT <= clist_d->ug_request
- && clist_d->ug_request <= CT_UG_REQUEST_UPDATE_WITH_WEB)
- || (CT_UG_REQUEST_SAVE_IMG <= clist_d->ug_request
- && clist_d->ug_request <= CT_UG_REQUEST_SAVE_RINGTONE))
- {
- if (clist_d->ug_request)
- {
- clist_d->back_cb = __list_ug_destroy_me_cb;
- }
- }
- else
- {
- clist_d->back_cb = __list_ug_destroy_me_cb;
- }
- }
-}
-
-static void list_call_btn_pressed_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- p_retm_if(NULL == data, "data is NULL");
- if (NULL != data)
- {
- Evas_Object *icon = NULL;
- icon = static_cast<Evas_Object *>(elm_object_part_content_get((const Evas_Object *) data, "icon"));
- elm_image_file_set(icon, PH_IMG_ICON_CALL_PRESS, NULL);
- }
-}
-
-static void list_call_btn_unpressed_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- assert(data);
- assert(obj);
- p_retm_if(NULL == data, "data is NULL");
- if (NULL != data && NULL != obj)
- {
- Evas_Object *icon = NULL;
- icon = static_cast<Evas_Object *>(elm_object_part_content_get((const Evas_Object *) data, "icon"));
- elm_image_file_set(icon, PH_IMG_ICON_CALL, NULL);
-
- ct_list_data *clist_d = static_cast<ct_list_data*>(evas_object_data_get(obj, "clist_d"));
- elm_genlist_item_select_mode_set(clist_d->last_sweep_item, ELM_OBJECT_SELECT_MODE_DEFAULT);
- }
-}
-
-static void list_msg_btn_pressed_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- assert(data);
- p_retm_if(NULL == data, "data is NULL");
- if (NULL != data)
- {
- Evas_Object *icon = NULL;
- icon = static_cast<Evas_Object *>(elm_object_part_content_get((const Evas_Object *) data, "icon"));
- elm_image_file_set(icon, PH_IMG_ICON_MESSAGE_PRESS, NULL);
- }
-}
-
-static void list_msg_btn_unpressed_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- assert(data);
- assert(obj);
- p_retm_if(NULL == data, "data is NULL");
- if (NULL != data && NULL != obj)
- {
- Evas_Object *icon = NULL;
- icon = static_cast<Evas_Object *>(elm_object_part_content_get((const Evas_Object *) data, "icon"));
- elm_image_file_set(icon, PH_IMG_ICON_MESSAGE, NULL);
-
- ct_list_data *clist_d = static_cast<ct_list_data*>(evas_object_data_get(obj, "clist_d"));
- elm_genlist_item_select_mode_set(clist_d->last_sweep_item, ELM_OBJECT_SELECT_MODE_DEFAULT);
- }
-}
-
-static Evas_Object* list_gl_icon_get(void *data, Evas_Object *obj, const char *part)
-{
- PH_TRACE;
- assert(data);
- assert(obj);
- assert(part);
-
-
- if (NULL != data && NULL != obj && NULL != part)
- {
- ct_person_list *person_info = static_cast<ct_person_list*>(data);
- p_retvm_if(NULL == person_info, NULL, "person_info is NULL");
-
- ct_list_data *clist_d = static_cast<ct_list_data*>(evas_object_data_get(obj, "clist_d"));
-
- if (strcmp(part, "elm.slide.swallow.1") == 0)
- {
- Evas_Object *btn;
-
- if (NULL == person_info->number || '\0' == *person_info->number)
- {
- btn = phone_create_list_sweep_btn(obj, PH_IMG_ICON_DELETE);
- p_retvm_if(NULL == btn, NULL, "phone_create_list_sweep_btn() return NULL");
-
- elm_object_style_set(btn, "sweep/delete");
- evas_object_data_set(btn, "clist_d", clist_d);
- evas_object_propagate_events_set(btn, EINA_FALSE);
- evas_object_smart_callback_add(btn, "clicked", ct_list_sweep_del_cb, (void *) person_info->id);
-
- if (0 == person_info->id)
- elm_object_disabled_set(btn, EINA_TRUE);
- }
- else
- {
- btn = phone_create_list_sweep_btn(obj, PH_IMG_ICON_CALL);
- p_retvm_if(NULL == btn, NULL, "phone_create_list_sweep_btn() return NULL");
- evas_object_data_set(btn, "clist_d", clist_d);
- evas_object_smart_callback_add(btn, "clicked", ct_list_call, person_info);
- evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_DOWN, list_call_btn_pressed_cb, btn);
- evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_UP, list_call_btn_unpressed_cb, btn);
- }
- return btn;
- }
- else if (strcmp(part, "elm.slide.swallow.2") == 0)
- {
- Evas_Object *btn;
-
- if (NULL == person_info->number || '\0' == *person_info->number)
- return NULL;
-
- btn = phone_create_list_sweep_btn(obj, PH_IMG_ICON_MESSAGE);
- p_retvm_if(NULL == btn, NULL, "phone_create_list_sweep_btn() return NULL");
-
- evas_object_data_set(btn, "clist_d", clist_d);
- evas_object_smart_callback_add(btn, "clicked", ct_list_msg, person_info);
- evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_DOWN, list_msg_btn_pressed_cb, btn);
- evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_UP, list_msg_btn_unpressed_cb, btn);
-
- return btn;
- }
- else if (strcmp(part, "elm.slide.swallow.3") == 0)
- {
- Evas_Object *btn;
- btn = phone_create_list_sweep_btn(obj, PH_IMG_ICON_DELETE);
- p_retvm_if(NULL == btn, NULL, "phone_create_list_sweep_btn() return NULL");
-
- elm_object_style_set(btn, "sweep/delete");
- evas_object_data_set(btn, "clist_d", clist_d);
- evas_object_smart_callback_add(btn, "clicked", ct_list_sweep_del_cb, (void *) person_info->id);
-
- if (0 == person_info->id)
- elm_object_disabled_set(btn, EINA_TRUE);
-
- return btn;
- }
- else if (0 == strcmp(part, "elm.icon"))
- {
- int err = CONTACTS_ERROR_NONE;
- contacts_record_h record = NULL;
- Evas_Object *icon;
-
- if (!person_info->img_loaded)
- {
- if (person_info->id)
- {
- err = contacts_db_get_record(_contacts_person._uri, person_info->id, &record);
- p_warn_if(CONTACTS_ERROR_NONE != err, "contacts_db_get_record() Failed(%d)", err);
-
- err = contacts_record_get_str(record, _contacts_person.image_thumbnail_path, &(person_info->img_path));
- p_warn_if(CONTACTS_ERROR_NONE != err, "contacts_record_get_str() Failed(%d)", err);
-
- err = contacts_record_destroy(record, true);
- p_warn_if(CONTACTS_ERROR_NONE != err, "contacts_record_destroy() Failed(%d)", err);
- }
- person_info->img_loaded = true;
- }
-
- icon = elm_icon_add(obj);
- if (icon)
- {
- elm_image_prescale_set(icon, CT_LIST_ICON_SIZE);
- if (NULL != person_info->img_path)
- {
- elm_image_file_set(icon, person_info->img_path, NULL);
- }
- else
- {
- elm_image_file_set(icon, IMG_DEFAULT, NULL);
- }
-
- evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
- evas_object_show(icon);
- }
- return icon;
- }
- else if (0 == strcmp(part, "elm.edit.icon.1"))
- {
- Evas_Object *check;
- check = ct_list_edit_add_check(obj, &person_info->checked, clist_d);
- p_retvm_if(NULL == check, NULL, "ct_list_edit_add_check() return NULL");
- evas_object_data_set(check, "person_info", person_info);
- return check;
- }
- }
-
- return NULL;
-}
-
-API void list_create_itcs(ct_list_data *clist_d)
-{
- PH_TRACE;
- assert(clist_d);
- if (NULL != clist_d)
- {
- clist_d->itcs[CT_LIST_ITEM_NO_NUMBER].item_style = "1text.1icon.2.tb";
- clist_d->itcs[CT_LIST_ITEM_NO_NUMBER].decorate_item_style = "mode/slide3";
- clist_d->itcs[CT_LIST_ITEM_NO_NUMBER].func.text_get = ct_list_gl_label_get;
- clist_d->itcs[CT_LIST_ITEM_NO_NUMBER].func.content_get = list_gl_icon_get;
- clist_d->itcs[CT_LIST_ITEM_NO_NUMBER].decorate_all_item_style = "edit_default";
-
- clist_d->itcs[CT_LIST_ITEM].item_style = "1text.1icon.2.tb";
- clist_d->itcs[CT_LIST_ITEM].decorate_item_style = "mode/slide";
- clist_d->itcs[CT_LIST_ITEM].func.text_get = ct_list_gl_label_get;
- clist_d->itcs[CT_LIST_ITEM].func.content_get = list_gl_icon_get;
- clist_d->itcs[CT_LIST_ITEM].decorate_all_item_style = "edit_default";
-
- clist_d->itcs[CT_LIST_ITEM_SEARCH_NO_NUMBER].item_style = "1text.1icon.2.tb";
- clist_d->itcs[CT_LIST_ITEM_SEARCH_NO_NUMBER].decorate_item_style = "mode/slide3";
- clist_d->itcs[CT_LIST_ITEM_SEARCH_NO_NUMBER].func.text_get = ct_list_gl_label_get;
- clist_d->itcs[CT_LIST_ITEM_SEARCH_NO_NUMBER].func.content_get = list_gl_icon_get;
- clist_d->itcs[CT_LIST_ITEM_SEARCH_NO_NUMBER].decorate_all_item_style = "edit_default";
-
- clist_d->itcs[CT_LIST_ITEM_SEARCH].item_style = "2text.1icon.4.tb";
- clist_d->itcs[CT_LIST_ITEM_SEARCH].decorate_item_style = "mode/slide";
- clist_d->itcs[CT_LIST_ITEM_SEARCH].func.text_get = ct_list_gl_label_get;
- clist_d->itcs[CT_LIST_ITEM_SEARCH].func.content_get = list_gl_icon_get;
- clist_d->itcs[CT_LIST_ITEM_SEARCH].decorate_all_item_style = "edit_default";
-
- clist_d->itcs[CT_LIST_ITEM_COUNT].item_style = "1text.1icon.2.tb";
- clist_d->itcs[CT_LIST_ITEM_COUNT].func.text_get = ct_list_count_gl_label_get;
- }
-}
-
-API void ctui_list_navi_set(int mode, ct_list_data *clist_d)
-{
- PH_TRACE;
- p_retm_if(NULL == clist_d, "clist_d is NULL");
- Evas_Object *delete_item = (Evas_Object *) evas_object_data_get(clist_d->navi, "delete_button");
- if(delete_item)
- {
- evas_object_del(delete_item);
- }
- evas_object_data_del(clist_d->navi, "new_button");
- evas_object_data_del(clist_d->navi, "button_add");
- phone_navi_item_reset(clist_d->navi_item, clist_d);
-
- switch (mode)
- {
- case CT_LIST_MODE_DEFAULT:
- list_make_navi(clist_d);
- break;
- case CT_LIST_MODE_EDIT:
- ct_list_edit_make_edit_navi(clist_d);
- if (CT_LIST_MULTI_ADD_MEMBER != clist_d->view_id)
- ctui_navi_btn_disabled_set(clist_d->navi, EINA_TRUE);
- ctui_list_update_selection_info(clist_d);
- break;
- default:
- return;
- }
-}
-
-Evas_Object* ct_list_create_contact_view(ct_list_data *clist_d)
-{
- PH_TRACE;
- list_create_itcs(clist_d);
- clist_d->gl_sel = ct_list_ug_gl_sel;
- clist_d->gl_sel_data = clist_d;
- clist_d->edit_sel_update = ctui_list_update_selection_info;
- return ct_list_create_contact_layout(clist_d);
-}
-
-// Group > Group detail view : In case of UG, it can be check view
-API Evas_Object* ctui_list_create_contact_view_with_info(
- ph_view_info *view_info, int list_op, ct_group_list *info)
-{
- PH_TRACE;
- ct_list_data *clist_d;
- const char *ab_name = NULL;
- char temp[PH_TEXT_MAX_LEN];
-
- p_retv_if(CT_GET_LIST_VCARD == list_op, NULL);
- clist_d = (ct_list_data *) calloc(1, sizeof(ct_list_data));
- p_retvm_if(!clist_d, NULL, "clist_d is NULL, Not enough memory");
-
- clist_d->win = view_info->win;
- clist_d->navi = view_info->navi;
- clist_d->ug = view_info->ug;
- clist_d->ug_data = view_info->ug_data;
- clist_d->ug_request = view_info->ug_request;
- clist_d->base_ab = -1;
-
- switch (clist_d->ug_request)
- {
- //case PH_UG_REQUEST_SELECT_NUMBER:
- //case PH_UG_REQUEST_CHECK_FOR_NUMBER:
- case CT_UG_REQUEST_SELECT_NUMBER:
- case CT_UG_REQUEST_CHECK_FOR_NUMBER:
- clist_d->list_op = list_op + 1;
- break;
- //case PH_UG_REQUEST_SELECT_EMAIL:
- //case PH_UG_REQUEST_CHECK_FOR_EMAIL:
- case CT_UG_REQUEST_SELECT_EMAIL:
- case CT_UG_REQUEST_CHECK_FOR_EMAIL:
- clist_d->list_op = list_op + 2;
- break;
- case CT_UG_REQUEST_SELECT_NUMBER_OR_EMAIL:
- case CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL:
- clist_d->list_op = list_op + 3;
- break;
- default:
- clist_d->list_op = list_op;
- break;
- }
-
- clist_d->base_ab = info->id_ab;
- clist_d->base_grp = info->id_grp;
- clist_d->base_ab_mode = info->mode;
- ct_list_get_contacts(clist_d, &clist_d->list);
- clist_d->base_layout = ct_list_create_contact_view(clist_d);
- clist_d->title = SAFE_STRDUP(info->name);
- clist_d->navi_item = elm_naviframe_item_push(clist_d->navi, clist_d->title,
- NULL, NULL, clist_d->base_layout, NULL);
- if (0 < clist_d->base_ab)
- {
- temp[0] = '\0';
- ctui_get_addressbook_name(clist_d->base_ab, temp, sizeof(temp));
- ab_name = temp;
- }
- else
- ab_name = T_(CT_GET_TEXT_BASIC, CTTEXT_PHONE);
-
- elm_object_item_part_text_set(clist_d->navi_item, "subtitle", ab_name);
- clist_d->sub_title = strdup(ab_name);
-
- switch (clist_d->ug_request)
- {
- case CT_UG_REQUEST_CHECK:
- case CT_UG_REQUEST_CHECK_FOR_NUMBER:
- case CT_UG_REQUEST_CHECK_FOR_EMAIL:
- case CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL:
- ctui_list_edit_mode_start(clist_d);
- break;
- default:
- ctui_list_navi_set(CT_LIST_MODE_DEFAULT, clist_d);
- break;
- }
- return clist_d->navi;
-}
-
-API void ctui_list_set_search_text(ct_list_data *clist_d, const char *text)
-{
- PH_TRACE;
- p_retm_if(!clist_d, "clist_d is NULL");
- if (clist_d->searchbar)
- {
- Evas_Object *en;
- en = elm_object_part_content_get(clist_d->searchbar,
- "elm.swallow.content");
- elm_entry_entry_set(en, text);
- }
-}
diff --git a/lib/list/ct-list-contact-view.h b/lib/list/ct-list-contact-view.h
deleted file mode 100755
index 27b2421..0000000
--- a/lib/list/ct-list-contact-view.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Module responsible for creating contacts-list view and handling efl-callbacks relevant to it.
- */
-
-#ifndef __CONTACTS_LIST_CONTACT_VIEW_H__
-#define __CONTACTS_LIST_CONTACT_VIEW_H__
-
-/**
- * Initialises layout for contact--list view based on specified data-structure.
- * @param clist_d data-structure the contact-list will be based on.
- * @return layout of contact-list.
- * */
-Evas_Object* ct_list_create_contact_view(ct_list_data *clist_d);
-
-#endif //__CONTACTS_LIST_CONTACT_VIEW_H__
diff --git a/lib/list/ct-list-edit-view.cpp b/lib/list/ct-list-edit-view.cpp
deleted file mode 100755
index 69807a3..0000000
--- a/lib/list/ct-list-edit-view.cpp
+++ /dev/null
@@ -1,1102 +0,0 @@
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <ui-gadget-module.h>
-#include <app.h>
-#include <fcntl.h>
-
-#include "phone.h"
-#include "phone-common.h"
-#include "ct-list.h"
-#include "ct-list-utils.h"
-#include "ct-list-view-ug.h"
-#include "ct-list-contact-view.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-#define TIMER_DURATION 0.2
-#define FOUND_BY_NUMBER 1
-#define FOUND_BY_EMAIL 2
-
-static void list_edit_del_cb(void *data, Evas_Object *obj, void *event_info);
-ct_person_list *find_info_in_list_by_id(Eina_List *check_list, int person_id);
-ct_person_list *copy_contact_info(ct_person_list *person_info);
-
-Eina_List* update_list_person_check_info(Eina_List *check_list,ct_person_list * person_info)
-{
- PH_TRACE;
-
- ct_person_list * person_copy_info = copy_contact_info(person_info);
-
- if (person_copy_info)
- {
- if (EINA_TRUE == person_copy_info->checked)
- {
- check_list = eina_list_append(check_list,(void *) person_copy_info);
- }
- else
- {
- if (check_list)
- {
- ct_person_list * person_info_list = find_info_in_list_by_id(check_list, person_copy_info->id);
- if (person_info_list)
- {
- check_list = eina_list_remove(check_list,(void *) person_info_list);
- free(person_info_list);
- free(person_copy_info);
- }
- }
- }
- }
- return check_list;
-}
-
-ct_person_list *copy_contact_info(ct_person_list *person_info)
-{
- PH_TRACE;
-
- ct_person_list *p_info = NULL;
- if (person_info)
- {
- p_info = (ct_person_list *) calloc(1, sizeof(ct_person_list));
- p_info->checked = person_info->checked;
- p_info->id_ret = person_info->id_ret;
- p_info->id_ret_type = person_info->id_ret_type;
- p_info->id = person_info->id;
- }
- return p_info;
-}
-
-static inline void list_edit_items_checked_set(ct_list_data *clist_d,
- Eina_Bool checked)
-{
- PH_TRACE;
- Eina_List *l;
- void *v_person_info = NULL;
-
- EINA_LIST_FOREACH(clist_d->list, l, v_person_info)
- {
- ct_person_list *person_info = (ct_person_list *) v_person_info;
- if (NULL == person_info)
- {
- ERR("elm_object_item_data_get() return NULL");
- continue;
- }
- person_info->checked = checked;
- clist_d->list_check_info = update_list_person_check_info(clist_d->list_check_info, person_info);
- }
-}
-
-static inline void list_edit_all_items_checked_set(Eina_List *list,
- Eina_Bool checked)
-{
- PH_TRACE;
- Eina_List *l;
- void *v_person_info;
-
- EINA_LIST_FOREACH(list, l, v_person_info)
- {
- ct_person_list *person_info = (ct_person_list *) v_person_info;
- if (NULL == person_info)
- {
- ERR("elm_object_item_data_get() return NULL");
- continue;
- }
- person_info->checked = checked;
- }
-}
-
-void ct_list_edit_mode_end(ct_list_data *clist_d)
-{
- PH_TRACE;
- Evas_Object *en;
- char buf[PH_TEXT_MAX_LEN + 1];
-
- clist_d->list_mode = CT_LIST_MODE_DEFAULT;
- ct_list_clear_pdata(clist_d);
-
- if (clist_d->select_all_layout)
- {
- elm_box_unpack(clist_d->box, clist_d->select_all_layout);
- evas_object_del(clist_d->select_all_layout);
- clist_d->select_all_layout = NULL;
- }
- clist_d->cnt_checked = 0;
- list_edit_all_items_checked_set(clist_d->list, EINA_FALSE);
- if (clist_d->list_check_info)
- {
- ctui_list_free_contacts(clist_d->list_check_info);
- clist_d->list_check_info = NULL;
- }
-
- if (NULL == clist_d->count_item && clist_d->cnt_list_total
- && !(clist_d->search_str && *clist_d->search_str))
- {
- clist_d->count_item = elm_genlist_item_append(clist_d->genlist,
- &clist_d->itcs[CT_LIST_ITEM_COUNT],
- (void *) clist_d->cnt_list_total, NULL, ELM_GENLIST_ITEM_NONE,
- NULL, NULL);
- elm_object_item_disabled_set(clist_d->count_item, EINA_TRUE);
- }
-
- if (clist_d->genlist)
- elm_object_focus_set(clist_d->genlist, EINA_TRUE);
-
- if (clist_d->search_str && *clist_d->search_str)
- ctui_list_searchbar_cancel_cb(clist_d->searchbar, NULL, NULL);
-
- elm_genlist_decorate_mode_set(clist_d->genlist, EINA_FALSE);
- ctui_list_navi_set(CT_LIST_MODE_DEFAULT, clist_d);
-
- if (CT_LIST_IN_MULTI_TAB != clist_d->tab_mode
- && CT_UG_REQUEST_SELECT_PERSON <= clist_d->ug_request)
- {
- snprintf(buf, sizeof(buf), "%s (%d)", clist_d->title,
- clist_d->cnt_list_total);
- elm_object_item_text_set(clist_d->navi_item, buf);
- }
-
- en = elm_object_part_content_get(clist_d->searchbar, "elm.swallow.content");
- elm_entry_entry_set(en, NULL);
-
- phone_hide_notify(clist_d->base_layout);
-
- phone_set_searchbar_add_button_visible(*clist_d, true);
-}
-
-static void list_edit_cancel_cb(void *data)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
- if(clist_d)
- {
- ct_list_edit_mode_end(clist_d);
- }
-}
-
-static void list_edit_delete_persons(ct_list_data *clist_d);
-
-static void list_edit_remove_record_cb(int err, void *data)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
- ph_progress_info *p_info = NULL;
-
- p_retm_if(NULL == clist_d, "Invalid parameter(clist_d is NULL)");
- p_info = clist_d->p_info;
- p_retm_if(NULL == p_info, "Invalid parameter(p_info is NULL)");
-
- if (p_info->update_ids)
- {
- free(p_info->update_ids);
- p_info->update_ids = NULL;
- }
-
- if (p_info->update_list)
- {
- contacts_list_destroy(p_info->update_list, true);
- p_info->update_list = NULL;
- }
-
- if (CONTACTS_ERROR_NONE != err || p_info->alive == false)
- {
- if (p_info->popup)
- {
- evas_object_del(p_info->popup);
- p_info->popup = NULL;
- }
- phone_show_tickernoti(S_(PH_SYS_POP_FAILED));
- free(p_info);
- clist_d->p_info = NULL;
- clist_d->updating = false;
- ct_list_edit_mode_end(clist_d);
- return;
- }
- else if (p_info->cnt == p_info->cnt_checked_total)
- {
- if (p_info->popup)
- {
- evas_object_del(p_info->popup);
- p_info->popup = NULL;
- }
- if (clist_d->base_grp)
- phone_show_tickernoti(S_(PH_SYS_POP_REMOVED));
- else
- phone_show_tickernoti(S_(PH_SYS_POP_DELETED));
- free(p_info);
- clist_d->p_info = NULL;
- clist_d->updating = false;
- ct_list_edit_mode_end(clist_d);
- return;
- }
- else
- {
- list_edit_delete_persons(clist_d);
- }
-}
-
-static void list_edit_remove_group_relation(int group_id, int person_id,
- contacts_list_h list_result)
-{
- PH_TRACE;
- contacts_list_h list = NULL;
- contacts_filter_h filter = NULL;
- contacts_query_h query = NULL;
- int err = CONTACTS_ERROR_NONE;
-
- p_retm_if(group_id <= 0, "Invalid parameter(group_id is %d)", group_id);
- p_retm_if(person_id <= 0, "Invalid parameter(person_id is %d)", person_id);
- p_retm_if(NULL == list_result, "Invalid parameter(list is NULL)");
-
- do
- {
- if (CONTACTS_ERROR_NONE
- != (err = contacts_query_create(_contacts_contact_grouprel._uri,
- &query)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_filter_create(
- _contacts_contact_grouprel._uri, &filter)))
- break;
-
- if (CONTACTS_ERROR_NONE
- != (err = contacts_filter_add_int(filter,
- _contacts_contact_grouprel.group_id,
- CONTACTS_MATCH_EQUAL, group_id)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_filter_add_operator(filter,
- CONTACTS_FILTER_OPERATOR_AND)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_filter_add_int(filter,
- _contacts_contact_grouprel.person_id,
- CONTACTS_MATCH_EQUAL, person_id)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_query_set_filter(query, filter)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_db_get_records_with_query(query, 0, 0, &list)))
- break;
-
- while (CONTACTS_ERROR_NONE == err)
- {
- contacts_record_h record = NULL;
- int temp = 0;
- int contact_id = 0;
- contacts_record_h record_group_relation = NULL;
- phone_cts_get_int_from_list(list,
- _contacts_contact_grouprel.contact_id, &contact_id);
- err = contacts_db_get_record(_contacts_contact._uri, contact_id,
- &record);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_db_get_record() Failed(%d)", err);
-
- while (CONTACTS_ERROR_NONE
- == (contacts_record_get_child_record_at_p(record,
- _contacts_contact.group_relation, temp++,
- &record_group_relation)))
- {
- int group_relation_group_id = 0;
- contacts_record_get_int(record_group_relation,
- _contacts_group_relation.group_id,
- &group_relation_group_id);
- if (group_id == group_relation_group_id)
- {
- err = contacts_record_remove_child_record(record,
- _contacts_contact.group_relation,
- record_group_relation);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_remove_child_record() Failed(%d)",
- err);
- contacts_list_add(list_result, record);
- break;
- }
- }
- err = contacts_list_next(list);
- }
- contacts_filter_destroy(filter);
- contacts_query_destroy(query);
- contacts_list_destroy(list, true);
- return;
- }
- while (0);
- ERR("update_group_relation Failed(%d)", err);
- contacts_filter_destroy(filter);
- contacts_query_destroy(query);
- contacts_list_destroy(list, true);
- return;
-}
-
-void list_edit_delete_persons_without_progressbar_cb(int err, void *data)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
- p_retm_if(NULL == clist_d, "Invalid parameter(clist_d is NULL)");
-
- PH_DBG("err = %d", err);
- if (CONTACTS_ERROR_NONE != err)
- {
- clist_d->updating = false;
- phone_show_tickernoti(S_(PH_SYS_POP_FAILED));
- }
- else if (clist_d->update_delete_list)
- {
- contacts_list_destroy(clist_d->update_delete_list, true);
- clist_d->update_delete_list = NULL;
- phone_show_tickernoti(S_(PH_SYS_POP_REMOVED));
- }
-
- if (clist_d->update_add_list)
- {
- contacts_db_update_records_async(clist_d->update_add_list,
- ct_list_add_contacts_to_group_without_progressbar_cb, clist_d);
- }
- else
- {
- elm_naviframe_item_pop(clist_d->navi);
- }
-}
-
-void list_edit_delete_persons_without_progressbar(ct_list_data *clist_d)
-{
- PH_TRACE;
- p_retm_if(NULL == clist_d, "parameter(clist_d) is NULL");
- Eina_List *l = NULL;
- void *v_person_info = NULL;
- contacts_list_h list = NULL;
-
- int err = contacts_list_create(&list);
- p_retm_if(CONTACTS_ERROR_NONE != err, "contacts_list_create() Failed(%d)", err);
-
- EINA_LIST_FOREACH(clist_d->list_check_info, l, v_person_info)
- {
- ct_person_list *person_info = (ct_person_list *) v_person_info;
- if (person_info)
- {
- PH_DBG("person_info->display = %s", person_info->display);
- list_edit_remove_group_relation(clist_d->base_grp, person_info->id, list);
- }
- }
-
- unsigned int count = 0;
- contacts_list_get_count(list, &count);
- if (count)
- {
- clist_d->update_delete_list = list;
- }
- else
- {
- contacts_list_destroy(clist_d->update_delete_list, true);
- clist_d->update_delete_list = NULL;
- }
-}
-
-static void list_edit_delete_persons(ct_list_data *clist_d)
-{
- PH_TRACE;
- const int LIST_BULK_LENGTH = 50;
- int count = 0;
- int *ids = NULL;
- double value = 0.0;
- char percent_total[PH_TEXT_MAX_LEN + 1] = { 0, };
- char percent[PH_TEXT_MAX_LEN + 1] = { 0, };
- ph_progress_info *p_info = NULL;
- void *v_person_info = NULL;
- Eina_List *l = NULL;
- int err = CONTACTS_ERROR_NONE;
- contacts_list_h list = NULL;
-
- p_retm_if(NULL == clist_d, "parameter(clist_d) is NULL");
- p_info = clist_d->p_info;
- p_retm_if(NULL == p_info, "parameter(p_info) is NULL");
-
- if (p_info->update_ids)
- {
- free(p_info->update_ids);
- p_info->update_ids = NULL;
- }
-
- if (clist_d->base_grp)
- {
- err = contacts_list_create(&list);
- p_retm_if(CONTACTS_ERROR_NONE != err,
- "contacts_list_create() Failed(%d)", err);
- }
- else
- {
- if (p_info->cnt_checked_total - p_info->cnt < LIST_BULK_LENGTH)
- ids = (int *) calloc(1,
- sizeof(int) * (p_info->cnt_checked_total - p_info->cnt));
- else
- ids = (int *) calloc(1, sizeof(int) * LIST_BULK_LENGTH);
- p_retm_if(NULL == ids, "calloc() return NULL");
- }
-
- if (p_info->cnt == 0 && p_info->cnt_checked_total > 0)
- {
- EINA_LIST_FOREACH(clist_d->list_check_info, l, v_person_info)
- {
- ct_person_list *person_info = (ct_person_list *) v_person_info;
- if (NULL == person_info)
- continue;
- clist_d->list_delete_records = eina_list_append(
- clist_d->list_delete_records, (void*) person_info->id);
- }
- }
- if(p_info->cnt == 0)
- {
- create_no_content_layout(clist_d, clist_d->content_layout);
- }
- void *person_id;
- l = NULL;
- EINA_LIST_FOREACH(clist_d->list_delete_records, l, person_id)
- {
- if (clist_d->base_grp > 0)
- list_edit_remove_group_relation(clist_d->base_grp, (int) person_id,
- list);
- else
- {
- if (ids)
- ids[count] = (int) person_id;
- }
-
- clist_d->list_delete_records = eina_list_remove_list(
- clist_d->list_delete_records, l);
- count++;
- p_info->cnt++;
-
- if (LIST_BULK_LENGTH == count
- || p_info->cnt == p_info->cnt_checked_total)
- break;
- }
-
- if (clist_d->base_grp)
- {
- p_info->update_list = list;
- err = contacts_db_update_records_async(list, list_edit_remove_record_cb,
- clist_d);
- p_retm_if(err != CONTACTS_ERROR_NONE,
- "contacts_db_update_records_async() fail(%d)", err);
- }
- else
- {
- p_info->update_ids = ids;
- err = contacts_db_delete_records_async(_contacts_person._uri, ids,
- count, list_edit_remove_record_cb, clist_d);
- p_retm_if(err != CONTACTS_ERROR_NONE,
- "contacts_db_delete_records_async() fail(%d)", err);
- }
-
- value = (double) p_info->cnt / (double) p_info->cnt_checked_total;
- elm_progressbar_value_set(p_info->progressbar, value);
- snprintf(percent, sizeof(percent), "%d%%",
- (int) (100.0 * (double) p_info->cnt
- / (double) p_info->cnt_checked_total));
- snprintf(percent_total, sizeof(percent_total), "%d/%d", p_info->cnt,
- p_info->cnt_checked_total);
- edje_object_part_text_set(elm_layout_edje_get(p_info->layout),
- "elm.text.subtext1", percent);
- edje_object_part_text_set(elm_layout_edje_get(p_info->layout),
- "elm.text.subtext2", percent_total);
-
- PH_DBG("list_edit_delete_persons %d", count);
-}
-
-static Eina_Bool __list_edit_delete_start_timer_cb(void *data)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
- list_edit_delete_persons(clist_d);
-
- if (clist_d && clist_d->list_check_info)
- {
- ctui_list_free_contacts(clist_d->list_check_info);
- clist_d->list_check_info = NULL;
- }
- return ECORE_CALLBACK_CANCEL;
-}
-
-void list_edit_popup_hide_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- assert(data);
- if (NULL != data)
- {
- ct_list_data *pCListD = static_cast<ct_list_data *>(data);
- if (NULL != pCListD->popup)
- {
- evas_object_del(pCListD->popup);
- pCListD->popup = NULL;
- }
- elm_object_tree_focus_allow_set(pCListD->navi, EINA_TRUE);
- }
-}
-
-void list_edit_menu_hide_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- assert(data);
- if (NULL != data)
- {
- ct_list_data *pCListD = static_cast<ct_list_data *>(data);
- if (NULL != pCListD->m_Menu)
- {
- evas_object_del(pCListD->m_Menu);
- pCListD->m_Menu = NULL;
- }
- elm_object_tree_focus_allow_set(pCListD->navi, EINA_TRUE);
- }
-}
-
-void createDeletePopup(void *data)
-{
- PH_TRACE;
- if (!data)
- {
- return;
- }
-
- ct_list_data *pCListD = static_cast<ct_list_data *>(data);
- char buffer[PH_TEXT_MAX_LEN] = { 0 };
- snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%s %d %s",
- T_(PH_GET_TEXT_BASIC,PHTEXT_CONTACTS_POP_DELETE),
- pCListD->cnt_checked,
- T_(PH_GET_TEXT_BASIC,PHTEXT_CONTACTS_POP_CONTACTS));
- Evas_Object *pPopup = elm_popup_add(pCListD->win);
- if (pPopup)
- {
- evas_object_size_hint_weight_set(pPopup, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
- elm_object_text_set(pPopup, buffer);
- evas_object_show(pPopup);
- }
- pCListD->popup = pPopup;
- Evas_Object *pDelete = elm_button_add(pPopup);
- if (pDelete)
- {
- elm_object_text_set(pDelete,
- T_(PH_GET_TEXT_BASIC,PHTEXT_CONTACTS_BUTTON_DELETE));
- elm_object_part_content_set(pPopup, "button1", pDelete);
- elm_object_style_set(pDelete, "popup_button/default");
- evas_object_smart_callback_add(pDelete, "clicked", list_edit_del_cb,
- pCListD);
- evas_object_show(pDelete);
- }
-
- Evas_Object *pCancel = elm_button_add(pPopup);
- if (pCancel)
- {
- elm_object_text_set(pCancel,
- T_(PH_GET_TEXT_BASIC,PHTEXT_CONTACTS_BUTTON_CANCEL));
- elm_object_part_content_set(pPopup, "button2", pCancel);
- elm_object_style_set(pCancel, "popup_button/default");
- evas_object_smart_callback_add(pCancel, "clicked",
- list_edit_popup_hide_cb, pCListD);
- evas_object_show(pCancel);
- }
-}
-
-void createContListDeletePopupCB(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- assert(data);
- if (NULL != data)
- {
- list_edit_popup_hide_cb(data, NULL, NULL);
-
- ct_list_data *clist_d = static_cast<ct_list_data*>(data);
- ph_progress_info *p_info = (ph_progress_info *) calloc(1, sizeof(ph_progress_info));
- if (NULL != p_info)
- {
- clist_d->updating = true;
- clist_d->p_info = p_info;
- p_info->cnt_checked_total = clist_d->cnt_checked;
- p_info->alive = true;
- p_info->result = TRUE;
- p_info->popup = phone_progressbar_popup(clist_d->win, p_info,
- T_(CT_GET_TEXT_BASIC, CTTEXT_DELETING_CONTACTS));
- p_info->timer = ecore_timer_add(0.5,
- __list_edit_delete_start_timer_cb, clist_d);
- }
- else
- {
- ERR("createContListDeletePopupCB() failed: %s",
- "calloc return NULL");
- }
- }
-}
-
-void createContListDeleteConfirmationPopupCB(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- assert(data);
- if (NULL != data)
- {
- list_edit_popup_hide_cb(data, NULL, NULL);
-
- ct_list_data *clist_d = static_cast<ct_list_data*>(data);
- Evas_Object *btn = phone_create_confirm_popup(&clist_d->popup, clist_d->win, S_(PH_SYS_POP_DELETE_Q), createContListDeletePopupCB, data);
- evas_object_data_set(btn, "clist_d", clist_d);
- }
-}
-
-static void list_edit_del_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
- ph_progress_info *p_info;
- list_edit_popup_hide_cb(data, NULL, NULL);
-
- p_info = (ph_progress_info *) calloc(1, sizeof(ph_progress_info));
- p_retm_if(NULL == p_info, "calloc return NULL");
-
- clist_d->updating = true;
- clist_d->p_info = p_info;
- p_info->cnt_checked_total = clist_d->cnt_checked;
- p_info->alive = true;
- p_info->result = TRUE;
- p_info->popup = phone_progressbar_popup(clist_d->win, p_info, T_(CT_GET_TEXT_BASIC, CTTEXT_DELETING_CONTACTS));
- p_info->timer = ecore_timer_add(0.5, __list_edit_delete_start_timer_cb, clist_d);
-}
-
-static void list_edit_check_done(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- int cnt_checked;
- int person_count = 0;
- int number_count = 0;
- int email_count = 0;
- int *result_list_number = NULL;
- int *result_list_email = NULL;
- int *result_list_person = NULL;
- Eina_List *l;
- void *v_person_info;
- ct_list_data *clist_d = (ct_list_data *) data;
-
- // called by setting - import contacts (list - vcard contacts)
- if (CT_GET_LIST_VCARD == clist_d->list_op)
- {
- clist_d->select_result_cb(clist_d->select_result_cb_data, NULL, 0);
- phone_hide_notify(clist_d->base_layout);
- return;
- }
- cnt_checked = eina_list_count(clist_d->list_check_info);
-
- PH_DBG("clist_d->ug_request %d count %d", clist_d->ug_request, cnt_checked);
- if (CT_UG_REQUEST_CHECK_FOR_NUMBER == clist_d->ug_request)
- result_list_number = (int *) calloc(cnt_checked, sizeof(int));
- else if (CT_UG_REQUEST_CHECK_FOR_EMAIL == clist_d->ug_request)
- result_list_email = (int *) calloc(cnt_checked, sizeof(int));
- else if (CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL == clist_d->ug_request)
- {
- result_list_number = (int *) calloc(cnt_checked, sizeof(int));
- result_list_email = (int *) calloc(cnt_checked, sizeof(int));
- }
- else
- result_list_person = (int *) calloc(cnt_checked, sizeof(int));
-
- EINA_LIST_FOREACH(clist_d->list_check_info, l, v_person_info)
- {
- ct_person_list *person_info = (ct_person_list *) v_person_info;
-
- if (NULL == person_info || !person_info->checked)
- continue;
- if (FOUND_BY_NUMBER == person_info->id_ret_type)
- {
- result_list_number[number_count++] = person_info->id_ret;
- }
- else if (FOUND_BY_EMAIL == person_info->id_ret_type)
- {
- if (result_list_email)
- result_list_email[email_count++] = person_info->id_ret;
- }
- else
- {
- if (result_list_person)
- result_list_person[person_count++] = person_info->id;
- }
- }
-
- // setting - import,export / group-view - message,email,chaton,calendar
- if (clist_d->select_result_cb)
- { // called by setting view - check person_info
- if (CT_UG_REQUEST_CHECK_FOR_NUMBER != clist_d->ug_request)
- ctui_list_edit_navi_pop(clist_d, NULL, NULL);
- elm_naviframe_item_pop(clist_d->navi);
- }
- if (clist_d->contact_add_cb)
- { // called by group,favorite view - check person_info
- if (0 < cnt_checked)
- {
- clist_d->contact_add_cb(clist_d->win, clist_d->navi, cnt_checked);
- phone_hide_notify(clist_d->base_layout);
- }
- else
- elm_naviframe_item_pop_to((Elm_Object_Item *)
- evas_object_data_get(clist_d->navi, "navi_it_pop"));
- if (result_list_person)
- free(result_list_person);
- if (result_list_number)
- free(result_list_number);
- if (result_list_email)
- free(result_list_email);
- return;
- }
-
- if (CT_UG_REQUEST_CHECK_FOR_NUMBER == clist_d->ug_request)
- {
- if (clist_d->service_operation)
- phone_list_ug_return_values(clist_d->service_operation,
- result_list_number, cnt_checked,
- CT_OPERATION_RESULT_TYPE_PHONE);
- else
- phone_list_ug_return_ids(clist_d->ug, result_list_number,
- cnt_checked, CT_UG_BUNDLE_RESULT_NUMBER_ID_LIST);
- }
- else if (CT_UG_REQUEST_CHECK_FOR_EMAIL == clist_d->ug_request)
- {
- if (clist_d->service_operation)
- phone_list_ug_return_values(clist_d->service_operation,
- result_list_email, cnt_checked,
- CT_OPERATION_RESULT_TYPE_EMAIL);
- else
- phone_list_ug_return_ids(clist_d->ug, result_list_email,
- cnt_checked, CT_UG_BUNDLE_RESULT_EMAIL_ID_LIST);
- }
- else if (CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL == clist_d->ug_request)
- {
- phone_list_ug_return_number_email_ids(clist_d->ug, result_list_number,
- number_count, result_list_email, email_count);
- }
- else
- {
- if (clist_d->service_operation)
- phone_list_ug_return_values(clist_d->service_operation,
- result_list_person, cnt_checked,
- CT_OPERATION_RESULT_TYPE_ITEM_ID);
- else
- phone_list_ug_return_ids(clist_d->ug, result_list_person,
- cnt_checked, CT_UG_BUNDLE_RESULT_PERSON_ID_LIST);
- }
- if (result_list_person)
- free(result_list_person);
- if (result_list_number)
- free(result_list_number);
- if (result_list_email)
- free(result_list_email);
-
- ug_destroy_me(clist_d->ug);
-}
-
-static void list_gadd_view_cancel_btn_cb(void *data)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
- p_retm_if(NULL == clist_d, "clist_d is NULL");
-
- phone_hide_notify(clist_d->navi);
- elm_naviframe_item_pop_to((Elm_Object_Item *) evas_object_data_get(clist_d->navi, "navi_it_pop"));
-}
-
-static void __list_edit_ug_destroy_me_cb(void *data)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
-
- if (clist_d->service_operation)
- phone_service_reply_simple(clist_d->service_operation,
- SERVICE_RESULT_FAILED);
-
- ug_destroy_me(clist_d->ug);
-}
-
-static void list_edit_back_cb(void *data)
-{
- ct_list_data *clist_d = (ct_list_data *) data;
- assert(clist_d);
-
- if (!clist_d)
- {
- return;
- }
-
- evas_object_smart_callback_del(clist_d->navi, "transition,finished",ctui_list_edit_navi_pop);
- elm_naviframe_item_pop(clist_d->navi);
-}
-
-void ct_list_edit_make_edit_navi(ct_list_data *clist_d)
-{
- PH_TRACE;
- Evas_Object *delete_button = NULL; // used for delete button or remove button
- Evas_Object *done_button = NULL;
- phone_navi_item_reset(clist_d->navi_item, clist_d);
-
- if (CT_UG_REQUEST_CHECK == clist_d->ug_request
- || CT_UG_REQUEST_CHECK_FOR_NUMBER == clist_d->ug_request
- || CT_UG_REQUEST_CHECK_FOR_EMAIL == clist_d->ug_request
- || CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL == clist_d->ug_request)
- {
- done_button = phone_create_toolbar_btn(clist_d->base_layout,
- S_(CT_SYS_SK_DONE), list_edit_check_done, clist_d);
- elm_object_part_content_set(clist_d->base_layout, "toolbar",
- done_button);
- evas_object_data_set(clist_d->navi, "done_button", done_button);
- if (CT_UG_REQUEST_CHECK_FOR_NUMBER == clist_d->ug_request)
- {
- evas_object_smart_callback_add(clist_d->navi, "transition,finished",
- ctui_list_edit_navi_pop, clist_d);
- clist_d->back_cb = list_edit_back_cb;
- }
-
- if (clist_d->navi_item != elm_naviframe_bottom_item_get(clist_d->navi))
- { // group view, setting view : CHECK MODE
- if (clist_d->select_result_cb || clist_d->ug)
- {
- elm_object_style_set(done_button, "naviframe/toolbar/default");
- }
- else
- {
- clist_d->back_cb = list_gadd_view_cancel_btn_cb;
- elm_object_style_set(done_button, "naviframe/toolbar/left");
- }
- }
- else
- { // check UG
- clist_d->back_cb = __list_edit_ug_destroy_me_cb;
- }
- }
- else if (!clist_d->ug)
- {
- // group detail : all or not assign, do not dispaly del button
- if (clist_d->navi_item == elm_naviframe_bottom_item_get(clist_d->navi)
- || clist_d->base_grp)
- {
- delete_button = phone_create_toolbar_btn(clist_d->base_layout,
- CT_LIST_MULTI_REMOVE_MEMBER == clist_d->view_id ? S_(PH_SYS_BODY_REMOVE) : S_(PH_SYS_SK_DELETE),
- createContListDeleteConfirmationPopupCB, clist_d);
- elm_object_part_content_set(clist_d->base_layout, "toolbar",
- delete_button);
- evas_object_data_set(clist_d->navi, "delete_button", delete_button);
- }
-
- clist_d->back_cb = list_edit_cancel_cb;
- }
-}
-
-static void list_edit_select_all(void *data, Eina_Bool checked)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
-
- list_edit_items_checked_set(clist_d, checked);
- elm_genlist_realized_items_update(clist_d->genlist);
-
- if (checked)
- clist_d->cnt_checked = clist_d->cnt_list_total;
- else
- clist_d->cnt_checked = 0;
-
- ctui_list_update_selection_info(clist_d);
-}
-
-void ct_list_item_checked_set(Elm_Object_Item *item, ct_list_data *clist_d)
-{
- PH_TRACE;
- ct_person_list *person_info = (ct_person_list *) elm_object_item_data_get(item);
- p_retm_if(NULL == person_info, "elm_object_item_data_get() returns NULL");
-
- if (person_info->checked)
- {
- if (clist_d->cnt_max_check)
- {
- if (clist_d->cnt_max_check <= clist_d->cnt_checked)
- {
- phone_show_popup(clist_d->navi,
- T_(CT_GET_TEXT_ERR, CTTEXT_EXCEED_LIMIT), 2.0);
- person_info->checked = EINA_FALSE;
- return;
- }
- }
- clist_d->cnt_checked++;
- }
- else
- clist_d->cnt_checked--;
- elm_genlist_item_update(item);
-
- clist_d->list_check_info = update_list_person_check_info(clist_d->list_check_info, person_info);
-}
-
-static void list_edit_item_check_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- Elm_Object_Item * item;
- ct_person_list *person_info;
- ct_list_data *clist_d = (ct_list_data *) data;
-
- person_info = (ct_person_list *) evas_object_data_get(obj, "person_info");
- p_retm_if(NULL == person_info, "evas_object_data_get() return NULL");
-
- item = person_info->item;
- p_retm_if(NULL == item, "person_info->item is NULL");
-
- if (person_info->checked)
- {
- person_info->checked = !person_info->checked;
- ct_list_item_checked_set(item, clist_d);
- ctui_list_update_selection_info(clist_d);
- return;
- }
-
-
- elm_genlist_item_update(item);
-
- if (CT_UG_REQUEST_CHECK_FOR_NUMBER == clist_d->ug_request)
- ct_list_ug_handle_check_for_number(item, clist_d);
- else if (CT_UG_REQUEST_CHECK_FOR_EMAIL == clist_d->ug_request)
- ct_list_ug_handle_check_for_email(item, clist_d);
- else if (CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL == clist_d->ug_request)
- ct_list_ug_handle_check_for_number_or_email(item, clist_d);
- else
- {
- person_info->checked = !person_info->checked;
- ct_list_item_checked_set(item, clist_d);
- ctui_list_update_selection_info(clist_d);
- }
-
-}
-
-Evas_Object* ct_list_edit_add_check(Evas_Object *parent, Eina_Bool *checked,
- ct_list_data *clist_d)
-{
- PH_TRACE;
- Evas_Object *check = elm_check_add(parent);
- elm_check_state_set(check, *checked);
- evas_object_propagate_events_set(check, EINA_FALSE);
- evas_object_smart_callback_add(check, "changed", list_edit_item_check_cb,
- clist_d);
- return check;
-}
-
-API void ctui_list_edit_mode_start(ct_list_data *clist_d)
-{
- PH_TRACE;
-
- //Sweep Off in Edit mode
- ctui_list_set_unsweep(clist_d);
-
- clist_d->list_mode = CT_LIST_MODE_EDIT;
-
- // Append 'Select All' layout
- if ((CT_UG_REQUEST_CHECK_FOR_NUMBER != clist_d->ug_request)
- && (CT_UG_REQUEST_CHECK_FOR_EMAIL != clist_d->ug_request)
- && (CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL != clist_d->ug_request)
- && (CT_LIST_MULTI_ADD_MEMBER != clist_d->view_id))
- if (((!clist_d->ug_request || clist_d->select_result_cb)
- || (clist_d->base_grp > 0 && clist_d->contact_add_cb))
- && (0 == clist_d->cnt_max_check
- || clist_d->cnt_list_total <= clist_d->cnt_max_check))
- {
- clist_d->select_all_layout = phone_create_select_all(clist_d->box,
- S_(PH_SYS_BODY_SELECT_ALL), list_edit_select_all,
- clist_d);
- elm_box_pack_start(clist_d->box, clist_d->select_all_layout);
- }
-
- if (clist_d->count_item)
- {
- elm_object_item_del(clist_d->count_item);
- clist_d->count_item = NULL;
- }
- elm_genlist_decorate_mode_set(clist_d->genlist, EINA_TRUE);
-
- if (CT_LIST_IN_MULTI_TAB != clist_d->tab_mode && !clist_d->title
- && CT_UG_REQUEST_SELECT_PERSON <= clist_d->ug_request)
- {
- elm_object_item_text_set(clist_d->navi_item,
- T_(CT_GET_TEXT_BASIC, CTTEXT_SELECT_CONTACTS));
- }
- if (0 < clist_d->cnt_list_total)
- phone_show_notify(clist_d->base_layout,
- T_(CT_GET_TEXT_BASIC, CTTEXT_SELECT_CONTACTS));
-
- ctui_list_navi_set(CT_LIST_MODE_EDIT, clist_d);
-
- if (clist_d->genlist)
- elm_object_focus_set(clist_d->genlist, EINA_TRUE);
-
- phone_set_searchbar_add_button_visible(*clist_d, false);
-}
-
-void ct_list_edit_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- assert(data);
- if (NULL != data)
- {
- ct_list_data* clist_d = static_cast<ct_list_data*>(data);
- p_retm_if(NULL == clist_d->navi_item, "parameter(navi_item) is NULL");
-
- list_edit_popup_hide_cb(data, NULL, NULL);
- list_edit_menu_hide_cb(data, NULL, NULL);
- ctui_list_edit_mode_start(clist_d);
- }
-}
-
-void ct_list_settings_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- assert(data);
- if (NULL != data)
- {
- ct_list_data* clist_d = static_cast<ct_list_data*>(data);
- p_retm_if(NULL == clist_d->navi_item, "parameter(navi_item) is NULL");
-
- list_edit_popup_hide_cb(data, NULL, NULL);
- list_edit_menu_hide_cb(data, NULL, NULL);
-
- clist_d->child_ug = phone_launch_settings_ug(clist_d->ug, CONTACTS_SETTINGS_UG,
- ct_list_destroy_child_ug, clist_d);
- }
-}
-
-API void ctui_list_set_selectall(ct_list_data *clist_d)
-{
- PH_TRACE;
- PH_DBG("ctui_list_set_selectall view_id %d", clist_d->view_id);
- if (NULL != clist_d->select_all_layout
- || CT_LIST_MODE_DEFAULT == clist_d->list_mode
- || CT_LIST_MULTI_ADD_MEMBER == clist_d->view_id)
- return;
- // Append 'Select All' layout
- if ((CT_UG_REQUEST_CHECK_FOR_NUMBER != clist_d->ug_request)
- && (CT_UG_REQUEST_CHECK_FOR_EMAIL != clist_d->ug_request)
- && (CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL != clist_d->ug_request))
- if (((!clist_d->ug_request || clist_d->select_result_cb)
- || (clist_d->base_grp > 0 && clist_d->contact_add_cb))
- && (0 == clist_d->cnt_max_check
- || clist_d->cnt_list_total <= clist_d->cnt_max_check))
- {
- clist_d->select_all_layout = phone_create_select_all(clist_d->box,
- S_(PH_SYS_BODY_SELECT_ALL), list_edit_select_all,
- clist_d);
- elm_box_pack_start(clist_d->box, clist_d->select_all_layout);
- }
-
-}
-
diff --git a/lib/list/ct-list-edit-view.h b/lib/list/ct-list-edit-view.h
deleted file mode 100755
index ca3ec6f..0000000
--- a/lib/list/ct-list-edit-view.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __CONTACTS_LIST_EDIT_VIEW_H__
-#define __CONTACTS_LIST_EDIT_VIEW_H__
-
-/**
- * Module responsible for editing selected contact.
- */
-
-void ct_list_edit_mode_end(ct_list_data *clist_d);
-void ct_list_edit_cb(void *data, Evas_Object *obj, void *event_info);
-void ct_list_settings_cb(void *data, Evas_Object *obj, void *event_info);
-void ct_list_edit_make_edit_navi(ct_list_data *clist_d);
-Evas_Object* ct_list_edit_add_check(Evas_Object *parent, Eina_Bool *checked,
- ct_list_data *clist_d);
-void ct_list_item_checked_set(Elm_Object_Item *item, ct_list_data *clist_d);
-
-/**
- * Deletes group contacts from database.
- * @param clist_d Contact list data.
- */
-void list_edit_delete_persons_without_progressbar(ct_list_data *clist_d);
-
-/**
- * The callback function to get the result of contacts_db_update_records_async operation.
- * @param error Error code for batch operation.
- * @param user_data The user data passed from the batch operation.
- */
-void list_edit_delete_persons_without_progressbar_cb(int err, void *data);
-
-#endif //__CONTACTS_LIST_EDIT_VIEW_H__
diff --git a/lib/list/ct-list-main.cpp b/lib/list/ct-list-main.cpp
deleted file mode 100755
index 4b95b4f..0000000
--- a/lib/list/ct-list-main.cpp
+++ /dev/null
@@ -1,994 +0,0 @@
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * ct-list is an UI-control responsible for drawing and handling list-specific event of contacts-app
- * (some kind of "sub-application" used by "host" contacts-app).
- */
-
-#include <vconf.h>
-#include <vconf-keys.h>
-#include <ui-gadget-module.h>
-#include <efl_assist.h>
-#include "phone.h"
-#include "ct-list.h"
-#include "ct-group.h"
-#include "ct-detail.h"
-#include "ct-list-utils.h"
-#include "ct-list-view-ug.h"
-#include "ct-list-contact-view.h"
-#include "ct-list-edit-view.h"
-#include "ViewManager.h"
-
-API void ctui_list_view_reset(ct_list_data *clist_d)
-{
- PH_TRACE;
- evas_object_data_del(clist_d->navi, "done_button");
- evas_object_data_del(clist_d->navi, "edit_button");
- evas_object_data_del(clist_d->navi, "new_button");
- evas_object_data_del(clist_d->navi, "view_button");
- evas_object_data_del(clist_d->navi, "account_button");
-
- if (CT_UG_REQUEST_CHECK != clist_d->ug_request
- && CT_UG_REQUEST_CHECK_FOR_NUMBER != clist_d->ug_request
- && CT_UG_REQUEST_CHECK_FOR_EMAIL != clist_d->ug_request
- && CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL != clist_d->ug_request)
- {
- if (CT_LIST_MODE_EDIT == clist_d->list_mode)
- {
- ct_list_edit_mode_end(clist_d);
- }
- }
-
- if (elm_naviframe_top_item_get(clist_d->navi) != clist_d->navi_item)
- {
- elm_naviframe_item_pop_to(clist_d->navi_item);
- }
- else
- {
- ctui_list_set_unsweep(clist_d);
- }
-
- if (clist_d->child_ug)
- {
- ug_destroy(clist_d->child_ug);
- clist_d->child_ug = NULL;
- }
-}
-
-API void ctui_list_view_language_changed(Evas_Object *navi)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) evas_object_data_get(navi, "clist_d");
- p_retm_if(NULL == clist_d, "evas_object_data_get() return NULL");
- ctui_list_genlist_update(clist_d);
- if (clist_d->searchbar)
- elm_object_part_text_set(clist_d->searchbar, "elm.guidetext",
- S_(CT_SYS_BODY_SEARCH));
-
- ctui_list_update_selection_info(clist_d);
-
- void *cdetail_d = evas_object_data_get(navi, "cdetail_d");
- if (cdetail_d)
- ct_detail_view_language_changed((ct_detail_data *) cdetail_d);
-}
-
-static int create_list_view(Evas_Object *base, ct_list_data *clist_d)
-{
- PH_TRACE;
- char buf[PH_TEXT_SHORT_LEN];
-
- if (NULL == clist_d->navi)
- {
- p_retvm_if(NULL == base, FALSE, "base is NULL");
- clist_d->navi = elm_naviframe_add(base);
- p_retvm_if(NULL == clist_d->navi, FALSE, "navi is NULL");
- ea_object_event_callback_add(clist_d->navi, EA_CALLBACK_BACK, &Common::ViewManager::onBack, clist_d->win);
- ea_object_event_callback_add(clist_d->navi, EA_CALLBACK_MORE, &Common::ViewManager::onMenu, NULL);
- elm_naviframe_prev_btn_auto_pushed_set(clist_d->navi, EINA_FALSE);
- elm_object_part_content_set(base, "elm.swallow.content", clist_d->navi);
- evas_object_show(clist_d->navi);
- }
- ct_list_init_account_data(clist_d);
- if (CT_GET_LIST_VCARD != clist_d->list_op)
- ct_list_get_contacts(clist_d, &clist_d->list);
- clist_d->base_layout = ct_list_create_contact_view(clist_d);
-
- FREEandSTRDUP(clist_d->title, T_(CT_GET_TEXT_BASIC, CTTEXT_ALL_CONTACTS));
- snprintf(buf, sizeof(buf), "%s (%d)", clist_d->title,
- clist_d->cnt_list_total);
- clist_d->navi_item = elm_naviframe_item_push(clist_d->navi, buf, NULL, NULL,
- clist_d->base_layout, NULL);
-
- return TRUE;
-}
-
-static Evas_Object* list_create_vcard_list_view(Evas_Object *base,
- ct_list_data *clist_d)
-{
- PH_TRACE;
- char buf[PH_TEXT_SHORT_LEN];
-
- p_retvm_if(NULL == base, FALSE, "base is NULL");
-
- clist_d->navi = elm_naviframe_add(base);
- p_retvm_if(NULL == clist_d->navi, FALSE, "navi is NULL");
- ea_object_event_callback_add(clist_d->navi, EA_CALLBACK_BACK, &Common::ViewManager::onBack, clist_d->win);
- ea_object_event_callback_add(clist_d->navi, EA_CALLBACK_MORE, &Common::ViewManager::onMenu, NULL);
- elm_naviframe_prev_btn_auto_pushed_set(clist_d->navi, EINA_FALSE);
- evas_object_show(clist_d->navi);
-
- clist_d->base_layout = ct_list_create_contact_view(clist_d);
-
- clist_d->title = strdup(T_(CT_GET_TEXT_BASIC, CTTEXT_VCARD_CONTACTS));
- snprintf(buf, sizeof(buf), "%s (%d)", clist_d->title,
- clist_d->cnt_list_total);
- clist_d->navi_item = elm_naviframe_item_push(clist_d->navi, buf, NULL, NULL,
- clist_d->base_layout, NULL);
- if (clist_d->select_result_cb)
- ctui_list_edit_mode_start(clist_d);
- else
- ctui_list_navi_set(CT_LIST_MODE_DEFAULT, clist_d);
-
- elm_object_part_content_set(base, "elm.swallow.content", clist_d->navi);
-
- return clist_d->navi;
-}
-
-static int __list_parse_bundle_by_operation(service_h service,
- ct_list_data* clist_d)
-{
- PH_TRACE;
- char* val = NULL;
- char* val1 = NULL;
- char *operation = NULL;
-
- service_get_operation(service, &operation);
- p_retvm_if(NULL == operation, 0, "operation is NULL");
- PH_DBG("operaion = %s", operation);
-
- if (strcmp(operation, CT_OPERATION_SOCIAL_CHOOSE) == 0)
- {
- service_get_extra_data(service, CT_OPERATION_ITEM_TYPE, &val);
- if (val)
- {
- if (strcmp(val, CT_OPERATION_ITEM_TYPE_PERSON) != 0)
- {
- ERR("CT_OPERATION_ITEM_TYPE_PERSON not matched %s", val);
- free(val);
- return -1;
- }
- free(val);
- val = NULL;
- }
- else
- {
- ERR("CT_OPERATION_ITEM_TYPE is mandatory");
- return -1;
- }
- clist_d->service_operation = service;
- clist_d->ug_request = CT_UG_REQUEST_UPDATE_CONTACT;
- clist_d->list_op = CT_GET_LIST_PERSON_OF_WRITABLE_ADDRBOOK_ID;
-
- service_get_extra_data(service, CT_OPERATION_PHONE, &val1);
- if (val1)
- {
- clist_d->ug_request = CT_UG_REQUEST_UPDATE_WITH_NUM;
- clist_d->ug_data = val1;
- return 1;
- }
-
- service_get_extra_data(service, CT_OPERATION_EMAIL, &val1);
- if (val1)
- {
- clist_d->ug_request = CT_UG_REQUEST_UPDATE_WITH_EMAIL;
- clist_d->ug_data = val1;
- return 1;
- }
-
- service_get_extra_data(service, CT_OPERATION_URL, &val1);
- if (val1)
- {
- clist_d->ug_request = CT_UG_REQUEST_UPDATE_WITH_WEB;
- clist_d->ug_data = val1;
- return 1;
- }
- }
- else if (strcmp(operation, CT_OPERATION_SOCIAL_PICK) == 0)
- {
- service_get_extra_data(service, CT_OPERATION_ITEM_TYPE, &val);
- if (val)
- {
- if (strcmp(val, CT_OPERATION_ITEM_TYPE_PERSON) != 0)
- {
- ERR("CT_OPERATION_ITEM_TYPE_PERSON not matched %s", val);
- free(val);
- return -1;
- }
- free(val);
- val = NULL;
- }
- else
- {
- ERR("CT_OPERATION_ITEM_TYPE is mandatory");
- return -1;
- }
-
- service_get_extra_data(service, CT_OPERATION_SELECTION_MODE, &val);
- if (val)
- {
- if (strcmp(val, CT_OPERATION_SELECTION_MODE_SINGLE) == 0)
- {
- service_get_extra_data(service, CT_OPERATION_RESULT_TYPE,
- &val1);
- if (val1)
- {
- if (strcmp(val1, CT_OPERATION_RESULT_TYPE_PHONE) == 0)
- {
- clist_d->ug_request = CT_UG_REQUEST_SELECT_NUMBER;
- clist_d->list_op = CT_GET_LIST_ALL_PERSON_HAD_NUMBER;
- }
- else if (strcmp(val1, CT_OPERATION_RESULT_TYPE_EMAIL) == 0)
- {
- clist_d->ug_request = CT_UG_REQUEST_SELECT_EMAIL;
- clist_d->list_op = CT_GET_LIST_ALL_PERSON_HAD_EMAIL;
- }
- else if (strcmp(val1, CT_OPERATION_RESULT_TYPE_ITEM_ID)
- == 0)
- {
- clist_d->ug_request = CT_UG_REQUEST_SELECT_PERSON;
- }
- else if (strcmp(val1, CT_OPERATION_RESULT_TYPE_VCARD) == 0)
- {
- clist_d->ug_request = CT_UG_REQUEST_SELECT_VCARD;
-
- }
- else
- {
- ERR("CT_OPERATION_RESULT_TYPE is wrong value %s", val1);
- free(val);
- free(val1);
- return -1;
- }
- free(val1);
- clist_d->service_operation = service;
- }
- else
- {
- ERR("CT_OPERATION_RESULT_TYPE is wrong value %s", val1);
- free(val);
- free(val1);
- return -1;
- }
- }
- else if (strcmp(val, CT_OPERATION_SELECTION_MODE_MULTIPLE) == 0)
- {
- service_get_extra_data(service, CT_OPERATION_RESULT_TYPE,
- &val1);
- if (val1)
- {
- if (strcmp(val1, CT_OPERATION_RESULT_TYPE_PHONE) == 0)
- {
- clist_d->ug_request = CT_UG_REQUEST_CHECK_FOR_NUMBER;
- clist_d->list_op = CT_GET_LIST_ALL_PERSON_HAD_NUMBER;
- }
- else if (strcmp(val1, CT_OPERATION_RESULT_TYPE_EMAIL) == 0)
- {
- clist_d->ug_request = CT_UG_REQUEST_CHECK_FOR_EMAIL;
- clist_d->list_op = CT_GET_LIST_ALL_PERSON_HAD_EMAIL;
- }
- else if (strcmp(val1, CT_OPERATION_RESULT_TYPE_ITEM_ID)
- == 0)
- {
- clist_d->ug_request = CT_UG_REQUEST_CHECK;
- }
- else
- {
- ERR("CT_OPERATION_RESULT_TYPE is wrong value %s", val1);
- free(val);
- free(val1);
- return -1;
- }
- free(val1);
- clist_d->service_operation = service;
- }
- else
- {
- ERR("CT_OPERATION_RESULT_TYPE is wrong value %s", val1);
- free(val);
- free(val1);
- return -1;
- }
- }
- else
- {
- ERR("CT_OPERATION_SELECTION_MODE is wrong %s", val);
- free(val);
- return -1;
- }
- free(val);
- }
- else
- {
- ERR("CT_OPERATION_SELECTION_MODE is mandatory");
- return -1;
- }
- }
- else
- {
- ERR("operation wrong");
- return -1;
- }
-
- return 1;
-}
-
-static void *list_on_create(ui_gadget_h ug, enum ug_mode mode,
- service_h service, void *priv)
-{
- PH_TRACE;
- int ret;
- int err = CONTACTS_ERROR_NONE;
- Evas_Object *bg, *base;
- Evas_Object *parent;
- ct_list_data *clist_d = (ct_list_data *) priv;
- char *operation = NULL;
-
- p_retvm_if(NULL == ug || NULL == priv, NULL,
- "The parameter is invalid(ug=%p, priv=%p)", ug, priv);
-
- clist_d->win = (Evas_Object *) ug_get_window();
- parent = (Evas_Object *) ug_get_parent_layout(ug);
- p_retvm_if(NULL == parent, NULL, "ug_get_parent_layout() return NULL");
- clist_d->ug = ug;
-
- bindtextdomain(PACKAGE, LOCALEDIR);
-
- err = contacts_connect2();
- p_retvm_if(CONTACTS_ERROR_NONE != err, NULL,
- "contacts_connect2() Failed(%d)", err);
-
- service_get_operation(service, &operation);
- if (operation)
- {
- ret = __list_parse_bundle_by_operation(service, clist_d);
- free(operation);
- if (ret < 0)
- {
- ERR("__list_parse_bundle_by_operation invalid parameter");
- ret = ct_list_parse_bundle(service, clist_d);
- }
- }
- else
- {
- ret = ct_list_parse_bundle(service, clist_d);
- }
-
- if (UG_MODE_FULLVIEW == mode)
- base = phone_create_base_layout(parent, true);
- else
- base = phone_create_base_layout(parent, false);
-
- clist_d->base_ab = -1;
-
- if (-2 == ret)
- {
- Evas_Object *popup;
- popup = elm_popup_add(base);
- evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
- elm_object_text_set(popup, S_(CT_SYS_POP_FILE_NOT_FOUND));
- elm_popup_timeout_set(popup, 1.5);
- evas_object_show(popup);
- evas_object_smart_callback_add(popup, "timeout", ctui_list_ug_hide_cb,
- clist_d->ug);
- return base;
- }
- p_retvm_if(-1 == ret, NULL, "ct_list_parse_bundle() Failed");
-
- bg = phone_create_bg(base);
- if (NULL == bg)
- {
- ERR("phone_create_bg() return NULL");
- evas_object_del(base);
- err = contacts_disconnect2();
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_disconnect2() Failed(%d)", err);
- return NULL;
- }
-
- if (clist_d->ug_request == CT_UG_REQUEST_SELECT_GROUP
- || clist_d->ug_request == CT_UG_REQUEST_SELECT_GROUP_ADD_TO_HOME)
- {
- Evas_Object *layout = phone_create_group_view_ug(clist_d->ug, base,
- clist_d->ug_request);
- phone_group_set_navi(layout);
- }
- else if (FALSE == create_list_view(base, clist_d))
- {
- evas_object_del(base);
- err = contacts_disconnect2();
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_disconnect2() Failed(%d)", err);
- }
- else
- {
- if (CT_UG_REQUEST_CHECK == clist_d->ug_request
- || CT_UG_REQUEST_CHECK_FOR_NUMBER == clist_d->ug_request
- || CT_UG_REQUEST_CHECK_FOR_EMAIL == clist_d->ug_request
- || CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL
- == clist_d->ug_request)
- ctui_list_edit_mode_start(clist_d);
- else
- ctui_list_navi_set(CT_LIST_MODE_DEFAULT, clist_d);
- }
-
- return base;
-}
-
-static void list_on_message(ui_gadget_h ug, service_h msg, service_h service,
- void *priv)
-{
- PH_TRACE;
-}
-
-static void list_on_pause(ui_gadget_h ug, service_h service, void *priv)
-{
- PH_TRACE;
- int err = CONTACTS_ERROR_NONE;
- ct_list_data *clist_d = (ct_list_data *) priv;
- err = contacts_setting_get_name_display_order(&(clist_d->order_display));
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_setting_get_name_display_order() Failed(%d)", err);
- clist_d->is_background = true;
-}
-
-static void list_on_resume(ui_gadget_h ug, service_h service, void *priv)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) priv;
- ct_detail_data *cdetail_d;
- int err = CONTACTS_ERROR_NONE;
- contacts_name_display_order_e order_display;
-
- clist_d->is_background = false;
-
- err = contacts_setting_get_name_display_order(&order_display);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_setting_get_name_display_order() Failed(%d)", err);
-
- if (clist_d->order_display != order_display)
- {
- ctui_list_genlist_update(clist_d);
- cdetail_d = (ct_detail_data *) evas_object_data_get(clist_d->navi, "cdetail_d");
- if (cdetail_d)
- ctui_detail_genlist_update(cdetail_d);
- }
- if (clist_d->update_timer)
- {
- ecore_timer_del(clist_d->update_timer);
- clist_d->update_timer = NULL;
- ctui_list_genlist_update(clist_d);
- }
-}
-
-static void list_on_event(ui_gadget_h ug, enum ug_event event,
- service_h service, void *priv)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) priv;
-
- switch (event)
- {
- case UG_EVENT_ROTATE_PORTRAIT:
- case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
- break;
- case UG_EVENT_ROTATE_LANDSCAPE:
- case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
- break;
- case UG_EVENT_LANG_CHANGE:
- ctui_list_view_language_changed(clist_d->navi);
- break;
- default:
- break;
- }
-}
-
-static void list_on_destroy(ui_gadget_h ug, service_h service, void *priv)
-{
- PH_TRACE;
- int err = CONTACTS_ERROR_NONE;
- ct_list_data *clist_d = (ct_list_data *) priv;
- p_retm_if(NULL == priv, "The parameter is invalid(priv=%p)", priv);
- p_retm_if(NULL == ug, "The parameter is invalid(ug=%p)", ug);
-
- free(clist_d->ug_data);
-
- if (clist_d->ug)
- {
- evas_object_del((Evas_Object *) ug_get_layout(ug));
- }
-
- err = contacts_disconnect2();
- p_warn_if(CONTACTS_ERROR_NONE != err, "contacts_disconnect2() Failed(%d)",
- err);
-}
-
-extern "C" API int UG_MODULE_INIT(struct ug_module_ops *ops)
-{
- PH_TRACE;
- ct_list_data *clist_d;
-
- p_retvm_if(!ops, -1, "ops is NULL");
-
- clist_d = (ct_list_data *) calloc(1, sizeof(ct_list_data));
- p_retvm_if(!clist_d, -1, "UG data is NULL, Not enough memory");
-
- ops->create = list_on_create;
- ops->start = NULL;
- ops->pause = list_on_pause;
- ops->resume = list_on_resume;
- ops->destroy = list_on_destroy;
- ops->message = list_on_message;
- ops->event = list_on_event;
- ops->key_event = NULL;
- ops->priv = clist_d;
- ops->opt = UG_OPT_INDICATOR_ENABLE;
-
- return 0;
-}
-
-extern "C" API void UG_MODULE_EXIT(struct ug_module_ops *ops)
-{
- PH_TRACE;
- p_retm_if(!ops, "ops is NULL");
-
- free(ops->priv);
- ops->priv = NULL;
-}
-
-// Setting - export,import / Group - Message,Email,Share,ChatOn
-API Evas_Object* ctui_create_list_select_view(Evas_Object *navi,
- ct_select_result_cb result_cb,
- void *result_cb_data,
- int list_op,
- int id_ab,
- int id_grp,
- int cnt_max)
-{
- PH_TRACE;
- PH_DBG("list_op = %d, id_ab = %d, id_grp = %d", list_op, id_ab, id_grp);
-
- ct_list_data *clist_d = (ct_list_data *) calloc(1, sizeof(ct_list_data));
- p_retvm_if(!clist_d, NULL, "clist_d is NULL, Not enough memory");
-
- clist_d->navi = navi;
- clist_d->select_result_cb = result_cb;
- clist_d->select_result_cb_data = result_cb_data;
- clist_d->list_op = list_op;
- clist_d->base_ab = id_ab;
- clist_d->base_grp = id_grp;
-
- if (cnt_max > 0)
- {
- clist_d->cnt_max_check = cnt_max;
- }
-
- switch (list_op)
- {
- case CT_GET_LIST_ALL_PERSON_HAD_NUMBER:
- case CT_GET_LIST_PERSON_HAD_NUMBER_OF_ADDRBOOK_ID:
- case CT_GET_LIST_PERSON_HAD_NUMBER_OF_GROUP_ID:
- case CT_GET_LIST_PERSON_NOT_ASSIGNED_HAD_NUMBER_OF_ADDRBOOK_ID:
- clist_d->ug_request = CT_UG_REQUEST_CHECK_FOR_NUMBER;
- break;
- case CT_GET_LIST_ALL_PERSON_HAD_EMAIL:
- case CT_GET_LIST_PERSON_HAD_EMAIL_OF_ADDRBOOK_ID:
- case CT_GET_LIST_PERSON_HAD_EMAIL_OF_GROUP_ID:
- case CT_GET_LIST_PERSON_NOT_ASSIGNED_HAD_EMAIL_OF_ADDRBOOK_ID:
- clist_d->ug_request = CT_UG_REQUEST_CHECK_FOR_EMAIL;
- break;
- case CT_GET_LIST_ALL_PERSON_HAD_NUMBER_OR_EMAIL:
- case CT_GET_LIST_PERSON_HAD_NUMBER_OR_EMAIL_OF_ADDRBOOK_ID:
- case CT_GET_LIST_PERSON_HAD_NUMBER_OR_EMAIL_OF_GROUP_ID:
- case CT_GET_LIST_PERSON_NOT_ASSIGNED_HAD_NUMBER_OR_EMAIL_OF_ADDRBOOK_ID:
- clist_d->ug_request = CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL;
- break;
- default:
- clist_d->ug_request = CT_UG_REQUEST_CHECK;
- break;
- }
-
- ct_list_get_contacts(clist_d, &clist_d->list);
- clist_d->base_layout = ct_list_create_contact_view(clist_d);
-
- ct_list_get_title(clist_d, list_op, id_ab, id_grp);
-
- if (clist_d->sub_title)
- {
- clist_d->navi_item = elm_naviframe_item_push(clist_d->navi,
- clist_d->title, NULL, NULL, clist_d->base_layout, NULL);
- elm_object_item_part_text_set(clist_d->navi_item, "subtitle",
- clist_d->sub_title);
- }
- else
- {
- clist_d->navi_item = elm_naviframe_item_push(clist_d->navi,
- clist_d->title, NULL, NULL, clist_d->base_layout, NULL);
- }
-
- ctui_list_edit_mode_start(clist_d);
-
- return clist_d->navi;
-}
-
-API void ctui_create_favorite_list_select_view(Evas_Object *win,
- Evas_Object *navi,
- Eina_List *list)
-{
- PH_TRACE;
- char buf[PH_TEXT_SHORT_LEN];
- ct_list_data *clist_d = (ct_list_data *) calloc(1, sizeof(ct_list_data));
- p_retm_if(!clist_d, "clist_d is NULL, Not enough memory");
-
- clist_d->win = win;
- clist_d->navi = navi;
- clist_d->contact_add_cb = ct_list_add_contacts_to_favorite;
- clist_d->ug_request = CT_UG_REQUEST_CHECK;
- clist_d->list = list;
- clist_d->base_layout = ct_list_create_contact_view(clist_d);
- clist_d->title = strdup(T_(CT_GET_TEXT_BASE_OP, CTTEXT_ADD_TO_FAVOURITES));
- clist_d->cnt_list_total = eina_list_count(list);
- clist_d->base_ab = -1;
-
- snprintf(buf, sizeof(buf), "%s (%d)", clist_d->title,
- clist_d->cnt_list_total);
-
- clist_d->navi_item = elm_naviframe_item_push(clist_d->navi, buf, NULL, NULL,
- clist_d->base_layout, NULL);
- ctui_list_edit_mode_start(clist_d);
- evas_object_data_set(clist_d->navi, "favor_list_d", clist_d);
-}
-
-API Elm_Object_Item *ctui_create_gadd_list_select_view(Evas_Object *win,
- Evas_Object *navi,
- int group_id,
- int ab_id,
- Eina_List **list,
- bool save_contacts)
-{
- PH_TRACE;
- char buf[PH_TEXT_SHORT_LEN];
-
- ct_list_data *clist_d = (ct_list_data *) calloc(1, sizeof(ct_list_data));
- p_retvm_if(!clist_d, NULL, "clist_d is NULL, Not enough memory");
-
- clist_d->win = win;
- clist_d->navi = navi;
- if (save_contacts)
- {
- clist_d->contact_add_cb = ct_list_add_contacts_to_group;
- }
- else
- {
- clist_d->contact_add_cb = ct_list_add_contacts;
- }
- clist_d->view_id = CT_LIST_MULTI_ADD_MEMBER;
- clist_d->list_op = CT_GET_LIST_PERSON_OF_ADDRBOOK_ID;
- clist_d->ug_request = CT_UG_REQUEST_CHECK;
- clist_d->base_grp = group_id;
- clist_d->base_ab = ab_id;
- clist_d->list_grp_person = list;
- ct_list_get_contacts(clist_d, &clist_d->list);
- clist_d->base_layout = ct_list_create_contact_view(clist_d);
- clist_d->title = strdup(T_(CT_GET_TEXT_BASIC, CTTEXT_SELECT_CONTACTS));
- snprintf(buf, sizeof(buf), "%s (%d)", clist_d->title,
- clist_d->cnt_list_total);
-
- clist_d->navi_item = elm_naviframe_item_push(clist_d->navi, buf, NULL, NULL,
- clist_d->base_layout, NULL);
- ctui_list_edit_mode_start(clist_d);
- evas_object_data_set(clist_d->navi, "gadd_list_d", clist_d);
-
- return clist_d->navi_item;
-}
-
-API void ctui_list_update_group_list_without_progressbar(Evas_Object *navi,
- int group_id,
- Eina_List *add_list,
- Eina_List *remove_list)
-{
- PH_TRACE;
- p_retm_if(!navi, "parameter navi is NULL");
- ct_list_data *clist_d = (ct_list_data *) calloc(1, sizeof(ct_list_data));
- p_retm_if(!clist_d, "clist_d is NULL, Not enough memory");
-
- clist_d->navi = navi;
- clist_d->base_grp = group_id;
- clist_d->list_grp_person = &add_list;
- clist_d->list_check_info = remove_list;
-
- if (eina_list_count(add_list) > 0)
- {
- ct_list_add_contacts_to_group_without_progressbar(clist_d);
- }
-
- Eina_List *l_d = NULL;
- void *v_person_info_d = NULL;
- EINA_LIST_FOREACH(clist_d->list_check_info, l_d, v_person_info_d)
- {
- ct_person_list *person_info_d = (ct_person_list *) v_person_info_d;
- if (person_info_d)
- {
- Eina_List *l = NULL;
- void *v_person_info = NULL;
- EINA_LIST_FOREACH(*clist_d->list_grp_person, l, v_person_info)
- {
- ct_person_list *person_info = (ct_person_list *) v_person_info;
- if (person_info)
- {
- if (person_info_d->id == person_info->id)
- {
- clist_d->list_check_info = eina_list_remove(clist_d->list_check_info, person_info_d);
- }
- }
- }
- }
- }
- if (eina_list_count(clist_d->list_check_info) > 0)
- {
- list_edit_delete_persons_without_progressbar(clist_d);
- }
-
- if (clist_d->update_delete_list)
- {
- contacts_db_update_records_async(clist_d->update_delete_list,
- list_edit_delete_persons_without_progressbar_cb, clist_d);
- }
- else if (clist_d->update_add_list)
- {
- contacts_db_update_records_async(clist_d->update_add_list,
- ct_list_add_contacts_to_group_without_progressbar_cb, clist_d);
- }
- else
- {
- phone_show_tickernoti(S_(CT_SYS_POP_SUCCESS));
- elm_naviframe_item_pop(clist_d->navi);
- }
-}
-
-API Evas_Object* ctui_create_vcard_list_select_view(Evas_Object *navi,
- Eina_List *list,
- const char *path,
- ct_select_result_cb result_cb,
- void *result_cb_data)
-{
- PH_TRACE;
- char buf[PH_TEXT_SHORT_LEN];
-
- ct_list_data *clist_d = (ct_list_data *) calloc(1, sizeof(ct_list_data));
- p_retvm_if(!clist_d, NULL, "clist_d is NULL, Not enough memory");
-
- clist_d->navi = navi;
- clist_d->list = list;
- clist_d->cnt_list_total = eina_list_count(list);
- clist_d->vcard_path = path;
- clist_d->select_result_cb = result_cb;
- clist_d->select_result_cb_data = result_cb_data;
- clist_d->list_op = CT_GET_LIST_VCARD;
- clist_d->ug_request = CT_UG_REQUEST_CHECK;
- clist_d->base_ab = -1;
-
- clist_d->base_layout = ct_list_create_contact_view(clist_d);
- clist_d->title = strdup(T_(CT_GET_TEXT_BASIC, CTTEXT_VCARD_CONTACTS));
- snprintf(buf, sizeof(buf), "%s (%d)", clist_d->title,
- clist_d->cnt_list_total);
-
- clist_d->navi_item = elm_naviframe_item_push(clist_d->navi, buf, NULL, NULL,
- clist_d->base_layout, NULL);
- ctui_list_edit_mode_start(clist_d);
-
- evas_object_data_set(clist_d->navi, "clist_d", clist_d);
- return clist_d->navi;
-}
-
-// Show contact list view from vcf file
-API Evas_Object* ctui_create_vcard_list_view(Evas_Object *win, Eina_List *list,
- const char *path)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) calloc(1, sizeof(ct_list_data));
- p_retvm_if(!clist_d, NULL, "clist_d is NULL, Not enough memory");
-
- clist_d->win = win;
- clist_d->list = list;
- clist_d->cnt_list_total = eina_list_count(list);
- clist_d->vcard_path = path;
- clist_d->base_ab = -1;
-
- Evas_Object *conform = elm_conformant_add(win);
- p_retvm_if(NULL == conform, NULL, "elm_conformant_add() Failed");
- evas_object_show(conform);
-
- Evas_Object *base = phone_create_base_layout(win, true);
- if (base)
- {
- clist_d->list_op = CT_GET_LIST_VCARD;
- Evas_Object *navi = list_create_vcard_list_view(base, clist_d);
-
- evas_object_data_set(win, "naviframe", (void *) navi);
-
- Evas_Object *bg = phone_create_bg(base);
- if (NULL == bg)
- {
- ERR("phone_create_bg() return NULL");
- evas_object_del(base);
- free(clist_d);
- return NULL;
- }
-
- evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
- evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
- elm_win_resize_object_add(win, base);
- elm_win_resize_object_add(win, conform);
- elm_object_content_set(conform, base);
- evas_object_show(base);
- evas_object_show(conform);
- evas_object_data_set(clist_d->navi, "clist_d", clist_d);
-
- return base;
- }
- else
- {
- free(clist_d);
- return NULL;
- }
-}
-
-API Evas_Object* ctui_create_phone_list_view(const ph_view_info *view_info)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) calloc(1, sizeof(ct_list_data));
- p_retvm_if(!clist_d, NULL, "clist_d is NULL, Not enough memory");
-
- clist_d->ug = view_info->ug;
- clist_d->win = view_info->win;
- clist_d->navi = view_info->navi;
- clist_d->tab_mode = CT_LIST_IN_MULTI_TAB;
- clist_d->navi_item = elm_naviframe_bottom_item_get(view_info->navi);
-
- switch (view_info->ug_request)
- {
- case PH_UG_REQUEST_CHECK_FOR_EMAIL:
- case PH_UG_REQUEST_SELECT_EMAIL:
- clist_d->list_op = CT_GET_LIST_ALL_PERSON_HAD_EMAIL;
- break;
- case PH_UG_REQUEST_CHECK_FOR_NUMBER:
- case PH_UG_REQUEST_SELECT_NUMBER:
- clist_d->list_op = CT_GET_LIST_ALL_PERSON_HAD_NUMBER;
- break;
- case PH_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL:
- case PH_UG_REQUEST_SELECT_NUMBER_OR_EMAIL:
- clist_d->list_op = CT_GET_LIST_ALL_PERSON_HAD_NUMBER_OR_EMAIL;
- break;
- default:
- clist_d->list_op = CT_GET_LIST_ALL_PERSON;
- break;
- }
-
- clist_d->base_ab = ctui_get_view_mode();
- if (clist_d->base_ab > -1)
- {
- clist_d->list_op = CT_GET_LIST_PERSON_OF_ADDRBOOK_ID;
- }
- else
- clist_d->base_ab = -1;
-
- clist_d->ug_request = view_info->ug_request;
- clist_d->ug_data = view_info->ug_data;
- clist_d->cnt_max_check = view_info->ug_cnt_max;
-
- ct_list_init_account_data(clist_d);
-
- ct_list_get_contacts(clist_d, &clist_d->list);
- clist_d->base_layout = ct_list_create_contact_view(clist_d);
- evas_object_data_set(clist_d->navi, "clist_d", clist_d);
-
- return clist_d->base_layout;
-}
-
-API void ctui_create_list_single_select_view(Evas_Object *win,
- Evas_Object *navi, Evas_Smart_Cb sel_cb, void *cb_data, int id_caller)
-{
- PH_TRACE;
- ct_list_data *clist_d;
- char buf[PH_TEXT_MAX_LEN + 1];
-
- clist_d = (ct_list_data *) calloc(1, sizeof(ct_list_data));
- clist_d->list_op = CT_GET_LIST_ALL_PERSON;
- clist_d->selected_person_id = id_caller;
- clist_d->navi = navi;
- clist_d->win = win;
- clist_d->gl_sel = sel_cb;
- clist_d->gl_sel_data = cb_data;
-
- ct_list_init_account_data(clist_d);
- ct_list_get_contacts(clist_d, &clist_d->list);
- list_create_itcs(clist_d);
- clist_d->base_layout = ct_list_create_contact_layout(clist_d);
-
- FREEandSTRDUP(clist_d->title, T_(CT_GET_TEXT_BASIC, CTTEXT_ALL_CONTACTS));
- snprintf(buf, sizeof(buf), "%s (%d)", clist_d->title,
- clist_d->cnt_list_total);
- clist_d->navi_item = elm_naviframe_item_push(clist_d->navi, buf, NULL, NULL,
- clist_d->base_layout, NULL);
-}
-
-API void ctui_list_view_resume(Evas_Object *navi)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) evas_object_data_get(navi, "clist_d");
- p_retm_if(NULL == clist_d, "evas_object_data_get() return NULL");
-
- clist_d->is_background = false;
-
- contacts_name_display_order_e order_display;
- int err = contacts_setting_get_name_display_order(&order_display);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_setting_get_name_display_order() Failed(%d)", err);
-
- if (clist_d->order_display != order_display)
- ctui_list_genlist_update(clist_d);
-
- if (clist_d->update_timer)
- {
- ecore_timer_del(clist_d->update_timer);
- clist_d->update_timer = NULL;
- ctui_list_genlist_update(clist_d);
- }
-}
-
-API void ctui_list_set_background(Evas_Object *obj, bool is_background)
-{
- PH_TRACE;
- ct_list_data *clist_d;
- clist_d = (ct_list_data *) evas_object_data_get(obj, "clist_d");
- p_retm_if(NULL == clist_d, "log data is null");
-
- clist_d->is_background = is_background;
- if (clist_d->update_timer)
- {
- ecore_timer_del(clist_d->update_timer);
- clist_d->update_timer = NULL;
- ctui_list_lazy_update(_contacts_person._uri, clist_d);
- }
-}
-
-API void ctui_list_view_pause(Evas_Object *navi)
-{
- PH_TRACE;
- int err = CONTACTS_ERROR_NONE;
- ct_list_data *clist_d = (ct_list_data *) evas_object_data_get(navi, "clist_d");
- p_retm_if(NULL == clist_d, "evas_object_data_get() return NULL");
-
- err = contacts_setting_get_name_display_order(&(clist_d->order_display));
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_setting_get_name_display_order() Failed(%d)", err);
-
-}
-
diff --git a/lib/list/ct-list-utils.cpp b/lib/list/ct-list-utils.cpp
deleted file mode 100755
index f26359c..0000000
--- a/lib/list/ct-list-utils.cpp
+++ /dev/null
@@ -1,1153 +0,0 @@
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <ui-gadget-module.h>
-#include "phone.h"
-#include "ct-detail.h"
-#include "ct-list.h"
-#include "ct-list-contact-view.h"
-#include "ct-list-utils.h"
-
-static const char *NAVI_ITEM_POP = "navi_it_pop";
-
-int ct_list_parse_bundle(service_h service, ct_list_data* clist_d)
-{
- PH_TRACE;
- char* val = NULL;
-
- if (service)
- {
- service_get_extra_data(service, CT_UG_BUNDLE_TYPE, &val);
- if (val)
- clist_d->ug_request = atoi(val);
- PH_DBG("type = %d", clist_d->ug_request);
- free(val);
-
- switch (clist_d->ug_request)
- {
- case CT_UG_REQUEST_SELECT_GROUP:
- case CT_UG_REQUEST_SELECT_GROUP_ADD_TO_HOME:
- return 0;
- case CT_UG_REQUEST_LIST:
- case CT_UG_REQUEST_LIST_WITH_BACK:
- case CT_UG_REQUEST_SELECT_PERSON:
- case CT_UG_REQUEST_SHARE_CONTACT_INFO:
- case CT_UG_REQUEST_SELECT_VCARD:
- val = NULL;
- service_get_extra_data(service, CT_UG_BUNDLE_ACCOUNTID, &val);
- if (val)
- {
- clist_d->list_op = CT_GET_LIST_PERSON_OF_ADDRBOOK_ID;
- clist_d->base_ab = atoi(val);
- free(val);
- }
-
- break;
- case CT_UG_REQUEST_SELECT_NUMBER:
- case CT_UG_REQUEST_SELECT_CONTACT_ADD_TO_HOME:
- val = NULL;
- service_get_extra_data(service, CT_UG_BUNDLE_ACCOUNTID, &val);
- if (val)
- {
- clist_d->list_op =
- CT_GET_LIST_PERSON_HAD_NUMBER_OF_ADDRBOOK_ID;
- clist_d->base_ab = atoi(val);
- free(val);
- }
- else
- {
- clist_d->list_op = CT_GET_LIST_ALL_PERSON_HAD_NUMBER;
- }
- break;
- case CT_UG_REQUEST_SELECT_EMAIL:
- val = NULL;
- service_get_extra_data(service, CT_UG_BUNDLE_ACCOUNTID, &val);
- if (val)
- {
- clist_d->list_op =
- CT_GET_LIST_PERSON_HAD_EMAIL_OF_ADDRBOOK_ID;
- clist_d->base_ab = atoi(val);
- free(val);
- }
- else
- {
- clist_d->list_op = CT_GET_LIST_ALL_PERSON_HAD_EMAIL;
- }
- break;
- case CT_UG_REQUEST_SELECT_NUMBER_OR_EMAIL:
- val = NULL;
- service_get_extra_data(service, CT_UG_BUNDLE_ACCOUNTID, &val);
- if (val)
- {
- clist_d->list_op =
- CT_GET_LIST_PERSON_HAD_NUMBER_OR_EMAIL_OF_ADDRBOOK_ID;
- clist_d->base_ab = atoi(val);
- free(val);
- }
- else
- {
- clist_d->list_op =
- CT_GET_LIST_ALL_PERSON_HAD_NUMBER_OR_EMAIL;
- }
- break;
- case CT_UG_REQUEST_UPDATE_CONTACT:
- val = NULL;
- service_get_extra_data(service, CT_UG_BUNDLE_ACCOUNTID, &val);
- if (val)
- {
- clist_d->list_op = CT_GET_LIST_PERSON_OF_ADDRBOOK_ID;
- clist_d->base_ab = atoi(val);
- free(val);
- }
- service_get_extra_data(service, CT_UG_BUNDLE_NUM,
- &clist_d->ug_data);
- if (clist_d->ug_data)
- break;
- service_get_extra_data(service, CT_UG_BUNDLE_EMAIL,
- &clist_d->ug_data);
- if (clist_d->ug_data)
- break;
- service_get_extra_data(service, CT_UG_BUNDLE_WEB,
- &clist_d->ug_data);
- if (clist_d->ug_data)
- break;
- break;
- case CT_UG_REQUEST_UPDATE_WITH_NUM:
- service_get_extra_data(service, CT_UG_BUNDLE_NUM,
- &clist_d->ug_data);
- val = NULL;
- service_get_extra_data(service, CT_UG_BUNDLE_ACCOUNTID, &val);
- if (val)
- {
- clist_d->base_ab = atoi(val);
- free(val);
- }
- clist_d->list_op = CT_GET_LIST_PERSON_OF_WRITABLE_ADDRBOOK_ID;
- break;
- case CT_UG_REQUEST_UPDATE_WITH_EMAIL:
- service_get_extra_data(service, CT_UG_BUNDLE_EMAIL,
- &clist_d->ug_data);
- val = NULL;
- service_get_extra_data(service, CT_UG_BUNDLE_ACCOUNTID, &val);
- if (val)
- {
- clist_d->base_ab = atoi(val);
- free(val);
- }
- clist_d->list_op = CT_GET_LIST_PERSON_OF_WRITABLE_ADDRBOOK_ID;
- break;
- case CT_UG_REQUEST_UPDATE_WITH_WEB:
- service_get_extra_data(service, CT_UG_BUNDLE_WEB,
- &clist_d->ug_data);
- val = NULL;
- service_get_extra_data(service, CT_UG_BUNDLE_ACCOUNTID, &val);
- if (val)
- {
- clist_d->base_ab = atoi(val);
- free(val);
- }
- clist_d->list_op = CT_GET_LIST_PERSON_OF_WRITABLE_ADDRBOOK_ID;
- break;
- case CT_UG_REQUEST_CHECK:
- val = NULL;
- service_get_extra_data(service, CT_UG_BUNDLE_ACCOUNTID, &val);
- if (val)
- {
- clist_d->list_op = CT_GET_LIST_PERSON_OF_ADDRBOOK_ID;
- clist_d->base_ab = atoi(val);
- free(val);
- }
- else
- {
- service_get_extra_data(service, CT_UG_BUNDLE_MAX, &val);
- if (val)
- {
- clist_d->cnt_max_check = atoi(val);
- free(val);
- }
- }
- break;
- case CT_UG_REQUEST_CHECK_FOR_NUMBER:
- val = NULL;
- service_get_extra_data(service, CT_UG_BUNDLE_ACCOUNTID, &val);
- if (val)
- {
- clist_d->list_op =
- CT_GET_LIST_PERSON_HAD_NUMBER_OF_ADDRBOOK_ID;
- clist_d->base_ab = atoi(val);
- free(val);
- }
- else
- {
- clist_d->list_op = CT_GET_LIST_ALL_PERSON_HAD_NUMBER;
- service_get_extra_data(service, CT_UG_BUNDLE_MAX, &val);
- if (val)
- clist_d->cnt_max_check = atoi(val);
- free(val);
- }
- break;
- case CT_UG_REQUEST_CHECK_FOR_EMAIL:
- val = NULL;
- service_get_extra_data(service, CT_UG_BUNDLE_ACCOUNTID, &val);
- if (val)
- {
- clist_d->list_op =
- CT_GET_LIST_PERSON_HAD_EMAIL_OF_ADDRBOOK_ID;
- clist_d->base_ab = atoi(val);
- free(val);
- }
- else
- {
- clist_d->list_op = CT_GET_LIST_ALL_PERSON_HAD_EMAIL;
- service_get_extra_data(service, CT_UG_BUNDLE_MAX, &val);
- if (val)
- clist_d->cnt_max_check = atoi(val);
- free(val);
- }
- break;
- case CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL:
- val = NULL;
- service_get_extra_data(service, CT_UG_BUNDLE_ACCOUNTID, &val);
- if (val)
- {
- clist_d->list_op =
- CT_GET_LIST_PERSON_HAD_NUMBER_OR_EMAIL_OF_ADDRBOOK_ID;
- clist_d->base_ab = atoi(val);
- free(val);
- }
- else
- {
- clist_d->list_op =
- CT_GET_LIST_ALL_PERSON_HAD_NUMBER_OR_EMAIL;
- service_get_extra_data(service, CT_UG_BUNDLE_MAX, &val);
- if (val)
- clist_d->cnt_max_check = atoi(val);
- free(val);
- }
- break;
- break;
- case PH_UG_REQUEST_SET_WITH_IMG:
- case PH_UG_REQUEST_SET_WITH_RINGTONE:
- case CT_UG_REQUEST_SAVE_IMG:
- case CT_UG_REQUEST_SAVE_RINGTONE:
- service_get_extra_data(service, CT_UG_BUNDLE_PATH,
- &clist_d->ug_data);
- if (CT_UG_REQUEST_SAVE_IMG == clist_d->ug_request)
- clist_d->list_op =
- CT_GET_LIST_PERSON_OF_WRITABLE_ADDRBOOK_ID;
- if (-1 == access(clist_d->ug_data, R_OK))
- {
- ERR("Invalid filepath(%s)", clist_d->ug_data);
- return -2;
- }
- break;
- default:
- ERR("Invalid request(%d)", clist_d->ug_request);
- return -1;
- }
- }
- return 0;
-}
-
-static void list_img_crop_result_for_add(ui_gadget_h ug, service_h service,
- void *data)
-{
- PH_TRACE;
- contacts_record_h record_image = NULL;
- int err = CONTACTS_ERROR_NONE;
- ct_detail_data *cdetail_d = (ct_detail_data *) data;
-
- p_retm_if(NULL == ug || NULL == data, "ug or data is NULL");
-
- if (service)
- {
- char *normal = NULL;
- char *full = NULL;
-
- service_get_extra_data(service, "crop_image_path", &normal);
- p_retm_if(!normal, "return value is NULL.\n");
-
- service_get_extra_data(service, "image_path", &full);
- record_image = ctui_get_record_image(cdetail_d->contact);
-
- err = contacts_record_set_str(record_image, _contacts_image.path,
- normal);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_set_str() Failed(%d)", err);
-
- free(normal);
- free(full);
- }
- cdetail_d->only_input = true;
- ctui_create_input_view(cdetail_d);
-}
-
-static void list_destory_detail_child_ug(ui_gadget_h ug, void *priv)
-{
- PH_TRACE;
- ct_detail_data *cdetail_d = (ct_detail_data *) priv;
- p_retm_if(NULL == ug, "ug is NULL");
- ug_destroy(ug);
-
- p_retm_if(NULL == priv, "priv is NULL");
- cdetail_d->child_ug = NULL;
-}
-
-void ct_list_destroy_child_ug(void *data)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data*) data;
- clist_d->child_ug = NULL;
-}
-
-API void ctui_list_update_with_data(ph_view_info *view_info, void *data,
- int person_id, int grp_id, int ab_id)
-{
- PH_TRACE;
- ct_detail_data *cdetail_d;
- int err = CONTACTS_ERROR_NONE;
- contacts_record_h record = NULL;
- struct ug_cbs cbs = { 0 };
-
- cdetail_d = (ct_detail_data *) calloc(1, sizeof(ct_detail_data));
- p_retm_if(!cdetail_d, "cdetail_d is NULL, Not enough memory");
-
- cdetail_d->win = view_info->win;
- cdetail_d->navi = view_info->navi;
- cdetail_d->ug = view_info->ug;
- cdetail_d->prev_navi_item = elm_naviframe_top_item_get(view_info->navi);
- cdetail_d->prev_view_data = data;
- cdetail_d->person_id = person_id;
- cdetail_d->base_grp = grp_id;
- cdetail_d->base_ab = ab_id;
- cdetail_d->ug_request = view_info->ug_request;
-
- if (person_id)
- {
- Eina_List *list_contact;
- err = contacts_db_get_record(_contacts_person._uri, person_id,
- &(cdetail_d->person));
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_db_get_record() Failed(%d)", err);
-
- list_contact = ctui_person_get_writable_contact_list(person_id);
- if (NULL == list_contact)
- {
- err = contacts_record_create(_contacts_contact._uri,
- &(cdetail_d->contact));
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_create() Failed(%d)", err);
- }
- else
- {
- err = contacts_record_clone((contacts_record_h) list_contact->data,
- &(cdetail_d->contact));
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_clone() Failed(%d)", err);
- ctui_free_record_list(list_contact);
- }
- }
-
- if (NULL == cdetail_d->contact)
- {
- err = contacts_record_create(_contacts_contact._uri,
- &(cdetail_d->contact));
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_create() Failed(%d)", err);
- }
-
- switch (view_info->ug_request)
- {
- //case PH_UG_REQUEST_SET_WITH_NUM:
- case CT_UG_REQUEST_UPDATE_WITH_NUM:
- err = contacts_record_create(_contacts_number._uri, &record);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_create() Failed(%d)", err);
-
- err = contacts_record_set_str(record, _contacts_number.number,
- view_info->ug_data);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_set_str() Failed(%d)", err);
-
- err = contacts_record_set_int(record, _contacts_number.type,
- CONTACTS_NUMBER_TYPE_CELL);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_set_int() Failed(%d)", err);
-
- err = contacts_record_add_child_record(cdetail_d->contact,
- _contacts_contact.number, record);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_add_child_record() Failed(%d)", err);
- break;
- //case PH_UG_REQUEST_SET_WITH_EMAIL:
- case CT_UG_REQUEST_UPDATE_WITH_EMAIL:
- err = contacts_record_create(_contacts_email._uri, &record);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_create() Failed(%d)", err);
-
- err = contacts_record_set_str(record, _contacts_email.email,
- view_info->ug_data);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_set_str() Failed(%d)", err);
-
- err = contacts_record_add_child_record(cdetail_d->contact,
- _contacts_contact.email, record);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_add_child_record() Failed(%d)", err);
- break;
- //case PH_UG_REQUEST_SET_WITH_WEB:
- case CT_UG_REQUEST_UPDATE_WITH_WEB:
- err = contacts_record_create(_contacts_url._uri, &record);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_create() Failed(%d)", err);
-
- err = contacts_record_set_str(record, _contacts_url.url,
- view_info->ug_data);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_set_str() Failed(%d)", err);
-
- err = contacts_record_add_child_record(cdetail_d->contact,
- _contacts_contact.url, record);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_add_child_record() Failed(%d)", err);
- break;
- case CT_UG_REQUEST_UPDATE_CONTACT:
- break;
- case PH_UG_REQUEST_SET_WITH_IMG:
- case CT_UG_REQUEST_SAVE_IMG: //only handle for add
- cbs.result_cb = list_img_crop_result_for_add;
- cbs.destroy_cb = list_destory_detail_child_ug;
- cbs.priv = cdetail_d;
- cdetail_d->child_ug = phone_image_crop_ug(cdetail_d->ug,
- view_info->ug_data, &cbs);
- return;
- case PH_UG_REQUEST_SET_WITH_RINGTONE:
- case CT_UG_REQUEST_SAVE_RINGTONE: //only handle for add
- err = contacts_record_set_str(cdetail_d->contact,
- _contacts_contact.ringtone_path, view_info->ug_data);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_set_str() Failed(%d)", err);
- break;
- default:
- ERR("Invalid type(%d)", view_info->ug_request);
- break;
- }
- cdetail_d->only_input = true;
- ctui_create_input_view(cdetail_d);
-}
-
-void ct_list_call(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- ct_list_data *clist_d;
- ct_person_list *person_info = (ct_person_list *) data;
- p_retm_if(NULL == person_info, "parameter(person_info) is NULL");
- p_retm_if(NULL == person_info->number || '\0' == *person_info->number,
- "number is NULL");
- phone_launch_voice_call(person_info->id, person_info->number);
-
- clist_d = (ct_list_data *) evas_object_data_get(obj, "clist_d");
- if (clist_d)
- ctui_list_set_unsweep(clist_d);
-}
-
-void ct_list_msg(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- ct_list_data *clist_d;
- ct_person_list *person_info = (ct_person_list *) data;
-
- p_retm_if(NULL == data, "parameter(person_info) is NULL");
- p_retm_if(NULL == person_info->number || '\0' == *person_info->number,
- "number is NULL");
-
- clist_d = (ct_list_data *) evas_object_data_get(obj, "clist_d");
- p_retm_if(NULL == clist_d, "evas_object_data_get() return NULL");
-
- clist_d->child_ug = ctui_msg_ug(clist_d->ug, person_info->number,
- NULL, ct_list_destroy_child_ug, clist_d);
-
- ctui_list_set_unsweep(clist_d);
-}
-
-void ct_list_popup_hide_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- ct_list_data *clist_d;
-
- clist_d = (ct_list_data *) evas_object_data_get((Evas_Object *) data, "clist_d");
- p_retm_if(NULL == clist_d, "evas_object_data_get(clist_d) return NULL");
- evas_object_del(clist_d->popup);
- clist_d->popup = NULL;
-}
-
-static void list_sweep_delete_contact(void *data, Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- int err = CONTACTS_ERROR_NONE;
- ct_list_data *clist_d;
- contacts_record_h record = NULL;
- int contact_id = 0;
-
- PH_DBG("##### [TSP_TEST] list->sweep delete start#####");
-
- clist_d = (ct_list_data *) evas_object_data_get(obj, "clist_d");
- p_retm_if(NULL == clist_d, "evas_object_data_get() return NULL");
- evas_object_del(clist_d->popup);
- clist_d->popup = NULL;
-
- evas_object_data_set(clist_d->navi, "ct_list_update_ui", (void *) 1);
-
- err = contacts_db_get_record(_contacts_person._uri, (int) data, &record);
- p_retm_if(err != CONTACTS_ERROR_NONE, "contacts_db_get_record() fail");
- err = contacts_record_get_int(record, _contacts_person.display_contact_id,
- &contact_id);
- p_retm_if(err != CONTACTS_ERROR_NONE, "contacts_record_get_int() fail");
- err = contacts_db_delete_record(_contacts_person._uri, (int) data);
- if (CONTACTS_ERROR_NONE == err)
- phone_show_tickernoti(S_(PH_SYS_POP_DELETED));
- else
- phone_show_tickernoti(S_(PH_SYS_POP_FAILED));
-}
-
-void ct_list_sweep_del_cb(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- int id;
- ct_list_data *clist_d;
- Evas_Object *btn;
-
- clist_d = (ct_list_data *) evas_object_data_get(obj, "clist_d");
- p_retm_if(NULL == clist_d, "evas_object_data_get() return NULL");
-
- id = (int) data;
- btn = phone_create_confirm_popup(&clist_d->popup, clist_d->win,
- S_(PH_SYS_POP_DELETE_Q), list_sweep_delete_contact,
- (void *) id);
- evas_object_data_set(btn, "clist_d", clist_d);
-
- ctui_list_set_unsweep(clist_d);
-}
-
-void ct_list_get_title(ct_list_data *clist_d, int list_op, int id_ab,
- int id_grp)
-{
- PH_TRACE;
- char *title = NULL;
- int err = CONTACTS_ERROR_NONE;
- contacts_record_h record = NULL;
-
- // TODO: Fixme
- switch (list_op)
- {
- case CT_GET_LIST_ALL_PERSON:
- case CT_GET_LIST_PERSON_OF_WRITABLE_ADDRBOOK_ID:
- case CT_GET_LIST_ALL_PERSON_HAD_EMAIL:
- case CT_GET_LIST_ALL_PERSON_HAD_NUMBER:
- {
- char buf[PH_TEXT_SHORT_LEN];
- snprintf(buf, sizeof(buf), "%s (%d)",
- T_(CT_GET_TEXT_BASIC, CTTEXT_ALL_CONTACTS),
- clist_d->cnt_list_total);
- clist_d->title = strdup(buf);
- }
- break;
- case CT_GET_LIST_PERSON_OF_ADDRBOOK_ID:
- case CT_GET_LIST_PERSON_HAD_NUMBER_OF_ADDRBOOK_ID:
- case CT_GET_LIST_PERSON_HAD_EMAIL_OF_ADDRBOOK_ID:
- if (0 < id_ab)
- {
- char temp[PH_TEXT_MAX_LEN];
- temp[0] = '\0';
- ctui_get_addressbook_name(id_ab, temp, sizeof(temp));
- if (*temp)
- title = strdup(temp);
- }
- else
- title = strdup(T_(CT_GET_TEXT_BASIC, CTTEXT_PHONE));
- clist_d->sub_title = title;
- clist_d->title = strdup(T_(CT_GET_TEXT_BASIC, CTTEXT_ALL_CONTACTS));
- break;
- case CT_GET_LIST_PERSON_OF_GROUP_ID:
- case CT_GET_LIST_PERSON_HAD_NUMBER_OF_GROUP_ID:
- case CT_GET_LIST_PERSON_HAD_EMAIL_OF_GROUP_ID:
- err = contacts_db_get_record(_contacts_group._uri, id_grp, &record);
- p_retm_if(CONTACTS_ERROR_NONE != err,
- "contacts_db_record_get() Failed(%d)", err);
-
- clist_d->title = SAFE_STRDUP(phone_get_group_name(record));
-
- err = contacts_record_destroy(record, true);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_destroy() Failed(%d)", err);
-
- if (0 < id_ab)
- {
- char temp[PH_TEXT_MAX_LEN];
- temp[0] = '\0';
- ctui_get_addressbook_name(id_ab, temp, sizeof(temp));
- if (*temp)
- title = strdup(temp);
- }
- else
- title = strdup(T_(CT_GET_TEXT_BASIC, CTTEXT_PHONE));
- clist_d->sub_title = title;
- break;
- case CT_GET_LIST_PERSON_NOT_ASSIGNED_OF_ADDRBOOK_ID:
- case CT_GET_LIST_PERSON_NOT_ASSIGNED_HAD_NUMBER_OF_ADDRBOOK_ID:
- case CT_GET_LIST_PERSON_NOT_ASSIGNED_HAD_EMAIL_OF_ADDRBOOK_ID:
- clist_d->title = strdup(T_(CT_GET_TEXT_BASIC, CTTEXT_NOT_ASSIGNED));
- if (0 < id_ab)
- {
- char temp[PH_TEXT_MAX_LEN];
- temp[0] = '\0';
- ctui_get_addressbook_name(id_ab, temp, sizeof(temp));
- if (*temp)
- title = strdup(temp);
- }
- else
- title = strdup(T_(CT_GET_TEXT_BASIC, CTTEXT_PHONE));
- clist_d->sub_title = title;
- break;
-
- }
-}
-
-static void __list_add_contacts_to_favorite(ct_list_data *clist_d);
-
-static void __list_add_contacts_to_favorite_cb(int err, void *data)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
- ph_progress_info *p_info = NULL;
-
- p_retm_if(NULL == clist_d, "Invalid parameter(clist_d is NULL)");
- p_info = clist_d->p_info;
- p_retm_if(NULL == p_info, "Invalid parameter(p_info is NULL)");
-
- if (p_info->update_list)
- {
- contacts_list_destroy(p_info->update_list, true);
- p_info->update_list = NULL;
- }
-
- if (CONTACTS_ERROR_NONE != err || p_info->alive == false)
- {
- if (p_info->popup)
- {
- evas_object_del(p_info->popup);
- p_info->popup = NULL;
- }
- phone_show_tickernoti(S_(PH_SYS_POP_FAILED));
- free(p_info);
- clist_d->p_info = NULL;
- clist_d->updating = false;
- elm_naviframe_item_pop_to((Elm_Object_Item *)
- evas_object_data_get(clist_d->navi, NAVI_ITEM_POP));
- return;
- }
- else if (p_info->cnt == p_info->cnt_checked_total)
- {
- if (p_info->popup)
- {
- evas_object_del(p_info->popup);
- p_info->popup = NULL;
- }
- phone_show_tickernoti(S_(CT_SYS_POP_SUCCESS));
- free(p_info);
- clist_d->p_info = NULL;
- elm_naviframe_item_pop_to((Elm_Object_Item *)
- evas_object_data_get(clist_d->navi, NAVI_ITEM_POP));
- return;
- }
- else
- {
- __list_add_contacts_to_favorite(clist_d);
- }
-
-}
-
-static void __list_add_contacts_to_favorite(ct_list_data *clist_d)
-{
- PH_TRACE;
- const int LIST_BULK_LENGTH = 50;
- int count = 0;
- int base_count = 0;
- double value = 0.0;
- char percent_total[PH_TEXT_MAX_LEN + 1] = { 0, };
- char percent[PH_TEXT_MAX_LEN + 1] = { 0, };
- ph_progress_info *p_info = NULL;
- contacts_record_h record = NULL;
- contacts_list_h list = NULL;
- int err = CONTACTS_ERROR_NONE;
- Eina_List *l;
- void *v_person_info;
-
- p_retm_if(NULL == clist_d, "parameter(clist_d) is NULL");
- p_info = clist_d->p_info;
- p_retm_if(NULL == p_info, "parameter(p_info) is NULL");
-
- err = contacts_list_create(&list);
- p_retm_if(CONTACTS_ERROR_NONE != err, "contacts_list_create() Failed(%d)",
- err);
-
- EINA_LIST_FOREACH(clist_d->list_check_info, l, v_person_info)
- {
- ct_person_list *person_info = (ct_person_list *) v_person_info;
- if (NULL == person_info)
- continue;
- if (base_count < p_info->cnt)
- {
- base_count++;
- continue;
- }
-
- err = contacts_db_get_record(_contacts_person._uri, person_info->id,
- &record);
- if (CONTACTS_ERROR_NONE != err)
- {
- ERR("contacts_db_get_record() Failed(%d)", err);
- p_info->result = FALSE;
- p_info->completed = true;
- break;
- }
- err = contacts_record_set_bool(record, _contacts_person.is_favorite,
- true);
- if (CONTACTS_ERROR_NONE != err)
- {
- ERR("contacts_record_set_bool() Failed(%d)", err);
- p_info->result = FALSE;
- p_info->completed = true;
- break;
- }
-
- err = contacts_list_add(list, record);
-
- count++;
- if (LIST_BULK_LENGTH == count
- || (count + p_info->cnt) == p_info->cnt_checked_total)
- {
- p_info->cnt += count;
- break;
- }
-
- }
- value = (double) p_info->cnt / (double) p_info->cnt_checked_total;
- elm_progressbar_value_set(p_info->progressbar, value);
- snprintf(percent, sizeof(percent), "%d%%",
- (int) (100.0 * (double) p_info->cnt
- / (double) p_info->cnt_checked_total));
- snprintf(percent_total, sizeof(percent_total), "%d/%d", p_info->cnt,
- p_info->cnt_checked_total);
- edje_object_part_text_set(elm_layout_edje_get(p_info->layout),
- "elm.text.subtext1", percent);
- edje_object_part_text_set(elm_layout_edje_get(p_info->layout),
- "elm.text.subtext2", percent_total);
-
- p_info->update_list = list;
- contacts_db_update_records_async(list, __list_add_contacts_to_favorite_cb,
- clist_d);
-}
-
-void ct_list_add_contacts_to_favorite(Evas_Object *win, Evas_Object *navi,
- int cnt)
-{
- PH_TRACE;
- ct_list_data *clist_d;
- ph_progress_info *p_info;
-
- clist_d = (ct_list_data *) evas_object_data_get(navi, "favor_list_d");
- p_retm_if(NULL == clist_d, "evas_object_data_get return NULL");
-
- p_retm_if(clist_d->p_info, "thread is running");
-
- p_info = (ph_progress_info *) calloc(1, sizeof(ph_progress_info));
- p_retm_if(NULL == p_info, "calloc return NULL");
-
- clist_d->p_info = p_info;
- p_info->cnt_checked_total = cnt;
- p_info->alive = true;
- p_info->result = TRUE;
- p_info->popup = phone_progressbar_popup(win, p_info,
- T_(CT_GET_TEXT_BASIC, CTTEXT_ADDING_ING));
- __list_add_contacts_to_favorite(clist_d);
-}
-
-static void __list_add_group_relation(int group_id, int person_id,
- contacts_list_h list_result)
-{
- PH_TRACE;
- contacts_record_h record_group = NULL;
- contacts_list_h list = NULL;
- contacts_filter_h filter = NULL;
- contacts_query_h query = NULL;
- int err = CONTACTS_ERROR_NONE;
-
- p_retm_if(group_id <= 0, "Invalid parameter(group_id is %d)", group_id);
- p_retm_if(person_id <= 0, "Invalid parameter(person_id is %d)", person_id);
- p_retm_if(NULL == list_result, "Invalid parameter(list is NULL)");
-
- do
- {
- int address_book_id = 0;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_db_get_record(_contacts_group._uri, group_id,
- &record_group)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_record_get_int(record_group,
- _contacts_group.address_book_id, &address_book_id)))
- break;
-
- if (CONTACTS_ERROR_NONE
- != (err = contacts_query_create(_contacts_contact._uri, &query)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_filter_create(_contacts_contact._uri,
- &filter)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_filter_add_int(filter,
- _contacts_contact.address_book_id, CONTACTS_MATCH_EQUAL,
- address_book_id)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_filter_add_operator(filter,
- CONTACTS_FILTER_OPERATOR_AND)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_filter_add_int(filter,
- _contacts_contact.person_id, CONTACTS_MATCH_EQUAL,
- person_id)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_query_set_filter(query, filter)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_db_get_records_with_query(query, 0, 0, &list)))
- break;
-
- while (CONTACTS_ERROR_NONE == err)
- {
- contacts_record_h record = NULL;
- contacts_record_h record_clone = NULL;
- contacts_record_h record_group_relation = NULL;
- if (CONTACTS_ERROR_NONE != (err =
- contacts_list_get_current_record_p(list, &record)))
- break;
- if (CONTACTS_ERROR_NONE
- != (err = contacts_record_clone(record, &record_clone)))
- {
- ERR("contacts_record_clone() Failed(%d)", err);
- break;
- }
- if (CONTACTS_ERROR_NONE
- != (err = contacts_record_create(
- _contacts_group_relation._uri,
- &record_group_relation)))
- {
- ERR("contacts_record_create() Failed(%d)", err);
- break;
- }
- contacts_record_set_int(record_group_relation,
- _contacts_group_relation.group_id, group_id);
- contacts_record_add_child_record(record_clone,
- _contacts_contact.group_relation, record_group_relation);
- contacts_list_add(list_result, record_clone);
-
- err = contacts_list_next(list);
- }
- contacts_filter_destroy(filter);
- contacts_query_destroy(query);
- contacts_list_destroy(list, true);
- contacts_record_destroy(record_group, true);
- return;
- }
- while (0);
- contacts_filter_destroy(filter);
- contacts_query_destroy(query);
- contacts_list_destroy(list, true);
- contacts_record_destroy(record_group, true);
- return;
-}
-
-static void __list_add_contacts_to_group(ct_list_data *clist_d);
-
-static void __list_add_contacts_to_group_cb(int err, void *data)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
- ph_progress_info *p_info = NULL;
-
- p_retm_if(NULL == clist_d, "Invalid parameter(clist_d is NULL)");
- p_info = clist_d->p_info;
- p_retm_if(NULL == p_info, "Invalid parameter(p_info is NULL)");
-
- if (p_info->update_list)
- {
- contacts_list_destroy(p_info->update_list, true);
- p_info->update_list = NULL;
- }
-
- if (CONTACTS_ERROR_NONE != err || p_info->alive == false)
- {
- char *err_msg = NULL;
- if (p_info->popup)
- {
- evas_object_del(p_info->popup);
- p_info->popup = NULL;
- }
- switch (err)
- {
- case CONTACTS_ERROR_DB:
- err_msg = (char *) T_(CT_GET_TEXT_ERR, CTTEXT_ERR_DB_LOCKED);
- break;
- case CONTACTS_ERROR_FILE_NO_SPACE:
- err_msg = (char *) S_(CT_SYS_POP_NOT_ENOUGH_MEMORY);
- break;
- default:
- err_msg = (char *) S_(PH_SYS_POP_FAILED);
- break;
- }
-
- phone_show_tickernoti(err_msg);
- free(p_info);
- clist_d->p_info = NULL;
- clist_d->updating = false;
- Elm_Object_Item *item = (Elm_Object_Item *)
- evas_object_data_get(clist_d->navi, NAVI_ITEM_POP);
- if (item)
- {
- elm_naviframe_item_pop_to(item);
- }
- else
- {
- elm_naviframe_item_pop(clist_d->navi);
- }
- return;
- }
- else if (p_info->cnt == p_info->cnt_checked_total)
- {
- if (p_info->popup)
- {
- evas_object_del(p_info->popup);
- p_info->popup = NULL;
- }
- phone_show_tickernoti(S_(CT_SYS_POP_SUCCESS));
- free(p_info);
- clist_d->p_info = NULL;
- Elm_Object_Item *item = (Elm_Object_Item *)
- evas_object_data_get(clist_d->navi, NAVI_ITEM_POP);
- if (item)
- {
- elm_naviframe_item_pop_to(item);
- }
- else
- {
- elm_naviframe_item_pop(clist_d->navi);
- }
- return;
- }
- else
- {
- __list_add_contacts_to_group(clist_d);
- }
-}
-
-void ct_list_add_contacts_to_group_without_progressbar_cb(int err, void *data)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) data;
- p_retm_if(NULL == clist_d, "Invalid parameter(clist_d is NULL)");
-
- PH_DBG("err = %d", err);
- if (CONTACTS_ERROR_NONE != err)
- {
- clist_d->updating = false;
- phone_show_tickernoti(S_(PH_SYS_POP_FAILED));
- }
- else if (clist_d->update_add_list)
- {
- contacts_list_destroy(clist_d->update_add_list, true);
- clist_d->update_add_list = NULL;
-
- phone_show_tickernoti(S_(CT_SYS_POP_SUCCESS));
- }
-
- elm_naviframe_item_pop(clist_d->navi);
-}
-
-void ct_list_add_contacts_to_group_without_progressbar(ct_list_data *clist_d)
-{
- PH_TRACE;
- p_retm_if(NULL == clist_d, "parameter(clist_d) is NULL");
- Eina_List *l = NULL;
- void *v_person_info = NULL;
- contacts_list_h list = NULL;
-
- int err = contacts_list_create(&list);
- p_retm_if(CONTACTS_ERROR_NONE != err, "contacts_list_create() Failed(%d)", err);
- EINA_LIST_FOREACH(*clist_d->list_grp_person, l, v_person_info)
- {
- ct_person_list *person_info = (ct_person_list *) v_person_info;
- if (person_info)
- {
- if (person_info->checked)
- {
- PH_DBG("person_info->display = %s", person_info->display);
- __list_add_group_relation(clist_d->base_grp, person_info->id, list);
- }
- }
- }
-
- unsigned int count = 0;
- contacts_list_get_count(list, &count);
- if (count)
- {
- clist_d->update_add_list = list;
- }
- else
- {
- contacts_list_destroy(clist_d->update_add_list, true);
- clist_d->update_add_list = NULL;
- }
-}
-
-static void __list_add_contacts_to_group(ct_list_data *clist_d)
-{
- PH_TRACE;
- const int LIST_BULK_LENGTH = 50;
- int count = 0;
- int base_count = 0;
- double value = 0.0;
- char percent_total[PH_TEXT_MAX_LEN + 1] = { 0, };
- char percent[PH_TEXT_MAX_LEN + 1] = { 0, };
-
- contacts_list_h list = NULL;
- int err = CONTACTS_ERROR_NONE;
- ph_progress_info *p_info = NULL;
- Eina_List *l = NULL;
- void *v_person_info = NULL;
-
-
- p_retm_if(NULL == clist_d, "parameter(clist_d) is NULL");
- p_info = clist_d->p_info;
- p_retm_if(NULL == p_info, "parameter(p_info) is NULL");
-
- err = contacts_list_create(&list);
- p_retm_if(CONTACTS_ERROR_NONE != err, "contacts_list_create() Failed(%d)",
- err);
-
- EINA_LIST_FOREACH(clist_d->list, l, v_person_info)
- {
- ct_person_list *person_info = (ct_person_list *) v_person_info;
- if (NULL == person_info)
- continue;
-
- if (person_info->checked)
- {
- if (base_count < p_info->cnt)
- {
- base_count++;
- continue;
- }
-
- __list_add_group_relation(clist_d->base_grp, person_info->id, list);
-
- count++;
- if (LIST_BULK_LENGTH == count
- || (count + p_info->cnt) == p_info->cnt_checked_total)
- {
- p_info->cnt += count;
- break;
- }
- }
- }
-
- value = (double) p_info->cnt / (double) p_info->cnt_checked_total;
- elm_progressbar_value_set(p_info->progressbar, value);
- snprintf(percent, sizeof(percent), "%d%%",
- (int) (100.0 * (double) p_info->cnt
- / (double) p_info->cnt_checked_total));
- snprintf(percent_total, sizeof(percent_total), "%d/%d", p_info->cnt,
- p_info->cnt_checked_total);
- edje_object_part_text_set(elm_layout_edje_get(p_info->layout),
- "elm.text.subtext1", percent);
- edje_object_part_text_set(elm_layout_edje_get(p_info->layout),
- "elm.text.subtext2", percent_total);
-
- p_info->update_list = list;
- contacts_db_update_records_async(list, __list_add_contacts_to_group_cb,
- clist_d);
-}
-
-void ct_list_add_contacts_to_group(Evas_Object *win, Evas_Object *navi, int cnt)
-{
- PH_TRACE;
- ct_list_data *clist_d;
- ph_progress_info *p_info;
-
- clist_d = (ct_list_data *) evas_object_data_get(navi, "gadd_list_d");
- p_retm_if(NULL == clist_d, "evas_object_data_get return NULL");
-
- p_retm_if(clist_d->p_info, "thread is running");
-
- p_info = (ph_progress_info *) calloc(1, sizeof(ph_progress_info));
- p_retm_if(NULL == p_info, "calloc return NULL");
-
- clist_d->p_info = p_info;
- p_info->cnt_checked_total = cnt;
- p_info->alive = true;
- p_info->result = TRUE;
- p_info->popup = phone_progressbar_popup(win, p_info,
- T_(CT_GET_TEXT_BASIC, CTTEXT_ADDING_MEMBERS_TO_GROUP));
- __list_add_contacts_to_group(clist_d);
-}
-
-
-void ct_list_add_contacts(Evas_Object *win, Evas_Object *navi, int cnt)
-{
- PH_TRACE;
- p_retm_if(NULL == navi, "navi return NULL");
- ct_list_data *clist_d = (ct_list_data *) evas_object_data_get(navi, "gadd_list_d");
- p_retm_if(NULL == clist_d, "evas_object_data_get return NULL");
-
- if (clist_d->list_grp_person)
- {
- Eina_List *l = NULL;
- void *v_person_info = NULL;
- EINA_LIST_FOREACH(clist_d->list, l, v_person_info)
- {
- ct_person_list *person_info = (ct_person_list *) v_person_info;
- if (person_info)
- {
- if (person_info->checked)
- {
- PH_DBG("person_info->display = %s", person_info->display);
- *clist_d->list_grp_person = eina_list_append(
- *clist_d->list_grp_person, person_info);
- person_info->is_in_group = true;
- }
- }
- }
- }
-
- elm_naviframe_item_pop_to((Elm_Object_Item *)
- evas_object_data_get(navi, NAVI_ITEM_POP));
-}
diff --git a/lib/list/ct-list-utils.h b/lib/list/ct-list-utils.h
deleted file mode 100755
index 9dd6aa7..0000000
--- a/lib/list/ct-list-utils.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __CONTACTS_LIST_UTILS_H__
-#define __CONTACTS_LIST_UTILS_H__
-
-/**
- * Helper-like functionality used in the following managing contacts routines:
- * * add specified contact to group/favorites
- * * create/destroy user-gadgets for calls and messages
- */
-
-int ct_list_parse_bundle(service_h service, ct_list_data* clist_d);
-void ct_list_call(void *data, Evas_Object *obj, void *event_info);
-void ct_list_msg(void *data, Evas_Object *obj, void *event_info);
-void ct_list_popup_hide_cb(void *data, Evas_Object *obj, void *event_info);
-void ct_list_sweep_del_cb(void *data, Evas_Object *obj, void *event_info);
-void ct_list_get_title(ct_list_data *data, int list_op, int id_ab, int id_grp);
-void ct_list_add_contacts_to_group(Evas_Object *win, Evas_Object *navi,
- int cnt);
-
-/**
- * Adds group contacts to database.
- * @param clist_d Contact list data.
- */
-void ct_list_add_contacts_to_group_without_progressbar(ct_list_data *clist_d);
-
-/**
- * The callback function to get the result of contacts_db_update_records_async operation.
- * @param error Error code for batch operation.
- * @param user_data The user data passed from the batch operation.
- */
-void ct_list_add_contacts_to_group_without_progressbar_cb(int err, void *data);
-/**
- * Add checked contacts to group.
- * @param win a window object.
- * @param navi a naviframe object.
- * @param cnt the number of checked contacts.
- */
-void ct_list_add_contacts(Evas_Object *win, Evas_Object *navi, int cnt);
-
-void ct_list_add_contacts_to_favorite(Evas_Object *win, Evas_Object *navi,
- int cnt);
-void ct_list_destroy_child_ug(void *data);
-
-#endif //__CONTACTS_LIST_UTILS_H__
diff --git a/lib/list/ct-list-view-ug.cpp b/lib/list/ct-list-view-ug.cpp
deleted file mode 100755
index 0b1164d..0000000
--- a/lib/list/ct-list-view-ug.cpp
+++ /dev/null
@@ -1,888 +0,0 @@
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <ui-gadget-module.h>
-
-#include "phone.h"
-#include "ct-list.h"
-#include "ct-detail.h"
-#include "ct-list-utils.h"
-#include "ct-list-edit-view.h"
-#include "ct-list-contact-view.h"
-#include "phone-common.h"
-#define MAX_SIZE_POPUP 300
-
-static void list_ug_nums_popup_sel(void *data, Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) evas_object_data_get(obj, "clist_d");
- int person_id = (int) evas_object_data_get(obj, "person_id");
-
- if (CT_UG_REQUEST_CHECK_FOR_NUMBER == clist_d->ug_request
- || CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL == clist_d->ug_request)
- {
- Elm_Object_Item *item;
- ct_person_list *person_info;
-
- item = (Elm_Object_Item *) evas_object_data_get(obj, "item");
- p_retm_if(NULL == item, "evas_object_data_get() return NULL");
-
- person_info = (ct_person_list *) elm_object_item_data_get(item);
- p_retm_if(NULL == person_info,
- "elm_object_item_data_get() return NULL");
-
- person_info->id_ret = (int) data;
- person_info->id_ret_type = 1;
- person_info->checked = !person_info->checked;
- ct_list_item_checked_set(item, clist_d);
- ctui_list_update_selection_info(clist_d);
- ct_list_popup_hide_cb(obj, NULL, NULL);
- }
- else if (PH_UG_REQUEST_LAUNCH_VOICECALL == clist_d->ug_request)
- {
- char *num_info = (char*) elm_object_item_text_get((Elm_Object_Item *) event_info);
- char *number;
- strtok(num_info, " ");
- number = strtok(NULL, " ");
- PH_DBG("%s", number);
- ct_list_popup_hide_cb(obj, NULL, NULL);
- phone_launch_voice_call(person_id, number);
- }
- else
- {
- if (clist_d->service_operation)
- phone_ug_return_value(clist_d->service_operation, 0, (int) data, 0,
- 0);
- else
- phone_ug_return_id(clist_d->ug, person_id, (int) data, 0);
- ug_destroy_me(clist_d->ug);
- }
-
-}
-
-static void list_ug_emails_popup_sel(void *data, Evas_Object *obj,
- void *event_info)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) evas_object_data_get(obj, "clist_d");
- int contact_id = (int) evas_object_data_get(obj, "person_id");
-
- if (CT_UG_REQUEST_CHECK_FOR_EMAIL == clist_d->ug_request
- || CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL == clist_d->ug_request)
- {
- Elm_Object_Item * item;
- ct_person_list *person_info;
-
- item = (Elm_Object_Item *) evas_object_data_get(obj, "item");
- p_retm_if(NULL == item, "evas_object_data_get() return NULL");
-
- person_info = (ct_person_list *) elm_object_item_data_get(item);
- p_retm_if(NULL == person_info,
- "elm_object_item_data_get() return NULL");
-
- person_info->id_ret = (int) data;
- person_info->id_ret_type = 2;
- person_info->checked = !person_info->checked;
- ct_list_item_checked_set(item, clist_d);
- ctui_list_update_selection_info(clist_d);
- ct_list_popup_hide_cb(obj, NULL, NULL);
- }
- else
- {
- if (clist_d->service_operation)
- phone_ug_return_value(clist_d->service_operation, 0, 0, (int) data,
- 0);
- else
- phone_ug_return_id(clist_d->ug, contact_id, 0, (int) data);
-
- ug_destroy_me(clist_d->ug);
- }
-}
-
-API Evas_Object* ctui_list_create_values_list(const char *view_uri,
- Evas_Object *popup, Evas_Object *list, Eina_List *values,
- void (*cb)(void *, Evas_Object *, void *))
-{
- PH_TRACE;
- int id;
- int val_type;
- char *email_str_p;
- const char *type_str;
- char buf[PH_TEXT_MAX_LEN];
- Eina_List *l;
- int err = CONTACTS_ERROR_NONE;
- void *v_record = NULL;
-
- if (NULL == list)
- {
- list = elm_list_add(popup);
- evas_object_size_hint_max_set(list, -1, MAX_SIZE_POPUP * elm_config_scale_get()); // TODO : should be revise
- }
-
- EINA_LIST_FOREACH(values, l, v_record)
- {
- contacts_record_h record = (contacts_record_h) v_record;
- if (NULL == record)
- continue;
-
- if (0 == strcmp(view_uri, _contacts_email._uri))
- {
- err = contacts_record_get_int(record, _contacts_email.id, &id);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
-
- err = contacts_record_get_int(record, _contacts_email.type,
- &val_type);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
-
- type_str =
- T_(CT_GET_TEXT_EMAIL_TYPE, ctui_get_email_type_index(val_type));
-
- err = contacts_record_get_str_p(record, _contacts_email.email,
- &email_str_p);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_str_p() Failed(%d)", err);
-
- snprintf(buf, sizeof(buf), "%s %s", type_str, email_str_p);
- }
- else
- {
- char num_type_str[PH_TEXT_MAX_LEN + 1];
-
- err = contacts_record_get_int(record, _contacts_number.id, &id);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
-
- err = contacts_record_get_int(record, _contacts_number.type,
- &val_type);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
-
- ctui_get_number_type_str(record, val_type, num_type_str,
- sizeof(num_type_str));
-
- err = contacts_record_get_str_p(record, _contacts_number.number,
- &email_str_p);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_str_p() Failed(%d)", err);
-
- snprintf(buf, sizeof(buf), "%s %s", num_type_str, email_str_p);
- }
- elm_list_item_append(list, buf, NULL, NULL, cb, (void *) id);
- }
-
- elm_list_mode_set(list, ELM_LIST_EXPAND);
- return list;
-}
-
-static Evas_Object* list_ug_create_popup_values_list(ct_list_data *clist_d,
- ct_person_list *person_info)
-{
- PH_TRACE;
- Evas_Object *popup;
- Evas_Object *list = NULL;
- Evas_Object *btn;
-
- popup = elm_popup_add(clist_d->navi);
- elm_object_style_set(popup, "min_liststyle");
- evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
- if (person_info->number_list)
- list = ctui_list_create_values_list(_contacts_number._uri, popup, list,
- person_info->number_list, list_ug_nums_popup_sel);
- if (person_info->email_list)
- list = ctui_list_create_values_list(_contacts_email._uri, popup, list,
- person_info->email_list, list_ug_emails_popup_sel);
-
- elm_object_content_set(popup, list);
- evas_object_data_set(list, "clist_d", clist_d);
- evas_object_data_set(list, "person_id", (void *) person_info->id);
-
- btn = elm_button_add(popup);
- elm_object_text_set(btn, S_(PH_SYS_POP_CLOSE));
- elm_object_part_content_set(popup, "button1", btn);
- elm_object_style_set(btn, "popup_button/default");
- evas_object_smart_callback_add(btn, "clicked", ct_list_popup_hide_cb, list);
-
- clist_d->popup = popup;
- evas_object_show(popup);
- return list;
-}
-
-static inline void list_ug_handle_select_number(ct_list_data *clist_d,
- ct_person_list *person_info)
-{
- PH_TRACE;
- char *number_str_p = NULL;
- int number_id;
- Eina_List *list_contact;
- int err = CONTACTS_ERROR_NONE;
- contacts_record_h record = NULL;
-
- list_contact = ctui_person_get_contact_list(person_info->id);
- p_retm_if(NULL == list_contact,
- "ctui_person_get_contact_list() return NULL");
-
- if (person_info->number_list == NULL)
- person_info->number_list = ctui_person_get_number_list(list_contact);
-
- if (person_info->number_list)
- {
- if (1 == eina_list_count(person_info->number_list))
- {
- record = (contacts_record_h) person_info->number_list->data;
- if (PH_UG_REQUEST_LAUNCH_VOICECALL == clist_d->ug_request)
- {
- err = contacts_record_get_str_p(record, _contacts_number.number,
- &number_str_p);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_str_p() Failed(%d)", err);
- phone_launch_voice_call(person_info->id, number_str_p);
- }
- else
- {
- err = contacts_record_get_int(record, _contacts_number.id,
- &number_id);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
- if (clist_d->service_operation)
- phone_ug_return_value(clist_d->service_operation, 0,
- number_id, 0, 0);
- else
- phone_ug_return_id(clist_d->ug, person_info->id, number_id,
- 0);
- ug_destroy_me(clist_d->ug);
- }
- }
- else
- list_ug_create_popup_values_list(clist_d, person_info);
- }
- else
- {
- phone_show_popup(clist_d->navi, T_(CT_GET_TEXT_ERR, CTTEXT_NO_NUMBER),
- 1.5);
- }
- ctui_free_record_list(list_contact);
-}
-
-static inline void list_ug_handle_select_email(ct_list_data *clist_d,
- ct_person_list *person_info)
-{
- PH_TRACE;
- int email_id;
- Eina_List *list_contact;
- int err = CONTACTS_ERROR_NONE;
- contacts_record_h record = NULL;
-
- list_contact = ctui_person_get_contact_list(person_info->id);
- p_retm_if(NULL == list_contact,
- "ctui_person_get_contact_list() return NULL");
-
- if (person_info->email_list == NULL)
- person_info->email_list = ctui_person_get_email_list(list_contact);
- if (person_info->email_list)
- {
- if (1 == eina_list_count(person_info->email_list))
- {
- record = (contacts_record_h) person_info->email_list->data;
- err = contacts_record_get_int(record, _contacts_email.id,
- &email_id);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
- if (clist_d->service_operation)
- phone_ug_return_value(clist_d->service_operation, 0, 0,
- email_id, 0);
- else
- phone_ug_return_id(clist_d->ug, person_info->id, 0, email_id);
- ug_destroy_me(clist_d->ug);
- }
- else
- list_ug_create_popup_values_list(clist_d, person_info);
- }
- else
- {
- phone_show_popup(clist_d->navi, T_(CT_GET_TEXT_ERR, CTTEXT_NO_EMAIL),
- 1.5);
- }
- ctui_free_record_list(list_contact);
-}
-
-static inline void list_ug_handle_select_number_or_email(ct_list_data *clist_d,
- ct_person_list *person_info)
-{
- PH_TRACE;
- int number_id;
- int email_id;
- int number_list_count = 0;
- int email_list_count = 0;
- Eina_List *list_contact;
- int err = CONTACTS_ERROR_NONE;
- contacts_record_h record = NULL;
-
- list_contact = ctui_person_get_contact_list(person_info->id);
- p_retm_if(NULL == list_contact,
- "ctui_person_get_contact_list() return NULL");
-
- if (NULL == person_info->number_list)
- person_info->number_list = ctui_person_get_number_list(list_contact);
- if (NULL == person_info->email_list)
- person_info->email_list = ctui_person_get_email_list(list_contact);
-
- if (person_info->number_list)
- number_list_count = eina_list_count(person_info->number_list);
- if (person_info->email_list)
- email_list_count = eina_list_count(person_info->email_list);
-
- if (number_list_count == 0 && email_list_count == 0)
- {
- phone_show_popup(clist_d->navi, T_(CT_GET_TEXT_ERR, CTTEXT_NO_EMAIL),
- 1.5);
- }
- else if (number_list_count == 1 && email_list_count == 0)
- {
- record = (contacts_record_h) person_info->number_list->data;
- err = contacts_record_get_int(record, _contacts_number.id, &number_id);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
- if (clist_d->service_operation)
- phone_ug_return_value(clist_d->service_operation, 0, number_id, 0,
- 0);
- else
- phone_ug_return_id(clist_d->ug, person_info->id, number_id, 0);
- ug_destroy_me(clist_d->ug);
- }
- else if (number_list_count == 0 && email_list_count == 1)
- {
- record = (contacts_record_h) person_info->email_list->data;
- err = contacts_record_get_int(record, _contacts_email.id, &email_id);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
- if (clist_d->service_operation)
- phone_ug_return_value(clist_d->service_operation, 0, 0, email_id,
- 0);
- else
- phone_ug_return_id(clist_d->ug, person_info->id, 0, email_id);
- ug_destroy_me(clist_d->ug);
- }
- else
- {
- list_ug_create_popup_values_list(clist_d, person_info);
- }
- ctui_free_record_list(list_contact);
-}
-
-static inline void ct_list_ug_handle_select_vcard(ct_list_data *clist_d,
- int person_id)
-{
- PH_TRACE;
- bool result = false;
- char vcard_path[PH_TEXT_MAX_LEN + 1];
-
- result = ctui_list_make_vcard(person_id, vcard_path, sizeof(vcard_path));
- PH_DBG("%d, %s", person_id, vcard_path);
- if (result == true)
- {
- if (clist_d->service_operation)
- phone_ug_operation_return_vcard(clist_d->service_operation,
- person_id, vcard_path);
- else
- phone_ug_return_vcard(clist_d->ug, person_id, vcard_path);
- ug_destroy_me(clist_d->ug);
- }
- else
- {
- phone_show_popup(clist_d->navi, T_(CT_GET_TEXT_ERR, CTTEXT_NO_CONTACTS),
- 1.5);
- }
-}
-
-static void list_ug_img_crop_result(ui_gadget_h ug, service_h service,
- void *data)
-{
- PH_TRACE;
- Eina_List *list_writable_contact;
- ct_list_data *clist_d = (ct_list_data *) data;
-
- p_retm_if(NULL == ug || NULL == data, "ug or data is NULL");
-
- if (service)
- {
- char *normal = NULL;
- char *full = NULL;
- void *data;
- Eina_List *l;
- contacts_record_h record = NULL;
- contacts_record_h record_image = NULL;
- int err = CONTACTS_ERROR_NONE;
-
- service_get_extra_data(service, "crop_image_path", &normal);
- p_retm_if(NULL == normal, "return value is NULL.");
- service_get_extra_data(service, "image_path", &full);
-
- list_writable_contact = NULL;
- list_writable_contact = ctui_person_get_writable_contact_list(
- clist_d->selected_person_id);
-
- if (list_writable_contact)
- {
- EINA_LIST_FOREACH(list_writable_contact, l, data)
- {
- record = (contacts_record_h) data;
- if (NULL == record)
- continue;
-
- record_image = ctui_get_record_image(record);
- if (NULL == record_image)
- {
- ERR("ctui_get_record_image() Failed(%d)", err);
- break;
- }
-
- err = contacts_record_set_str(record_image,
- _contacts_image.path, normal);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_set_str() Failed(%d)", err);
-
- err = contacts_db_update_record(record);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_db_update_record() Failed(%d)", err);
- }
- ctui_free_record_list(list_writable_contact);
- }
-
- free(normal);
- free(full);
- }
-}
-
-void ct_list_ug_handle_check_for_number(Elm_Object_Item *item,
- ct_list_data *clist_d)
-{
- PH_TRACE;
- ct_person_list *person_info;
- Eina_List *list_contact;
- Evas_Object *list_nums;
- Eina_Bool all_check;
- int err = CONTACTS_ERROR_NONE;
- contacts_record_h record = NULL;
-
- person_info = (ct_person_list *) elm_object_item_data_get(item);
- p_retm_if(NULL == person_info, "elm_object_item_data_get() return NULL");
-
- list_contact = ctui_person_get_contact_list(person_info->id);
- p_retm_if(NULL == list_contact,
- "ctui_person_get_contact_list() return NULL");
-
- if (NULL == person_info->number_list)
- person_info->number_list = ctui_person_get_number_list(list_contact);
-
- if (NULL == person_info->number_list)
- {
- Evas_Object *check;
- ERR("ctui_person_get_number_list() return NULL");
- ctui_free_record_list(list_contact);
-
- phone_show_popup(clist_d->navi, T_(CT_GET_TEXT_ERR, CTTEXT_NO_NUMBER),
- 1.5);
-
- check = elm_object_part_content_get(clist_d->select_all_layout,
- "elm.icon");
- p_retm_if(NULL == check, "elm_object_part_content_get() return NULL");
-
- if (clist_d->cnt_list_total == clist_d->cnt_checked)
- all_check = EINA_TRUE;
- else
- all_check = EINA_FALSE;
-
- elm_check_state_set(check, all_check);
- elm_genlist_item_update(item);
- return;
- }
-
- if (1 == eina_list_count(person_info->number_list))
- {
- record = (contacts_record_h) person_info->number_list->data;
- person_info->id_ret_type = 1;
- err = contacts_record_get_int(record, _contacts_number.id,
- &(person_info->id_ret));
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
- person_info->checked = !person_info->checked;
- ct_list_item_checked_set(item, clist_d);
- ctui_list_update_selection_info(clist_d);
- }
- else
- {
- list_nums = list_ug_create_popup_values_list(clist_d, person_info);
- if (list_nums)
- evas_object_data_set(list_nums, "item", item);
- }
- ctui_free_record_list(list_contact);
-}
-
-void ct_list_ug_handle_check_for_email(Elm_Object_Item *item,
- ct_list_data *clist_d)
-{
- PH_TRACE;
- Eina_List *list_contact;
- Evas_Object *list_emails;
- ct_person_list *person_info;
- Eina_Bool all_check;
- int err = CONTACTS_ERROR_NONE;
- contacts_record_h record = NULL;
-
- person_info = (ct_person_list *) elm_object_item_data_get(item);
- p_retm_if(NULL == person_info, "elm_object_item_data_get() return NULL");
-
- list_contact = ctui_person_get_contact_list(person_info->id);
- p_retm_if(NULL == list_contact,
- "ctui_person_get_contact_list() return NULL");
-
- if (NULL == person_info->email_list)
- person_info->email_list = ctui_person_get_email_list(list_contact);
-
- if (NULL == person_info->email_list)
- {
- Evas_Object *check;
- ERR("ctui_person_get_email_list() return NULL");
- ctui_free_record_list(list_contact);
-
- phone_show_popup(clist_d->navi, T_(CT_GET_TEXT_ERR, CTTEXT_NO_EMAIL),
- 1.5);
-
- check = elm_object_part_content_get(clist_d->select_all_layout,
- "elm.icon");
- p_retm_if(NULL == check, "elm_object_part_content_get() return NULL");
-
- if (clist_d->cnt_list_total == clist_d->cnt_checked)
- all_check = EINA_TRUE;
- else
- all_check = EINA_FALSE;
-
- elm_check_state_set(check, all_check);
- elm_genlist_item_update(item);
- return;
- }
-
- if (1 == eina_list_count(person_info->email_list))
- {
- record = (contacts_record_h) person_info->email_list->data;
- person_info->id_ret_type = 2;
- err = contacts_record_get_int(record, _contacts_email.id,
- &(person_info->id_ret));
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
- person_info->checked = !person_info->checked;
- ct_list_item_checked_set(item, clist_d);
- ctui_list_update_selection_info(clist_d);
- }
- else
- {
- list_emails = list_ug_create_popup_values_list(clist_d, person_info);
- if (list_emails)
- evas_object_data_set(list_emails, "item", item);
- }
- ctui_free_record_list(list_contact);
-}
-
-void ct_list_ug_handle_check_for_number_or_email(Elm_Object_Item *item,
- ct_list_data *clist_d)
-{
- PH_TRACE;
- int number_list_count = 0;
- int email_list_count = 0;
- Eina_List *list_contact;
- Evas_Object *list;
- ct_person_list *person_info;
- Eina_Bool all_check;
- int err = CONTACTS_ERROR_NONE;
- contacts_record_h record = NULL;
-
- person_info = (ct_person_list *) elm_object_item_data_get(item);
- p_retm_if(NULL == person_info, "elm_object_item_data_get() return NULL");
-
- list_contact = ctui_person_get_contact_list(person_info->id);
- p_retm_if(NULL == list_contact,
- "ctui_person_get_contact_list() return NULL");
-
- if (NULL == person_info->email_list)
- person_info->email_list = ctui_person_get_email_list(list_contact);
- if (NULL == person_info->number_list)
- person_info->number_list = ctui_person_get_number_list(list_contact);
-
- if (person_info->number_list)
- number_list_count = eina_list_count(person_info->number_list);
-
- if (person_info->email_list)
- email_list_count = eina_list_count(person_info->email_list);
-
- if (0 == number_list_count && 0 == email_list_count)
- {
- Evas_Object *check;
- ERR("ctui_person_get_email_list() return NULL");
- ctui_free_record_list(list_contact);
-
- phone_show_popup(clist_d->navi, T_(CT_GET_TEXT_ERR, CTTEXT_NO_EMAIL),
- 1.5);
-
- check = elm_object_part_content_get(clist_d->select_all_layout,
- "elm.icon");
- p_retm_if(NULL == check, "elm_object_part_content_get() return NULL");
-
- if (clist_d->cnt_list_total == clist_d->cnt_checked)
- all_check = EINA_TRUE;
- else
- all_check = EINA_FALSE;
-
- elm_check_state_set(check, all_check);
- elm_genlist_item_update(item);
- return;
- }
-
- if (1 == number_list_count && 0 == email_list_count)
- {
- record = (contacts_record_h) person_info->number_list->data;
- err = contacts_record_get_int(record, _contacts_number.id,
- &(person_info->id_ret));
- DBG("person_info->number_list->data = %i",person_info->id_ret);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
- person_info->id_ret_type = 1;
- person_info->checked = !person_info->checked;
- ct_list_item_checked_set(item, clist_d);
- ctui_list_update_selection_info(clist_d);
- }
- else if (0 == number_list_count && 1 == email_list_count)
- {
- record = (contacts_record_h) person_info->email_list->data;
- err = contacts_record_get_int(record, _contacts_email.id,
- &(person_info->id_ret));
- DBG("person_info->number_list->data = %i",person_info->id_ret);
- p_warn_if(CONTACTS_ERROR_NONE != err,
- "contacts_record_get_int() Failed(%d)", err);
- person_info->id_ret_type = 2;
- person_info->checked = !person_info->checked;
- ct_list_item_checked_set(item, clist_d);
- ctui_list_update_selection_info(clist_d);
- }
- else
- {
- list = list_ug_create_popup_values_list(clist_d, person_info);
- if (list)
- evas_object_data_set(list, "item", item);
- }
-
- ctui_free_record_list(list_contact);
-}
-
-static void list_destory_child_ug(ui_gadget_h ug, void *priv)
-{
- PH_TRACE;
- ct_list_data *clist_d = (ct_list_data *) priv;
- p_retm_if(NULL == ug, "ug is NULL");
- ug_destroy(ug);
-
- p_retm_if(NULL == priv, "priv is NULL");
- clist_d->child_ug = NULL;
- if (clist_d->ug)
- ug_destroy_me(clist_d->ug);
-}
-
-void ct_list_ug_gl_sel(void *data, Evas_Object *obj, void *event_info)
-{
- PH_TRACE;
- assert(data);
- assert(event_info);
- if (NULL != data && NULL != event_info)
- {
- ct_list_data *clist_d = static_cast<ct_list_data*>(data);
- Elm_Object_Item *lastItem = clist_d->last_sweep_item;
-
- bool isSweepedItemSelected = false;
-
- if (NULL != lastItem)
- {
- elm_genlist_item_selected_set(lastItem, EINA_FALSE);
- elm_genlist_item_decorate_mode_set(lastItem, "slide", EINA_FALSE);
- elm_genlist_item_select_mode_set(lastItem, ELM_OBJECT_SELECT_MODE_DEFAULT);
- if (clist_d->fast_index)
- {
- evas_object_show(clist_d->fast_index);
- elm_object_disabled_set(clist_d->fast_index, EINA_FALSE);
- }
- }
-
- Elm_Object_Item *item = NULL;
- item = static_cast<Elm_Object_Item*>(event_info);
- if (NULL != item)
- {
- elm_genlist_item_selected_set(item, EINA_FALSE);
- elm_genlist_item_decorate_mode_set(item, "slide", EINA_FALSE);
- if (lastItem == item)
- {
- isSweepedItemSelected = true;
- }
- }
- clist_d->last_sweep_item = NULL;
-
- if (!isSweepedItemSelected)
- {
- int err = CONTACTS_ERROR_NONE;
- int ret;
- const char *err_msg;
- contacts_record_h record = NULL;
- struct ug_cbs cbs = { 0 };
- ct_person_list *person_info;
- ph_view_info *view_info;
- Evas_Object *popup;
-
- PH_DBG("##### [TSP_TEST] list->detail start #####");
-
- if (CT_GET_LIST_VCARD == clist_d->list_op && CT_UG_REQUEST_CHECK != clist_d->ug_request)
- {
- Evas_Object *content;
-
- p_retm_if(NULL == clist_d->vcard_path, "vcard_path is NULL");
-
- person_info = (ct_person_list *) elm_object_item_data_get(item);
- p_retm_if(NULL == person_info, "elm_object_item_data_get() returns NULL");
-
- clist_d->idx_vcard = elm_genlist_item_index_get(item);
-
- content = ctui_contacts_viewer(clist_d->win, clist_d->navi, clist_d->idx_vcard, clist_d->vcard_path);
- if (NULL == content)
- {
- ERR("ctui_contacts_viewer() return NULL");
- elm_exit();
- }
- return;
- }
-
- if (CT_LIST_MODE_EDIT == clist_d->list_mode)
- {
- person_info = (ct_person_list *) elm_object_item_data_get(item);
- p_retm_if(NULL == person_info, "elm_object_item_data_get() returns NULL");
-
- if (person_info->checked)
- {
- person_info->checked = !person_info->checked;
- ct_list_item_checked_set(item, clist_d);
- ctui_list_update_selection_info(clist_d);
- return;
- }
-
- if (CT_UG_REQUEST_CHECK_FOR_NUMBER == clist_d->ug_request)
- ct_list_ug_handle_check_for_number(item, clist_d);
- else if (CT_UG_REQUEST_CHECK_FOR_EMAIL == clist_d->ug_request)
- ct_list_ug_handle_check_for_email(item, clist_d);
- else if (CT_UG_REQUEST_CHECK_FOR_NUMBER_OR_EMAIL == clist_d->ug_request)
- ct_list_ug_handle_check_for_number_or_email(item, clist_d);
- else
- {
- person_info->checked = !person_info->checked;
- ct_list_item_checked_set(item, clist_d);
- ctui_list_update_selection_info(clist_d);
- }
-
- return;
- }
-
- person_info = (ct_person_list *) elm_object_item_data_get(item);
- p_retm_if(NULL == person_info, "elm_object_item_data_get() returns NULL");
-
- PH_DBG("clist_d->ug_request = %d", clist_d->ug_request);
- switch (clist_d->ug_request)
- {
- case CT_UG_REQUEST_LIST:
- case CT_UG_REQUEST_LIST_WITH_BACK:
- ret = ctui_create_detail_view(clist_d, person_info);
- p_warn_if(ret < 0, "ctui_create_detail_view() Failed");
- break;
- case CT_UG_REQUEST_SELECT_PERSON:
- if (clist_d->ug)
- {
- if (clist_d->service_operation)
- phone_ug_return_value(clist_d->service_operation, person_info->id, 0, 0, 0);
- else
- phone_ug_return_id(clist_d->ug, person_info->id, 0, 0);
- ug_destroy_me(clist_d->ug);
- }
- break;
- case CT_UG_REQUEST_SELECT_NUMBER:
- case PH_UG_REQUEST_LAUNCH_VOICECALL:
- case CT_UG_REQUEST_SELECT_CONTACT_ADD_TO_HOME:
- list_ug_handle_select_number(clist_d, person_info);
- break;
- case CT_UG_REQUEST_SELECT_EMAIL:
- list_ug_handle_select_email(clist_d, person_info);
- break;
- case CT_UG_REQUEST_SELECT_NUMBER_OR_EMAIL:
- list_ug_handle_select_number_or_email(clist_d, person_info);
- break;
- case CT_UG_REQUEST_SELECT_VCARD:
- ct_list_ug_handle_select_vcard(clist_d, person_info->id);
- break;
- case CT_UG_REQUEST_SHARE_CONTACT_INFO:
- ctui_create_share_info_ug_layout(clist_d->navi, person_info->id, clist_d->ug);
- break;
- case CT_UG_REQUEST_UPDATE_CONTACT:
- case CT_UG_REQUEST_UPDATE_WITH_NUM:
- case CT_UG_REQUEST_UPDATE_WITH_EMAIL:
- case CT_UG_REQUEST_UPDATE_WITH_WEB:
- view_info = (ph_view_info *) calloc(1, sizeof(ph_view_info));
- phone_set_view_info(view_info, clist_d->win, clist_d->navi, clist_d->ug, clist_d->ug_request, clist_d->cnt_max_check, clist_d->ug_data);
- ctui_list_update_with_data(view_info, clist_d, person_info->id, clist_d->base_grp, clist_d->base_ab);
- free(view_info);
- break;
- case PH_UG_REQUEST_SET_WITH_IMG:
- case CT_UG_REQUEST_SAVE_IMG:
- clist_d->selected_person_id = person_info->id;
-
- cbs.result_cb = list_ug_img_crop_result;
- cbs.destroy_cb = list_destory_child_ug;
- cbs.priv = clist_d;
- clist_d->child_ug = phone_image_crop_ug(clist_d->ug, clist_d->ug_data, &cbs);
- break;
- case PH_UG_REQUEST_SET_WITH_RINGTONE:
- case CT_UG_REQUEST_SAVE_RINGTONE:
- err = contacts_db_get_record(_contacts_person._uri, person_info->id, &record);
- p_retm_if(CONTACTS_ERROR_NONE != err, "contacts_db_get_record() Failed(%d)", err);
-
- err = contacts_record_set_str(record, _contacts_person.ringtone_path, clist_d->ug_data);
- p_warn_if(CONTACTS_ERROR_NONE != err, "contacts_record_set_str() Failed(%d)", err);
-
- err = contacts_db_update_record(record);
- if (CONTACTS_ERROR_NONE != err)
- {
- ERR("contacts_db_update_record() Failed(%d)", err);
- ctui_create_contacts_error_popup(clist_d->navi, err);
- }
- else
- {
- err_msg = S_(CT_SYS_POP_SUCCESS);
- popup = phone_show_popup(clist_d->navi, err_msg, 1.5);
- evas_object_smart_callback_add(popup, "timeout", ctui_list_ug_hide_cb, clist_d->ug);
- }
- break;
- default:
- ERR("Invalid ug_request(%d)", clist_d->ug_request);
- break;
- }
- }
- }
-}
diff --git a/lib/list/ct-list-view-ug.h b/lib/list/ct-list-view-ug.h
deleted file mode 100755
index 551c7dc..0000000
--- a/lib/list/ct-list-view-ug.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * A module responsible for filtering contacts-list (e.g list only contacts with email), and handling "onContactSelected" events.
- */
-#ifndef __CONTACTS_LIST_VIEW_UG_H__
-#define __CONTACTS_LIST_VIEW_UG_H__
-
-void ct_list_ug_gl_sel(void *data, Evas_Object *obj, void *event_info);
-void ct_list_ug_handle_check_for_email(Elm_Object_Item *item,
- ct_list_data *clist_d);
-void ct_list_ug_handle_check_for_number(Elm_Object_Item *item,
- ct_list_data *clist_d);
-void ct_list_ug_handle_check_for_number_or_email(Elm_Object_Item *item,
- ct_list_data *clist_d);
-
-#endif //__CONTACTS_LIST_VIEW_UG_H__
diff --git a/lib/list/include/ct-list.h b/lib/list/include/ct-list.h
deleted file mode 100755
index 66c80ff..0000000
--- a/lib/list/include/ct-list.h
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * ct-list is an UI-control responsible for drawing and handling list-specific event of
- * contacts-application (some kind of "sub-application" used by "host" contacts-app).
- */
-
-#ifndef __CONTACTS_LIST_H__
-#define __CONTACTS_LIST_H__
-
-#include "phone-common.h"
-
-#define CT_LIST_MAX_SEARCH_STR 1024
-#define CT_LIST_ICON_SIZE 70
-#define CT_LIST_ACCOUNT_CNT_MAX 3
-
-enum
-{ // this order affects to set list_op in ctui_list_create_contact_view_with_info
- CT_GET_LIST_ALL_PERSON = 0,
- CT_GET_LIST_PERSON_OF_ADDRBOOK_ID = 1,
- CT_GET_LIST_PERSON_HAD_NUMBER_OF_ADDRBOOK_ID = 2,
- CT_GET_LIST_PERSON_HAD_EMAIL_OF_ADDRBOOK_ID = 3,
- CT_GET_LIST_PERSON_HAD_NUMBER_OR_EMAIL_OF_ADDRBOOK_ID = 4,
- CT_GET_LIST_PERSON_OF_WRITABLE_ADDRBOOK_ID = 5,
-
- CT_GET_LIST_PERSON_OF_GROUP_ID = 10,
- CT_GET_LIST_PERSON_HAD_NUMBER_OF_GROUP_ID = 11,
- CT_GET_LIST_PERSON_HAD_EMAIL_OF_GROUP_ID = 12,
- CT_GET_LIST_PERSON_HAD_NUMBER_OR_EMAIL_OF_GROUP_ID = 13,
-
- CT_GET_LIST_PERSON_NOT_ASSIGNED_OF_ADDRBOOK_ID = 14,
- CT_GET_LIST_PERSON_NOT_ASSIGNED_HAD_NUMBER_OF_ADDRBOOK_ID = 15,
- CT_GET_LIST_PERSON_NOT_ASSIGNED_HAD_EMAIL_OF_ADDRBOOK_ID = 16,
- CT_GET_LIST_PERSON_NOT_ASSIGNED_HAD_NUMBER_OR_EMAIL_OF_ADDRBOOK_ID = 17,
-
- CT_GET_LIST_ALL_PERSON_HAD_NUMBER = 20,
- CT_GET_LIST_ALL_PERSON_HAD_EMAIL = 21,
- CT_GET_LIST_ALL_PERSON_HAD_NUMBER_OR_EMAIL = 22,
- CT_GET_LIST_VCARD = 23,
-};
-
-enum
-{
- CT_LIST_ITEM_NO_NUMBER,
- CT_LIST_ITEM,
- CT_LIST_ITEM_SEARCH_NO_NUMBER,
- CT_LIST_ITEM_SEARCH,
- CT_LIST_ITEM_COUNT,
-};
-
-enum
-{
- CT_LIST_SINGLE_VIEW,
- CT_LIST_IN_MULTI_TAB,
-};
-
-enum
-{
- CT_LIST_MODE_DEFAULT,
- CT_LIST_MODE_EDIT,
-};
-
-typedef struct
-{
- int id_ab;
- int id_grp;
- int count;
- int mode;
- bool is_read_only;
- char *name;
- char *img;
- char *img_list[6];
- Eina_Bool selected;
- Elm_Object_Item *item;
-} ct_group_list;
-
-/**
- * Creates and initialises select-list of contacts according to specified filter.
- * @param navi a navi-frame object.
- * @param result_cb is a callback that fills the ui-list.
- * @param result_cb_data a data with data-list inside passed into result_cb.
- * @param list_op is a code of filtering to be applied to list inside result_cb_data (e.g. "fill list only with the contacts with email specified").
- * @param id_ab passed to ct_list_data::base_ab.
- * @param id_grp is group-id, passed to ct_list_data::base_grp.
- * @param cnt_max passed to ct_list_data::cnt_max_check.
- * @return navi-frame of newly created instance of ct_list_data (TODO: do we really need to return the input parameter?).
- * @see ct_list_data.
- */
-Evas_Object* ctui_create_list_select_view(
- Evas_Object *navi,
- ct_select_result_cb result_cb,
- void *result_cb_data,
- int list_op,
- int id_ab,
- int id_grp,
- int cnt_max);
-
-/**
- * Creates and initialises instance of ct_list_data. Also pushes new item to navi-frame object and attaches there data of newly created contact.
- * @param win a window with list-control on it.
- * @param navi is a naviframe-object.
- * @param group_id is an id of group new contacts will be assigned to.
- * @param ab_id passed to ct_list_data::base_ab
- * @param list is a group members list
- * @param save_contacts if true: the contacts list will be saved to the group database
- * @return navi-item of newly created instance of ct_list_data.
- * @see ct_list_data
- */
-Elm_Object_Item *ctui_create_gadd_list_select_view(
- Evas_Object *win,
- Evas_Object *navi,
- int group_id,
- int ab_id,
- Eina_List **list,
- bool save_contacts);
-
-/**
- * Updates group list in database.
- * @param navi a navi-frame object.
- * @param group_id an id of group which will be updated.
- * @param add_list a list of contacts which will be added.
- * @param remove_list a list of contacts which will be deleted.
- */
-void ctui_list_update_group_list_without_progressbar(Evas_Object *navi,
- int group_id,
- Eina_List *add_list,
- Eina_List *remove_list);
-
-/**
- * Creates select-list of favourites contacts.
- * @param win a window with list-control on it.
- * @param navi is a navi-frame object that will contain list-elements.
- * @param list is a contacts-container.
- */
-void ctui_create_favorite_list_select_view(
- Evas_Object *win,
- Evas_Object *navi,
- Eina_List *list);
-
-/**
- * Creates vcard-based contact select-list view to importing contacts from vcf file.
- * @param navi is a navi-frame object that will contain list-elements.
- * @param list is a contacts-container.
- * @param path is a path to vcf-file.
- * @param result_cb a callback that fills the ui-list.
- * @param result_cb_data a data with data-list inside passed into result_cb.
- * @return navi-frame object of newly created instance of ct_list_data.
- */
-Evas_Object* ctui_create_vcard_list_select_view(
- Evas_Object *navi,
- Eina_List *list,
- const char *path,
- ct_select_result_cb result_cb,
- void *result_cb_data);
-
-
-/**
- * @param win a window with list-control on it.
- * @param list is a contacts-container.
- * @param path is a path to vcf-file.
- * @return created layout-object or NULL in case of error.
- */
-Evas_Object* ctui_create_vcard_list_view(
- Evas_Object *win,
- Eina_List *list,
- const char *path);
-
-/**
- * Creates phone list-view based on specified ph_view_info structure.
- * @param view_info view-info structure.
- * @return list-view's layout.
- */
-Evas_Object* ctui_create_phone_list_view(const ph_view_info *view_info);
-
-/**
- * Creates contact list for single contact select.
- * @param win a window with list-control on it.
- * @param navi is a navi-frame object that will contain list-elements.
- * @param sel_cb function to be called when contact was selected
- * @param cb_data data to pass to sel_cb
- * @param id_caller person id to exclude from contact list
- */
-void ctui_create_list_single_select_view(Evas_Object *win,
- Evas_Object *navi, Evas_Smart_Cb sel_cb, void *cb_data, int id_caller);
-
-/**
- * Re-fills the existing contact-list. Function destroys current update-timer if it was specified before.
- * @param data is an instance of ct_list_data(contact-list data structure).
- * @return ECORE_CALLBACK_CANCEL (always, for some reason).
- */
-Eina_Bool ctui_list_genlist_update(void *data);
-
-/**
- * A callback that handle onClick event of toolbar-button. Is used within create\update contact routines.
-* @param data is an instance of ct_list_data(contact-list data structure).
-* @param obj not used
-* @param event_info not used
- */
-void ctui_list_new_btn_clicked_cb(void *data,
- Evas_Object *obj,
- void *event_info);
-
-/**
- * Draws contact-list view according to one of specified modes.
- * @param mode specifies how the contact-list will be looking(CT_LIST_MODE_EDIT - edit view or CT_LIST_MODE_DEFAULT for default view)
- * @param clist_d is the contact-list data structure.
- */
-void ctui_list_navi_set(
- int mode,
- ct_list_data *clist_d);
-/**
- * Clears contact-list view.
-* @param clist_d is the contact-list data structure.
- */
-void ctui_list_view_reset(ct_list_data *clist_d);
-
-/**
- * Is used when user switches back contacts-application.
- * @param navi is a navi-frame object that will contain list-elements.
- */
-void ctui_list_view_resume(Evas_Object *navi);
-
-/**
- * Is used when user switches to other application leaving contacts-application inactive.
- * @param navi is a navi-frame object that will contain list-elements.
- */
-void ctui_list_view_pause(Evas_Object *navi);
-
-/**
- * Is used in handling language-changing event.
- * @param navi is a navi-frame object that will contain list-elements.
- */
-void ctui_list_view_language_changed(Evas_Object *navi);
-
-Evas_Object* ctui_list_create_contact_view_with_info(
- ph_view_info *view_info,
- int list_op,
- ct_group_list *info);
-
-/**
- * Fills search-bar of specified contact-list with specified text. Function does nothing if search-bar is hidden.
- * @param clist_d is a contact-list data-structure(contains pointer to search-bar object).
- * @param text a text to put into search-bar.
- */
-void ctui_list_set_search_text(
- ct_list_data *clist_d,
- const char *text);
-
-void ctui_list_edit_mode_start(ct_list_data *clist_d);
-
-void ctui_list_set_selectall(ct_list_data *clist_d);
-
-void ctui_list_update_with_data(
- ph_view_info *view_info,
- void *data,
- int id,
- int grp_id,
- int ab_id);
-
-Evas_Object* ctui_list_create_values_list(
- const char *view_uri,
- Evas_Object *popup,
- Evas_Object *list,
- Eina_List *values,
- void (*cb)(void *, Evas_Object *, void *));
-
-#define CT_MAX_ADDRBOOK 200
-
-void ct_list_init_account_data(ct_list_data *clist_d);
-
-void ct_list_get_addrbook_icon_path(
- ct_list_data *clist_d,
- int id_ab,
- char *dest,
- int dest_len);
-
-int ct_list_get_contacts(
- ct_list_data *clist_d,
- Eina_List **list);
-
-char* ct_list_gl_label_get(
- void *data,
- Evas_Object *obj,
- const char *part);
-
-char* ct_list_count_gl_label_get(
- void *data,
- Evas_Object *obj,
- const char *part);
-
-Evas_Object* ct_list_create_contact_layout(ct_list_data *clist_d);
-
-void ctui_create_group_input_view(
- Evas_Object *win,
- Evas_Object *navi,
- ct_group_list *info,
- ct_group_input_result_cb result_cb,
- void *cb_data);
-
-void ctui_list_set_background(
- Evas_Object *obj,
- bool is_background);
-
-void list_create_itcs(ct_list_data *clist_d);
-
-#endif //__CONTACTS_LIST_H__