diff options
Diffstat (limited to 'lib/phoneui/ph-front-view.c')
-rwxr-xr-x | lib/phoneui/ph-front-view.c | 382 |
1 files changed, 0 insertions, 382 deletions
diff --git a/lib/phoneui/ph-front-view.c b/lib/phoneui/ph-front-view.c deleted file mode 100755 index 2babe0b..0000000 --- a/lib/phoneui/ph-front-view.c +++ /dev/null @@ -1,382 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.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 <bundle.h> -#include <vconf.h> -#include <aul.h> -#include <appsvc.h> - -#include "phone.h" -#include "phone-ui.h" -#include "phone-log.h" -#include "phone-dialer.h" -#include "ph-front-view.h" - -// for removing build warning //////////////////////////////////// -void ctui_change_background(void *data, bool is_background); -void ctui_list_view_reset(void *clist_d); -Evas_Object* ctui_create_phone_list_view(void *ug, Evas_Object *win, Evas_Object *navi); -void ct_list_navi_set(int mode, void *clist_d); -//////////////////////////////////////////////////////// - -static void front_view_reset_current_sub_view(ph_phoneui_data *phoneui_d) -{ - PH_FN_CALL; - p_ret_if(phoneui_d->select_tab <= PH_VIEW_NONE || PH_VIEW_MAX <= phoneui_d->select_tab); - if (phoneui_d->sub_view[phoneui_d->select_tab]) { - switch (phoneui_d->select_tab) { - case PH_VIEW_DIALER: - phone_dialer_view_reset(phoneui_d->sub_view[PH_VIEW_DIALER]); - break; - case PH_VIEW_CONTACT : - ctui_list_view_reset(evas_object_data_get(phoneui_d->navi, "clist_d")); - break; - case PH_VIEW_LOG : - phone_log_view_reset(phoneui_d->navi); - break; - case PH_VIEW_FAVORITE : - phone_favor_view_reset(phoneui_d->sub_view[PH_VIEW_FAVORITE]); - break; - } - } -} - -static void front_view_load_sub_view(ph_phoneui_data *phoneui_d, int tab_index) -{ - PH_FN_CALL; - switch (tab_index) { - case PH_VIEW_CONTACT: - phoneui_d->sub_view[PH_VIEW_CONTACT] = ctui_create_phone_list_view(phoneui_d->ug, - phoneui_d->win, phoneui_d->navi); - return; - case PH_VIEW_DIALER: - phoneui_d->sub_view[tab_index] = phone_create_dialer_view(phoneui_d->ug, - phoneui_d->win, phoneui_d->navi); - break; - case PH_VIEW_LOG: - phoneui_d->sub_view[tab_index] = phone_create_log_view(phoneui_d->ug, - phoneui_d->win, phoneui_d->navi); - break; - case PH_VIEW_FAVORITE: - phoneui_d->sub_view[tab_index] = phone_create_favorite_view(phoneui_d->ug, - phoneui_d->win, phoneui_d->navi); - break; - default: - return; - }; -} - -static void front_view_show_sub_view(ph_phoneui_data *phoneui_d, int tab_index) -{ - PH_FN_CALL; - Evas_Object *view; - p_retm_if(tab_index <= PH_VIEW_NONE || PH_VIEW_MAX <= tab_index, "tab index is invalid"); - p_retm_if(phoneui_d->select_tab == tab_index, "The tab is already shown"); - - front_view_reset_current_sub_view(phoneui_d); - phone_hide_notify(phoneui_d->navi); - - switch (tab_index) { - case PH_VIEW_DIALER: - if (NULL == phoneui_d->sub_view[tab_index]) - phoneui_d->sub_view[tab_index] = phone_create_dialer_view(phoneui_d->ug, - phoneui_d->win, phoneui_d->navi); - phone_dialer_set_navi(phoneui_d->sub_view[PH_VIEW_DIALER]); - phone_dialer_check_focus(phoneui_d->sub_view[PH_VIEW_DIALER]); - if(!phoneui_d->ug) - phone_front_view_show_call_app(phoneui_d); - break; - case PH_VIEW_CONTACT: - if (NULL == phoneui_d->sub_view[tab_index]) { - phoneui_d->sub_view[PH_VIEW_CONTACT] = ctui_create_phone_list_view(phoneui_d->ug, - phoneui_d->win, phoneui_d->navi); - } - ct_list_navi_set(0, evas_object_data_get(phoneui_d->navi, "clist_d")); - break; - case PH_VIEW_LOG: - if (NULL == phoneui_d->sub_view[tab_index]) - phoneui_d->sub_view[tab_index] = phone_create_log_view(phoneui_d->ug, - phoneui_d->win, phoneui_d->navi); - if (!phoneui_d->ug) - phone_log_missed_info_update(phoneui_d->navi); - phone_log_set_navi(phoneui_d->navi); - break; - case PH_VIEW_FAVORITE: - if (NULL == phoneui_d->sub_view[tab_index]) - phoneui_d->sub_view[tab_index] = phone_create_favorite_view(phoneui_d->ug, - phoneui_d->win, phoneui_d->navi); - phone_favor_set_navi(phoneui_d->sub_view[tab_index], PH_FAVOR_MODE_DEFAULT); - break; - default: - return; - } - phoneui_d->select_tab = tab_index; - view = elm_object_part_content_get(phoneui_d->layout, "elm.swallow.content"); - if (view) { - elm_object_part_content_unset(phoneui_d->layout, "elm.swallow.content"); - evas_object_hide(view); - } - elm_object_part_content_set(phoneui_d->layout, "elm.swallow.content", phoneui_d->sub_view[tab_index]); - evas_object_show(phoneui_d->sub_view[tab_index]); -} - -static Eina_Bool front_view_load_all_sub_view(void *data) -{ - PH_FN_CALL; - ph_phoneui_data *phoneui_d = data; - int i; - - for (i=PH_VIEW_DIALER;i<PH_VIEW_MAX;i++) { - if (NULL == phoneui_d->sub_view[i]) { - front_view_load_sub_view(phoneui_d, i); - return ECORE_CALLBACK_RENEW; - } - } - phoneui_d->idler = NULL; - return ECORE_CALLBACK_CANCEL; -} - -API Eina_Bool phone_front_view_load_timer(void *data) -{ - ph_phoneui_data *phoneui_d = data; - phoneui_d->idler = ecore_idler_add(front_view_load_all_sub_view, phoneui_d); - phoneui_d->timer = NULL; - return ECORE_CALLBACK_CANCEL; -} - -static void front_view_change_cb(void *data, Evas_Object *obj, void *event_info) -{ - PH_FN_CALL; - int i; - Elm_Object_Item *selected_it; - ph_phoneui_data *phoneui_d = data; - - selected_it = elm_toolbar_selected_item_get(obj); - - for (i=PH_VIEW_DIALER;i<PH_VIEW_MAX;i++) { - if (phoneui_d->item[i]) - if (selected_it == phoneui_d->item[i]) break; - } - PH_DBG("cur sel : %d, sel index : %d", phoneui_d->select_tab, i); - front_view_show_sub_view(phoneui_d, i); -} - -static void front_view_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - PH_FN_CALL; - ph_phoneui_data *phoneui_d = data; - int i; - - p_retm_if(NULL == phoneui_d, "phoneui_d is null"); - - if (PH_VIEW_NONE != phoneui_d->select_tab) { - int ret = vconf_set_int(PH_START_VIEW, phoneui_d->select_tab); - p_warn_if(0 != ret, "vconf_set_int() Failed(%d)", ret); - } - - if (phoneui_d->contact_ug) { - ug_destroy(phoneui_d->contact_ug); - phoneui_d->sub_view[PH_VIEW_CONTACT] = NULL; - } - - for (i=0;i<PH_VIEW_MAX;i++) { - if (phoneui_d->sub_view[i]) { - evas_object_del(phoneui_d->sub_view[i]); - } - } - - if (phoneui_d->idler) - ecore_idler_del(phoneui_d->idler); - - if (phoneui_d->timer) - ecore_timer_del(phoneui_d->timer); - - free(phoneui_d); - PH_FN_END; -} - -Evas_Object* ph_front_create_toolbar(ph_phoneui_data *phoneui_d) -{ - Evas_Object *base; - Evas_Object *layout; - Evas_Object *naviframe; - Evas_Object *toolbar; - Elm_Object_Item *navi_it; - - base = elm_layout_add(phoneui_d->win); - p_retvm_if(NULL == base, NULL, "elm_layout_add() Failed"); - evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_layout_theme_set(base, "layout", "application", "default"); - elm_win_resize_object_add(phoneui_d->win, base); - evas_object_show(base); - - naviframe = elm_naviframe_add(base); - elm_naviframe_prev_btn_auto_pushed_set(naviframe, EINA_FALSE); - elm_object_part_content_set(base, "elm.swallow.content", naviframe); - phoneui_d->navi = naviframe; - - layout = elm_layout_add(naviframe); - p_retvm_if(NULL == layout, NULL, "elm_layout_add() Failed"); - elm_layout_theme_set(layout, "layout", "tabbar", "default"); - phoneui_d->layout = layout; - - toolbar = elm_toolbar_add(naviframe); - p_retvm_if(NULL == toolbar, NULL, "elm_toolbar_add() Failed"); - elm_object_style_set(toolbar, "tabbar"); - elm_object_part_content_set(layout, "elm.swallow.tabbar", toolbar); - phoneui_d->tabbar = toolbar; - - elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND); - - phoneui_d->item[PH_VIEW_DIALER] = elm_toolbar_item_append(toolbar, - IMG_DIALER_ICON, T_(PH_GET_TEXT_BASIC, PHTEXT_DIALER), front_view_change_cb, phoneui_d); - phoneui_d->item[PH_VIEW_CONTACT] = elm_toolbar_item_append(toolbar, - IMG_CONTACTS_ICON, S_(PH_SYS_BODY_CONTACTS), front_view_change_cb, phoneui_d); - phoneui_d->item[PH_VIEW_LOG] = elm_toolbar_item_append(toolbar, - IMG_LOGS_ICON, T_(PH_GET_TEXT_BASIC, PHTEXT_LOGS), front_view_change_cb, phoneui_d); - phoneui_d->item[PH_VIEW_FAVORITE] = elm_toolbar_item_append(toolbar, - IMG_FAVORITE_ICON, T_(PH_GET_TEXT_BASIC, PHTEXT_FAVORITES), front_view_change_cb, phoneui_d); - - navi_it = elm_naviframe_item_push(naviframe, NULL, NULL, NULL, layout, NULL); - elm_naviframe_item_title_visible_set(navi_it, EINA_FALSE); - evas_object_event_callback_add(phoneui_d->layout, EVAS_CALLBACK_DEL, - front_view_delete_cb, phoneui_d); - - elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_ALWAYS); - PH_FN_END; - return base; -} - -API void phone_front_view_region_changed(ph_phoneui_data *phoneui_d) -{ - if (phoneui_d && phoneui_d->sub_view[PH_VIEW_LOG]) - phone_log_views_update(phoneui_d->navi); -} - -API void phone_front_view_pause(ph_phoneui_data *phoneui_d) -{ - if (phoneui_d && phoneui_d->sub_view[PH_VIEW_LOG]) - phone_log_set_background(phoneui_d->navi, true); - if (phoneui_d && phoneui_d->sub_view[PH_VIEW_CONTACT]) - ctui_change_background(phoneui_d->navi, true); -} - -API void phone_front_view_resume(ph_phoneui_data *phoneui_d) -{ - if (phoneui_d && phoneui_d->sub_view[PH_VIEW_LOG]) { - phone_log_set_background(phoneui_d->navi, false); - if (PH_VIEW_LOG == phoneui_d->select_tab) - phone_log_missed_info_update(phoneui_d->navi); - } - if(phoneui_d && phoneui_d->sub_view[PH_VIEW_CONTACT]) - ctui_change_background(phoneui_d->navi, false); - if (phoneui_d && phoneui_d->sub_view[PH_VIEW_DIALER]) { - if (PH_VIEW_DIALER == phoneui_d->select_tab) - phone_dialer_view_resume(phoneui_d->sub_view[PH_VIEW_DIALER]); - } -} - -API void phone_front_view_reset(ph_phoneui_data *phoneui_d, int tab_index, char *val) -{ - PH_FN_CALL; - int call_launched = FALSE; - Evas_Object *view; - - front_view_reset_current_sub_view(phoneui_d); - if (phoneui_d->sub_view[PH_VIEW_LOG]) - phone_log_set_background(phoneui_d->navi, false); - if (phoneui_d->sub_view[PH_VIEW_CONTACT]) - ctui_change_background(phoneui_d->navi, false); - - if(PH_VIEW_NONE != tab_index) { - switch (tab_index) { - case PH_VIEW_DIALER: - if (NULL == phoneui_d->sub_view[tab_index]) - phoneui_d->sub_view[tab_index] = phone_create_dialer_view(phoneui_d->ug, phoneui_d->win, phoneui_d->navi); - if (val) - phone_dialer_view_set_num(phoneui_d->sub_view[PH_VIEW_DIALER], val+4); - else - phone_dialer_view_resume(phoneui_d->sub_view[PH_VIEW_DIALER]); - - phone_dialer_set_navi(phoneui_d->sub_view[PH_VIEW_DIALER]); - phone_dialer_check_focus(phoneui_d->sub_view[PH_VIEW_DIALER]); - - if(!phoneui_d->ug) - call_launched = phone_front_view_show_call_app(phoneui_d); - break; - case PH_VIEW_LOG: - if (NULL == phoneui_d->sub_view[tab_index]) - phoneui_d->sub_view[tab_index] = phone_create_log_view(phoneui_d->ug, phoneui_d->win, phoneui_d->navi); - if (!phoneui_d->ug) - phone_log_missed_info_update(phoneui_d->navi); - phone_log_set_navi(phoneui_d->navi); - break; - case PH_VIEW_FAVORITE: - if (NULL == phoneui_d->sub_view[tab_index]) - phoneui_d->sub_view[tab_index] = phone_create_favorite_view(phoneui_d->ug, phoneui_d->win, phoneui_d->navi); - phone_favor_set_navi(phoneui_d->sub_view[tab_index], PH_FAVOR_MODE_DEFAULT); - break; - default: - break; - } - - view = elm_object_part_content_get(phoneui_d->layout, "elm.swallow.content"); - if (view) { - elm_object_part_content_unset(phoneui_d->layout, "elm.swallow.content"); - evas_object_hide(view); - } - elm_object_part_content_set(phoneui_d->layout, "elm.swallow.content", phoneui_d->sub_view[tab_index]); - evas_object_show(phoneui_d->sub_view[tab_index]); - phoneui_d->select_tab = tab_index; - elm_toolbar_item_selected_set(phoneui_d->item[tab_index], EINA_TRUE); - if (!phoneui_d->ug) - vconf_set_int(PH_START_VIEW, tab_index); - } - - if (phoneui_d->win && FALSE == call_launched) - elm_win_activate(phoneui_d->win); - phoneui_d->timer = ecore_timer_add(3.0, phone_front_view_load_timer, phoneui_d); -} - -static int front_view_call_app_check(const char *pkg_name, void *data) -{ - int *call_app_launched = data; - - // premise : Only one Call app can be running at a time - if (1 == aul_app_is_running(pkg_name)) { - aul_open_app(pkg_name); - *call_app_launched = TRUE; - return 0; - } - return 1; -} - -API int phone_front_view_show_call_app(ph_phoneui_data *phoneui_d) -{ - PH_FN_CALL; - bundle * bd; - int call_app_launched = FALSE; - bd = bundle_create(); - appsvc_set_operation(bd, APPSVC_OPERATION_CALL); - appsvc_set_uri(bd, "tel:"); - appsvc_get_list(bd, front_view_call_app_check, (void *)&call_app_launched); - - if (call_app_launched) - return 1; - return 0; -} - |