2 * Copyright 2012 Samsung Electronics Co., Ltd
\r
4 * Licensed under the Flora License, Version 1.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.tizenopensource.org/license
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
20 #include "vcui-application.h"
\r
21 #include "contacts-ug.h"
\r
23 #define MSG_COMPOSER_UG "msg-composer-efl"
\r
24 #define MSG_PKG "org.tizen.message"
\r
25 #define ADD_TO_CONTACTS_UG "contacts-details-efl"
\r
26 #define VIEW_CONTACT_UG "contacts-details-efl"
\r
28 struct vcui_ug_priv_data *local_priv_data = NULL;
\r
30 #define COMMON_FUNCTIONS
\r
31 #ifdef COMMON_FUNCTIONS
\r
33 static void __vcui_doc_launch_ug_common_back_btn_cb(void *data, Evas_Object *obj, void *event_info)
\r
35 Evas_Object *navi = data;
\r
36 elm_naviframe_item_pop(navi);
\r
40 #ifdef _LOCAL_UG_EFFECT_
\r
41 static void __vcui_doc_launch_ug_common_hide_effect_finished(void *data, Evas_Object *obj, const char *emission, const char *source)
\r
43 struct vcui_ug_priv_data *temp_priv_data = (struct vcui_ug_priv_data *)data;
\r
46 base = temp_priv_data->need_layout;
\r
48 if (temp_priv_data->need_ug != NULL) {
\r
49 CALL_UI_DEBUG("__vcui_doc_launch_ug_common_hide_effect_finished start");
\r
52 evas_object_hide(base);
\r
54 elm_object_part_content_unset(base, "elm.swallow.content");
\r
56 if (temp_priv_data->on_destroy_callback != NULL)
\r
57 temp_priv_data->on_destroy_callback(temp_priv_data->destroy_callback_param);
\r
59 ug_destroy((ui_gadget_h)(temp_priv_data->need_ug));
\r
61 free(temp_priv_data);
\r
62 local_priv_data = NULL;
\r
64 evas_object_del(base);
\r
65 CALL_UI_DEBUG("__vcui_doc_launch_ug_common_hide_effect_finished end");
\r
70 static void __vcui_doc_launch_ug_common_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
\r
72 Evas_Object *base, *win;
\r
77 base = ug_get_layout(ug);
\r
81 #ifdef _LOCAL_UG_EFFECT_
\r
82 Evas_Object *ly = elm_layout_add(temp_priv_data->need_parent);
\r
83 win = ug_get_window();
\r
84 elm_win_resize_object_add(win, ly);
\r
85 elm_layout_file_set(ly, EDJ_NAME, "ug_effect");
\r
86 elm_object_part_content_set(ly, "elm.swallow.content", base);
\r
87 evas_object_show(ly);
\r
88 temp_priv_data->need_layout = ly;
\r
90 edje_object_signal_callback_add(elm_layout_edje_get(ly), "elm,action,hide,finished", "", __vcui_doc_launch_ug_common_hide_effect_finished, temp_priv_data);
\r
91 edje_object_signal_emit(elm_layout_edje_get(ly), "elm,state,show", "");
\r
93 win = ug_get_window();
\r
94 evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
\r
95 elm_win_resize_object_add(win, base);
\r
96 evas_object_show(base);
\r
100 static void __vcui_doc_launch_ug_common_destroy_cb(ui_gadget_h ug, void *priv)
\r
103 struct vcui_ug_priv_data *temp_priv_data = NULL;
\r
105 temp_priv_data = (struct vcui_ug_priv_data *)priv;
\r
107 temp_priv_data = local_priv_data;
\r
109 #ifdef _LOCAL_UG_EFFECT_
\r
110 if (temp_priv_data->need_navi != NULL) {
\r
112 base = ug_get_layout(ug);
\r
117 if (temp_priv_data->on_destroy_callback != NULL)
\r
118 temp_priv_data->on_destroy_callback(temp_priv_data->destroy_callback_param);
\r
121 struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)(temp_priv_data->need_ug_lists);
\r
122 if (pugs_array != NULL) {
\r
123 pugs_array->ug_lists = eina_list_remove(pugs_array->ug_lists, temp_priv_data->need_ug);
\r
124 pugs_array->ug_count = pugs_array->ug_count - 1;
\r
125 pugs_array->last_ug_type = VCUI_UG_TYPE_NOE;
\r
127 free(temp_priv_data);
\r
128 local_priv_data = NULL;
\r
130 CALL_UI_DEBUG("__vcui_doc_launch_ug_common_destroy_cb");
\r
132 struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)(temp_priv_data->need_ug_lists);
\r
133 CALL_UI_DEBUG("pugs_array(0x%x)");
\r
134 if (pugs_array != NULL) {
\r
135 pugs_array->ug_lists = eina_list_remove(pugs_array->ug_lists, temp_priv_data->need_ug);
\r
136 pugs_array->ug_count = pugs_array->ug_count - 1;
\r
137 pugs_array->last_ug_type = VCUI_UG_TYPE_NOE;
\r
139 edje_object_signal_emit(elm_layout_edje_get(temp_priv_data->need_layout), "elm,state,hide", "");
\r
140 CALL_UI_DEBUG("Send Hide");
\r
144 base = ug_get_layout(ug);
\r
149 if (temp_priv_data->on_destroy_callback != NULL)
\r
150 temp_priv_data->on_destroy_callback(temp_priv_data->destroy_callback_param);
\r
153 struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)(temp_priv_data->need_ug_lists);
\r
154 if (pugs_array != NULL) {
\r
155 pugs_array->ug_lists = eina_list_remove(pugs_array->ug_lists, temp_priv_data->need_ug);
\r
156 pugs_array->ug_count = pugs_array->ug_count - 1;
\r
157 pugs_array->last_ug_type = VCUI_UG_TYPE_NOE;
\r
159 free(temp_priv_data);
\r
160 local_priv_data = NULL;
\r
162 CALL_UI_DEBUG("__vcui_doc_launch_ug_common_destroy_cb");
\r
167 static void __vcui_doc_launch_ug_contact_list_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
\r
169 __vcui_doc_launch_ug_common_layout_cb(ug, mode, priv);
\r
170 CALL_UI_DEBUG("__vcui_doc_launch_ug_contact_list_layout_cb success");
\r
173 static void __vcui_doc_launch_ug_contact_list_destroy_cb(ui_gadget_h ug, void *priv)
\r
175 vcui_app_call_data_t *ad = _vcui_get_app_data();
\r
176 __vcui_doc_launch_ug_common_destroy_cb(ug, priv);
\r
177 ad->contact_ug = NULL;
\r
178 CALL_UI_DEBUG("__vcui_doc_launch_ug_contact_list_destroy_cb success");
\r
181 static void __vcui_doc_launch_ug_contact_list_result_cb(ui_gadget_h ug, service_h result, void *priv)
\r
183 CALL_UI_DEBUG("__vcui_doc_launch_ug_contact_list_result_cb nothing");
\r
186 void _vcui_doc_launch_contact_list_ug(void *parent_ui_gadget, void *navi, void *parent, void (*on_start_callback) (void *), void (*on_destroy_callback) (void *), void *callback_param, void *ugs_array_data)
\r
188 CALL_UI_DEBUG("_vcui_doc_launch_contact_list_ug start");
\r
189 vcui_app_call_data_t *ad = _vcui_get_app_data();
\r
192 int ret = service_create(&service);
\r
194 CALL_UI_DEBUG("service_create() return error : %d", ret);
\r
198 service_add_extra_data(service, "type", "1");
\r
200 struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data;
\r
201 if (pugs_array->last_ug_type == VCUI_UG_TYPE_CONTACT_LIST) {
\r
202 CALL_UI_DEBUG("launch exit because of same ug execution");
\r
203 service_destroy(service);
\r
206 struct ug_cbs cbs = { 0, };
\r
207 cbs.layout_cb = __vcui_doc_launch_ug_contact_list_layout_cb;
\r
208 cbs.destroy_cb = __vcui_doc_launch_ug_contact_list_destroy_cb;
\r
209 cbs.result_cb = __vcui_doc_launch_ug_contact_list_result_cb;
\r
211 struct vcui_ug_priv_data *temp_priv_data = malloc(sizeof(struct vcui_ug_priv_data));
\r
212 if (temp_priv_data == NULL) {
\r
213 CALL_UI_DEBUG("malloc error.");
\r
214 service_destroy(service);
\r
217 temp_priv_data->on_start_callback = on_start_callback;
\r
218 temp_priv_data->on_destroy_callback = on_destroy_callback;
\r
219 temp_priv_data->destroy_callback_param = callback_param;
\r
220 temp_priv_data->need_navi = navi;
\r
221 temp_priv_data->need_parent = parent;
\r
222 temp_priv_data->need_ug_lists = ugs_array_data;
\r
223 local_priv_data = cbs.priv = temp_priv_data;
\r
225 ui_gadget_h ug = ug_create(parent_ui_gadget, PKGNAME_CONTACT_UG, UG_MODE_FULLVIEW, service, &cbs);
\r
226 temp_priv_data->need_ug = ug;
\r
228 free(temp_priv_data);
\r
229 local_priv_data = NULL;
\r
230 CALL_UI_DEBUG("_vcui_doc_launch_contact_list_ug fail");
\r
232 struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data;
\r
233 pugs_array->ug_count = pugs_array->ug_count + 1;
\r
234 pugs_array->last_ug_type = VCUI_UG_TYPE_CONTACT_LIST;
\r
235 pugs_array->ug_lists = eina_list_append(pugs_array->ug_lists, (void *)ug);
\r
236 ad->contact_ug = ug;
\r
238 service_destroy(service);
\r
239 CALL_UI_DEBUG("_vcui_doc_launch_contact_list_ug end");
\r
242 static void __vcui_doc_launch_ug_phoneui_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
\r
244 __vcui_doc_launch_ug_common_layout_cb(ug, mode, priv);
\r
245 CALL_UI_DEBUG("__vcui_doc_launch_ug_phoneui_layout_cb success");
\r
248 static void __vcui_doc_launch_ug_phoneui_destroy_cb(ui_gadget_h ug, void *priv)
\r
250 __vcui_doc_launch_ug_common_destroy_cb(ug, priv);
\r
251 CALL_UI_DEBUG("__vcui_doc_launch_ug_phoneui_destroy_cb success");
\r
254 static void __vcui_doc_launch_ug_phoneui_result_cb(ui_gadget_h ug, service_h result, void *priv)
\r
256 CALL_UI_DEBUG("__vcui_doc_launch_ug_phoneui_result_cb nothing");
\r
259 void _vcui_doc_launch_phoneui_ug(void *parent_ui_gadget, void *navi, void *parent, void (*on_start_callback) (void *), void (*on_destroy_callback) (void *), void *callback_param, void *ugs_array_data)
\r
261 CALL_UI_DEBUG("launch_PHONEUI UG start");
\r
264 int ret = service_create(&service);
\r
266 CALL_UI_DEBUG("service_create() return error : %d", ret);
\r
270 service_add_extra_data(service, "type", "51");
\r
272 struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data;
\r
273 if (pugs_array->last_ug_type == VCUI_UG_TYPE_ADD_CALL) {
\r
274 CALL_UI_DEBUG("launch exit because of same ug execution");
\r
275 service_destroy(service);
\r
278 struct ug_cbs cbs = { 0, };
\r
279 cbs.layout_cb = __vcui_doc_launch_ug_phoneui_layout_cb;
\r
280 cbs.destroy_cb = __vcui_doc_launch_ug_phoneui_destroy_cb;
\r
281 cbs.result_cb = __vcui_doc_launch_ug_phoneui_result_cb;
\r
283 struct vcui_ug_priv_data *temp_priv_data = malloc(sizeof(struct vcui_ug_priv_data));
\r
284 if (temp_priv_data == NULL) {
\r
285 CALL_UI_DEBUG("malloc error.");
\r
286 service_destroy(service);
\r
289 temp_priv_data->on_start_callback = on_start_callback;
\r
290 temp_priv_data->on_destroy_callback = on_destroy_callback;
\r
291 temp_priv_data->destroy_callback_param = callback_param;
\r
292 temp_priv_data->need_navi = navi;
\r
293 temp_priv_data->need_parent = parent;
\r
294 temp_priv_data->need_ug_lists = ugs_array_data;
\r
295 local_priv_data = cbs.priv = temp_priv_data;
\r
297 ui_gadget_h ug = ug_create(parent_ui_gadget, PKGNAME_DIALER_UG, UG_MODE_FULLVIEW, service, &cbs);
\r
298 temp_priv_data->need_ug = ug;
\r
300 free(temp_priv_data);
\r
301 local_priv_data = NULL;
\r
302 CALL_UI_DEBUG("_vcui_doc_launch_contact_list_ug fail");
\r
304 struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data;
\r
305 pugs_array->ug_count = pugs_array->ug_count + 1;
\r
306 pugs_array->last_ug_type = VCUI_UG_TYPE_ADD_CALL;
\r
307 pugs_array->ug_lists = eina_list_append(pugs_array->ug_lists, (void *)ug);
\r
309 service_destroy(service);
\r
310 CALL_UI_DEBUG("_vcui_doc_launch_contact_list_ug end");
\r
314 static void __vcui_doc_launch_render_flush_post_cb(void *data, Evas *e, void *event_info)
\r
316 vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data;
\r
320 edje_object_signal_emit(_EDJ(ad->ly), "elm,state,show", "");
\r
321 evas_event_callback_del(e, EVAS_CALLBACK_RENDER_FLUSH_POST, __vcui_doc_launch_render_flush_post_cb);
\r
325 void _vcui_doc_launch_msg_composer(void *data, char *number)
\r
327 CALL_UI_DEBUG("..");
\r
330 int ret = SERVICE_ERROR_NONE;
\r
332 ret = service_create(&service);
\r
333 if (ret != SERVICE_ERROR_NONE) {
\r
334 CALL_UI_DEBUG("service_create() return error : %d", ret);
\r
338 ret = service_set_operation(service, SERVICE_OPERATION_SEND_TEXT);
\r
339 if (ret != SERVICE_ERROR_NONE) {
\r
340 CALL_UI_DEBUG("service_set_operation() return error : %d", ret);
\r
341 ret = service_destroy(service);
\r
345 ret = service_set_package(service, MSG_PKG);
\r
346 if (ret != SERVICE_ERROR_NONE) {
\r
347 CALL_UI_DEBUG("service_set_package() return error : %d", ret);
\r
348 ret = service_destroy(service);
\r
352 ret = service_add_extra_data(service, SERVICE_DATA_TO, number);
\r
353 if (ret != SERVICE_ERROR_NONE) {
\r
354 CALL_UI_DEBUG("service_add_extra_data() return error : %d", ret);
\r
355 ret = service_destroy(service);
\r
359 ret = service_send_launch_request(service, NULL, NULL);
\r
360 if (ret != SERVICE_ERROR_NONE) {
\r
361 CALL_UI_DEBUG("service_send_launch_request() is failed : %d", ret);
\r
364 service_destroy(service);
\r
367 void _vcui_doc_launch_destroy_ug_all(void *ugs_array_data)
\r
369 CALL_UI_DEBUG("..");
\r
370 vcui_app_call_data_t *ad = _vcui_get_app_data();
\r
372 struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data;
\r
373 if (pugs_array != NULL) {
\r
374 pugs_array->ug_lists = eina_list_free(pugs_array->ug_lists);
\r
375 pugs_array->ug_count = 0;
\r
376 pugs_array->last_ug_type = VCUI_UG_TYPE_NOE;
\r
378 #ifdef _LOCAL_UG_EFFECT_
\r
379 if (local_priv_data->need_ug != NULL) {
\r
380 CALL_UI_DEBUG("__vcui_doc_launch_ug_common_hide_effect_finished start");
\r
381 base = local_priv_data->need_layout;
\r
383 if (base != NULL) {
\r
384 evas_object_hide(base);
\r
385 elm_layout_content_unset(base, "elm.swallow.content");
\r
386 evas_object_del(base);
\r
388 if (local_priv_data->on_destroy_callback != NULL)
\r
389 local_priv_data->on_destroy_callback(local_priv_data->destroy_callback_param);
\r
393 if (ad->contact_ug != NULL) {
\r
394 ad->contact_ug = NULL;
\r
395 _vcui_view_common_call_terminate_or_view_change();
\r
398 free(local_priv_data);
\r
399 local_priv_data = NULL;
\r
401 CALL_UI_DEBUG("__vcui_doc_launch_ug_common_hide_effect_finished end");
\r
406 if (ad->contact_ug != NULL) {
\r
407 ad->contact_ug = NULL;
\r
408 _vcui_view_common_call_terminate_or_view_change();
\r
411 if (local_priv_data != NULL) {
\r
412 free(local_priv_data);
\r
413 local_priv_data = NULL;
\r
419 static void __vcui_doc_launch_ug_contact_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
\r
421 __vcui_doc_launch_ug_common_layout_cb(ug, mode, priv);
\r
422 CALL_UI_DEBUG("__vcui_doc_launch_ug_contact_layout_cb success");
\r
425 static void __vcui_doc_launch_ug_contact_result_cb(ui_gadget_h ug, service_h result, void *priv)
\r
427 CALL_UI_DEBUG("__vcui_doc_launch_ug_phoneui_result_cb nothing");
\r
430 static void __vcui_doc_launch_ug_contact_destroy_cb(ui_gadget_h ug, void *priv)
\r
432 CALL_UI_DEBUG("__vcui_doc_launch_ug_contact_destroy_cb..");
\r
433 vcui_app_call_data_t *ad = _vcui_get_app_data();
\r
434 __vcui_doc_launch_ug_common_destroy_cb(ug, priv);
\r
435 ad->contact_ug = NULL;
\r
436 _vcui_view_common_call_terminate_or_view_change();
\r
439 void _vcui_doc_launch_add_to_contacts_ug(void *parent_ui_gadget, void *navi, void *parent, void (*on_start_callback) (void *), void (*on_destroy_callback) (void *), void *callback_param, void *ugs_array_data, void *data)
\r
441 CALL_UI_DEBUG("launch_ADD_TO_CONTACTS UG start");
\r
442 vcui_app_call_data_t *ad = _vcui_get_app_data();
\r
444 char buf[4] = {0,};
\r
446 int ret = service_create(&service);
\r
448 CALL_UI_DEBUG("service_create() return error : %d", ret);
\r
452 snprintf(buf, sizeof(buf), "%d", 22);
\r
453 service_add_extra_data(service, "type", buf);
\r
454 CALL_UI_DEBUG("number %s", (char *)data);
\r
455 service_add_extra_data(service, "ct_num", (char *)data);
\r
457 struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data;
\r
458 if (pugs_array->last_ug_type == VCUI_UG_TYPE_ADD_TO_CONTACTS) {
\r
459 CALL_UI_DEBUG("launch exit because of same ug execution");
\r
460 service_destroy(service);
\r
463 struct ug_cbs cbs = { 0, };
\r
464 cbs.layout_cb = __vcui_doc_launch_ug_contact_layout_cb;
\r
465 cbs.destroy_cb = __vcui_doc_launch_ug_contact_destroy_cb;
\r
466 cbs.result_cb = __vcui_doc_launch_ug_contact_result_cb;
\r
468 struct vcui_ug_priv_data *temp_priv_data = malloc(sizeof(struct vcui_ug_priv_data));
\r
469 if (temp_priv_data == NULL) {
\r
470 CALL_UI_DEBUG("malloc error.");
\r
471 service_destroy(service);
\r
474 temp_priv_data->on_start_callback = on_start_callback;
\r
475 temp_priv_data->on_destroy_callback = on_destroy_callback;
\r
476 temp_priv_data->destroy_callback_param = callback_param;
\r
477 temp_priv_data->need_navi = navi;
\r
478 temp_priv_data->need_parent = parent;
\r
479 temp_priv_data->need_ug_lists = ugs_array_data;
\r
480 local_priv_data = cbs.priv = temp_priv_data;
\r
482 ui_gadget_h ug = ug_create(parent_ui_gadget, ADD_TO_CONTACTS_UG, UG_MODE_FULLVIEW, service, &cbs);
\r
483 temp_priv_data->need_ug = ug;
\r
485 free(temp_priv_data);
\r
486 local_priv_data = NULL;
\r
487 CALL_UI_DEBUG("_vcui_doc_launch_add_to_contacts_ug fail");
\r
489 struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data;
\r
490 pugs_array->ug_count = pugs_array->ug_count + 1;
\r
491 pugs_array->last_ug_type = VCUI_UG_TYPE_ADD_TO_CONTACTS;
\r
492 pugs_array->ug_lists = eina_list_append(pugs_array->ug_lists, (void *)ug);
\r
493 ad->contact_ug = ug;
\r
495 service_destroy(service);
\r
496 CALL_UI_DEBUG("_vcui_doc_launch_add_to_contacts_ug end");
\r
499 void _vcui_doc_launch_view_contact_ug(void *parent_ui_gadget, void *navi, void *parent, void (*on_start_callback) (void *), void (*on_destroy_callback) (void *), void *callback_param, void *ugs_array_data, void *data)
\r
501 CALL_UI_DEBUG("launch_VIEW_CONTACT UG start");
\r
502 vcui_app_call_data_t *ad = _vcui_get_app_data();
\r
504 char buf[4] = {0,};
\r
505 char contactId[128] = {0,};
\r
507 int ret = service_create(&service);
\r
509 CALL_UI_DEBUG("service_create() return error : %d", ret);
\r
513 snprintf(buf, sizeof(buf), "%d", 0);
\r
514 service_add_extra_data(service, "type", buf); /*CT_UG_REQUEST_DETAIL*/
\r
515 CALL_UI_DEBUG("ct_id %d", (int)data);
\r
516 snprintf(contactId, sizeof(contactId), "%d", (int)data);
\r
517 service_add_extra_data(service, "ct_id", contactId);
\r
519 struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data;
\r
520 if (pugs_array->last_ug_type == VCUI_UG_TYPE_VIEW_CONTACT) {
\r
521 CALL_UI_DEBUG("launch exit because of same ug execution");
\r
522 service_destroy(service);
\r
525 struct ug_cbs cbs = { 0, };
\r
526 cbs.layout_cb = __vcui_doc_launch_ug_contact_layout_cb;
\r
527 cbs.destroy_cb = __vcui_doc_launch_ug_contact_destroy_cb;
\r
528 cbs.result_cb = __vcui_doc_launch_ug_contact_result_cb;
\r
530 struct vcui_ug_priv_data *temp_priv_data = malloc(sizeof(struct vcui_ug_priv_data));
\r
531 if (temp_priv_data == NULL) {
\r
532 CALL_UI_DEBUG("malloc error.");
\r
533 service_destroy(service);
\r
536 temp_priv_data->on_start_callback = on_start_callback;
\r
537 temp_priv_data->on_destroy_callback = on_destroy_callback;
\r
538 temp_priv_data->destroy_callback_param = callback_param;
\r
539 temp_priv_data->need_navi = navi;
\r
540 temp_priv_data->need_parent = parent;
\r
541 temp_priv_data->need_ug_lists = ugs_array_data;
\r
542 local_priv_data = cbs.priv = temp_priv_data;
\r
544 ui_gadget_h ug = ug_create(parent_ui_gadget, VIEW_CONTACT_UG, UG_MODE_FULLVIEW, service, &cbs);
\r
545 temp_priv_data->need_ug = ug;
\r
547 free(temp_priv_data);
\r
548 local_priv_data = NULL;
\r
549 CALL_UI_DEBUG("_vcui_doc_launch_view_contact_ug fail");
\r
551 struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data;
\r
552 pugs_array->ug_count = pugs_array->ug_count + 1;
\r
553 pugs_array->last_ug_type = VCUI_UG_TYPE_VIEW_CONTACT;
\r
554 pugs_array->ug_lists = eina_list_append(pugs_array->ug_lists, (void *)ug);
\r
555 ad->contact_ug = ug;
\r
557 service_destroy(service);
\r
558 CALL_UI_DEBUG("_vcui_doc_launch_view_contact_ug end");
\r