--- /dev/null
+### SDK IDE generated files and folder ###
+.*project
+##########################################
+
+### Build scripts ###
+build*
+deploy*
+install.sh
+run.sh
+###########################################
+
+### Etc ###
+*~
+.settings
+##############
+
--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(call-ui C)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(PKG_NAME org.tizen.call-ui)
+SET(APPDIR "${PREFIX}/apps/org.tizen.call-ui")
+SET(BINDIR "${APPDIR}/bin")
+SET(RESDIR "${APPDIR}/res")
+SET(LOCALEDIR "${RESDIR}/locale")
+SET(EDJDIR "${RESDIR}/edje")
+SET(IMGDIR "${RESDIR}/images")
+SET(TABLEDIR "${RESDIR}/tables")
+
+SET(EDJE_CC_DEFINITIONS "")
+
+ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+ADD_DEFINITIONS("-DBINDIR=\"${BINDIR}\"")
+ADD_DEFINITIONS("-DPACKAGE=\"${PKG_NAME}\"")
+ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+ADD_DEFINITIONS("-DIMGDIR=\"${IMGDIR}\"")
+ADD_DEFINITIONS("-DTABLEDIR=\"${TABLEDIR}\"")
+
+ADD_DEFINITIONS("-D_CALLUI_SIGNAL_HANDLER")
+
+ADD_SUBDIRECTORY(po)
+
+FILE(GLOB SRCS "src/*.c")
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules (pkgs REQUIRED
+ appcore-efl
+ glib-2.0
+ elementary
+ dlog
+ capi-appfw-application
+ ecore
+ ecore-x
+ utilX
+ appsvc
+ callmgr_client
+ contacts-service2
+ minicontrol-provider
+ vconf
+ capi-network-bluetooth
+ capi-network-connection
+ capi-system-system-settings
+ msg-service
+ capi-system-device
+ notification
+ capi-system-runtime-info
+ capi-system-info
+ capi-ui-efl-util
+ efl-extension
+)
+
+FOREACH(flag ${pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE ${EXTRA_CFLAGS}")
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} "-pie" ${pkgs_LDFLAGS})
+
+ADD_CUSTOM_TARGET(call.edj
+ COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/res/images ${SHARED_FLAGS} ${EDJE_CC_DEFINITIONS}
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/call_edc/call.edc ${CMAKE_CURRENT_SOURCE_DIR}/res/call.edj
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/call_edc/call.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} call.edj)
+
+ADD_CUSTOM_TARGET(call_theme.edj
+ COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/res/themes ${EDJE_CC_DEFINITIONS} -sd
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/sounds
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_theme.edc ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_theme.edj
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_theme.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} call_theme.edj)
+
+ADD_CUSTOM_TARGET(call_genlist_theme.edj
+ COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/res/themes -sd
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/sounds
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_genlist_theme.edc ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_genlist_theme.edj
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_genlist_theme.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} call_genlist_theme.edj)
+
+#install binary & edj files
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/call.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_theme.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/themes/call_genlist_theme.edj DESTINATION ${EDJDIR})
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
+INSTALL(DIRECTORY DESTINATION ${DATADIR})
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKG_NAME}.xml DESTINATION /usr/share/packages/)
+
+# install manifest file & icon
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/tables/ DESTINATION ${TABLEDIR} FILES_MATCHING PATTERN "*.xml")
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/handler_btn_02.png DESTINATION ${IMGDIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/call_photo_id_mask.png DESTINATION ${IMGDIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/icon/call_resume_play_mask.png DESTINATION ${IMGDIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/call_photo_id.png DESTINATION ${IMGDIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/button_edit_bg_new.png DESTINATION ${IMGDIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/call_button_icon_01.png DESTINATION ${IMGDIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/call_button_icon_03.png DESTINATION ${IMGDIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/call_button_icon_04.png DESTINATION ${IMGDIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/icon/call_button_add.png DESTINATION ${IMGDIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/icon/noti_icon_reject_auto.png DESTINATION ${IMGDIR})
+
+#install smack rule
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PKG_NAME}.efl DESTINATION /etc/smack/accesses.d)
+
--- /dev/null
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+
+ 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.
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __CALLUI_COMMON_H_
+#define __CALLUI_COMMON_H_
+
+#include "callui-view-manager.h"
+#include "callui.h"
+
+#define CALLUI_KEY_MEDIA "XF86AudioMedia"
+#define CALLUI_KEY_SELECT "XF86Phone"
+#define CALLUI_KEY_POWER "XF86PowerOff"
+#define CALLUI_KEY_HOME "XF86Home"
+#define CALLUI_KEY_VOLUMEUP "XF86AudioRaiseVolume"
+#define CALLUI_KEY_VOLUMEDOWN "XF86AudioLowerVolume"
+
+typedef enum {
+ LOCK_TYPE_UNLOCK = 1,
+ LOCK_TYPE_SWIPE_LOCK,
+ LOCK_TYPE_SECURITY_LOCK
+} callui_idle_lock_type_t;
+
+typedef enum {
+ LCD_TIMEOUT_SET = 1,
+ LCD_TIMEOUT_UNSET,
+ LCD_TIMEOUT_LOCKSCREEN_SET, /*After lock-screen comes in Connected state LCD goes to OFF in 5 secs*/
+ LCD_TIMEOUT_KEYPAD_SET, /*When Keypad is ON, LCD goes to DIM in 3 secs then goes to OFF in 5 secs*/
+ LCD_TIMEOUT_DEFAULT
+} callui_lcd_timeout_t;
+
+typedef enum {
+ LCD_ON,
+ LCD_ON_LOCK,
+ LCD_ON_UNLOCK,
+ LCD_OFF_SLEEP_LOCK,
+ LCD_OFF_SLEEP_UNLOCK
+} callui_lcd_control_t;
+
+void _callui_common_set_call_duration(char *time_dur);
+void _callui_common_update_call_duration(long starttime);
+void _callui_common_create_duration_timer();
+void _callui_common_delete_duration_timer();
+void _callui_common_create_ending_timer(call_view_data_t *vd, long start_time);
+void _callui_common_delete_ending_timer(void);
+char * _callui_common_get_sim_name(void *appdata);
+Eina_Bool _callui_common_is_headset_conected(void);
+callui_idle_lock_type_t _callui_common_get_idle_lock_type(void);
+int _callui_common_unlock_swipe_lock(void);
+long _callui_common_get_uptime(void);
+void _callui_common_win_set_noti_type(void *appdata, int bwin_noti);
+void _callui_common_get_contact_info(int person_id, call_contact_data_t *ct_info);
+void _callui_common_launch_contacts(void *appdata);
+void _callui_common_launch_bt_app(void *appdata);
+void _callui_common_launch_dialer(void *appdata);
+void _callui_common_launch_msg_composer(void *appdata, char *number);
+void _callui_common_reset_main_ly_text_fields(Evas_Object *contents);
+void _callui_common_dvc_set_lcd_timeout(callui_lcd_timeout_t state);
+gboolean _callui_common_is_extra_volume_available(void);
+gboolean _callui_common_is_answering_mode_on(void);
+gboolean _callui_common_is_powerkey_mode_on(void);
+void _callui_common_dvc_set_lcd_timeout(callui_lcd_timeout_t state);
+void _callui_common_dvc_control_lcd_state(callui_lcd_control_t state);
+void _callui_common_set_quickpanel_scrollable(Eina_Bool benable);
+Eina_Bool _callui_common_is_earjack_connected(void);
+int _callui_common_get_scaled_width(int width);
+int _callui_common_get_scaled_height(int height);
+
+#endif //__CALLUI_COMMON_H_
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 _CALLUI_VIEW_KEYPAD_H_
+#define _CALLUI_VIEW_KEYPAD_H_
+
+#include <Elementary.h>
+
+Eina_Bool _callui_keypad_get_show_status(void);
+void _callui_keypad_show_layout(void *appdata);
+void _callui_keypad_hide_layout(void *appdata);
+void _callui_keypad_create_layout(void *appdata);
+void _callui_keypad_delete_layout(void *appdata);
+
+
+#endif // _CALLUI_VIEW_KEYPAD_H_
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __CALLUI_VIEW_ACTIVE_INCOMING_CALL_H_
+#define __CALLUI_VIEW_ACTIVE_INCOMING_CALL_H_
+
+#include "callui-view-manager.h"
+
+/**
+ * @brief Draw screen for active incoming call
+ * @param[in] ad Call ui app data
+ * @param[in] vd Call view data
+ */
+void _callui_view_active_incoming_call_draw_screen(callui_app_data_t *ad, call_view_data_t *vd);
+
+/**
+ * @brief Create layout for active incoming call
+ * @param[in] vd Call view data
+ * @param[in] appdata app data
+ */
+int _callui_view_active_incoming_call_oncreate(call_view_data_t *view_data, void *appdata);
+
+#endif /* __CALLUI_VIEW_ACTIVE_INCOMING_CALL_H_ */
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 _CALLUI_VIEW_CALLEND_H_
+#define _CALLUI_VIEW_CALLEND_H_
+
+#include "callui-view-manager.h"
+
+typedef struct callui_endcall_view_priv callui_endcall_view_priv_t;
+
+call_view_data_t *_callui_view_callend_new(callui_app_data_t *ad);
+Evas_Object *_callui_view_callend_get_layout(call_view_data_t *vd);
+
+#endif //_CALLUI_VIEW_CALLEND_H_
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 _CALLUI_VIEW_CALLER_INFO_DEFINES_H_
+#define _CALLUI_VIEW_CALLER_INFO_DEFINES_H_
+
+#define GROUP_MERGE_BTN "merge_btn"
+#define GROUP_SWAP_BTN "swap_btn"
+#define PART_TEXT_MERGE_SWAP_BTN "text"
+
+#define GROUP_ACTIVE_HOLD_INFO "active_hold_info"
+#define PART_TEXT_STATUS "text.status"
+#define PART_SWALLOW_CALLER_ID "swallow.caller_id"
+#define PART_TEXT_MAIN "text.main"
+#define PART_TEXT_SUB "text.sub"
+#define SIGNAL_SET_TRANSPARENT_BACKGROUND "set,transparent,background"
+#define SIGNAL_SET_BLURRED_BACKGROUND "set,blurred,background"
+#define SIGNAL_SHOW_ARROW "show,arrow"
+#define SIGNAL_HIDE_ARROW "hide,arrow"
+
+#define GROUP_BTN_REGION "btn_region"
+#define PART_TOP_FIRST_BTN "top_first_button"
+#define PART_TOP_SECOND_BTN "top_second_button"
+#define PART_TOP_THIRD_BTN "top_third_button"
+#define PART_BOTTOM_FIRST_BTN "bottom_first_button"
+#define PART_BOTTOM_SECOND_BTN "bottom_second_button"
+#define PART_BOTTOM_THIRD_BTN "bottom_third_button"
+
+#define GROUP_ACTION_PANEL "action_panel"
+#define PART_END_BTN "end_btn"
+
+#define GROUP_ONE_HOLD_IN_CONFERENCE "one_hold_in_conference"
+#define PART_SWALLOW_HOLD_INFO "swallow.hold_info"
+#define PART_SWALLOW_MERGE "swallow.merge"
+#define PART_SWALLOW_SWAP "swallow.swap"
+#define PART_SWALLOW_ACTIVE_INFO "swallow.active_info"
+#define PART_SWALLOW_BTN_REGION "btn_region"
+#define PART_SWALLOW_ACTIONS_PANEL "swallow.actions_panel"
+
+#define GROUP_SPLIT "split"
+#define PART_SWALLOW_CALL_INFO "swallow.call_info"
+#define PART_SWALLOW_TEXTBLOCK_AREA "textblock/textarea"
+#define PART_SWALLOW_KEYPAD "keypad_region"
+
+#endif //_CALLUI_VIEW_CALLER_INFO_DEFINES_H_
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 _CALLUI_CALLER_INFO_METRIC_H_
+#define _CALLUI_CALLER_INFO_METRIC_H_
+
+//One hold in conference layout
+#define ONE_HOLD_H (730)
+#define ONE_HOLD_B REL_HD_H(ONE_HOLD_H)
+
+//Indicator
+#define INDICATOR_HEIGHT 50
+#define INDICATOR_B (INDICATOR_HEIGHT / ONE_HOLD_H)
+
+//Caller info layout
+#define CALLER_INF_LAYOUT_OFFSET 10
+#define CALLER_INF_LAYOUT_B_OFFSET 62
+#define CALLER_INF_LAYOUT_H 248
+#define CALLER_INF_LAYOUT_W 700
+
+//Hold info
+#define HOLD_LAYOUT_L REL_HD_W(CALLER_INF_LAYOUT_OFFSET)
+#define HOLD_LAYOUT_T (INDICATOR_B + (CALLER_INF_LAYOUT_OFFSET / ONE_HOLD_H))
+#define HOLD_LAYOUT_R (1 - REL_HD_W(CALLER_INF_LAYOUT_OFFSET))
+#define HOLD_LAYOUT_B (HOLD_LAYOUT_T + (CALLER_INF_LAYOUT_H / ONE_HOLD_H))
+
+//Caller info
+#define CALLER_INF_L_OFFSET 22
+#define CALLER_INF_T_OFFSET 10
+#define CALLER_INF_R_OFFSET 22
+#define CALLER_INF_B_OFFSET 30
+#define CALLER_INF_ID_T_OFFSET 16
+#define CALLER_INF_TEXT_L_OFFSET 32
+#define CALLER_INF_SUBTEXT_T_OFFSET 6
+
+#define CALLER_INF_STATUS_H 54
+#define CALLER_INF_ID_SIZE 138
+#define CALLER_INF_MAIN_TEXT_H 76
+
+#define CALLER_INF_L (CALLER_INF_L_OFFSET / CALLER_INF_LAYOUT_W)
+
+#define CALLER_INF_STATUS_T (CALLER_INF_T_OFFSET / CALLER_INF_LAYOUT_H)
+#define CALLER_INF_STATUS_R ((CALLER_INF_L_OFFSET + CALLER_INF_ID_SIZE + CALLER_INF_TEXT_L_OFFSET) / CALLER_INF_LAYOUT_W)
+#define CALLER_INF_STATUS_B ((CALLER_INF_T_OFFSET + CALLER_INF_STATUS_H) / CALLER_INF_LAYOUT_H)
+
+#define CALLER_INF_ID_T ((CALLER_INF_T_OFFSET + CALLER_INF_STATUS_H + CALLER_INF_ID_T_OFFSET) / CALLER_INF_LAYOUT_H)
+#define CALLER_INF_ID_R ((CALLER_INF_L_OFFSET + CALLER_INF_ID_SIZE) / CALLER_INF_LAYOUT_W)
+#define CALLER_INF_ID_B ((CALLER_INF_T_OFFSET + CALLER_INF_STATUS_H + CALLER_INF_ID_SIZE) / CALLER_INF_LAYOUT_H)
+
+#define CALLER_INF_TEXT_L ((CALLER_INF_L + CALLER_INF_ID_SIZE + CALLER_INF_TEXT_L_OFFSET) / CALLER_INF_LAYOUT_W)
+#define CALLER_INF_SUBTEXT_T ((CALLER_INF_T_OFFSET + CALLER_INF_STATUS_H + CALLER_INF_ID_T_OFFSET + CALLER_INF_MAIN_TEXT_H + CALLER_INF_SUBTEXT_T_OFFSET) / CALLER_INF_LAYOUT_H)
+
+//Merge and swap buttons
+#define MERGE_SWAP_BTN_W 350
+#define MERGE_SWAP_BTN_H 122
+
+#define MERGE_SWAP_BTN_T HOLD_LAYOUT_B
+#define MERGE_SWAP_BTN_B (MERGE_SWAP_BTN_T + (MERGE_SWAP_BTN_H / ONE_HOLD_H))
+
+#define MERGE_BTN_L REL_HD_W(CALLER_INF_LAYOUT_OFFSET)
+#define MERGE_BTN_R REL_HD_W(CALLER_INF_LAYOUT_OFFSET + MERGE_SWAP_BTN_W)
+
+#define SWAP_BTN_L REL_HD_W(CALLER_INF_LAYOUT_OFFSET + MERGE_SWAP_BTN_W)
+#define SWAP_BTN_R (1- REL_HD_W(CALLER_INF_LAYOUT_OFFSET))
+
+//Merge and swap buttons content
+#define MS_BTN_ICON_T_OFFSET 10
+
+#define MS_BTN_ICON_W 54
+#define MS_BTN_ICON_H 48
+
+#define MS_BTN_ICON_L (((MERGE_SWAP_BTN_W / 2) - (MS_BTN_ICON_W / 2)) / MERGE_SWAP_BTN_W)
+#define MS_BTN_ICON_T (MS_BTN_ICON_T_OFFSET / MERGE_SWAP_BTN_H)
+#define MS_BTN_ICON_R (((MERGE_SWAP_BTN_W / 2) + (MS_BTN_ICON_W / 2)) / MERGE_SWAP_BTN_W)
+#define MS_BTN_ICON_B ((MS_BTN_ICON_T_OFFSET + MS_BTN_ICON_H) / MERGE_SWAP_BTN_H)
+
+#define MS_BTN_TEXT_B ((MERGE_SWAP_BTN_H - MS_BTN_ICON_T_OFFSET) / MERGE_SWAP_BTN_H)
+
+//Active Info
+#define ACTIVE_INFO_LAYOUT_T_OFFSET 8
+
+#define ACTIVE_INFO_L REL_HD_W(CALLER_INF_LAYOUT_OFFSET)
+#define ACTIVE_INFO_T (MERGE_SWAP_BTN_B + (ACTIVE_INFO_LAYOUT_T_OFFSET / ONE_HOLD_H))
+#define ACTIVE_INFO_R (1 - REL_HD_W(CALLER_INF_LAYOUT_OFFSET))
+#define ACTIVE_INFO_B (ACTIVE_INFO_T + (CALLER_INF_LAYOUT_H / ONE_HOLD_H))
+
+//Arrow
+#define ARROW_R_OFFSET 12
+#define ARROW_B_OFFSET 68
+
+#define ARROW_SIZE 50
+
+#define ARROW_L (1 - ((ARROW_SIZE + ARROW_R_OFFSET) / CALLER_INF_LAYOUT_W))
+#define ARROW_T (1 - ((ARROW_SIZE + ARROW_B_OFFSET) / CALLER_INF_LAYOUT_H))
+#define ARROW_R (1 - (ARROW_R_OFFSET / CALLER_INF_LAYOUT_W))
+#define ARROW_B (1 - (ARROW_B_OFFSET / CALLER_INF_LAYOUT_H))
+
+//Six button
+#define SIX_BUTTON_LAYOUT_H 376
+
+#define SIX_BUTTON_LAYOUT_T (ONE_HOLD_B)
+#define SIX_BUTTON_LAYOUT_B (SIX_BUTTON_LAYOUT_T + REL_HD_H(SIX_BUTTON_LAYOUT_H))
+
+//Action panel
+#define ACTION_PANEL_H 152
+
+//End button
+#define END_BUTTON_SIZE 104
+#define END_BUTTON_X_OFFSET 308
+#define END_BUTTON_Y_OFFSET ((ACTION_PANEL_H - END_BUTTON_SIZE) / 2)
+
+#define END_BUTTON_L REL_HD_W(END_BUTTON_X_OFFSET)
+#define END_BUTTON_T (END_BUTTON_Y_OFFSET / ACTION_PANEL_H)
+#define END_BUTTON_R (1 - REL_HD_W(END_BUTTON_X_OFFSET))
+#define END_BUTTON_B (1 - (END_BUTTON_Y_OFFSET / ACTION_PANEL_H))
+
+#endif //_CALLUI_CALLER_INFO_METRIC_H_
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __CALLUI_ONECALL_CIRCLE_VIEW_H_
+#define __CALLUI_ONECALL_CIRCLE_VIEW_H_
+
+#include "callui.h"
+
+void _callui_view_circle_accept_reject_reset(void *data);
+Evas_Object *_callui_view_circle_create_reject_layout(callui_app_data_t *ad, void *data);
+Evas_Object *_callui_view_circle_create_accept_layout(callui_app_data_t *ad, void *data);
+Eina_Bool _callui_view_circle_easy_touch_state(void);
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __CALLUI_DIALING_VIEW_H_
+#define __CALLUI_DIALING_VIEW_H_
+
+#include "callui.h"
+#include "callui-view-manager.h"
+
+typedef struct callui_view_dialing_priv callui_view_dialing_priv_t;
+
+call_view_data_t *_callui_dialing_view_dialing_new(callui_app_data_t *ad);
+
+#endif //__CALLUI_DIALING_VIEW_H_
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 _CALLUI_VIEW_ELEMENTS_DEFINES_H_
+#define _CALLUI_VIEW_ELEMENTS_DEFINES_H_
+
+//groups
+#define GROUP_THUMBNAIL_98 "thumbnail_98"
+#define GROUP_THUMBNAIL_186 "thumbnail_186"
+
+#define GROUP_DEFAULT_THUMBNAIL_98 "default_thumbnail_98"
+#define GROUP_DEFAULT_THUMBNAIL_186 "default_thumbnail_186"
+#define GROUP_DEFAULT_CONFERENCE_THUMBNAIL_186 "default_conference_thumbnail_186"
+
+//parts
+#define PART_SWALLOW_IMAGE "swallow.image"
+
+#define GROUP_CALL_BTN_IC_SPLIT "call_btn_ic_split"
+#define GROUP_CALL_BTN_IC_END "call_btn_ic_end"
+
+#define CALL_BTN_IC_BG_SIZE 98
+#define CALL_BTN_IC_SIZE 64
+
+#endif //_CALLUI_VIEW_ELEMENTS_DEFINES_H_
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __CALLUI_VIEW_ELEMENTS_H_
+#define __CALLUI_VIEW_ELEMENTS_H_
+
+#include <Elementary.h>
+#include "callui.h"
+#include "callui-view-elements-defines.h"
+
+#define CALLUI_END_TYPE_KEY "END_TYPE"
+#define CALLUI_END_TYPE_SINGLE_CALL_END "SINGLE_CALL_END"
+#define CALLUI_END_TYPE_CONF_CALL_END "CONF_CALL_END"
+
+typedef enum {
+ THUMBNAIL_98,
+ THUMBNAIL_186,
+ CONFERENCE_THUMBNAIL_186
+} thumbnail_type;
+
+Evas_Object *_callui_load_edj(Evas_Object *parent, const char *file, const char *group);
+Evas_Object *_callui_edje_object_part_get(Evas_Object *parent, const char *part);
+Evas_Object *_callui_create_top_first_button(callui_app_data_t *ad);
+Evas_Object *_callui_create_top_first_button_disabled(callui_app_data_t *ad);
+Evas_Object *_callui_create_top_second_button(callui_app_data_t *ad);
+Evas_Object *_callui_create_top_second_button_disabled(callui_app_data_t *ad);
+Evas_Object *_callui_create_top_third_button(callui_app_data_t *ad);
+Evas_Object *_callui_create_top_third_button_disabled(callui_app_data_t *ad);
+Evas_Object *_callui_create_bottom_first_button(callui_app_data_t *ad);
+Evas_Object *_callui_create_bottom_first_button_disabled(callui_app_data_t *ad);
+Evas_Object *_callui_create_bottom_second_button(callui_app_data_t *ad);
+Evas_Object *_callui_create_bottom_second_button_disabled(callui_app_data_t *ad);
+Evas_Object *_callui_create_bottom_third_button(callui_app_data_t *ad);
+Evas_Object *_callui_create_bottom_third_button_disabled(callui_app_data_t *ad);
+
+Evas_Object *_callui_create_end_call_button(Evas_Object *parent, void *data);
+void _callui_destroy_end_call_button(Evas_Object *parent);
+Evas_Object *_callui_create_voicecall_button_disabled(void *data);
+Evas_Object *_callui_create_message_button_disabled(void *data);
+Evas_Object *_callui_create_view_contact_button(void *data, int ct_id);
+Evas_Object *_callui_create_create_contacts_button(void *data, char *number);
+Evas_Object *_callui_create_update_existing_contact_button(void *data, char *number);
+Evas_Object *_callui_create_voicecall_button(void *data, char *number);
+Evas_Object *_callui_create_message_button(void *data, char *number);
+Evas_Object *_callui_create_thumbnail(Evas_Object *parent, const char *path, thumbnail_type type);
+Evas_Object *_callui_create_thumbnail_with_size(Evas_Object *parent, const char *path, thumbnail_type type, bool set_size);
+void _callui_show_caller_info_name(void *data, const char *name, Eina_Bool bhold);
+void _callui_show_caller_info_number(void *data, const char *number, Eina_Bool bhold);
+Evas_Object *_callui_show_caller_info_status(void *data, const char *status, Eina_Bool bhold);
+Evas_Object *_callui_show_caller_id(Evas_Object *contents, char *path, bool is_ending_view);
+Evas_Object *_callui_view_create_focus_layout(Evas_Object *parent);
+void _callui_load_more_option(void *data);
+int _callui_set_object_data(Evas_Object *obj, char *key, void *value);
+void *_callui_get_object_data(Evas_Object *obj, char *key);
+void _callui_load_second_call_popup(callui_app_data_t *ad);
+void _callui_load_bluetooth_popup(callui_app_data_t *ad);
+void _callui_create_extravolume_notify_popup(void);
+void _callui_create_toast_message(char *string);
+void _callui_mute_btn_cb(void *data, Evas_Object *obj, void *event_info);
+void _callui_update_speaker_btn(callui_app_data_t *ad, Eina_Bool is_on);
+void _callui_update_headset_btn(callui_app_data_t *ad, Eina_Bool is_on);
+void _callui_update_mute_btn(callui_app_data_t *ad, Eina_Bool is_on);
+void _callui_update_extra_vol_btn(callui_app_data_t *ad, Eina_Bool is_on);
+#endif //__CALLUI_VIEW_ELEMENTS_H_
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __CALLUI_VIEW_INCOMING_CALL_H_
+#define __CALLUI_VIEW_INCOMING_CALL_H_
+
+#include "callui-view-manager.h"
+#include "callui.h"
+
+/**
+ * @brief Draw screen for incoming call
+ * @param[in] ad Call ui app data
+ * @param[in] vd Call view data
+ */
+void _callui_view_incoming_call_draw_screen(callui_app_data_t *ad, call_view_data_t *vd);
+
+/**
+ * @brief Create layout for incoming call
+ * @param[in] vd Call view data
+ * @param[in] appdata app data
+ */
+int _callui_view_incoming_call_oncreate(call_view_data_t *view_data, void *appdata);
+
+/**
+ * @brief On destroy
+ * @param[in] data app data
+ */
+void _callui_view_incoming_call_ondestroy(void *data);
+
+#endif /* __CALLUI_VIEW_INCOMING_CALL_H_ */
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __CALLUI_INCOMINGLOCK_VIEW_H_
+#define __CALLUI_INCOMINGLOCK_VIEW_H_
+
+#include "callui-view-manager.h"
+#include "callui.h"
+
+call_view_data_t *_callui_view_incoming_lock_new(callui_app_data_t *ad);
+void _callui_view_incoming_lock_set_accept_layout(call_view_data_t *vd, Evas_Object *layout);
+Evas_Object *_callui_view_incoming_lock_get_accept_layout(call_view_data_t *vd);
+Evas_Object *_callui_view_incoming_lock_get_reject_layout(call_view_data_t *vd);
+void _callui_view_incoming_lock_set_reject_layout(call_view_data_t *vd, Evas_Object *layout);
+
+/**
+ * @brief Create call setting handler
+ * @param[in] data app data
+ */
+void _callui_view_incoming_lock_reject_msg_create_call_setting_handle(void *data);
+
+/**
+ * @brief Send reject message
+ * @param[in] data app data
+ * @param[in] call_data call data
+ */
+void _callui_view_incoming_lock_view_send_reject_msg(void *data, call_data_t *call_data);
+
+/**
+ * @brief Create item class
+ * @return Elm_Genlist_Item_Class
+ */
+Elm_Genlist_Item_Class * _callui_view_incoming_lock_create_item_class();
+
+/**
+ * @brief Create reject message button
+ * @param[in] parent Parent object
+ * @param[in] part part to set button
+ * @param[in] data data
+ */
+void _callui_view_incoming_lock_create_reject_msg_button(Evas_Object *parent, char *part, void *data);
+
+/**
+ * @brief Append item to genlist
+ * @param[in] msg_glist Message genlist
+ * @param[in] itc_reject_msg Elm_Genlist_Item_Class
+ * @param[in] index item index
+ * @return item
+ */
+Elm_Object_Item *_callui_view_incoming_lock_append_genlist_item(Evas_Object *msg_glist, Elm_Genlist_Item_Class * itc_reject_msg, int index);
+
+#define CALLUI_REJECT_MSG_LENGTH_MAX (210+1)
+typedef struct {
+ Evas_Object *contents;
+ Evas_Object *caller_info;
+ Evas_Object *dimming_ly;
+
+ Evas_Object *lock_accept;
+ Evas_Object *lock_reject;
+
+ Evas_Object *ic;
+ Evas_Object *lock_reject_with_msg;
+ Evas_Object *reject_msg_gl;
+ Evas_Object *msg_glist;
+
+ int reject_with_msg_start_y;
+ int reject_with_msg_cur_y;
+
+ int msg_list_height;
+
+ gboolean bmouse_down_pressed;
+
+ void *dl_handle;
+
+ Elm_Genlist_Item_Class *itc_reject_msg;
+ Evas_Coord y_momentum;
+ char *(*msg_func_ptr) ();
+ char reject_msg[CALLUI_REJECT_MSG_LENGTH_MAX];
+
+} incoming_lock_view_priv_t;
+
+#endif //__CALLUI_INCOMINGLOCK_VIEW_H_
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 _CALLUI_VIEW_LAYOUT_HD_H_
+#define _CALLUI_VIEW_LAYOUT_HD_H_
+
+#define TOTAL_W 720
+#define TOTAL_H 1280
+
+#define REL_HD_W(x) ((x)/TOTAL_W)
+#define REL_HD_H(y) ((y)/TOTAL_H)
+
+#define INDICATOR_H 58
+
+#define KEYPAD_H 528
+#define KEYPAD_AREA_H (TOTAL_H - ENDCALL_BTN_BG_H)
+#define KEYPAD_ARROW_BTN_BG_H 67
+#define KEYPAD_BTN_ICON_W 108
+#define KEYPAD_BTN_NUMBER_H 71
+#define KEYPAD_BTN_LETTERS_H 36
+#define KEYPAD_DIVIDER_SIZE 2
+#define KEYPAD_EACH_BTN_W 239
+#define KEYPAD_EACH_BTN_H 130
+
+#define ENDCALL_BTN_BG_H 108*1280/800
+
+#define KEYPAD_BTN_OFFSET_X 65
+#define KEYPAD_BTN_OFFSET_Y 12
+
+//Manage button
+#define MANAGE_BTN_SIZE 50
+#define MANAGE_BTN_R_OFFSET 22
+#define MANAGE_BTN_B_OFFSET 160
+
+#define MANAGE_BTN_L (1 - REL_HD_W(MANAGE_BTN_SIZE + MANAGE_BTN_R_OFFSET))
+#define MANAGE_BTN_T (1 - REL_HD_H(MANAGE_BTN_SIZE + MANAGE_BTN_B_OFFSET))
+#define MANAGE_BTN_R (1 - REL_HD_W(MANAGE_BTN_R_OFFSET))
+#define MANAGE_BTN_B (1 - REL_HD_H(MANAGE_BTN_B_OFFSET))
+
+//Back button
+#define BACK_BTN_SIZE 496
+
+#define BACK_BTN_L ((1 - REL_HD_W(BACK_BTN_SIZE))/2)
+#define BACK_BTN_R (1 - BACK_BTN_L)
+
+#include "callui-view-caller-info-metric.h"
+
+#endif /* _CALLUI_VIEW_LAYOUT_HD_H_ */
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 _CALLUI_VIEW_LAYOUT_WVGA_H_
+#define _CALLUI_VIEW_LAYOUT_WVGA_H_
+
+#define COLOR_DEFAULT 0 0 0 255
+#define COLOR_BG_ALPHA 0 0 0 0
+#define COLOR_BG_FOR_HELD_CALL_DIM 0 0 0 150
+
+#define VC_FONT_BOLD "Tizen:style=Bold"
+#define VC_FONT_MEDIUM "Tizen:style=Medium"
+#define VC_FONT_ROMAN "Tizen:style=Roman"
+#define VC_FONT_LIGHT "Tizen:style=Light"
+#define VC_FONT_REGULAR "Tizen:style=Regular"
+
+#define VC_TEXT_CLASS_BOLD "tizen"
+#define VC_TEXT_CLASS_MEDIUM "tizen"
+#define VC_TEXT_CLASS_ROMAN "tizen"
+#define VC_TEXT_CLASS_LIGHT "tizen"
+#define VC_TEXT_CLASS_REGULAR "tizen"
+
+/*
+ * NBEAT-HD GUI Widget Dimensions
+ * In Portrait mode
+ */
+#define MAIN_SCREEN_W 480
+#define MAIN_SCREEN_H 800
+#define MAIN_SCREEN_BIG_H 1280
+#define MAIN_SCREEN_BIG_W 720
+#define INDICATOR_HEIGHT 36
+
+#define MAIN_LAYOUT_W MAIN_SCREEN_W
+#define MAIN_LAYOUT_H MAIN_SCREEN_H
+
+#define QP_WIN_W MAIN_SCREEN_W
+#define QP_WIN_H 208
+
+/* Need to be checked */
+#define CALLER_INFO_NAME_DEFAULT_FONT_SIZE 12
+#define CALLER_INFO_NAME_MIN_FONT_SIZE 12
+#define CALLER_INFO_NAME_MAX_FONT_SIZE 15
+
+#define NORMAL_HOLD_FONT_SIZE 36
+#define DISABLED_HOLD_FONT_SIZE NORMAL_HOLD_FONT_SIZE
+#define NORMAL_UNHOLD_FONT_SIZE NORMAL_HOLD_FONT_SIZE
+#define DISABLED_UNHOLD_FONT_SIZE NORMAL_HOLD_FONT_SIZE
+#define NORMAL_SWAP_FONT_SIZE NORMAL_HOLD_FONT_SIZE
+#define DISABLED_SWAP_FONT_SIZE NORMAL_HOLD_FONT_SIZE
+/***************************/
+
+#define CALLER_INFO_L_PAD 0
+#define CALLER_INFO_WIDTH MAIN_SCREEN_W
+#define CALLER_INFO_T_PAD 0
+#define CALLER_INFO_HEIGHT (398+INDICATOR_HEIGHT)
+
+#define CALLER_INFO_MAIN_WIDTH 450
+
+#define CALLER_INFO_STATUS_L_PAD 15
+#define CALLER_INFO_STATUS_T_PAD (INDICATOR_HEIGHT+24)
+#define CALLER_INFO_STATUS_WIDTH CALLER_INFO_MAIN_WIDTH
+#define CALLER_INFO_STATUS_HEIGHT 30
+
+#define CALL_STATUS_MAX_TEXT_WIDTH 290
+#define TXT_TIMER_MAX_TEXT_WIDTH 100
+
+#define VC_CALLER_ID_LAYOUT_L_PAD CALLER_INFO_STATUS_L_PAD
+#define VC_CALLER_ID_LAYOUT_WIDTH CALLER_INFO_MAIN_WIDTH
+#define VC_CALLER_ID_LAYOUT_T_PAD (CALLER_INFO_STATUS_T_PAD+CALLER_INFO_STATUS_HEIGHT+24)
+#define VC_CALLER_ID_LAYOUT_HEIGHT 186
+#define VC_CALLER_ID_WIDTH 186
+#define VC_CALLER_ID_HEIGHT 186
+
+#define CALLER_INFO_NAME_L_PAD CALLER_INFO_STATUS_L_PAD
+#define CALLER_INFO_NAME_WIDTH CALLER_INFO_MAIN_WIDTH
+#define CALLER_INFO_NAME_T_PAD (VC_CALLER_ID_LAYOUT_T_PAD+VC_CALLER_ID_LAYOUT_HEIGHT+10)
+#define CALLER_INFO_NAME_HEIGHT 57
+#define CALLER_INFO_EMERGENCY_HEIGHT 86
+
+#define CALLER_INFO_NAME_1LINE_T_PAD (VC_CALLER_ID_LAYOUT_T_PAD+VC_CALLER_ID_LAYOUT_HEIGHT+9)
+#define CALLER_INFO_NAME_1LINE_HEIGHT 100
+
+#define CALLER_INFO_NUMBER_L_PAD CALLER_INFO_NAME_L_PAD
+#define CALLER_INFO_NUMBER_WIDTH CALLER_INFO_MAIN_WIDTH
+#define CALLER_INFO_NUMBER_T_PAD (CALLER_INFO_NAME_T_PAD+CALLER_INFO_NAME_HEIGHT+8)
+#define CALLER_INFO_NUMBER_HEIGHT 36
+
+#define CALLER_INFO_CARRIER_L_PAD CALLER_INFO_STATUS_L_PAD
+#define CALLER_INFO_CARRIER_WIDTH 76
+#define CALLER_INFO_CARRIER_T_PAD (INDICATOR_HEIGHT+66)
+#define CALLER_INFO_CARRIER_HEIGHT 28
+
+
+#define CALLER_INFO_MIN_WIDTH 50
+
+#define ENDCALL_BTN_BG_WIDTH MAIN_SCREEN_W
+#define ENDCALL_BTN_BG_HEIGHT 106
+#define ENDCALL_BTN_BG_L_PAD 0
+#define ENDCALL_BTN_BG_T_PAD MAIN_LAYOUT_H-ENDCALL_BTN_BG_HEIGHT
+
+#define STYLE_ICN_T_PAD 21
+#define STYLE_ICN_B 67
+#define STYLE_TXT_T_PAD 79
+#define STYLE_TXT_B 109
+#define STYLE_TXT_L_PAD 10
+#define STYLE_TXT_R 150
+#define STYLE_TXT_WIDTH 140
+#define STYLE_TXT_HEIGHT 30
+#define STYLE_ONOFF_BAR_T_PAD 114
+#define STYLE_ONOFF_BAR_B 120
+#define STYLE_ONOFF_BAR_L_PAD 13
+#define STYLE_ONOFF_BAR_R 147
+
+
+
+#ifdef _VC_ANSWERING_MEMO
+#define VC_ANSWERING_INFO_L_PAD 0
+#define VC_ANSWERING_INFO_WIDTH MAIN_SCREEN_W
+#define VC_ANSWERING_INFO_T_PAD 630
+#define VC_ANSWERING_INFO_HEIGHT 50
+#endif /* _VC_ANSWERING_MEMO */
+
+#define MTLOCK_CALL_ICON_W 94
+#define MTLOCK_CALL_ICON_H 94
+
+#define MTLOCK_ACCEPT_OUTER_CIRCLE_BG_L_PAD (-102)
+#define MTLOCK_ACCEPT_OUTER_CIRCLE_BG_WIDTH 376
+#define MTLOCK_ACCEPT_OUTER_CIRCLE_BG_T_PAD (CALLER_INFO_HEIGHT-30)
+#define MTLOCK_ACCEPT_OUTER_CIRCLE_BG_HEIGHT 376
+
+#define MTLOCK_ACCEPT_INNER_CIRCLE_L_PAD 32
+#define MTLOCK_ACCEPT_INNER_CIRCLE_WIDTH 109
+#define MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD (INDICATOR_HEIGHT+502)
+#define MTLOCK_ACCEPT_INNER_CIRCLE_HEIGHT 109
+
+#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_L_PAD 32
+#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_WIDTH 273
+#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_T_PAD MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD
+#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_HEIGHT 109
+
+#define MTLOCK_ACCEPT_CIRCLE_ARROW_GAP 4
+
+#define MTLOCK_ACCEPT_CIRCLE_ARROW2_L_PAD MTLOCK_ACCEPT_INNER_CIRCLE_L_PAD+MTLOCK_ACCEPT_INNER_CIRCLE_WIDTH
+#define MTLOCK_ACCEPT_CIRCLE_ARROW2_WIDTH 8
+#define MTLOCK_ACCEPT_CIRCLE_ARROW2_T_PAD MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD+28
+#define MTLOCK_ACCEPT_CIRCLE_ARROW2_HEIGHT 44
+
+#define MTLOCK_ACCEPT_CIRCLE_ARROW1_L_PAD MTLOCK_ACCEPT_CIRCLE_ARROW2_L_PAD-MTLOCK_ACCEPT_CIRCLE_ARROW_GAP-MTLOCK_ACCEPT_CIRCLE_ARROW1_WIDTH
+#define MTLOCK_ACCEPT_CIRCLE_ARROW1_WIDTH MTLOCK_ACCEPT_CIRCLE_ARROW2_WIDTH
+#define MTLOCK_ACCEPT_CIRCLE_ARROW1_T_PAD MTLOCK_ACCEPT_CIRCLE_ARROW2_T_PAD
+#define MTLOCK_ACCEPT_CIRCLE_ARROW1_HEIGHT MTLOCK_ACCEPT_CIRCLE_ARROW2_HEIGHT
+
+#define MTLOCK_ACCEPT_ARROW1_L_PAD 160
+#define MTLOCK_ACCEPT_ARROW1_WIDTH 12
+#define MTLOCK_ACCEPT_ARROW1_T_PAD (MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD+33)
+#define MTLOCK_ACCEPT_ARROW1_HEIGHT 19
+
+#define MTLOCK_ACCEPT_ARROW2_L_PAD (MTLOCK_ACCEPT_ARROW1_L_PAD+MTLOCK_ACCEPT_ARROW1_WIDTH+17)
+#define MTLOCK_ACCEPT_ARROW2_WIDTH MTLOCK_ACCEPT_ARROW1_WIDTH
+#define MTLOCK_ACCEPT_ARROW2_T_PAD MTLOCK_ACCEPT_ARROW1_T_PAD
+#define MTLOCK_ACCEPT_ARROW2_HEIGHT MTLOCK_ACCEPT_ARROW1_HEIGHT
+
+#define MTLOCK_ACCEPT_ARROW3_L_PAD (MTLOCK_ACCEPT_ARROW2_L_PAD+MTLOCK_ACCEPT_ARROW2_WIDTH+17)
+#define MTLOCK_ACCEPT_ARROW3_WIDTH MTLOCK_ACCEPT_ARROW1_WIDTH
+#define MTLOCK_ACCEPT_ARROW3_T_PAD MTLOCK_ACCEPT_ARROW1_T_PAD
+#define MTLOCK_ACCEPT_ARROW3_HEIGHT MTLOCK_ACCEPT_ARROW1_HEIGHT
+
+#define MTLOCK_ACCEPT_ARROW4_L_PAD (MTLOCK_ACCEPT_ARROW3_L_PAD+MTLOCK_ACCEPT_ARROW3_WIDTH+17)
+#define MTLOCK_ACCEPT_ARROW4_WIDTH MTLOCK_ACCEPT_ARROW1_WIDTH
+#define MTLOCK_ACCEPT_ARROW4_T_PAD MTLOCK_ACCEPT_ARROW1_T_PAD
+#define MTLOCK_ACCEPT_ARROW4_HEIGHT MTLOCK_ACCEPT_ARROW1_HEIGHT
+
+#define MTLOCK_REJECT_OUTER_CIRCLE_BG_L_PAD 206
+#define MTLOCK_REJECT_OUTER_CIRCLE_BG_WIDTH MTLOCK_ACCEPT_OUTER_CIRCLE_BG_WIDTH
+#define MTLOCK_REJECT_OUTER_CIRCLE_BG_T_PAD MTLOCK_ACCEPT_OUTER_CIRCLE_BG_T_PAD
+#define MTLOCK_REJECT_OUTER_CIRCLE_BG_HEIGHT MTLOCK_ACCEPT_OUTER_CIRCLE_BG_HEIGHT
+
+#define MTLOCK_REJECT_INNER_CIRCLE_BG_L_PAD MAIN_SCREEN_W-MTLOCK_ACCEPT_INNER_CIRCLE_BG_L_PAD-MTLOCK_REJECT_INNER_CIRCLE_BG_WIDTH
+#define MTLOCK_REJECT_INNER_CIRCLE_BG_WIDTH MTLOCK_ACCEPT_INNER_CIRCLE_BG_WIDTH
+#define MTLOCK_REJECT_INNER_CIRCLE_BG_T_PAD MTLOCK_ACCEPT_INNER_CIRCLE_BG_T_PAD
+#define MTLOCK_REJECT_INNER_CIRCLE_BG_HEIGHT MTLOCK_ACCEPT_INNER_CIRCLE_BG_HEIGHT
+
+#define MTLOCK_REJECT_INNER_CIRCLE_L_PAD 339
+#define MTLOCK_REJECT_INNER_CIRCLE_WIDTH MTLOCK_ACCEPT_INNER_CIRCLE_WIDTH
+#define MTLOCK_REJECT_INNER_CIRCLE_T_PAD MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD
+#define MTLOCK_REJECT_INNER_CIRCLE_HEIGHT MTLOCK_ACCEPT_INNER_CIRCLE_HEIGHT
+
+#define MTLOCK_REJECT_CIRCLE_ARROW2_L_PAD MTLOCK_REJECT_INNER_CIRCLE_L_PAD+MTLOCK_ACCEPT_CIRCLE_ARROW_GAP
+#define MTLOCK_REJECT_CIRCLE_ARROW2_WIDTH MTLOCK_ACCEPT_CIRCLE_ARROW1_WIDTH
+#define MTLOCK_REJECT_CIRCLE_ARROW2_T_PAD MTLOCK_ACCEPT_CIRCLE_ARROW1_T_PAD
+#define MTLOCK_REJECT_CIRCLE_ARROW2_HEIGHT MTLOCK_ACCEPT_CIRCLE_ARROW1_HEIGHT
+
+#define MTLOCK_REJECT_CIRCLE_ARROW1_L_PAD MTLOCK_REJECT_CIRCLE_ARROW2_L_PAD-MTLOCK_ACCEPT_CIRCLE_ARROW_GAP-MTLOCK_REJECT_CIRCLE_ARROW1_WIDTH
+#define MTLOCK_REJECT_CIRCLE_ARROW1_WIDTH MTLOCK_REJECT_CIRCLE_ARROW2_WIDTH
+#define MTLOCK_REJECT_CIRCLE_ARROW1_T_PAD MTLOCK_REJECT_CIRCLE_ARROW2_T_PAD
+#define MTLOCK_REJECT_CIRCLE_ARROW1_HEIGHT MTLOCK_REJECT_CIRCLE_ARROW2_HEIGHT
+
+#define MTLOCK_REJECT_ARROW1_L_PAD (MTLOCK_REJECT_ARROW2_L_PAD-17-MTLOCK_REJECT_ARROW1_WIDTH)
+#define MTLOCK_REJECT_ARROW1_WIDTH MTLOCK_ACCEPT_ARROW1_WIDTH
+#define MTLOCK_REJECT_ARROW1_T_PAD (MTLOCK_REJECT_INNER_CIRCLE_T_PAD+68)
+#define MTLOCK_REJECT_ARROW1_HEIGHT MTLOCK_ACCEPT_ARROW1_HEIGHT
+
+#define MTLOCK_REJECT_ARROW2_L_PAD (MTLOCK_REJECT_ARROW3_L_PAD-17-MTLOCK_REJECT_ARROW2_WIDTH)
+#define MTLOCK_REJECT_ARROW2_WIDTH MTLOCK_REJECT_ARROW1_WIDTH
+#define MTLOCK_REJECT_ARROW2_T_PAD MTLOCK_REJECT_ARROW1_T_PAD
+#define MTLOCK_REJECT_ARROW2_HEIGHT MTLOCK_REJECT_ARROW1_HEIGHT
+
+#define MTLOCK_REJECT_ARROW3_L_PAD (MTLOCK_REJECT_ARROW4_L_PAD-17-MTLOCK_REJECT_ARROW3_WIDTH)
+#define MTLOCK_REJECT_ARROW3_WIDTH MTLOCK_REJECT_ARROW1_WIDTH
+#define MTLOCK_REJECT_ARROW3_T_PAD MTLOCK_REJECT_ARROW1_T_PAD
+#define MTLOCK_REJECT_ARROW3_HEIGHT MTLOCK_REJECT_ARROW1_HEIGHT
+
+#define MTLOCK_REJECT_ARROW4_WIDTH MTLOCK_REJECT_ARROW1_WIDTH
+#define MTLOCK_REJECT_ARROW4_HEIGHT MTLOCK_REJECT_ARROW1_HEIGHT
+#define MTLOCK_REJECT_ARROW4_L_PAD (MTLOCK_REJECT_INNER_CIRCLE_L_PAD-13-MTLOCK_REJECT_ARROW4_WIDTH)
+#define MTLOCK_REJECT_ARROW4_T_PAD MTLOCK_REJECT_ARROW1_T_PAD
+
+#define MTLOCK_REJECT_MSG_BG_L_PAD 0
+#define MTLOCK_REJECT_MSG_BG_WIDTH MAIN_SCREEN_W
+#define MTLOCK_REJECT_MSG_BG_HEIGHT 51
+#define MTLOCK_REJECT_MSG_BG_T_PAD (MAIN_SCREEN_H-MTLOCK_REJECT_MSG_BG_HEIGHT)
+
+#define MTLOCK_REJECT_MSG_ARW_L_PAD 225
+#define MTLOCK_REJECT_MSG_ARW_WIDTH 29
+#define MTLOCK_REJECT_MSG_ARW_HEIGHT 13
+#define MTLOCK_REJECT_MSG_ARW_T_PAD (MTLOCK_REJECT_MSG_BG_T_PAD-MTLOCK_REJECT_MSG_ARW_HEIGHT)
+
+#define MTLOCK_REJECT_MSG_DOWN_ARW_T_PAD MAIN_SCREEN_H
+
+#define MTLOCK_REJECT_MSG_TEXT_L_PAD 0
+#define MTLOCK_REJECT_MSG_TEXT_WIDTH MAIN_SCREEN_W
+#define MTLOCK_REJECT_MSG_TEXT_T_PAD MTLOCK_REJECT_MSG_BG_T_PAD
+#define MTLOCK_REJECT_MSG_TEXT_HEIGHT 51
+
+#define MTLOCK_REJECT_MSG_TOP_VISIBLE_AREA_W (MTLOCK_REJECT_MSG_TEXT_HEIGHT+MTLOCK_REJECT_MSG_ARW_HEIGHT)
+
+#define MTLOCK_ACTIVE_CALL_HEIGHT 360
+
+#define ITEM_SIZE_H 120
+
+#define REJ_MSG_LIST_W MAIN_SCREEN_W
+#define REJ_MSG_LIST_CREATE_MSG_BTN_H 150
+#define REJ_MSG_LIST_CREATE_MSG_BTN_L_PAD 15
+#define REJ_MSG_LIST_CREATE_MSG_BTN_R_PAD REJ_MSG_LIST_CREATE_MSG_BTN_L_PAD
+#define REJ_MSG_LIST_CREATE_MSG_BTN_T_PAD 17
+#define REJ_MSG_LIST_CREATE_MSG_BTN_B_PAD REJ_MSG_LIST_CREATE_MSG_BTN_T_PAD
+
+#define MTLOCK_REJECT_MSG_LIST_L_PAD 0
+#define MTLOCK_REJECT_MSG_LIST_WIDTH MAIN_SCREEN_W
+#define MTLOCK_REJECT_MSG_LIST_T_PAD (MAIN_SCREEN_H+MTLOCK_REJECT_MSG_ARW_HEIGHT)
+#define MTLOCK_REJECT_MSG_LIST_1ITEM_HEIGHT 86
+#define MTLOCK_REJECT_MSG_LIST_1ITEM_NEW_HEIGHT 120
+#define MTLOCK_REJECT_MSG_LIST_HEIGHT (MTLOCK_REJECT_MSG_LIST_1ITEM_NEW_HEIGHT*6)
+
+/*Need to be fixed as Phone GUI guide*/
+#define KEYPAD_ENTRY_TXT_L_PAD 15
+#define KEYPAD_ENTRY_TXT_WIDTH 450
+#define KEYPAD_ENTRY_TXT_T_PAD INDICATOR_HEIGHT
+#define KEYPAD_ENTRY_TXT_HEIGHT (246)
+/*****************************/
+
+#define KEYPAD_AREA_HEIGHT (MAIN_SCREEN_H-ENDCALL_BTN_BG_HEIGHT)
+#define KEYPAD_AREA_T_HIDE_PAD (MAIN_SCREEN_H-ENDCALL_BTN_BG_HEIGHT-KEYPAD_ENTRY_TXT_HEIGHT-INDICATOR_HEIGHT)
+
+#define RIGHT_TXT_WIDTH 61
+
+#define MULTI_LIST_HEIGHT MAIN_LAYOUT_H
+
+#define SIX_BTN_LAYOUT_L_PAD 0
+#define SIX_BTN_LAYOUT_WIDTH MAIN_SCREEN_W
+#define SIX_BTN_LAYOUT_T_PAD (399+INDICATOR_HEIGHT)
+#define SIX_BTN_LAYOUT_HEIGHT 258
+
+#define BOTTOM_BTN_BG_L_PAD 0
+#define BOTTOM_BTN_BG_WIDTH MAIN_SCREEN_W
+#define BOTTOM_BTN_BG_T_PAD (CALLER_INFO_HEIGHT+SIX_BTN_LAYOUT_HEIGHT)
+#define BOTTOM_BTN_BG_HEIGHT ENDCALL_BTN_BG_HEIGHT
+
+#define BTN_LAYOUT_SINGLE_BTN_WIDTH 160
+#define BTN_LAYOUT_SINGLE_BTN_HEIGHT 129
+#define BTN_LAYOUT_GAP 0
+
+#define BTN_LAYOUT_TOP_FIRST_BTN_L_PAD 0
+#define BTN_LAYOUT_TOP_SECOND_BTN_L_PAD (BTN_LAYOUT_TOP_FIRST_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+BTN_LAYOUT_GAP)
+#define BTN_LAYOUT_TOP_THIRD_BTN_L_PAD (BTN_LAYOUT_TOP_SECOND_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+BTN_LAYOUT_GAP)
+
+#define BTN_LAYOUT_BOTTOM_FIRST_BTN_L_PAD 0
+#define BTN_LAYOUT_BOTTOM_SECOND_BTN_L_PAD (BTN_LAYOUT_BOTTOM_FIRST_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+BTN_LAYOUT_GAP)
+#define BTN_LAYOUT_BOTTOM_THIRD_BTN_L_PAD (BTN_LAYOUT_BOTTOM_SECOND_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+BTN_LAYOUT_GAP)
+
+#define BTN_LAYOUT_TOP_BTNS_T_PAD BTN_LAYOUT_GAP
+#define BTN_LAYOUT_BOTTOM_BTNS_T_PAD BTN_LAYOUT_TOP_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT+BTN_LAYOUT_GAP
+
+/*two-button*/
+#define ENDCALL_TWO_BTN_WIDTH MAIN_SCREEN_W
+#define ENDCALL_TWO_BTN_HEIGHT 130
+#define ENDCALL_TWO_BTN_L_PAD 0
+#define ENDCALL_TWO_BTN_T_PAD (MAIN_LAYOUT_H-BOTTOM_BTN_BG_HEIGHT-ENDCALL_TWO_BTN_HEIGHT)
+#define ENDCALL_TWO_BTN_R_PAD (ENDCALL_TWO_BTN_L_PAD+ENDCALL_TWO_BTN_WIDTH)
+#define ENDCALL_TWO_BTN_B_PAD (ENDCALL_TWO_BTN_T_PAD+ENDCALL_TWO_BTN_HEIGHT)
+
+#define ENDCALL_VOICE_BTN_L_PAD 15
+#define ENDCALL_BTN_MID_PAD 10
+#define ENDCALL_VIDEO_BTN_L_PAD (ENDCALL_VOICE_BTN_L_PAD+ENDCALL_BTN_WIDTH+ENDCALL_BTN_MID_PAD)
+#define ENDCALL_VOICE_BTN_WIDTH 298
+#define ENDCALL_BTN_WIDTH 142
+#define ENDCALL_3_BTN_MSG_BTN_L_PAD (ENDCALL_VOICE_BTN_L_PAD+ENDCALL_VOICE_BTN_WIDTH+ENDCALL_BTN_MID_PAD)
+
+#define ENDCALL_VIEW_CONTACT_BTN_L_PAD 0
+#define ENDCALL_VIEW_CONTACT_BTN_WIDTH MAIN_SCREEN_W
+#define ENDCALL_VIEW_CONTACT_BTN_T_PAD 0
+#define ENDCALL_VIEW_CONTACT_BTN_HEIGHT 130
+
+#define ENDCALL_CREATE_CONTACT_BTN_L_PAD 0
+#define ENDCALL_CREATE_CONTACT_BTN_WIDTH 240
+#define ENDCALL_CREATE_CONTACT_BTN_T_PAD 0
+#define ENDCALL_CREATE_CONTACT_BTN_HEIGHT 130
+
+#define ENDCALL_UPDATE_CONTACT_BTN_L_PAD ENDCALL_CREATE_CONTACT_BTN_WIDTH
+
+#define QP_TXT_AREA_L_PAD 15
+#define QP_TXT_AREA_WIDTH 450
+#define QP_TXT_AREA_T_PAD 14
+#define QP_TXT_AREA_HEIGHT 36
+
+#define QP_TITLE_WIDTH 290
+#define QP_TITLE_HEIGHT 36
+
+#define QP_TIME_WIDTH 160
+#define QP_TIME_HEIGHT QP_TITLE_HEIGHT
+
+#define QP_CALL_ICON_L_PAD 0
+#define QP_CALL_ICON_WIDTH 119
+#define QP_CALL_ICON_T_PAD 63
+#define QP_CALL_ICON_HEIGHT 77
+
+#define QP_CONTENT_ICON_T_PAD 13
+#define QP_CONTENT_ICON_HEIGHT 50
+
+#define QP_MUTE_BTN_L_PAD (QP_CALL_ICON_L_PAD+QP_CALL_ICON_WIDTH+1)
+#define QP_MUTE_BTN_WIDTH QP_CALL_ICON_WIDTH
+#define QP_MUTE_BTN_T_PAD QP_CALL_ICON_T_PAD
+#define QP_MUTE_BTN_HEIGHT QP_CALL_ICON_HEIGHT
+
+#define QP_SPEAKER_BTN_L_PAD (QP_MUTE_BTN_L_PAD+QP_MUTE_BTN_WIDTH+1)
+#define QP_SPEAKER_BTN_WIDTH QP_CALL_ICON_WIDTH
+#define QP_SPEAKER_BTN_T_PAD QP_CALL_ICON_T_PAD
+#define QP_SPEAKER_BTN_HEIGHT QP_CALL_ICON_HEIGHT
+
+#define QP_END_BTN_L_PAD (QP_SPEAKER_BTN_L_PAD+QP_SPEAKER_BTN_WIDTH+1)
+#define QP_END_BTN_WIDTH 120
+#define QP_END_BTN_T_PAD QP_CALL_ICON_T_PAD
+#define QP_END_BTN_HEIGHT QP_CALL_ICON_HEIGHT
+
+/*
+ * QUICK-PANEL layout
+ * In Portrait mode
+ */
+#define CALL_QUICKPANEL_TXT_AREA_L REL_QP_W(QP_TXT_AREA_L_PAD)
+#define CALL_QUICKPANEL_TXT_AREA_R REL_QP_W(QP_TXT_AREA_L_PAD+QP_TXT_AREA_WIDTH)
+#define CALL_QUICKPANEL_TXT_AREA_T REL_QP_H(QP_TXT_AREA_T_PAD)
+#define CALL_QUICKPANEL_TXT_AREA_B REL_QP_H(QP_TXT_AREA_T_PAD+QP_TXT_AREA_HEIGHT)
+
+#define CALL_QUICKPANEL_CALL_ICON_T REL_QP_H(QP_CALL_ICON_T_PAD)
+#define CALL_QUICKPANEL_CALL_ICON_B REL_QP_H(QP_CALL_ICON_T_PAD+QP_CALL_ICON_HEIGHT)
+
+#define CALL_QUICKPANEL_BTN_MUTE_T REL_QP_H(QP_MUTE_BTN_T_PAD)
+#define CALL_QUICKPANEL_BTN_MUTE_B REL_QP_H(QP_MUTE_BTN_T_PAD+QP_END_BTN_HEIGHT)
+
+#define CALL_QUICKPANEL_BTN_SPEAKER_T REL_QP_H(QP_SPEAKER_BTN_T_PAD)
+#define CALL_QUICKPANEL_BTN_SPEAKER_B REL_QP_H(QP_SPEAKER_BTN_T_PAD+QP_END_BTN_HEIGHT)
+
+#define CALL_QUICKPANEL_BTN_END_T REL_QP_H(QP_END_BTN_T_PAD)
+#define CALL_QUICKPANEL_BTN_END_B REL_QP_H(QP_END_BTN_T_PAD+QP_END_BTN_HEIGHT)
+
+#define CALL_QUICKPANEL_BTN_ICON_T REL_QP_BTN_H(QP_CONTENT_ICON_T_PAD)
+#define CALL_QUICKPANEL_BTN_ICON_B REL_QP_BTN_H(QP_CONTENT_ICON_T_PAD+QP_CONTENT_ICON_HEIGHT)
+/*
+ * End of QUICK-PANEL layout
+ */
+
+///////quickpanel////
+
+/* Volume Popup Layout */
+#define VOL_POPUP_PORTRAIT_H 102
+#define VOL_POPUP_PORTRAIT_W 480
+
+/*
+ * End of NBEAT-HD GUI Widget Dimensions
+ */
+
+
+/*
+ * Relative positions
+ * In Portrait mode
+ */
+/* Relative X & Y positions of widgets w.r.t. Full Screen */
+#define REL_W(x) ((x)/MAIN_SCREEN_W)
+#define REL_H(y) ((y)/MAIN_LAYOUT_H)
+
+/* Relative X & Y positions of widgets w.r.t. Quick-panel layout */
+#define REL_QP_W(x) ((x)/QP_WIN_W)
+#define REL_QP_H(y) ((y)/QP_WIN_H)
+
+/* Relative X & Y positions of widgets w.r.t. Quick-panel button layout */
+#define REL_QP_BTN_W(x) ((x)/QP_CALL_ICON_WIDTH)
+#define REL_QP_BTN_H(y) ((y)/QP_CALL_ICON_HEIGHT)
+
+/* Relative X & Y positions of buttons w.r.t. Six-Button layout - Portrait Mode */
+#define REL_BTN_LY_W(x) ((x)/SIX_BTN_LAYOUT_WIDTH)
+#define REL_BTN_LY_H(y) ((y)/SIX_BTN_LAYOUT_HEIGHT)
+
+/* Relative X & Y positions of buttons w.r.t. Three-Button layout of ENDCALL*/
+#define REL_THREE_BTN_LY_W(x) ((x)/THREE_BTN_LAYOUT_WIDTH)
+#define REL_THREE_BTN_LY_H(y) ((y)/THREE_BTN_LAYOUT_HEIGHT)
+
+/*Relative Y postions of elements w.r.t. Caller info layout*/
+#define REL_CALLER_INFO_H(y) ((y)/CALLER_INFO_HEIGHT)
+
+/*Relative Y postions of elements w.r.t. Multi list layout*/
+#define REL_MULTI_LIST_H(y) ((y)/MULTI_LIST_HEIGHT)
+
+#define REL_CONTACT_BTN_W(x) ((x)/MAIN_SCREEN_W)
+#define REL_CONTACT_BTN_H(y) ((y)/ENDCALL_CREATE_CONTACT_BTN_HEIGHT)
+
+#define REL_REJECT_MSG_W(x) ((x)/MAIN_SCREEN_W)
+#define REL_REJECT_MSG_H(y) ((y)/MAIN_SCREEN_H)
+
+#define REL_REJECT_MSG_SIZE_H(y) (1.0 + (y)/MAIN_SCREEN_BIG_H)
+
+
+/*
+ * End of Relative positions
+ */
+
+
+/*
+ * MO/Dialing view & MT/Incoming view
+ * In Portrait mode
+ */
+#define BUTTON_REJECT_SIZE_H 78
+#define BUTTON_OFFSET_B 22
+#define BUTTON_OFFSET_T 20
+#define IMAGE_CLOSE 18
+#define IMAGE_OFFSET 12
+#define VC_CALLER_ID_LAYOUT_L REL_W(147)
+#define VC_CALLER_ID_LAYOUT_R REL_W(147+186)
+#define VC_CALLER_ID_LAYOUT_T REL_CALLER_INFO_H(VC_CALLER_ID_LAYOUT_T_PAD)
+#define VC_CALLER_ID_LAYOUT_B REL_CALLER_INFO_H(VC_CALLER_ID_LAYOUT_T_PAD+VC_CALLER_ID_LAYOUT_HEIGHT)
+
+#define VC_CALLER_ID_EFFECT_L REL_W(140)
+#define VC_CALLER_ID_EFFECT_R REL_W(140+200)
+#define VC_CALLER_ID_EFFECT_T REL_CALLER_INFO_H(VC_CALLER_ID_LAYOUT_T_PAD-7)
+#define VC_CALLER_ID_EFFECT_B REL_CALLER_INFO_H(VC_CALLER_ID_LAYOUT_T_PAD+VC_CALLER_ID_LAYOUT_HEIGHT+7)
+
+#ifdef _VC_ANSWERING_MEMO
+#define VC_ANSWERING_INFO_L REL_W(VC_ANSWERING_INFO_L_PAD)
+#define VC_ANSWERING_INFO_R REL_W(VC_ANSWERING_INFO_L_PAD+VC_ANSWERING_INFO_WIDTH)
+#define VC_ANSWERING_INFO_T REL_H(VC_ANSWERING_INFO_T_PAD)
+#define VC_ANSWERING_INFO_B REL_H(VC_ANSWERING_INFO_T_PAD+VC_ANSWERING_INFO_HEIGHT)
+#endif /* _VC_ANSWERING_MEMO */
+
+/*
+ * End of MO/Dialing view & MT/Incoming view
+ */
+
+/*
+ * MT LOCK View - check
+ * In Portrait mode
+ */
+#define MTLOCK_ACCEPT_CIRCLE_RECT_WIDTH MAIN_SCREEN_W
+#define MTLOCK_ACCEPT_CIRCLE_RECT_HEIGHT 313
+
+#define MTLOCK_ACCEPT_INNER_CIRCLE_L REL_W(MTLOCK_ACCEPT_INNER_CIRCLE_L_PAD)
+#define MTLOCK_ACCEPT_INNER_CIRCLE_R REL_W(MTLOCK_ACCEPT_INNER_CIRCLE_L_PAD+MTLOCK_ACCEPT_INNER_CIRCLE_WIDTH)
+#define MTLOCK_ACCEPT_INNER_CIRCLE_T REL_H(MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD)
+#define MTLOCK_ACCEPT_INNER_CIRCLE_B REL_H(MTLOCK_ACCEPT_INNER_CIRCLE_T_PAD+MTLOCK_ACCEPT_INNER_CIRCLE_HEIGHT)
+
+#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_L REL_W(MTLOCK_ACCEPT_INNER_CIRCLE_BG_L_PAD)
+#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_R REL_W(MTLOCK_ACCEPT_INNER_CIRCLE_BG_L_PAD+MTLOCK_ACCEPT_INNER_CIRCLE_BG_WIDTH)
+#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_T REL_H(MTLOCK_ACCEPT_INNER_CIRCLE_BG_T_PAD)
+#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_B REL_H(MTLOCK_ACCEPT_INNER_CIRCLE_BG_T_PAD+MTLOCK_ACCEPT_INNER_CIRCLE_BG_HEIGHT)
+
+#define MTLOCK_ACCEPT_OUTER_CIRCLE_L REL_W(MTLOCK_ACCEPT_OUTER_CIRCLE_BG_L_PAD)
+#define MTLOCK_ACCEPT_OUTER_CIRCLE_R REL_W(MTLOCK_ACCEPT_OUTER_CIRCLE_BG_L_PAD+MTLOCK_ACCEPT_OUTER_CIRCLE_BG_WIDTH)
+#define MTLOCK_ACCEPT_OUTER_CIRCLE_T REL_H(MTLOCK_ACCEPT_OUTER_CIRCLE_BG_T_PAD)
+#define MTLOCK_ACCEPT_OUTER_CIRCLE_B REL_H(MTLOCK_ACCEPT_OUTER_CIRCLE_BG_T_PAD+MTLOCK_ACCEPT_OUTER_CIRCLE_BG_HEIGHT)
+#define MTLOCK_ACCEPT_OUTER_CIRCLE_CLIP_RECT_T REL_H(CALLER_INFO_HEIGHT)
+#define MTLOCK_ACCEPT_OUTER_CIRCLE_CLIP_RECT_B REL_H(MAIN_LAYOUT_H-MTLOCK_REJECT_MSG_BG_HEIGHT)
+
+
+#define MTLOCK_ACCEPT_CIRCLE_ARROW1_L REL_W(MTLOCK_ACCEPT_CIRCLE_ARROW1_L_PAD)
+#define MTLOCK_ACCEPT_CIRCLE_ARROW1_R REL_W(MTLOCK_ACCEPT_CIRCLE_ARROW1_L_PAD+MTLOCK_ACCEPT_CIRCLE_ARROW1_WIDTH)
+#define MTLOCK_ACCEPT_CIRCLE_ARROW1_T REL_H(MTLOCK_ACCEPT_CIRCLE_ARROW1_T_PAD)
+#define MTLOCK_ACCEPT_CIRCLE_ARROW1_B REL_H(MTLOCK_ACCEPT_CIRCLE_ARROW1_T_PAD+MTLOCK_ACCEPT_CIRCLE_ARROW1_HEIGHT)
+
+#define MTLOCK_ACCEPT_CIRCLE_ARROW2_L REL_W(MTLOCK_ACCEPT_CIRCLE_ARROW2_L_PAD)
+#define MTLOCK_ACCEPT_CIRCLE_ARROW2_R REL_W(MTLOCK_ACCEPT_CIRCLE_ARROW2_L_PAD+MTLOCK_ACCEPT_CIRCLE_ARROW2_WIDTH)
+#define MTLOCK_ACCEPT_CIRCLE_ARROW2_T REL_H(MTLOCK_ACCEPT_CIRCLE_ARROW2_T_PAD)
+#define MTLOCK_ACCEPT_CIRCLE_ARROW2_B REL_H(MTLOCK_ACCEPT_CIRCLE_ARROW2_T_PAD+MTLOCK_ACCEPT_CIRCLE_ARROW2_HEIGHT)
+
+
+
+#define MTLOCK_ACCEPT_ARROW1_L REL_W(MTLOCK_ACCEPT_ARROW1_L_PAD)
+#define MTLOCK_ACCEPT_ARROW1_R REL_W(MTLOCK_ACCEPT_ARROW1_L_PAD+MTLOCK_ACCEPT_ARROW1_WIDTH)
+#define MTLOCK_ACCEPT_ARROW1_T REL_H(MTLOCK_ACCEPT_ARROW1_T_PAD)
+#define MTLOCK_ACCEPT_ARROW1_B REL_H(MTLOCK_ACCEPT_ARROW1_T_PAD+MTLOCK_ACCEPT_ARROW1_HEIGHT)
+
+#define MTLOCK_ACCEPT_ARROW2_L REL_W(MTLOCK_ACCEPT_ARROW2_L_PAD)
+#define MTLOCK_ACCEPT_ARROW2_R REL_W(MTLOCK_ACCEPT_ARROW2_L_PAD+MTLOCK_ACCEPT_ARROW2_WIDTH)
+#define MTLOCK_ACCEPT_ARROW2_T REL_H(MTLOCK_ACCEPT_ARROW2_T_PAD)
+#define MTLOCK_ACCEPT_ARROW2_B REL_H(MTLOCK_ACCEPT_ARROW2_T_PAD+MTLOCK_ACCEPT_ARROW2_HEIGHT)
+
+#define MTLOCK_ACCEPT_ARROW3_L REL_W(MTLOCK_ACCEPT_ARROW3_L_PAD)
+#define MTLOCK_ACCEPT_ARROW3_R REL_W(MTLOCK_ACCEPT_ARROW3_L_PAD+MTLOCK_ACCEPT_ARROW3_WIDTH)
+#define MTLOCK_ACCEPT_ARROW3_T REL_H(MTLOCK_ACCEPT_ARROW3_T_PAD)
+#define MTLOCK_ACCEPT_ARROW3_B REL_H(MTLOCK_ACCEPT_ARROW3_T_PAD+MTLOCK_ACCEPT_ARROW3_HEIGHT)
+
+#define MTLOCK_ACCEPT_ARROW4_L REL_W(MTLOCK_ACCEPT_ARROW4_L_PAD)
+#define MTLOCK_ACCEPT_ARROW4_R REL_W(MTLOCK_ACCEPT_ARROW4_L_PAD+MTLOCK_ACCEPT_ARROW4_WIDTH)
+#define MTLOCK_ACCEPT_ARROW4_T REL_H(MTLOCK_ACCEPT_ARROW4_T_PAD)
+#define MTLOCK_ACCEPT_ARROW4_B REL_H(MTLOCK_ACCEPT_ARROW4_T_PAD+MTLOCK_ACCEPT_ARROW4_HEIGHT)
+
+#define MTLOCK_REJECT_INNER_CIRCLE_L REL_W(MTLOCK_REJECT_INNER_CIRCLE_L_PAD)
+#define MTLOCK_REJECT_INNER_CIRCLE_R REL_W(MTLOCK_REJECT_INNER_CIRCLE_L_PAD+MTLOCK_REJECT_INNER_CIRCLE_WIDTH)
+#define MTLOCK_REJECT_INNER_CIRCLE_T REL_H(MTLOCK_REJECT_INNER_CIRCLE_T_PAD)
+#define MTLOCK_REJECT_INNER_CIRCLE_B REL_H(MTLOCK_REJECT_INNER_CIRCLE_T_PAD+MTLOCK_REJECT_INNER_CIRCLE_HEIGHT)
+
+#define MTLOCK_REJECT_INNER_CIRCLE_BG_L REL_W(MTLOCK_REJECT_INNER_CIRCLE_BG_L_PAD)
+#define MTLOCK_REJECT_INNER_CIRCLE_BG_R REL_W(MTLOCK_REJECT_INNER_CIRCLE_BG_L_PAD+MTLOCK_REJECT_INNER_CIRCLE_BG_WIDTH)
+#define MTLOCK_REJECT_INNER_CIRCLE_BG_T REL_H(MTLOCK_REJECT_INNER_CIRCLE_BG_T_PAD)
+#define MTLOCK_REJECT_INNER_CIRCLE_BG_B REL_H(MTLOCK_REJECT_INNER_CIRCLE_BG_T_PAD+MTLOCK_REJECT_INNER_CIRCLE_BG_HEIGHT)
+
+#define MTLOCK_REJECT_OUTER_CIRCLE_L REL_W(MTLOCK_REJECT_OUTER_CIRCLE_BG_L_PAD)
+#define MTLOCK_REJECT_OUTER_CIRCLE_R REL_W(MTLOCK_REJECT_OUTER_CIRCLE_BG_L_PAD+MTLOCK_REJECT_OUTER_CIRCLE_BG_WIDTH)
+#define MTLOCK_REJECT_OUTER_CIRCLE_T REL_H(MTLOCK_REJECT_OUTER_CIRCLE_BG_T_PAD)
+#define MTLOCK_REJECT_OUTER_CIRCLE_B REL_H(MTLOCK_REJECT_OUTER_CIRCLE_BG_T_PAD+MTLOCK_REJECT_OUTER_CIRCLE_BG_HEIGHT)
+#define MTLOCK_REJECT_OUTER_CIRCLE_CLIP_RECT_T REL_H(CALLER_INFO_HEIGHT)
+#define MTLOCK_REJECT_OUTER_CIRCLE_CLIP_RECT_B REL_H(MAIN_LAYOUT_H-MTLOCK_REJECT_MSG_BG_HEIGHT)
+
+#define MTLOCK_REJECT_CIRCLE_ARROW1_L REL_W(MTLOCK_REJECT_CIRCLE_ARROW1_L_PAD)
+#define MTLOCK_REJECT_CIRCLE_ARROW1_R REL_W(MTLOCK_REJECT_CIRCLE_ARROW1_L_PAD+MTLOCK_REJECT_CIRCLE_ARROW1_WIDTH)
+#define MTLOCK_REJECT_CIRCLE_ARROW1_T REL_H(MTLOCK_REJECT_CIRCLE_ARROW1_T_PAD)
+#define MTLOCK_REJECT_CIRCLE_ARROW1_B REL_H(MTLOCK_REJECT_CIRCLE_ARROW1_T_PAD+MTLOCK_REJECT_CIRCLE_ARROW1_HEIGHT)
+
+#define MTLOCK_REJECT_CIRCLE_ARROW2_L REL_W(MTLOCK_REJECT_CIRCLE_ARROW2_L_PAD)
+#define MTLOCK_REJECT_CIRCLE_ARROW2_R REL_W(MTLOCK_REJECT_CIRCLE_ARROW2_L_PAD+MTLOCK_REJECT_CIRCLE_ARROW2_WIDTH)
+#define MTLOCK_REJECT_CIRCLE_ARROW2_T REL_H(MTLOCK_REJECT_CIRCLE_ARROW2_T_PAD)
+#define MTLOCK_REJECT_CIRCLE_ARROW2_B REL_H(MTLOCK_REJECT_CIRCLE_ARROW2_T_PAD+MTLOCK_REJECT_CIRCLE_ARROW2_HEIGHT)
+
+#define MTLOCK_REJECT_ARROW1_L REL_W(MTLOCK_REJECT_ARROW1_L_PAD)
+#define MTLOCK_REJECT_ARROW1_R REL_W(MTLOCK_REJECT_ARROW1_L_PAD+MTLOCK_REJECT_ARROW1_WIDTH)
+#define MTLOCK_REJECT_ARROW1_T REL_H(MTLOCK_REJECT_ARROW1_T_PAD)
+#define MTLOCK_REJECT_ARROW1_B REL_H(MTLOCK_REJECT_ARROW1_T_PAD+MTLOCK_REJECT_ARROW1_HEIGHT)
+
+#define MTLOCK_REJECT_ARROW2_L REL_W(MTLOCK_REJECT_ARROW2_L_PAD)
+#define MTLOCK_REJECT_ARROW2_R REL_W(MTLOCK_REJECT_ARROW2_L_PAD+MTLOCK_REJECT_ARROW2_WIDTH)
+#define MTLOCK_REJECT_ARROW2_T REL_H(MTLOCK_REJECT_ARROW2_T_PAD)
+#define MTLOCK_REJECT_ARROW2_B REL_H(MTLOCK_REJECT_ARROW2_T_PAD+MTLOCK_REJECT_ARROW2_HEIGHT)
+
+#define MTLOCK_REJECT_ARROW3_L REL_W(MTLOCK_REJECT_ARROW3_L_PAD)
+#define MTLOCK_REJECT_ARROW3_R REL_W(MTLOCK_REJECT_ARROW3_L_PAD+MTLOCK_REJECT_ARROW3_WIDTH)
+#define MTLOCK_REJECT_ARROW3_T REL_H(MTLOCK_REJECT_ARROW3_T_PAD)
+#define MTLOCK_REJECT_ARROW3_B REL_H(MTLOCK_REJECT_ARROW3_T_PAD+MTLOCK_REJECT_ARROW3_HEIGHT)
+
+#define MTLOCK_REJECT_ARROW4_L REL_W(MTLOCK_REJECT_ARROW4_L_PAD)
+#define MTLOCK_REJECT_ARROW4_R REL_W(MTLOCK_REJECT_ARROW4_L_PAD+MTLOCK_REJECT_ARROW4_WIDTH)
+#define MTLOCK_REJECT_ARROW4_T REL_H(MTLOCK_REJECT_ARROW4_T_PAD)
+#define MTLOCK_REJECT_ARROW4_B REL_H(MTLOCK_REJECT_ARROW4_T_PAD+MTLOCK_REJECT_ARROW4_HEIGHT)
+
+#define MTLOCK_REJECT_MSG_BG_L REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_BG_L_PAD)
+#define MTLOCK_REJECT_MSG_BG_R REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_BG_L_PAD+MTLOCK_REJECT_MSG_BG_WIDTH)
+#define MTLOCK_REJECT_MSG_BG_T REL_REJECT_MSG_H(MTLOCK_REJECT_MSG_BG_T_PAD)
+#define MTLOCK_REJECT_MSG_BG_B REL_REJECT_MSG_H(MTLOCK_REJECT_MSG_BG_T_PAD+MTLOCK_REJECT_MSG_BG_HEIGHT)
+
+#define MTLOCK_REJECT_MSG_ARW_L REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_ARW_L_PAD)
+#define MTLOCK_REJECT_MSG_ARW_R REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_ARW_L_PAD+MTLOCK_REJECT_MSG_ARW_WIDTH)
+#define MTLOCK_REJECT_MSG_ARW_T REL_REJECT_MSG_H(MTLOCK_REJECT_MSG_ARW_T_PAD)
+#define MTLOCK_REJECT_MSG_ARW_CLOSE_T 1.0
+#define MTLOCK_REJECT_MSG_ARW_B REL_REJECT_MSG_H(MTLOCK_REJECT_MSG_ARW_T_PAD+MTLOCK_REJECT_MSG_ARW_HEIGHT)
+#define MTLOCK_REJECT_MSG_ARW_CLOSE_B REL_REJECT_MSG_SIZE_H(IMAGE_CLOSE)
+
+#define MTLOCK_REJECT_MSG_TEXT_L REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_TEXT_L_PAD)
+#define MTLOCK_REJECT_MSG_TEXT_R REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_TEXT_L_PAD+MTLOCK_REJECT_MSG_TEXT_WIDTH)
+#define MTLOCK_REJECT_MSG_TEXT_T REL_REJECT_MSG_H(MTLOCK_REJECT_MSG_TEXT_T_PAD)
+#define MTLOCK_REJECT_MSG_TEXT_B REL_REJECT_MSG_H(MTLOCK_REJECT_MSG_TEXT_T_PAD+MTLOCK_REJECT_MSG_TEXT_HEIGHT)
+
+#define MTLOCK_REJECT_MSG_LIST_L REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_LIST_L_PAD)
+#define MTLOCK_REJECT_MSG_LIST_R REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_LIST_L_PAD+MTLOCK_REJECT_MSG_LIST_WIDTH)
+
+#define MTLOCK_REJECT_MSG_DOWN_ARROW_T (1.0 - (IMAGE_OFFSET/MAIN_SCREEN_BIG_H))
+#define MTLOCK_REJECT_MSG_DOWN_ARROW_B REL_REJECT_MSG_SIZE_H(IMAGE_CLOSE)
+
+#define MTLOCK_REJECT_MSG_BTN_L REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_LIST_L_PAD)
+#define MTLOCK_REJECT_MSG_BTN_R REL_REJECT_MSG_W(MTLOCK_REJECT_MSG_LIST_L_PAD+MTLOCK_REJECT_MSG_LIST_WIDTH)
+#define MTLOCK_REJECT_MSG_BTN_T REL_REJECT_MSG_SIZE_H(IMAGE_CLOSE)
+#define MTLOCK_REJECT_MSG_BTN_B REL_REJECT_MSG_SIZE_H(BUTTON_REJECT_SIZE_H + BUTTON_OFFSET_B + BUTTON_OFFSET_T + IMAGE_CLOSE)
+
+#define REJECT_MSG (BUTTON_REJECT_SIZE_H + BUTTON_OFFSET_B + BUTTON_OFFSET_T + BUTTON_OFFSET_T)
+#define MTLOCK_REJECT_MSG_LIST_NEW_T REL_REJECT_MSG_SIZE_H(REJECT_MSG)
+
+#define MTLOCK_REJECT_MSG_LIST_6ITEMS_B REL_REJECT_MSG_SIZE_H((ITEM_SIZE_H * 6) + REJECT_MSG)
+#define MTLOCK_REJECT_MSG_LIST_5ITEMS_B REL_REJECT_MSG_SIZE_H((ITEM_SIZE_H * 5) + REJECT_MSG)
+#define MTLOCK_REJECT_MSG_LIST_4ITEMS_B REL_REJECT_MSG_SIZE_H((ITEM_SIZE_H * 4) + REJECT_MSG)
+#define MTLOCK_REJECT_MSG_LIST_3ITEMS_B REL_REJECT_MSG_SIZE_H((ITEM_SIZE_H * 3) + REJECT_MSG)
+#define MTLOCK_REJECT_MSG_LIST_2ITEMS_B REL_REJECT_MSG_SIZE_H((ITEM_SIZE_H * 2) + REJECT_MSG)
+#define MTLOCK_REJECT_MSG_LIST_1ITEM_B REL_REJECT_MSG_SIZE_H((ITEM_SIZE_H * 1) + REJECT_MSG)
+/*
+ * End of MT LOCK View
+ */
+
+/*
+ * KEYPAD View
+ * In Portrait mode
+ */
+#define KEYPAD_AREA_T_HIDE REL_H(KEYPAD_AREA_T_HIDE_PAD)
+#define KEYPAD_AREA_B_HIDE REL_H(KEYPAD_AREA_T_HIDE_PAD+KEYPAD_AREA_HEIGHT)
+
+#define KEYPAD_ENTRY_TEXT_L REL_W(KEYPAD_ENTRY_TXT_L_PAD)
+#define KEYPAD_ENTRY_TEXT_R REL_W(KEYPAD_ENTRY_TXT_L_PAD+KEYPAD_ENTRY_TXT_WIDTH)
+#define KEYPAD_ENTRY_TEXT_T REL_H(KEYPAD_ENTRY_TXT_T_PAD)
+#define KEYPAD_ENTRY_TEXT_B REL_H(KEYPAD_ENTRY_TXT_T_PAD+KEYPAD_ENTRY_TXT_HEIGHT)
+/*
+ * End of KEYPAD View
+ */
+
+
+/*
+ * SIX BUTTON Layout
+ * In Portrait mode
+ */
+
+#define TOP_FIRST_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_TOP_FIRST_BTN_L_PAD)
+#define TOP_FIRST_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_SINGLE_BTN_WIDTH)
+#define TOP_FIRST_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_TOP_BTNS_T_PAD)
+#define TOP_FIRST_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_TOP_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT)
+
+#define TOP_SECOND_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_TOP_SECOND_BTN_L_PAD)
+#define TOP_SECOND_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_TOP_SECOND_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+1)
+#define TOP_SECOND_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_TOP_BTNS_T_PAD)
+#define TOP_SECOND_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_TOP_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT)
+
+#define TOP_THIRD_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_TOP_THIRD_BTN_L_PAD)
+#define TOP_THIRD_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_TOP_THIRD_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+2)
+#define TOP_THIRD_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_TOP_BTNS_T_PAD)
+#define TOP_THIRD_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_TOP_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT)
+
+#define BOTTOM_FIRST_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_BOTTOM_FIRST_BTN_L_PAD)
+#define BOTTOM_FIRST_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_BOTTOM_FIRST_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH)
+#define BOTTOM_FIRST_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTNS_T_PAD)
+#define BOTTOM_FIRST_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT)
+
+#define BOTTOM_SECOND_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_BOTTOM_SECOND_BTN_L_PAD)
+#define BOTTOM_SECOND_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_BOTTOM_SECOND_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+1)
+#define BOTTOM_SECOND_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTNS_T_PAD)
+#define BOTTOM_SECOND_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT)
+
+#define BOTTOM_THIRD_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_BOTTOM_THIRD_BTN_L_PAD)
+#define BOTTOM_THIRD_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_BOTTOM_THIRD_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+2)
+#define BOTTOM_THIRD_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTNS_T_PAD)
+#define BOTTOM_THIRD_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTNS_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT)
+
+/*
+ * End of SIX Button Layout
+ */
+
+/*
+ * General Button Layout
+ * Portrait mode
+ */
+#define SIX_BTN_LAYOUT_L REL_W(SIX_BTN_LAYOUT_L_PAD)
+#define SIX_BTN_LAYOUT_R REL_W(SIX_BTN_LAYOUT_L_PAD+SIX_BTN_LAYOUT_WIDTH)
+#define SIX_BTN_LAYOUT_T REL_H(SIX_BTN_LAYOUT_T_PAD)
+#define SIX_BTN_LAYOUT_B REL_H(SIX_BTN_LAYOUT_T_PAD+SIX_BTN_LAYOUT_HEIGHT)
+
+/*
+ * End of SIX Button Layout
+ */
+
+/*
+ * Bottom Button layout
+ */
+#define BOTTOM_BTN_LAYOUT_L REL_W(BOTTOM_BTN_BG_L_PAD)
+#define BOTTOM_BTN_LAYOUT_R REL_W(BOTTOM_BTN_BG_L_PAD+BOTTOM_BTN_BG_WIDTH)
+#define BOTTOM_BTN_LAYOUT_T REL_H(BOTTOM_BTN_BG_T_PAD)
+#define BOTTOM_BTN_LAYOUT_B REL_H(BOTTOM_BTN_BG_T_PAD+BOTTOM_BTN_BG_HEIGHT)
+/*
+ * End of Bottom Button layout
+ */
+
+/*
+ * END CALL View
+ * In Portrait mode
+ */
+#define ENDSINGLECALL_BTN_BG_L REL_W(ENDCALL_TWO_BTN_L_PAD)
+#define ENDSINGLECALL_BTN_BG_R REL_W(ENDCALL_TWO_BTN_L_PAD+ENDCALL_TWO_BTN_WIDTH)
+#define ENDSINGLECALL_BTN_BG_T REL_H(ENDCALL_TWO_BTN_T_PAD)
+#define ENDSINGLECALL_BTN_BG_B REL_H(ENDCALL_TWO_BTN_T_PAD+ENDCALL_TWO_BTN_HEIGHT)
+
+#define ENDSINGLECALL_VIEW_CONTACT_BTN_L REL_CONTACT_BTN_W(ENDCALL_VIEW_CONTACT_BTN_L_PAD)
+#define ENDSINGLECALL_VIEW_CONTACT_BTN_R REL_CONTACT_BTN_W(ENDCALL_VIEW_CONTACT_BTN_L_PAD+ENDCALL_VIEW_CONTACT_BTN_WIDTH)
+#define ENDSINGLECALL_VIEW_CONTACT_BTN_T REL_CONTACT_BTN_H(ENDCALL_VIEW_CONTACT_BTN_T_PAD)
+#define ENDSINGLECALL_VIEW_CONTACT_BTN_B REL_CONTACT_BTN_H(ENDCALL_VIEW_CONTACT_BTN_T_PAD+ENDCALL_VIEW_CONTACT_BTN_HEIGHT)
+
+#define ENDSINGLECALL_CREATE_CONTACT_BTN_L REL_CONTACT_BTN_W(ENDCALL_CREATE_CONTACT_BTN_L_PAD)
+#define ENDSINGLECALL_CREATE_CONTACT_BTN_R REL_CONTACT_BTN_W(ENDCALL_CREATE_CONTACT_BTN_L_PAD+ENDCALL_CREATE_CONTACT_BTN_WIDTH)
+#define ENDSINGLECALL_CREATE_CONTACT_BTN_T REL_CONTACT_BTN_H(ENDCALL_CREATE_CONTACT_BTN_T_PAD)
+#define ENDSINGLECALL_CREATE_CONTACT_BTN_B REL_CONTACT_BTN_H(ENDCALL_CREATE_CONTACT_BTN_T_PAD+ENDCALL_CREATE_CONTACT_BTN_HEIGHT)
+
+#define ENDSINGLECALL_UPDATE_CONTACT_BTN_L REL_CONTACT_BTN_W(ENDCALL_UPDATE_CONTACT_BTN_L_PAD)
+#define ENDSINGLECALL_UPDATE_CONTACT_BTN_R REL_CONTACT_BTN_W(ENDCALL_UPDATE_CONTACT_BTN_L_PAD+ENDCALL_CREATE_CONTACT_BTN_WIDTH)
+#define ENDSINGLECALL_UPDATE_CONTACT_BTN_T REL_CONTACT_BTN_H(ENDCALL_CREATE_CONTACT_BTN_T_PAD)
+#define ENDSINGLECALL_UPDATE_CONTACT_BTN_B REL_CONTACT_BTN_H(ENDCALL_CREATE_CONTACT_BTN_T_PAD+ENDCALL_CREATE_CONTACT_BTN_HEIGHT)
+
+#define ENDSINGLECALL_VIDEOCALL_BTN_BG_L REL_W(ENDCALL_VIDEO_BTN_L_PAD)
+#define ENDSINGLECALL_VIDEOCALL_BTN_BG_R REL_W(ENDCALL_VIDEO_BTN_L_PAD+ENDCALL_BTN_WIDTH)
+
+#define ENDSINGLECALL_CALL_BTN_BG_L REL_W(ENDCALL_VOICE_BTN_L_PAD)
+#define ENDSINGLECALL_CALL_BTN_BG_R REL_W(ENDCALL_VOICE_BTN_L_PAD+ENDCALL_VOICE_BTN_WIDTH)
+
+#define ENDSINGLECALL_MSG_BTN_BG_L REL_W(ENDCALL_3_BTN_MSG_BTN_L_PAD)
+#define ENDSINGLECALL_MSG_BTN_BG_R REL_W(ENDCALL_3_BTN_MSG_BTN_L_PAD+ENDCALL_BTN_WIDTH)
+/*
+ * End of END CALL View
+ */
+
+/*
+ * QUICK-PANEL layout
+ * In Portrait mode
+ */
+#define CALL_QUICKPANEL_TXT_AREA_L REL_QP_W(QP_TXT_AREA_L_PAD)
+#define CALL_QUICKPANEL_TXT_AREA_R REL_QP_W(QP_TXT_AREA_L_PAD+QP_TXT_AREA_WIDTH)
+#define CALL_QUICKPANEL_TXT_AREA_T REL_QP_H(QP_TXT_AREA_T_PAD)
+#define CALL_QUICKPANEL_TXT_AREA_B REL_QP_H(QP_TXT_AREA_T_PAD+QP_TXT_AREA_HEIGHT)
+
+#define CALL_QUICKPANEL_CALL_ICON_L REL_QP_W(QP_CALL_ICON_L_PAD)
+#define CALL_QUICKPANEL_CALL_ICON_R REL_QP_W(QP_CALL_ICON_L_PAD+QP_CALL_ICON_WIDTH)
+#define CALL_QUICKPANEL_CALL_ICON_T REL_QP_H(QP_CALL_ICON_T_PAD)
+#define CALL_QUICKPANEL_CALL_ICON_B REL_QP_H(QP_CALL_ICON_T_PAD+QP_CALL_ICON_HEIGHT)
+
+#define CALL_QUICKPANEL_BTN_MUTE_L REL_QP_W(QP_MUTE_BTN_L_PAD)
+#define CALL_QUICKPANEL_BTN_MUTE_R REL_QP_W(QP_MUTE_BTN_L_PAD+QP_MUTE_BTN_WIDTH)
+#define CALL_QUICKPANEL_BTN_MUTE_T REL_QP_H(QP_MUTE_BTN_T_PAD)
+#define CALL_QUICKPANEL_BTN_MUTE_B REL_QP_H(QP_MUTE_BTN_T_PAD+QP_END_BTN_HEIGHT)
+
+#define CALL_QUICKPANEL_BTN_SPEAKER_L REL_QP_W(QP_SPEAKER_BTN_L_PAD)
+#define CALL_QUICKPANEL_BTN_SPEAKER_R REL_QP_W(QP_SPEAKER_BTN_L_PAD+QP_SPEAKER_BTN_WIDTH)
+#define CALL_QUICKPANEL_BTN_SPEAKER_T REL_QP_H(QP_SPEAKER_BTN_T_PAD)
+#define CALL_QUICKPANEL_BTN_SPEAKER_B REL_QP_H(QP_SPEAKER_BTN_T_PAD+QP_END_BTN_HEIGHT)
+
+#define CALL_QUICKPANEL_BTN_END_L REL_QP_W(QP_END_BTN_L_PAD)
+#define CALL_QUICKPANEL_BTN_END_R REL_QP_W(QP_END_BTN_L_PAD+QP_END_BTN_WIDTH)
+#define CALL_QUICKPANEL_BTN_END_T REL_QP_H(QP_END_BTN_T_PAD)
+#define CALL_QUICKPANEL_BTN_END_B REL_QP_H(QP_END_BTN_T_PAD+QP_END_BTN_HEIGHT)
+
+#define CALL_QUICKPANEL_BTN_ICON_T REL_QP_BTN_H(QP_CONTENT_ICON_T_PAD)
+#define CALL_QUICKPANEL_BTN_ICON_B REL_QP_BTN_H(QP_CONTENT_ICON_T_PAD+QP_CONTENT_ICON_HEIGHT)
+/*
+ * End of QUICK-PANEL layout
+ */
+
+
+#define LSCAPE_TITLE_HEIGHT 100
+#define LSCAPE_QP_WIN_W 1252
+#define LSCAPE_QP_WIN_H 180
+
+#define LSCAPE_QP_TITLE_L_PAD 14
+#define LSCAPE_QP_TITLE_WIDTH 1050
+#define LSCAPE_QP_TITLE_T_PAD 16
+#define LSCAPE_QP_TITLE_HEIGHT 36
+
+#define LSCAPE_QP_SPEAKER_BTN_L_PAD 18
+#define LSCAPE_QP_SPEAKER_BTN_WIDTH 118
+#define LSCAPE_QP_SPEAKER_BTN_T_PAD 75
+#define LSCAPE_QP_SPEAKER_BTN_HEIGHT 72
+
+#define LSCAPE_QP_MUTE_BTN_L_PAD (LSCAPE_QP_SPEAKER_BTN_L_PAD+LSCAPE_QP_SPEAKER_BTN_WIDTH+27)
+#define LSCAPE_QP_MUTE_BTN_WIDTH LSCAPE_QP_SPEAKER_BTN_WIDTH
+#define LSCAPE_QP_MUTE_BTN_T_PAD LSCAPE_QP_SPEAKER_BTN_T_PAD
+#define LSCAPE_QP_MUTE_BTN_HEIGHT LSCAPE_QP_SPEAKER_BTN_HEIGHT
+
+#define LSCAPE_QP_END_BTN_L_PAD (LSCAPE_QP_MUTE_BTN_L_PAD+LSCAPE_QP_MUTE_BTN_WIDTH+27)
+#define LSCAPE_QP_END_BTN_WIDTH 72
+#define LSCAPE_QP_END_BTN_T_PAD LSCAPE_QP_SPEAKER_BTN_T_PAD
+#define LSCAPE_QP_END_BTN_HEIGHT 72
+
+#define LSCAPE_QP_TIME_L_PAD (LSCAPE_QP_END_BTN_L_PAD+LSCAPE_QP_END_BTN_WIDTH+18)
+#define LSCAPE_QP_TIME_WIDTH 181
+#define LSCAPE_QP_TIME_T_PAD 114
+#define LSCAPE_QP_TIME_HEIGHT 36
+
+#define LSCAPE_QP_CALL_ICON_L_PAD 1122
+#define LSCAPE_QP_CALL_ICON_WIDTH 106
+#define LSCAPE_QP_CALL_ICON_T_PAD 34
+#define LSCAPE_QP_CALL_ICON_HEIGHT 106
+/* Relative X & Y positions of widgets w.r.t. Quick-panel layout */
+#define REL_LSCAPE_QP_W(x) ((x)/LSCAPE_QP_WIN_W)
+#define REL_LSCAPE_QP_H(y) ((y)/LSCAPE_QP_WIN_H)
+/*
+ * QUICK-PANEL layout
+ * In Portrait mode
+ */
+#define LSCAPE_QUICKPANEL_TITLE_L REL_LSCAPE_QP_W(LSCAPE_QP_TITLE_L_PAD)
+#define LSCAPE_QUICKPANEL_TITLE_R REL_LSCAPE_QP_W(LSCAPE_QP_TITLE_L_PAD+LSCAPE_QP_TITLE_WIDTH)
+#define LSCAPE_QUICKPANEL_TITLE_T REL_LSCAPE_QP_H(LSCAPE_QP_TITLE_T_PAD)
+#define LSCAPE_QUICKPANEL_TITLE_B REL_LSCAPE_QP_H(LSCAPE_QP_TITLE_T_PAD+LSCAPE_QP_TITLE_HEIGHT)
+
+#define LSCAPE_QUICKPANEL_BTN_SPEAKER_L REL_LSCAPE_QP_W(LSCAPE_QP_SPEAKER_BTN_L_PAD)
+#define LSCAPE_QUICKPANEL_BTN_SPEAKER_R REL_LSCAPE_QP_W(LSCAPE_QP_SPEAKER_BTN_L_PAD+LSCAPE_QP_SPEAKER_BTN_WIDTH)
+#define LSCAPE_QUICKPANEL_BTN_SPEAKER_T REL_LSCAPE_QP_H(LSCAPE_QP_SPEAKER_BTN_T_PAD)
+#define LSCAPE_QUICKPANEL_BTN_SPEAKER_B REL_LSCAPE_QP_H(LSCAPE_QP_SPEAKER_BTN_T_PAD+LSCAPE_QP_SPEAKER_BTN_HEIGHT)
+
+#define LSCAPE_QUICKPANEL_BTN_MUTE_L REL_LSCAPE_QP_W(LSCAPE_QP_MUTE_BTN_L_PAD)
+#define LSCAPE_QUICKPANEL_BTN_MUTE_R REL_LSCAPE_QP_W(LSCAPE_QP_MUTE_BTN_L_PAD+LSCAPE_QP_MUTE_BTN_WIDTH)
+#define LSCAPE_QUICKPANEL_BTN_MUTE_T REL_LSCAPE_QP_H(LSCAPE_QP_MUTE_BTN_T_PAD)
+#define LSCAPE_QUICKPANEL_BTN_MUTE_B REL_LSCAPE_QP_H(LSCAPE_QP_MUTE_BTN_T_PAD+LSCAPE_QP_MUTE_BTN_HEIGHT)
+
+#define LSCAPE_QUICKPANEL_BTN_END_L REL_LSCAPE_QP_W(LSCAPE_QP_END_BTN_L_PAD)
+#define LSCAPE_QUICKPANEL_BTN_END_R REL_LSCAPE_QP_W(LSCAPE_QP_END_BTN_L_PAD+LSCAPE_QP_END_BTN_WIDTH)
+#define LSCAPE_QUICKPANEL_BTN_END_T REL_LSCAPE_QP_H(LSCAPE_QP_END_BTN_T_PAD)
+#define LSCAPE_QUICKPANEL_BTN_END_B REL_LSCAPE_QP_H(LSCAPE_QP_END_BTN_T_PAD+LSCAPE_QP_END_BTN_HEIGHT)
+
+#define LSCAPE_QUICKPANEL_TIME_L REL_LSCAPE_QP_W(LSCAPE_QP_TIME_L_PAD)
+#define LSCAPE_QUICKPANEL_TIME_R REL_LSCAPE_QP_W(LSCAPE_QP_TIME_L_PAD+LSCAPE_QP_TIME_WIDTH)
+#define LSCAPE_QUICKPANEL_TIME_T REL_LSCAPE_QP_H(LSCAPE_QP_TIME_T_PAD)
+#define LSCAPE_QUICKPANEL_TIME_B REL_LSCAPE_QP_H(LSCAPE_QP_TIME_T_PAD+LSCAPE_QP_TIME_HEIGHT)
+
+#define LSCAPE_QUICKPANEL_CALL_BG_ICON_L REL_LSCAPE_QP_W(LSCAPE_QP_CALL_BG_ICON_L_PAD)
+#define LSCAPE_QUICKPANEL_CALL_BG_ICON_R REL_LSCAPE_QP_W(LSCAPE_QP_CALL_BG_ICON_L_PAD+LSCAPE_QP_CALL_BG_ICON_WIDTH)
+#define LSCAPE_QUICKPANEL_CALL_BG_ICON_T REL_LSCAPE_QP_H(LSCAPE_QP_CALL_BG_ICON_T_PAD)
+#define LSCAPE_QUICKPANEL_CALL_BG_ICON_B REL_LSCAPE_QP_H(LSCAPE_QP_CALL_BG_ICON_T_PAD+LSCAPE_QP_CALL_BG_ICON_HEIGHT)
+
+#define LSCAPE_QUICKPANEL_CALL_ICON_L REL_LSCAPE_QP_W(LSCAPE_QP_CALL_ICON_L_PAD)
+#define LSCAPE_QUICKPANEL_CALL_ICON_R REL_LSCAPE_QP_W(LSCAPE_QP_CALL_ICON_L_PAD+LSCAPE_QP_CALL_ICON_WIDTH)
+#define LSCAPE_QUICKPANEL_CALL_ICON_T REL_LSCAPE_QP_H(LSCAPE_QP_CALL_ICON_T_PAD)
+#define LSCAPE_QUICKPANEL_CALL_ICON_B REL_LSCAPE_QP_H(LSCAPE_QP_CALL_ICON_T_PAD+LSCAPE_QP_CALL_ICON_HEIGHT)
+
+/*
+ * Caller info layout
+ * In Portrait mode
+ */
+
+#define CALLER_INFO_L REL_W(CALLER_INFO_L_PAD)
+#define CALLER_INFO_R REL_W(CALLER_INFO_L_PAD+CALLER_INFO_WIDTH)
+#define CALLER_INFO_T REL_H(CALLER_INFO_T_PAD)
+#define CALLER_INFO_B REL_H(CALLER_INFO_T_PAD+CALLER_INFO_HEIGHT)
+
+#define CALLER_INFO_NAME_L REL_W(CALLER_INFO_NAME_L_PAD)
+#define CALLER_INFO_NAME_R REL_W(CALLER_INFO_NAME_L_PAD+CALLER_INFO_NAME_WIDTH)
+#define CALLER_INFO_NAME_T REL_CALLER_INFO_H(CALLER_INFO_NAME_T_PAD)
+#define CALLER_INFO_NAME_B REL_CALLER_INFO_H(CALLER_INFO_NAME_T_PAD+CALLER_INFO_NAME_HEIGHT)
+#define CALLER_INFO_NAME_EMERGENCY_B REL_CALLER_INFO_H(CALLER_INFO_NAME_T_PAD+CALLER_INFO_EMERGENCY_HEIGHT)
+
+#define CALLER_INFO_NAME_1LINE_T REL_CALLER_INFO_H(CALLER_INFO_NAME_1LINE_T_PAD)
+#define CALLER_INFO_NAME_1LINE_B REL_CALLER_INFO_H(CALLER_INFO_NAME_1LINE_T_PAD+CALLER_INFO_NAME_1LINE_HEIGHT)
+
+#define CALLER_INFO_NUMBER_L REL_W(CALLER_INFO_NUMBER_L_PAD)
+#define CALLER_INFO_NUMBER_R REL_W(CALLER_INFO_NUMBER_L_PAD+CALLER_INFO_NUMBER_WIDTH)
+#define CALLER_INFO_NUMBER_T REL_CALLER_INFO_H(CALLER_INFO_NUMBER_T_PAD)
+#define CALLER_INFO_NUMBER_B REL_CALLER_INFO_H(CALLER_INFO_NUMBER_T_PAD+CALLER_INFO_NUMBER_HEIGHT)
+
+#define CALLER_INFO_STATUS_L REL_W(CALLER_INFO_STATUS_L_PAD)
+#define CALLER_INFO_STATUS_R REL_W(CALLER_INFO_STATUS_L_PAD+CALLER_INFO_STATUS_WIDTH)
+#define CALLER_INFO_STATUS_T REL_CALLER_INFO_H(CALLER_INFO_STATUS_T_PAD)
+#define CALLER_INFO_STATUS_B REL_CALLER_INFO_H(CALLER_INFO_STATUS_T_PAD+CALLER_INFO_STATUS_HEIGHT)
+
+#define CALLER_INFO_CARRIER_L REL_W(CALLER_INFO_CARRIER_L_PAD)
+#define CALLER_INFO_CARRIER_R REL_W(CALLER_INFO_CARRIER_L_PAD+CALLER_INFO_CARRIER_WIDTH)
+#define CALLER_INFO_CARRIER_T REL_CALLER_INFO_H(CALLER_INFO_CARRIER_T_PAD)
+#define CALLER_INFO_CARRIER_B REL_CALLER_INFO_H(CALLER_INFO_CARRIER_T_PAD+CALLER_INFO_CARRIER_HEIGHT)
+
+#define EXTRA_LAYOUT_WIDTH MAIN_SCREEN_W
+#define EXTRA_LAYOUT_HEIGHT 148
+
+#define EXTRA_LAYOUT_L_PAD 0
+#define EXTRA_LAYOUT_R_PAD (EXTRA_LAYOUT_L_PAD+EXTRA_LAYOUT_WIDTH)
+#define EXTRA_LAYOUT_T_PAD (127)
+#define EXTRA_LAYOUT_B_PAD (EXTRA_LAYOUT_T_PAD+148)
+
+#define EXTRA2_LAYOUT_L_PAD 0
+#define EXTRA2_LAYOUT_R_PAD (EXTRA2_LAYOUT_L_PAD+EXTRA_LAYOUT_WIDTH)
+#define EXTRA2_LAYOUT_T_PAD (EXTRA_LAYOUT_B_PAD+1)
+#define EXTRA2_LAYOUT_B_PAD (EXTRA2_LAYOUT_T_PAD+EXTRA_LAYOUT_HEIGHT)
+
+#define EXTRA3_LAYOUT_L_PAD 0
+#define EXTRA3_LAYOUT_R_PAD (EXTRA3_LAYOUT_L_PAD+EXTRA_LAYOUT_WIDTH)
+#define EXTRA3_LAYOUT_T_PAD (EXTRA2_LAYOUT_B_PAD+1)
+#define EXTRA3_LAYOUT_B_PAD (EXTRA3_LAYOUT_T_PAD+EXTRA_LAYOUT_HEIGHT)
+
+#define EXTRA_LAYOUT_L REL_W(EXTRA_LAYOUT_L_PAD)
+#define EXTRA_LAYOUT_R REL_W(EXTRA_LAYOUT_R_PAD)
+#define EXTRA_LAYOUT_T REL_CALLER_INFO_H(EXTRA_LAYOUT_T_PAD)
+#define EXTRA_LAYOUT_B REL_CALLER_INFO_H(EXTRA_LAYOUT_B_PAD)
+
+#define EXTRA2_LAYOUT_L REL_W(EXTRA2_LAYOUT_L_PAD)
+#define EXTRA2_LAYOUT_R REL_W(EXTRA2_LAYOUT_R_PAD)
+#define EXTRA2_LAYOUT_T REL_CALLER_INFO_H(EXTRA2_LAYOUT_T_PAD)
+#define EXTRA2_LAYOUT_B REL_CALLER_INFO_H(EXTRA2_LAYOUT_B_PAD)
+
+#define EXTRA3_LAYOUT_L REL_W(EXTRA3_LAYOUT_L_PAD)
+#define EXTRA3_LAYOUT_R REL_W(EXTRA3_LAYOUT_R_PAD)
+#define EXTRA3_LAYOUT_T REL_CALLER_INFO_H(EXTRA3_LAYOUT_T_PAD)
+#define EXTRA3_LAYOUT_B REL_CALLER_INFO_H(EXTRA3_LAYOUT_B_PAD)
+
+#define REL_EXTRA_LAYOUT_H(y) ((y)/EXTRA_LAYOUT_HEIGHT)
+
+#define EXTRA_LAYOUT_TEXT_WIDTH 450
+#define EXTRA_LAYOUT_TEXT_HEIGHT 72
+#define EXTRA_LAYOUT_TEXT_L_PAD 15
+#define EXTRA_LAYOUT_TEXT_R_PAD (EXTRA_LAYOUT_TEXT_L_PAD+EXTRA_LAYOUT_TEXT_WIDTH)
+#define EXTRA_LAYOUT_TEXT_T_PAD (12)
+#define EXTRA_LAYOUT_TEXT_B_PAD (EXTRA_LAYOUT_TEXT_T_PAD+EXTRA_LAYOUT_TEXT_HEIGHT)
+
+#define EXTRA_LAYOUT_TEXT_L REL_W(EXTRA_LAYOUT_TEXT_L_PAD)
+#define EXTRA_LAYOUT_TEXT_R REL_W(EXTRA_LAYOUT_TEXT_R_PAD)
+#define EXTRA_LAYOUT_TEXT_T REL_EXTRA_LAYOUT_H(EXTRA_LAYOUT_TEXT_T_PAD)
+#define EXTRA_LAYOUT_TEXT_B REL_EXTRA_LAYOUT_H(EXTRA_LAYOUT_TEXT_B_PAD)
+
+#define EXTRA_LAYOUT_RESUME_TEXT_WIDTH 365
+#define EXTRA_LAYOUT_RESUME_TEXT_HEIGHT 96
+#define EXTRA_LAYOUT_RESUME_TEXT_L_PAD 25
+#define EXTRA_LAYOUT_RESUME_TEXT_R_PAD (EXTRA_LAYOUT_RESUME_TEXT_L_PAD+EXTRA_LAYOUT_RESUME_TEXT_WIDTH)
+#define EXTRA_LAYOUT_RESUME_TEXT_T_PAD 0
+#define EXTRA_LAYOUT_RESUME_TEXT_B_PAD (EXTRA_LAYOUT_RESUME_TEXT_T_PAD+EXTRA_LAYOUT_RESUME_TEXT_HEIGHT)
+
+#define EXTRA_LAYOUT_RESUME_TEXT_L REL_W(EXTRA_LAYOUT_RESUME_TEXT_L_PAD)
+#define EXTRA_LAYOUT_RESUME_TEXT_R REL_W(EXTRA_LAYOUT_RESUME_TEXT_R_PAD)
+#define EXTRA_LAYOUT_RESUME_TEXT_T REL_EXTRA_LAYOUT_H(EXTRA_LAYOUT_RESUME_TEXT_T_PAD)
+#define EXTRA_LAYOUT_RESUME_TEXT_B REL_EXTRA_LAYOUT_H(EXTRA_LAYOUT_RESUME_TEXT_B_PAD)
+
+#define EXTRA_LAYOUT_RESUME_ICON_WIDTH 27
+#define EXTRA_LAYOUT_RESUME_ICON_HEIGHT 27
+#define EXTRA_LAYOUT_RESUME_ICON_L_PAD 339
+#define EXTRA_LAYOUT_RESUME_ICON_R_PAD (EXTRA_LAYOUT_RESUME_ICON_L_PAD+EXTRA_LAYOUT_RESUME_ICON_WIDTH)
+#define EXTRA_LAYOUT_RESUME_ICON_T_PAD INDICATOR_HEIGHT
+#define EXTRA_LAYOUT_RESUME_ICON_B_PAD (EXTRA_LAYOUT_RESUME_ICON_T_PAD+72)
+
+#define EXTRA_LAYOUT_RESUME_ICON_L REL_W(EXTRA_LAYOUT_RESUME_ICON_L_PAD)
+#define EXTRA_LAYOUT_RESUME_ICON_R REL_W(EXTRA_LAYOUT_RESUME_ICON_R_PAD)
+#define EXTRA_LAYOUT_RESUME_ICON_T REL_EXTRA_LAYOUT_H(EXTRA_LAYOUT_RESUME_ICON_T_PAD)
+#define EXTRA_LAYOUT_RESUME_ICON_B REL_EXTRA_LAYOUT_H(EXTRA_LAYOUT_RESUME_ICON_B_PAD)
+
+#define EXTRA_LAYOUT_EXTRA_VOL_ICON_L_PAD (EXTRA_LAYOUT_RESUME_ICON_L_PAD-34)
+#define EXTRA_LAYOUT_EXTRA_VOL_ICON_R_PAD (EXTRA_LAYOUT_EXTRA_VOL_ICON_L_PAD+EXTRA_LAYOUT_RESUME_ICON_WIDTH)
+
+#define EXTRA_LAYOUT_EXTRA_VOL_ICON_L REL_W(EXTRA_LAYOUT_EXTRA_VOL_ICON_L_PAD)
+#define EXTRA_LAYOUT_EXTRA_VOL_ICON_R REL_W(EXTRA_LAYOUT_EXTRA_VOL_ICON_R_PAD)
+
+#define HELD_CALL_CALLER_ID_WIDTH 74
+#define HELD_CALL_CALLER_ID_HEIGHT EXTRA_LAYOUT_HEIGHT
+#define HELD_CALL_CALLER_INFO_GAP 25
+#define HELD_CALL_TEXT_WIDTH 186
+#define HELD_CALL_TEXT_HEIGHT EXTRA_LAYOUT_HEIGHT
+#define HELD_CALL_BTN_WIDTH 60
+#define HELD_CALL_BTN_HEIGHT EXTRA_LAYOUT_HEIGHT
+#define HELD_CALL_BTN_GAP 20
+
+#define HELD_CALL_CALLER_ID_L REL_W(15)
+#define HELD_CALL_CALLER_ID_R REL_W(15+HELD_CALL_CALLER_ID_WIDTH)
+#define HELD_CALL_CALLER_ID_T REL_EXTRA_LAYOUT_H(0)
+#define HELD_CALL_CALLER_ID_B REL_EXTRA_LAYOUT_H(HELD_CALL_CALLER_ID_T+HELD_CALL_CALLER_ID_HEIGHT)
+
+#define HELD_CALL_TEXT_L_PAD (20)
+#define HELD_CALL_TEXT_T_PAD 0
+
+#define HELD_CALL_TEXT_L REL_W(HELD_CALL_TEXT_L_PAD)
+#define HELD_CALL_TEXT_R REL_W(HELD_CALL_TEXT_L_PAD+440)
+#define HELD_CALL_TEXT_T REL_EXTRA_LAYOUT_H(HELD_CALL_TEXT_T_PAD)
+#define HELD_CALL_TEXT_B REL_EXTRA_LAYOUT_H(HELD_CALL_TEXT_T_PAD+54)
+
+#define HELD_CALL_BTN1_L_PAD (0)
+#define HELD_CALL_BTN1_T_PAD 50
+
+#define HELD_CALL_BTN1_L REL_W(HELD_CALL_BTN1_L_PAD)
+#define HELD_CALL_BTN1_R REL_W(HELD_CALL_BTN1_L_PAD+239)
+#define HELD_CALL_BTN1_T REL_EXTRA_LAYOUT_H(HELD_CALL_BTN1_T_PAD)
+#define HELD_CALL_BTN1_BG_B REL_EXTRA_LAYOUT_H(HELD_CALL_BTN1_T_PAD+98)
+#define HELD_CALL_BTN1_B REL_EXTRA_LAYOUT_H(HELD_CALL_BTN1_T_PAD+60)
+#define HELD_CALL_BTN1_TXT_T REL_EXTRA_LAYOUT_H(HELD_CALL_BTN1_T_PAD+60)
+#define HELD_CALL_BTN1_TXT_B REL_EXTRA_LAYOUT_H(HELD_CALL_BTN1_T_PAD+60+25)
+
+#define HELD_CALL_BTN2_L_PAD 240
+#define HELD_CALL_BTN2_T_PAD 50
+
+#define HELD_CALL_BTN2_L REL_W(HELD_CALL_BTN2_L_PAD)
+#define HELD_CALL_BTN2_R REL_W(HELD_CALL_BTN2_L_PAD+240)
+#define HELD_CALL_BTN2_T REL_EXTRA_LAYOUT_H(HELD_CALL_BTN2_T_PAD)
+#define HELD_CALL_BTN2_BG_B REL_EXTRA_LAYOUT_H(HELD_CALL_BTN2_T_PAD+98)
+#define HELD_CALL_BTN2_B REL_EXTRA_LAYOUT_H(HELD_CALL_BTN2_T_PAD+60)
+#define HELD_CALL_BTN2_TXT_T REL_EXTRA_LAYOUT_H(HELD_CALL_BTN2_T_PAD+60)
+#define HELD_CALL_BTN2_TXT_B REL_EXTRA_LAYOUT_H(HELD_CALL_BTN2_T_PAD+60+25)
+
+#define MANAGE_TEXT_WIDTH 280
+#define MANAGE_TEXT_HEIGHT EXTRA_LAYOUT_HEIGHT
+
+#define MANAGE_TEXT_L_PAD (15+HELD_CALL_CALLER_ID_WIDTH+HELD_CALL_CALLER_INFO_GAP)
+#define MANAGE_TEXT_T_PAD 0
+
+#define MANAGE_TEXT_L REL_W(MANAGE_TEXT_L_PAD)
+#define MANAGE_TEXT_R REL_W(MANAGE_TEXT_L_PAD+MANAGE_TEXT_WIDTH)
+#define MANAGE_TEXT_T REL_EXTRA_LAYOUT_H(MANAGE_TEXT_T_PAD)
+#define MANAGE_TEXT_B REL_EXTRA_LAYOUT_H(MANAGE_TEXT_T_PAD+MANAGE_TEXT_HEIGHT)
+
+/*
+ * End of Caller info layout
+ */
+
+
+/*
+* Lock Screen Layout
+*/
+
+#define LOCK_SCREEN_LAYER_WIDTH MAIN_SCREEN_W
+#define LOCK_SCREEN_LAYER_HEIGHT MAIN_SCREEN_H
+
+#define LOCK_SCREEN_ICON_TOP_PAD 230
+#define LOCK_SCREEN_ICON_HEIGHT 270
+
+#define REL_LOCK_SCREEN_W(x) ((x)/LOCK_SCREEN_LAYER_WIDTH)
+#define REL_LOCK_SCREEN_H(y) ((y)/LOCK_SCREEN_LAYER_HEIGHT)
+
+#define LOCK_SCREEN_ICON_L REL_LOCK_SCREEN_W(0)
+#define LOCK_SCREEN_ICON_R REL_LOCK_SCREEN_W(LOCK_SCREEN_LAYER_WIDTH)
+#define LOCK_SCREEN_ICON_T REL_LOCK_SCREEN_H(LOCK_SCREEN_ICON_TOP_PAD)
+#define LOCK_SCREEN_ICON_B REL_LOCK_SCREEN_H(LOCK_SCREEN_ICON_TOP_PAD+LOCK_SCREEN_ICON_HEIGHT)
+
+#define LOCK_SCREEN_VERTICAL_GAP 20
+#define LOCK_SCREEN_TEXT_LEFT_PADDING 15
+#define LOCK_SCREEN_TEXT_RIGHT_PADDING 15
+#define LOCK_SCREEN_TEXT_HEIGHT 144
+
+#define EXTRA_VOL_OUTER_L_PAD (-204)
+#define EXTRA_VOL_OUTER_WIDTH 544
+#define EXTRA_VOL_OUTER_T_PAD 438
+#define EXTRA_VOL_OUTER_HEIGHT 544
+
+#define EXTRA_VOL_INNER_CIRCLE_L_PAD 23
+#define EXTRA_VOL_INNER_CIRCLE_WIDTH 90
+#define EXTRA_VOL_INNER_CIRCLE_T_PAD 665
+#define EXTRA_VOL_INNER_CIRCLE_HEIGHT 90
+
+#define END_CALL_OUTER_L_PAD 140
+#define END_CALL_OUTER_WIDTH 544
+#define END_CALL_OUTER_T_PAD EXTRA_VOL_OUTER_T_PAD
+#define END_CALL_OUTER_HEIGHT 544
+
+#define END_CALL_INNER_CIRCLE_L_PAD 367
+#define END_CALL_INNER_CIRCLE_WIDTH 90
+#define END_CALL_INNER_CIRCLE_T_PAD EXTRA_VOL_INNER_CIRCLE_T_PAD
+#define END_CALL_INNER_CIRCLE_HEIGHT 90
+
+#define LOCK_SCREEN_TEXT_L REL_LOCK_SCREEN_W(LOCK_SCREEN_TEXT_LEFT_PADDING)
+#define LOCK_SCREEN_TEXT_R REL_LOCK_SCREEN_W(LOCK_SCREEN_LAYER_WIDTH-LOCK_SCREEN_TEXT_RIGHT_PADDING)
+#define LOCK_SCREEN_TEXT_T REL_LOCK_SCREEN_H(LOCK_SCREEN_ICON_TOP_PAD+LOCK_SCREEN_ICON_HEIGHT+LOCK_SCREEN_VERTICAL_GAP)
+#define LOCK_SCREEN_TEXT_B REL_LOCK_SCREEN_H(LOCK_SCREEN_ICON_TOP_PAD+LOCK_SCREEN_ICON_HEIGHT+LOCK_SCREEN_VERTICAL_GAP+LOCK_SCREEN_TEXT_HEIGHT)
+
+#define LOCK_SCREEN_EXT_VOL_INNER_CIRCLE_L REL_W(EXTRA_VOL_INNER_CIRCLE_L_PAD)
+#define LOCK_SCREEN_EXT_VOL_INNER_CIRCLE_R REL_W(EXTRA_VOL_INNER_CIRCLE_L_PAD+EXTRA_VOL_INNER_CIRCLE_WIDTH)
+#define LOCK_SCREEN_EXT_VOL_INNER_CIRCLE_T REL_H(EXTRA_VOL_INNER_CIRCLE_T_PAD)
+#define LOCK_SCREEN_EXT_VOL_INNER_CIRCLE_B REL_H(EXTRA_VOL_INNER_CIRCLE_T_PAD+EXTRA_VOL_INNER_CIRCLE_HEIGHT)
+
+#define LOCK_SCREEN_EXT_VOL_OUTER_CIRCLE_L REL_W(EXTRA_VOL_OUTER_L_PAD)
+#define LOCK_SCREEN_EXT_VOL_OUTER_CIRCLE_R REL_W(EXTRA_VOL_OUTER_L_PAD+EXTRA_VOL_OUTER_WIDTH)
+#define LOCK_SCREEN_EXT_VOL_OUTER_CIRCLE_T REL_H(EXTRA_VOL_OUTER_T_PAD)
+#define LOCK_SCREEN_EXT_VOL_OUTER_CIRCLE_B REL_H(EXTRA_VOL_OUTER_T_PAD+EXTRA_VOL_OUTER_HEIGHT)
+
+#define LOCK_SCREEN_END_CALL_INNER_CIRCLE_L REL_W(END_CALL_INNER_CIRCLE_L_PAD)
+#define LOCK_SCREEN_END_CALL_INNER_CIRCLE_R REL_W(END_CALL_INNER_CIRCLE_L_PAD+END_CALL_INNER_CIRCLE_WIDTH)
+#define LOCK_SCREEN_END_CALL_INNER_CIRCLE_T REL_H(END_CALL_INNER_CIRCLE_T_PAD)
+#define LOCK_SCREEN_END_CALL_INNER_CIRCLE_B REL_H(END_CALL_INNER_CIRCLE_T_PAD+END_CALL_INNER_CIRCLE_HEIGHT)
+
+#define LOCK_SCREEN_END_CALL_OUTER_CIRCLE_L REL_W(END_CALL_OUTER_L_PAD)
+#define LOCK_SCREEN_END_CALL_OUTER_CIRCLE_R REL_W(END_CALL_OUTER_L_PAD+END_CALL_OUTER_WIDTH)
+#define LOCK_SCREEN_END_CALL_OUTER_CIRCLE_T REL_H(END_CALL_OUTER_T_PAD)
+#define LOCK_SCREEN_END_CALL_OUTER_CIRCLE_B REL_H(END_CALL_OUTER_T_PAD+END_CALL_OUTER_HEIGHT)
+
+/*
+* End of Lock Screen Layout
+*/
+
+#endif /*_CALLUI_VIEW_LAYOUT_WVGA_H_*/
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 _VCUI_VIEW_LOCK_SCREEN_H_
+#define _VCUI_VIEW_LOCK_SCREEN_H_
+
+#include "callui.h"
+
+typedef struct _lock_sccreen_data {
+ Evas_Object *layout;
+ Evas_Object *hit_rect;
+
+ Ecore_Timer *no_lock_timer;
+ bool is_locked;
+
+} lock_screen_data_t;
+
+lock_screen_data_t *_callui_lock_screen_create_layout(call_view_data_t *view_data);
+void _callui_lock_screen_refresh_timer(call_view_data_t *view_data);
+void _callui_lock_screen_start_timer(void);
+void _callui_lock_screen_stop_timer(void);
+void _callui_lock_screen_unlock_screen(call_view_data_t *view_data);
+void _callui_lock_screen_delete_layout(lock_screen_data_t *lock_screen_priv);
+gboolean _callui_lock_screen_is_lockscreen_shown();
+void _callui_lock_screen_show_layout(lock_screen_data_t *lock_screen_priv);
+void _callui_lock_screen_hide_layout(lock_screen_data_t *lock_screen_priv);
+
+#endif //_VCUI_VIEW_LOCK_SCREEN_H_
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __CALLUI_VM_H_
+#define __CALLUI_VM_H_
+
+#include <Elementary.h>
+
+typedef enum {
+ VIEW_DIALLING_VIEW = 0,
+ VIEW_INCOMING_LOCK_VIEW,
+ VIEW_INCALL_ONECALL_VIEW,
+ VIEW_INCALL_MULTICALL_SPLIT_VIEW,
+ VIEW_INCALL_MULTICALL_CONF_VIEW,
+ VIEW_INCALL_MULTICALL_LIST_VIEW,
+ VIEW_ENDCALL_VIEW,
+ VIEW_QUICKPANEL_VIEW,
+ VIEW_MAX
+} callui_view_id_t;
+
+struct _view_data;
+
+typedef int (*create_cb) (struct _view_data *view_data, unsigned int param1, void *param2, void *appdata);
+typedef int (*update_cb) (struct _view_data *view_data, void *update_data);
+typedef int (*destroy_cb) (struct _view_data *view_data);
+typedef int (*show_cb) (struct _view_data *view_data, void *appdata);
+typedef int (*hide_cb) (struct _view_data *view_data);
+typedef int (*rotate_cb) (struct _view_data *view_data);
+
+typedef struct _view_data {
+ callui_view_id_t type; //CM_UI to do removed vcui_app_call_data_t *app_data;
+
+ create_cb onCreate;
+ update_cb onUpdate;
+ destroy_cb onDestroy;
+ show_cb onShow;
+ hide_cb onHide;
+ rotate_cb onRotate;
+
+ Evas_Object *layout;
+ void *priv;
+} call_view_data_t;
+
+typedef struct _view_manager_data view_manager_data_t;
+
+view_manager_data_t *_callvm_init();
+void _callvm_view_change(callui_view_id_t view_id, unsigned int param1, void *param2, void *appdata);
+callui_view_id_t _callvm_get_top_view_id(view_manager_data_t *view_manager_handle);
+void _callvm_view_auto_change(void *appdata);
+void _callvm_terminate_app_or_view_change(void *appdata);
+call_view_data_t * _callvm_get_call_view_data(void *ad, callui_view_id_t view_id);
+void _callvm_set_call_view_data(void *appdata, callui_view_id_t view_id,call_view_data_t *vd);
+Evas_Object *_callvm_get_view_layout(void *appdata);
+void _callvm_reset_call_view_data(void *appdata, callui_view_id_t view_id);
+
+#endif //__CALLUI_VM_H_
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 _CALLUI_VIEW_MULTI_CALL_CONF_H_
+#define _CALLUI_VIEW_MULTI_CALL_CONF_H_
+
+#include "callui-view-manager.h"
+
+call_view_data_t *_callui_view_multi_call_conf_new(callui_app_data_t *ad);
+
+#endif /*_CALLUI_VIEW_MULTI_CALL_CONF_H_*/
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 _CALLUI_VIEW_MULTI_CALL_LIST_H_
+#define _CALLUI_VIEW_MULTI_CALL_LIST_H_
+
+
+call_view_data_t *_callui_view_multi_call_list_new(callui_app_data_t *ad);
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 _CALLUI_VIEW_MULTI_CALL_SPLIT_H_
+#define _CALLUI_VIEW_MULTI_CALL_SPLIT_H_
+
+#include "callui-view-manager.h"
+
+/**
+ * @param[in] ad Application data
+ * @return new split view data
+ */
+call_view_data_t *_callui_view_multi_call_split_new(callui_app_data_t *ad);
+
+#endif //_CALLUI_VIEW_MULTI_CALL_SPLIT_H_
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __VCUI_VIEW_QUICKPANEL_H_
+#define __VCUI_VIEW_QUICKPANEL_H_
+
+typedef struct callui_view_qp_priv callui_view_qp_priv_t;
+
+/*voice_call_view_data_t*/
+call_view_data_t *_callui_view_qp_new(callui_app_data_t * ad);
+void _callui_view_qp_hide(callui_app_data_t *ad);
+void _callui_view_qp_install_window(callui_app_data_t *ad);
+void _callui_view_qp_uninstall_window(callui_app_data_t *ad);
+void _callui_view_qp_update_text_status(char *txt_status);
+Evas_Object *_callui_create_quickpanel_mute_button(void *data, Eina_Bool bdisable);
+Evas_Object *_callui_create_quickpanel_speaker_button(void *data, Eina_Bool bdisable);
+void _callui_view_quickpanel_change();
+void _callui_view_qp_set_call_timer(Evas_Object *qp_layout, char *pcall_timer);
+
+#endif /*__VCUI_VIEW_QUICKPANEL_H_*/
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __CALLUI_ONECALL_VIEW_H_
+#define __CALLUI_ONECALL_VIEW_H_
+
+#include "callui.h"
+#include "callui-view-manager.h"
+
+typedef struct incall_one_view_priv incall_one_view_priv_t;
+
+call_view_data_t *_callui_view_single_call_new(callui_app_data_t *ad);
+
+#endif //__CALLUI_ONECALL_VIEW_H_
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __CALLUI_H_
+#define __CALLUI_H_
+
+#include <dlog.h>
+#include <efl_extension.h>
+#include <Ecore_X.h>
+#include <call-manager.h>
+#include <call-manager-extension.h>
+
+#include "callui-view-manager.h"
+#include "callui-view-lock-screen.h"
+
+#ifndef CALLUI_EXPORT_API
+#define CALLUI_EXPORT_API __attribute__ ((visibility("default")))
+#endif
+
+#ifndef CALLUI_LOG_TAG
+#define CALLUI_LOG_TAG "CALLUI"
+#endif
+
+#define info(fmt,args...) { __dlog_print(LOG_ID_MAIN, DLOG_INFO, CALLUI_LOG_TAG, "<%s:%d> " fmt "\n", __func__, __LINE__, ##args); }
+#define dbg(fmt,args...) { __dlog_print(LOG_ID_MAIN, DLOG_DEBUG, CALLUI_LOG_TAG, "<%s:%d> " fmt "\n", __func__, __LINE__, ##args); }
+#define warn(fmt,args...) { __dlog_print(LOG_ID_MAIN, DLOG_WARN, CALLUI_LOG_TAG, "<%s:%d> " fmt "\n", __func__, __LINE__, ##args); }
+#define err(fmt,args...) { __dlog_print(LOG_ID_MAIN, DLOG_ERROR, CALLUI_LOG_TAG, "<%s:%d> " fmt "\n", __func__, __LINE__, ##args); }
+#define fatal(fmt,args...) { __dlog_print(LOG_ID_MAIN, DLOG_FATAL, CALLUI_LOG_TAG, "<%s:%d> " fmt "\n", __func__, __LINE__, ##args); }
+
+#define sec_err(fmt, arg...) {SECURE_LOGE(CALLUI_LOG_TAG, "<%s:%d> " fmt"\n", __func__, __LINE__, ##arg); }
+#define sec_warn(fmt, arg...) {SECURE_LOGW(CALLUI_LOG_TAG, "<%s:%d> " fmt"\n", __func__, __LINE__, ##arg); }
+#define sec_dbg(fmt, arg...) {SECURE_LOGD(CALLUI_LOG_TAG, "<%s:%d> " fmt"\n", __func__, __LINE__, ##arg); }
+
+#ifndef CALLUI_RETURN_IF_FAIL
+#define CALLUI_RETURN_IF_FAIL(check_condition) {\
+ if (!(check_condition)) \
+ { \
+ err("%s: Failed", #check_condition); \
+ return; \
+ } \
+}
+#endif
+
+#ifndef CALLUI_RETURN_VALUE_IF_FAIL
+#define CALLUI_RETURN_VALUE_IF_FAIL(check_condition, value) {\
+ if (!(check_condition)) \
+ { \
+ err("%s: Failed", #check_condition); \
+ return value; \
+ } \
+}
+#endif
+
+#ifndef CALLUI_RETURN_NULL_IF_FAIL
+#define CALLUI_RETURN_NULL_IF_FAIL(check_condition) {\
+ if (!(check_condition)) \
+ { \
+ err("%s: Failed", #check_condition); \
+ return NULL; \
+ } \
+}
+#endif
+
+#define MSG_PKG "org.tizen.message"
+
+#define MASK_ICON IMGDIR"/call_photo_id_mask.png"
+#define MULTI_CALL_LIST_MASK_ICON IMGDIR"/call_resume_play_mask.png"
+
+#define EDJ_NAME EDJDIR"/call.edj"
+#define CALL_THEME EDJDIR"/call_theme.edj"
+#define CALL_GENLIST_THEME EDJDIR"/call_genlist_theme.edj"
+
+#ifndef _EDJ
+#define _EDJ(obj) elm_layout_edje_get(obj)
+#endif
+
+#define CALLUI_TEXT_DOMAIN "call-ui"
+#define _(s) dgettext(CALLUI_TEXT_DOMAIN, s)
+
+#define GRP_MAIN_LY "main_ly"
+#define GRP_KEYPAD "keypad"
+#define GRP_MULTICALL "multicall-list"
+#define GRP_REJECT_MSG "reject_with_msg"
+#define GRP_QUICKPANEL "quickpanel"
+#define GRP_QUICKPANEL_LS "quickpanel_ls"
+#define GRP_SEPARATOR_LAYOUT "separator-layout"
+#define GRP_SEPARATOR_LAYOUT_1BUTTON "separator-layout-1button"
+#define GRP_SEPARATOR_LAYOUT_2BUTTON "separator-layout-2button"
+#define GRP_BUTTON_LAYOUT "button-layout"
+#define APP_CONTROL_OPERATION_DURING_CALL "http://tizen.org/appcontrol/oparation/during_call"
+#define APP_CONTROL_OPERATION_MESSAGE_REJECT "http://tizen.org/appcontrol/operation/message_reject"
+#define APP_CONTROL_OPERATION_END_CALL "http://tizen.org/appcontrol/operation/end_call"
+#define GRP_CALLER_INFO "caller-info"
+#define GRP_MANAGE_CALLS "manage-calls"
+#define GRP_EXTRA_VOLUME "extra-volume"
+#define GRP_LOCK_ACCEPT "lock_accept"
+#define GRP_LOCK_REJECT "lock_reject"
+#define GRP_LOCK_REJECT_WITH_MSG "lock_reject_with_msg"
+
+#define MAIN_WIN_WVGA_W 480
+#define MAIN_WIN_WVGA_H 800
+
+#define CALLUI_DISPLAY_NAME_LENGTH_MAX (255+1) /**< Voiecall Display Name Max Length */
+#define CALLUI_IMAGE_PATH_LENGTH_MAX (255+1) /**< Max File length for image */
+#define CALLUI_RINGTONE_PATH_LENGTH_MAX (255+1) /**< Max File length for Ringtone */
+#define CALLUI_VIB_PATH_LENGTH_MAX (255+1) /**< Max File length for Vibration */
+#define CALLUI_DATA_LENGTH_MAX (255+1) /**< Max data length for misc */
+#define CALLUI_PHONE_NUMBER_LENGTH_MAX (82+1) /**< Maximum length of a phone number */
+#define CALLUI_FORMATTED_NUMBER_LENGTH_MAX (164+1) /**< Maximum length of a phone number */
+#define CALLUI_PHONE_DISP_NUMBER_LENGTH_MAX (82+10+1) /**< Maximum length of a display phone number */
+#define CALLUI_PHONE_NAME_LENGTH_MAX (80+1) /**< Maximum length of a calling name */
+#define CALLUI_PHONE_SUBADDRESS_LENGTH_MAX (40+1) /**< Maximum length of a SUB address */
+#define CALLUI_PHONE_USSD_LENGTH_MAX (182+1) /**< Maximum length of a phone number */
+#define CALLUI_MAX_CALL_GROUP_MEMBER 5 /**< Maximum number of members in a group */
+#define CALLUI_MAX_CALL_MEMBER 8 /**< This is the maximum number of members possible */
+#define CALLUI_INVALID_CALL_ID 0 /**< This is the invalid entry for call ID */
+
+#define NO_HANDLE 0
+
+//typedef struct appdata callui_app_data_t;
+typedef struct _call_contact_data_t {
+ gint person_id; /**< Contact index of the Caller */
+ char call_disp_name[CALLUI_DISPLAY_NAME_LENGTH_MAX]; /**< Caller display name */
+ char caller_id_path[CALLUI_IMAGE_PATH_LENGTH_MAX]; /**< Caller image path */
+} call_contact_data_t;
+
+typedef struct _call_data_t {
+ unsigned int call_id;
+ cm_call_direction_e call_direction;
+ char call_num[CALLUI_PHONE_NUMBER_LENGTH_MAX];
+ char call_disp_num[CALLUI_PHONE_DISP_NUMBER_LENGTH_MAX]; /**< Caller display number */
+ long start_time;
+ cm_call_type_e call_type; /**< Specifies type of call (voice, data, emergency) */
+ cm_call_state_e call_state; /**< Current Call state */
+ int member_count; /**< Whether Call is in Conference or not and indicate the number of members in that conference*/
+ gboolean is_emergency; /**< is emergency*/
+ cm_call_domain_e call_domain; /**< Current Call domain */
+ call_contact_data_t call_ct_info; /**< Contact information */
+}call_data_t;
+
+typedef struct appdata {
+ Evas *evas;
+ Evas_Object *win;
+ Evas_Object *win_conformant;
+ Evas_Object *nf;
+ Evas_Object *bg;
+
+ /* Main Layout contents Start */
+ Evas_Object *main_ly;
+ /* Main Layout contents End */
+ Ecore_X_Atom quickpanel_scroll_state; /* Quick panel scrollable state */
+ call_view_data_t *view_data;
+
+ Evas_Object *ctxpopup;
+ Evas_Object *second_call_popup;
+ Evas_Object *bt_popup;
+
+ view_manager_data_t *view_manager_handle;
+
+ bool multi_call_list_end_clicked;
+
+ lock_screen_data_t *lock_screen_handle;
+
+ int root_w; /**<Width of a root window */
+ int root_h; /**<Height of a root window */
+
+ Eina_Bool speaker_status;
+ Eina_Bool extra_volume_status;
+ Eina_Bool extra_volume_status_force_stop;
+ Eina_Bool headset_status;
+ Eina_Bool mute_status;
+ Eina_Bool b_earset_key_longpress;
+
+ cm_client_h cm_handle; /**<Call manager client handle */
+ cm_multi_sim_slot_type_e sim_slot;
+
+ /*call list*/
+ call_data_t *incom;
+ call_data_t *active;
+ call_data_t *held;
+
+ bool active_incoming;
+
+ /*Call duration*/
+ Ecore_Timer *blink_timer;
+ Ecore_Timer *ending_timer;
+ Ecore_Timer *duration_timer;
+ int blink_cnt;
+ int current_sec;
+ int current_min;
+ int current_hour;
+
+ Ecore_Event_Handler *downkey_handler;
+ Ecore_Event_Handler *upkey_handler;
+ Ecore_Timer *earset_key_longpress_timer;
+
+ /*quickpanel*/
+ Evas_Object *win_quickpanel;
+ bool landscape;
+ Evas_Object *quickpanel_layout;
+ char *quickpanel_text;
+} callui_app_data_t;
+
+callui_app_data_t *_callui_get_app_data();
+
+#endif// __CALLUI_H_
--- /dev/null
+org.tizen.quickpanel org.tizen.call-ui rwx--- ------
+e17 org.tizen.call-ui -w---- ------
+
+org.tizen.call-ui app-svc::db rw---- ------
+org.tizen.call-ui aul::launch --x--- ------
+org.tizen.call-ui system::crash rwxat- ------
+org.tizen.call-ui system::homedir rwxa-- ------
+org.tizen.call-ui system::share rwx--- ------
+org.tizen.call-ui ug-setting-call-efl r-x--- ------
+org.tizen.call-ui msg-service rw---- ------
+org.tizen.call-ui msg-service::db r----- ------
+org.tizen.call-ui msg-service::read rw---- ------
+org.tizen.call-ui msg-service::write rw---- ------
+org.tizen.call-ui e17::notification rw---- ------
+org.tizen.call-ui enlightenment -w---- ------
+org.tizen.call-ui contacts-service rwx--- ------
+org.tizen.call-ui contacts-service::svc rwx--- ------
+org.tizen.call-ui callmgr::api_call r----- ------
+org.tizen.call-ui callmgr::signal rw---- ------
+
+org.tizen.call-ui dbus rwx--- ------
+org.tizen.call-ui deviced rwx--- ------
+org.tizen.call-ui deviced::display rw---- ------
+org.tizen.call-ui deviced::power rw---- ------
+org.tizen.call-ui device::app_logging -w---- ------
+org.tizen.call-ui xorg -w---- ------
+org.tizen.call-ui pkgmgr::db r----l ------
+org.tizen.call-ui isf rw---- ------
+org.tizen.call-ui pulseaudio rw---- ------
+
+org.tizen.call-ui org.tizen.indicator rwx--- ------
+org.tizen.call-ui org.tizen.indicator_shm r----- ------
+
+org.tizen.call-ui tizen::vconf::message r----l ------
+org.tizen.call-ui tizen::vconf::public::r r----l ------
+org.tizen.call-ui tizen::vconf::platform::rw rw---- ------
+org.tizen.call-ui tizen::vconf::public::r::platform::rw rw---- ------
+org.tizen.call-ui tizen::vconf::setting r----l ------
+org.tizen.call-ui tizen::vconf::setting::admin r----l ------
+org.tizen.call-ui tizen::vconf::camcorder r----l ------
+
--- /dev/null
+<manifest>
+ <define>
+ <domain name="org.tizen.call-ui"/>
+ </define>
+ <assign>
+ <filesystem path="/usr/share/packages/org.tizen.call-ui.xml" label="_"/>
+ </assign>
+ <request>
+ <domain name="org.tizen.call-ui"/>
+ </request>
+</manifest>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.4" package="org.tizen.call-ui" version="0.0.1" install-location="internal-only">
+ <label>Voice Call</label>
+ <description>Call UI Application</description>
+ <ui-application appid="org.tizen.call-ui" exec="/usr/apps/org.tizen.call-ui/bin/call-ui" nodisplay="true" multiple="false" type="capp" taskmanage="false">
+ <label>Voice Call</label>
+ <label xml:lang="en-gb">Voice Call</label>
+ <application-service>
+ <operation name="http://tizen.org/appcontrol/operation/call"/>
+ <uri name="tel"/>
+ </application-service>
+ <background-category value="media"/>
+ <background-category value="background-network"/>
+ </ui-application>
+ <privileges>
+ <privilege>http://tizen.org/privilege/notification</privilege>
+ </privileges>
+</manifest>
--- /dev/null
+Name: org.tizen.call-ui
+Summary: Call UI Application
+Version: 0.0.1
+Release: 1
+License: Apache-2.0
+Group: devel
+Source0: %{name}-%{version}.tar.gz
+
+%if "%{?tizen_profile_name}" == "wearable" || "%{?tizen_profile_name}" == "tv"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(appsvc)
+BuildRequires: pkgconfig(callmgr_client)
+BuildRequires: pkgconfig(ecore-x)
+BuildRequires: pkgconfig(msg-service)
+BuildRequires: pkgconfig(efl-extension)
+BuildRequires: pkgconfig(utilX)
+BuildRequires: cmake
+BuildRequires: gettext-tools
+BuildRequires: edje-tools
+BuildRequires: pkgconfig(capi-network-bluetooth)
+BuildRequires: pkgconfig(capi-network-connection)
+BuildRequires: pkgconfig(capi-system-system-settings)
+BuildRequires: pkgconfig(minicontrol-provider)
+BuildRequires: pkgconfig(contacts-service2)
+BuildRequires: pkgconfig(capi-system-device)
+BuildRequires: pkgconfig(notification)
+BuildRequires: pkgconfig(capi-system-runtime-info)
+BuildRequires: pkgconfig(capi-system-info)
+BuildRequires: pkgconfig(capi-ui-efl-util)
+
+%description
+Call UI application.
+
+%prep
+%setup -q
+
+%build
+export CFLAGS="${CFLAGS} -fvisibility=hidden"
+export CXXFLAGS="${CXXFLAGS} -fvisibility-inlines-hidden -fvisibility=hidden"
+export FFLAGS="${FFLAGS} -fvisibility-inlines-hidden -fvisibility=hidden"
+%define PREFIX /usr
+%define APPDIR %{PREFIX}/apps
+%define PKGDIR %{APPDIR}/%{name}
+%define BINDIR %{PKGDIR}/bin
+%define RESDIR %{PKGDIR}/res
+
+cmake . -DCMAKE_INSTALL_PREFIX=%{PREFIX}
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+#install license file
+mkdir -p %{buildroot}/usr/share/license
+cp LICENSE %{buildroot}/usr/share/license/%{name}
+
+%post
+
+%files
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{BINDIR}/*
+%{RESDIR}/*
+/usr/share/packages/*
+/usr/share/license/%{name}
+#/etc/smack/accesses2.d/%{name}.rule
+/etc/smack/accesses.d/%{name}.efl
--- /dev/null
+# for i18n
+
+SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de.po el_GR.po en.po en_PH.po en_US.po es_ES.po es_US.po et.po eu.po fi.po fr.po fr_CA.po ga.po gl.po hi.po hr.po hu.po hy.po is.po it_IT.po ja_JP.po ka.po kk.po ko_KR.po lt.po lv.po mk.po nb.po nl.po pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_TW.po)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+ SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+ MESSAGE("PO: ${pofile}")
+ GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+ GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+ SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${moFile}
+ COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+ DEPENDS ${absPofile}
+ )
+ INSTALL(FILES ${moFile}
+ DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+ SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "إضافة إلى جهات الاتصال"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "إلغاء"
+
+msgid "IDS_COM_SK_OK"
+msgstr "موافق"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "إنشاء جهة اتصال"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "رسالة"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "رقم الطوارئ"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "الرجوع إلى المكالمة"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "فشل الإرسال."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "رفض الاتصال مع رسالة"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "انتقال"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "لوحة المفاتيح"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "للتبديل إلى استخدام جهاز البلوتوث، سيتم تشغيل البلوتوث."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "مكالمات فائتة"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "لا يمكن تشغيل الصوت الإضافي أثناء توصيل سماعات الأذن أو سماعة الرأس البلوتوث."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "لا يمكن تشغيل الصوت الإضافي أثناء توصيل سماعات الأذن."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "لا يمكن تشغيل الصوت الإضافي أثناء توصيل سماعة الرأس البلوتوث."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "جاري الاتصال..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "مكالمة فائتة"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "تحويل"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "الخدمات"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "استئناف المكالمة"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "إنهاء المكالمة الجماعية"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "إنهاء المكالمة مع %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "إنهاء كل المكالمات الحالية"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "مكالمة متعددة الأطراف"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "انقر نقراً مزدوجاً فوق رمز القفل لإلغاء قفل الجهاز"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "تشغيل البلوتوث"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "الرد على مكالمة"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "عرض تفاصيل جهة الاتصال"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "تحديث الموجود"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "مكبر الصوت"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "استئناف"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "رفض"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "كتم"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "إدارة"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "تعليق"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "جهات الاتصال"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "إنشاء رسالة لإرسالها"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "اتصال"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "البلوتوث"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "إضافة مكالمة"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "قبول"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "مع %d من الأشخاص"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "غير معروف"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "تعليق الاتصال بـ %s"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "في انتظار"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "لا توجد رسائل"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "دمج"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "مكالمة واردة"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "تعليق مكالمة جارية"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "إنهاء المكالمات النشطة (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "جارٍ الاتصال عبر %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "متصلة عبر %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "تم الاتصال"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "تم إنهاء المكالمة"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d قيد التعليق"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "وضع %s قيد التعليق"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "اجتماع"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "العودة إلى شاشة الاتصال"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "مكالمة مرفوضة تلقائيا"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Kontaktlara əlavə et"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Ləğv et"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Ad yaz"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Mesaj"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Təcili yardım nömrəsi"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Zəng etmək üçün geri qayıdın"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Göndərmək mümkün olmadı."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Mesaj ilə zəngdən imtina edin"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Əvəz et"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Klaviat."
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Bluetooth cihazdan istifadəyə keçmək üçün Bluetooth yandırılacaq."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "buraxılmış zənglər"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Bluetooth qulaqlığı və ya qulaqlıqlar qoşulan zaman çox yüksək səsi yandırmaq olmaz."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Qulaqlıqlar qoşulan zaman çox yüksək səsi yandırmaq olmaz."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Bluetooth qulaqlığı qoşulan zaman çox yüksək səsi yandırmaq olmaz."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Yığılır..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Buraxılmış zəng"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Köçürülmə"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM Xidmətləri"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Zəngi bərpa et"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Konfrans zəngi bitir"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "%s ilə zəngi bitir"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Bütün cari zəngləri bitir"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konfrans zəngi"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Cihazı kiliddən açmaq üçün kilid nişanına iki dəfə vurun"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Bluetooth-u yandırın"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Zəngə cavab ver"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Kontakt məlumatına bax"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Mvcd olanı yenlə"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Dinamik"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Davam et"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "İmtina et"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Səssiz"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "İdarə et"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Gözlət"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kontaktlar"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Göndərmək üçün mesaj yarat"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Zəng"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Zng əlv.et"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Qəbul et"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "%d nəfərlə"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Naməlum"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s gözləməyə qoyulur"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Gözlədilr"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Mesaj yoxdur"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Birləşdir"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Gələn zəng"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Aktiv zəngi gözlədin"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Aktiv zəngləri bitir (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "%s ilə yığılır..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "%s ilə qoşulmuşdur"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Qoşulmuşdur"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Zəng bitdi"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d gözləmə"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "%s-i gözlət"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konfrans"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Zəng ekranına qayıt"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Avto-imtina edilmiş zəng"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Добави към Тел. Указ."
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Отмени"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Създай запис"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Съобщение"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Номер за спешно повикване"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Назад към повикването"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Неуспешно изпращане."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Отхвърляне пов. със съобщение"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Замени"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Клавиат."
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "За да превключите на използване на вашето Bluetooth устройство, Bluetooth ще бъде включен."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Пропyснати разговори"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Допълнителната сила на звука не може да бъде включена, докато има свързани слушалки или Bluetooth слушалка."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Допълнителната сила на звука не може да бъде включена, докато има свързани слушалки."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Допълнителната сила на звука не може да бъде включена, докато има свързана Bluetooth слушалка."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Набиране..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Пропуснат разговор"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Прехвърли"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM услуги"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Подновяване на разговор"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Прекратяване на конферентен разговор"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Край на разговора с %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Край на всички текущи повиквания"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Конферентен разговор"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Докоснете двукратно иконата за заключване, за да отключите устройството"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Включване на Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Отговаряне на повикване"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Преглед подроб. за контакт"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Актуал. съществ."
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Високог"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Подновяв."
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Отказ"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Заглуш."
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Управление"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Задръж"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Указател"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Съставяне съобщ. за изпращане"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Повикване"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Доб. разг."
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Приеми"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "С %d души"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Няма информация"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Разговорът с %s е задържан"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Задържане"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Няма съобщения"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Сливане"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Входящо повикване"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Задръж акт. разговор"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Край на активните (%d) разговори"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Набиране чрез %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Свързано чрез %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Свързано"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Разговорът завършен"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d задърж."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Задържане на %s"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Конферентен"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Връщане на екрана на пов."
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Автом. отхвърлено повикв."
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Afegeix a Contactes"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Acceptar"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Crea contacte"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Missatge"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Número d'emergència"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Torna a la trucada"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Error en enviar"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Rebutjar trucada amb missatge"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Intercanviar"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Teclat"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Per canviar a utilitzar el seu dispositiu Bluetooth, s'activarà Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Trucades perdudes"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "El volum extra no es pot activar mentre els auriculars o els auriculars Bluetooth estan connectats."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "El volum extra no es pot activar mentre els auriculars estan connectats."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "El volum extra no es pot activar mentre els auriculars Bluetooth estan connectats."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Marcant..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Trucada perduda"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transferir"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Serveis SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Reprendre trucada"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Finalitzar multiconferència"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Finalitzar trucada amb %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Finalitzar totes les trucades actuals"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Multiconferència"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Toqui dos cops la icona bloquejar per desbloquejar el dispositiu"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Activar el Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Respondre trucada"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Veure detalls del contacte"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Actual existents"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Altaveu"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Reprendre"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Rebutjar"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Silenci"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Gestionar"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Retenir"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Contactes"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Redactar missatge per enviar"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Trucar"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Af trucada"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Acceptar"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Amb %d persones"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Desconegut"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Posant %s en espera"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Retinguda"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "No hi ha cap missatge"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Fusionar"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Trucada d'entrada"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Retenir truc activa"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Finalitzar les trucades actives (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Marcant amb %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Connectat amb %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Connectat"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Trucada finalitzada"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d en esp"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Posar %s en espera"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Conferència"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Tornar a pant de trucada"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Trucada rebutjada auto"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Přidat do Kontaktů"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Zrušit"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Vytvořit kontakt"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Zpráva"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Číslo tísňového volání"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Zpět k hovoru"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Odeslání se nezdařilo."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Odmítnout hovor se zprávou"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Přepnout"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Klávesnice"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Chcete-li přepnout na zařízení Bluetooth, Bluetooth bude zapnuto."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Nepř. hovory"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Když jsou připojená sluchátka nebo sluchátka Bluetooth, nelze zapnout Dodatečnou hlasitost."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Když jsou připojená sluchátka, nelze zapnout Dodatečnou hlasitost."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Když jsou připojená sluchátka Bluetooth, nelze zapnout Dodatečnou hlasitost."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Připojuji hovor..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Zmeškaný hovor"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Přenos"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Služby karty SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Pokračovat v hovoru"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Ukončit konferenční hovor"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Ukončit hovor s %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Ukončit všechny aktuální hovory"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konferenční hovor"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Poklepáním na ikonu zámku odemknete zařízení"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Zapnout Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Přijmout hovor"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Zobrazit detaily kontaktu"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Akt. stávající"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Reprod."
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Pokračovat"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Odmítnout"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Ztlumit"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Spravovat"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Podržet"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kontakty"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Vytvořit zprávu pro odeslání"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Volat"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Př. hovor"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Přijmout"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Počet účastníků: %d"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Neznámé"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Přidržení hovoru s %s"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Za hovoru"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Žádné zprávy"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Sloučit"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Příchozí hovor"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Držet aktivní hovor"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Ukončit aktivní hovory (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Volám přes %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Připojen přes %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Připojeno"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Hovor ukončen"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d přidrž."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Přidržet %s"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konference"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Zpět na obrazovku hovoru"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Autom. odmítnutý hovor"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Føj til kontakter"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Annullér"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Opret kontakt"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Besked"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Nødopkaldsnummer"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Tilbage til opkald"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Afsendelse mislykkedes."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Afvis opkald med besked"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Skift"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Tastatur"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Hvis du skifter til at bruge din Bluetooth-enhed, bliver Bluetooth aktiveret."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Ubesvarede opkald"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Ekstra lydstyrke kan ikke aktiveres, mens øretelefoner eller Bluetooth-headset er tilsluttet."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Ekstra lydstyrke kan ikke aktiveres, mens øretelefoner er tilsluttet."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Ekstra lydstyrke kan ikke aktiveres, mens Bluetooth-headset er tilsluttet."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Ringer op..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Ubesvaret opkald"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Overfør"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM-tjenester"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Genoptag samtale"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Afslut konferenceopkald"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Afslut opkald med %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Afslut alle aktuelle opkald"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konferenceopkald"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Dobbelttryk på låseikonet for låse din enhed op"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Tænd for Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Besvar opkald"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Se kontaktdetaljer"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Opd. eksister."
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Højttaler"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Genoptag"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Afvis"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Lydløs"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Håndter"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Sæt på hold"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kontakter"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Skriv den besked, du vil sende"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Opkald"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Tilf. opk."
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Besvar"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Med %d personer"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Ukendt"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Sætter %s på hold"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "På hold"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Ingen meddelelser"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Flet"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Indgående opkald"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Hold aktivt opkald"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Afslut aktive opkald (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Ringer via %s ..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Forbundet via %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Forbundet"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Opkald afsluttet"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d på hold"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Sæt %s på hold"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konference"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Tilbage til opkaldsskærm"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Autoafviste opkald"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Zu Kontakten hinzufügen"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Abbrechen"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Neuer Kontakt"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Nachricht"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Notrufnummer"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Zurück zu Anruf"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Senden fehlgeschlagen"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Anruf mit Nachricht abweisen"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Tauschen"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Tastenfeld"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Zur Verwendung Ihres Bluetooth-Geräts wird Bluetooth eingeschaltet."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Anr. in Abwesenheit"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Zusätzliche Lautstärke kann nicht eingeschaltet werden, solange Kopfhörer oder ein Bluetooth-Headset angeschlossen sind."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Zusätzliche Lautstärke kann nicht eingeschaltet werden, solange Kopfhörer angeschlossen sind."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Zusätzliche Lautstärke kann nicht eingeschaltet werden, solange ein Bluetooth-Headset angeschlossen ist."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Wählen ..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Anruf in Abwesenheit"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Übertragen"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM-Dienste"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Anruf fortsetzen"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Telefonkonferenz beenden"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Anruf mit %s beenden"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Alle Anrufe beenden"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konferenz"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Tippen Sie zweimal auf das Sperrsymbol, um das Gerät zu entsperren."
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Bluetooth einschalten"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Anruf annehmen"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Kontaktdetails anzeigen"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Zu Kontakt hzfg."
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Lautsprecher"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Fortsetzen"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Abweisen"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Stumm"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Verwalten"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Halten"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kontakte"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Nachricht zum Senden verfassen"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Anruf"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Anruf hzfg."
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Annehmen"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Mit %d Personen"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Unbekannt"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s halten"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Gehalten"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Keine Nachrichten"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Konferenz"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Eingehender Anruf"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Aktiven Anruf halten"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Aktive Anrufe beenden (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Wählen über %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Verbindung über %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Verbunden"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Anruf beendet"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d paus."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Anruf von %s halten"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konferenz"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Zurück zum Anrufbildschirm"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Autom. abgelehnter Anruf"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Προσθήκη στις Επαφές"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Άκυρο"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Δημ/ργία επαφής"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Μήνυμα"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Αριθμός έκτακτης ανάγκης"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Επιστροφή στην κλήση"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Αποτυχία αποστολής."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Απόρριψη κλήσης με μήνυμα"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Εναλλ."
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Πληκτρολ."
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Για να κάνετε εναλλαγή στη χρήση τάση συσκευής Bluetooth, θα ενεργοποιηθεί το Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Αναπάντητες"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Δεν είναι δυνατή η ενεργοποίηση της επιπλέον έντασης όταν είναι συνδεδεμένα τα ακουστικά ή το σετ μικροφώνου-ακουστικών Bluetooth."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Δεν είναι δυνατή η ενεργοποίηση της επιπλέον έντασης όταν είναι συνδεδεμένα τα ακουστικά."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Δεν είναι δυνατή η ενεργοποίηση της επιπλέον έντασης όταν είναι συνδεδεμένο το σετ μικροφώνου-ακουστικών Bluetooth."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Κλήση..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Αναπάντητη κλήση"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Μεταφορά"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Υπηρεσίες SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Συνέχιση κλήσης"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Τερματισμός κλήσης συνδιάσκεψης"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Τερματισμός κλήσης με %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Τερματισμός όλων των τρεχουσών κλήσεων"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Τηλεφωνική συνδιάσκεψη"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Πατήστε δύο φορές το εικονίδιο κλειδώματος, για να ξεκλειδώσετε τη συσκευή σας"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Ενεργοποίηση Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Απάντηση κλήσης"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Προβολή στοιχείων επαφής"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Ενημ. υπαρχόντων"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Ηχείο"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Συνέχεια"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Απόρριψη"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Σίγαση"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Διαχείριση"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Αναμονή"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Επαφές"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Σύνταξη μηνύματος για αποστολή"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Κλήση"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Πρ. κλήσ."
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Αποδοχή"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Με %d άτομα"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Άγνωστο"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Θέτοντας %s σε αναμονή"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Αναμονή"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Κανένα μήνυμα"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Συγχώνευση"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Εισερχόμενη κλήση"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Ενερ. κλήση σε κράτ."
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Τερματισμός ενεργών κλήσεων (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Κλήση μέσω %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Συνδέθηκε μέσω %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Συνδέθηκε"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "H κλήση τερματίστ."
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d σε ανα."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Ενεργοποίηση αναμονής για %s"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Συνδιάσκεψη"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Επιστροφή στην οθ. κλήσης"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Αυτ. απόρριψη κλήσης"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Add to Contacts"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Create contact"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Emergency number"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Back to call"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Sending failed."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Reject call with message"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Swap"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Keypad"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "To switch to using your Bluetooth device, Bluetooth will be turned on."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Missed calls"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Extra volume cannot be turned on while earphones or Bluetooth headset connected."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Extra volume cannot be turned on while earphones connected."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Extra volume cannot be turned on while Bluetooth headset connected."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Dialling..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Missed call"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transfer"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM services"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Resume call"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "End conference call"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "End call with %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "End all current calls"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Conference call"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Double tap the lock icon to unlock your device"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Turn on Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Answer call"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "View contact details"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Update existing"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Speaker"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Resume"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Reject"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Mute"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Manage"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Hold"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Contacts"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Compose message to send"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Call"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Add call"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Accept"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "With %d people"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Putting %s on hold"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "On hold"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "No messages"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Merge"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Incoming call"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Hold active call"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "End active calls (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Dialling via %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Connected via %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Connected"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Call ended"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d on hold"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Put %s on hold"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Conference"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Return to call screen"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Auto rejected call"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Add to contacts"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Create contact"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Emergency number"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Back to call"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Sending failed."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Reject call with message"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Swap"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Keypad"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "To switch to using your Bluetooth device, Bluetooth will be turned on."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Missed calls"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Extra volume cannot be turned on while earphones or Bluetooth headset connected."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Extra volume cannot be turned on while earphones connected."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Extra volume cannot be turned on while Bluetooth headset connected."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Dialing..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Missed call."
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transfer"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM services"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Resume call"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "End conference call"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "End call with %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "End all current calls"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Conference call"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Double tap the lock icon to unlock your device"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Turn on Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Answer call"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "View contact details"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Update existing"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Speaker"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Resume"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Reject"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Mute"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Manage"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Hold"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Contacts"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Compose message to send"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Call"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Add call"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Accept"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "With %d people"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Putting %s on hold"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "On hold"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "No messages"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Merge"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Incoming call"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Hold active call"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "End active calls (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Dialing via %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Connected via %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Connected"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Call ended"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d on hold"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Put %s on hold"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Conference"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Return to call screen"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Auto rejected call"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Add to contacts"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Create contact"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Emergency number"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Back to call"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Sending failed"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Reject call with message"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Swap"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Keypad"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "To switch to using your Bluetooth device, Bluetooth will be turned on."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Missed calls"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Extra volume cannot be turned on while earphones or Bluetooth headset connected."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Extra volume cannot be turned on while earphones connected."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Extra volume cannot be turned on while Bluetooth headset connected."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Dialing..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Missed call"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transfer"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM services"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Resume call"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "End conference call"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "End call with %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "End all current calls"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Conference call"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Double tap the lock icon to unlock your device"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Turn on Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Answer call"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "View contact details"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Update existing"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Speaker"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Resume"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Reject"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Mute"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Manage"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Hold"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Contacts"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Compose message to send"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Call"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Add call"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Accept"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "With %d people"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Putting %s on hold"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "On hold"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "No messages"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Merge"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Incoming call"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Hold active call"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "End active calls (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Dialing via %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Connected via %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Connected"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Call ended"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d on hold"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Put %s on hold"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Conference"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Return to call screen"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Auto rejected call"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Añadir a Contactos"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Aceptar"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Crear contacto"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Mensajes"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Emergencias"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Volver a la llamada"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Error al enviar"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Rechazar llamada con mensaje"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Cambiar"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Teclado"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Para usar el dispositivo Bluetooth, se activará el Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Llams perd"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "El volumen extra no se puede activar mientras que el auricular Bluetooth o los auriculares convencionales estén conectados."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "El volumen extra no se puede activar mientras que los auriculares estén conectados."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "El volumen extra no se puede activar mientras que el auricular Bluetooth esté conectado."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Marcando..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Llamada perdida"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transferir"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Servicios SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Reanudar llamada"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Finalizar llamada de conferencia"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Finalizar llamada con %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Finalizar todas las llamadas actuales"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Multiconferencia"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Pulse dos veces el icono de bloqueo para desbloquear su dispositivo"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Activar Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Responder llamada"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Ver detalles de contacto"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Actualiz. exist."
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Altavoz"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Reanudar"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Rechazar"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Silencio"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Gestionar"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Retener"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Contactos"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Crear mensaje para enviar"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Llamar"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Añadir llamada"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Aceptar"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Con %d personas"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Poniendo %s en espera"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "En espera"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "No hay mensajes"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Fusionar"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Llamada entrante"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Poner llam act esper"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Finalizar llamadas activas (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Marcando con %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Conectado por %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Conectado"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Fin llamada"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d en esp"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Poner a %s en espera"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Conferencia"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Volver a pantalla llamada"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Llamada rechazada auto"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Añadir a Contactos"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Aceptar"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Crear contacto"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Mensaje"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Emergencia"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Volver a la llamada"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Error al enviar."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Rechazar llamada con un mensaje"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Cambiar"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Teclado"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Para usar el dispositivo Bluetooth, se activará el Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Llamadas perdidas"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "El volumen extra no se puede activar mientras el auricular o el auricular Bluetooth estén conectados."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "El volumen extra no se puede activar mientras el auricular esté conectado."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "El volumen extra no se puede activar mientras el auricular Bluetooth esté conectado."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Marcando..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Llamada perdida"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transferir"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Servicios SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Reanudar llamada"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Finalizar multiconferencia"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Finalizar llamada con %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Terminar todas las llamada actuales"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Multiconferencia"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Pulsar el ícono de bloqueo dos veces para desbloquear el dispositivo"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Activar Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Responder llamada"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Ver detalles de contacto"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Actualizar"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Altavoz"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Reanudar"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Rechazar"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Silenciar"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Administrar"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Retener"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Contactos"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Redactar mensaje para enviar"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Llamar"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Añadir"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Aceptar"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Con %d personas"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Poner a %s en espera"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "En espera"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "No hay mensajes"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Conferencia"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Llamada entrante"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Llam. act. en espera"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Finalizar llamadas activas (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Marcando vía %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Conectado a %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Conectado"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Llamada finalizada"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d en espera"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Poner a %s en espera"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Multiconferencia"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Volver a pantalla llamada"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Llamada rechazada auto."
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Lisa kontaktidesse"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Tühista"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Loo kontakt"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Sõnum"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Hädaabinumber"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Tagasi kõne juurde"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Saatmine nurjus."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Keeldu sõnumiga"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Vaheta"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Klahvid"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Bluetooth-seadme kasutamiseks lülitatakse Bluetooth sisse."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Vastamata"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Lisahelitugevust ei saa sisse lülitada sel ajal, kui kõrvaklapid või Bluetooth-peakomplekt on ühendatud."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Lisahelitugevust ei saa sisse lülitada sel ajal, kui kõrvaklapid on ühendatud."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Lisahelitugevust ei saa sisse lülitada sel ajal, kui Bluetooth-peakomplekt on ühendatud."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Ühenduse loomine..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Vastamata kõne"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Edasta"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM-teenused"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Jätka kõnet"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Lõpeta konverentskõne"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Lõpeta kõne kontaktiga %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Lõpeta kõik aktiivsed kõned"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Liitu konverentskõnega"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Seadme avamiseks toksake kaks korda lukuikooni"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Lülita Bluetooth sisse"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Vasta kõnele"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Kuva kontakti üksikasjad"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Uuenda praegune"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Kõlar"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Taasta"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Keeldu"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Vaigista"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Halda"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Ootele"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kontaktid"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Koosta sõnum saatmiseks"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Helista"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Lisa kõne"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Nõustu"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Koos %d inimesega"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Tundmatu"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Kõne kontaktiga %s pannakse ootele"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Ootel"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Sõnumid puuduvad"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Ühenda"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Sissetulev kõne"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Aktiivne kõne ootele"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Lõpeta aktiivne kõne (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Valimine üksuse %s kaudu..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Ühendatud üksuse %s kaudu"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Ühendatud"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Kõne lõppes"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d ootel"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Pane %s ootele"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konverentskõne"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Naase kõneekraanile"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Autom. keeldutud kõne"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Kontaktuetara gehitu"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Ezeztatu"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Ados"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Kontaktua sortu"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Mezua"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Larrialdietarako zenbakia"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Deira itzuli"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Bidaltzerakoan akatsa"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Ukatu deia mezuaz"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Ordezkatu"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Teklatua"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Zure Bluetooth gailua erabiltzen hasteko, Bluetootha piztuko da."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Galdutako deiak"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Ezin da bolumen gehigarria piztu aurikularrak edo Bluetooth aurikularrak konektatuta badaude."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Ezin da bolumen gehigarria piztu aurikularrak konektatuta badaude."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Ezin da bolumen gehigarria piztu Bluetooth aurikularrak konektatuta badaude."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Markatzen..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Galdutako deia"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transferitu"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM zerbitzuak"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Berreskuratu deia"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Amaitu konferentzia deia"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Amaitu %s-(r)ekin duzun deia"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Amaitu oraingo dei guztiak"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Hizketaldi deia"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Ukitu bi aldiz blokeo ikonoa, gailua desblokeatzeko"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Piztu Bluetootha"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Erantzun deia"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Ikusi kontaktu xehetasunak"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Eguner. daudenak"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Bozgor."
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Berrabiar."
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Ukatu"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Isilarazi"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Kudeatu"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Mantendu"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kontaktuak"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Idatzi bidaltzeko mezua"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Deitu"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetootha"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Gehi. deia"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Onartu"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "%d pertsonarekin"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Ezezaguna"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s zain jartzen"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Egonean"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Mezurik ez"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Bateratu"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Sarrerako deia"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Eutsi dei aktiboa"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Amaitu aktibo dauden deiak (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "%s bidez markatzen..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "%s bidez konektatuta"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Konektatuta"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Deia amaituta"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d egonean"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Jarri %s zain"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konferentzia"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Itzuli dei pantailara"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Ukatu deia automatikoki"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Lisää yhteystietoihin"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Peruuta"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Luo yhteystieto"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Viesti"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Hätänumero"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Takaisin puheluun"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Lähetys epäonnistui."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Hylkää puhelu viestillä"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Vaihda"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Nronäpp."
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Bluetooth otetaan käyttöön, jotta voit siirtyä käyttämään Bluetooth-laitetta."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Ei vast. puh"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Lisävoimakkuutta ei voi ottaa käyttöön, kun kuulokkeet tai Bluetooth-kuulokemikrofoni on yhdistetty."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Lisävoimakkuutta ei voi ottaa käyttöön, kun kuulokkeet on yhdistetty."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Lisävoimakkuutta ei voi ottaa käyttöön, kun Bluetooth-kuulokemikrofoni on yhdistetty."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Soitetaan..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Vastaamaton puhelu"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Siirrä"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM-palvelut"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Jatka puhelua"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Lopeta neuvottelupuhelu"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Lopeta puhelu henkilön %s kanssa"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Lopeta kaikki käynnissä olevat puhelut"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Neuvottelupuhelu"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Poista laitteen lukitus kaksoisnapauttamalla lukon kuvaketta"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Käynnistä Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Vastaa puheluun"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Näytä yhteystiedot"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Päivitä nykyiset"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Kaiutin"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Jatka"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Hylkää"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Mykistä"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Hallinta"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Pitoon"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Yhteystiedot"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Luo lähetettävä viesti"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Puhelu"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Lisää puh."
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Vastaa"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "%d ihmisen kanssa"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Tuntematon"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s on asetettu pitoon"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Pidossa"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Ei viestejä"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Yhdistä"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Saapuva puhelu"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Akt. puhelu pitoon"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Lopeta aktiiviset puhelut (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Soitto kortilta %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Yhdistetty kortilta %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Yhdistetty"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Puhelu päättyi"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d pidossa"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Aseta %s pitoon"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Neuvottelu"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Palaa puhelunäyttöön"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Autom. hylätty puhelu"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Ajouter aux contacts"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Créer un contact"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Numéro d'urgence"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Retour à l'appel"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Échec de l'envoi."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Rejeter l'appel avec un message"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Permuter"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Clavier"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Pour passer en mode Bluetooth sur votre appareil, le Bluetooth va être activé."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Appels manqués"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Impossible d'utiliser le volume supplémentaire lorsque des écouteurs ou un casque Bluetooth sont connectés."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Impossible d'utiliser le volume supplémentaire lorsque des écouteurs sont connectés."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Impossible d'utiliser le volume supplémentaire lorsqu'un casque Bluetooth est connecté."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Composition..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Appel manqué"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transférer"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Services SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Reprendre l'appel"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Interrompre la conférence audio"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Terminer l'appel avec %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Terminer tous les appels en cours"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Conférence téléphonique"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Appuyer deux fois sur l'icône de verrouillage pour déverrouiller l'appareil"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Activer Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Répondre à l'appel"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Afficher les détails"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "MAJ cont. exist."
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "HP"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Reprendre"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Refuser"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Muet"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Gérer"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Attente"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Contacts"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Composer le message à envoyer"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Appeler"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Ajouter"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Accepter"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Avec %d personnes"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Appel masqué"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Mettre %s en attente"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Attente"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Aucun message"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Fusionner"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Appel entrant"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Mettre en attente"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Terminer appels actifs (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Numérotation via %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Connecté via %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Connecté"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Appel terminé"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d en att."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Mettre %s en attente"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Conférence"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Revenir à l'écran d'appel"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Appel rejeté auto"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Ajouter aux contacts"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Nouveau contact"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Numéro d'urgence"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Retour à l'appel"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Échec de l'envoi."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Rejeter l'appel avec un message"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Permuter"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Clavier"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Pour passer en mode Bluetooth sur votre appareil, le Bluetooth va être activé."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Appels manqués"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Impossible d'utiliser le volume supplémentaire lorsque des écouteurs ou un casque Bluetooth sont connectés."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Impossible d'utiliser le volume supplémentaire lorsque des écouteurs sont connectés."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Impossible d'utiliser le volume supplémentaire lorsqu'un casque Bluetooth est connecté."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Composition..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Appel manqué"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transférer"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Services SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Reprendre l'appel"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Interrompre la conférence audio"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Terminer l'appel avec %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Terminer tous les appels en cours"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Conférence téléphonique"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Touchez deux fois sur l'icône de verrouillage pour déverrouiller l'appareil"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Activer Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Répondre à l'appel"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Afficher les détails"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "MÀJ contact"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "HP"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Reprendre"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Refuser"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Muet"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Gérer"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Attente"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Contacts"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Composer le message à envoyer"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Appel"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Ajouter"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Accepter"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Avec %d personnes"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Appel masqué"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Mettre %s en attente"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "En attente"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Aucun message"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Fusionner"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Appel entrant"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Mettre en attente"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Terminer appels actifs (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Numérotation via %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Connecté via %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Connecté"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Appel terminé"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d en att."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Mettre %s en attente"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Conférence"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Revenir à l'écran d'appel"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Appel rejeté auto"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Cuir le Teagmhálaithe"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Cuir ar ceal"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Déan teagmhálaí"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Teachtaireacht"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Uimhir éigeandála"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Siar chuig glao"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Theip ar sheoladh."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Diúltaigh do ghlao le tcht"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Malartú"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Eochaircheap"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Casfar Bluetooth air le haistriú chuig do gléas Bluetooth a úsáid"
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Glaonna caillte"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Ní féidir airde bhreise a chasadh air agus cluasáin nó gléas cinn Bluetooth ceangailte."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Ní féidir airde bhreise a chasadh air agus na cluasáin ceangailte."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Ní féidir airde bhreise a chasadh air agus gléas cinn Bluetooth ceangailte."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Ag diailiú..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Glao caillte"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Aistrigh"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Seirbhísí SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Téigh ar ais chuig an nglao"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Scoir glao comhdhála"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Scoir glao le %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Scoir gach glao reatha"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Glao comhdhála"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Déthapáil an cnaipe Glasáil le do ghléas a dhíghlasáil"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Cas Bluetooth air"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Freagair glao"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Amh. ar shonraí teagmhálaí"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Nuashonraigh é"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Callaire"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Atosaigh"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Diúltaigh"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Balbh"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Bainistigh"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Ar Fionraí"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Teagmhálaithe"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Cum teachtaireacht le seoladh"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Glaoigh"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Glao leis"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Glac leis"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Le %d duine"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Anaithnid"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s á chur ar fionraí"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Ar fionraí"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Níl teachtaireachtaí ann"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Cumasc"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Glao isteach"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Fionraigh glao gníomhach"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Críochnaigh glaonna gníomhacha (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Diailiú le %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Nasctha trí %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Nasctha"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Glao scortha"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d ar fionraí"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Cuir %s ar fionraí"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Comhdháil"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Fill ar an scáileán glao"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Glao diúlt. go huathoib."
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Engadir a Contactos"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Aceptar"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Crear contacto"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Mensaxe"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Número de urxencia"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Volver á chamada"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Erro de envío"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Rexeitar chamada cunha mensaxe"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Cambiar"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Teclado"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Para cambiar a usar o dispositivo Bluetooth, o Bluetooth activarase."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Chamadas perdidas"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Non se pode activar Volume extra cos auriculares ou o auricular Bluetooth conectados."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Non se pode activar Volume extra cos auriculares conectados."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Non se pode activar Volume extra cos auriculares Bluetooth conectados."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Marcando..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Chamada perdida"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transferir"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Aplicacións SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Continuar chamada"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Finalizar chamada de conferencia"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Finalizar chamada con %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Finalizar todas as chamadas actuais"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Multiconferencia"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Toca dúas veces na icona de bloqueo para desbloquear o dispositivo"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Activar o Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Responder chamada"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Ver detalles do contacto"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Actualizar exist"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Altof."
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Continuar"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Rexeitar"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Silenc."
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Xestionar"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "En esp."
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Contactos"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Redactar mensaxe para enviar"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Chamar"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Eng cham"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Aceptar"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Con %d persoas"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Descoñecido"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Colocando a %s en espera"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "En espera"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Non hai mensaxes"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Fusionar"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Chamada entrante"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Manter chamada act."
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Finalizar chamadas activas (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Marcando con %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Conectado por %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Conectado"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Chamada finalizada"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d en esp."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Poñer %s en espera"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Conferencia"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Volver á pantalla chamada"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Chamada rexeitada autom."
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "संपर्को में जोड़ें"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "रद्द"
+
+msgid "IDS_COM_SK_OK"
+msgstr "ओके"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "संपर्क बनाएं"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "सन्देश"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "आपातकालीन नंबर"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "कॉल पर वापस"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "भेजना विफल हुआ।"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "संदेश के साथ कॉल अस्वीकारें"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "स्वैप"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "कीपैड"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "अपने ब्लूटूथ डिवाइस का उपयोग करने हेतु स्विच करने के लिए, ब्लूटूथ को चालू किया जाएगा।"
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "छूटी कॉल्स"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "इयरफ़ोन्स या ब्लूटूथ हेडसेट कनेक्ट रहने के दौरान अतिरिक्त वॉल्यूम चालू नहीं किया जा सकता है।"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "इयरफ़ोन्स कनेक्ट रहने के दौरान अतिरिक्त वॉल्यूम चालू नहीं किया जा सकता।"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "ब्लूटूथ हेडसेट कनेक्ट रहने के दौरान अतिरिक्त वॉल्यूम चालू नहीं किया जा सकता।"
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "डायल हो रहा है..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "छूटी कॉल"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "स्थानांतरण"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM सेवाएँ"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "कॉल फिर शुरू करें"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "कॉन्फ़्रेंस कॉल समाप्त करें"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "%s के साथ कॉल समाप्त करें"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "सभी चालू कॉल्स समाप्त करें"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "कॉन्फ्रेंस कॉल"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "अपने डिवाइस को अनलॉक करने के लिए लॉक चिह्न पर दो बार टैप करें"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "ब्लूटूथ चालू करें"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "कॉल का उत्तर दें"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "संपर्क विवरण देखें"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "मौजूदा अपडेट करें"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "स्पीकर"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "पुनः शुरू"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "अस्वीकारे"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "मूक"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "प्रबंधित करें"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "होल्ड"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "संपर्क"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "भेजने के लिए सन्देश लिखें"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "कॉल"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "ब्लूटूथ"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "कॉल जोड़ें"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "स्वीकारे"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "%d लोगों के साथ"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s को प्रतीक्षा में रख रहे है"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "होल्ड पर"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "सन्देश नहीं"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "मिलाएं"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "आनेवाली कॉल"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "सक्रिय कॉल होल्ड करें"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "सक्रिय कॉल समाप्त करें (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "%s के द्वारा डायल कर रहा है..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "%s द्वारा कनेक्ट किया गया"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "कनेक्ट किया गया"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "कॉल समाप्त"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d होल्ड पर"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "%s होल्ड पर रखें"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "कॉन्फ़्रेंस"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "कॉल स्क्रीन पर वापस जाएँ"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "स्वतः अस्वीकृत कॉल"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Dodaj u Imenik"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Prekid"
+
+msgid "IDS_COM_SK_OK"
+msgstr "U redu"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Novi kontakt"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Poruka"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "SOS broj"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Natrag na poziv"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Slanje neuspješno."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Odbijanje poziva\nuz poruku"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Zamijeni"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Tipkovnica"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Za prebacivanje na korištenje Bluetooth uređaja uključit će se Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Propušteni pozivi"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Nije moguće uključiti dodatnu glasnoću dok su uključene slušalice ili Bluetooth slušalice."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Nije moguće uključiti dodatnu glasnoću dok su uključene slušalice."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Nije moguće uključiti dodatnu glasnoću dok su uključene Bluetooth slušalice."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Pozivanje..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Propušteni poziv"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Prijenos"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM usluge"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Nastavak poziva"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Prekini konferencijski poziv"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Prekid poziva s %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Prekini sve trenutne pozive"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konferencijski poziv"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Dvaput dodirnite ikonu zaključavanja da biste otključali uređaj"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Uključi Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Preuzmi poziv"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Detalji kontakta"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Aktualiziraj"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Zvučnik"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Nastavi"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Odbaci"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Bešumno"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Uredi"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Čekanje"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Imenik"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Sastavi poruku za slanje"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Poziv"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Dodaj poziv"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Prihvati"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "S %d ljudi"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Staviti %s na čekanje"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Na ček."
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Nema poruka"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Spoji"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Dolazni poziv"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Preuzmi drugi poziv"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Prekini aktivne pozive (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Biranje putem %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Povezano putem %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Spojen"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Završen poziv"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d na ček."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Stavi %s na čekanje"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konferencija"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Natrag na zaslon za poziv."
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Poziv auto. odbačen"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Kapcsolatokhoz ad"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Mégse"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Új névjegy"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Üzenet"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Segélyhívó szám"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Vissza a híváshoz"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "A küldés sikertelen."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Híváselutasítás üzenetben"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Átvált"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Bill.-zet"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Ha átvált a Bluetooth-eszköz használatára, bekapcsol a Bluetooth funkció."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Nem fogadott"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Csatlakoztatott fülhallgató vagy Bluetooth-headset mellett nem kapcsolható be a többlethangerő."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Csatlakoztatott fülhallgató mellett nem kapcsolható be a többlethangerő."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Csatlakoztatott Bluetooth-headset mellett nem kapcsolható be a többlethangerő."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Hívás..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Nem fogadott hívás"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Átad"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM-szolgáltatások"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Hívás folytatása"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Konferenciahívás befejezése"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "%s partnerrel folytatott hívás befejezése"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Minden zajló hívás befejezése"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konferenciahívás"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Az eszköz feloldásához érintse meg kétszer a Lakat ikont"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Kapcsolja be a Bluetooth-t"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Hívás fogadása"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Névjegyadatok megtekintése"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Megl. frissítése"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Hangsz."
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Folytatás"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Elutasít"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Némít"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Kezelés"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Tart"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Névjegyek"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Elküldendő üzenet írása"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Hívás"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Új hívás"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Fogad"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "%d résztvevő"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Ismeretlen"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s tartásba helyezése"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Tartásban"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Nincs üzenet"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Egyesítés"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Bejövő hívás"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Aktív hívás tartása"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Aktív hívások bontása (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Hívás a(z) %s használatával..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "%s használatával kapcsolódott"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Kapcsolódva"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Hívás vége"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d tartva"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "%s tartásba helyezése"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konferencia"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Vissza a hívásképernyőhöz"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Aut. elutasított hívás"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Ավելացնել Կոնտակտներում"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Չեղարկել"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Ընդունել"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Ստեղծել կոնտակտ"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Հաղորդագրություն"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Վթարային համար"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Ետ դառնալ կանչին"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Ուղարկումը ձախողվեց:"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Մերժել զանգը հաղորդագրությամբ"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Փոխարկում"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Ստեղնաշար"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Ձեր Bluetooth սարքով փոխարկելու համար միացրեք Bluetooth-ը:"
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Բցթղծ կանչեր"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Ձայնի լրացուցիչ ուժգնությունը չի կարող միացվել, երբ ականջակալները կամ Bluetooth գլխային հեռախոսը միացված են:"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Ձայնի լրացուցիչ ուժգնությունը չի կարող միացվել, երբ ականջակալները միացված են:"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Ձայնի լրացուցիչ ուժգնությունը չի կարող միացվել, երբ Bluetooth գլխային հեռախոսը միացված է:"
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Համարհավաքում..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Բացթողած զանգ"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Փոխանցել"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM ծառայություններ"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Վերսկսել կանչը"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Ավարտել հեռախոսային խորհրդակցությունը"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Ավարտել կանչը %sի հետ"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Ավարտել բոլոր ընթացիկ կանչերը"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Հեռախոսային կոնֆերանս"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Կրկնակի թակեք կողպման պատկերակը՝ սարքն արգելաբացելու համար"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Միացնել Bluetooth-ը"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Պատասխանել կանչին"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Դիտել կոնտակտային տվյալներ"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Թարմացնել եղածը"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Բրձրխոս"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Վերսկսել"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Մերժել"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Անձայն"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Կառավարել"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Պահել"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Կոնտակտներ"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Հղրդգրթյուն գրել ուղարկելու հր"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Կանչ"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Ավլց. կանչ"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Ընդունել"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "%d հոգու հետ"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Անհայտ"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s հետաձգվում է"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Սպասման մեջ է"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Հաղորդագրություններ չկան"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Միավորել"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Մուտքային կանչ"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Պահել ակտիվ զանգը"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Ավարտել ակտիվ կանչերը (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Համարը հավաքվում է %s-ով..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Միացված է %s-ով"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Միացված է"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Կանչն ավարտված է"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d` սպասող"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Հետաձգել %sի կանչը"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Կոնֆերանս"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Վերադառնալ կանչի էկրան"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Ինքնաբերաբար մերժված զանգ"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Bæta við tengiliði"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Hætta við"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Í lagi"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Nýr tengiliður"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Skilaboð"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Neyðarnúmer"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Aftur í símtal"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Sending mistókst."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Hafna símtali með skilaboðum"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Skipta"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Takkaborð"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Til að hægt sé að nota Bluetooth-tækið þitt verður kveikt á Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Ósvöruð símtöl"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Ekki er hægt að kveikja á auknum hljóðstyrk þegar heyrnartól eða Bluetooth-höfuðtól eru tengd."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Ekki er hægt að kveikja á auknum hljóðstyrk þegar heyrnartól eru tengd."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Ekki er hægt að kveikja á auknum hljóðstyrk þegar Bluetooth-höfuðtól eru tengd."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Verið er að hringja..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Ósvarað"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Flytja"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM-þjónusta"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Halda símtali áfram"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Ljúka símafundi"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Ljúka símtali við %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Ljúka öllum símtölum"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Símafundur"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Pikkaðu tvisvar á lástáknið til að taka tækið úr lás"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Kveikja á Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Svara símtali"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Skoða samskiptaupplýsingar"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Uppfæra"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Hátalari"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Halda áfr."
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Hafna"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Hljóð af"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Umsjón"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Setja í bið"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Símaskrá"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Skrifa skilaboð til að senda"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Símtal"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Símtal"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Samþykkja"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Með %d aðilum"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Óþekkt"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Setja %s í bið"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Í bið"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Engin boð"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Sameina"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Móttekið símtal"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Virkt símtal í bið"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Ljúka símtali í gangi (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Hringt um %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Tengt gegnum %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Tengt"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Símtali lokið"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d í bið"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Setja %s í bið"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Símafundur"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Fara aftur á símtalsskjá"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Sjálfkrafa hafnað símtal"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Aggiungi a Rubrica"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Annulla"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Aggiungi"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Messaggio"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Numero di emergenza"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Torna alla chiamata"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Invio non riuscito."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Rifiuta chiamata con messaggio"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Scambia"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Tastiera"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Il Bluetooth verrà attivato per iniziare a usare il dispositivo Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Chiamate perse"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Non è possibile attivare il volume aggiuntivo quando gli auricolari o l'auricolare Bluetooth sono connessi."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Non è possibile attivare il volume aggiuntivo quando gli auricolari sono connessi."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Non è possibile attivare il volume aggiuntivo quando l'auricolare Bluetooth è connesso."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Composizione..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Chiamata persa"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Trasferisci"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Servizi SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Riprendi chiamata"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Termina conferenza"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Termina chiamata con %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Termina tutte le chiamate correnti"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Conferenza"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Toccate due volte l'icona Blocca per sbloccare il dispositivo"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Attiva Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Rispondi"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Vedi dettagli contatto"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Aggiorna"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Vivavoce"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Riprendi"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Rifiuta"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Muto"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Gestisci"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "In attesa"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Rubrica"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Crea messaggio da inviare"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Chiama"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Chiama"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Accetta"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Con %d persone"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Sconosciuto"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Metti %s in attesa"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "In attesa"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Nessun messaggio"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Unisci"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Chiamata in arrivo"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Ch. attiva in attesa"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Termina chiamate attive (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Composizione con %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Connesso con %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Connesso"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Chiamata terminata"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d in att."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Metti %s in attesa"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Conferenza"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Ritorna a scherm. chiamata"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Chiamata rifiutata autom."
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "連絡先に追加"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "キャンセル"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "連絡先を登録"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "メッセージ"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "緊急通報番号"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "通話に戻る"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "送信に失敗しました。"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "着信拒否時にメッセージを送信"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "切替"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "キーパッド"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Bluetoothデバイスを使用するために、[Bluetooth]をONにします。"
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "不在着信"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "イヤホンやBluetoothヘッドセットを接続しているときは、[最大音量]をONにできません。"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "イヤホンを接続しているときは、[最大音量]をONにできません。"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Bluetoothヘッドセットを接続しているときは、[最大音量]をONにできません。"
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "発信中..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "不在着信"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "転送"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIMサービス"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "通話を再開"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "電話会議を終了"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "%sとの通話を終了"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "全ての通話を終了"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "グループ通話"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "端末のロックを解除するには、ロックアイコンをダブルタップしてください"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "BluetoothをON"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "着信に応答"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "連絡先の詳細を表示"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "連絡先を更新"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "スピーカー"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "再開"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "拒否"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "消音"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "管理"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "保留"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "連絡先"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "送信するメッセージを作成"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "発信"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "通話を追加"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "応答"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "%d人と通話中"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "通知不可能"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%sとの通話を保留"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "保留中"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "メッセージがありません"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "グループ通話"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "音声着信"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "現在の通話を保留"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "アクティブ通話を終了する(%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "%sで発信中..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "%sで接続"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "接続中"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "通話終了"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d件保留中"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "%sとの通話を保留"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "会議"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "通話画面に戻る"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "自動着信拒否"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "კონტაქტებში დამატება"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "გაუქმება"
+
+msgid "IDS_COM_SK_OK"
+msgstr "კი"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "კონტაქტის შექმნა"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "შეტყობინება"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "გადაუდებელი ზარის ნომრები"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "ზარზე დაბრუნება"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "ვერ გაიგზავნა."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "ზარის უარყოფა შეტყობინებით"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "გადართვა"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "კლავიატ."
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Bluetooth აპარატის გამოყენებაზე გადართვისას Bluetooth ჩაირთვება."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "გამორჩენილი ზარები"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "ხმის დამატებითი სიმაღლე ვერ ჩაირთვება, სანამ მიერთებულია Bluetooth გარნიტურა ან ყურსასმენი."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "ხმის დამატებითი სიმაღლე ვერ ჩაირთვება, სანამ მიერთებულია ყურსასმენი."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "ხმის დამატებითი სიმაღლე ვერ ჩაირთვება, სანამ მიერთებულია Bluetooth გარნიტურა."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "იკრიფება..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "გამოტოვებული ზარი"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "გადაცემა"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM მომსახურება"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "ზარის გაგრძელება"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "საკონფერენციო ზარის დასრულება"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "ზარის დასრულება %s-თან"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "ყველა მიმდინარე ზარის დასრულება"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "კონფერენც-ზარი"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "მოწყობილობის განსაბლოკად ორჯერ შეეხეთ დაბლოკვის ნიშანს"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Bluetooth-ის ჩართვა"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "პასუხი ზარზე"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "იხ. საკონტაქტო მონაცემები"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "განახლდეს არსებ."
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "დინამ."
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "გაგრძელება"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "უარყოფა"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "უხმო"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "მართვა"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "დაკავება"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "კონტაქტები"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "შეადგინეთ გასაგზავნი წერილი"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "დარეკვა"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "ზარის დამ."
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "მიღება"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "%d ადამიანით"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "უცნობი"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s-ის დაკავება"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "დაკავებული"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "წერილები არ არის"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "გაერთიანება"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "შემოსული ზარი"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "აქტიური ზრ. დაკავება"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "აქტიური ზარების დასრულება (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "ირეკება %s-ით..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "კავშირი %s-ით"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "დაკავშირებული"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "ზარი დასრულდა"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d იცდის"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "გადადეთ %s"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "კონფერენცია"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "ზარის ეკრანზე დაბრუნება"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "ავტოუარყოფილი ზარი"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Кітапшаға қосыңыз"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Тоқтату"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Байланыс кітапшасын құру"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Хабарлама"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Төтенше қызмет нөмірі"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Қайта қоңырау шалу"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Жіберілген үзіліп кеті."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Қоңыраудан хабар арқылы бас тарту"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Ауыстыру"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Пернетақ."
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Bluetooth құрылғысын пайдалануды қосу үшін Bluetooth іске қосылады."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Қабылданбаған"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Құлаққап немесе Bluetooth гарнитурасы қосылғанда қосымша дыбыс іске қосылмайды."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Құлаққап қосылғанда қосымша дыбыс іске қосылмайды."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Bluetooth гарнитурасы қосылғанда қосымша дыбыс іске қосылмайды."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Терілуде..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Қабылданбаған қоңырау"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Трансфер"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM- қызметі"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Қоңырауды қалпына келтіру"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Конф.қоң-ң соңы"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Қоңырауды %s арқылы аяқтау"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Барлық ағымдық қоңырауларды аяқтау"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Конференциалық қоңырау"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Құрылғы құлпын алу үшін, құлып белгішесін екі рет түртіңіз"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Bluetooth қосу"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Жауа қоңырауы"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Контакт мәлімет-н көрсету"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Барын жаңарту"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Динамик"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Жалғастыру"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Қабылдамау"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Дыбыссыз"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Басқару"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Ұстау"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Контактілер"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Жіберу үшін хабар жазу"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Қоңырау"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Қоңы. қосу"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Қабылдау"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "%d адаммен"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Белгісіз"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s ұстауға қою"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Ұсталуда"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Хабарлама жоқ"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Біріктіру"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Қабылданған қоңырау"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Белс. қоңыр-ды ұстау"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Белсенді қоңырауларды аяқтау (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "%s арқылы теруде..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "%s арқылы қосылған"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Қосылды"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Коңырау аяқталды"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d ұстал."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "%s ұстап тұрыңыз"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Конференция"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Қоңырау экранына оралу"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Авто қабылданбаған қңру"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "연락처에 추가"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "취소"
+
+msgid "IDS_COM_SK_OK"
+msgstr "확인"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "새 연락처 추가"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "메시지"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "긴급 전화번호"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "통화로 돌아가기"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "보내지 못하였습니다."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "메시지로 전화 거절"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "전환"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "키패드"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "블루투스 디바이스를 사용하려면 블루투스를 실행하세요."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "부재중 전화"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "이어폰 또는 블루투스 헤드셋이 연결된 경우 [추가 음량 높이기]를 실행할 수 없습니다."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "이어폰이 연결된 경우 [추가 음량 높이기]를 실행할 수 없습니다."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "블루투스 헤드셋이 연결된 경우 [추가 음량 높이기]를 실행할 수 없습니다."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "전화 연결 중..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "부재중 전화"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "상대방 전화 연결"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM 서비스"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "다시 통화"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "컨퍼런스 콜 종료"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "%s 님의 통화 종료"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "모든 통화 종료"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "컨퍼런스 콜"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "디바이스 잠금을 해제하려면 잠금 아이콘을 두 번 누르세요"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "블루투스 실행"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "전화받기"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "연락처 상세정보 보기"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "기존 연락처에 추가"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "한뼘통화"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "계속"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "거절"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "내 소리 차단"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "관리"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "대기"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "연락처"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "보낼 메시지 작성"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "통화"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "블루투스"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "통화 추가"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "통화"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "%d명과 함께 통화 중"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "번호정보 없음"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s 님의 통화 대기"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "대기 중"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "메시지가 없습니다"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "통합"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "수신전화"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "현재 통화 보류"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "현재 통화(%d) 종료"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "%s로 전화 연결 중..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "%s로 연결"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "연결됨"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "통화 종료"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d명 대기"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "%s 님의 통화 대기"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "컨퍼런스 콜"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "통화 화면으로 돌아가기"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "자동 거절된 전화"
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Įtraukti į adresatus"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Atšaukti"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Gerai"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Kurti adresatą"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Žinutė"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Pagalbos numeris"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Grįžti į pokalbį"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Išsiųsti nepavyko."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Atmesti skambutį žinute"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Sukeisti"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Klaviat."
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Jei norite pradėti naudotis „Bluetooth“ įrenginiu, įjunkite „Bluetooth“."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Pral.skamb."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Papildomo garsumo funkcijos negalima įjungti, kai prijungtos ausinės arba „Bluetooth“ ausinės."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Papildomo garsumo funkcijos negalima įjungti, kai prijungtos ausinės."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Papildomo garsumo funkcijos negalima įjungti, kai prijungtos „Bluetooth“ ausinės."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Jungiamasi..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Neatsakytas skambutis"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Perkelti"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM paslaugos"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Atnaujinti skambutį"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Baigti konferencinį skambutį"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Baigti pokalbį su %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Baigti visus dabartinius skambučius"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konf. skambutis"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Dukart bakstelėkite užrakinimo piktogramą ir atrakinkite įrenginį"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Įjungti „Bluetooth“"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Atsiliepti į skambutį"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Peržiūrėti adresato infor."
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Naujinti esamus"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Garsiak."
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Atnaujinti"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Atmesti"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Nutildyti"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Tvarkyti"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Atidėti"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Adresatai"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Kurti siunčiamą žinutę"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Skamb."
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Įtr. skam."
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Priimti"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Su %d žmon."
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Nežinomas"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "sulaikius pokalbį su %s"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Atidėtas"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Žinučių nėra"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Sujungti"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Įeinantis skambutis"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Sulaik. aktyvų skam."
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Baigti aktyvius skambučius (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Skambinama naudojant %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Prisijungta naudojant %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Prisijungta"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Pokalbis baigtas"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d sulaik."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Pokalbis su %s sulaikytas"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konferencija"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Grįžti į skambinimo ekraną"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Automat. atmesti skambutį"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Pievienot kontaktiem"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Atcelt"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Labi"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Izveidot kontaktu"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Ziņa"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Ārkārtas numurs"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Atpakaļ uz zvanu"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Neizdevās nosūtīt."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Noraidīt zvanu ar ziņu"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Pārslēgt"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Tastatūra"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Lai pārslēgtos uz Bluetooth ierīces lietošanu, tiks ieslēgta funkcija Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Neatb.zvani"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Papildu skaļumu nevar ieslēgt, kamēr ir pievienotas austiņas vai Bluetooth brīvroku ierīce."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Papildu skaļumu nevar ieslēgt, kamēr ir pievienotas austiņas."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Papildu skaļumu nevar ieslēgt, kamēr ir pievienota Bluetooth brīvroku ierīce."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Savienojas..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Neatbildēts zvans"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Pārsūtīt"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM pakalpojumi"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Atsākt sarunu"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Beigt konferences zvanu"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Beigt sarunu ar %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Beigt visas pašreizējās sarunas"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konferences zvans"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Veiciet dubultskārienu uz bloķēšanas ikonas, lai atbloķētu ierīci"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Ieslēgt Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Atbildēšana uz zvanu"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Skatīt kontakta datus"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Atjaun. esošo"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Skaļrunis"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Atsākt"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Atteikt"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Izsl. sk."
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Pārvaldīt"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Aizturēt"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kontakti"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Izveidojiet ziņu, lai sūtītu"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Zvans"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Piev. zv."
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Pieņemt"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Ar %d personām"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Nezināms"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Aiztur sarunu ar %s"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Aizt.sar."
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Nav ziņu"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Apvienot"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Ienākošais zvans"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Aiztur. aktīvu zvanu"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Beigt aktīvās sarunas (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Zvana, izmantojot %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Savienots, izmantojot %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Savienots"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Saruna ir pabeigta"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d aiztur."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Aizturēt sarunu ar %s"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konference"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Atgriezties zvana ekrānā"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Autom. noraidīts zvans"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Додај во Контакти"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Откажи"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Нов запис"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Порака"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "SOS број"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Назад на повикот"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Неуспешно праќање."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Одбивање повик со порака"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Префрли"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Тастатура"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "За да се префрли на користење на Вашиот уред Bluetooth, ќе се вклучи Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "пропуштени повици"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Дополнителната гласност не може да се вклучи додека се поврзани слушалки или слушалка Bluetooth."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Дополнителната гласност не може да се вклучи кога се поврзани слушалки."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Дополнителната гласност не може да се вклучи кога е поврзана слушалка Bluetooth."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Бирање..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Пропуштен повик"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Пренеси"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM услуги"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Продолжи повик"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Заврши конференција"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Заврши повик со %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Заврши ги сите моментални повици"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Конференција"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Допрете ја двапати иконата за заклучување за да го отклучите уредот"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Вклучи Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Одговори на повик"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Види детали за контакт"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Ажур. постојни"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Звучник"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Продолжи"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Отфрли"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Иск.мик"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Уреди"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "На чекање"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Именик"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Состави порака за праќање"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Повик"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Дод. повик"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Прифати"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Со %d луѓе"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Непознато"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s се задржува"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "На чекање"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Нема пораки"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Преклопи"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Дојдовен повик"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Задржи акт. повик"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Прекини активни повици (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Се бира преку %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Поврзано преку %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Поврзано"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Повикот заврши"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d на чек."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Ставете го %s на чекање"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Конференција"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Врати се на екран на повик"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Автом. одбиен повик"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Legg til i Kontakter"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Opprett kontakt"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Melding"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Nødnummer"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Tilbake til anrop"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Mislykket..."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Avvis anrop med melding"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Bytt"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Tastatur"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Bluetooth blir slått på for å bytte til å bruke Bluetooth-enheten."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Tapte anrop"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Ekstra volum kan ikke være slått på mens øretelefoner eller Bluetooth-hodesett er koblet til."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Ekstra volum kan ikke være slått på mens øretelefoner er koblet til."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Ekstra volum kan ikke være slått på mens Bluetooth-hodesett er koblet til."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Ringer opp..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Ubesvart anrop"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Overfør"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM-tjenester"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Gjenoppta samtale"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Avslutt konferansesamtale"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Avslutt samtale med %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Avslutt alle gjeldende samtaler"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Telefonmøte"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Trykk raskt to ganger på låseikonet for å låse opp enheten"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Slå på Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Besvar anrop"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Vis kontaktdetaljer"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Oppdater kontakt"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Høyttaler"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Fortsett"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Avvis"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Lyd av"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Admin."
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Parker"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kontakter"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Skriv meldingen du vil sende"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Ring"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Nytt anrop"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Godta"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Med %d personer"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Ukjent"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Setter %s på vent"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "På vent"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Ingen meldinger"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Slå sammen"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Innkommende anrop"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Akt. samt. på vent"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Avslutte aktive samtaler (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Ringer via %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Koblet til via %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Tilkoblet"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Samtale avsluttet"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d på vent"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Sett %s på vent"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konferanse"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Gå tilbake til samt.skj.b."
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Autoavvist anrop"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Toevoegen aan contacten"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Annuleren"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Contact toevoegen"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Bericht"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Alarmnummer"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Terug naar oproep"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Verzenden mislukt."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Oproep met bericht weigeren"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Wisselen"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Toetsenbord"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Als u wilt overschakelen naar uw Bluetooth-apparaat, wordt Bluetooth ingeschakeld."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Gemiste oproepen"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Extra volume kan niet worden ingeschakeld wanneer oortelefoons of Bluetooth-headset zijn aangesloten."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Extra volume kan niet worden ingeschakeld wanneer oortelefoons zijn aangesloten."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Extra volume kan niet worden ingeschakeld wanneer Bluetooth-headset is aangesloten."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Kiezen..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Gemiste oproep"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Doorverbinden"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM-diensten"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Oproep hervatten"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Einde vergaderoproep"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Oproep beëindigen met %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Alle huidige oproepen beëindigen"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Vergaderoproep"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Tik twee keer op het pictogram Vergrendelen om uw apparaat te ontgrendelen"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Bluetooth inschakelen"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Oproep aannemen"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Contactdetails weergeven"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Best. bijwerken"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Luidspreker"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Hervatten"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Weigeren"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Stil"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Beheren"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "In wacht"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Contacten"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Bericht schrijven en verzenden"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Bellen"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Nieuwe opr."
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Aannemen"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Met %d personen"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Onbekend"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s in de wacht zetten"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "In wacht"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Geen berichten"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Samenvoegen"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Inkomende oproep"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Huidige opr in wacht"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Actieve oproepen (%d) beëindigen"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Kiezen via %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Verbonden via %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Verbonden"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Oproep beëindigd"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d in wacht"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "%s in de wacht zetten"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Vergaderen"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Terug naar oproepscherm"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Autom geweigerde oproep"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Dodaj do kontaktów"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Anuluj"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Utwórz kontakt"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Wiadomość"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Numer alarmowy"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Powrót do połączenia"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Błąd wysyłania"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Odrzuć połącz. i wyślij wiadomość"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Zamień"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Klawiat."
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Aby przełączyć na korzystanie z urządzenia Bluetooth, łącze Bluetooth zostanie włączone."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Nieodebrane"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Nie można włączyć dodatkowej głośności, gdy są podłączone słuchawki lub zestaw słuchawkowy Bluetooth."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Nie można włączyć dodatkowej głośności, gdy są podłączone słuchawki."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Nie można włączyć dodatkowej głośności, gdy jest podłączony zestaw słuchawkowy Bluetooth."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Wybieranie numeru..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Połączenie nieodebrane"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transfer"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Usługi SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Wznów połączenie"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Zakończ połączenie konferencyjne"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Zakończ połączenie z %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Zakończ wszystkie bieżące połączenia"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konferencja"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Dotknij dwukrotnie ikony blokowania, aby odblokować urządzenie"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Włączanie funkcji Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Odebranie połączenia"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Wyświetl szczeg. kontaktu"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Akt. istniejący"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Głośnik"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Wznów"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Odrzuć"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Wycisz"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Zarządzaj"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Zawieś"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kontakty"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Utwórz wiadomość do wysłania"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Połącz"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Dod. poł."
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Akceptuj"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Z %d osobami"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Numer Prywatny"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Zawieszanie połączenia z %s"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Zawiesz."
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Brak wiadomości"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Dodaj"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Połączenie"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Zawieś aktywne poł."
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Zakończ aktywne połączenia (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Wybieranie przez %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Połączono przez %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Połączono"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Rozłączono"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "Zaw.: %d"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Zawieś połączenie z %s"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konferencja"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Wróć do ekranu połączenia"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Poł. odrzucone autom."
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Adicionar aos Contatos"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Novo contato"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Mensagem"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Número de emergência"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Voltar à chamada"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Falha de envio."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Recusar chamada com mensagem"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Alternar"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Teclado"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Para alternar para usar seu dispositivo Bluetooth, o Bluetooth será ativado."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Chamadas perdidas"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "O Volume adicional não pode ser ativado durante a conexão dos fones de ouvido ou fone de ouvido Bluetooth."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "O Volume adicional não pode ser ativado durante a conexão do fone de ouvido."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "O Volume adicional não pode ser ativado durante a conexão do fone de ouvido Bluetooth."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Discando..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Chamada Perdida"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transferir"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Serviços SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Recuperar chamada"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Encerrar chamada em conferência"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Encerrar a chamada com %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Encerrar todas as chamadas atuais"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Conferência"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Toque duas vezes no ícone de bloqueio para desbloquear seu dispositivo"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Ativar Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Atender chamada"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Exibir detalhes do contato"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Atualiz. exist."
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Viva-voz"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Continuar"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Rejeitar"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Silenciar"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Gerenciar"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Espera"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Contatos"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Escrever mensagem para enviar"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Chamar"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Ad. Cham."
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Aceitar"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Com %d pessoas"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Colocar %s em espera"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Em espera"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Nenhuma mensagem"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Conferên."
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Chamada recebida"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Ch. ativa em espera"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Encerrar chamadas ativas (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Chamando pelo %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Conectado por %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Conectado"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Chamada encerrada"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d espera"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Colocar %s em espera"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Conferência"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Retornar à tela de chamada"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Chamada recusada autom."
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Adicionar aos contactos"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Criar contacto"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Mensagem"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Número de emergência"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Regressar à chamada"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Falha no envio."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Rejeitar chamadas com mensagem"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Alternar"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Teclado"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Para mudar para a utilização do seu dispositivo Bluetooth, o Bluetooth vai ser ligado."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Ch. perdidas"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Volume extra não pode ser ligado com os auriculares ou o auricular Bluetooth ligados."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Volume extra não pode ser ligado com os auriculares ligados."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Volume extra não pode ser ligado com o auricular Bluetooth ligado."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "A marcar..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Chamada não atendida"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transferência"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Serviços SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Retomar a chamada"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Terminar chamada de conferência"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Terminar chamada com %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Terminar todas chamadas actuais"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Chamada de conferência"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Tocar duas vezes no ícone de bloqueio para desbloquear o seu dispositivo"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Ligar Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Atender chamada"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Ver detalhes do contacto"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Actualizar"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Altifalante"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Retomar"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Rejeitar"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Silenciar"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Gerir"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Reter"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Contactos"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Compor mensagem para enviar"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Chamada"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Adicionar"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Aceitar"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Com %d pessoas"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Colocar %s em espera"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Em espera"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Nenhuma mensagem"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Unir"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Chamada recebida"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Col. ch. act. em es."
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Terminar chamadas activas (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "A marcar via %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Ligado via %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Ligado"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Chamada terminada"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d espera"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Pôr %s em espera"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Conferência"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Regressar a ecrã chamada"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Chamada rejeitada autom."
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Adăugare la Contacte"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Anulare"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Creare contact"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Mesaj"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Număr de urgenţă"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Înapoi la apel"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Trimitere eşuată"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Respingere apel cu mesaj"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Schimb."
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Tastatură"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Pentru a trece la utilizarea dispozitivului Bluetooth, caracteristica Bluetooth va fi activată."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Apel. pierd."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Volumul suplimentar nu poate fi activat când sunt conectate căştile sau casca Bluetooth."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Volumul suplimentar nu poate fi activat când sunt conectate căştile."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Volumul suplimentar nu poate fi activat când este conectată casca Bluetooth."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Apelare nr...."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Apel pierdut"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Transfer"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Servicii SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Reluare apel"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Încheiere apel conferinţă"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Încheiaţi apelul cu %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Încheiaţi toate apelurile actuale"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Conferinţă prin telefon"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Atingeţi de două ori pictograma de deblocare pentru a debloca dispozitivul"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Activaţi Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Preluare apel"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Vizualiz. detalii contact"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Act. existentă"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Difuzor"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Reluare"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Resping."
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Mc. oprit"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Gestionare"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "În aşteptare"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Contacte"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Compunere mesaj de trimis"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Apel"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Ad. apel"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Acceptare"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Cu %d persoane"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Necunoscut"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Se trece %s în aşteptare"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "În aşt."
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Nici un mesaj"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Îmbinare"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Apel de intrare"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Reţinere apel activ"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Terminare apeluri active (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Se apelează prin %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Conectat prin %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Conectat"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Apel terminat"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d în aşt."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Puneţi în aşteptare numărul %s"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Conferinţă"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Înapoi la ecranul de apel"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Apel respins automat"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Добавить в Контакты"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Отмена"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Создать контакт"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Сообщение"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Экстренная служба"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Вернуться к вызову"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Сбой при отправке."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Отклонить вызов и отправить SMS"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Переключить"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Клавиатура"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Для переключения на использование устройства Bluetooth будет включена функция Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Пропущенные"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Невозможно использовать дополнительную громкость, если подключена гарнитура Bluetooth или наушники."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Невозможно использовать дополнительную громкость, если подключены наушники."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Невозможно использовать дополнительную громкость, если подключена гарнитура Bluetooth."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Вызов..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Пропущенный вызов"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Перевести"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Услуги SIM-карты"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Возобновить вызов"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Завершить конференц-вызов"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Завершить вызов с %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Завершить все текущие вызовы"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Конференция"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Чтобы разблокировать устройство, дважды нажмите значок блокировки"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Включить Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Ответить на вызов"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Просм. сведений о контакте"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Обновить контакт"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Динамик"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Возобнов."
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Отказ"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Звук"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Функции"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Удержать"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Контакты"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Создать сообщение для отправки"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Вызов"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Доб. вызов"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Принять"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Число участников: %d"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Неизвестно"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Помещение вызова %s на удержание"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Удержание"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Нет сообщений"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Объединить"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Входящий вызов"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Удержать акт. вызов"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Завершить активные вызовы (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Вызов с %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Подключен через %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Подключено"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Вызов завершен"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "Удерж.: %d"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Поместить %s на удержание"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Конференция"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Возврат на экран вызова"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Автоотклоненный вызов"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Pridať do kontaktov"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Zrušiť"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Vytvoriť kontakt"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Správa"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Tiesňové číslo"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Späť na hovor"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Odosielanie sa nepodarilo."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Odmietnuť hovor s odoslaním správy"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Prepnúť"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Kláv."
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Ak chcete prepnúť na používanie vášho zariadenia Bluetooth, zapne sa spojenie Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Zmešk. hov."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Extra hlasitosť nemožno zapnúť počas pripojenia slúchadla s mikrofónom Bluetooth alebo slúchadiel."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Extra hlasitosť nemožno zapnúť počas pripojenia slúchadiel."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Extra hlasitosť nemožno zapnúť počas pripojenia slúchadla s mikrofónom Bluetooth."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Vytáčanie..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Zmeškaný hovor"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Presmerovať"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Služby karty SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Pokračovať v hovore"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Ukončiť konferenčný hovor"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Ukončiť hovor s účastníkom %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Ukončiť všetky aktuálne hovory"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konferenčný hovor"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Dvojitým ťuknutím na ikonu zámku môžete odomknúť zariadenie"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Zapnúť Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Prijať hovor"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Zobraziť kontaktné údaje"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Aktual. exist."
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Reproduktor"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Pokračovať"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Odmietnuť"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Stlmiť"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Spravovať"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Podržať"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kontakty"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Napísať správu na odoslanie"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Hovor"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Pr. hovor"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Prijať"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "S %d ľuďmi"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Neznáme"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s sa podrží"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Podržaný"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Žiadne správy"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Zlúčiť"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Prichádzajúci hovor"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Podrž. aktívny hovor"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Ukončiť aktívne hovory (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Vytáča sa cez %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Pripojené cez %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Pripojené"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Hovor bol ukončený"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d podrž."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Podržať hovor s účastníkom %s"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konferencia"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Návrat na obrazovku hovoru"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Autom. odmietnutý hovor"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Dodaj nov stik"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Prekliči"
+
+msgid "IDS_COM_SK_OK"
+msgstr "V redu"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Ustvari stik"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Sporočilo"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Številka za klic v sili"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Nazaj na klic"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Pošiljanje ni uspelo."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Zavrnite klic s sporočilom"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Menjaj"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Tipkovn."
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Zaradi preklopa na uporabo naprave Bluetooth se bo vklopil vmesnik Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Neodgovorjeni klici"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Funkcije Dodana glasnost ni mogoče vklopiti, če so priključene slušalke ali slušalka Bluetooth."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Funkcije Dodana glasnost ni mogoče vklopiti, če so priključene slušalke."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Funkcije Dodana glasnost ni mogoče vklopiti, če je priključena slušalka Bluetooth."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Kličem..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Neodgovorjen klic"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Prenesi"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Storitve SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Nadaljuj klic"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Končaj konferenčni klic"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Končaj klic z osebo %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Končaj vse trenutne klice"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konferenčni klic"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Dvakrat pritisnite ikono za zaklepanje, da odklenete napravo"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Vklopite Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Sprejmite klic"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Prikaz podrobnosti stika"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Posod. obstoječe"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Zvočnik"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Nadaljuj"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Zavrni"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Nemo"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Uredi"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Zadrži"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Stiki"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Sest. sporočila za pošiljanje"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Klic"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Dodaj klic"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Sprejmi"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "S toliko ljudmi: %d"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Neznano"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Daj osebo %s na čakanje"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Zadržano"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Ni sporočil"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Združi"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Dohodni klic"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Zadrži aktivni klic"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Končaj aktivne klice (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Klic prek %s ..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Povezano prek %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Povezano"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Klic je končan"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d na čak."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Dajte osebo %s na čakanje"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konferenca"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Vrnitev na zaslon klica"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Samodejno zavrnjen klic"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Dodaj u kontakte"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Otkaži"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Kreiraj kontakt"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Poruka"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Broj za hitne pozive"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Povratak na poziv"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Slanje neuspešno."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Odbaci poziv uz slanje poruke"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Zameni"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Tastatura"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Za prelazak korišćenja Bluetooth uređaja, Bluetooth će biti uključen."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Propušteni pozivi"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Dodatna jačina zvuka ne može da se uključi dok su povezane slušalice ili Bluetooth slušalice."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Dodatna jačina zvuka ne može da se uključi dok su povezane slušalice."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Dodatna jačina zvuka ne može da se uključi dok su povezane Bluetooth slušalice."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Biranje..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Propušten poziv"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Prebaci"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Usluge SIM kartice"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Nastavi poziv"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Prekini konferencijski poziv"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Prekini poziv sa osobom %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Prekini sve trenutne pozive"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konferencijski poziv"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Dvaput kucni ikonu za zaključavanje da bi otključao/la uređaj"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Uključi Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Odgovori na poziv"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Prikaži detalje o kontaktu"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Ažur. postojeći"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Zvučnik"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Nastavi"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Odbaci"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Isklj.ton"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Upravljaj"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Čekanje"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kontakti"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Sastavi poruku za slanje"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Poziv"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Dodaj poz."
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Prihvati"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Sa %d osobe/a"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Stavljanje %s na čekanje"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Na ček."
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Nema poruka"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Preklopi"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Dolazni poziv"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Akt. poz. na čekanje"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Prekini aktivne pozive (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Biranje putem %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Povezan putem %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Povezano"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Poziv je završen"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "Čeka: %d"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Stavi osobu %s na čekanje"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konferencija"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Vrati se na ekran poziva"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Automatski odbijeni poziv"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Lägg till i Kontakter"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Skapa kontakt"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Meddelande"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Nummer för nödsituationer"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Tillbaka till samtal"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Sändningsfel."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Avvisa samtal med meddelande"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Växla"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Knappsats"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Om du växlar till att använda din Bluetooth-enhet, aktiveras Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Missade samtal"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Det går inte att slå på extra volym när hörlurar eller ett Bluetooth-headset har anslutits."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Det går inte att slå på extra volym när hörlurar är anslutna."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Det går inte att slå på extra volym när ett Bluetooth-headset är anslutet."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Ringer upp..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Missat samtal"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Överför"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM-tjänster"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Återuppta samtalet"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Avsluta konferenssamtal"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Avsluta samtal med %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Avsluta alla aktuella samtal"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konferenssamtal"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Dubbeltryck på låsikonen om du vill låsa upp enheten"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Slå på Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Svara på samtal"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Visa kontaktinformation"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Uppdat. befintl."
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Högtalare"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Fortsätt"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Avvisa"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Ljud av"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Hantera"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Parkera"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kontakter"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Skriv medd. som ska skickas"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Samtal"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "L t samtal"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Svara"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Med %d personer"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Okänd"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Parkerar %s"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Parkerat"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Inga meddelanden"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Sammanfoga"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Inkommande samtal"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Parkera akt. samtal"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Avsluta aktiva samtal (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Ringer via %s ..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Ansluten via %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Ansluten"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Samtalet avslutades"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d park."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Parkera %s"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konferens"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Återgå till samtalsskärm"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Automatavvisat samtal"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Rehbere ekle"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "İptal"
+
+msgid "IDS_COM_SK_OK"
+msgstr "Tamam"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Yeni kişi ekle"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Mesaj"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Acil durum numarası"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Çağrıya dön"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Gönderme başarısız."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Aramayı mesajla reddet"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Değiştir"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Tuşlar"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Bluetooth cihazınızı kullanmaya geçmek için Bluetooth açılır."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Cevapsız arama"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Kulaklık veya Bluetooth kulaklık bağlıyken ekstra ses açılamaz."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Kulaklık bağlıyken ekstra ses açılamaz."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Bluetooth kulaklık bağlıyken ekstra ses açılamaz."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Aranıyor..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Cevapsız arama"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "İletim"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Servisler"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Aramayı sürdür"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Konferans aramasını sonlandır"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "%s ile aramayı sonlandır"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Tüm geçerli aramaları sonlandır"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konferans görüşmesi"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Cihazınızın kilidini açmak için kilit simgesine çift dokunun"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Bluetooth'u aç"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Aramayı yanıtla"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Kişi ayrıntlarnı görüntüle"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Kişiyi güncelle"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Hoparlör"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Sürdür"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Reddet"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Sessiz"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Yönet"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Beklet"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kişiler"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Göndermek için mesaj yaz"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Arama"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Çağrı ekle"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Kabul et"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "%d kişiyle"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Gizli numara"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%s bekletiliyor"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Beklemede"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Mesaj yok"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Birleştir"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Gelen arama"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Aktif görüşme beklet"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Aktif çağrıları sonlandır (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "%s ile aranıyor..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "%s ile bağlandı"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Bağlandı"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Arama sonlandırıldı"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d beklmde"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "%s kişisini beklemeye al"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konferans"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Arama ekranına dön"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Oto reddedilmiş arama"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Додати в контакти"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Скасувати"
+
+msgid "IDS_COM_SK_OK"
+msgstr "ОК"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Створити контакт"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Повідом."
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Екстрений виклик"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Повернутися до виклику"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Збій надсилання."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Відхилити виклик із повідомленням"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Замінити"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Клавіат."
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Для переключення на пристрій Bluetooth буде ввімкнено функцію Bluetooth."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Проп. вик-и"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Додаткову гучність неможливо ввімкнути під час підключення гарнітури Bluetooth або навушників."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Додаткову гучність неможливо ввімкнути під час підключення навушників."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Додаткову гучність неможливо ввімкнути під час підключення гарнітури Bluetooth."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Набір..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Пропущений виклик"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Перевести"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "Послуги SIM"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Поновити виклик"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Завершити конференц-виклик"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "Завершення виклику із абонентом %s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Завершення усіх поточних викликів"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Конференц-зв'язок"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Двічі торкніться значка блокування, щоб розблокувати пристрій"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Увімкніть Bluetooth"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Відповідь на виклик"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Переглянути контактні дані"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Оновити існуючий"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Динамік"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Поновити"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Відхилити"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Вимк.звук"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Керування"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Утримання"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Контакти"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Створ. повідом. для надсилання"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Виклик"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Дод.виклик"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Прийняти"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "Із %d абонентами"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Невідомо"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "Переведення абонента %s на утримання"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Утрим."
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Немає повідомлень"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Об'єднати"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Вхідний виклик"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Утрим.активн.виклик"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Завершити активні виклики (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "Набір номера через %s..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "Підключено через %s"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Підключено"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Виклик завершено"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d на утр."
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "Перев.абонента %s на утримання"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Конференція"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Повернутися на екр.виклику"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Автовідхилений виклик"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "Kontaktlarga qo‘shish"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "Bekor qilish"
+
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "Kontakt yaratish"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "Xabar"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "Favqulodda raqam"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "Qo‘ng‘iroqqa qaytish"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "Yuborib bo‘lmadi."
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "Qo‘ng‘iroqni xabar bilan rad etish"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "Almashish"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "Klaviatura"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "Bluetooth qurilmangizdan foydalanishga o‘tish uchun Bluetooth yoqiladi."
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "Jav-siz qo‘."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Oddiy quloqlik yoki Bluetooth quloqligi ulanganda ortiqcha ovozni yoqib bo‘lmaydi."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "Quloqlik ulanganda ortiqcha ovozni yoqib bo‘lmaydi."
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "Bluetooth quloqligi ulanganda ortiqcha ovozni yoqib bo‘lmaydi."
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "Terilmoqda..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "Qabul qilinmagan qo‘ng‘iroq"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "Uzatish"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM-karta xizmatlari"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "Qo‘ng‘iroqni davom ettirish"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "Konferens qo‘ng‘iroqni tugatish"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "%s bilan qo‘ng‘iroqni tugatish"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "Barcha joriy qo‘ng‘iroqlarni tugatish"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "Konferensiya qo'ng'irog'i"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "Qurilmangizni blokdan chiqarish uchun bloklash ikonachasiga ikki marta teging"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "Bluetoothni yoqish"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "Qo‘ng‘iroqqa javob berish"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "Kontakt ma’l-ni ko‘rsat"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "Mavjudni yangila"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "Dinamik"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "Davom et"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "Rad etish"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "Ovozsiz"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "Boshqarish"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "Kutish"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "Kontaktlar"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "Yuborish uhcun xabar yaratish"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "Qo‘ng‘ir."
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "Bluetooth"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "Qo‘n.qo‘sh"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "Qabul qil"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "%dta odam bilan"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "Noma’lum"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "%sni kutish rejimiga qo‘yish"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "Kutish"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "Xabarlar yo‘q"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "Birlashtirish"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "Kiruvchi qo‘ng‘iroq"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "Faol qo‘n-ni ush/tur"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "Faol qo‘ng‘iroqlarni yakunlash (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "%s orqali raqam terilmoqda..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "%s orqali ulangan"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "Ulangan"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "Qo‘ng‘. yakunlandi"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d kutish"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "%sni kutish rejimiga qo‘yish"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "Konferensiya"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "Qo‘ng‘iroq ekraniga qayt"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "Qo‘n-ni avtomatik rad et"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "添加到联系人"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "取消"
+
+msgid "IDS_COM_SK_OK"
+msgstr "确定"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "新建联系人"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "信息"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "紧急号码"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "返回通话"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "发送失败"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "用信息拒绝通话"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "切换"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "键盘"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "若要切换至使用您的蓝牙设备,蓝牙将开启。"
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "未接来电"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "连接耳机或蓝牙耳机时无法开启更大音量。"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "连接耳机时无法开启更大音量。"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "连接蓝牙耳机时无法开启更大音量。"
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "拨号中..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "未接来电"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "转换"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM卡服务"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "恢复通话"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "结束电话会议"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "结束%s"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "结束当前通话"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "电话会议"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "双击锁定图标以解锁您的设备"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "开启蓝牙"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "接听电话"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "查看联系人详情"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "更新现有联系人"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "扬声器"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "继续"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "拒绝"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "静音"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "管理"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "保持"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "联系人"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "编写信息以发送"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "通话"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "蓝牙"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "添加通话"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "接听"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "与 %d 人"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "保持%s"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "保持中"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "无信息"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "合并"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "来电"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "保持通话"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "结束当前通话 (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "正在通过 %s 拨号..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "已通过 %s 连接"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "已连接"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "通话已结束"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d 个保持中"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "保持 %s"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "多方通话"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "返回至通话屏幕"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "自动拒绝通话"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "加到聯絡人"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "取消"
+
+msgid "IDS_COM_SK_OK"
+msgstr "確定"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "建立聯絡人"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "訊息"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "緊急號碼"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "返回通話"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "發送失敗。"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "發訊息以拒絕來電"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "切換"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "鍵盤"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "若要切換至使用您的藍牙裝置,藍牙將被開啟。"
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "未接電話"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "在耳機或藍牙耳機連接時無法開啟額外音量。"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "在耳機連接時無法開啟額外音量。"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "在藍牙耳機連接時無法開啟額外音量。"
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "正在撥號..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "未接電話"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "轉送"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM 卡服務"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "繼續通話"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "結束電話會議"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "結束與 %s 的通話"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "結束目前通話"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "電話會議"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "輕觸兩下鎖定圖示以解鎖您的裝置"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "開啟藍牙"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "接聽電話"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "檢視聯絡人詳細資料"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "更新現有的"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "揚聲器"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "繼續"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "拒絕"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "靜音"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "管理"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "保留"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "聯絡人"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "撰寫訊息以發送"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "通話"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "藍牙"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "加入通話"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "接受"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "與 %d 人"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "保留與 %s 的通話"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "保留中"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "無訊息"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "合併"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "來電"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "保留當前通話"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "結束啟動中的通話(%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "正在透過 %s 撥打..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "已透過 %s 連接"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "已連接"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "通話已結束"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d 位已保留"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "保留與 %s 的通話"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "會議"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "返回至通話螢幕"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "自動拒絕來電"
+
--- /dev/null
+msgid "IDS_COM_OPT_ADD_TO_CONTACTS"
+msgstr "新增至聯絡人"
+
+msgid "IDS_COM_SK_CANCEL"
+msgstr "取消"
+
+msgid "IDS_COM_SK_OK"
+msgstr "確定"
+
+msgid "IDS_COM_OPT_CREATE_CONTACT"
+msgstr "建立聯絡人"
+
+msgid "IDS_COM_BODY_MESSAGE"
+msgstr "訊息"
+
+msgid "IDS_COM_BODY_EMERGENCY_NUMBER"
+msgstr "緊急電話號碼"
+
+msgid "IDS_COM_BODY_BACK_TO_CALL"
+msgstr "返回通話"
+
+msgid "IDS_MSGC_POP_SENDINGFAILED"
+msgstr "傳送失敗"
+
+msgid "IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"
+msgstr "以訊息拒接來電"
+
+msgid "IDS_CALL_SK_MULTICALL_SWAP"
+msgstr "切換"
+
+msgid "IDS_CALL_SK3_KEYPAD"
+msgstr "鍵盤"
+
+msgid "IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"
+msgstr "若要切換為使用您的藍牙裝置,將開啟藍牙。"
+
+msgid "IDS_CALL_POP_MISSED_CALLS_ABB"
+msgstr "未接電話"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "連接耳機或藍牙耳機時無法開啟最大音量。"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED"
+msgstr "連接耳機時無法開啟最大音量。"
+
+msgid "IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED"
+msgstr "連接藍牙耳機時無法開啟最大音量。"
+
+msgid "IDS_CALL_POP_DIALLING"
+msgstr "正在撥號..."
+
+msgid "IDS_CALL_POP_CALLMISSED"
+msgstr "未接電話"
+
+msgid "IDS_CALL_OPT_TRANSFER"
+msgstr "轉移"
+
+msgid "IDS_CALL_OPT_SIM_SERVICES"
+msgstr "SIM 卡服務"
+
+msgid "IDS_CALL_OPT_RESUME_CALL"
+msgstr "繼續通話"
+
+msgid "IDS_CALL_OPT_END_CONFERENCE_CALL"
+msgstr "結束電話會議"
+
+msgid "IDS_CALL_OPT_END_CALL_WITH_PS"
+msgstr "結束與 %s 的通話"
+
+msgid "IDS_CALL_OPT_END_ALL_CURRENT_CALLS"
+msgstr "結束目前所有的通話"
+
+msgid "IDS_CALL_OPT_CONFERENCE_CALL"
+msgstr "電話會議"
+
+msgid "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE"
+msgstr "輕觸兩下鎖定圖示來解鎖您的裝置"
+
+msgid "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB"
+msgstr "開啟藍牙"
+
+msgid "IDS_CALL_HEADER_ANSWER_CALL_ABB"
+msgstr "接聽來電"
+
+msgid "IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"
+msgstr "檢視聯絡人詳細資訊"
+
+msgid "IDS_CALL_BUTTON_UPDATE_EXISTING"
+msgstr "更新現有的"
+
+msgid "IDS_CALL_BUTTON_SPEAKER"
+msgstr "喇叭"
+
+msgid "IDS_CALL_BUTTON_RESUME_ABB"
+msgstr "繼續"
+
+msgid "IDS_CALL_BUTTON_REJECT"
+msgstr "拒絕"
+
+msgid "IDS_CALL_BUTTON_MUTE_ABB"
+msgstr "靜音"
+
+msgid "IDS_CALL_BUTTON_MANAGE"
+msgstr "管理"
+
+msgid "IDS_CALL_BUTTON_HOLD"
+msgstr "保留"
+
+msgid "IDS_CALL_BUTTON_CONTACTS"
+msgstr "聯絡人"
+
+msgid "IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"
+msgstr "撰寫要傳送的訊息"
+
+msgid "IDS_CALL_BUTTON_CALL"
+msgstr "通話"
+
+msgid "IDS_CALL_BUTTON_BLUETOOTH_ABB"
+msgstr "藍牙"
+
+msgid "IDS_CALL_BUTTON_ADD_CALL"
+msgstr "新增通話"
+
+msgid "IDS_CALL_BUTTON_ACCEPT"
+msgstr "接受"
+
+msgid "IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"
+msgstr "和 %d 個人"
+
+msgid "IDS_CALL_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD"
+msgstr "保留與 %s 的通話"
+
+msgid "IDS_CALL_BODY_ON_HOLD_ABB"
+msgstr "保留"
+
+msgid "IDS_CALL_BODY_NO_MESSAGES"
+msgstr "無訊息"
+
+msgid "IDS_CALL_BODY_MERGE_T_CALL"
+msgstr "合併通話"
+
+msgid "IDS_CALL_BODY_INCOMING_CALL"
+msgstr "來電"
+
+msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"
+msgstr "保留當前通話"
+
+msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"
+msgstr "結束當前通話 (%d)"
+
+msgid "IDS_CALL_BODY_DIALLING_VIA_PS_ING_ABB2"
+msgstr "正在經由 %s 撥號..."
+
+msgid "IDS_CALL_BODY_CONNECTED_VIA_PS_M_STATUS_ABB2"
+msgstr "已透過 %s 連接"
+
+msgid "IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"
+msgstr "已連線"
+
+msgid "IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"
+msgstr "通話已結束"
+
+msgid "IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"
+msgstr "%d 保留中"
+
+msgid "IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB"
+msgstr "保留 %s 的來電"
+
+msgid "IDS_CALL_BODY_CONFERENCE"
+msgstr "會議"
+
+msgid "IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"
+msgstr "返回通話螢幕"
+
+msgid "IDS_CALL_MBODY_AUTO_REJECTED_CALL"
+msgstr "自動拒接的來電"
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../../include/callui-view-layout-wvga.h"
+#include "../../include/callui-view-layout-hd.h"
+#include "edc_image_macro.edc"
+
+#define IMG_SRC_DIR "/res/images"
+#define IMG_ICN_DIR "/res/images/icon"
+
+images {
+ image: IMG_SRC_DIR/"vc_keypad_btn_normal.jpg" COMP;
+ image: IMG_SRC_DIR/"vc_keypad_btn_press.png" COMP;
+ image: IMG_SRC_DIR/"vc_keypad_btn_voice_mail_icon.png" COMP;
+ image: IMG_SRC_DIR/"vc_keypad_btn_mute_icon.png" COMP;
+ image: IMG_SRC_DIR/"call_during_record.png" COMP;
+ image: IMG_SRC_DIR/"call_pattern_bg.png" COMP;
+ image: IMG_SRC_DIR/"call_inline_button_open.png" COMP;
+ image: IMG_SRC_DIR/"call_inline_button_close.png" COMP;
+ image: IMG_SRC_DIR/"call_inline_button_close_1.png" COMP;
+ image: IMG_SRC_DIR/"call_photo_id_outer.png" COMP;
+ image: IMG_SRC_DIR/"call_photo_id.png" COMP;
+ image: IMG_SRC_DIR/"call_photo_id_mask.png" COMP;
+ image: IMG_SRC_DIR/"call_button_div_01.png" COMP;
+ image: IMG_SRC_DIR/"call_btn_circle.png" COMP;
+ image: IMG_SRC_DIR/"Call_button_bg_accept_reject.png" COMP;
+ image: IMG_SRC_DIR/"call_btn_ic_accept.png" COMP;
+ image: IMG_SRC_DIR/"Call_button_bg_reject.png" COMP;
+ image: IMG_SRC_DIR/"call_btn_ic_reject.png" COMP;
+ image: IMG_SRC_DIR/"call_button_circle.png" COMP;
+ image: IMG_SRC_DIR/"call_button_accept_circle_arrow.png" COMP;
+ image: IMG_SRC_DIR/"call_button_reject_circle_arrow.png" COMP;
+ image: IMG_SRC_DIR/"call_button_accept_arrow.png" COMP;
+ image: IMG_SRC_DIR/"call_button_reject_arrow.png" COMP;
+ image: IMG_SRC_DIR/"call_button_div_02.png" COMP;
+ image: IMG_SRC_DIR/"call_button_div_03.png" COMP;
+ image: IMG_SRC_DIR/"call_button_div_04.png" COMP;
+ image: IMG_SRC_DIR/"keypad_bg_div.png" COMP;
+ image: IMG_SRC_DIR/"keypad_input_del.png" COMP;
+ image: IMG_SRC_DIR/"keypad_number_00.png" COMP;
+ image: IMG_SRC_DIR/"keypad_number_01.png" COMP;
+ image: IMG_SRC_DIR/"keypad_number_02.png" COMP;
+ image: IMG_SRC_DIR/"keypad_number_03.png" COMP;
+ image: IMG_SRC_DIR/"keypad_number_04.png" COMP;
+ image: IMG_SRC_DIR/"keypad_number_05.png" COMP;
+ image: IMG_SRC_DIR/"keypad_number_06.png" COMP;
+ image: IMG_SRC_DIR/"keypad_number_07.png" COMP;
+ image: IMG_SRC_DIR/"keypad_number_08.png" COMP;
+ image: IMG_SRC_DIR/"keypad_number_09.png" COMP;
+ image: IMG_SRC_DIR/"keypad_number_asterisk.png" COMP;
+ image: IMG_SRC_DIR/"keypad_number_sharp.png" COMP;
+ image: IMG_SRC_DIR/"keypad_english_01.png" COMP;
+ image: IMG_SRC_DIR/"keypad_english_02.png" COMP;
+ image: IMG_SRC_DIR/"keypad_english_03.png" COMP;
+ image: IMG_SRC_DIR/"keypad_english_04.png" COMP;
+ image: IMG_SRC_DIR/"keypad_english_05.png" COMP;
+ image: IMG_SRC_DIR/"keypad_english_06.png" COMP;
+ image: IMG_SRC_DIR/"keypad_english_07.png" COMP;
+ image: IMG_SRC_DIR/"keypad_english_08.png" COMP;
+ image: IMG_SRC_DIR/"keypad_english_13.png" COMP;
+ image: IMG_SRC_DIR/"call_lock_icon.png" COMP;
+ image: IMG_SRC_DIR/"call_photo_id_emergency.png" COMP;
+ image: IMG_SRC_DIR/"call_photo_id_conference.png" COMP;
+ image: IMG_SRC_DIR/"call_extra_play.png" COMP;
+ image: IMG_SRC_DIR/"call_during_volume.png" COMP;
+ image: IMG_SRC_DIR/"call_extra_merge.png" COMP;
+ image: IMG_SRC_DIR/"call_extra_swap.png" COMP;
+ image: IMG_SRC_DIR/"call_resume_add.png" COMP;
+ image: IMG_SRC_DIR/"call_ic_controll_01.png" COMP;
+ image: IMG_SRC_DIR/"call_ic_controll_02.png" COMP;
+ image: IMG_SRC_DIR/"call_resume_group_icon.png" COMP;
+ image: IMG_SRC_DIR/"call_resume_play_bg.png" COMP;
+ image: IMG_SRC_DIR/"Call_controller.png" COMP;
+ image: IMG_SRC_DIR/"sound_volume_popup_bg.#.png" COMP;
+ image: IMG_SRC_DIR/"call_vivo.png" COMP;
+ image: IMG_SRC_DIR/"call_claro.png" COMP;
+ image: IMG_SRC_DIR/"call_oi.png" COMP;
+ image: IMG_SRC_DIR/"call_tim.png" COMP;
+ image: IMG_SRC_DIR/"call_open_bg.png" COMP;
+ image: IMG_SRC_DIR/"call_open_arrow_2.png" COMP;
+ image: IMG_SRC_DIR/"call_open_arrow_01.png" COMP;
+ image: IMG_SRC_DIR/"call_photo_id_bg.png" COMP;
+ image: IMG_SRC_DIR/"quick_extra_press.png" COMP;
+ image: IMG_SRC_DIR/"quick_extra.png" COMP;
+ image: IMG_SRC_DIR/"quick_extra_off_press.png" COMP;
+ image: IMG_SRC_DIR/"quick_extra_off.png" COMP;
+ image: IMG_SRC_DIR/"quick_end.png" COMP;
+ image: IMG_SRC_DIR/"quick_end_press.png" COMP;
+ image: IMG_SRC_DIR/"call_button_bg_line_accept_reject.png" COMP;
+ image: IMG_SRC_DIR/"lock_circle_line_camera_drag.png" COMP;
+ image: IMG_SRC_DIR/"lock_circle_line_camera.png" COMP;
+ image: IMG_SRC_DIR/"without_proximity_seneor_bg.png" COMP;
+ image: IMG_ICN_DIR/"call_button_add.png" COMP;
+ image: IMG_SRC_DIR/"handler_btn_02.png" COMP;
+ image: IMG_SRC_DIR/"button_edit_bg_new.png" COMP;
+ image: IMG_SRC_DIR/"call_btn_circle_02.png" COMP;
+ image: IMG_SRC_DIR/"background.png" COMP;
+ image: IMG_SRC_DIR/"background_dim.png" COMP;
+}
+
+collections {
+ base_scale: 2.6;
+
+ RESOURCE_IMAGE("vc_volume_icon.png", IMG_SRC_DIR/"vc_volume_icon.png");
+ RESOURCE_IMAGE("vc_volume_icon_bt.png", IMG_SRC_DIR/"vc_volume_icon_bt.png");
+ RESOURCE_IMAGE("vc_volume_mute_icon.png", IMG_SRC_DIR/"vc_volume_mute_icon.png");
+ RESOURCE_IMAGE("call_resume_icon.png", IMG_SRC_DIR/"call_resume_icon.png");
+ RESOURCE_IMAGE("call_button_add.png", IMG_ICN_DIR/"call_button_add.png");
+ RESOURCE_IMAGE("call_button_icon_01.png", IMG_SRC_DIR/"call_button_icon_01.png");
+ RESOURCE_IMAGE("call_inline_button_close.png", IMG_SRC_DIR/"call_inline_button_close.png");
+ RESOURCE_IMAGE("call_inline_button_close_1.png", IMG_SRC_DIR/"call_inline_button_close_1.png");
+ RESOURCE_IMAGE("call_button_icon_04.png", IMG_SRC_DIR/"call_button_icon_04.png");
+ RESOURCE_IMAGE("call_button_icon_03.png", IMG_SRC_DIR/"call_button_icon_03.png");
+ RESOURCE_IMAGE("call_button_icon_02.png", IMG_SRC_DIR/"call_button_icon_02.png");
+ RESOURCE_IMAGE("call_dual_sim_1.png", IMG_SRC_DIR/"call_dual_sim_1.png");
+ RESOURCE_IMAGE("call_dual_sim_2.png", IMG_SRC_DIR/"call_dual_sim_2.png");
+ RESOURCE_IMAGE("call_dual_sim_bg.png", IMG_SRC_DIR/"call_dual_sim_bg.png");
+ RESOURCE_IMAGE("logs_icon_sim_1.png", IMG_SRC_DIR/"logs_icon_sim_1.png");
+ RESOURCE_IMAGE("logs_icon_sim_2.png", IMG_SRC_DIR/"logs_icon_sim_2.png");
+ RESOURCE_IMAGE("logs_icon_sim_heart.png", IMG_SRC_DIR/"logs_icon_sim_heart.png");
+ RESOURCE_IMAGE("logs_icon_sim_home.png", IMG_SRC_DIR/"logs_icon_sim_home.png");
+ RESOURCE_IMAGE("logs_icon_sim_internet.png", IMG_SRC_DIR/"logs_icon_sim_internet.png");
+ RESOURCE_IMAGE("logs_icon_sim_data.png", IMG_SRC_DIR/"logs_icon_sim_data.png");
+ RESOURCE_IMAGE("logs_icon_sim_office.png", IMG_SRC_DIR/"logs_icon_sim_office.png");
+ RESOURCE_IMAGE("logs_icon_sim_phone.png", IMG_SRC_DIR/"logs_icon_sim_phone.png");
+ RESOURCE_IMAGE("logs_icon_sim_messages.png", IMG_SRC_DIR/"logs_icon_sim_messages.png");
+ #include "callui-view-button-layout.edc"
+ #include "callui-view-caller-info.edc"
+ #include "callui-view-incoming-lock.edc"
+ #include "callui-view-multi-call-list.edc"
+ #include "callui-keypad.edc"
+ #include "callui-view-main-layout.edc"
+ #include "callui_view_end_call.edc"
+ #include "callui-view-lock-screen.edc"
+ #include "callui-view-quick-pannel.edc"
+ #include "callui-view-quick-pannel-landscape.edc"
+ #include "callui_view_incoming_active.edc"
+ #include "callui-view-one-hold-in-conference.edc"
+ #include "callui-view-elements.edc"
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../callui-color-classes.h"
+
+#define VC_KEYPAD_MAIN_SUB_TEXT_FONT "Samsung Sans Num45v:style=Light"
+
+#define PART_KEYPAD_CUSTOM_ONE_ICON(txt, column, row, left_icon) \
+ part { \
+ name: txt; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ visible: 1; \
+ rel1 { relative: (column * (KEYPAD_EACH_BTN_W + KEYPAD_DIVIDER_SIZE) / TOTAL_W) (row * (KEYPAD_EACH_BTN_H + KEYPAD_DIVIDER_SIZE) / KEYPAD_H); to:"keypad_btns/rect";} \
+ rel2 { relative: (((column + 1) * KEYPAD_EACH_BTN_W + column * KEYPAD_DIVIDER_SIZE) / TOTAL_W) (((row + 1) * KEYPAD_EACH_BTN_H + row * KEYPAD_DIVIDER_SIZE) / KEYPAD_H); to:"keypad_btns/rect"; } \
+ fixed: 1 1; \
+ color_class: "AO005_C"; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ color_class: "AO005P"; \
+ } \
+ description { \
+ state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ } \
+ part { \
+ name: txt"_left"; \
+ type: IMAGE; \
+ scale: 1; \
+ mouse_events: 0; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ aspect: 0.0 1.0; \
+ aspect_preference: SOURCE; \
+ rel1 { relative: (KEYPAD_BTN_OFFSET_X / KEYPAD_EACH_BTN_W) (KEYPAD_BTN_OFFSET_Y / KEYPAD_EACH_BTN_H); to: txt;} \
+ rel2 { relative: ((KEYPAD_BTN_OFFSET_X + KEYPAD_BTN_ICON_W) / KEYPAD_EACH_BTN_W) ((KEYPAD_BTN_OFFSET_Y + KEYPAD_BTN_NUMBER_H) / KEYPAD_EACH_BTN_H); to: txt;} \
+ align: 0.5 0.5; \
+ image.normal: left_icon;\
+ color_class: "AO003"; \
+ aspect_preference: SOURCE; \
+ visible: 1; \
+ } \
+ description { \
+ state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ } \
+ part { name: "over_"txt; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 0 0; to: txt; } \
+ rel2 { relative: 1 1; to: txt; } \
+ color: 0 0 0 0; \
+ } \
+ }
+
+#define PART_KEYPAD_CUSTOM_TWO_ICON(txt, column, row, left_icon, right_icon) \
+ part { \
+ name: txt; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ visible: 1; \
+ rel1 { relative: (column * (KEYPAD_EACH_BTN_W + KEYPAD_DIVIDER_SIZE) / TOTAL_W) (row * (KEYPAD_EACH_BTN_H + KEYPAD_DIVIDER_SIZE) / KEYPAD_H); to:"keypad_btns/rect";} \
+ rel2 { relative: (((column + 1) * KEYPAD_EACH_BTN_W + column * KEYPAD_DIVIDER_SIZE) / TOTAL_W) (((row + 1) * KEYPAD_EACH_BTN_H + row * KEYPAD_DIVIDER_SIZE) / KEYPAD_H); to:"keypad_btns/rect"; } \
+ fixed: 1 1; \
+ color_class: "AO005_C"; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ color_class: "AO005P"; \
+ } \
+ description { \
+ state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ } \
+ part { \
+ name: txt"_left"; \
+ type: IMAGE; \
+ scale: 1; \
+ mouse_events: 0; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ aspect: 0.0 1.0; \
+ aspect_preference: SOURCE; \
+ rel1 { relative: (KEYPAD_BTN_OFFSET_X / KEYPAD_EACH_BTN_W) (KEYPAD_BTN_OFFSET_Y / KEYPAD_EACH_BTN_H); to: txt;} \
+ rel2 { relative: ((KEYPAD_BTN_OFFSET_X + KEYPAD_BTN_ICON_W) / KEYPAD_EACH_BTN_W) ((KEYPAD_BTN_OFFSET_Y + KEYPAD_BTN_NUMBER_H) / KEYPAD_EACH_BTN_H); to: txt;} \
+ image.normal: left_icon;\
+ color_class: "AO003"; \
+ aspect_preference: SOURCE; \
+ visible: 1; \
+ } \
+ description { \
+ state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ } \
+ part { \
+ name: txt"_right"; \
+ type: IMAGE; \
+ scale: 1; \
+ mouse_events: 0; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ aspect: 1.0 1.0; \
+ aspect_preference: SOURCE; \
+ rel1 { relative: (KEYPAD_BTN_OFFSET_X / KEYPAD_EACH_BTN_W) ((KEYPAD_BTN_OFFSET_Y + KEYPAD_BTN_NUMBER_H) / KEYPAD_EACH_BTN_H); to: txt;} \
+ rel2 { relative: ((KEYPAD_BTN_OFFSET_X + KEYPAD_BTN_ICON_W) / KEYPAD_EACH_BTN_W) ((KEYPAD_BTN_OFFSET_Y + KEYPAD_BTN_NUMBER_H + KEYPAD_BTN_LETTERS_H) / KEYPAD_EACH_BTN_H); to: txt;} \
+ align: 0.5 0.5; \
+ image.normal: right_icon; \
+ color_class: "AO004_C"; \
+ aspect_preference: SOURCE; \
+ visible: 1; \
+ } \
+ description { \
+ state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ } \
+ part { name: "over_"txt; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 0 0; to: txt; } \
+ rel2 { relative: 1 1; to: txt; } \
+ color: 0 0 0 0; \
+ } \
+ }
+
+#define PROG_KEYPAD(txt) \
+ program { \
+ name: "down_"txt; \
+ signal: "mouse,down,*"; \
+ source: "over_"txt; \
+ script { \
+ set_state(PART:txt, "pressed", 0.0); \
+ emit("pad_down", txt); \
+ } \
+ } \
+ program { \
+ name: "ani_"txt; \
+ signal: "ani"; \
+ source: "over_"txt; \
+ action: STATE_SET "default" 0.0; \
+ transition: SINUSOIDAL 0.1; \
+ target: txt; \
+ } \
+ program { \
+ name: "up_"txt; \
+ signal: "mouse,up,1"; \
+ source: "over_"txt; \
+ script { \
+ set_state(PART:txt, "default", 0.0); \
+ emit("pad_up", txt); \
+ emit("ani", "over_"txt); \
+ } \
+ } \
+ program { \
+ name: "clicked_"txt; \
+ signal: "mouse,clicked,1"; \
+ source: "over_"txt; \
+ script { \
+ emit("pad_clicked", txt); \
+ } \
+ }
+
+group{
+ name: "keypad";
+ parts {
+ part { name: "background";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "keypad_arrow_bg";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ color: 0 0 0 0;
+ rel1 { relative: 0.0 ((KEYPAD_AREA_H - KEYPAD_H - KEYPAD_ARROW_BTN_BG_H) / KEYPAD_AREA_H); to: "background";}
+ rel2 { relative: 1.0 ((KEYPAD_AREA_H - KEYPAD_H) / KEYPAD_AREA_H); to: "background";}
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "sweep_area";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1 { relative: 0 0; to: "background";}
+ rel2 { relative: 1 ((KEYPAD_AREA_H - KEYPAD_H) / KEYPAD_AREA_H); to: "background";}
+ }
+ }
+
+ part {
+ name: "keypad_arrow_rect";
+ type: RECT;
+ mouse_events:1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ color: 0 0 0 0;
+ rel1 { relative: 225/480 6/42; to: "keypad_arrow_bg";}
+ rel2 { relative: 255/480 29/42; to: "keypad_arrow_bg";}
+ }
+ }
+
+ part {
+ name: "keypad_down_arw";
+ type: IMAGE;
+ mouse_events:1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {relative: 0 0; to: "keypad_arrow_rect";}
+ rel2 {relative: 1 1; to: "keypad_arrow_rect";}
+ align: 0.5 0.0;
+ image {
+ normal: IMG_SRC_DIR/"call_open_arrow_2.png";
+ }
+ max: -1 3;
+ fixed: 0 1;
+ aspect_preference: HORIZONTAL;
+ visible: 1;
+ }
+ description {
+ state: "move" 0.0;
+ rel1 { relative: 0 0; to: "keypad_arrow_rect";}
+ rel2 { relative: 1 1; to: "keypad_arrow_rect";}
+ image {
+ normal: IMG_SRC_DIR/"call_open_arrow_2.png";
+ }
+ aspect_preference: SOURCE;
+ align: 0.5 1.0;
+ }
+ }
+
+ part { name: "keypad_btns/rect";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 ((KEYPAD_AREA_H - KEYPAD_H) / KEYPAD_AREA_H); to: "background"; }
+ rel2 { relative: 1.0 1.0; to: "background"; }
+ color_class: "AO008";
+ fixed: 1 1;
+ visible: 1;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ PART_KEYPAD_CUSTOM_ONE_ICON("1", 0, 0, IMG_SRC_DIR/"keypad_number_01.png")
+ PART_KEYPAD_CUSTOM_TWO_ICON("2", 1, 0, IMG_SRC_DIR/"keypad_number_02.png", IMG_SRC_DIR/"keypad_english_01.png")
+ PART_KEYPAD_CUSTOM_TWO_ICON("3", 2, 0, IMG_SRC_DIR/"keypad_number_03.png", IMG_SRC_DIR/"keypad_english_02.png")
+ PART_KEYPAD_CUSTOM_TWO_ICON("4", 0, 1, IMG_SRC_DIR/"keypad_number_04.png", IMG_SRC_DIR/"keypad_english_03.png")
+ PART_KEYPAD_CUSTOM_TWO_ICON("5", 1, 1, IMG_SRC_DIR/"keypad_number_05.png", IMG_SRC_DIR/"keypad_english_04.png")
+ PART_KEYPAD_CUSTOM_TWO_ICON("6", 2, 1, IMG_SRC_DIR/"keypad_number_06.png", IMG_SRC_DIR/"keypad_english_05.png")
+ PART_KEYPAD_CUSTOM_TWO_ICON("7", 0, 2, IMG_SRC_DIR/"keypad_number_07.png", IMG_SRC_DIR/"keypad_english_06.png")
+ PART_KEYPAD_CUSTOM_TWO_ICON("8", 1, 2, IMG_SRC_DIR/"keypad_number_08.png", IMG_SRC_DIR/"keypad_english_07.png")
+ PART_KEYPAD_CUSTOM_TWO_ICON("9", 2, 2, IMG_SRC_DIR/"keypad_number_09.png", IMG_SRC_DIR/"keypad_english_08.png")
+ PART_KEYPAD_CUSTOM_ONE_ICON("star", 0, 3, IMG_SRC_DIR/"keypad_number_asterisk.png")
+ PART_KEYPAD_CUSTOM_ONE_ICON("0", 1, 3, IMG_SRC_DIR/"keypad_number_00.png")
+ PART_KEYPAD_CUSTOM_ONE_ICON("sharp", 2, 3, IMG_SRC_DIR/"keypad_number_sharp.png")
+ }
+
+ programs{
+ script {
+ public animation_cnt;
+ }
+
+ program { name: "show_keypadbtn";
+ signal: "SHOW";
+ source: "KEYPADBTN";
+ action: STATE_SET "show" 0.0;
+ //target: "keypad/area";
+ target: "keypad_arrow_bg";
+ target: "keypad_btns/rect";
+ //target: "keypad_btns/bg";
+ }
+
+ program {
+ name: "init_animation";
+ signal: "init";
+ source: "down_arrow";
+ action: STATE_SET "default" 0.0;
+ target: "keypad_down_arw";
+ script {
+ set_int(animation_cnt, 0);
+ }
+ }
+
+ program {
+ name: "start_animation";
+ signal: "start_animation";
+ source: "down_arrow";
+ action: STATE_SET "default" 0.0;
+ target: "keypad_down_arw";
+ after: "move_arrow";
+ }
+
+ program {
+ name: "move_arrow";
+ signal: "move";
+ source: "down_arrow";
+ action: STATE_SET "move" 0.0;
+ target: "keypad_down_arw";
+ transition: DECELERATE 0.6;
+ after: "repeat";
+ }
+
+ program {
+ name: "repeat";
+ script {
+ set_int(animation_cnt, get_int(animation_cnt)+1);
+ if (get_int(animation_cnt) >= 2) {
+ set_int(animation_cnt, 0);
+ }
+ else {
+ run_program(PROGRAM:"start_animation");
+ }
+ }
+ }
+
+ PROG_KEYPAD("1")
+ PROG_KEYPAD("2")
+ PROG_KEYPAD("3")
+ PROG_KEYPAD("4")
+ PROG_KEYPAD("5")
+ PROG_KEYPAD("6")
+ PROG_KEYPAD("7")
+ PROG_KEYPAD("8")
+ PROG_KEYPAD("9")
+ PROG_KEYPAD("star")
+ PROG_KEYPAD("0")
+ PROG_KEYPAD("sharp")
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../callui-color-classes.h"
+#include "../../include/callui-view-caller-info-defines.h"
+
+#define SWL_BUTTON(part_name, left, top, right, bottom) \
+ part { name: part_name; \
+ type: SWALLOW; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { relative: left top; to: "background";} \
+ rel2 { relative: right bottom; to: "background";} \
+ } \
+ }
+
+group{
+ name: "button-layout";
+ parts{
+ part { name: "background";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ //color: COLOR_BG_ALPHA;
+ color_class: "AO001";
+ }
+ }
+
+ /*part { name: "swl_bg_image";
+ type: IMAGE;
+ mouse_events:1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to: "background"; }
+ rel2 { relative: 1 1; to: "background"; }
+ align: 0.5 0.5;
+ color_class: AO015;
+ image { normal: IMG_SRC_DIR/"call_button_div_01.png"; }
+ }
+ }*/
+
+ /*TOP FIRST BUTTON*/
+ SWL_BUTTON(PART_TOP_FIRST_BTN, TOP_FIRST_BUTTON_L, TOP_FIRST_BUTTON_T,
+ TOP_FIRST_BUTTON_R, TOP_FIRST_BUTTON_B)
+
+ /*TOP SECOND BUTTON*/
+ SWL_BUTTON(PART_TOP_SECOND_BTN, TOP_SECOND_BUTTON_L, TOP_SECOND_BUTTON_T,
+ TOP_SECOND_BUTTON_R, TOP_SECOND_BUTTON_B)
+
+ /*TOP THIRD BUTTON*/
+ SWL_BUTTON(PART_TOP_THIRD_BTN, TOP_THIRD_BUTTON_L, TOP_THIRD_BUTTON_T,
+ TOP_THIRD_BUTTON_R, TOP_THIRD_BUTTON_B)
+
+ /*BOTTOM FIRST BUTTON*/
+ SWL_BUTTON(PART_BOTTOM_FIRST_BTN, BOTTOM_FIRST_BUTTON_L, BOTTOM_FIRST_BUTTON_T,
+ BOTTOM_FIRST_BUTTON_R, BOTTOM_FIRST_BUTTON_B)
+
+ /*BOTTOM SECOND BUTTON*/
+ SWL_BUTTON(PART_BOTTOM_SECOND_BTN, BOTTOM_SECOND_BUTTON_L, BOTTOM_SECOND_BUTTON_T,
+ BOTTOM_SECOND_BUTTON_R, BOTTOM_SECOND_BUTTON_B)
+
+ /*BOTTOM THIRD BUTTON*/
+ SWL_BUTTON(PART_BOTTOM_THIRD_BTN, BOTTOM_THIRD_BUTTON_L, BOTTOM_THIRD_BUTTON_T,
+ BOTTOM_THIRD_BUTTON_R, BOTTOM_THIRD_BUTTON_B)
+ }
+
+ programs{
+ }
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../callui-color-classes.h"
+
+styles {
+ style {
+ name: "caller_info_name";
+ base: "text_class="ATO002" wrap=mixed ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ style {
+ name: "caller_info_name_land";
+ base: "font="VC_FONT_REGULAR" text_class="ATO002" font_size=28 color=#FFFFFFFF color_class: "ATO002" style=shadow align=center wrap=mixed ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ }
+ style {
+ name: "easy_caller_info_name";
+ base: "font="VC_FONT_REGULAR" text_class="VC_TEXT_CLASS_REGULAR" font_size=28 color=#FFFFFFFF style=shadow align=center wrap=mixed ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ style {
+ name: "extra_info_txt_style";
+ base: "font="VC_FONT_REGULAR" font_size=24 color=#070707FF color_class:"ATO010" align=left text_class="ATO010" wrap=mixed ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ style {
+ name: "extra_caller_name_style";
+ base: "font="VC_FONT_REGULAR" font_size=26 color=#FFFFFF color_class:"ATO027" align=left text_class:"ATO027" wrap=mixed ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ style {
+ name: "extra_caller_status_style";
+ base: "font="VC_FONT_REGULAR" font_size=40 color=#FFFFFF color_class:"ATO007" align=right text_class:"ATO007" wrap=mixed ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ style {
+ name: "merge_swap_style";
+ base: "font="VC_FONT_REGULAR" font_size=24 color=#FFFFFF color_class:"ATO028" align=center text_class:"ATO028" wrap=mixed ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+ style {
+ name: "call_name_light";
+ base: "font=Tizen:style=Light text_class="ATO002" font_size=64 color=#FFFFFFFF color_class: "ATO002" align=center color=#FFFFFF ellipsis=1.0";
+ }
+ style {
+ name: "call_2line_light";
+ base: "font=Tizen:style=Light text_class="ATO002" font_size=24 color=#FFFFFFFF color_class: "ATO002" align=center color=#FFFFFF ellipsis=1.0";
+ }
+}
+
+group{
+ name: "manage-calls";
+ parts {
+ part {
+ name: "background";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: COLOR_BG_ALPHA;
+ }
+ }
+ part {
+ name: "btn";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {relative: 0.0 0.0; to: "background";}
+ rel2 {relative: 1.0 1.0; to: "background";}
+ image {
+ normal: IMG_SRC_DIR/"call_ic_controll_01.png";
+ }
+ color_class: "AO026";
+ align: 0.5 0.5;
+ }
+ }
+ }
+}
+
+group {
+ name: "extra-volume";
+ parts {
+ part {
+ name: "background";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: COLOR_BG_ALPHA;
+ }
+ }
+
+ part {
+ name: "extra_icon";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "background";}
+ rel2 { relative: 1.0 1.0; to: "background";}
+ image.normal:IMG_SRC_DIR/"call_during_volume.png";
+ color_class: "AO026";
+ align: 0.5 0.5;
+ visible: 1;
+ }
+ }
+ }
+}
+
+group{
+ name: "caller-info";
+ parts{
+ part { name: "background";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "carrier_icon";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {relative: CALLER_INFO_CARRIER_L CALLER_INFO_CARRIER_T; to: "background";}
+ rel2 {relative: CALLER_INFO_CARRIER_R CALLER_INFO_CARRIER_B; to: "background";}
+ image.normal:IMG_SRC_DIR/"call_vivo.png";
+ aspect_preference: SOURCE;
+ align: 0.5 0.5;
+ visible: 0;
+ }
+ description {
+ state: "vivo" 0.0;
+ inherit: "default" 0.0;
+ image.normal: IMG_SRC_DIR/"call_vivo.png";
+ visible: 1;
+ }
+ description {
+ state: "claro" 0.0;
+ inherit: "default" 0.0;
+ image.normal: IMG_SRC_DIR/"call_claro.png";
+ visible: 1;
+ }
+ description {
+ state: "oi" 0.0;
+ inherit: "default" 0.0;
+ image.normal: IMG_SRC_DIR/"call_oi.png";
+ visible: 1;
+ }
+ description {
+ state: "tim" 0.0;
+ inherit: "default" 0.0;
+ image.normal: IMG_SRC_DIR/"call_tim.png";
+ visible: 1;
+ }
+ }
+
+ /*CALLER NAME*/
+ part { name: "txt_call_name"; /* call name or number */
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: CALLER_INFO_NAME_L CALLER_INFO_NAME_T; to: "background";}
+ rel2 { relative: CALLER_INFO_NAME_R CALLER_INFO_NAME_B; to: "background";}
+ text {
+ style: "call_name_light";
+ }
+ }
+ description {
+ state: "1line" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: CALLER_INFO_NAME_L CALLER_INFO_NAME_1LINE_T; to: "background";}
+ rel2 { relative: CALLER_INFO_NAME_R CALLER_INFO_NAME_1LINE_B; to: "background";}
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "ending_2line" 0.0;
+ inherit: "default" 0.0;
+ text {
+ text_class: "ATO030";
+ }
+ color_class: "ATO030";
+ }
+ description {
+ state: "ending_1line" 0.0;
+ inherit: "1line" 0.0;
+ text {
+ text_class: "ATO030";
+ }
+ color_class: "ATO030";
+ }
+ description {
+ state: "emergency" 0.0;
+ rel1 { relative: CALLER_INFO_NAME_L CALLER_INFO_NAME_T; to: "background";}
+ rel2 { relative: CALLER_INFO_NAME_R CALLER_INFO_NAME_EMERGENCY_B; to: "background";}
+ text.size: 64;
+ text.text_class: "AO008";
+ }
+ }
+
+ part { name: "txt_2nd_area";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: CALLER_INFO_NUMBER_L CALLER_INFO_NUMBER_T; to: "background";}
+ rel2 { relative: CALLER_INFO_NUMBER_R CALLER_INFO_NUMBER_B; to: "background";}
+ }
+ }
+
+ /*CALL NUMBER*/
+ part { name: "txt_phone_num"; /* Phone number*/
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to: "txt_2nd_area";}
+ rel2 { relative: 1 1; to: "txt_2nd_area";}
+ align: 0 0;
+ text {
+ fit: 1 1;
+ style: "call_2line_light";
+ }
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "ending_2line" 0.0;
+ inherit: "default" 0.0;
+ text {
+ text_class: "ATO031";
+ }
+ color_class: "ATO031";
+ }
+ description {
+ state: "ending_1line" 0.0;
+ inherit: "hide" 0.0;
+ }
+ }
+
+ part { name: "caller_id_rect";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: VC_CALLER_ID_LAYOUT_L VC_CALLER_ID_LAYOUT_T; to: "background";}
+ rel2 { relative: VC_CALLER_ID_LAYOUT_R VC_CALLER_ID_LAYOUT_B; to: "background";}
+ color: COLOR_BG_ALPHA;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "caller_id";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "caller_id_rect";}
+ rel2 { relative: 1.0 1.0; to: "caller_id_rect";}
+ fixed: 1 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part { name: "caller_id_bg";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "caller_id_rect";}
+ rel2 { relative: 1.0 1.0; to: "caller_id_rect";}
+ image {
+ normal: IMG_SRC_DIR/"call_photo_id_bg.png";
+ }
+ aspect_preference: SOURCE;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "emergency" 0.0;
+ inherit: "default" 0.0;
+ color_class: "AO036";
+ }
+ description {
+ state: "dim" 0.0;
+ inherit: "default" 0.0;
+ color_class: "AO151";
+ }
+ }
+
+ part { name: "caller_id_img";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "caller_id_rect";}
+ rel2 { relative: 1.0 1.0; to: "caller_id_rect";}
+ image {
+ normal: IMG_SRC_DIR/"call_photo_id.png";
+ }
+ aspect_preference: SOURCE;
+ color_class: "AO003L2";
+ fixed: 1 1;
+ align: 0.5 0.5;
+ visible: 1;
+ }
+ description {
+ state: "emergency" 0.0;
+ rel1 { relative: 0.0 0.0; to: "caller_id_rect";}
+ rel2 { relative: 1.0 1.0; to: "caller_id_rect";}
+ image {
+ normal: IMG_SRC_DIR/"call_photo_id_emergency.png";
+ }
+ aspect_preference: SOURCE;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ visible: 1;
+ }
+ description {
+ state: "conference" 0.0;
+ inherit: "default" 0.0;
+ image {
+ normal: IMG_SRC_DIR/"call_photo_id_conference.png";
+ }
+ color_class: "AO003L2";
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ /* effect */
+ part { name: "caller_id_effect";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: VC_CALLER_ID_EFFECT_L VC_CALLER_ID_EFFECT_T; to: "background";}
+ rel2 { relative: VC_CALLER_ID_EFFECT_R VC_CALLER_ID_EFFECT_B; to: "background";}
+ min: 200 200;
+ max: 200 200;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+
+ /*EXTRA INFO - hold, resume, extra volume*/
+ part {
+ name: "extra_info";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 {relative: EXTRA_LAYOUT_L EXTRA_LAYOUT_T; to: "background";}
+ rel2 {relative: EXTRA_LAYOUT_R EXTRA_LAYOUT_B; to: "background";}
+ color: COLOR_BG_ALPHA;
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "extra1_swl";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 {relative: 0 0; to: "extra_info";}
+ rel2 {relative: 1 1; to: "extra_info";}
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "extra_info2";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 {relative: EXTRA2_LAYOUT_L EXTRA2_LAYOUT_T; to: "background";}
+ rel2 {relative: EXTRA2_LAYOUT_R EXTRA2_LAYOUT_B; to: "background";}
+ color: COLOR_BG_ALPHA;
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "extra2_swl";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 {relative: 0 0; to: "extra_info2";}
+ rel2 {relative: 1 1; to: "extra_info2";}
+ }
+ }
+
+ part {
+ name: "divider";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 1; to: "extra_info"; }
+ rel2 { relative: 1 0; to: "extra_info2"; }
+ color_class: "AO039";
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "extra_info3";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 {relative: EXTRA3_LAYOUT_L EXTRA3_LAYOUT_T; to: "background";}
+ rel2 {relative: EXTRA3_LAYOUT_R EXTRA3_LAYOUT_B; to: "background";}
+ color: COLOR_BG_ALPHA;
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "extra3_swl";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 {relative: 0 0; to: "extra_info3";}
+ rel2 {relative: 1 1; to: "extra_info3";}
+ }
+ }
+
+ part {
+ name: "divider2";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 1; to: "extra_info2"; }
+ rel2 { relative: 1 0; to: "extra_info3"; }
+ color_class: "AO039";
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part { name: "manage_calls_icon_swallow";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: MANAGE_BTN_L MANAGE_BTN_T; to: "background";}
+ rel2 { relative: MANAGE_BTN_R MANAGE_BTN_B; to: "background";}
+ max: 39 39;
+ min: 39 39;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ programs {
+ program { name: "portrait_mode_caller_info";
+ signal: "set_portrait_mode";
+ source: "hold-caller-info";
+ action: STATE_SET "default" 0.0;
+ target: "txt_2nd_area";
+ target: "txt_call_name";
+ target: "txt_phone_num";
+ }
+ program {
+ name: "set_portrait_with_bg";
+ signal: "set_portrait";
+ source: "caller_info_layout";
+ in: 0.0 0.0;
+ action: STATE_SET "default" 0.0;
+ //target: "call_info_bg";
+ target: "txt_call_name";
+ target: "txt_2nd_area";
+ }
+
+ program {
+ name: "set_portrait_without_bg";
+ signal: "set_portrait";
+ source: "caller_info_layout_without_bg";
+ in: 0.0 0.0;
+ action: STATE_SET "default" 0.0;
+ target: "txt_call_name";
+ target: "txt_2nd_area";
+// after: "hide_caller_info_bg";
+ }
+ program {
+ name: "show_emergency_icon";
+ signal: "set_emergency_mode";
+ source: "";
+ action: STATE_SET "emergency" 0.0;
+ target: "caller_id_img";
+ target: "caller_id_bg";
+ target: "txt_call_name";
+ }
+
+ program {
+ name: "show_conference_icon";
+ signal: "set_conference_mode";
+ source: "";
+ action: STATE_SET "conference" 0.0;
+ target: "caller_id_img";
+ after: "caller_name_2line";
+ }
+
+ program {
+ name: "show_extra_info1";
+ signal: "show_extra_info1";
+ source: "";
+ action: STATE_SET "show" 0.0;
+ target: "extra_info";
+ }
+ program {
+ name: "hide_extra_info1";
+ signal: "hide_extra_info1";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "extra_info";
+ }
+ program {
+ name: "show_extra_info2";
+ signal: "show_extra_info2";
+ source: "";
+ action: STATE_SET "show" 0.0;
+ target: "divider";
+ target: "extra_info2";
+ }
+ program {
+ name: "hide_extra_info2";
+ signal: "hide_extra_info2";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "divider";
+ target: "extra_info2";
+ }
+ program {
+ name: "show_extra_info3";
+ signal: "show_extra_info3";
+ source: "";
+ action: STATE_SET "show" 0.0;
+ target: "divider2";
+ target: "extra_info3";
+ }
+ program {
+ name: "hide_extra_info3";
+ signal: "hide_extra_info3";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "divider2";
+ target: "extra_info3";
+ }
+
+ program {
+ name: "hide_default_cid";
+ signal: "hide_default_cid";
+ source: "";
+ action: STATE_SET "hide" 0.0;
+ target: "caller_id_img";
+ target: "caller_id_bg";
+ }
+ program {
+ name: "show_cid_thumb";
+ action: STATE_SET "show" 0.0;
+ target: "caller_id";
+ }
+
+ program {
+ name: "show_default_cid";
+ signal: "show_default_cid";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "caller_id_img";
+ target: "caller_id_bg";
+ }
+ program {
+ name: "hide_cid_thumb";
+ action: STATE_SET "hide" 0.0;
+ target: "caller_id";
+ }
+ program {
+ name: "hide_cid_all";
+ signal: "hide_cid_all";
+ source: "";
+ action: STATE_SET "hide" 0.0;
+ target: "caller_id_img";
+ target: "caller_id_bg";
+ target: "caller_id";
+ }
+ program {
+ name: "show_cid_all";
+ signal: "show_cid_all";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "caller_id_img";
+ target: "caller_id_bg";
+ target: "caller_id";
+ }
+
+ program {
+ name: "show_carrier_vivo";
+ signal: "show_carrier_vivo";
+ source: "";
+ action: STATE_SET "vivo" 0.0;
+ target: "carrier_icon";
+ }
+ program {
+ name: "show_carrier_claro";
+ signal: "show_carrier_claro";
+ source: "";
+ action: STATE_SET "claro" 0.0;
+ target: "carrier_icon";
+ }
+ program {
+ name: "show_carrier_oi";
+ signal: "show_carrier_oi";
+ source: "";
+ action: STATE_SET "oi" 0.0;
+ target: "carrier_icon";
+ }
+ program {
+ name: "show_carrier_tim";
+ signal: "show_carrier_tim";
+ source: "";
+ action: STATE_SET "tim" 0.0;
+ target: "carrier_icon";
+ }
+ program {
+ name: "hide_carrier_icon";
+ signal: "hide_carrier_icon";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "carrier_icon";
+ }
+ program {
+ name: "caller_name_1line";
+ signal: "1line";
+ source: "caller_name";
+ action: STATE_SET "1line" 0.0;
+ target: "txt_call_name";
+ }
+ program {
+ name: "caller_name_2line";
+ signal: "2line";
+ source: "caller_name";
+ action: STATE_SET "default" 0.0;
+ target: "txt_call_name";
+ }
+ program {
+ name: "ending_1line";
+ signal: "ending_1line";
+ source: "caller_info";
+ action: STATE_SET "ending_1line" 0.0;
+ target: "txt_call_name";
+ target: "txt_phone_num";
+ after: "dim_caller_id";
+ }
+ program {
+ name: "ending_2line";
+ signal: "ending_2line";
+ source: "caller_info";
+ action: STATE_SET "ending_2line" 0.0;
+ target: "txt_call_name";
+ target: "txt_phone_num";
+ after: "dim_caller_id";
+ }
+ program {
+ name: "dim_caller_id";
+ action: STATE_SET "dim" 0.0;
+ target: "caller_id_bg";
+ }
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../../include/callui-view-elements-defines.h"
+#include "../callui-color-classes.h"
+
+RESOURCE_IMAGE_WITH_MASK(GROUP_THUMBNAIL_186, IMG_SRC_DIR/"call_photo_id_bg.png", PART_SWALLOW_IMAGE)
+RESOURCE_IMAGE_WITH_MASK(GROUP_THUMBNAIL_98, IMG_SRC_DIR/"call_btn_circle_02.png", PART_SWALLOW_IMAGE)
+
+RESOURCE_IMAGE_WITH_BG_AND_COLOR_CODE(GROUP_DEFAULT_THUMBNAIL_98, "call_photo_id_98.png", "call_photo_id_bg.png", "AO001", "AO002")
+RESOURCE_IMAGE_WITH_BG_AND_COLOR_CODE(GROUP_DEFAULT_THUMBNAIL_186, "call_photo_id.png", "call_photo_id_bg.png", "AO001", "AO002")
+RESOURCE_IMAGE_WITH_BG_AND_COLOR_CODE(GROUP_DEFAULT_CONFERENCE_THUMBNAIL_186, "call_photo_id_conference.png", "call_photo_id_bg.png", "AO001", "AO002")
+
+RESOURCE_IMAGE_WITH_BG_AND_TOUCH(GROUP_CALL_BTN_IC_SPLIT, "call_btn_ic_split.png", "call_btn_circle_02.png", CALL_BTN_IC_SIZE, CALL_BTN_IC_BG_SIZE, "btn_ic", "btn_ic_split_bg", "btn_ic_split_bg_pressed")
+RESOURCE_IMAGE_WITH_BG_AND_TOUCH(GROUP_CALL_BTN_IC_END, "call_btn_ic_end.png", "call_btn_circle_02.png", CALL_BTN_IC_SIZE, CALL_BTN_IC_BG_SIZE, "btn_ic", "btn_ic_end_bg", "btn_ic_end_bg_pressed")
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../callui-color-classes.h"
+
+#define COLOR_OPACITY_100 255 255 255 255
+#define COLOR_OPACITY_80 255 255 255 204
+#define COLOR_OPACITY_75 255 255 255 191
+#define COLOR_OPACITY_60 255 255 255 153
+#define COLOR_OPACITY_50 255 255 255 128
+#define COLOR_OPACITY_40 255 255 255 102
+#define COLOR_OPACITY_25 255 255 255 64
+#define COLOR_OPACITY_20 255 255 255 51
+#define COLOR_OPACITY_0 255 255 255 0
+#define SHIFT_VALUE (20/720)
+
+#define CREATE_OUTER_CIRCLE_RECT(part_name, lpos, tpos, rpos, bpos) \
+ part { \
+ name: part_name; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { relative: lpos tpos; } \
+ rel2 { relative: rpos bpos; } \
+ color: COLOR_BG_ALPHA; \
+ } \
+ }
+
+#define CREATE_OUTER_CIRCLE_CLIP(part_name, lpos, tpos, rpos, bpos) \
+ part { \
+ name: part_name; \
+ type: RECT; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { relative: lpos tpos; } \
+ rel2 { relative: rpos bpos; } \
+ } \
+ }
+
+#define CREATE_OUTER_CIRCLE(part_name, reference, icon_name, clip_to_rect, color_code) \
+ part { \
+ name: part_name; \
+ type: IMAGE; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ scale: 1.0; \
+ clip_to: clip_to_rect; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { relative: 0.4 0.4; to: reference; } \
+ rel2 { relative: 0.6 0.6; to: reference; } \
+ image { \
+ normal: IMG_SRC_DIR/icon_name; \
+ } \
+ align: 0.0 0.5; \
+ color_class: color_code; \
+ } \
+ description { \
+ state: "bright" 0.0; \
+ inherit: "default" 0.0; \
+ rel1 { relative: 0.0 0.0; to: reference; } \
+ rel2 { relative: 1.0 1.0; to: reference; } \
+ color_class: color_code; \
+ } \
+ description { \
+ state: "bright" 0.1; \
+ inherit: "bright" 0.0; \
+ color_class: color_code; \
+ } \
+ description { \
+ state: "bright" 0.2; \
+ inherit: "bright" 0.0; \
+ color_class: color_code; \
+ } \
+ description { \
+ state: "bright" 0.3; \
+ inherit: "bright" 0.0; \
+ color_class: color_code; \
+ } \
+ description { \
+ state: "show" 0.0; \
+ inherit: "bright" 0.0; \
+ color_class: color_code; \
+ } \
+ description { \
+ state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ }
+
+#define CREATE_INNER_CIRCLE_SIMPLE_IMAGE(part_name, lpos, tpos, rpos, bpos, clip_to_rect, icon_name, color_code) \
+ part { \
+ name: part_name; \
+ type: IMAGE; \
+ mouse_events: 0; \
+ repeat_events: 1; \
+ scale: 1; \
+ clip_to: clip_to_rect; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { relative: lpos tpos; } \
+ rel2 { relative: rpos bpos; } \
+ image { \
+ normal: IMG_SRC_DIR/icon_name; \
+ } \
+ align: 0.0 0.5; \
+ color_class: color_code; \
+ aspect_preference: SOURCE; \
+ } \
+ description { \
+ state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ } \
+
+#define CREATE_INNER_CIRCLE_SIMPLE_IMAGE_R(part_name, lpos, tpos, rpos, bpos, icon_name, color_code) \
+ part { \
+ name: part_name; \
+ type: IMAGE; \
+ mouse_events: 0; \
+ repeat_events: 1; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { relative: lpos tpos; } \
+ rel2 { relative: rpos bpos; } \
+ image { \
+ normal: IMG_SRC_DIR/icon_name; \
+ } \
+ align: 0.5 0.5; \
+ color_class: color_code; \
+ } \
+ description { \
+ state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ } \
+
+#define CREATE_INNER_CIRCLE(part_name, lpos, tpos, rpos, bpos, icon_name, color_code) \
+ part { \
+ name: part_name; \
+ type: IMAGE; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { relative: lpos tpos; } \
+ rel2 { relative: rpos bpos; } \
+ image { \
+ normal: IMG_SRC_DIR/"call_btn_circle.png"; \
+ } \
+ align: 0.0 0.5; \
+ color_class: color_code; \
+ aspect_preference: SOURCE; \
+ } \
+ description { \
+ state: "dim" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: color_code; \
+ color: COLOR_OPACITY_80; \
+ } \
+ description { \
+ state: "dim" 0.1; \
+ inherit: "default" 0.0; \
+ color_class: color_code; \
+ color: COLOR_OPACITY_60; \
+ } \
+ description { \
+ state: "dim" 0.2; \
+ inherit: "default" 0.0; \
+ color_class: color_code; \
+ color: COLOR_OPACITY_40; \
+ } \
+ description { \
+ state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: color_code; \
+ color: COLOR_OPACITY_40; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: color_code"P"; \
+ } \
+ } \
+ part { \
+ name: "call_btn_icon"; \
+ type: IMAGE; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { relative: 0.0 0.0; to: part_name; } \
+ rel2 { relative: 1.0 1.0; to: part_name; } \
+ image { \
+ normal: IMG_SRC_DIR/icon_name; \
+ } \
+ align: 0.5 0.5; \
+ max: MTLOCK_CALL_ICON_W MTLOCK_CALL_ICON_H; \
+ min: MTLOCK_CALL_ICON_W MTLOCK_CALL_ICON_H; \
+ } \
+ } \
+ part { \
+ name: part_name"_ao"; \
+ type: RECT; \
+ mouse_events: 1; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { relative: lpos tpos; } \
+ rel2 { relative: rpos bpos; } \
+ color: 0 0 0 0; \
+ } \
+ }
+
+#define CREATE_ICON(part_name, lpos, tpos, rpos, bpos, normal_icon_name, dim_icon_name) \
+ part { \
+ name: part_name; \
+ type: IMAGE; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { relative: lpos tpos; } \
+ rel2 { relative: rpos bpos; } \
+ image { \
+ normal: IMG_SRC_DIR/normal_icon_name; \
+ } \
+ align: 0.5 0.5; \
+ color: COLOR_OPACITY_100; \
+ } \
+ description { \
+ state: "dim" 0.0; \
+ inherit: "default" 0.0; \
+ image { \
+ normal: IMG_SRC_DIR/dim_icon_name; \
+ } \
+ } \
+ }
+
+#define CREATE_ARROW_ICON(part_name, lpos, tpos, rpos, bpos, shift_value, icon_name, color_code, opacity_1, opacity_2, opacity_3, opacity_4, opacity_5) \
+ part { \
+ name: part_name; \
+ type: IMAGE; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { relative: lpos tpos; } \
+ rel2 { relative: rpos bpos; } \
+ image { \
+ normal: icon_name; \
+ } \
+ align: 0.5 0.5; \
+ color_class: color_code; \
+ color: opacity_1; \
+ visible: 1; \
+ } \
+ description { \
+ state: "init" 0.0; \
+ inherit: "default" 0.0; \
+ rel1 { relative: lpos+shift_value tpos; } \
+ rel2 { relative: rpos+shift_value bpos; } \
+ } \
+ description { \
+ state: "flicker" 0.0; \
+ inherit: "default" 0.0; \
+ color: opacity_2; \
+ } \
+ description { \
+ state: "flicker" 0.1; \
+ inherit: "default" 0.0; \
+ color: opacity_3; \
+ } \
+ description { \
+ state: "flicker" 0.2; \
+ inherit: "default" 0.0; \
+ color: opacity_4; \
+ } \
+ description { \
+ state: "flicker" 0.3; \
+ inherit: "default" 0.0; \
+ color: opacity_5; \
+ } \
+ description { \
+ state: "hide" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ }
+
+#define CREATE_PROGRAM(prog_name, signal_name, source_name, state_name, target_name) \
+ program { \
+ name: prog_name; \
+ signal: signal_name; \
+ source: source_name; \
+ action: STATE_SET state_name 0.0; \
+ target: target_name; \
+ }
+
+#define CREATE_PROGRAM_IN_TRANSITION(prog_name, signal_name, source_name, state_name, state_ver, target_name) \
+ program { \
+ name: prog_name; \
+ signal: signal_name; \
+ source: source_name; \
+ action: STATE_SET state_name state_ver; \
+ target: target_name; \
+ transition: LINEAR 0.2; \
+ }
+
+#define CREATE_ARROW_ANIMATION(prog_1, prog_2, prog_3, prog_4, prog_5, target_1, target_2, target_3, target_4, signal_name, source_name) \
+ program { \
+ name: prog_1; \
+ signal: signal_name; \
+ source: source_name; \
+ action: STATE_SET "default" 0.0; \
+ target: target_1; \
+ target: target_2; \
+ target: target_3; \
+ target: target_4; \
+ transition: LINEAR 0.5; \
+ after: prog_2; \
+ } \
+ program { \
+ name: prog_2; \
+ signal: signal_name; \
+ source: source_name; \
+ action: STATE_SET "flicker" 0.0; \
+ target: target_1; \
+ target: target_2; \
+ target: target_3; \
+ target: target_4; \
+ transition: LINEAR 0.3; \
+ after: prog_3; \
+ } \
+ program { \
+ name: prog_3; \
+ signal: signal_name; \
+ source: source_name; \
+ action: STATE_SET "flicker" 0.1; \
+ target: target_1; \
+ target: target_2; \
+ target: target_3; \
+ target: target_4; \
+ transition: LINEAR 0.3; \
+ after: prog_4; \
+ } \
+ program { \
+ name: prog_4; \
+ signal: signal_name; \
+ source: source_name; \
+ action: STATE_SET "flicker" 0.2; \
+ target: target_1; \
+ target: target_2; \
+ target: target_3; \
+ target: target_4; \
+ transition: LINEAR 0.3; \
+ after: prog_5; \
+ } \
+ program { \
+ name: prog_5; \
+ signal: signal_name; \
+ source: source_name; \
+ action: STATE_SET "flicker" 0.3; \
+ target: target_1; \
+ target: target_2; \
+ target: target_3; \
+ target: target_4; \
+ transition: LINEAR 0.3; \
+ after: prog_1; \
+ }
+
+#define CREATE_EASY_ARROW_ANIMATION(prog_1, prog_2, prog_3, prog_4, prog_5, target_1, target_2, target_3, target_4, target_5, signal_name, source_name) \
+ program { \
+ name: prog_1; \
+ signal: signal_name; \
+ source: source_name; \
+ action: STATE_SET "default" 0.0; \
+ target: target_1; \
+ target: target_2; \
+ target: target_3; \
+ target: target_4; \
+ target: target_5; \
+ transition: LINEAR 0.5; \
+ after: prog_2; \
+ } \
+ program { \
+ name: prog_2; \
+ signal: signal_name; \
+ source: source_name; \
+ action: STATE_SET "flicker" 0.0; \
+ target: target_1; \
+ target: target_2; \
+ target: target_3; \
+ target: target_4; \
+ target: target_5; \
+ transition: LINEAR 0.3; \
+ after: prog_3; \
+ } \
+ program { \
+ name: prog_3; \
+ signal: signal_name; \
+ source: source_name; \
+ action: STATE_SET "flicker" 0.1; \
+ target: target_1; \
+ target: target_2; \
+ target: target_3; \
+ target: target_4; \
+ target: target_5; \
+ transition: LINEAR 0.3; \
+ after: prog_4; \
+ } \
+ program { \
+ name: prog_4; \
+ signal: signal_name; \
+ source: source_name; \
+ action: STATE_SET "flicker" 0.2; \
+ target: target_1; \
+ target: target_2; \
+ target: target_3; \
+ target: target_4; \
+ target: target_5; \
+ transition: LINEAR 0.3; \
+ after: prog_5; \
+ } \
+ program { \
+ name: prog_5; \
+ signal: signal_name; \
+ source: source_name; \
+ action: STATE_SET "flicker" 0.3; \
+ target: target_1; \
+ target: target_2; \
+ target: target_3; \
+ target: target_4; \
+ target: target_5; \
+ transition: LINEAR 0.3; \
+ after: prog_1; \
+ }
+
+#define CREATE_PROGRAM_EXPAND_ANIMATION(prog_name, target_name) \
+ program { \
+ name: prog_name; \
+ signal: "outer_circle,expand"; \
+ source: "outer-circle"; \
+ action: STATE_SET "bright" 0.0; \
+ transition: LINEAR 0.5; \
+ target: target_name; \
+ }
+
+#define CREATE_PROGRAM_CONTRACT_ANIMATION(prog_name, target_name, after_prog_name) \
+ program { \
+ name: prog_name; \
+ signal: "outer_circle,contract"; \
+ source: "outer-circle"; \
+ action: STATE_SET "default" 0.0; \
+ transition: LINEAR 0.5; \
+ target: target_name; \
+ after: after_prog_name; \
+ }
+
+color_classes {
+ color_class {
+ name: "ATO004";
+ color: 3 61 133 255;
+ }
+}
+
+group {
+ name: "lock_accept";
+
+ parts {
+ part {
+ name: "background";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: COLOR_BG_ALPHA;
+ }
+ }
+
+ CREATE_OUTER_CIRCLE_RECT("rect_outer_circle", MTLOCK_ACCEPT_OUTER_CIRCLE_L, MTLOCK_ACCEPT_OUTER_CIRCLE_T, MTLOCK_ACCEPT_OUTER_CIRCLE_R, MTLOCK_ACCEPT_OUTER_CIRCLE_B)
+ CREATE_OUTER_CIRCLE_CLIP("rect_outer_circle_clipper", MTLOCK_ACCEPT_OUTER_CIRCLE_L, MTLOCK_ACCEPT_OUTER_CIRCLE_CLIP_RECT_T, MTLOCK_ACCEPT_OUTER_CIRCLE_R, MTLOCK_ACCEPT_OUTER_CIRCLE_CLIP_RECT_B)
+ CREATE_OUTER_CIRCLE("accept_outer_circle", "rect_outer_circle", "call_button_bg_line_accept_reject.png", "rect_outer_circle_clipper", "AO046L1")
+ CREATE_INNER_CIRCLE_SIMPLE_IMAGE("accept_inner_circle_bg", MTLOCK_ACCEPT_INNER_CIRCLE_L, MTLOCK_ACCEPT_INNER_CIRCLE_T, MTLOCK_ACCEPT_INNER_CIRCLE_R, MTLOCK_ACCEPT_INNER_CIRCLE_B, "rect_outer_circle_clipper", "Call_button_bg_accept_reject.png", "AO046");
+
+ CREATE_INNER_CIRCLE("accept_inner_circle", MTLOCK_ACCEPT_INNER_CIRCLE_L, MTLOCK_ACCEPT_INNER_CIRCLE_T, MTLOCK_ACCEPT_INNER_CIRCLE_R, MTLOCK_ACCEPT_INNER_CIRCLE_B, "call_btn_ic_accept.png", "AO004")
+ }
+
+ programs {
+ CREATE_PROGRAM_IN_TRANSITION("accept_outer_circle,show", "outer_circle,show", "outer-circle", "show", 0.0, "accept_outer_circle")
+ CREATE_PROGRAM_IN_TRANSITION("accept_outer_circle,hide", "outer_circle,hide", "outer-circle", "hide", 0.0, "accept_outer_circle")
+ }
+}
+
+group {
+ name: "lock_reject";
+
+ parts {
+ part {
+ name: "background";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ color: COLOR_BG_ALPHA;
+ }
+ }
+ CREATE_OUTER_CIRCLE_RECT("rect_outer_circle", MTLOCK_REJECT_OUTER_CIRCLE_L, MTLOCK_REJECT_OUTER_CIRCLE_T, MTLOCK_REJECT_OUTER_CIRCLE_R, MTLOCK_REJECT_OUTER_CIRCLE_B)
+ CREATE_OUTER_CIRCLE_CLIP("rect_outer_circle_clipper", MTLOCK_REJECT_OUTER_CIRCLE_L, MTLOCK_REJECT_OUTER_CIRCLE_CLIP_RECT_T, MTLOCK_REJECT_OUTER_CIRCLE_R, MTLOCK_REJECT_OUTER_CIRCLE_CLIP_RECT_B)
+ CREATE_OUTER_CIRCLE("reject_outer_circle", "rect_outer_circle", "call_button_bg_line_accept_reject.png", "rect_outer_circle_clipper", "AO047L1")
+ CREATE_INNER_CIRCLE_SIMPLE_IMAGE("reject_inner_circle_bg", MTLOCK_REJECT_INNER_CIRCLE_L, MTLOCK_REJECT_INNER_CIRCLE_T, MTLOCK_REJECT_INNER_CIRCLE_R, MTLOCK_REJECT_INNER_CIRCLE_B, "rect_outer_circle_clipper", "Call_button_bg_accept_reject.png", "AO047");
+
+ CREATE_INNER_CIRCLE("reject_inner_circle", MTLOCK_REJECT_INNER_CIRCLE_L, MTLOCK_REJECT_INNER_CIRCLE_T, MTLOCK_REJECT_INNER_CIRCLE_R, MTLOCK_REJECT_INNER_CIRCLE_B, "call_btn_ic_reject.png", "AO005")
+ }
+
+ programs {
+ CREATE_PROGRAM_IN_TRANSITION("reject_outer_circle,show", "outer_circle,show", "outer-circle", "show", 0.0, "reject_outer_circle")
+ CREATE_PROGRAM_IN_TRANSITION("reject_outer_circle,hide", "outer_circle,hide", "outer-circle", "hide", 0.0, "reject_outer_circle")
+ }
+}
+
+
+group {
+ name: "lock_reject_with_msg";
+
+ parts {
+ part {
+ name: "reject_msg_bg";
+ type: RECT;
+ mouse_events:1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: MTLOCK_REJECT_MSG_BG_L MTLOCK_REJECT_MSG_BG_T;}
+ rel2 { relative: MTLOCK_REJECT_MSG_BG_R 1.0;}
+ align: 0.0 0.5;
+ color: 0 0 0 0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "reject_msg_arw";
+ type: IMAGE;
+ mouse_events:1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: MTLOCK_REJECT_MSG_ARW_L MTLOCK_REJECT_MSG_ARW_T; }
+ rel2 { relative: MTLOCK_REJECT_MSG_ARW_R MTLOCK_REJECT_MSG_ARW_B; }
+ align: 0.5 0.5;
+ color_class: "AO001";
+ visible: 0;
+ }
+ description {
+ state: "list_close" 0.0;
+ inherit: "default" 0.0;
+ image { normal: IMG_SRC_DIR/"call_inline_button_open.png"; }
+ visible: 1;
+ }
+ description {
+ state: "list_open" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "reject_msg_text_area";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: MTLOCK_REJECT_MSG_TEXT_L MTLOCK_REJECT_MSG_TEXT_T; }
+ rel2 { relative: MTLOCK_REJECT_MSG_TEXT_R MTLOCK_REJECT_MSG_TEXT_B; }
+ }
+ }
+ part {
+ name: "reject_msg_text";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to: "reject_msg_text_area";}
+ rel2 { relative: 1 1; to: "reject_msg_text_area";}
+ fixed: 1 1;
+ text { font, VC_FONT_REGULAR; align, 0.5 0.5; size:38; }
+ color_class: "AO001";
+ visible: 1;
+ align: 0.5 0.5;
+ }
+ description {
+ state: "list_close" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "list_open" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "swl_msglist_bg";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; }
+ rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_1ITEM_B; }
+ }
+ description {
+ state: "1item" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; }
+ rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_1ITEM_B; }
+ }
+ description {
+ state: "2items" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; }
+ rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_2ITEMS_B; }
+ }
+ description {
+ state: "3items" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; }
+ rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_3ITEMS_B; }
+ }
+ description {
+ state: "4items" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; }
+ rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_4ITEMS_B; }
+ }
+ description {
+ state: "5items" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; }
+ rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_5ITEMS_B; }
+ }
+ description {
+ state: "6items" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_NEW_T; }
+ rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_LIST_6ITEMS_B; }
+ }
+ }
+
+ part {
+ name: "swl_msglist";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "swl_msglist_bg"; }
+ rel2 { relative: 1.0 1.0; to: "swl_msglist_bg"; }
+ }
+ }
+ part {
+ name: "arrow_bg";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_DOWN_ARROW_T; }
+ rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_DOWN_ARROW_B; }
+ }
+ }
+ part {
+ name: "reject_msg_down_arw";
+ type: IMAGE;
+ mouse_events:1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: MTLOCK_REJECT_MSG_ARW_L MTLOCK_REJECT_MSG_ARW_CLOSE_T; }
+ rel2 { relative: MTLOCK_REJECT_MSG_ARW_R MTLOCK_REJECT_MSG_ARW_CLOSE_B; }
+ image { normal: IMG_SRC_DIR/"call_inline_button_close.png"; }
+ align: 0.5 0.5;
+ color_class: "AO001";
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "bottom_btn/rect";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ color: 255 255 255 255;
+ rel1 { relative: MTLOCK_REJECT_MSG_BTN_L MTLOCK_REJECT_MSG_BTN_T;}
+ rel2 { relative: MTLOCK_REJECT_MSG_BTN_R MTLOCK_REJECT_MSG_BTN_B;}
+ align: 0.5 0.0;
+ }
+ }
+ part {
+ name: "bottom_btn";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 {
+ relative: (REJ_MSG_LIST_CREATE_MSG_BTN_L_PAD/MTLOCK_REJECT_MSG_LIST_WIDTH) (BUTTON_OFFSET_T/ITEM_SIZE_H);
+ to: "bottom_btn/rect";
+ }
+ rel2 {
+ relative: ((MTLOCK_REJECT_MSG_LIST_WIDTH-REJ_MSG_LIST_CREATE_MSG_BTN_R_PAD)/MTLOCK_REJECT_MSG_LIST_WIDTH) ((BUTTON_REJECT_SIZE_H + BUTTON_OFFSET_T)/ITEM_SIZE_H);
+ to: "bottom_btn/rect";
+ }
+ }
+ }
+ }
+
+ programs {
+ program {
+ name: "up_arrow";
+ signal: "show-up-arrow";
+ source: "reject_msg";
+ action: STATE_SET "list_close" 0.0;
+ target: "reject_msg_arw";
+ target: "reject_msg_text";
+ transition: LINEAR 0.0;
+ }
+
+ program {
+ name: "down_arrow";
+ signal: "show-down-arrow";
+ source: "reject_msg";
+ action: STATE_SET "list_open" 0.0;
+ target: "reject_msg_arw";
+ target: "reject_msg_text";
+ transition: LINEAR 0.0;
+ }
+
+ program {
+ name: "set_portrait";
+ signal: "set_portrait";
+ source: "reject_with_msg_layout";
+ in: 0.0 0.0;
+ action: STATE_SET "default" 0.0;
+
+ target: "reject_msg_bg";
+ target: "reject_msg_arw";
+ target: "reject_msg_text_area";
+ target: "reject_msg_text";
+ target: "swl_msglist_bg";
+ }
+ program {
+ name: "1item_list";
+ signal: "set_1item_list";
+ source: "";
+ action: STATE_SET "1item" 0.0;
+ target: "swl_msglist_bg";
+ }
+ program {
+ name: "2items_list";
+ signal: "set_2items_list";
+ source: "";
+ action: STATE_SET "2items" 0.0;
+ target: "swl_msglist_bg";
+ }
+ program {
+ name: "3items_list";
+ signal: "set_3items_list";
+ source: "";
+ action: STATE_SET "3items" 0.0;
+ target: "swl_msglist_bg";
+ }
+ program {
+ name: "4items_list";
+ signal: "set_4items_list";
+ source: "";
+ action: STATE_SET "4items" 0.0;
+ target: "swl_msglist_bg";
+ }
+ program {
+ name: "5items_list";
+ signal: "set_5items_list";
+ source: "";
+ action: STATE_SET "5items" 0.0;
+ target: "swl_msglist_bg";
+ }
+ program {
+ name: "6items_list";
+ signal: "set_6items_list";
+ source: "";
+ action: STATE_SET "6items" 0.0;
+ target: "swl_msglist_bg";
+ }
+ }
+}
+
+group {
+ name: "dimming_ly";
+ parts {
+ part {
+ name: "background";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color_class: "AO012";
+ visible: 1;
+ }
+ }
+ }
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../callui-color-classes.h"
+
+styles {
+ style {
+ name: "lock_screen_txt_style";
+ base: "font="VC_FONT_REGULAR" font_size=30 color=#FFFFFF color_class:"ATO011" align=center text_class="ATO011" wrap=mixed";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+}
+
+group {
+ name: "lock-screen";
+ parts {
+ part {
+ name: "background";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "bg_img";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to: "background";}
+ rel2 { relative: 1 1; to: "background";}
+ image {
+ normal: IMG_SRC_DIR/"without_proximity_seneor_bg.png";
+ }
+ aspect_preference: BOTH;
+ align: 0.0 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "lock-icon";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 {relative: LOCK_SCREEN_ICON_L LOCK_SCREEN_ICON_T; to: background; }
+ rel2 {relative: LOCK_SCREEN_ICON_R LOCK_SCREEN_ICON_B; to: background; }
+ image.normal: IMG_SRC_DIR/"call_lock_icon.png";
+ aspect_preference: SOURCE;
+ }
+ }
+
+ part {
+ name: "lock-text";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 {relative: LOCK_SCREEN_TEXT_L LOCK_SCREEN_TEXT_T; to: background; }
+ rel2 {relative: LOCK_SCREEN_TEXT_R LOCK_SCREEN_TEXT_B; to: background; }
+ text {
+ style: "lock_screen_txt_style";
+ text_class: "ATO011";
+ align: 0 0;
+ }
+ color_class: "ATO011";
+ }
+ }
+
+
+ }
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../callui-color-classes.h"
+#include "../../include/callui-view-caller-info-defines.h"
+
+#define ACTION_PANEL_WIDTH 720
+#define ACTION_OFFSET_X 308
+#define ACTION_OFFSET_Y 24
+#define ACTION_HEIGHT 169
+#define ACTION_HEIGHT_OFFSET_Y 24
+
+styles {
+ style {
+ name: "call_timer_style";
+ base: "font="VC_FONT_REGULAR" font_size=24 color=#FFFFFF color_class:"ATO007" align=right text_class:"ATO007" wrap=mixed ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "tab" "\t";
+ }
+}
+
+group {
+ name: "main_ly";
+ parts {
+ part { name: "background";
+ type: IMAGE;
+ description {
+ state: "default" 0.0;
+ image.normal: "background.png";
+ }
+ }
+ part {
+ name: "textblock_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 KEYPAD_ENTRY_TEXT_T; to: "background"; }
+ rel2 { relative: 1 KEYPAD_ENTRY_TEXT_B; to: "background"; }
+ color: 0 0 0 0;
+ //color_class: "AO001";
+ visible: 1;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: PART_SWALLOW_TEXTBLOCK_AREA;
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ align: 0.5 1.0;
+ rel1 { relative: KEYPAD_ENTRY_TEXT_L 0; to: "textblock_bg"; }
+ rel2 { relative: KEYPAD_ENTRY_TEXT_R 1; to: "textblock_bg"; }
+ visible: 1;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "call_info_upper/rect";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 CALLER_INFO_STATUS_T_PAD/MAIN_SCREEN_H; to: "background"; }
+ rel2 { relative: 1 (CALLER_INFO_STATUS_T_PAD+CALLER_INFO_STATUS_HEIGHT)/MAIN_SCREEN_H; to: "background"; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "call_info_lower/rect";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 ((CALLER_INFO_STATUS_T_PAD+CALLER_INFO_STATUS_HEIGHT)/MAIN_SCREEN_H); to: "background"; }
+ rel2 { relative: 1 ((CALLER_INFO_STATUS_T_PAD+CALLER_INFO_STATUS_HEIGHT+CALLER_INFO_STATUS_HEIGHT)/MAIN_SCREEN_H); to: "background"; }
+ color: 0 0 0 0;
+ }
+ }
+
+ part { name: "extra_volume_icon_swallow"; /*Call time or Call status*/
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to_x: "icon_padding"; to_y: "call_info_upper/rect";}
+ rel2 { relative: 0 1; to_x: "icon_padding"; to_y: "call_info_upper/rect";}
+ max: 27 27;
+ min: 27 27;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ }
+
+ }
+
+ part { name: "icon_padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 0;
+ min: 7 0;
+ align: 1 0;
+ rel1 { relative: 0 0; to: "resume_icon_swallow";}
+ rel2 { relative: 0 1; to: "resume_icon_swallow";}
+ }
+ }
+
+ part { name: "resume_icon_swallow"; /*Call time or Call status*/
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to_x: "txt_padding"; to_y: "call_info_upper/rect";}
+ rel2 { relative: 0 1; to_x: "txt_padding"; to_y: "call_info_upper/rect";}
+ max: 27 27;
+ min: 27 27;
+ fixed: 1 1;
+ align: 1.0 0.5;
+ }
+ }
+
+ part { name: "txt_padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 0;
+ min: 14 0;
+ align: 1 0;
+ rel1 { relative: 0 0; to: "txt_timer";}
+ rel2 { relative: 0 1; to: "txt_timer";}
+ }
+ }
+
+ part { name: "call_txt_status";
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: CALLER_INFO_STATUS_L 0; to: "call_info_upper/rect";}
+ rel2 { relative: 1 1; to: "call_info_upper/rect";}
+ fixed: 1 1;
+ text {
+ align: 0 0.5;
+ text_class: "ATO001";
+ }
+ align: 0 0.5;
+ max: CALL_STATUS_MAX_TEXT_WIDTH CALLER_INFO_STATUS_HEIGHT;
+ color_class: "ATO001";
+ }
+ }
+
+ /* CALL TIME*/
+ part { name: "txt_timer"; /*Call time or Call status*/
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: CALLER_INFO_STATUS_R 0; to: "call_info_upper/rect";}
+ rel2 { relative: CALLER_INFO_STATUS_R 1; to: "call_info_upper/rect";}
+ text {
+ align: 1 0.5;
+ min: 1 0;
+ style: "call_timer_style";
+ text_class: "ATO007";
+ }
+ align: 1 0.5;
+ max: TXT_TIMER_MAX_TEXT_WIDTH CALLER_INFO_STATUS_HEIGHT;
+ fixed: 1 1;
+ color_class: "ATO007";
+ }
+ }
+
+ part { name: "rec_timer"; /*recording Call time */
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: CALLER_INFO_STATUS_R 0; to: "call_info_lower/rect";}
+ rel2 { relative: CALLER_INFO_STATUS_R 1; to: "call_info_lower/rect";}
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ text {
+ min: 1 0;
+ style: "call_timer_style";
+ text_class: ATO032;
+ }
+ align: 1 0.5;
+ color_class: ATO032;
+ max: TXT_TIMER_MAX_TEXT_WIDTH+10 CALLER_INFO_STATUS_HEIGHT;
+ fixed: 1 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "rec_image_spacer";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {relative: 0.0 0.0; to: "rec_timer";}
+ rel2 {relative: 0.0 1.0; to: "rec_timer";}
+ visible: 0;
+ align: 1 0;
+ min: 5 30;
+ max: 5 30;
+ fixed: 0 0;
+ }
+ }
+
+ part { name: "rec_image";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {relative: 0.0 0.0; to: "rec_image_spacer";}
+ rel2 {relative: 0.0 1.0; to: "rec_image_spacer";}
+ image.normal: IMG_SRC_DIR/"call_during_record.png" ;
+ aspect_preference: SOURCE;
+ min:30 30;
+ align: 1.0 0.5;
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default";
+ visible: 0;
+ }
+ }
+
+ part { name: "caller_info_rect";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: CALLER_INFO_L CALLER_INFO_T; to: "background";}
+ rel2 { relative: CALLER_INFO_R CALLER_INFO_B; to: "background";}
+ color: COLOR_BG_ALPHA;
+ //min: CALLER_INFO_WIDTH CALLER_INFO_HEIGHT;
+ }
+ }
+
+ part { name: "caller_info";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0.0 0.0; to: "caller_info_rect";}
+ rel2 { relative: 1.0 1.0; to: "caller_info_rect";}
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "circle_btn_area";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1{ relative: 0.0 1.0; to: "caller_info_rect";}
+ rel2{ relative: 1.0 1.0;}
+ min: MTLOCK_ACCEPT_CIRCLE_RECT_WIDTH MTLOCK_ACCEPT_CIRCLE_RECT_HEIGHT;
+ color: 255 255 255 255;
+ align: 0.5 0.0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part { name: "btn_area";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1{ relative: SIX_BTN_LAYOUT_L SIX_BTN_LAYOUT_T; to: "background";}
+ rel2{ relative: SIX_BTN_LAYOUT_R SIX_BTN_LAYOUT_B; to: "background";}
+ color: COLOR_BG_ALPHA;
+ align: 0.5 0.0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: PART_SWALLOW_KEYPAD;
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0 KEYPAD_AREA_T_HIDE; to: "background";}
+ rel2 { relative: 1 KEYPAD_AREA_B_HIDE; to: "background";}
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ rel1 { relative: 0 0; to: "background";}
+ rel2 { relative: 1 (KEYPAD_AREA_H / TOTAL_H); to: "background";}
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0 KEYPAD_AREA_T_HIDE; to: "background";}
+ rel2 { relative: 1 KEYPAD_AREA_B_HIDE; to: "background";}
+ }
+ }
+
+ part { name: "btn_region";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: 0.0 0.0; to: "btn_area";}
+ rel2 { relative: 1.0 1.0; to: "btn_area";}
+ align: 0.5 0.0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "btn_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: ENDSINGLECALL_BTN_BG_L ENDSINGLECALL_BTN_BG_T; to: "background";}
+ rel2 { relative: ENDSINGLECALL_BTN_BG_R ENDSINGLECALL_BTN_BG_B; to: "background";}
+ }
+ }
+
+ part { name: "bottom_btn_bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ color: 255 255 255 255;
+ rel1 { relative: BOTTOM_BTN_LAYOUT_L BOTTOM_BTN_LAYOUT_T; to: "background";}
+ rel2 { relative: BOTTOM_BTN_LAYOUT_R BOTTOM_BTN_LAYOUT_B; to: "background";}
+ align: 0.5 0.0;
+ min: 320 72;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part { name: "three_btn_voicecall";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: ENDSINGLECALL_CALL_BTN_BG_L 17/BOTTOM_BTN_BG_HEIGHT; to: "bottom_btn_bg";}
+ rel2 { relative: ENDSINGLECALL_CALL_BTN_BG_R 91/BOTTOM_BTN_BG_HEIGHT; to: "bottom_btn_bg";}
+ align: 0.5 0.0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part { name: "three_btn_message";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: ENDSINGLECALL_MSG_BTN_BG_L 17/BOTTOM_BTN_BG_HEIGHT; to: "bottom_btn_bg";}
+ rel2 { relative: ENDSINGLECALL_MSG_BTN_BG_R 91/BOTTOM_BTN_BG_HEIGHT; to: "bottom_btn_bg";}
+ align: 0.5 0.0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part { name: "btn_view_contacts";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: ENDSINGLECALL_VIEW_CONTACT_BTN_L ENDSINGLECALL_VIEW_CONTACT_BTN_T; to: "btn_bg";}
+ rel2 { relative: ENDSINGLECALL_VIEW_CONTACT_BTN_R ENDSINGLECALL_VIEW_CONTACT_BTN_B; to: "btn_bg";}
+ align: 0.5 0.0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part { name: "btn_create_contacts";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: ENDSINGLECALL_CREATE_CONTACT_BTN_L ENDSINGLECALL_CREATE_CONTACT_BTN_T; to: "btn_bg";}
+ rel2 { relative: ENDSINGLECALL_CREATE_CONTACT_BTN_R ENDSINGLECALL_CREATE_CONTACT_BTN_B; to: "btn_bg";}
+ align: 0.5 0.0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part { name: "btn_update";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: ENDSINGLECALL_UPDATE_CONTACT_BTN_L ENDSINGLECALL_UPDATE_CONTACT_BTN_T; to: "btn_bg";}
+ rel2 { relative: ENDSINGLECALL_UPDATE_CONTACT_BTN_R ENDSINGLECALL_UPDATE_CONTACT_BTN_B; to: "btn_bg";}
+ align: 0.5 0.0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part { name: "end_btn_area";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1{ relative: BOTTOM_BTN_LAYOUT_L ((MAIN_SCREEN_H - ENDCALL_BTN_BG_HEIGHT)/MAIN_SCREEN_H); to: "background";}
+ rel2{ relative: BOTTOM_BTN_LAYOUT_R 1.0; to: "background";}
+ min: 320 72;
+ color: 255 255 255 255;
+ align: 0.5 1.0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: PART_END_BTN;
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1{ relative: (ACTION_OFFSET_X/ACTION_PANEL_WIDTH) ACTION_HEIGHT_OFFSET_Y/ACTION_HEIGHT; to: "end_btn_area";}
+ rel2{ relative: ((ACTION_PANEL_WIDTH-ACTION_OFFSET_X)/ACTION_PANEL_WIDTH) ((ACTION_HEIGHT-ACTION_HEIGHT_OFFSET_Y)/ACTION_HEIGHT); to: "end_btn_area";}
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ }//parts
+
+ programs {
+ program { name: "show_recording_timer";
+ signal: "recording_time_show";
+ source: "rec_timer";
+ action: STATE_SET "show" 0.0;
+ target: "rec_timer";
+ target: "rec_image";
+ }
+ program { name: "hide_recording_timer";
+ signal: "recording_time_hide";
+ source: "rec_timer";
+ action: STATE_SET "hide" 0.0;
+ target: "rec_timer";
+ target: "rec_image";
+ }
+ program { name: "show_effect_allbtn";
+ signal: "SHOW_EFFECT";
+ source: "ALLBTN";
+ action: STATE_SET "show" 0.0;
+ transition: DECELERATE 0.5; //LINEAR 1.0;
+ target: "btn_region";
+ }
+ program { name: "show_no_effect_allbtn";
+ signal: "SHOW_NO_EFFECT";
+ source: "ALLBTN";
+ action: STATE_SET "show" 0.0;
+ target: "btn_region";
+ }
+ program { name: "hide_btn_ly";
+ signal: "HIDE_BTN_LY";
+ source: "ALLBTN";
+ action: STATE_SET "hide" 0.0;
+ target: "btn_region";
+ }
+
+ program { name: "show_keypadbtn";
+ action: STATE_SET "show" 0.0;
+ transition: LINEAR 0.25;
+ target: PART_SWALLOW_KEYPAD;
+ }
+ program { name: "show_keypadbtn_no_effect";
+ signal: "SHOW";
+ source: "KEYPAD_BTN";
+ action: STATE_SET "hide" 0.0;
+ target: "caller_info";
+ target: "btn_region";
+ after: "show_entry";
+ after: "show_keypadbtn";
+ }
+
+ program {
+ name: "show_entry";
+ action: STATE_SET "show" 0.0;
+ target: PART_SWALLOW_TEXTBLOCK_AREA;
+ target: "textblock_bg";
+ }
+
+ program { name: "hide_keypadarea";
+ signal: "HIDE";
+ source: "KEYPAD_AREA";
+ action: STATE_SET "hide" 0.0;
+ target: PART_SWALLOW_KEYPAD;
+ after: "show_caller_info";
+ }
+
+ program { name: "hide_keypadbtn";
+ signal: "HIDE";
+ source: "KEYPAD_BTN";
+ action: STATE_SET "default" 0.0;
+ transition: LINEAR 0.25;
+ target: PART_SWALLOW_KEYPAD;
+ after: "show_six_btns";
+ after: "show_caller_info";
+ }
+ program { name: "show_six_btns";
+ action: STATE_SET "show" 0.0;
+ target: "btn_region";
+ }
+
+ program {
+ name: "show_caller_info";
+ action: STATE_SET "default" 0.0;
+ target: "caller_info";
+ after: "hide_entry";
+ }
+
+ program {
+ name: "hide_entry";
+ action: STATE_SET "hide" 0.0;
+ target: PART_SWALLOW_TEXTBLOCK_AREA;
+ target: "textblock_bg";
+ }
+
+ program {
+ name: "set_portrait";
+ signal: "set_portrait";
+ source: "incall_layout";
+ in: 0.0 0.0;
+ action: STATE_SET "default" 0.0;
+
+ target: "background";
+ //target: "caller_id";
+ target: "caller_info";
+ target: "btn_region";
+ target: PART_SWALLOW_KEYPAD;
+ }
+
+ program { name: "show_1_btns";
+ signal: "show_end_menu_1_btns";
+ source: "show_1_btns";
+ action: STATE_SET "visible" 0.0;
+ target: "bottom_btn_bg";
+// target: "three_btn_videocall";
+ target: "three_btn_voicecall";
+ target: "three_btn_message";
+ target: "btn_view_contacts";
+ target: "btn_create_contacts";
+ target: "btn_update";
+ }
+
+ program { name: "show_2_btns";
+ signal: "show_end_menu_2_btns";
+ source: "show_2_btns";
+ action: STATE_SET "visible" 0.0;
+ target: "bottom_btn_bg";
+// target: "three_btn_videocall";
+ target: "three_btn_voicecall";
+ target: "three_btn_message";
+ target: "btn_view_contacts";
+ target: "btn_create_contacts";
+ target: "btn_update";
+ }
+
+ program {
+ name: "set_portrait_1_btn";
+ signal: "set_portrait_1_btn";
+ source: "end_singlecall_1_btn";
+ in: 0.0 0.0;
+ action: STATE_SET "default" 0.0;
+
+ target: "background";
+ target: "caller_info";
+ target: "btn_bg";
+ target: "bottom_btn_bg";
+// target: "three_btn_videocall";
+ target: "three_btn_voicecall";
+ target: "three_btn_message";
+ target: "btn_view_contacts";
+ target: "btn_create_contacts";
+ target: "btn_update";
+ }
+
+ program {
+ name: "set_portrait_2_btn";
+ signal: "set_portrait_2_btn";
+ source: "end_singlecall_2_btn";
+ in: 0.0 0.0;
+ action: STATE_SET "default" 0.0;
+
+ target: "background";
+ target: "caller_info";
+ target: "btn_bg";
+ target: "bottom_btn_bg";
+// target: "three_btn_videocall";
+ target: "three_btn_voicecall";
+ target: "three_btn_message";
+ target: "btn_view_contacts";
+ target: "btn_create_contacts";
+ target: "btn_update";
+ }
+
+ program { name: "show_mt_circle_bg";
+ signal: "mt_circle_bg_show";
+ source: "mt_view";
+ action: STATE_SET "show" 0.0;
+ target: "circle_btn_area";
+ }
+ program { name: "hide_mt_circle_bg";
+ signal: "mt_circle_bg_hide";
+ source: "mt_view";
+ action: STATE_SET "default" 0.0;
+ target: "circle_btn_area";
+ }
+
+ program { name: "show_end_btn_bg";
+ signal: "show_end_btn_bg";
+ source: "main_ly";
+ action: STATE_SET "show" 0.0;
+ target: "end_btn_area";
+ }
+ program { name: "hide_end_btn_bg";
+ signal: "hide_end_btn_bg";
+ source: "main_ly";
+ action: STATE_SET "hide" 0.0;
+ target: "end_btn_area";
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../callui-color-classes.h"
+
+group {
+ name: "multicall-list";
+ parts {
+ part { name: "background";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color_class: "AO052";
+ }
+ }
+
+ part {
+ name: "call_info_upper/rect";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 INDICATOR_HEIGHT/MULTI_LIST_HEIGHT; to: "background"; }
+ rel2 { relative: 1 (INDICATOR_HEIGHT+51)/MULTI_LIST_HEIGHT; to: "background"; }
+ color_class: "AO052";
+ }
+ }
+ part { name: "call_txt_status";
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 15/480 0; to: "call_info_upper/rect";}
+ rel2 { relative: 1 1; to: "call_info_upper/rect";}
+ fixed: 1 1;
+ text {
+ align: 0 0.5;
+ text_class: "ATO016";
+ }
+ color_class: "ATO016";
+ }
+ }
+
+ /* CALL TIME*/
+ part { name: "txt_timer"; /*Call time or Call status*/
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 0; to: "call_info_upper/rect";}
+ rel2 { relative: (480-15)/480 1; to: "call_info_upper/rect";}
+ fixed: 1 1;
+ text {
+ align: 1 0.5;
+ text_class: "ATO017";
+ }
+ color_class: "ATO017";
+ }
+ }
+
+ part { name: "swl_calllist";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 (INDICATOR_HEIGHT+51)/MULTI_LIST_HEIGHT; to: "background"; }
+ rel2 { relative: 1 (MULTI_LIST_HEIGHT-BOTTOM_BTN_BG_HEIGHT)/MULTI_LIST_HEIGHT; to: "background"; }
+ }
+ }
+
+ part {
+ name: "bottom_btn/rect";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0 (MULTI_LIST_HEIGHT-BOTTOM_BTN_BG_HEIGHT)/MULTI_LIST_HEIGHT; to: "background"; }
+ rel2 { relative: 1 1; to: "background"; }
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "bottom_btn";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: BACK_BTN_L 0; to:"bottom_btn/rect"; }
+ rel2 { relative: BACK_BTN_R 1; to:"bottom_btn/rect"; }
+ }
+ }
+ }//parts
+
+ programs {
+ program {
+ name: "set_portrait";
+ signal: "set_portrait";
+ source: "multicall_list_layout";
+ in: 0.0 0.0;
+ action: STATE_SET "default" 0.0;
+
+ target: "background";
+ target: "swl_calllist";
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../../include/callui-view-caller-info-defines.h"
+
+images {
+ image: "call_ic_controll_01.png" COMP;
+ image: "call_multi_hold_bg.png" COMP;
+ image: "call_multi_hold_btn_merge_bg.png" COMP;
+ image: "call_multi_hold_btn_swap_bg.png" COMP;
+ image: "background.png" COMP;
+}
+
+styles {
+ style {
+ name: "ATO006";
+ base: "font="VC_FONT_REGULAR" font_size=56 color=#FFFAFAFF ellipsis=1.0";
+ }
+ style {
+ name: "ATO007";
+ base: "font="VC_FONT_REGULAR" font_size=34 color=#FFFAFAFF ellipsis=1.0";
+ }
+ style {
+ name: "ATO008";
+ base: "font="VC_FONT_REGULAR" font_size=27 color=#FFFAFAFF align=center";
+ }
+}
+
+#define MERGE_SWAP_BTN(NAME, BG_IMAGE, ICON, BG_COLOR, PRESSED_COLOR) \
+ group { \
+ name: NAME; \
+ images.image: ICON COMP; \
+ parts { \
+ part { \
+ name: "background"; \
+ type: IMAGE; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: BG_IMAGE; \
+ color_class: BG_COLOR; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ image.normal: BG_IMAGE; \
+ color_class: PRESSED_COLOR; \
+ } \
+ } \
+ part { \
+ name: "icon"; \
+ type: IMAGE; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ rel1.relative: MS_BTN_ICON_L MS_BTN_ICON_T; \
+ rel2.relative: MS_BTN_ICON_R MS_BTN_ICON_B; \
+ image.normal: ICON; \
+ } \
+ } \
+ part { \
+ name: PART_TEXT_MERGE_SWAP_BTN; \
+ type: TEXTBLOCK; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { \
+ relative: 0.0 1.0; \
+ to_y: "icon"; \
+ } \
+ rel2.relative: 1.0 MS_BTN_TEXT_B; \
+ text { \
+ style: "ATO008"; \
+ } \
+ } \
+ } \
+ } \
+ programs { \
+ program { \
+ name: "pressed" ; \
+ signal: "mouse,down,*"; \
+ source: "*"; \
+ action: STATE_SET "pressed" 0.0; \
+ target: "background"; \
+ } \
+ program { \
+ name: "unpressed" ; \
+ signal: "mouse,up,*"; \
+ source: "*"; \
+ action: STATE_SET "default" 0.0; \
+ target: "background"; \
+ } \
+ } \
+ }
+
+group {
+ name: GROUP_ACTIVE_HOLD_INFO;
+ parts {
+ part {
+ name: "background";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ image.normal: "call_multi_hold_bg.png";
+ color: 0 0 0 200;
+ }
+ description {
+ state: "transparent" 0.0;
+ image.normal: "call_multi_hold_bg.png";
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: PART_TEXT_STATUS;
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1.relative: CALLER_INF_L CALLER_INF_STATUS_T;
+ rel2.relative: CALLER_INF_STATUS_R CALLER_INF_STATUS_B;
+ text {
+ align: 0.0 0.0;
+ style: "ATO007";
+ }
+ }
+ }
+
+ part {
+ name: PART_SWALLOW_CALLER_ID;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1.relative: CALLER_INF_L CALLER_INF_ID_T;
+ rel2.relative: CALLER_INF_ID_R CALLER_INF_ID_B;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: PART_TEXT_MAIN;
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1.relative: CALLER_INF_TEXT_L CALLER_INF_ID_T;
+ text {
+ align: 0.0 0.0;
+ style: "ATO006";
+ }
+ }
+ }
+
+ part {
+ name: PART_TEXT_SUB;
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1.relative: CALLER_INF_TEXT_L CALLER_INF_SUBTEXT_T;
+ text {
+ align: 0.0 0.0;
+ style: "ATO007";
+ }
+ }
+ }
+
+ part {
+ name: "arrow";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1.relative: ARROW_L ARROW_T;
+ rel2.relative: ARROW_R ARROW_B;
+ image.normal: "call_ic_controll_01.png";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "show" 0.0;
+ color_class: "pressed";
+ }
+ }
+ }
+ programs{
+ program {
+ name: "set_transparent_background";
+ signal: SIGNAL_SET_TRANSPARENT_BACKGROUND;
+ action: STATE_SET "transparent" 0.0;
+ target: "background";
+ }
+ program {
+ name: "set_blurred_background";
+ signal: SIGNAL_SET_BLURRED_BACKGROUND;
+ action: STATE_SET "default" 0.0;
+ target: "background";
+ }
+ program {
+ name: "show_arrow";
+ signal: SIGNAL_SHOW_ARROW;
+ action: STATE_SET "show" 0.0;
+ target: "arrow";
+ }
+ program {
+ name: "hide_arrow";
+ signal: SIGNAL_HIDE_ARROW;
+ action: STATE_SET "hide" 0.0;
+ target: "arrow";
+ }
+ program {
+ name: "arrow_pressed";
+ signal: "mouse,down,*";
+ source: "arrow";
+ action: STATE_SET "pressed" 0.0;
+ target: "arrow";
+ }
+ program {
+ name: "arrow_unpressed";
+ signal: "mouse,up,*";
+ source: "arrow";
+ action: STATE_SET "default" 0.0;
+ target: "arrow";
+ }
+ }
+}
+
+MERGE_SWAP_BTN(GROUP_MERGE_BTN, "call_multi_hold_btn_merge_bg.png", "call_extra_merge.png", "merge_btn_bg", "pressed")
+MERGE_SWAP_BTN(GROUP_SWAP_BTN, "call_multi_hold_btn_swap_bg.png", "call_extra_swap.png", "swap_btn_bg", "pressed")
+
+group {
+ name: GROUP_BTN_REGION;
+ parts {
+ part {
+ name: "background";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: PART_TOP_FIRST_BTN;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 0.33 0.5;
+ }
+ }
+ part {
+ name: PART_TOP_SECOND_BTN;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.33 0.0;
+ rel2.relative: 0.66 0.5;
+ }
+ }
+ part {
+ name: PART_TOP_THIRD_BTN;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.66 0.0;
+ rel2.relative: 1.0 0.5;
+ }
+ }
+ part {
+ name: PART_BOTTOM_FIRST_BTN;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.0 0.5;
+ rel2.relative: 0.33 1.0;
+ }
+ }
+ part {
+ name: PART_BOTTOM_SECOND_BTN;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.33 0.5;
+ rel2.relative: 0.66 1.0;
+ }
+ }
+ part {
+ name: PART_BOTTOM_THIRD_BTN;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.66 0.5;
+ rel2.relative: 1.0 1.0;
+ }
+ }
+ }
+}
+
+group {
+ name: GROUP_ACTION_PANEL;
+ parts {
+ part {
+ name: "background";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color_class: "AO008";
+ }
+ }
+ part {
+ name: PART_END_BTN;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: END_BUTTON_L END_BUTTON_T;
+ rel2.relative: END_BUTTON_R END_BUTTON_B;
+ }
+ }
+ }
+}
+
+group {
+ name: GROUP_ONE_HOLD_IN_CONFERENCE;
+ parts {
+ part {
+ name: "background";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ image.normal: "background.png";
+ }
+ }
+
+ part {
+ name: PART_SWALLOW_HOLD_INFO;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: HOLD_LAYOUT_L HOLD_LAYOUT_T;
+ rel2.relative: HOLD_LAYOUT_R HOLD_LAYOUT_B;
+ }
+ }
+
+ part {
+ name: PART_SWALLOW_MERGE;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: MERGE_BTN_L MERGE_SWAP_BTN_T;
+ rel2.relative: MERGE_BTN_R MERGE_SWAP_BTN_B;
+ }
+ }
+
+ part {
+ name: PART_SWALLOW_SWAP;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: SWAP_BTN_L MERGE_SWAP_BTN_T;
+ rel2.relative: SWAP_BTN_R MERGE_SWAP_BTN_B;
+ }
+ }
+
+ part {
+ name: PART_SWALLOW_ACTIVE_INFO;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: ACTIVE_INFO_L ACTIVE_INFO_T;
+ rel2.relative: ACTIVE_INFO_R ACTIVE_INFO_B;
+ }
+ }
+ }
+}
+
+group {
+ name: GROUP_SPLIT;
+ parts {
+ part {
+ name: "background";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ image.normal: "background.png";
+ }
+ }
+ part {
+ name: PART_SWALLOW_BACKGROUND;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ }
+ }
+
+ part {
+ name: PART_SWALLOW_CALL_INFO;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 ONE_HOLD_B;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: PART_SWALLOW_BTN_REGION;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.0 SIX_BUTTON_LAYOUT_T;
+ rel2.relative: 1.0 SIX_BUTTON_LAYOUT_B;
+ }
+ }
+
+ part {
+ name: PART_SWALLOW_TEXTBLOCK_AREA;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.5 0.0;
+ rel1 {
+ relative: 0.0 0.5;
+ to_y: PART_SWALLOW_CALL_INFO;
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: PART_SWALLOW_KEYPAD;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1.relative: 0.0 1.0;
+ rel2.relative: 1.0 2.0;
+ }
+ description {
+ state: "show" 0.0;
+ visible: 1;
+ rel1.relative: 0.0 0.0;
+ rel2 {
+ relative: 1.0 0.0;
+ to_y: PART_SWALLOW_ACTIONS_PANEL;
+ }
+ }
+ }
+
+ part {
+ name: PART_SWALLOW_ACTIONS_PANEL;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ to_y: PART_SWALLOW_BTN_REGION;
+ }
+ rel2.relative: 1.0 1.0;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "show_keypad";
+ signal: "SHOW";
+ source: "KEYPAD_BTN";
+ action: STATE_SET "hide" 0.0;
+ target: PART_SWALLOW_CALL_INFO;
+ after: "show_entry";
+ after: "show_keypad_animation";
+ }
+
+ program { name: "hide_keypad";
+ signal: "HIDE";
+ source: "KEYPAD_BTN";
+ action: STATE_SET "default" 0.0;
+ transition: LINEAR 0.25;
+ target: PART_SWALLOW_KEYPAD;
+ target: PART_SWALLOW_CALL_INFO;
+ target: PART_SWALLOW_TEXTBLOCK_AREA;
+ }
+
+ program {
+ name: "show_keypad_animation";
+ action: STATE_SET "show" 0.0;
+ transition: LINEAR 0.25;
+ target: PART_SWALLOW_KEYPAD;
+ }
+
+ program {
+ name: "show_entry";
+ action: STATE_SET "show" 0.0;
+ target: PART_SWALLOW_TEXTBLOCK_AREA;
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../callui-color-classes.h"
+
+#define SCREEN_W 1280
+#define SCREEN_H 172
+
+#define RECT_QP_W(x) ((x)/SCREEN_W)
+#define RECT_QP_H(y) ((y)/SCREEN_H)
+
+#define BUTTON_OFFSET 40
+#define TEXT_OFFSET 30
+#define BUTTON_OFFSET_LAST_W 32
+#define BUTTON_OFFSET_LAST_H 42
+#define BUTTON_SIZE 90
+#define IMAGE_SIZE 96
+#define TEXT_SIZE 98
+#define TEXT_NAME_SIZE 55
+
+#define RECT_QT_BUTTON_X0(x)(RECT_QP_W(SCREEN_W - ((x * BUTTON_SIZE) + BUTTON_OFFSET_LAST_W + ((x - 1) * BUTTON_OFFSET))))
+#define RECT_QT_BUTTON_X1(x)(RECT_QP_W(SCREEN_W - ((x * BUTTON_SIZE) + BUTTON_OFFSET_LAST_W + (x * BUTTON_OFFSET))))
+
+#define CALL_QUICKPANEL_TEXT_RECT_INCO_X0 RECT_QP_W(((2 * BUTTON_OFFSET_LAST_W) + IMAGE_SIZE))
+#define CALL_QUICKPANEL_TEXT_RECT_INCO_Y0 RECT_QP_H(TEXT_OFFSET)
+#define CALL_QUICKPANEL_TEXT_RECT_INCO_X1 RECT_QT_BUTTON_X0(2)
+#define CALL_QUICKPANEL_TEXT_RECT_INCO_Y1 RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H))
+
+#define CALL_QUICKPANEL_TEXT_RECT_DURING_X0 RECT_QP_W(BUTTON_OFFSET_LAST_W)
+#define CALL_QUICKPANEL_TEXT_RECT_DURING_X1 RECT_QT_BUTTON_X0(3)
+
+#define CALL_QUICKPANEL_CONTACT_IMAGE_X0 RECT_QP_W(BUTTON_OFFSET_LAST_W)
+#define CALL_QUICKPANEL_CONTACT_IMAGE_Y0 RECT_QP_H(TEXT_OFFSET)
+#define CALL_QUICKPANEL_CONTACT_IMAGE_X1 RECT_QP_W(BUTTON_OFFSET_LAST_W + IMAGE_SIZE)
+#define CALL_QUICKPANEL_CONTACT_IMAGE_Y1 RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H))
+
+#define CALL_QUICKPANEL_CONTACT_NAME_X0 (0.0)
+#define CALL_QUICKPANEL_CONTACT_NAME_Y0 (0.0)
+#define CALL_QUICKPANEL_CONTACT_NAME_X1 (1.0)
+#define CALL_QUICKPANEL_CONTACT_NAME_Y1 (TEXT_NAME_SIZE/TEXT_SIZE)
+
+#define CALL_QUICKPANEL_TIMER_X0 (0.0)
+#define CALL_QUICKPANEL_TIMER_Y0 (TEXT_NAME_SIZE/TEXT_SIZE)
+#define CALL_QUICKPANEL_TIMER_X1 (1.0)
+#define CALL_QUICKPANEL_TIMER_Y1 (1.0)
+
+styles {
+ style {
+ name: "style_caller_name1";
+ base: "font=Tizen:style=Regular font_size=40 color=#FFFFFF color_class="ATO005QP" align=left ellipsis=1.0 text_class=ATO005QP";
+ }
+ style {
+ name: "style_call_time1";
+ base: "font=Tizen:style=Regular font_size=30 color=#FFFFFF color_class="ATO006QP" align=left ellipsis=1.0 text_class=ATO006QP";
+ }
+}
+
+#define SWALLOW_BUTTON(part_name, x0, x1, inco, duri, out, resume) \
+ part { name: part_name; \
+ type: SWALLOW; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ fixed: 1 1; \
+ rel1 { relative: RECT_QT_BUTTON_X0(x0) RECT_QP_H(BUTTON_OFFSET); to: "background";} \
+ rel2 { relative: RECT_QT_BUTTON_X1(x1) RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)); to: "background";} \
+ } \
+ description { \
+ state: "incoming" 0.0; \
+ inherit: "default" 0.0; \
+ visible: inco; \
+ } \
+ description { \
+ state: "during" 0.0; \
+ inherit: "default" 0.0; \
+ visible: duri; \
+ } \
+ description { \
+ state: "outgoing" 0.0; \
+ inherit: "default" 0.0; \
+ visible: out; \
+ } \
+ description { \
+ state: "resume" 0.0; \
+ inherit: "default" 0.0; \
+ visible: resume; \
+ } \
+ } \
+
+group {
+ name: "quickpanel_ls";
+
+ parts {
+ part { name: "background";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ color: COLOR_BG_ALPHA;
+ }
+ }
+
+ part { name: "txt_area";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: CALL_QUICKPANEL_TEXT_RECT_INCO_X0 CALL_QUICKPANEL_TEXT_RECT_INCO_Y0; to: "background";}
+ rel2 { relative: CALL_QUICKPANEL_TEXT_RECT_INCO_X1 CALL_QUICKPANEL_TEXT_RECT_INCO_Y1; to: "background";}
+ }
+ description {
+ state: "incoming" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "during" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X0 CALL_QUICKPANEL_TEXT_RECT_INCO_Y0; to: "background";}
+ rel2 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X1 CALL_QUICKPANEL_TEXT_RECT_INCO_Y1; to: "background";}
+ }
+ description {
+ state: "resume" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X0 CALL_QUICKPANEL_TEXT_RECT_INCO_Y0; to: "background";}
+ rel2 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X1 CALL_QUICKPANEL_TEXT_RECT_INCO_Y1; to: "background";}
+ }
+ description {
+ state: "outgoing" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+
+ part { name: "swallow.speaker_button";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: RECT_QT_BUTTON_X0(2) RECT_QP_H(BUTTON_OFFSET); to: "background";}
+ rel2 { relative: RECT_QT_BUTTON_X1(1) RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)); to: "background";}
+ }
+ description {
+ state: "incoming" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "during" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "outgoing" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "resume" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: RECT_QT_BUTTON_X0(3) RECT_QP_H(BUTTON_OFFSET); to: "background";}
+ rel2 { relative: RECT_QT_BUTTON_X1(2) RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)); to: "background";}
+ visible: 1;
+ }
+ }
+
+ part { name: "txt_call_name";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: CALL_QUICKPANEL_CONTACT_NAME_X0 CALL_QUICKPANEL_CONTACT_NAME_Y0; to: "txt_area";}
+ rel2 { relative: CALL_QUICKPANEL_CONTACT_NAME_X1 CALL_QUICKPANEL_CONTACT_NAME_Y1; to: "txt_area";}
+ align: 0.0 0.5;
+ text {
+ ellipsis: 0.0;
+ fit: 0 1;
+ align: 0.0 0.5;
+ style: "style_caller_name1";
+ text_class: ATO005QP;
+ }
+ color_class: "ATO005QP";
+ }
+ }
+
+ part { name: "txt_timer";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: CALL_QUICKPANEL_TIMER_X0 CALL_QUICKPANEL_TIMER_Y0; to: "txt_area";}
+ rel2 { relative: CALL_QUICKPANEL_TIMER_X1 CALL_QUICKPANEL_TIMER_Y1; to: "txt_area";}
+ fixed: 1 1;
+ text {
+ align: 0.0 0.5;
+ ellipsis: 1.0;
+ fit: 0 1;
+ style: "style_call_time1";
+ }
+ color_class: "ATO006QP";
+ }
+ }
+
+ part { name: "caller_id";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ rel1 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X0 CALL_QUICKPANEL_CONTACT_IMAGE_Y0;}
+ rel2 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X1 CALL_QUICKPANEL_CONTACT_IMAGE_Y1;}
+ }
+ description {
+ state: "incoming" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "during" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "outgoing" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "resume" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "caller_id_mask";
+ type: IMAGE;
+ scale: 1;
+ description {
+ visible: 0;
+ fixed: 1 1;
+ rel1 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X0 CALL_QUICKPANEL_CONTACT_IMAGE_Y0;}
+ rel2 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X1 CALL_QUICKPANEL_CONTACT_IMAGE_Y1;}
+ image {
+ normal: IMG_SRC_DIR/"call_photo_id_mask.png";
+ }
+ aspect_preference: SOURCE;
+ }
+ description {
+ state: "incoming" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "during" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "outgoing" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "resume" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "caller_id_img";
+ type: IMAGE;
+ scale: 1;
+ description {
+ visible: 0;
+ fixed: 1 1;
+ rel1 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X0 CALL_QUICKPANEL_CONTACT_IMAGE_Y0;}
+ rel2 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X1 CALL_QUICKPANEL_CONTACT_IMAGE_Y1;}
+ image {
+ normal: IMG_SRC_DIR/"call_photo_id.png";
+ }
+ aspect_preference: SOURCE;
+ color_class: "AO001";
+ }
+ description {
+ state: "incoming" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "during" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "outgoing" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "resume" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ SWALLOW_BUTTON("swallow.mute_button", 3, 2, 0, 1, 0, 0);
+ SWALLOW_BUTTON("swallow.resume_button", 2, 1, 0, 0, 0, 1);
+ SWALLOW_BUTTON("swallow.call_button", 2, 1, 1, 0, 0, 0);
+ SWALLOW_BUTTON("swallow.end_button", 1, 0, 1, 1, 1, 0);
+ }
+ programs{
+ program {
+ name: "resume_call";
+ signal: "resume_call";
+ source: "quickpanel_ls";
+ action: STATE_SET "resume" 0.0;
+ target: "swallow.mute_button";
+ target: "swallow.speaker_button";
+ target: "swallow.call_button";
+ target: "swallow.resume_button";
+ target: "caller_id_img";
+ target: "caller_id_mask";
+ target: "caller_id";
+ target: "txt_area";
+ }
+ program {
+ name: "outgoing_call";
+ signal: "outgoing_call";
+ source: "quickpanel_ls";
+ action: STATE_SET "outgoing" 0.0;
+ target: "swallow.mute_button";
+ target: "swallow.speaker_button";
+ target: "swallow.call_button";
+ target: "swallow.resume_button";
+ target: "txt_area";
+ }
+ program {
+ name: "incoming_call";
+ signal: "incoming_call";
+ source: "quickpanel_ls";
+ action: STATE_SET "incoming" 0.0;
+ target: "swallow.mute_button";
+ target: "swallow.speaker_button";
+ target: "swallow.call_button";
+ target: "swallow.resume_button";
+ target: "txt_area";
+ }
+ program {
+ name: "during_call";
+ signal: "during_call";
+ source: "quickpanel_ls";
+ action: STATE_SET "during" 0.0;
+ target: "swallow.mute_button";
+ target: "swallow.speaker_button";
+ target: "swallow.call_button";
+ target: "swallow.resume_button";
+ target: "caller_id_img";
+ target: "caller_id_mask";
+ target: "caller_id";
+ target: "txt_area";
+ }
+ program {
+ name: "show_image";
+ signal: "show_image";
+ source: "quickpanel_ls";
+ action: STATE_SET "show" 0.0;
+ target: "caller_id_mask";
+ target: "caller_id_img";
+ }
+ program {
+ name: "hide_image";
+ signal: "hide_image";
+ source: "quickpanel_ls";
+ action: STATE_SET "hide" 0.0;
+ target: "caller_id_mask";
+ target: "caller_id_img";
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../callui-color-classes.h"
+
+#define SCREEN_W 720
+#define SCREEN_H 172
+
+#define RECT_QP_W(x) ((x)/SCREEN_W)
+#define RECT_QP_H(y) ((y)/SCREEN_H)
+
+#define BUTTON_OFFSET 40
+#define TEXT_OFFSET 30
+#define BUTTON_OFFSET_LAST_W 32
+#define BUTTON_OFFSET_LAST_H 42
+#define BUTTON_SIZE 90
+#define IMAGE_SIZE 96
+#define TEXT_SIZE 98
+#define TEXT_NAME_SIZE 55
+
+#define RECT_QT_BUTTON_X0(x)(RECT_QP_W(SCREEN_W - ((x * BUTTON_SIZE) + BUTTON_OFFSET_LAST_W + ((x - 1) * BUTTON_OFFSET))))
+#define RECT_QT_BUTTON_X1(x)(RECT_QP_W(SCREEN_W - ((x * BUTTON_SIZE) + BUTTON_OFFSET_LAST_W + (x * BUTTON_OFFSET))))
+
+#define CALL_QUICKPANEL_TEXT_RECT_INCO_X0 RECT_QP_W(((2 * BUTTON_OFFSET_LAST_W) + IMAGE_SIZE))
+#define CALL_QUICKPANEL_TEXT_RECT_INCO_Y0 RECT_QP_H(TEXT_OFFSET)
+#define CALL_QUICKPANEL_TEXT_RECT_INCO_X1 RECT_QT_BUTTON_X0(2)
+#define CALL_QUICKPANEL_TEXT_RECT_INCO_Y1 RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H))
+
+#define CALL_QUICKPANEL_TEXT_RECT_DURING_X0 RECT_QP_W(BUTTON_OFFSET_LAST_W)
+#define CALL_QUICKPANEL_TEXT_RECT_DURING_X1 RECT_QT_BUTTON_X0(3)
+
+#define CALL_QUICKPANEL_CONTACT_IMAGE_X0 RECT_QP_W(BUTTON_OFFSET_LAST_W)
+#define CALL_QUICKPANEL_CONTACT_IMAGE_Y0 RECT_QP_H(TEXT_OFFSET)
+#define CALL_QUICKPANEL_CONTACT_IMAGE_X1 RECT_QP_W(BUTTON_OFFSET_LAST_W + IMAGE_SIZE)
+#define CALL_QUICKPANEL_CONTACT_IMAGE_Y1 RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H))
+
+#define CALL_QUICKPANEL_CONTACT_NAME_X0 (0.0)
+#define CALL_QUICKPANEL_CONTACT_NAME_Y0 (0.0)
+#define CALL_QUICKPANEL_CONTACT_NAME_X1 (1.0)
+#define CALL_QUICKPANEL_CONTACT_NAME_Y1 (TEXT_NAME_SIZE/TEXT_SIZE)
+
+#define CALL_QUICKPANEL_TIMER_X0 (0.0)
+#define CALL_QUICKPANEL_TIMER_Y0 (TEXT_NAME_SIZE/TEXT_SIZE)
+#define CALL_QUICKPANEL_TIMER_X1 (1.0)
+#define CALL_QUICKPANEL_TIMER_Y1 (1.0)
+
+styles {
+ style {
+ name: "style_caller_name";
+ base: "font=Tizen:style=Regular font_size=40 color=#FFFFFF color_class="ATO005QP" align=left ellipsis=1.0 text_class=ATO005QP";
+ }
+ style {
+ name: "style_call_time";
+ base: "font=Tizen:style=Regular font_size=30 color=#FFFFFF color_class="ATO006QP" align=left ellipsis=1.0 text_class=ATO006QP";
+ }
+}
+
+#define SWALLOW_BUTTON(part_name, x0, x1, inco, duri, out, resume) \
+ part { name: part_name; \
+ type: SWALLOW; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { relative: RECT_QT_BUTTON_X0(x0) RECT_QP_H(BUTTON_OFFSET); to: "background";} \
+ rel2 { relative: RECT_QT_BUTTON_X1(x1) RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)); to: "background";} \
+ } \
+ description { \
+ state: "incoming" 0.0; \
+ inherit: "default" 0.0; \
+ visible: inco; \
+ } \
+ description { \
+ state: "during" 0.0; \
+ inherit: "default" 0.0; \
+ visible: duri; \
+ } \
+ description { \
+ state: "outgoing" 0.0; \
+ inherit: "default" 0.0; \
+ visible: out; \
+ } \
+ description { \
+ state: "resume" 0.0; \
+ inherit: "default" 0.0; \
+ visible: resume; \
+ } \
+ } \
+
+group {
+ name: "quickpanel";
+
+ parts {
+ part { name: "background";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: COLOR_BG_ALPHA;
+ }
+ }
+
+ part { name: "txt_area";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: CALL_QUICKPANEL_TEXT_RECT_INCO_X0 CALL_QUICKPANEL_TEXT_RECT_INCO_Y0; to: "background";}
+ rel2 { relative: CALL_QUICKPANEL_TEXT_RECT_INCO_X1 CALL_QUICKPANEL_TEXT_RECT_INCO_Y1; to: "background";}
+ }
+ description {
+ state: "incoming" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "during" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X0 CALL_QUICKPANEL_TEXT_RECT_INCO_Y0; to: "background";}
+ rel2 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X1 CALL_QUICKPANEL_TEXT_RECT_INCO_Y1; to: "background";}
+ }
+ description {
+ state: "resume" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X0 CALL_QUICKPANEL_TEXT_RECT_INCO_Y0; to: "background";}
+ rel2 { relative: CALL_QUICKPANEL_TEXT_RECT_DURING_X1 CALL_QUICKPANEL_TEXT_RECT_INCO_Y1; to: "background";}
+ }
+ description {
+ state: "outgoing" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+
+ part { name: "swallow.speaker_button";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: RECT_QT_BUTTON_X0(2) RECT_QP_H(BUTTON_OFFSET); to: "background";}
+ rel2 { relative: RECT_QT_BUTTON_X1(1) RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)); to: "background";}
+ }
+ description {
+ state: "incoming" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "during" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "outgoing" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "resume" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: RECT_QT_BUTTON_X0(3) RECT_QP_H(BUTTON_OFFSET); to: "background";}
+ rel2 { relative: RECT_QT_BUTTON_X1(2) RECT_QP_H((SCREEN_H - BUTTON_OFFSET_LAST_H)); to: "background";}
+ visible: 1;
+ }
+ }
+
+ part { name: "txt_call_name";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: CALL_QUICKPANEL_CONTACT_NAME_X0 CALL_QUICKPANEL_CONTACT_NAME_Y0; to: "txt_area";}
+ rel2 { relative: CALL_QUICKPANEL_CONTACT_NAME_X1 CALL_QUICKPANEL_CONTACT_NAME_Y1; to: "txt_area";}
+ align: 0.0 0.5;
+ text {
+ ellipsis: 0.0;
+ fit: 0 1;
+ align: 0.0 0.5;
+ style: "style_caller_name";
+ text_class: ATO005QP;
+ }
+ color_class: "ATO005QP";
+ }
+ }
+
+ part { name: "txt_timer";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: CALL_QUICKPANEL_TIMER_X0 CALL_QUICKPANEL_TIMER_Y0; to: "txt_area";}
+ rel2 { relative: CALL_QUICKPANEL_TIMER_X1 CALL_QUICKPANEL_TIMER_Y1; to: "txt_area";}
+ fixed: 1 1;
+ text {
+ align: 0.0 0.5;
+ ellipsis: 1.0;
+ fit: 0 1;
+ style: "style_call_time";
+ }
+ color_class: "ATO006QP";
+ }
+ }
+
+ part { name: "caller_id";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ rel1 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X0 CALL_QUICKPANEL_CONTACT_IMAGE_Y0;}
+ rel2 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X1 CALL_QUICKPANEL_CONTACT_IMAGE_Y1;}
+ }
+ description {
+ state: "incoming" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "during" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "outgoing" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "resume" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "caller_id_mask";
+ type: IMAGE;
+ scale: 1;
+ description {
+ visible: 0;
+ fixed: 1 1;
+ rel1 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X0 CALL_QUICKPANEL_CONTACT_IMAGE_Y0;}
+ rel2 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X1 CALL_QUICKPANEL_CONTACT_IMAGE_Y1;}
+ image {
+ normal: IMG_SRC_DIR/"call_photo_id_mask.png";
+ }
+ aspect_preference: SOURCE;
+ }
+ description {
+ state: "incoming" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "during" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "outgoing" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "resume" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "caller_id_img";
+ type: IMAGE;
+ scale: 1;
+ description {
+ visible: 0;
+ fixed: 1 1;
+ rel1 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X0 CALL_QUICKPANEL_CONTACT_IMAGE_Y0;}
+ rel2 { relative: CALL_QUICKPANEL_CONTACT_IMAGE_X1 CALL_QUICKPANEL_CONTACT_IMAGE_Y1;}
+ image {
+ normal: IMG_SRC_DIR/"call_photo_id.png";
+ }
+ aspect_preference: SOURCE;
+ color_class: "AO001";
+ }
+ description {
+ state: "incoming" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "during" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "outgoing" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "resume" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ SWALLOW_BUTTON("swallow.mute_button", 3, 2, 0, 1, 0, 0);
+ SWALLOW_BUTTON("swallow.resume_button", 2, 1, 0, 0, 0, 1);
+ SWALLOW_BUTTON("swallow.call_button", 2, 1, 1, 0, 0, 0);
+ SWALLOW_BUTTON("swallow.end_button", 1, 0, 1, 1, 1, 0);
+ }
+ programs{
+ program {
+ name: "resume_call";
+ signal: "resume_call";
+ source: "quickpanel";
+ action: STATE_SET "resume" 0.0;
+ target: "swallow.mute_button";
+ target: "swallow.speaker_button";
+ target: "swallow.call_button";
+ target: "swallow.resume_button";
+ target: "caller_id_img";
+ target: "caller_id_mask";
+ target: "caller_id";
+ target: "txt_area";
+ }
+ program {
+ name: "outgoing_call";
+ signal: "outgoing_call";
+ source: "quickpanel";
+ action: STATE_SET "outgoing" 0.0;
+ target: "swallow.mute_button";
+ target: "swallow.speaker_button";
+ target: "swallow.call_button";
+ target: "swallow.resume_button";
+ target: "txt_area";
+ }
+ program {
+ name: "incoming_call";
+ signal: "incoming_call";
+ source: "quickpanel";
+ action: STATE_SET "incoming" 0.0;
+ target: "swallow.mute_button";
+ target: "swallow.speaker_button";
+ target: "swallow.call_button";
+ target: "swallow.resume_button";
+ target: "txt_area";
+ }
+ program {
+ name: "during_call";
+ signal: "during_call";
+ source: "quickpanel";
+ action: STATE_SET "during" 0.0;
+ target: "swallow.mute_button";
+ target: "swallow.speaker_button";
+ target: "swallow.call_button";
+ target: "swallow.resume_button";
+ target: "caller_id_img";
+ target: "caller_id_mask";
+ target: "caller_id";
+ target: "txt_area";
+ }
+ program {
+ name: "show_image";
+ signal: "show_image";
+ source: "quickpanel";
+ action: STATE_SET "show" 0.0;
+ target: "caller_id_mask";
+ target: "caller_id_img";
+ }
+ program {
+ name: "hide_image";
+ signal: "hide_image";
+ source: "quickpanel";
+ action: STATE_SET "hide" 0.0;
+ target: "caller_id_mask";
+ target: "caller_id_img";
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../callui-color-classes.h"
+
+styles {
+ style {
+ name: "call_timer_style1";
+ base: "font=Tizen:style=Regular align=left font_size=40 color=#FFFFFF ellipsis=1.0";
+ }
+ style {
+ name: "call_name";
+ base: "font=Tizen:style=Regular align=left font_size=56 color=#FFFFFF ellipsis=1.0";
+ }
+ style {
+ name: "call_number";
+ base: "font=Tizen:style=Regular align=left font_size=34 color=#FFFFFF ellipsis=1.0";
+ }
+ style {
+ name: "call_timer_style2";
+ base: "font=Tizen:style=Regular align=right font_size=40 color=#FFFFFF ellipsis=1.0";
+ }
+ style {
+ name: "button_style";
+ base: "font=Tizen:style=Regular align=center font_size=34 color=#808080 ellipsis=1.0";
+ }
+ style {
+ name: "button_style_pressed";
+ base: "font=Tizen:style=Regular align=center font_size=34 color=#3DB9CC ellipsis=1.0";
+ }
+}
+
+#define SPACE_NOTIFICATION 50
+#define SPACE_NOTI_MAIN_TITLE 30
+#define MAIN_TITLE 54
+#define SPACE_MAIN_TITLE_MAIN_IMAGE 30
+#define MAIN_IMAGE 168
+#define SPACE_MAIN_IMAGE 44
+#define HIGHT_BUTTON 190
+#define MAIN_BG_HIGHT (SPACE_NOTIFICATION+SPACE_NOTI_MAIN_TITLE + MAIN_TITLE + SPACE_MAIN_TITLE_MAIN_IMAGE + MAIN_IMAGE + SPACE_MAIN_IMAGE + HIGHT_BUTTON)
+#define MAIN_WIDTH 720
+#define MAIN_WIDTH_TWO 720/2
+#define MAIN_HIGHT 1280
+#define WIDTH_MAIN_TITLE 32
+#define SPACER_MAIN_TITLE_CALL_NAME 50
+#define SPACER_MAIN_INFO (SPACE_NOTI_MAIN_TITLE + MAIN_TITLE + SPACER_MAIN_TITLE_CALL_NAME)
+#define SIZE_TEXT_INFO 78
+#define SPACE_TEXT_INFO_BUTTON 6
+#define WIDTH_CREATE_BUTTON 359
+#define HIGHT_CREATE_BUTTON 46
+#define BUTTON_ICON_SIZE 80
+#define BUTTON_SIZE 120
+#define BUTTON_OFFSET 20
+
+#define MAIN_TITLE_X0 ((WIDTH_MAIN_TITLE)/MAIN_WIDTH)
+#define MAIN_TITLE_Y0 ((SPACE_NOTIFICATION + SPACE_NOTI_MAIN_TITLE)/MAIN_BG_HIGHT)
+#define MAIN_TITLE_Y1 ((SPACE_NOTIFICATION + MAIN_TITLE + SPACE_NOTI_MAIN_TITLE)/MAIN_BG_HIGHT)
+
+#define CONTACT_IMAGE_X0 (WIDTH_MAIN_TITLE/MAIN_WIDTH)
+#define CONTACT_IMAGE_Y0 ((SPACE_NOTIFICATION + MAIN_TITLE + 2*SPACE_NOTI_MAIN_TITLE )/MAIN_BG_HIGHT)
+#define CONTACT_IMAGE_X1 ((WIDTH_MAIN_TITLE+ MAIN_IMAGE)/MAIN_WIDTH)
+#define CONTACT_IMAGE_Y1 ((SPACE_NOTIFICATION + MAIN_TITLE + 2*SPACE_NOTI_MAIN_TITLE + MAIN_IMAGE)/MAIN_BG_HIGHT)
+
+#define RECT_BUTTON_X0 (0.0)
+#define RECT_BUTTON_Y0 ((MAIN_BG_HIGHT - HIGHT_BUTTON)/MAIN_BG_HIGHT)
+
+#define CONTACT_NAME_X0 (CONTACT_IMAGE_X1 + (WIDTH_MAIN_TITLE/MAIN_WIDTH))
+#define CONTACT_NAME_Y0 ((SPACE_NOTIFICATION + MAIN_TITLE + SPACE_NOTI_MAIN_TITLE + SPACER_MAIN_TITLE_CALL_NAME)/MAIN_BG_HIGHT)
+#define CONTACT_NAME_X1 ((MAIN_WIDTH - 17 - 80 - 32)/MAIN_WIDTH)
+#define CONTACT_NAME_Y1 ((SPACE_NOTIFICATION + MAIN_TITLE + SPACE_NOTI_MAIN_TITLE + SPACER_MAIN_TITLE_CALL_NAME + 76)/MAIN_BG_HIGHT)
+
+#define CONTACT_NUMBER_X0 (CONTACT_IMAGE_X1 + (WIDTH_MAIN_TITLE/MAIN_WIDTH))
+#define CONTACT_NUMBER_Y0 ((SPACE_NOTIFICATION + MAIN_TITLE + SPACE_NOTI_MAIN_TITLE + SPACER_MAIN_TITLE_CALL_NAME + 76 + 6)/MAIN_BG_HIGHT)
+#define CONTACT_NUMBER_X1 ((MAIN_WIDTH - 17 - 80 - 32)/MAIN_WIDTH)
+#define CONTACT_NUMBER_Y1 ((SPACE_NOTIFICATION + MAIN_TITLE + SPACE_NOTI_MAIN_TITLE + SPACER_MAIN_TITLE_CALL_NAME + 76 + 6 + 46)/MAIN_BG_HIGHT)
+
+#define CREATE_CONTACT_X0 ((MAIN_WIDTH - 17 - 80)/MAIN_WIDTH)
+#define CREATE_CONTACT_Y0 ((MAIN_BG_HIGHT - HIGHT_BUTTON - 64 - 24 - 80 )/MAIN_BG_HIGHT)
+#define CREATE_CONTACT_X1 ((MAIN_WIDTH - 17)/MAIN_WIDTH)
+#define CREATE_CONTACT_Y1 ((MAIN_BG_HIGHT - HIGHT_BUTTON - 64 - 24)/MAIN_BG_HIGHT)
+
+#define BUTTON_ICON_X0 148/360
+#define BUTTON_ICON_Y0 (36/HIGHT_BUTTON)
+#define BUTTON_ICON_X1 ((148 + 64)/(MAIN_WIDTH_TWO))
+#define BUTTON_ICON_Y1 (36+64)/HIGHT_BUTTON
+
+#define BUTTON_TEXT_X0 114/360
+#define BUTTON_TEXT_Y0 ((36+ 64)/HIGHT_BUTTON)
+#define BUTTON_TEXT_X1 ((114 + 132)/(360))
+#define BUTTON_TEXT_Y1 ((HIGHT_BUTTON-52)/HIGHT_BUTTON)
+
+#define TIMER_TEXT_X1 ((MAIN_WIDTH - 17)/MAIN_WIDTH)
+
+group {
+ name: "call_back";
+ parts {
+ part { name: "rect_call_back";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "pressed" 0.0;
+ color: 0 0 0 76;
+ }
+ }
+
+ part { name: "call_back_text";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: BUTTON_TEXT_X0 BUTTON_TEXT_Y0; to: "rect_call_back";}
+ rel2 { relative: BUTTON_TEXT_X1 BUTTON_TEXT_Y1; to: "rect_call_back";}
+ text {
+ fit: 1 1;
+ style:"button_style";
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ text.style:"button_style_pressed";
+ }
+ }
+
+ part { name: "call_back_icon";
+ type: IMAGE;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ rel1 { relative: BUTTON_ICON_X0 BUTTON_ICON_Y0; to: "rect_call_back";}
+ rel2 { relative: BUTTON_ICON_X1 BUTTON_ICON_Y1; to: "rect_call_back";}
+ image {
+ normal: IMG_SRC_DIR/"call_button_icon_03.png";
+ }
+ color_class: "AO009";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "AO001";
+ }
+ }
+ }
+ programs {
+ program {
+ name: "pressed";
+ signal: "mouse,down,*";
+ source: "*";
+ action: STATE_SET "pressed" 0.0;
+ target: "rect_call_back";
+ target: "call_back_icon";
+ target: "call_back_text";
+ }
+ program {
+ name: "unpressed";
+ signal: "mouse,up,*";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "rect_call_back";
+ target: "call_back_icon";
+ target: "call_back_text";
+ }
+ }
+}
+
+group {
+ name: "create_contact_button";
+ parts {
+ part { name: "bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color_class: "W0113";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "W0113P";
+ }
+ }
+
+ part { name: "icon";
+ type: IMAGE;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ rel1 { relative: (BUTTON_OFFSET/BUTTON_SIZE) (BUTTON_OFFSET/BUTTON_SIZE); to: "bg";}
+ rel2 { relative: ((BUTTON_ICON_SIZE + BUTTON_OFFSET)/BUTTON_SIZE) ((BUTTON_ICON_SIZE + BUTTON_OFFSET)/BUTTON_SIZE); to: "bg";}
+ image {
+ normal: IMG_ICN_DIR/"call_button_add.png";
+ }
+ color: 255 255 255 255;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "pressed";
+ signal: "mouse,down,*";
+ source: "*";
+ action: STATE_SET "pressed" 0.0;
+ target: "bg";
+ }
+ program {
+ name: "unpressed";
+ signal: "mouse,up,*";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ }
+ }
+}
+
+group {
+ name: "message_button";
+ parts {
+ part { name: "rect_message";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "pressed" 0.0;
+ color: 0 0 0 76;
+ }
+ }
+
+ part { name: "message_text";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ rel1 { relative: BUTTON_TEXT_X0 BUTTON_TEXT_Y0; to: "rect_message";}
+ rel2 { relative: BUTTON_TEXT_X1 BUTTON_TEXT_Y1; to: "rect_message";}
+ text {
+ fit: 1 1;
+ style:"button_style";
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ text.style:"button_style_pressed";
+ }
+ }
+
+ part { name: "message_icon";
+ type: IMAGE;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ rel1 { relative: BUTTON_ICON_X0 BUTTON_ICON_Y0; to: "rect_message";}
+ rel2 { relative: BUTTON_ICON_X1 BUTTON_ICON_Y1; to: "rect_message";}
+ image {
+ normal: IMG_SRC_DIR/"call_button_icon_04.png";
+ }
+ color_class: "AO009";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "AO001";
+ }
+ }
+ }
+ programs {
+ program {
+ name: "pressed";
+ signal: "mouse,down,*";
+ source: "*";
+ action: STATE_SET "pressed" 0.0;
+ target: "rect_message";
+ target: "message_icon";
+ target: "message_text";
+ }
+ program {
+ name: "unpressed";
+ signal: "mouse,up,*";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "rect_message";
+ target: "message_icon";
+ target: "message_text";
+ }
+ }
+}
+
+group {
+ name: "main_end_call";
+ parts {
+ part { name: "background";
+ type: IMAGE;
+ description {
+ state: "default" 0.0;
+ image.normal: IMG_SRC_DIR/"background_dim.png";
+ }
+ }
+
+ part { name: "contact_ly";
+ type: RECT;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ color_class: "AO001";
+ rel1 { relative: 0 0; to: "background"; }
+ rel2 { relative: 1 (MAIN_BG_HIGHT/MAIN_HIGHT); to: "background"; }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "caller_id";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ rel1 { relative: CONTACT_IMAGE_X0 CONTACT_IMAGE_Y0; to: "contact_ly";}
+ rel2 { relative: CONTACT_IMAGE_X1 CONTACT_IMAGE_Y1; to: "contact_ly";}
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "caller_id_mask";
+ type: IMAGE;
+ scale: 1;
+ description {
+ visible: 0;
+ fixed: 1 1;
+ rel1 { relative: CONTACT_IMAGE_X0 CONTACT_IMAGE_Y0; to: "contact_ly";}
+ rel2 { relative: CONTACT_IMAGE_X1 CONTACT_IMAGE_Y1; to: "contact_ly";}
+ image {
+ normal: IMG_SRC_DIR/"call_photo_id_mask.png";
+ }
+ aspect_preference: SOURCE;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "caller_id_img";
+ type: IMAGE;
+ scale: 1;
+ description {
+ visible: 0;
+ fixed: 1 1;
+ rel1 { relative: CONTACT_IMAGE_X0 CONTACT_IMAGE_Y0; to: "contact_ly";}
+ rel2 { relative: CONTACT_IMAGE_X1 CONTACT_IMAGE_Y1; to: "contact_ly";}
+ image {
+ normal: IMG_SRC_DIR/"call_photo_id.png";
+ }
+ aspect_preference: SOURCE;
+ color_class: "AO001";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "contact_name";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: CONTACT_NAME_X0 CONTACT_NAME_Y0; to: "contact_ly";}
+ rel2 { relative: CONTACT_NAME_X1 CONTACT_NAME_Y1; to: "contact_ly";}
+ text {
+ ellipsis: 0.0;
+ style:"call_name";
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "contact_number";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: CONTACT_NUMBER_X0 CONTACT_NUMBER_Y0; to: "contact_ly";}
+ rel2 { relative: CONTACT_NUMBER_X1 CONTACT_NUMBER_Y1; to: "contact_ly";}
+ text {
+ ellipsis: 1.0;
+ style:"call_number";
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "swallow.create_contact";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ rel1 { relative: CREATE_CONTACT_X0 CREATE_CONTACT_Y0; to: "contact_ly";}
+ rel2 { relative: CREATE_CONTACT_X1 CREATE_CONTACT_Y1; to: "contact_ly";}
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "button_call_back";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: 0.0 RECT_BUTTON_Y0; to: "contact_ly";}
+ rel2 { relative: 0.5 1.0; to: "contact_ly";}
+ }
+ }
+
+ part { name: "button_message_back";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: 0.5 RECT_BUTTON_Y0; to: "contact_ly";}
+ rel2 { relative: 1.0 1.0; to: "contact_ly";}
+ }
+ }
+ part { name: "call_txt_status";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: MAIN_TITLE_X0 MAIN_TITLE_Y0; to: "contact_ly";}
+ rel2 { relative: 1.0 MAIN_TITLE_Y1; to: "contact_ly";}
+ text.style:"call_timer_style1";
+ }
+ }
+ }
+ programs{
+ program {
+ name: "show_image";
+ signal: "show_image";
+ source: "main_end_call";
+ action: STATE_SET "show" 0.0;
+ target: "caller_id_mask";
+ target: "caller_id_img";
+ }
+ program {
+ name: "hide_image";
+ signal: "hide_image";
+ source: "main_end_call";
+ action: STATE_SET "hide" 0.0;
+ target: "caller_id_mask";
+ target: "caller_id_img";
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../callui-color-classes.h"
+
+styles {
+ style {
+ name: "active_call_name";
+ base: "font=Tizen:style=Regular align=left font_size=40 color=#FFFFFF ellipsis=1.0";
+ }
+ style {
+ name: "active_call_number";
+ base: "font=Tizen:style=Regular align=left font_size=32 color=#FFFFFF ellipsis=1.0";
+ }
+}
+
+#define SPACE_NOTIFICATION 50
+#define REC_MAIN_INFO 144
+#define SPACE_ICON 23
+#define ICON_H 98
+#define SPACE_ICON_W 32
+#define REC_BUTTON_H 120
+#define BUTTON_H 78
+#define SWAP_BUTTON_Y 46
+#define MAIN_HEIGHT (SPACE_NOTIFICATION + REC_MAIN_INFO + REC_BUTTON_H + SWAP_BUTTON_Y)
+#define MAIN_HEIGHT_RECT_REJECT (REC_MAIN_INFO + REC_BUTTON_H + SPACE_NOTIFICATION + SPACE_NOTIFICATION)
+#define MAIN_HEIGHT_REJECT 1280
+#define MAIN_WIDTH 720
+#define SPACE_BUTTON 186
+#define SPACE_BETWEEN_BUTTONS 16
+#define SPACE_BUTTON_Y 21
+#define BUTTON_SIZE_X_LITTLE 208
+#define BUTTON_SIZE_X_BIG 320
+#define BUTTON_SIZE_Y 78
+#define NAME_SIZE 56
+#define NUMBER_SIZE 43
+#define BUTTON_RJ_MSG 20
+#define BUTTON_RJ_MSG_OFFSET 22
+#define ACTIVE_NOTIFICATION_SIZE_Y 320
+
+#define CONTACT_IMAGE_X0 (SPACE_ICON_W/MAIN_WIDTH)
+#define CONTACT_IMAGE_Y0 ((SPACE_NOTIFICATION + SPACE_ICON)/MAIN_HEIGHT)
+#define CONTACT_IMAGE_X1 ((SPACE_ICON_W + ICON_H)/MAIN_WIDTH)
+#define CONTACT_IMAGE_Y1 ((SPACE_NOTIFICATION + SPACE_ICON + ICON_H)/MAIN_HEIGHT)
+
+#define CONTACT_INFO_X0 (0.0)
+#define CONTACT_INFO_Y0 (0.0)
+#define CONTACT_INFO_X1 (1.0)
+#define CONTACT_INFO_Y1 ((MAIN_HEIGHT)/MAIN_HEIGHT)
+#define CONTACT_INFO_Y_REJECT ((MAIN_HEIGHT_RECT_REJECT)/MAIN_HEIGHT_REJECT)
+
+#define CONTACT_REJECT_MSG_X0 (0.0)
+#define CONTACT_REJECT_MSG_Y0 ((MAIN_HEIGHT_RECT_REJECT)/MAIN_HEIGHT_REJECT)
+#define CONTACT_REJECT_MSG_X1 (1.0)
+#define CONTACT_REJECT_MSG_Y1 (1.0)
+
+#define CONTACT_REJECT_MSG_BUTTON_X0 ((SPACE_ICON_W)/MAIN_WIDTH)
+#define CONTACT_REJECT_MSG_BUTTON_Y0 ((BUTTON_RJ_MSG)/(MAIN_HEIGHT_REJECT - MAIN_HEIGHT_RECT_REJECT))
+#define CONTACT_REJECT_MSG_BUTTON_X1 ((MAIN_WIDTH - SPACE_ICON_W)/MAIN_WIDTH)
+#define CONTACT_REJECT_MSG_BUTTON_Y1 ((BUTTON_RJ_MSG + BUTTON_H)/(MAIN_HEIGHT_REJECT - MAIN_HEIGHT_RECT_REJECT))
+
+#define CONTACT_REJECT_MSG_GENLIST_Y1 ((BUTTON_RJ_MSG + BUTTON_H + BUTTON_RJ_MSG_OFFSET)/(MAIN_HEIGHT_REJECT - MAIN_HEIGHT_RECT_REJECT))
+
+#define CONTACT_CALL_BTN_X0 ((SPACE_ICON_W)/MAIN_WIDTH)
+#define CONTACT_BTN_Y0 (SPACE_BUTTON/ACTIVE_NOTIFICATION_SIZE_Y)
+#define CONTACT_CALL_BTN_X1 ((SPACE_ICON_W + BUTTON_SIZE_X_LITTLE)/MAIN_WIDTH)
+#define CONTACT_BTN_Y1 ((SPACE_BUTTON + BUTTON_SIZE_Y)/ACTIVE_NOTIFICATION_SIZE_Y)
+
+#define CONTACT_CALL_BTN_BIG_X0 (SPACE_ICON_W/MAIN_WIDTH)
+#define CONTACT_CALL_BTN_BIG_Y0 CONTACT_BTN_Y0
+#define CONTACT_CALL_BTN_BIG_X1 ((SPACE_ICON_W + BUTTON_SIZE_X_BIG)/MAIN_WIDTH)
+#define CONTACT_CALL_BTN_BIG_Y1 CONTACT_BTN_Y1
+
+#define CONTACT_RJ_MSG_BTN_X0 ((SPACE_ICON_W + SPACE_BETWEEN_BUTTONS + BUTTON_SIZE_X_LITTLE)/MAIN_WIDTH)
+#define CONTACT_RJ_MSG_BTN_Y0 CONTACT_BTN_Y0
+#define CONTACT_RJ_MSG_BTN_X1 ((SPACE_ICON_W + SPACE_BETWEEN_BUTTONS + BUTTON_SIZE_X_LITTLE + BUTTON_SIZE_X_LITTLE)/MAIN_WIDTH)
+#define CONTACT_RJ_MSG_BTN_Y1 CONTACT_BTN_Y1
+
+#define CONTACT_END_BTN_X0 ((MAIN_WIDTH - SPACE_ICON_W - BUTTON_SIZE_X_LITTLE)/MAIN_WIDTH)
+#define CONTACT_END_BTN_Y0 CONTACT_BTN_Y0
+#define CONTACT_END_BTN_X1 ((MAIN_WIDTH - SPACE_ICON_W)/MAIN_WIDTH)
+#define CONTACT_END_BTN_Y1 CONTACT_BTN_Y1
+
+#define CONTACT_END_BTN_BIG_X0 ((MAIN_WIDTH - SPACE_ICON_W - BUTTON_SIZE_X_BIG)/MAIN_WIDTH)
+#define CONTACT_END_BTN_BIG_Y0 CONTACT_BTN_Y0
+#define CONTACT_END_BTN_BIG_X1 ((MAIN_WIDTH - SPACE_ICON_W)/MAIN_WIDTH)
+#define CONTACT_END_BTN_BIG_Y1 CONTACT_BTN_Y1
+
+#define SWAP_X0 (((MAIN_WIDTH/2) - SPACE_ICON)/MAIN_WIDTH)
+#define SWAP_Y0 ((MAIN_HEIGHT - SWAP_BUTTON_Y)/MAIN_HEIGHT)
+#define SWAP_X1 (((MAIN_WIDTH/2) + SPACE_ICON)/MAIN_WIDTH)
+#define SWAP_Y1 1.0
+
+#define CONTACT_NAME_X0 ((SPACE_ICON_W + ICON_H + SPACE_BETWEEN_BUTTONS)/MAIN_WIDTH)
+#define CONTACT_NAME_Y0 ((SPACE_NOTIFICATION + SPACE_ICON)/MAIN_HEIGHT)
+#define CONTACT_NAME_X1 (1.0)
+#define CONTACT_NAME_Y1 ((SPACE_NOTIFICATION + SPACE_ICON + NAME_SIZE)/MAIN_HEIGHT)
+
+#define CONTACT_NUMBER_X0 ((SPACE_ICON_W + ICON_H + SPACE_BETWEEN_BUTTONS)/MAIN_WIDTH)
+#define CONTACT_NUMBER_Y0 ((SPACE_NOTIFICATION + SPACE_ICON + NAME_SIZE)/MAIN_HEIGHT)
+#define CONTACT_NUMBER_X1 (1.0)
+#define CONTACT_NUMBER_Y1 ((SPACE_NOTIFICATION + SPACE_ICON + NAME_SIZE + NUMBER_SIZE)/MAIN_HEIGHT)
+
+group {
+ name: "main_button_ly";
+ parts {
+ part { name: "image_bg";
+ type: IMAGE;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ image {
+ normal: IMG_SRC_DIR/"button_edit_bg_new.png";
+ }
+ color: 0 0 0 54;
+ }
+ description {
+ state: "clicked" 0.0;
+ inherit: "default" 0.0;
+ color: 0 0 0 77;
+ }
+ }
+
+ part { name: "swallow.icon";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0; to: "image_bg";}
+ rel2 { relative: 1.0 1.0; to: "image_bg";}
+ }
+ }
+ }
+ programs{
+ program { name: "button_unpress";
+ signal: "mouse,up,*";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "image_bg";
+ }
+ program { name: "button_press";
+ signal: "mouse,down,*";
+ source: "*";
+ action: STATE_SET "clicked" 0.0;
+ target: "image_bg";
+ }
+ }
+}
+
+group {
+ name: "swipe_call_button_ly";
+ parts {
+ part { name: "swipe_call_button";
+ type: IMAGE;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ image {
+ normal: IMG_SRC_DIR"/handler_btn_02.png";
+ }
+ }
+ }
+ }
+}
+
+group {
+ name: "reject_msg_ly";
+ parts {
+ part { name: "bg";
+ type: RECT;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 CONTACT_REJECT_MSG_GENLIST_Y1;}
+ }
+ }
+
+ part { name: "swallow.button";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ rel1 { relative: CONTACT_REJECT_MSG_BUTTON_X0 CONTACT_REJECT_MSG_BUTTON_Y0;}
+ rel2 { relative: CONTACT_REJECT_MSG_BUTTON_X1 CONTACT_REJECT_MSG_BUTTON_Y1;}
+ }
+ }
+
+ part { name: "swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ align: 0.0 0.0;
+ state: "default" 0.0;
+ rel1 { relative: 0.0 CONTACT_REJECT_MSG_GENLIST_Y1;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+ }
+}
+
+group {
+ name: "main_incoming_active_call";
+ parts {
+ part { name: "screen_bg";
+ type: RECT;
+ description {
+ fixed: 1 1;
+ visible: 1;
+ state: "default" 0.0;
+ color: 0 0 0 77;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 CONTACT_INFO_Y1;}
+ }
+ }
+
+ part { name: "bg";
+ type: RECT;
+ description {
+ fixed: 1 1;
+ visible: 1;
+ state: "default" 0.0;
+ color: 61 185 204 255;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 CONTACT_INFO_Y1;}
+ }
+ description {
+ state: "small" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 CONTACT_INFO_Y1;}
+ }
+ description {
+ state: "big" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 CONTACT_INFO_Y_REJECT;}
+ }
+ }
+
+ part { name: "dim_bg";
+ type: RECT;
+ description {
+ fixed: 1 1;
+ visible: 1;
+ state: "default" 0.0;
+ color: 0 0 0 25;
+ rel1 { relative: 0.0 0.0; to: "bg";}
+ rel2 { relative: 1.0 1.0; to: "bg";}
+ }
+ }
+
+ part { name: "caller_id";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ aspect: 1 1;
+ aspect_preference: HORIZONTAL;
+ state: "default" 0.0;
+ color: 255 255 0 255;
+ rel1 { relative: CONTACT_IMAGE_X0 CONTACT_IMAGE_Y0; to: "bg";}
+ rel2 { relative: CONTACT_IMAGE_X1 CONTACT_IMAGE_Y1; to: "bg";}
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "swallow.reject_msg";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ visible: 0;
+ rel1 { relative: CONTACT_REJECT_MSG_X0 CONTACT_REJECT_MSG_Y0;}
+ rel2 { relative: CONTACT_REJECT_MSG_X1 CONTACT_REJECT_MSG_Y1;}
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part { name: "swallow.swipe_button";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ visible: 1;
+ fixed: 1 1;
+ rel1 { relative: SWAP_X0 SWAP_Y0; to: "bg";}
+ rel2 { relative: SWAP_X1 SWAP_Y1; to: "bg";}
+ aspect_preference: SOURCE;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "caller_id_mask";
+ type: IMAGE;
+ scale: 1;
+ description {
+ visible: 0;
+ fixed: 1 1;
+ aspect: 1 1;
+ aspect_preference: HORIZONTAL;
+ rel1 { relative: CONTACT_IMAGE_X0 CONTACT_IMAGE_Y0; to: "bg";}
+ rel2 { relative: CONTACT_IMAGE_X1 CONTACT_IMAGE_Y1; to: "bg";}
+ image {
+ normal: IMG_SRC_DIR/"call_photo_id_mask.png";
+ }
+ aspect_preference: SOURCE;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "caller_id_default";
+ type: IMAGE;
+ scale: 1;
+ description {
+ visible: 0;
+ fixed: 1 1;
+ aspect: 1 1;
+ aspect_preference: HORIZONTAL;
+ rel1 { relative: 0.0 0.0; to: "caller_id_mask";}
+ rel2 { relative: 1.0 1.0; to: "caller_id_mask";}
+ image {
+ normal: IMG_SRC_DIR"/call_photo_id.png";
+ }
+ aspect_preference: SOURCE;
+ color_class: "AO001";
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "text.contact_name";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: CONTACT_NAME_X0 CONTACT_NAME_Y0; to: "bg";}
+ rel2 { relative: CONTACT_NAME_X1 CONTACT_NAME_Y1; to: "bg";}
+ align: 0.0 0.5;
+ text {
+ ellipsis: 0.0;
+ fit: 0 1;
+ style:"active_call_name";
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "text.contact_number";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: CONTACT_NUMBER_X0 CONTACT_NUMBER_Y0; to: "bg";}
+ rel2 { relative: CONTACT_NUMBER_X1 CONTACT_NUMBER_Y1; to: "bg";}
+ align: 0.0 0.5;
+ text {
+ ellipsis: 1.0;
+ style:"active_call_number";
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "swallow.call_button";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: CONTACT_CALL_BTN_X0 CONTACT_BTN_Y0; to: "bg";}
+ rel2 { relative: CONTACT_CALL_BTN_X1 CONTACT_BTN_Y1; to: "bg";}
+ color: 255 0 0 255;
+ }
+ description {
+ state: "big" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: CONTACT_CALL_BTN_BIG_X0 CONTACT_CALL_BTN_BIG_Y0; to: "bg";}
+ rel2 { relative: CONTACT_CALL_BTN_BIG_X1 CONTACT_CALL_BTN_BIG_Y1; to: "bg";}
+ }
+ description {
+ state: "small" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: CONTACT_CALL_BTN_X0 CONTACT_BTN_Y0; to: "bg";}
+ rel2 { relative: CONTACT_CALL_BTN_X1 CONTACT_BTN_Y1; to: "bg";}
+ }
+ }
+
+ part { name: "swallow.rj_msg_button";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ visible: 0;
+ rel1 { relative: CONTACT_RJ_MSG_BTN_X0 CONTACT_RJ_MSG_BTN_Y0; to: "bg";}
+ rel2 { relative: CONTACT_RJ_MSG_BTN_X1 CONTACT_RJ_MSG_BTN_Y1; to: "bg";}
+ color: 255 0 0 255;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part { name: "swallow.end_call_button";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ rel1 { relative: CONTACT_END_BTN_X0 CONTACT_BTN_Y0; to: "bg";}
+ rel2 { relative: CONTACT_END_BTN_X1 CONTACT_BTN_Y1; to: "bg";}
+ color: 255 0 0 255;
+ }
+ description {
+ state: "big" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: CONTACT_END_BTN_X0 CONTACT_BTN_Y0; to: "bg";}
+ rel2 { relative: CONTACT_END_BTN_X1 CONTACT_BTN_Y1; to: "bg";}
+ }
+ description {
+ state: "small" 0.0;
+ inherit: "default" 0.0;
+ rel1 { relative: CONTACT_END_BTN_X0 CONTACT_BTN_Y0; to: "bg";}
+ rel2 { relative: CONTACT_END_BTN_X1 CONTACT_BTN_Y1; to: "bg";}
+ }
+ }
+ }
+
+ programs{
+ program {
+ name: "show_image";
+ signal: "show_image";
+ source: "main_incoming_active_call";
+ action: STATE_SET "show" 0.0;
+ target: "caller_id_mask";
+ target: "caller_id_default";
+ }
+ program {
+ name: "hide_image";
+ signal: "hide_image";
+ source: "main_incoming_active_call";
+ action: STATE_SET "hide" 0.0;
+ target: "caller_id_mask";
+ target: "caller_id_default";
+ }
+ program {
+ name: "small_main_ly";
+ signal: "small_main_ly";
+ source: "main_incoming_active_call";
+ action: STATE_SET "small" 0.0;
+ target: "bg";
+ after: "hide_reject_msg";
+ after: "show_swipe_call";
+ }
+ program {
+ name: "show_reject_msg";
+ signal: "show_reject_msg";
+ source: "main_incoming_active_call";
+ action: STATE_SET "show" 0.0;
+ target: "swallow.reject_msg";
+ }
+ program {
+ name: "hide_reject_msg";
+ signal: "hide_reject_msg";
+ source: "main_incoming_active_call";
+ action: STATE_SET "hide" 0.0;
+ target: "swallow.reject_msg";
+ }
+ program {
+ name: "big_main_ly";
+ signal: "big_main_ly";
+ source: "main_incoming_active_call";
+ action: STATE_SET "big" 0.0;
+ target: "bg";
+ after: "show_reject_msg";
+ after: "hide_swipe_call";
+ }
+ program {
+ name: "show_swipe_call";
+ signal: "show_swipe_call";
+ source: "main_incoming_active_call";
+ action: STATE_SET "show" 0.0;
+ target: "swallow.swipe_button";
+ }
+ program {
+ name: "hide_swipe_call";
+ signal: "hide_swipe_call";
+ source: "main_incoming_active_call";
+ action: STATE_SET "hide" 0.0;
+ target: "swallow.swipe_button";
+ after: "show_reject_msg";
+ }
+ program {
+ name: "big_buttons";
+ signal: "big_buttons";
+ source: "main_incoming_active_call";
+ action: STATE_SET "big" 0.0;
+ target: "swallow.call_button";
+ target: "swallow.end_call_button";
+ after: "hide_swallow.rj_msg_button";
+ }
+ program {
+ name: "hide_swallow.rj_msg_button";
+ signal: "hide_swallow.rj_msg_button";
+ source: "main_incoming_active_call";
+ action: STATE_SET "hide" 0.0;
+ target: "swallow.rj_msg_button";
+ }
+ program {
+ name: "small_buttons";
+ signal: "small_buttons";
+ source: "main_incoming_active_call";
+ action: STATE_SET "small" 0.0;
+ target: "swallow.call_button";
+ target: "swallow.end_call_button";
+ after: "show_swallow.rj_msg_button";
+ }
+ program {
+ name: "show_swallow.rj_msg_button";
+ signal: "show_swallow.rj_msg_button";
+ source: "main_incoming_active_call";
+ action: STATE_SET "show" 0.0;
+ target: "swallow.rj_msg_button";
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.
+ *
+ */
+
+#define RESOURCE_IMAGE( GROUP_NAME, FILE_NAME ) \
+ group { \
+ name: GROUP_NAME; \
+ images.image: FILE_NAME COMP; \
+ parts { \
+ part { name: "image"; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: FILE_NAME; \
+ aspect: 1 1; \
+ aspect_preference: BOTH; \
+ } \
+ } \
+ } \
+ }
+
+#define RESOURCE_IMAGE_LOSSY( FILE_NAME ) \
+ group { \
+ name: FILE_NAME; \
+ images.image: FILE_NAME LOSSY 85; \
+ parts { \
+ part { name: "image"; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: FILE_NAME; \
+ aspect: 1 1; \
+ aspect_preference: BOTH; \
+ } \
+ } \
+ } \
+ }
+
+#define RESOURCE_IMAGE_WITH_BG_AND_COLOR_CODE( GROUP_NAME, IMAGE_PATH, BG_IMAGE_PATH, COLOR_CODE, BG_COLOR_CODE ) \
+ group { \
+ name: GROUP_NAME; \
+ images.image: BG_IMAGE_PATH COMP; \
+ images.image: IMAGE_PATH COMP; \
+ parts { \
+ part { \
+ name: "image_bg"; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: BG_IMAGE_PATH; \
+ color_class: BG_COLOR_CODE; \
+ aspect: 1 1; \
+ aspect_preference: SOURCE; \
+ } \
+ } \
+ } \
+ parts { \
+ part { \
+ name: "image"; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: IMAGE_PATH; \
+ color_class: COLOR_CODE; \
+ aspect: 1 1; \
+ aspect_preference: SOURCE; \
+ } \
+ } \
+ } \
+ }
+
+#define RESOURCE_IMAGE_WITH_MASK(GROUP_NAME, MASK_PATH, SWALLOW_PART_NAME) \
+ group { \
+ name: GROUP_NAME; \
+ images.image: MASK_PATH COMP; \
+ parts { \
+ part { name: "mask"; \
+ type: IMAGE; \
+ precise_is_inside: 1; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: MASK_PATH; \
+ aspect: 1.0 1.0; \
+ aspect_preference: SOURCE; \
+ } \
+ } \
+ part { name: SWALLOW_PART_NAME; \
+ type: SWALLOW; \
+ clip_to: "mask"; \
+ description { \
+ state: "default" 0.0; \
+ } \
+ } \
+ } \
+ }
+
+#define REL_PAD_LT(size, bg_size) ((bg_size-size)/2/bg_size)
+#define REL_PAD_RB(size, bg_size) (1 - REL_PAD_LT(size, bg_size))
+
+#define RESOURCE_IMAGE_WITH_BG_AND_TOUCH( GROUP_NAME, IMAGE_PATH, BG_IMAGE_PATH, IMAGE_SIZE, BG_IMAGE_SIZE, COLOR_CODE, BG_COLOR_CODE, BG_COLOR_CODE_P ) \
+ group { \
+ name: GROUP_NAME; \
+ images.image: BG_IMAGE_PATH COMP; \
+ images.image: IMAGE_PATH COMP; \
+ parts { \
+ part { \
+ name: "image_bg"; \
+ type: IMAGE; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: BG_IMAGE_PATH; \
+ color_class: BG_COLOR_CODE; \
+ aspect: 1 1; \
+ aspect_preference: SOURCE; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: BG_COLOR_CODE_P; \
+ } \
+ } \
+ part { \
+ name: "image"; \
+ type: IMAGE; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: IMAGE_PATH; \
+ color_class: COLOR_CODE; \
+ aspect: 1 1; \
+ aspect_preference: SOURCE; \
+ rel1 { relative: REL_PAD_LT(IMAGE_SIZE, BG_IMAGE_SIZE) REL_PAD_LT(IMAGE_SIZE, BG_IMAGE_SIZE); to: "image_bg";} \
+ rel2 { relative: REL_PAD_RB(IMAGE_SIZE, BG_IMAGE_SIZE) REL_PAD_RB(IMAGE_SIZE, BG_IMAGE_SIZE); to: "image_bg";} \
+ } \
+ } \
+ part { \
+ name: "touch"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 0; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ } \
+ programs { \
+ program { \
+ name: "mouse.down."GROUP_NAME; \
+ source: "touch"; \
+ signal: "mouse,down,*"; \
+ action: STATE_SET "pressed" 0.0; \
+ target: "image_bg"; \
+ } \
+ program { \
+ name: "mouse.up."GROUP_NAME; \
+ source: "touch"; \
+ signal: "mouse,up,*"; \
+ action: STATE_SET "default" 0.0; \
+ target: "image_bg"; \
+ } \
+ } \
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __CALLUI_COLOR_CLASSES_H__
+#define __CALLUI_COLOR_CLASSES_H__
+
+//Suffix "_C" - for conflict color's names
+
+color_classes {
+ color_class {
+ name: "AO001";
+ color: 61 185 204 255;
+ }
+ color_class {
+ name: "W0113";
+ color: 61 185 204 255;
+ }
+ color_class {
+ name: "W0113P";
+ color: 61 185 169 255;
+ }
+ color_class {
+ name: "AO002";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "AO003";
+ color: 0 0 0 217;
+ }
+ color_class {
+ name: "AO003D";
+ color: 0 0 0 77;
+ }
+ color_class {
+ name: "AO003L2";
+ color: 61 185 204 255;
+ }
+ color_class {
+ name: "AO004";
+ color: 83 196 12 255;
+ }
+ color_class {
+ name: "AO004_C";
+ color: 51 51 51 205;
+ }
+ color_class {
+ name: "AO004D";
+ color: 51 51 51 64;
+ }
+ color_class {
+ name: "AO004P";
+ color: 83 196 12 255;
+ }
+ color_class {
+ name: "AO005_C";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "AO005P";
+ color: 61 185 204 77;
+ }
+ color_class {
+ name: "AO008";
+ color: 249 249 249 255;
+ }
+ color_class {
+ name: "AO008P";
+ color: 61 185 204 77;
+ }
+ color_class {
+ name: "AO009";
+ color: 128 128 128 255;
+ }
+ color_class {
+ name: "merge_btn_bg";
+ color: 0 0 0 230;
+ }
+ color_class {
+ name: "swap_btn_bg";
+ color: 0 0 0 240;
+ }
+ color_class {
+ name: "pressed";
+ color: 61 185 204 255;
+ }
+ color_class {
+ name: "AO011";
+ color: 50 130 136 190;
+ }
+ color_class {
+ name: "AO0111";
+ color: 51 125 133 200;
+ }
+ color_class {
+ name: "AO090";
+ color: 255 255 255 128;
+ }
+ color_class {
+ name: "AO046";
+ color: 83 196 12 59;
+ }
+ color_class {
+ name: "AO046L1";
+ color: 83 196 12 102;
+ }
+ color_class {
+ name: "AO005";
+ color: 250 57 22 255;
+ }
+ color_class {
+ name: "AO047";
+ color: 250 57 22 59;
+ }
+ color_class {
+ name: "AO047L1";
+ color: 250 57 22 102;
+ }
+ color_class {
+ name: "AO012";
+ color: 0 0 0 102;
+ }
+ color_class {
+ name: "AO014L1";
+ color: 255 255 255 235;
+ }
+ color_class {
+ name: "AO014L2";
+ color: 255 255 255 245;
+ }
+ color_class {
+ name: "AO014L3";
+ color: 255 255 255 219;
+ }
+ color_class {
+ name: "AO014L4";
+ color: 255 255 255 230;
+ }
+ color_class {
+ name: "AO014P";
+ color: 61 185 169 255;
+ }
+ color_class {
+ name: "AO014D";
+ color: 0 0 0 77;
+ }
+ color_class {
+ name: "AO016";
+ color: 49 148 163 255;
+ }
+ color_class {
+ name: "AO016L1";
+ color: 49 148 163 77;
+ }
+ color_class {
+ name: "AO100";
+ color: 49 148 163 255;
+ }
+ color_class {
+ name: "AO100L1";
+ color: 49 148 163 51;
+ }
+ color_class {
+ name: "AO021";
+ color: 0 0 0 26;
+ }
+ color_class {
+ name: "AO022";
+ color: 0 0 0 77;
+ }
+ color_class {
+ name: "AO022P";
+ color: 120 237 255 255;
+ }
+ color_class {
+ name: "AO039";
+ color: 186 208 217 77;
+ }
+ color_class {
+ name: "AO025";
+ color: 61 185 204 255;
+ }
+ color_class {
+ name: "AO025P";
+ color: 34 104 114 255;
+ }
+ color_class {
+ name: "AO025D";
+ color: 102 190 204 255;
+ }
+ color_class {
+ name: "AO026";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "AO026L1";
+ color: 255 255 255 245;
+ }
+ color_class {
+ name: "AO026L2";
+ color: 255 255 255 230;
+ }
+ color_class {
+ name: "AO026P";
+ color: 61 185 204 77;
+ }
+ color_class {
+ name: "AO030P";
+ color: 212 48 19 255;
+ }
+ color_class {
+ name: "AO030D";
+ color: 250 57 23 59;
+ }
+ color_class {
+ name: "AO036";
+ color: 247 251 253 255;
+ }
+ color_class {
+ name: "AO037";
+ color: 255 0 0 255;
+ }
+ color_class {
+ name: "AO043";
+ color: 250 57 22 255;
+ }
+ color_class {
+ name: "AO043P";
+ color: 212 48 19 255;
+ }
+ color_class {
+ name: "AO043D";
+ color: 250 57 22 59;
+ }
+ color_class {
+ name: "AO049";
+ color: 49 148 163 255;
+ }
+ color_class {
+ name: "AO052";
+ color: 61 185 204 255;
+ }
+ color_class {
+ name: "AO151";
+ color: 255 255 255 77;
+ }
+ color_class {
+ name: "ATO001";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "ATO002";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "ATO005";
+ color: 127 127 127 255;
+ }
+ color_class {
+ name: "ATO006";
+ color: 49 148 163 77;
+ }
+ color_class {
+ name: "ATO005QP";
+ color: 0 0 0 255;
+ }
+ color_class {
+ name: "ATO006QP";
+ color: 127 127 127 255;
+ }
+ color_class {
+ name: "ATO007";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "ATO008";
+ color: 49 148 163 255;
+ }
+ color_class {
+ name: "ATO010";
+ color: 0 0 0 255;
+ }
+ color_class {
+ name: "ATO011";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "ATO012";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "ATO013";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "ATO014";
+ color: 255 255 255 128;
+ }
+ color_class {
+ name: "ATO016";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "ATO017";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "ATO027";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "ATO028";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "ATO030";
+ color: 255 255 255 89;
+ }
+ color_class {
+ name: "ATO031";
+ color: 255 255 255 89;
+ }
+ color_class {
+ name: "AO017";
+ color: 245 245 245 255;
+ }
+ color_class {
+ name: "AO017P";
+ color: 245 245 245 255;
+ }
+ color_class {
+ name: "AO017D";
+ color: 245 245 245 102;
+ }
+ color_class {
+ name: "AO018";
+ color: 160 240 0 255;
+ }
+ color_class {
+ name: "AO018P";
+ color: 160 240 0 255;
+ }
+ color_class {
+ name: "AO018D";
+ color: 160 240 0 102;
+ }
+ color_class {
+ name: "AO019";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "AO019P";
+ color: 255 255 255 255;
+ }
+ color_class {
+ name: "AO019D";
+ color: 255 255 255 102;
+ }
+ color_class {
+ name: "A01O004E01";
+ color: 255 255 255 235;
+ }
+ color_class {
+ name: "A01O004E02";
+ color: 255 255 255 245;
+ }
+ color_class {
+ name: "A01O004E03";
+ color: 255 255 255 219;
+ }
+ color_class {
+ name: "A01O004E04";
+ color: 255 255 255 230;
+ }
+ color_class {
+ name: "A01O004E05";
+ color: 255 255 255 204;
+ }
+ color_class {
+ name: "A01O004E06";
+ color: 255 255 255 214;
+ }
+ color_class {
+ name: "A01O004E07";
+ color: 255 255 255 189;
+ }
+ color_class {
+ name: "A01O004E08";
+ color: 255 255 255 199;
+ }
+ color_class {
+ name: "A01O004P";
+ color: 247 251 252 153;
+ }
+ color_class {
+ name: "A01O005";
+ color: 49 148 163 255;
+ }
+ color_class {
+ name: "A01O006";
+ color: 49 148 163 230;
+ }
+ color_class {
+ name: "AO199";
+ color: 255 255 255 245;
+ }
+ color_class {
+ name: "ATO009D";
+ color: 127 127 127 77;
+ }
+ color_class {
+ name: "AO010";
+ color: 102 102 102 77;
+ }
+ color_class {
+ name: "AO010P";
+ color: 0 0 0 255;
+ }
+ color_class {
+ name: "AO010D";
+ color: 102 102 102 23;
+ }
+ color_class {
+ name: "AO0081";
+ color: 249 249 249 255;
+ }
+ color_class {
+ name: "AO012P1";
+ color: 89 175 58 255;
+ }
+ color_class {
+ name: "AO012P";
+ color: 38 127 53 255;
+ }
+ color_class {
+ name: "AO013";
+ color: 214 49 49 255;
+ }
+ color_class {
+ name: "AO013P";
+ color: 163 37 37 255;
+ }
+ color_class {
+ name: "btn_ic_split_bg"; // AO013
+ color: 61 185 204 255;
+ }
+ color_class {
+ name: "btn_ic_split_bg_pressed";
+ color: 34 104 114 255;
+ }
+ color_class {
+ name: "btn_ic_end_bg"; //AO014
+ color: 214 49 49 255;
+ }
+ color_class {
+ name: "btn_ic_end_bg_pressed";
+ color: 163 37 37 255;
+ }
+ color_class {
+ name: "btn_ic"; //AO015
+ color: 249 249 249 255;
+ }
+}
+#endif /* __CALLUI_COLOR_CLASSES_H__ */
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.
+ *
+ */
+
+#define BG_IMG_PATH "./bg"
+
+////////////Second Incoming Call Popup genlist Item customization start/////////
+#define GENLIST_LIST_BG_COLOR 0 0 0 255
+#define GENLIST_LIST_PRESS_COLOR 43 58 175 255
+#define GENLIST_LIST_DIM_COLOR 0 0 0 255
+#define GENLIST_LIST_LINE1_COLOR 64 64 64 255
+#define GENLIST_LIST_LINE2_COLOR 0 0 0 255
+#define GENLIST_PART_MATCH_TAG_COLOR "+ color=#1382FF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE "#FAFAFAFF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE "#969696FF"
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE "#FAFAFAFF"
+#define GENLIST_LIST_BG_POPUP_COLOR 29 38 60 255
+#define GENLIST_LIST_LINE1_POPUP_COLOR 29 38 60 255
+#define GENLIST_LIST_LINE2_POPUP_COLOR 86 92 109 255
+
+#define GENLIST_TREESIZE_DEFAULT 26
+#define GENLIST_PART_LIST_LINE_HEIGHT 1
+#define GENLIST_PADDING_SIZE_LEFT 26
+#define GENLIST_PADDING_SIZE_RIGHT 26
+#define GENLIST_PADDING_SIZE_TOP 2
+#define GENLIST_PADDING_SIZE_BOTTOM 2
+#define GENLIST_PADDING_SIZE_DEFAULT 16
+#define GENLIST_HEIGHT_1LINE 110
+#define GENLIST_LIST_MAIN_TEXT_SIZE 40
+
+
+#define LIST_ITEM_HEIGHT 96
+#define LIST_PADDING_TOP_SIZE 15 // FIXME: please check font height
+#define LIST_PADDING_BOTTOM_SIZE 15 // FIXME: please check font height
+#define LIST_PADDING_CENTER_LEFT_SIZE 15
+#define LIST_PADDING_CENTER_RIGHT_SIZE 15
+#define LIST_PADDING_DEFAULT_SIZE 10
+#define LIST_TEXT_MAIN_SIZE 28
+
+#define STYLE_TAGS \
+ tag: "br" "\n";\
+ tag: "ps" "ps";\
+ tag: "tab" "\t";\
+ tag: "b" "+ font_weight=Bold";
+
+ #define DSC_FROM_L( STATE, PARAM ) \
+ description { state: STATE;\
+ fixed: 1 0; \
+ align: 0.0 0.5; \
+ rel2.relative: 0.0 1.0; \
+ PARAM\
+ }
+
+// ------------------
+// HERE <-- |
+// ------------------
+ #define DSC_FROM_R( STATE, PARAM ) \
+ description { state: STATE;\
+ fixed: 1 0; \
+ align: 1.0 0.5; \
+ rel1.relative: 1 0; \
+ PARAM\
+ }
+
+// ----------
+// | HERE |
+// ----------
+// | |
+// ----------
+ #define DSC_FROM_T( STATE, PARAM ) \
+ description { state: STATE;\
+ fixed: 0 1; \
+ align: 0.5 0.0; \
+ rel2.relative: 1.0 0.0; \
+ PARAM\
+ }
+
+// ----------
+// | HERE |
+// ----------
+// | |
+// ----------
+ #define DSC_FROM_B( STATE, PARAM ) \
+ description { state: STATE;\
+ fixed: 0 1; \
+ align: 0.5 1.0; \
+ rel1.relative: 0.0 1.0; \
+ PARAM\
+ }
+
+// ------------------
+// | PART == HERE |
+// ------------------
+ #define DSC_TO( STATE, PART, PARAM ) \
+ description { state: STATE;\
+ rel1 { \
+ relative: 0 0; \
+ to: PART; \
+ }\
+ rel2 {\
+ relative: 1 1;\
+ to: PART; \
+ }\
+ PARAM\
+ }
+
+// | TOP |
+// ---------------------
+// LEFT | HERE | RIGHT
+// ---------------------
+// | BOTTOM |
+#define DSC_LRTB( STATE, LEFT, RIGHT, TOP, BOTTOM, PARAM ) \
+ description { state: STATE;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: LEFT; \
+ to_y: TOP; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: RIGHT;\
+ to_y: BOTTOM;\
+ }\
+ PARAM\
+ }
+
+// ---------------------
+// LEFT |--> HERE
+// ---------------------
+#define DSC_L( STATE, LEFT, REL_X, PARAM ) \
+ description { state: STATE;\
+ align: 0.5 0.5; \
+ aspect: 0 0; \
+ fixed: 1 0; \
+ rel1 { \
+ relative: 1 0; \
+ to_x: LEFT; \
+ }\
+ rel2 { \
+ relative: REL_X 1;\
+ }\
+ PARAM\
+ }
+
+// ---------------------
+// HERE <--| RIGHT
+// ---------------------
+#define DSC_R( STATE, RIGHT, REL_X, PARAM ) \
+ description { state: STATE;\
+ align: 1 0.5; \
+ fixed: 1 0; \
+ rel1 { \
+ relative: REL_X 0; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: RIGHT; \
+ }\
+ PARAM\
+ }
+
+// --------------------------
+// LEFT |--> HERE <--| RIGHT
+// --------------------------
+#define DSC_LR( STATE, LEFT, RIGHT, PARAM ) \
+ description { state: STATE;\
+ rel1 { \
+ relative: 1 0; \
+ to_x: LEFT; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: RIGHT;\
+ }\
+ PARAM\
+ }
+
+// | TOP |
+// -----------------
+// | HERE <--| RIGHT
+// -----------------
+// | BOTTOM |
+#define DSC_RTB( STATE, RIGHT, TOP, BOTTOM, PARAM ) \
+ description { state: STATE;\
+ align: 1 0.5;\
+ rel1 { \
+ relative: 0 1; \
+ to_x: RIGHT; \
+ to_y: TOP; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: RIGHT;\
+ to_y: BOTTOM;\
+ }\
+ PARAM\
+ }
+
+// LEFT | HERE | RIGHT
+// ---------------------
+// | BOTTOM |
+#define DSC_LRB( STATE, LEFT, RIGHT, BOTTOM, PARAM ) \
+ description { state: STATE;\
+ align: 0.5 1;\
+ rel1 { \
+ relative: 1 0; \
+ to_x: LEFT; \
+ to_y: BOTTOM; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: RIGHT;\
+ to_y: BOTTOM;\
+ }\
+ PARAM\
+ }
+
+// | TOP |
+// ---------------------
+// LEFT | HERE | RIGHT
+#define DSC_LRT( STATE, LEFT, RIGHT, TOP, PARAM ) \
+ description { state: STATE;\
+ align: 0.5 0;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: LEFT; \
+ to_y: TOP; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: RIGHT;\
+ to_y: TOP;\
+ }\
+ PARAM\
+ }
+
+// | TOP |
+// ---------------------
+// LEFT | --> HERE |
+#define DSC_LT( STATE, LEFT, TOP, PARAM ) \
+ description { state: STATE;\
+ align: 0 0;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: LEFT; \
+ to_y: TOP; \
+ }\
+ rel2 {\
+ relative: 1 1;\
+ to_x: LEFT;\
+ to_y: TOP;\
+ }\
+ PARAM\
+ }
+
+// LEFT | --> HERE |
+// ---------------------
+// | BOTTOM |
+#define DSC_LB( STATE, LEFT, BOTTOM, PARAM ) \
+ description { state: STATE;\
+ align: 0 1;\
+ rel1 { \
+ relative: 1 0; \
+ to_x: LEFT; \
+ to_y: BOTTOM; \
+ }\
+ rel2 {\
+ relative: 1 0;\
+ to_x: LEFT;\
+ to_y: BOTTOM;\
+ }\
+ PARAM\
+ }
+
+// | TOP |
+// ---------------------
+// LEFT |--> HERE |
+// ---------------------
+// | BOTTOM |
+#define DSC_LTB( STATE, LEFT, TOP, BOTTOM, PARAM ) \
+ description { state: STATE;\
+ align: 0 0.5;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: LEFT; \
+ to_y: TOP; \
+ }\
+ rel2 {\
+ relative: 1 0;\
+ to_x: LEFT;\
+ to_y: BOTTOM;\
+ }\
+ PARAM\
+ }
+
+// | TOP |
+// ---------------------
+// | HERE <--| RIGHT
+#define DSC_RT( STATE, RIGHT, TOP, PARAM ) \
+ description { state: STATE;\
+ align: 1 0;\
+ rel1 { \
+ relative: 0 1; \
+ to_x: RIGHT; \
+ to_y: TOP; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: RIGHT;\
+ to_y: TOP;\
+ }\
+ PARAM\
+ }
+
+// | HERE <-- | RIGHT
+// ---------------------
+// | BOTTOM |
+#define DSC_RB( STATE, RIGHT, BOTTOM, PARAM ) \
+ description { state: STATE;\
+ align: 1 1;\
+ rel1 { \
+ relative: 0 0; \
+ to_x: RIGHT; \
+ to_y: BOTTOM; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: RIGHT;\
+ to_y: BOTTOM;\
+ }\
+ PARAM\
+ }
+
+// | TOP |
+// ----------
+// | HERE |
+// ----------
+// | BOTTOM |
+#define DSC_TB( STATE, TOP, BOTTOM, PARAM ) \
+ description { state: STATE;\
+ align: 0.5 0.5;\
+ rel1 { \
+ relative: 0 1; \
+ to_y: TOP; \
+ }\
+ rel2 {\
+ relative: 1 0;\
+ to_y: BOTTOM;\
+ }\
+ PARAM\
+ }
+
+// | TOP |
+// ----------
+// | HERE |
+// ----------
+#define DSC_T( STATE, TOP, PARAM ) \
+ description { state: STATE;\
+ align: 0.5 0.0;\
+ rel1 { \
+ relative: 0 1; \
+ to_y: TOP; \
+ }\
+ rel2 {\
+ relative: 1 1;\
+ to_y: TOP;\
+ }\
+ PARAM\
+ }
+
+// | HERE |
+// ----------
+// | BOTTOM |
+// ----------
+#define DSC_B( STATE, BOTTOM, PARAM ) \
+ description { state: STATE;\
+ align: 0.5 1.0;\
+ rel1 { \
+ relative: 0 0; \
+ to_y: BOTTOM; \
+ }\
+ rel2 {\
+ relative: 1 0;\
+ to_y: BOTTOM;\
+ }\
+ PARAM\
+ }
+
+// PART
+#define PART(TYPE, NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: TYPE; \
+ DESCRIPION \
+ }
+
+
+//**************************************************************************//
+// Genlist Macros
+//**************************************************************************//
+#define LIST_PART_BG \
+ PART(RECT, "bg", \
+ description { state: "default" 0.0; \
+ color_class: "B0211"; \
+ } \
+ description { state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "B0211P"; \
+ } \
+ description { state: "disabled" 0.0; \
+ color_class: "B0211"; \
+ } \
+ description { state: "reorder" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ )
+
+#define LIST_PROGRAM_DEFAULT( TARGET ) \
+ program { name: "default"; \
+ signal: "elm,state,default"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ } \
+
+#define LIST_PROGRAM_DISABLED( TARGET ) \
+ program { name: "enabled"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ } \
+ program { name: "disabled"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ TARGET \
+ }
+
+#define LIST_PROGRAM_SELECT( TARGET ) \
+ program { name: "pressed"; \
+ signal: "elm,state,selected"; \
+ source: "elm"; \
+ action: STATE_SET "pressed" 0.0; \
+ TARGET \
+ } \
+ program { name: "unselected"; \
+ signal: "elm,state,unselected"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ }
+
+#define LIST_PROGRAM_SOUND \
+ program { name: "play_sound"; \
+ signal: "elm,state,clicked"; \
+ source: "elm"; \
+ script { \
+ run_program(PROGRAM:"touch_sound"); \
+ } \
+ } \
+ program { name: "touch_sound"; \
+ action: RUN_PLUGIN "touch_sound"; \
+ }
+
+#define LIST_PROGRAMS( TARGET ) \
+ programs { \
+ LIST_PROGRAM_DEFAULT( TARGET \
+ target: "bg"; \
+ ) \
+ LIST_PROGRAM_DISABLED( TARGET \
+ target: "bg"; \
+ ) \
+ LIST_PROGRAM_SELECT( TARGET \
+ target: "bg"; \
+ ) \
+ LIST_PROGRAM_SOUND \
+ }
+
+#define PARAM_TEXT(STYLE)\
+ text { \
+ min: 0 1; \
+ style: STYLE; \
+ }
+
+
+#define GENLIST_PROLOG \
+ data.item: "stacking" "above"; \
+ data.item: "selectraise" "on"; \
+ data.item: "treesize" 0;
+
+#define GENLIST_PROLOG_NORMAL \
+ GENLIST_PROLOG \
+ data.item: "treesize" GENLIST_TREESIZE_DEFAULT; \
+ data.item: "flips" "elm.flip.icon elm.flip.content"; \
+ images { \
+ image : BG_IMG_PATH"/00_list_group_bg.png" COMP; \
+ image : BG_IMG_PATH"/00_list_group_bg_press.png" COMP; \
+ image : BG_IMG_PATH"/00_focus.png" COMP; \
+ }
+
+#define GENLIST_PART_BASE_SIZE(HEIGHT) \
+ part { name: "base"; \
+ type: RECT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ min: 0 HEIGHT; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default"; \
+ } \
+ } \
+ part { name: "state"; \
+ type: RECT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default"; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default"; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default"; \
+ } \
+ }
+
+#define GENLIST_PART_BASE \
+ GENLIST_PART_BASE_SIZE(0)
+
+#define GENLIST_PART_SPACER(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ mouse_events: 0; \
+ type: SPACER; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_RECT(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: RECT; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: IMAGE; \
+ DESCRIPION \
+ }
+
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 1 0; \
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ rel2 {\
+ relative: 0 1;\
+ to_x: right;\
+ to_y: "base"; \
+ }\
+ param\
+ }
+
+#define GENLIST_PART_BG_NORMAL \
+ GENLIST_PART_RECT("bg_clip", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bg_reorder_clip", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "reorder_flip" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bg", \
+ clip_to: "bg_clip"; \
+ description { state: "default" 0.0; \
+ color: GENLIST_LIST_BG_COLOR; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_PRESS_COLOR; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color: GENLIST_LIST_DIM_COLOR; \
+ } \
+ ) \
+ GENLIST_PART_SPACER("bg_reorder_left", \
+ description { state: "default" 0.0; \
+ min: 16 0; \
+ max: 16 -1; \
+ fixed: 1 0; \
+ align: 0 0.5; \
+ rel2.relative: 0 1; \
+ } \
+ ) \
+ GENLIST_PART_SPACER("bg_reorder_right", \
+ description { state: "default" 0.0; \
+ min: 16 0; \
+ max: 16 -1; \
+ fixed: 1 0; \
+ align: 1.0 0.5; \
+ rel1.relative: 1 0; \
+ } \
+ ) \
+ GENLIST_PART_IMAGE("bg_reorder", \
+ clip_to: "bg_reorder_clip"; \
+ GENLIST_DESCRIPTION_LR("bg_reorder_left", "bg_reorder_right", \
+ image { \
+ normal: BG_IMG_PATH"/00_list_group_bg.png"; \
+ border: 17 17 8 8; \
+ border_scale: 1; \
+ } \
+ ) \
+ description { state: "selected" 0.0; \
+ inherit: "default"; \
+ image { \
+ normal: BG_IMG_PATH"/00_list_group_bg_press.png"; \
+ border: 17 17 8 8; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default"; \
+ visible: 0; \
+ } \
+ )
+
+#define GENLIST_PART_BOTTOM_LINE \
+ GENLIST_PART_RECT("bottom_line_clip", \
+ description { state: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bottom_line", \
+ mouse_events: 0; \
+ clip_to: "bottom_line_clip"; \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+ max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+ fixed: 0 1; \
+ align: 0.5 1; \
+ color: GENLIST_LIST_LINE1_COLOR; \
+ rel1.to: "bottom_line2"; \
+ rel2.to: "bottom_line2"; \
+ rel2.relative: 1 0; \
+ rel1.offset: -1 -1; \
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bottom_line2", \
+ mouse_events: 0; \
+ clip_to: "bottom_line_clip"; \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+ max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+ fixed: 0 1; \
+ align: 0.5 1; \
+ color: GENLIST_LIST_LINE2_COLOR; \
+ rel1.to_x: "base"; \
+ rel1.relative: 0 0; \
+ rel2.to_x: "base"; \
+ rel2.relative: 1 1; \
+ rel1.offset: -1 -1; \
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ )
+
+#define GENLIST_PART_EXPANDED_PAD \
+ part { name: "elm.swallow.pad"; \
+ type: SWALLOW; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ min: 0 0; \
+ fixed: 1 0; \
+ align: 0.0 0.5; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 0.0 1.0; \
+ } \
+ } \
+
+#define GENLIST_DESCRIPTION_L( left, param ) \
+ description { state: "default" 0.0;\
+ align: 0 0.5; \
+ fixed: 1 0; \
+ rel1 { \
+ relative: 1 0; \
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ rel2 { \
+ relative: 1 1;\
+ to_x: left; \
+ to_y: "base"; \
+ }\
+ param\
+ }
+
+#define GENLIST_DESCRIPTION_DECORATE_PADDING \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 0; \
+ max: 0 0; \
+ }
+
+#define GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 0 0; \
+ max: 0 0; \
+ }
+
+#define GENLIST_DESCRIPTION_REORDER_PADDING \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ min: 32 0; \
+ max: 32 -1; \
+ }
+
+#define GENLIST_PART_PADDING_LEFT \
+ GENLIST_PART_EXPANDED_PAD \
+ GENLIST_PART_SPACER("elm.padding.left", \
+ GENLIST_DESCRIPTION_L("elm.swallow.pad", \
+ min: GENLIST_PADDING_SIZE_LEFT 0; \
+ max: GENLIST_PADDING_SIZE_LEFT -1; \
+ fixed: 1 0; \
+ ) \
+ GENLIST_DESCRIPTION_DECORATE_PADDING \
+ GENLIST_DESCRIPTION_REORDER_PADDING \
+ GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+ )
+
+#define GENLIST_PART_PADDING_RIGHT \
+ GENLIST_PART_SPACER("elm.padding.right", \
+ description { state: "default" 0.0; \
+ min: GENLIST_PADDING_SIZE_RIGHT 0; \
+ max: GENLIST_PADDING_SIZE_RIGHT -1; \
+ fixed: 1 0; \
+ align: 1.0 0.5; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 1 0; \
+ } \
+ GENLIST_DESCRIPTION_DECORATE_PADDING \
+ GENLIST_DESCRIPTION_REORDER_PADDING \
+ GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
+ )
+
+#define GENLIST_PART_PADDING_TOP \
+ GENLIST_PART_SPACER("elm.padding.top", \
+ description { \
+ state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_TOP; \
+ max: -1 GENLIST_PADDING_SIZE_TOP; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel2.relative: 1.0 0.0; \
+ align: 0.5 0.0; \
+ } \
+ )
+
+#define GENLIST_PART_PADDING_BOTTOM \
+ GENLIST_PART_SPACER("elm.padding.bottom", \
+ description { state: "default" 0.0; \
+ min: 0 GENLIST_PADDING_SIZE_BOTTOM; \
+ max: -1 GENLIST_PADDING_SIZE_BOTTOM; \
+ fixed: 0 1; \
+ rel1.to: "base"; \
+ rel2.to: "base"; \
+ rel1.relative: 0.0 1.0; \
+ align: 0.5 1.0; \
+ } \
+ )
+
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 1 1; \
+ to_x: left; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: right;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+#define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: TEXTBLOCK; \
+ repeat_events: 1; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PARAM_LISTITEM_TB \
+ text { \
+ min: 0 1; \
+ style: "genlist_style_list_main_text_unread"; \
+ }
+
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_text_unread_dim"; \
+ } \
+ description { state: "selected" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "genlist_style_list_main_text_focus"; \
+ }
+
+#define GENLIST_PART_LISTITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+ GENLIST_PART_TEXTBLOCK(NAME, \
+ GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+ min: 0 HEIGHT; \
+ max: 9999 HEIGHT; \
+ fixed: 1 0; \
+ GENLIST_PARAM_LISTITEM_TB \
+ PARAM \
+ ) \
+ GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+ )
+
+#define GENLIST_PART_ICON(NAME, DESCRIPION) \
+ part { name: NAME; \
+ scale: 1; \
+ type: SWALLOW; \
+ DESCRIPION \
+ }
+
+#define GENLIST_PART_PADDING_R( NAME, RIGHT ) \
+ GENLIST_PART_SPACER(NAME, \
+ description { state: "default" 0.0; \
+ fixed: 1 0; \
+ min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+ max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+ align: 1 0.5; \
+ rel1 { \
+ relative: 0 0; \
+ to_x: RIGHT; \
+ } \
+ rel2 { \
+ relative: 0 1; \
+ to_x: RIGHT; \
+ } \
+ } \
+ )
+
+#define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \
+ description { state: "default" 0.0;\
+ align: 1 0.5;\
+ rel1 { \
+ relative: 0 1; \
+ to_x: right; \
+ to_y: top; \
+ }\
+ rel2 {\
+ relative: 0 0;\
+ to_x: right;\
+ to_y: bottom;\
+ }\
+ param\
+ }
+
+#define GENLIST_PART_FLIP \
+ GENLIST_PART_RECT("elm.flip.bg", \
+ mouse_events: 0; \
+ description { state: "default" 0.0;\
+ color: 0 0 0 0;\
+ } \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ rel2.offset: 0 -3; \
+ color: GENLIST_LIST_BG_COLOR;\
+ }\
+ ) \
+ GENLIST_PART_SPACER("elm.flip.padding.right", \
+ description { state: "default" 0.0; \
+ min: 26 0; \
+ max: 26 -1; \
+ fixed: 1 0; \
+ align: 1 0.5; \
+ rel1.relative: 1 0; \
+ } \
+ ) \
+ GENLIST_PART_ICON("elm.flip.content", \
+ GENLIST_DESCRIPTION("elm.padding.left", "elm.flip.padding.icon.left", \
+ "elm.padding.top", "elm.padding.bottom", \
+ visible: 0; \
+ aspect: 1 1; \
+ min: 0 96; \
+ ) \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ ) \
+ GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+ GENLIST_PART_ICON( "elm.flip.icon", \
+ GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \
+ "elm.padding.top", "elm.padding.bottom", \
+ visible: 0; \
+ aspect: 1 1; \
+ align: 1 0.5; \
+ max: 158 74; \
+ ) \
+ description { state: "flipped" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ )
+
+#define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \
+ description { state: "default" 0.0;\
+ rel1 { \
+ relative: 0 0; \
+ to: PART; \
+ }\
+ rel2 {\
+ relative: 1 1;\
+ to: PART; \
+ }\
+ PARAM\
+ }
+
+#define GENLIST_PART_FOCUS \
+ GENLIST_PART_IMAGE("focus_part", \
+ mouse_events: 0; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ image { \
+ normal: BG_IMG_PATH"/00_focus.png"; \
+ border: 6 6 6 6; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ ) \
+ GENLIST_PART_ICON("elm.icon.focus", \
+ repeat_events: 1; \
+ GENLIST_DESCRIPTION_ENVELOP("focus_part", \
+ fixed: 1 1; \
+ ) \
+ )
+
+#define GENLIST_PART_FOCUS_REORDER \
+ GENLIST_PART_IMAGE("focus_part_reorder", \
+ mouse_events: 0; \
+ GENLIST_DESCRIPTION_LR("bg_reorder_left", "bg_reorder_right", \
+ visible: 0; \
+ image { \
+ normal: BG_IMG_PATH"/00_focus.png"; \
+ border: 6 6 6 6; \
+ border_scale: 1; \
+ } \
+ ) \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ )
+
+#define GENLIST_PART_FOCUS_NORMAL \
+ GENLIST_PART_FOCUS \
+ GENLIST_PART_FOCUS_REORDER
+
+#define GENLIST_PROGRAM_DEFAULT( TARGET ) \
+ program { name: "default"; \
+ signal: "elm,state,default"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ } \
+
+#define GENLIST_PROGRAM_DISABLED( TARGET ) \
+ program { name: "enabled"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "base"; \
+ TARGET \
+ } \
+ program { name: "disabled"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "base"; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_FOCUS_NORMAL \
+ program { name: "focused"; \
+ signal: "elm,state,focused"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"bg_reorder_clip", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \
+ set_state(PART:"focus_part_reorder", "focused", 0.0); \
+ else \
+ set_state(PART:"focus_part", "focused", 0.0); \
+ } \
+ } \
+ program { name: "unfocused"; \
+ signal: "elm,state,unfocused"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_part_reorder"; \
+ target: "focus_part"; \
+ }
+
+#define GENLIST_PROGRAM_SELECT( TARGET ) \
+ program { name: "selected"; \
+ signal: "elm,state,selected"; \
+ source: "elm"; \
+ action: STATE_SET "selected" 0.0; \
+ TARGET \
+ } \
+ program { name: "unselected"; \
+ signal: "elm,state,unselected"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_SOUND( SRC ) \
+ program { \
+ name: "sound_disable"SRC; \
+ signal: "elm,state,slide,active"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "base"; \
+ } \
+ program { \
+ name: "sound_enable"SRC; \
+ signal: "elm,state,slide,passive"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "base"; \
+ } \
+ program { name: "play_sound"SRC; \
+ signal: "mouse,clicked,1"; \
+ source: SRC; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"base", st, 30, vl); \
+ if (strcmp(st, "disabled")) \
+ play_sample("touch_sound", 1.0); \
+ } \
+ }
+
+#define GENLIST_PROGRAM_REORDER_SOUND( SRC ) \
+ program { name: "play_sound"SRC; \
+ signal: "mouse,clicked,1"; \
+ source: SRC; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"base", st, 30, vl); \
+ if (strcmp(st, "disabled")) \
+ run_program(PROGRAM:"play_button_press"SRC); \
+ } \
+ } \
+ program { name: "play_button_press"SRC; \
+ action: PLAY_SAMPLE "reorder_sound" 1.0; \
+ }
+
+#define GENLIST_PROGRAM_DECORATE_REORDER( NAME, TARGET ) \
+ program { name: "reorder_enabled"NAME; \
+ signal: "elm,state,reorder,mode_set"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"reorder_set"NAME); \
+ } \
+ } \
+ } \
+ program { name: "reorder_disabled"NAME; \
+ signal: "elm,state,reorder,mode_unset"; \
+ source: "elm"; \
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "decorate") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"default_set"NAME); \
+ } \
+ } \
+ } \
+ program { name: "decorate_enabled_effect"NAME; \
+ signal: "elm,state,decorate,enabled,effect";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"decorate_set"NAME); \
+ } \
+ } \
+ }\
+ program { name: "decorate_disabled_effect"NAME;\
+ signal: "elm,state,decorate,disabled,effect";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"default_set"NAME); \
+ } \
+ } \
+ }\
+ program { name: "decorate_enabled"NAME;\
+ signal: "elm,state,decorate,enabled";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"decorate_reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"decorate_set"NAME); \
+ } \
+ } \
+ }\
+ program { name: "decorate_disabled"NAME;\
+ signal: "elm,state,decorate,disabled";\
+ source: "elm";\
+ script { \
+ new st[31]; \
+ new Float:vl; \
+ get_state(PART:"state", st, 30, vl); \
+ if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) { \
+ run_program(PROGRAM:"reorder_set"NAME); \
+ } else { \
+ run_program(PROGRAM:"default_set"NAME); \
+ } \
+ } \
+ } \
+ program { name: "default_set"NAME; \
+ action: STATE_SET "default" 0.0;\
+ target: "state"; \
+ TARGET \
+ } \
+ program { name: "decorate_set"NAME; \
+ action: STATE_SET "decorate" 0.0;\
+ target: "state"; \
+ TARGET \
+ } \
+ program { name: "reorder_set"NAME; \
+ action: STATE_SET "reorder" 0.0;\
+ target: "state"; \
+ TARGET \
+ } \
+ program { name: "decorate_reorder_set"NAME; \
+ action: STATE_SET "decorate_reorder" 0.0;\
+ target: "state"; \
+ TARGET \
+ }
+
+#define GENLIST_PROGRAM_FLIP \
+ program { name: "flip_enabled"; \
+ signal: "elm,state,flip,enabled"; \
+ source: "elm"; \
+ transition: DECELERATE 0.5; \
+ action: STATE_SET "flipped" 0.0; \
+ target: "elm.flip.content"; \
+ target: "elm.flip.icon"; \
+ } \
+ program { name: "flip_disabled"; \
+ signal: "elm,state,flip,disabled"; \
+ source: "elm"; \
+ transition: DECELERATE 0.5; \
+ action: STATE_SET "default" 0.0; \
+ target: "elm.flip.content"; \
+ target: "elm.flip.icon"; \
+ } \
+ program { name: "flip_enabled_bg"; \
+ signal: "elm,state,flip,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "flipped" 0.0; \
+ target: "elm.flip.bg"; \
+ } \
+ program { name: "flip_disabled_bg"; \
+ signal: "elm,state,flip,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "elm.flip.bg"; \
+ }
+
+#define GENLIST_PROGRAMS_NORMAL( TARGET ) \
+ programs { \
+ GENLIST_PROGRAM_DEFAULT( TARGET \
+ target: "base"; \
+ target: "bg"; \
+ target: "bg_clip"; \
+ target: "bottom_line"; \
+ target: "bottom_line2"; \
+ target: "bottom_line_clip"; \
+ target: "bg_reorder"; \
+ target: "elm.padding.left"; \
+ target: "elm.padding.right"; \
+ ) \
+ GENLIST_PROGRAM_DISABLED( TARGET \
+ target: "bg"; \
+ target: "bg_reorder"; \
+ ) \
+ GENLIST_PROGRAM_FOCUS_NORMAL \
+ GENLIST_PROGRAM_SELECT( TARGET \
+ target: "bg"; \
+ target: "bg_reorder"; \
+ ) \
+ GENLIST_PROGRAM_SOUND("bg") \
+ GENLIST_PROGRAM_REORDER_SOUND("bg_reorder") \
+ GENLIST_PROGRAM_DECORATE_REORDER("normal", TARGET \
+ target: "bg_clip"; \
+ target: "bg_reorder_clip"; \
+ target: "bottom_line_clip"; \
+ target: "elm.padding.left"; \
+ target: "elm.padding.right"; \
+ ) \
+ GENLIST_PROGRAM_FLIP \
+ }
+
+#define STYLE_TAG \
+ tag: "br" "\n";\
+ tag: "ps" "ps";\
+ tag: "tab" "\t";\
+ tag: "b" "+ font=Tizen:style=Regular";
+
+#define STYLE_TAG_MATCH \
+ tag: "match" GENLIST_PART_MATCH_TAG_COLOR;
+
+#define GENLIST_POPUP_STYLE(NAME) \
+ group { \
+ GENLIST_NAME(NAME"/popup/default") \
+ inherit: "elm/genlist/item/"NAME"/default"; \
+ parts { \
+ GENLIST_PART_RECT("bg", \
+ description { state: "default" 0.0; \
+ color: GENLIST_LIST_BG_POPUP_COLOR; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bottom_line", \
+ description { state: "default" 0.0; \
+ color: GENLIST_LIST_LINE1_POPUP_COLOR; \
+ } \
+ ) \
+ GENLIST_PART_RECT("bottom_line2", \
+ description { state: "default" 0.0; \
+ color: GENLIST_LIST_LINE2_POPUP_COLOR; \
+ } \
+ ) \
+ } \
+ }
+
+#define GENLIST_NAME(NAME) \
+ name: "elm/genlist/item/"NAME; \
+
+#define GENLIST_INHERIT_THUMB_CIRCLE(PARENT) \
+ images { \
+ image: BG_IMG_PATH/"00_list_circle_thumbnail_bg.png" COMP; \
+ } \
+ PART(RECT, "elm.thumb.clip", \
+ description { state: "default"; \
+ } \
+ description { state: "flipped"; \
+ color: 0 0 0 0; \
+ } \
+ ) \
+ PART(IMAGE, "elm.thumb", \
+ insert_before: "focus_part"; \
+ clip_to: "elm.thumb.clip"; \
+ mouse_events: 0; \
+ DSC_TO("default", PARENT, \
+ image.normal: BG_IMG_PATH"/00_list_circle_thumbnail_bg.png"; \
+ fixed:1 1; \
+ color_class: "B0211"; \
+ ) \
+ description { state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "B0211P"; \
+ } \
+ description { state: "reorder" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "B0217L1"; \
+ } \
+ description { state: "reorder_selected" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "B0211P"; \
+ } \
+ description { state: "decorate" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "decorate_reorder" 0.0; \
+ inherit: "reorder" 0.0; \
+ } \
+ ) \
+
+collections {
+ base_scale: 1.8;
+
+ sounds {
+ sample {
+ name: "touch_sound" RAW;
+ source: "Tizen_Touch.wav";
+ }
+ sample {
+ name: "reorder_sound" RAW;
+ source: "List_reorder.wav";
+ }
+ }
+
+ styles {
+ style { name: "genlist_style_list_main_text_unread";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" text_class=list_item wrap=word";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_text_unread_dim";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE" text_class=list_item wrap=word";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "genlist_style_list_main_text_focus";
+ base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE" text_class=list_item wrap=word";
+ STYLE_TAG
+ STYLE_TAG_MATCH
+ }
+ style { name: "list_text_main";
+ base: "font=Tizen:style=Regular font_size="LIST_TEXT_MAIN_SIZE" color=#000 ellipsis=1.0";
+ STYLE_TAGS
+ }
+ }
+
+ group {
+ GENLIST_NAME("1text_customized/default")
+ GENLIST_PROLOG_NORMAL
+
+ data.item: "texts" "elm.text";
+
+ parts {
+ GENLIST_PART_BASE
+ GENLIST_PART_BG_NORMAL
+ GENLIST_PART_BOTTOM_LINE
+ GENLIST_PART_PADDING_LEFT
+ GENLIST_PART_PADDING_RIGHT
+ GENLIST_PART_PADDING_TOP
+ GENLIST_PART_PADDING_BOTTOM
+
+ GENLIST_PART_LISTITEM_TB_("elm.text", GENLIST_HEIGHT_1LINE,
+ "elm.padding.left", "elm.padding.right",
+ "elm.padding.top", "elm.padding.bottom",
+ )
+
+ GENLIST_PART_FLIP
+ GENLIST_PART_FOCUS_NORMAL
+ }
+ GENLIST_PROGRAMS_NORMAL( target: "elm.text"; )
+ }/*End of 1text_customized group*/
+
+ GENLIST_POPUP_STYLE("1text_customized")
+}/*End of collections*/
+////////////Second Incoming Call Popup genlist Item customization end/////////
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "../../include/callui-view-layout-wvga.h"
+#include "../callui-color-classes.h"
+
+#define BG_IMG_PATH "./bg"
+#define ICON_IMG_PATH "./icon"
+
+/////VOLUMEBAR-CUSTOMIZATION START//////
+#define PROGRESS_BG_IMAGE_BORDER_INC 17 17 0 0
+#define PROGRESS_BAR_IMAGE_BORDER_INC 17 17 0 0
+#define PROGRESS_BAR_IMAGE_PADDING_SIZE_INC 0 0
+
+#define SLIDER_UNITS_TEXT_COLOR_INC 0 0 0 255
+#define SLIDER_INDICATOR_TEXT_COLOR_INC 255 255 255 255
+#define SLIDER_INDICATOR_TEXT_PRESSED_COLOR_INC 255 255 255 255
+
+#define SLIDER_BASE_MIN_WIDTH_INC 375
+#define SLIDER_BASE_HEIGHT_INC 34
+#define SLIDER_SWALLOW_BAR_MIN_WIDTH_INC 72
+#define SLIDER_SWALLOW_BAR_HEIGHT_INC 74
+#define SLIDER_UNITS_TEXT_SIZE_INC 30
+#define SLIDER_INDICATOR_WIDTH_INC 48
+#define SLIDER_INDICATOR_HEIGHT_INC 72
+#define SLIDER_INDICATOR_MAX_WIDTH_INC 90
+#define SLIDER_INDICATOR_TEXT_SIZE_INC 40
+#define SLIDER_INDICATOR_IMAGE_PADDING_SIZE_INC 12 0
+#define SLIDER_INDICATOR_POPUP_HEIGHT_INC 108
+/////VOLUMEBAR-CUSTOMIZATION END//////
+
+#define BUTTON_LEFT_REL1 0.25 0.1
+#define BUTTON_LEFT_REL2 0.9 0.9
+#define BUTTON_RIGHT_REL1 0.1 0.1
+#define BUTTON_RIGHT_REL2 0.75 0.9
+#define BUTTON_CENTER_REL1 0.1 0.1
+#define BUTTON_CENTER_REL2 0.9 0.9
+#define FOCUS_BORDER 8 8 8 8
+
+#define BUTTON_BOTTOM_MIN_HEIGHT 74
+#define BUTTON_MIN_WIDTH 142
+#define BUTTON_MAX_WIDTH 450
+#define BUTTON_BOTTOM_PADDING_LEFT_RIGHT 8
+#define BUTTON_ICON_HEIGHT 64
+#define BUTTON_ICON_WIDTH 64
+#define BUTTON_BOTTOM_TEXT_SIZE 33
+
+#define BUTTON_BOTTOM_ICON_SIZE 104
+#define BUTTON_BOTTOM_ICON_OFFSET 16
+#define BUTTON_BOTTOM_ICON_OFFSET_L (BUTTON_BOTTOM_ICON_OFFSET/BUTTON_BOTTOM_ICON_SIZE)
+#define BUTTON_BOTTOM_ICON_OFFSET_R ((BUTTON_BOTTOM_ICON_SIZE - BUTTON_BOTTOM_ICON_OFFSET)/BUTTON_BOTTOM_ICON_SIZE)
+
+#define STYLE_CALL_HOLD_SWAP_BTN(grp_name, img1, img2, style_name, disabled_name) \
+ group { \
+ name: "elm/button/base/"grp_name; \
+ images { \
+ image: img1 COMP; \
+ image: img2 COMP; \
+ } \
+ data.item: "item_max_size" 244; \
+ script { \
+ public button_state = 0; \
+ } \
+ parts { \
+ part { \
+ name: "event_blocker"; \
+ type: RECT; \
+ mouse_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ min: 244 41; \
+ max: 244 41; \
+ fixed: 1 1; \
+ align: 0 0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ part { \
+ name: "seperator_1"; \
+ type: RECT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ min: 3 35; \
+ max: 3 35; \
+ align: 0 0.5; \
+ fixed: 1 1; \
+ visible: 1; \
+ color: 97 98 100 255; \
+ } \
+ } \
+ part { \
+ name: "seperator_2"; \
+ type: RECT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ min: 3 35; \
+ max: 3 35; \
+ align: 1 0.5; \
+ fixed: 1 1; \
+ visible: 1; \
+ color: 97 98 100 255; \
+ } \
+ } \
+ part { \
+ name: "icon_left_padding"; \
+ type: SPACER; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ min: 25 41; \
+ max: 25 41; \
+ align: 0 0.5; \
+ rel1 { relative: 1.0 0.0; to_x:"seperator_1"; to_y: "event_blocker";} \
+ rel2 { relative: 1.0 1.0; to_x:"seperator_1"; to_y: "event_blocker";} \
+ fixed: 1 1; \
+ } \
+ } \
+ part { \
+ name: "elm.swallow.content"; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ min: 30 30; \
+ max: 30 30; \
+ align: 0 0; \
+ aspect: 1.0 1.0; \
+ fixed: 1 1; \
+ rel1 { relative: 1.0 0.15; to_x:"icon_left_padding"; to_y: "event_blocker";} \
+ rel2 { relative: 1.0 1.0; to_x:"icon_left_padding"; to_y: "event_blocker";} \
+ image { \
+ normal: img1; \
+ } \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ image { \
+ normal: img2; \
+ } \
+ } \
+ } \
+ part { \
+ name: "icon_right_padding"; \
+ type: SPACER; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ min: 6 41; \
+ max: 6 41; \
+ align: 0 0.5; \
+ fixed: 1 1; \
+ rel1 { relative: 1.0 0.0; to_x:"elm.swallow.content"; to_y: "event_blocker"; } \
+ rel2 { relative: 1.0 1.0; to_x:"elm.swallow.content"; to_y: "event_blocker"; } \
+ } \
+ } \
+ part { \
+ name: "elm.text"; \
+ type: TEXTBLOCK; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { \
+ state: "default" 0.0; \
+ min: 149 41; \
+ max: 149 41; \
+ align: 0 0; \
+ fixed: 1 1; \
+ rel1 {relative: 1.0 0.1; to_x: "icon_right_padding"; to_y: "event_blocker"; } \
+ rel2 {relative: 1.0 1.0; to_x: "icon_right_padding"; to_y: "event_blocker"; } \
+ text { \
+ min: 1 1; \
+ style: style_name; \
+ } \
+ visible:1; \
+ } \
+ description { \
+ state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ text { \
+ style: disabled_name; \
+ } \
+ } \
+ description { \
+ state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text { \
+ style: disabled_name; \
+ } \
+ } \
+ description { \
+ state: "ellipsis" 0.0; \
+ inherit: "default" 0.0; \
+ min: 149 41; \
+ text.min: 0 1; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ part { \
+ name: "text_right_padding"; \
+ type: SPACER; \
+ scale: 1; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ min: 19 41; \
+ max: 19 41; \
+ fixed: 1 1; \
+ rel1 {relative: 1.0 0.0; to: "elm.text"; } \
+ rel2 {relative: 1.0 1.0; to: "event_blocker"; } \
+ fixed: 0 1; \
+ align: 0 0.5; \
+ } \
+ } \
+ part { name: "over2"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ part { name: "over3"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ part { name: "disabler"; \
+ type: RECT; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ } \
+ programs { \
+ program { name: "button_click"; \
+ signal: "mouse,down,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_click_anim"; \
+ action: STATE_SET "clicked" 0.0; \
+ target: "elm.text"; \
+ target: "elm.swallow.content"; \
+ } \
+ program { name: "button_double_click"; \
+ signal: "mouse,down,1,double"; \
+ source: "over2"; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_unpress"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { name: "button_mouseout_clicked"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ script { \
+ if (get_int(button_state) != 1) \
+ set_state(PART:"elm.text", "default", 0.0); \
+ set_state(PART:"elm.swallow.content", "default", 0.0); \
+ } \
+ after: button_unpress; \
+ } \
+ program { name: "touch_snd"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: RUN_PLUGIN "touch_sound"; \
+ after: button_unclick3; \
+ } \
+ program { name: "button_unclick3"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { name: "disable"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "elm.text"; \
+ target: "elm.swallow.content"; \
+ target: "disabler"; \
+ } \
+ program { name: "enable"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "elm.text"; \
+ target: "elm.swallow.content"; \
+ target: "disabler"; \
+ } \
+ program { name: "icon_show"; \
+ signal: "elm,state,icon,visible"; \
+ source: "elm"; \
+ action: STATE_SET "visible" 0.0; \
+ target: "elm.swallow.content"; \
+ } \
+ program { name: "icon_hide"; \
+ signal: "elm,state,icon,hidden"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "elm.swallow.content"; \
+ } \
+ program { name: "action_focus"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "elm.text"; \
+ } \
+ program { name: "action_unfocus"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "elm.text"; \
+ } \
+ } \
+ }
+
+#define STYLE_INDICATOR_BG_COLOR(grp_name, r, g, b, op) \
+ group { \
+ name: "elm/bg/base/"grp_name; \
+ parts { \
+ part { name: "base"; \
+ type: RECT; \
+ description { \
+ state: "default" 0.0; \
+ color: r g b op; \
+ } \
+ } \
+ } \
+ }
+
+#define CIRCLE_BUTTON_STYLE(grp_name, bg_img, bg_press, img, img_press, img_w, img_h) \
+ group { name: "elm/button/base/"grp_name; \
+ data { \
+ item: "focus_highlight" "on"; \
+ } \
+ images { \
+ image: bg_img COMP; \
+ image: bg_press COMP; \
+ image: img COMP; \
+ image: img_press COMP; \
+ }\
+ script { \
+ public button_state = 0; \
+ } \
+ parts { \
+ part { name: "button_image";\
+ type: IMAGE; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ min: 40 40; \
+ image { \
+ normal: bg_img; \
+ border: 0 0 0 0; \
+ border_scale: 1; \
+ } \
+ color_class: "AO023"; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ image.normal: bg_press; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ image.normal: bg_img; \
+ } \
+ } \
+ part { name: "focus_image"; \
+ scale: 1; \
+ mouse_events: 0; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ rel1.to : "button_image"; \
+ rel2.to : "button_image"; \
+ image { \
+ normal: bg_img; \
+ border: 0 0 0 0; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ part { name: "padding_left_top"; \
+ type: SPACER; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ align: 0.0 0.0; \
+ rel2.relative: 0.0 0.0; \
+ min: 0 0; \
+ fixed: 1 1; \
+ } \
+ } \
+ part { name: "padding_right_bottom"; \
+ type: SPACER; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ align: 1.0 1.0; \
+ rel1.relative: 1.0 1.0; \
+ min: 0 0; \
+ fixed: 1 1; \
+ } \
+ } \
+ part { name: "content_image"; \
+ type: IMAGE; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ min: img_w img_h; \
+ max: img_w img_h; \
+ rel1 { \
+ relative: 1.0 0.0; \
+ to_x: "padding_left_top"; \
+ } \
+ rel2 { \
+ relative: 0.0 1.0; \
+ to_x: "padding_right_bottom"; \
+ } \
+ image.normal: img; \
+ color_class: "AO024"; \
+ aspect: 1.0 1.0; \
+ aspect_preference: VERTICAL; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ image.normal: img_press; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ image.normal: img; \
+ } \
+ } \
+ part { name: "over2"; \
+ type: RECT; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ part { name: "over3"; \
+ type: RECT; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ part { name: "disabler"; \
+ type: RECT; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ } \
+ programs { \
+ program { name: "button_click"; \
+ signal: "mouse,down,1"; \
+ source: "over3"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_click_anim"; \
+ action: STATE_SET "clicked" 0.0; \
+ target: "button_image"; \
+ target: "content_image"; \
+ } \
+ program { name: "button_double_click"; \
+ signal: "mouse,down,1,double"; \
+ source: "over3"; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_unpress"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { name: "button_mouseout_clicked"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ script { \
+ if (get_int(button_state) != 1) \
+ set_state(PART:"button_image", "default", 0.0); \
+ set_state(PART:"content_image", "default", 0.0); \
+ } \
+ after: button_unpress; \
+ } \
+ program { name: "touch_snd"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: RUN_PLUGIN "touch_sound"; \
+ after: button_unclick3; \
+ } \
+ program { name: "button_unclick3"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { name: "disable"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "button_image"; \
+ target: "content_image"; \
+ target: "disabler"; \
+ } \
+ program { name: "enable"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "content_image"; \
+ target: "disabler"; \
+ } \
+ program { name: "action_focus"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "focus_image"; \
+ } \
+ program { name: "action_unfocus"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_image"; \
+ } \
+ } \
+ }
+
+#define CIRCLE_BUTTON_WITHOUT_BG_STYLE(grp_name, img, img_press, img_w, img_h) \
+ group { name: "elm/button/base/"grp_name; \
+ images { \
+ image: img COMP; \
+ image: img_press COMP; \
+ }\
+ script { \
+ public button_state = 0; \
+ } \
+ parts { \
+ part { name: "padding_left_top"; \
+ type: SPACER; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ align: 0.0 0.0; \
+ rel2.relative: 0.0 0.0; \
+ min: 0 0; \
+ fixed: 1 1; \
+ } \
+ } \
+ part { name: "padding_right_bottom"; \
+ type: SPACER; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ align: 1.0 1.0; \
+ rel1.relative: 1.0 1.0; \
+ min: 0 0; \
+ fixed: 1 1; \
+ } \
+ } \
+ part { name: "content_image"; \
+ type: IMAGE; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ min: img_w img_h; \
+ max: img_w img_h; \
+ rel1 { \
+ relative: 1.0 0.0; \
+ to_x: "padding_left_top"; \
+ } \
+ rel2 { \
+ relative: 0.0 1.0; \
+ to_x: "padding_right_bottom"; \
+ } \
+ image.normal: img; \
+ aspect: 1.0 1.0; \
+ aspect_preference: VERTICAL; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ image.normal: img_press; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ image.normal: img; \
+ } \
+ } \
+ part { name: "over2"; \
+ type: RECT; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ part { name: "over3"; \
+ type: RECT; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ part { name: "disabler"; \
+ type: RECT; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ } \
+ programs { \
+ program { name: "button_click"; \
+ signal: "mouse,down,1"; \
+ source: "over3"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_click_anim"; \
+ action: STATE_SET "clicked" 0.0; \
+ target: "content_image"; \
+ } \
+ program { name: "button_double_click"; \
+ signal: "mouse,down,1,double"; \
+ source: "over3"; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_unpress"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { name: "button_mouseout_clicked"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ script { \
+ if (get_int(button_state) != 1) \
+ set_state(PART:"content_image", "default", 0.0); \
+ } \
+ after: button_unpress; \
+ } \
+ program { name: "touch_snd"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: RUN_PLUGIN "touch_sound"; \
+ after: button_unclick3; \
+ } \
+ program { name: "button_unclick3"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { name: "disable"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "content_image"; \
+ target: "disabler"; \
+ } \
+ program { name: "enable"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "content_image"; \
+ target: "disabler"; \
+ } \
+ } \
+ }
+
+#define STYLE_CALL_SIX_BUTTON(grp_name, img1, color_code, value, vis_value) \
+ group { name: "elm/button/base/"grp_name; \
+ images { \
+ image: img1 COMP; \
+ } \
+ script { \
+ public button_state = 0; \
+ } \
+ parts { \
+ part { name: "button_image"; \
+ type: RECT; \
+ mouse_events: value; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ color_class: color_code; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ } \
+ part { name: "highlight"; \
+ type: RECT; \
+ mouse_events: value; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "clicked" 0.0; \
+ visible: 1; \
+ color_class: "AO008P"; \
+ } \
+ } \
+ part { name: "content_image"; \
+ description { state: "default" 0.0; \
+ visible: vis_value; \
+ image { \
+ normal: img1; \
+ } \
+ align: 0.5 0.5; \
+ aspect: 0.5 1.0; \
+ rel1.relative: 0.0 (STYLE_ICN_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ rel2.relative: 1.0 (STYLE_ICN_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ aspect_preference: VERTICAL; \
+ color_class: "AO009";\
+ visible: 1; \
+ } \
+ } \
+ part { name: "elm.text"; \
+ type: TEXT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ fixed: 1 1; \
+ rel1.relative: (STYLE_TXT_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ rel2.relative: (STYLE_TXT_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ min: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \
+ max: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \
+ color_class: "ATO005"; \
+ text { \
+ text_class: "ATO005"; \
+ min: 0 1; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { state: "visible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text { \
+ text_class: "ATO006"; \
+ } \
+ } \
+ description { state: "disabled_visible" 0.0; \
+ inherit: "default" 0.0; \
+ text { \
+ text_class: "ATO006"; \
+ } \
+ visible: 1; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ part { name: "over2"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0.25 0.1; } \
+ rel2 { relative: 0.75 0.9; } \
+ } \
+ } \
+ part { name: "over3"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0.25 0.1; } \
+ rel2 { relative: 0.75 0.9; } \
+ } \
+ } \
+ part { name: "disabler"; \
+ type: RECT; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ } \
+ programs { \
+ program { name: "button_click"; \
+ signal: "mouse,down,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_click_anim"; \
+ action: STATE_SET "clicked" 0.0; \
+ target: "highlight"; \
+ target: "elm.text"; \
+ } \
+ program { name: "button_double_click"; \
+ signal: "mouse,down,1,double"; \
+ source: "over2"; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_unpress"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { name: "button_mouseout_clicked"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ script { \
+ if (get_int(button_state) != 1) \
+ set_state(PART:"highlight", "default", 0.0); \
+ set_state(PART:"elm.text", "default", 0.0); \
+ } \
+ after: button_unpress; \
+ } \
+ program { name: "touch_snd"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: RUN_PLUGIN "touch_sound"; \
+ after: button_unclick3; \
+ } \
+ program { name: "button_unclick3"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { name: "disable"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "enable"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "action_focus"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ program { name: "action_unfocus"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ } \
+ }
+
+#define STYLE_CALL_SIX_BUTTON_DISABLED(grp_name, img1, color_code, value, vis_value) \
+ group { name: "elm/button/base/"grp_name; \
+ images { \
+ image: img1 COMP; \
+ } \
+ script { \
+ public button_state = 0; \
+ } \
+ parts { \
+ part { name: "button_image"; \
+ type: RECT; \
+ mouse_events: value; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ color_class: color_code; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: color_code; \
+ visible: 1; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ } \
+ part { name: "content_image"; \
+ description { state: "default" 0.0; \
+ visible: vis_value; \
+ image { \
+ normal: img1; \
+ } \
+ align: 0.5 0.5; \
+ aspect: 0.5 1.0; \
+ rel1.relative: 0.0 (STYLE_ICN_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ rel2.relative: 1.0 (STYLE_ICN_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ aspect_preference: VERTICAL; \
+ color: 127 127 127 77; \
+ visible: 1; \
+ } \
+ } \
+ part { name: "elm.text"; \
+ type: TEXT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ fixed: 1 1; \
+ rel1.relative: (STYLE_TXT_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ rel2.relative: (STYLE_TXT_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ min: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \
+ max: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \
+ color: 127 127 127 77; \
+ text { \
+ text_class: "ATO006"; \
+ min: 0 1; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { state: "visible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "disabled_visible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ part { name: "over2"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0.25 0.1; } \
+ rel2 { relative: 0.75 0.9; } \
+ } \
+ } \
+ part { name: "over3"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0.25 0.1; } \
+ rel2 { relative: 0.75 0.9; } \
+ } \
+ } \
+ part { name: "disabler"; \
+ type: RECT; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ } \
+ programs { \
+ program { name: "button_click"; \
+ signal: "mouse,down,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_click_anim"; \
+ action: STATE_SET "clicked" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ program { name: "button_double_click"; \
+ signal: "mouse,down,1,double"; \
+ source: "over2"; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_unpress"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { name: "button_mouseout_clicked"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ script { \
+ if (get_int(button_state) != 1) \
+ set_state(PART:"button_image", "default", 0.0); \
+ set_state(PART:"elm.text", "default", 0.0); \
+ } \
+ after: button_unpress; \
+ } \
+ program { name: "touch_snd"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: RUN_PLUGIN "touch_sound"; \
+ after: button_unclick3; \
+ } \
+ program { name: "button_unclick3"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { name: "disable"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "enable"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "action_focus"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ program { name: "action_unfocus"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ } \
+ }
+
+#define STYLE_CALL_SIX_BUTTON_TOGGLE(grp_name, img1, color_code, value, vis_value) \
+ group { name: "elm/button/base/"grp_name; \
+ images { \
+ image: img1 COMP; \
+ image: ICON_IMG_PATH"/call_onoff_bar.#.png" COMP; \
+ } \
+ script { \
+ public button_state = 0; \
+ } \
+ parts { \
+ part { name: "button_image"; \
+ type: RECT; \
+ mouse_events: value; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ color_class: color_code; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ } \
+ part { name: "highlight"; \
+ type: RECT; \
+ mouse_events: value; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "clicked" 0.0; \
+ visible: 1; \
+ color_class: "AO008P"; \
+ } \
+ } \
+ part { name: "content_image"; \
+ description { state: "default" 0.0; \
+ visible: vis_value; \
+ image { \
+ normal: img1; \
+ } \
+ align: 0.5 0.5; \
+ aspect: 0.5 1.0; \
+ rel1.relative: 0.0 (STYLE_ICN_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ rel2.relative: 1.0 (STYLE_ICN_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ aspect_preference: VERTICAL; \
+ color_class: "AO009";\
+ visible: 1; \
+ } \
+ } \
+ part { name: "elm.text"; \
+ type: TEXT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ fixed: 1 1; \
+ rel1.relative: (STYLE_TXT_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ rel2.relative: (STYLE_TXT_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ min: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \
+ max: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \
+ color_class: "ATO005"; \
+ text { \
+ text_class: "ATO005"; \
+ min: 0 1; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { state: "visible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text { \
+ text_class: "ATO006"; \
+ } \
+ } \
+ description { state: "disabled_visible" 0.0; \
+ inherit: "default" 0.0; \
+ text { \
+ text_class: "ATO006"; \
+ } \
+ visible: 1; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ part { name: "toggle_bar_image"; \
+ description { state: "default" 0.0; \
+ visible: vis_value; \
+ image { \
+ normal: ICON_IMG_PATH"/call_onoff_bar.#.png"; \
+ } \
+ align: 0.5 0.5; \
+ rel1.relative: (STYLE_ONOFF_BAR_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_ONOFF_BAR_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ rel2.relative: (STYLE_ONOFF_BAR_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_ONOFF_BAR_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ color_class: "AO100L1";\
+ visible: 1; \
+ } \
+ } \
+ part { name: "over2"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0.25 0.1; } \
+ rel2 { relative: 0.75 0.9; } \
+ } \
+ } \
+ part { name: "over3"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0.25 0.1; } \
+ rel2 { relative: 0.75 0.9; } \
+ } \
+ } \
+ part { name: "disabler"; \
+ type: RECT; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ } \
+ programs { \
+ program { name: "button_click"; \
+ signal: "mouse,down,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_click_anim"; \
+ action: STATE_SET "clicked" 0.0; \
+ target: "highlight"; \
+ target: "elm.text"; \
+ } \
+ program { name: "button_double_click"; \
+ signal: "mouse,down,1,double"; \
+ source: "over2"; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_unpress"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { name: "button_mouseout_clicked"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ script { \
+ if (get_int(button_state) != 1) \
+ set_state(PART:"highlight", "default", 0.0); \
+ set_state(PART:"elm.text", "default", 0.0); \
+ } \
+ after: button_unpress; \
+ } \
+ program { name: "touch_snd"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: RUN_PLUGIN "touch_sound"; \
+ after: button_unclick3; \
+ } \
+ program { name: "button_unclick3"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { name: "disable"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "enable"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "action_focus"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ program { name: "action_unfocus"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ } \
+ }
+
+#define STYLE_CALL_SIX_BUTTON_TOGGLE_PRESSED(grp_name, img1, color_code, value, vis_value) \
+ group { name: "elm/button/base/"grp_name; \
+ images { \
+ image: img1 COMP; \
+ image: ICON_IMG_PATH"/call_onoff_bar.#.png" COMP; \
+ } \
+ script { \
+ public button_state = 0; \
+ } \
+ parts { \
+ part { name: "button_image"; \
+ type: RECT; \
+ mouse_events: value; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ color_class: color_code; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ } \
+ part { name: "highlight"; \
+ type: RECT; \
+ mouse_events: value; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "clicked" 0.0; \
+ visible: 1; \
+ color_class: "AO008P"; \
+ } \
+ } \
+ part { name: "content_image"; \
+ description { state: "default" 0.0; \
+ visible: vis_value; \
+ image { \
+ normal: img1; \
+ } \
+ align: 0.5 0.5; \
+ aspect: 0.5 1.0; \
+ rel1.relative: 0.0 (STYLE_ICN_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ rel2.relative: 1.0 (STYLE_ICN_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ aspect_preference: VERTICAL; \
+ color_class: "AO016";\
+ visible: 1; \
+ } \
+ } \
+ part { name: "elm.text"; \
+ type: TEXT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ fixed: 1 1; \
+ rel1.relative: (STYLE_TXT_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ rel2.relative: (STYLE_TXT_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ min: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \
+ max: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \
+ color_class: "AO016"; \
+ text { \
+ text_class: "ATO005"; \
+ min: 0 1; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { state: "visible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ text { \
+ text_class: "ATO006"; \
+ } \
+ } \
+ description { state: "disabled_visible" 0.0; \
+ inherit: "default" 0.0; \
+ text { \
+ text_class: "ATO006"; \
+ } \
+ visible: 1; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ part { name: "toggle_bar_image"; \
+ description { state: "default" 0.0; \
+ visible: vis_value; \
+ image { \
+ normal: ICON_IMG_PATH"/call_onoff_bar.#.png"; \
+ } \
+ align: 0.5 0.5; \
+ rel1.relative: (STYLE_ONOFF_BAR_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_ONOFF_BAR_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ rel2.relative: (STYLE_ONOFF_BAR_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_ONOFF_BAR_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ color_class: "AO100";\
+ visible: 1; \
+ } \
+ } \
+ part { name: "over2"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0.25 0.1; } \
+ rel2 { relative: 0.75 0.9; } \
+ } \
+ } \
+ part { name: "over3"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0.25 0.1; } \
+ rel2 { relative: 0.75 0.9; } \
+ } \
+ } \
+ part { name: "disabler"; \
+ type: RECT; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ } \
+ programs { \
+ program { name: "button_click"; \
+ signal: "mouse,down,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_click_anim"; \
+ action: STATE_SET "clicked" 0.0; \
+ target: "highlight"; \
+ target: "elm.text"; \
+ } \
+ program { name: "button_double_click"; \
+ signal: "mouse,down,1,double"; \
+ source: "over2"; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_unpress"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { name: "button_mouseout_clicked"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ script { \
+ if (get_int(button_state) != 1) \
+ set_state(PART:"highlight", "default", 0.0); \
+ set_state(PART:"elm.text", "default", 0.0); \
+ } \
+ after: button_unpress; \
+ } \
+ program { name: "touch_snd"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: RUN_PLUGIN "touch_sound"; \
+ after: button_unclick3; \
+ } \
+ program { name: "button_unclick3"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { name: "disable"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "enable"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "action_focus"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ program { name: "action_unfocus"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ } \
+ }
+
+#define STYLE_CALL_SIX_BUTTON_TOGGLE_DISABLED(grp_name, img1, color_code, value, vis_value) \
+ group { name: "elm/button/base/"grp_name; \
+ images { \
+ image: img1 COMP; \
+ image: ICON_IMG_PATH"/call_onoff_bar.#.png" COMP; \
+ } \
+ script { \
+ public button_state = 0; \
+ } \
+ parts { \
+ part { name: "button_image"; \
+ type: RECT; \
+ mouse_events: value; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ color_class: color_code; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: color_code; \
+ visible: 1; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ } \
+ part { name: "content_image"; \
+ description { state: "default" 0.0; \
+ visible: vis_value; \
+ image { \
+ normal: img1; \
+ } \
+ align: 0.5 0.5; \
+ aspect: 0.5 1.0; \
+ rel1.relative: 0.0 (STYLE_ICN_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ rel2.relative: 1.0 (STYLE_ICN_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ aspect_preference: VERTICAL; \
+ color_class: "ATO009D"; \
+ visible: 1; \
+ } \
+ } \
+ part { name: "elm.text"; \
+ type: TEXT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ fixed: 1 1; \
+ rel1.relative: (STYLE_TXT_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ rel2.relative: (STYLE_TXT_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_TXT_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ min: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \
+ max: STYLE_TXT_WIDTH STYLE_TXT_HEIGHT; \
+ color_class: "ATO009D"; \
+ text { \
+ text_class: "ATO006"; \
+ min: 0 1; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { state: "visible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "disabled_visible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ part { name: "toggle_bar_image"; \
+ description { state: "default" 0.0; \
+ visible: vis_value; \
+ image { \
+ normal: ICON_IMG_PATH"/call_onoff_bar.#.png"; \
+ } \
+ align: 0.5 0.5; \
+ rel1.relative: (STYLE_ONOFF_BAR_L_PAD/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_ONOFF_BAR_T_PAD/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ rel2.relative: (STYLE_ONOFF_BAR_R/BTN_LAYOUT_SINGLE_BTN_WIDTH) (STYLE_ONOFF_BAR_B/BTN_LAYOUT_SINGLE_BTN_HEIGHT); \
+ color_class: "AO010D";\
+ visible: 1; \
+ } \
+ } \
+ part { name: "over2"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0.25 0.1; } \
+ rel2 { relative: 0.75 0.9; } \
+ } \
+ } \
+ part { name: "over3"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0.25 0.1; } \
+ rel2 { relative: 0.75 0.9; } \
+ } \
+ } \
+ part { name: "disabler"; \
+ type: RECT; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ } \
+ programs { \
+ program { name: "button_click"; \
+ signal: "mouse,down,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_click_anim"; \
+ action: STATE_SET "clicked" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ program { name: "button_double_click"; \
+ signal: "mouse,down,1,double"; \
+ source: "over2"; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_unpress"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { name: "button_mouseout_clicked"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ script { \
+ if (get_int(button_state) != 1) \
+ set_state(PART:"button_image", "default", 0.0); \
+ set_state(PART:"elm.text", "default", 0.0); \
+ } \
+ after: button_unpress; \
+ } \
+ program { name: "touch_snd"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: RUN_PLUGIN "touch_sound"; \
+ after: button_unclick3; \
+ } \
+ program { name: "button_unclick3"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { name: "disable"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "enable"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "action_focus"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ program { name: "action_unfocus"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ } \
+ }
+
+#define STYLE_CALL_END_CONTACT_BUTTONS(grp_name, bg_image_color, pressed_bg_image_color, icon_top_pad, icon_height, icon_color, text_top_pad, text_height, text_color, button_height, img1) \
+ group { name: "elm/button/base/"grp_name; \
+ images { \
+ image: img1 COMP; \
+ } \
+ script { \
+ public button_state = 0; \
+ } \
+ parts { \
+ part { name: "button_image"; \
+ type: RECT; \
+ mouse_events: 1; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ color_class: bg_image_color; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ } \
+ part { name: "highlight"; \
+ type: RECT; \
+ mouse_events: 1; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "clicked" 0.0; \
+ visible: 1; \
+ color_class: AO010P; \
+ } \
+ } \
+ part { name: "content_image"; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ image { \
+ normal: img1; \
+ } \
+ align: 0.5 0.5; \
+ aspect: 0.5 1.0; \
+ rel1.relative: 0.0 (icon_top_pad/button_height); \
+ rel2.relative: 1.0 ((icon_top_pad+icon_height)/button_height); \
+ aspect_preference: VERTICAL; \
+ color_class: icon_color;\
+ visible: 1; \
+ min: icon_height icon_height; \
+ max: icon_height icon_height; \
+ } \
+ } \
+ part { name: "elm.text"; \
+ type: TEXT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ fixed: 1 1; \
+ rel1 { relative: 0.0 text_top_pad/button_height; to: "button_image";} \
+ rel2 { relative: 1.0 ((text_top_pad+text_height)/button_height); to: "button_image";} \
+ text { \
+ text_class: text_color; \
+ min: 0 1; \
+ align: 0.5 0.5; \
+ } \
+ color_class: text_color; \
+ } \
+ description { state: "visible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "disabled_visible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ part { name: "over2"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0 0; } \
+ rel2 { relative: 1 1; } \
+ } \
+ } \
+ part { name: "over3"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0 0; } \
+ rel2 { relative: 1 1; } \
+ } \
+ } \
+ part { name: "disabler"; \
+ type: RECT; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ } \
+ programs { \
+ program { name: "button_click"; \
+ signal: "mouse,down,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_click_anim"; \
+ action: STATE_SET "clicked" 0.0; \
+ target: "highlight"; \
+ target: "elm.text"; \
+ } \
+ program { name: "button_double_click"; \
+ signal: "mouse,down,1,double"; \
+ source: "over2"; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_unpress"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { name: "button_mouseout_clicked"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ script { \
+ if (get_int(button_state) != 1) \
+ set_state(PART:"highlight", "default", 0.0); \
+ set_state(PART:"elm.text", "default", 0.0); \
+ } \
+ after: button_unpress; \
+ } \
+ program { name: "touch_snd"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: RUN_PLUGIN "touch_sound"; \
+ after: button_unclick3; \
+ } \
+ program { name: "button_unclick3"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { name: "disable"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "enable"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "action_focus"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ program { name: "action_unfocus"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ } \
+ }
+
+#define STYLE_MERGE_SWAP_BUTTONS(grp_name, bg_image_color, pressed_bg_image_color, icon_top_pad, icon_height, icon_color, text_top_pad, text_height, text_color, button_height, img1) \
+ group { name: "elm/button/base/"grp_name; \
+ images { \
+ image: img1 COMP; \
+ } \
+ script { \
+ public button_state = 0; \
+ } \
+ parts { \
+ part { name: "button_image"; \
+ type: RECT; \
+ mouse_events: 1; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ color_class: bg_image_color; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ color_class: pressed_bg_image_color; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ } \
+ part { name: "content_image"; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ image { \
+ normal: img1; \
+ } \
+ align: 0.5 0.5; \
+ aspect: 0.5 1.0; \
+ rel1.relative: 0.0 (icon_top_pad/button_height); \
+ rel2.relative: 1.0 ((icon_top_pad+icon_height)/button_height); \
+ aspect_preference: VERTICAL; \
+ color_class: icon_color;\
+ visible: 1; \
+ min: icon_height icon_height; \
+ max: icon_height icon_height; \
+ } \
+ } \
+ part { name: "elm.text"; \
+ type: TEXT; \
+ mouse_events: 0; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ visible: 1; \
+ fixed: 1 1; \
+ rel1 { relative: 0.0 text_top_pad/button_height; to: "button_image";} \
+ rel2 { relative: 1.0 ((text_top_pad+text_height)/button_height); to: "button_image";} \
+ text { \
+ text_class: text_color; \
+ min: 0 1; \
+ align: 0.5 0.5; \
+ } \
+ color_class: text_color; \
+ } \
+ description { state: "visible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ } \
+ description { state: "disabled_visible" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ part { name: "over2"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0 0; } \
+ rel2 { relative: 1 1; } \
+ } \
+ } \
+ part { name: "over3"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { relative: 0 0; } \
+ rel2 { relative: 1 1; } \
+ } \
+ } \
+ part { name: "disabler"; \
+ type: RECT; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ } \
+ programs { \
+ program { name: "button_click"; \
+ signal: "mouse,down,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_click_anim"; \
+ action: STATE_SET "clicked" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ program { name: "button_double_click"; \
+ signal: "mouse,down,1,double"; \
+ source: "over2"; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_unpress"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { name: "button_mouseout_clicked"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ script { \
+ if (get_int(button_state) != 1) \
+ set_state(PART:"button_image", "default", 0.0); \
+ set_state(PART:"elm.text", "default", 0.0); \
+ } \
+ after: button_unpress; \
+ } \
+ program { name: "touch_snd"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: RUN_PLUGIN "touch_sound"; \
+ after: button_unclick3; \
+ } \
+ program { name: "button_unclick3"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { name: "disable"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "enable"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ target: "disabler"; \
+ } \
+ program { name: "action_focus"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ program { name: "action_unfocus"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "elm.text"; \
+ } \
+ } \
+ }
+
+#define STYLE_CALL_ICON_ONLY(grp_name, img1, img2, min_x, min_y) \
+ group { name: "elm/button/base/"grp_name; \
+ images { \
+ image: img1 COMP; \
+ image: img2 COMP; \
+ } \
+ parts { \
+ part { name: "button_image"; \
+ mouse_events: 1; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ min: min_x min_y; \
+ image { \
+ normal: img1; \
+ border: 0 0 0 0; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ image.normal: img2; \
+ } \
+ } \
+ part { name: "over2"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 0; \
+ } \
+ } \
+ part { name: "over3"; \
+ type: RECT; \
+ mouse_events: 1; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ part { name: "disabler"; \
+ type: RECT; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ } \
+ programs { \
+ program { name: "button_click"; \
+ signal: "mouse,down,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_click_anim"; \
+ action: STATE_SET "clicked" 0.0; \
+ target: "button_image"; \
+ } \
+ program { name: "button_unpress"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { name: "button_mouseout_clicked"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ after: button_unpress; \
+ } \
+ program { name: "button_click2"; \
+ signal: "mouse,down,1"; \
+ source: "over3"; \
+ action: STATE_SET "clicked" 0.0; \
+ target: "over3"; \
+ } \
+ program { name: "button_unclick2"; \
+ signal: "mouse,clicked,1"; \
+ source: "over3"; \
+ action: STATE_SET "default" 0.0; \
+ target: "over3"; \
+ } \
+ program { name: "button_unclick3"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { name: "disable"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "button_image"; \
+ target: "over2"; \
+ target: "disabler"; \
+ } \
+ program { name: "enable"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "over2"; \
+ target: "disabler"; \
+ } \
+ program { name: "focused"; \
+ signal: "elm,action,focus"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "button_image"; \
+ } \
+ program { name: "unfocused"; \
+ signal: "elm,action,unfocus"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ } \
+ } \
+ }
+
+#define STYLE_CALL_TOGGLE_BUTTON(grp_name, bg_cc, bg_cc_p, img, img_cc, img_cc_p) \
+ group { name: "elm/button/base/"grp_name; \
+ data { \
+ item: "focus_highlight" "on"; \
+ } \
+ images { \
+ image: BG_IMG_PATH"/call_btn_circle.png" COMP; \
+ image: BG_IMG_PATH"/vc_toggle_focus.png" COMP; \
+ image: img COMP; \
+ }\
+ script { \
+ public button_state = 0; \
+ } \
+ parts { \
+ part { name: "button_image";\
+ type: IMAGE; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ rel1 { relative: 0.0 0.0;} \
+ rel2 { relative: 1.0 1.0;} \
+ image { \
+ normal: BG_IMG_PATH"/call_btn_circle.png"; \
+ } \
+ aspect_preference: SOURCE;\
+ color_class: bg_cc; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: bg_cc_p; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "AO014D"; \
+ } \
+ } \
+ part { name: "focus_image"; \
+ scale: 1; \
+ mouse_events: 0; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ visible: 0; \
+ rel1.to : "button_image"; \
+ rel2.to : "button_image"; \
+ image { \
+ normal: BG_IMG_PATH"/vc_toggle_focus.png"; \
+ border: 0 0 0 0; \
+ border_scale: 1; \
+ } \
+ } \
+ description { state: "focused" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ part { name: "content_image"; \
+ type: IMAGE; \
+ scale: 1; \
+ description { state: "default" 0.0; \
+ rel1 { relative: BUTTON_BOTTOM_ICON_OFFSET_L CALL_QUICKPANEL_BTN_ICON_T; to: "button_image";} \
+ rel2 { relative: BUTTON_BOTTOM_ICON_OFFSET_R CALL_QUICKPANEL_BTN_ICON_B; to: "button_image";} \
+ image.normal: img; \
+ color_class: img_cc; \
+ align: 0.5 0.5; \
+ aspect_preference: SOURCE; \
+ } \
+ description { state: "clicked" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: img_cc_p; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "ATO017"; \
+ } \
+ } \
+ part { name: "over2"; \
+ type: RECT; \
+ repeat_events: 1; \
+ ignore_flags: ON_HOLD; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ part { name: "over3"; \
+ type: RECT; \
+ repeat_events: 1; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ } \
+ } \
+ part { name: "disabler"; \
+ type: RECT; \
+ description { state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ } \
+ description { state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ } \
+ programs { \
+ program { name: "button_click"; \
+ signal: "mouse,down,1"; \
+ source: "over3"; \
+ action: SIGNAL_EMIT "elm,action,press" ""; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_click_anim"; \
+ action: STATE_SET "clicked" 0.0; \
+ target: "button_image"; \
+ target: "content_image"; \
+ } \
+ program { name: "button_double_click"; \
+ signal: "mouse,down,1,double"; \
+ source: "over3"; \
+ after: "button_click_anim"; \
+ } \
+ program { name: "button_unpress"; \
+ action: SIGNAL_EMIT "elm,action,unpress" ""; \
+ } \
+ program { name: "button_mouseout_clicked"; \
+ signal: "mouse,up,1"; \
+ source: "over3"; \
+ script { \
+ if (get_int(button_state) != 1) \
+ set_state(PART:"button_image", "default", 0.0); \
+ set_state(PART:"content_image", "default", 0.0); \
+ } \
+ after: button_unpress; \
+ } \
+ program { name: "touch_snd"; \
+ signal: "mouse,clicked,1"; \
+ source: "over2"; \
+ action: RUN_PLUGIN "touch_sound"; \
+ after: button_unclick3; \
+ } \
+ program { name: "button_unclick3"; \
+ action: SIGNAL_EMIT "elm,action,click" ""; \
+ } \
+ program { name: "disable"; \
+ signal: "elm,state,disabled"; \
+ source: "elm"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "button_image"; \
+ target: "content_image"; \
+ target: "disabler"; \
+ } \
+ program { name: "enable"; \
+ signal: "elm,state,enabled"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button_image"; \
+ target: "content_image"; \
+ target: "disabler"; \
+ } \
+ program { name: "action_focus"; \
+ signal: "elm,action,focus_highlight,show"; \
+ source: "elm"; \
+ action: STATE_SET "focused" 0.0; \
+ target: "focus_image"; \
+ } \
+ program { name: "action_unfocus"; \
+ signal: "elm,action,focus_highlight,hide"; \
+ source: "elm"; \
+ action: STATE_SET "default" 0.0; \
+ target: "focus_image"; \
+ } \
+ } \
+ }
+
+collections {
+ base_scale: 1.8;
+
+ plugins {
+ plugin {
+ name: "touch_sound";
+ source: "feedback";
+ param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ }
+ }
+
+ styles {
+ style { name: "normal_hold";
+ base: "font=Tizen:style=Regular font_size=36 align=center color=#FAFAFAFF style=shadow,bottom shadow_color=#000000FF ellipsis=1.0 wrap=none text_class=tizen";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ }
+ style { name: "disabled_hold";
+ base: "font=Tizen:style=Regular font_size=36 align=center color=#FAFAFA80 style=shadow,bottom shadow_color=#000000FF ellipsis=1.0 wrap=none text_class=tizen";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ }
+ style { name: "normal_unhold";
+ base: "font=Tizen:style=Regular font_size=36 align=center color=#87E22DFF style=shadow,bottom shadow_color=#000000FF ellipsis=1.0 wrap=none text_class=tizen";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ }
+ style { name: "disabled_unhold";
+ base: "font=Tizen:style=Regular font_size=36 align=center color=#87E22D80 style=shadow,bottom shadow_color=#000000FF ellipsis=1.0 wrap=none text_class=tizen";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ }
+ style { name: "normal_swap";
+ base: "font=Tizen:style=Regular font_size=36 align=center color=#FAFAFAFF style=shadow,bottom shadow_color=#000000FF ellipsis=1.0 wrap=none text_class=tizen";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ }
+ style { name: "disabled_swap";
+ base: "font=Tizen:style=Regular font_size=36 align=center color=#00000080 style=shadow,bottom shadow_color=#00000066 ellipsis=1.0 wrap=none text_class=tizen";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ }
+ style { name: "end_button";
+ base: "font=Tizen:style=Regular color=#FAFAFAFF text_class="ATO008"";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ }
+ style { name: "end_button_disabled";
+ base: "font=Tizen:style=Regular color=#FAFAFAFF text_class="ATO008"";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ }
+ style { name: "end_button_disabled_visible";
+ base: "font=Tizen:style=Regular color=#FAFAFAFF text_class="ATO008"";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ }
+ style { name: "button_bottom";
+ base: "font=Tizen:style=Regular font_size="BUTTON_BOTTOM_TEXT_SIZE" align=center color=#ffffff color_class="ATO012" text_class="ATO012" ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ tag: "b" "+ font_weight=Bold";
+ }
+ style { name: "button_bottom_dim";
+ base: "font=Tizen:style=Regular font_size="BUTTON_BOTTOM_TEXT_SIZE" align=center color=#ffffff color_class="ATO014" text_class="ATO014" ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ tag: "b" "+ font_weight=Bold";
+ }
+ style { name: "button_bottom_press";
+ base: "font=Tizen:style=Regular font_size="BUTTON_BOTTOM_TEXT_SIZE" align=center color=#ffffff color_class="ATO013" text_class="ATO013" ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "tab" "\t";
+ tag: "b" "+ font_weight=Bold";
+ }
+ }
+
+
+////////////// elm/button/base/default -disabled //////////////////////////////////////////////
+//////This is disabled effect for buttons of Six buttons layout and disabled effect is when making MO call////
+ STYLE_CALL_SIX_BUTTON_DISABLED("style_call_sixbtn_disabled_add", ICON_IMG_PATH"/call_button_add_call.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_DISABLED("style_call_sixbtn_disabled_keypad", ICON_IMG_PATH"/call_button_keypad.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_DISABLED("style_call_sixbtn_disabled_keypad_hide", ICON_IMG_PATH"/call_button_keypad.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_TOGGLE_DISABLED("style_call_sixbtn_disabled_speaker", ICON_IMG_PATH"/call_button_speaker.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_TOGGLE_DISABLED("style_call_sixbtn_disabled_mute", ICON_IMG_PATH"/call_button_mute.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_TOGGLE_DISABLED("style_call_sixbtn_disabled_headset", ICON_IMG_PATH"/call_button_bluetooth.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_DISABLED("style_call_sixbtn_disabled_contacts", ICON_IMG_PATH"/call_button_contacts.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_TOGGLE_DISABLED("style_call_sixbtn_disabled_extra_vol", ICON_IMG_PATH"/call_button_extra.png", "AO008", 1, 1)
+
+////////////// elm/button/base/default //////////////////////////////////////////////
+//////This effect is for buttons of Six buttons layout when they are enabled//////
+ STYLE_CALL_SIX_BUTTON("style_call_sixbtn_add", ICON_IMG_PATH"/call_button_add_call.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON("style_call_sixbtn_keypad", ICON_IMG_PATH"/call_button_keypad.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON("style_call_sixbtn_keypad_hide", ICON_IMG_PATH"/call_button_keypad.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_TOGGLE("style_call_sixbtn_speaker", ICON_IMG_PATH"/call_button_speaker.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_TOGGLE_PRESSED("style_call_sixbtn_speaker_on", ICON_IMG_PATH"/call_button_speaker.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_TOGGLE("style_call_sixbtn_mute", ICON_IMG_PATH"/call_button_mute.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_TOGGLE_PRESSED("style_call_sixbtn_mute_on", ICON_IMG_PATH"/call_button_mute.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_TOGGLE("style_call_sixbtn_headset", ICON_IMG_PATH"/call_button_bluetooth.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_TOGGLE_PRESSED("style_call_sixbtn_headset_on", ICON_IMG_PATH"/call_button_bluetooth.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON("style_call_sixbtn_contacts", ICON_IMG_PATH"/call_button_contacts.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_TOGGLE("style_call_sixbtn_extra_vol", ICON_IMG_PATH"/call_button_extra.png", "AO008", 1, 1)
+ STYLE_CALL_SIX_BUTTON_TOGGLE_PRESSED("style_call_sixbtn_extra_vol_on", ICON_IMG_PATH"/call_button_extra.png", "AO008", 1, 1)
+
+// STYLE_CALL_SIX_BUTTON_PRESSED("style_call_sixbtn_keypad_pressed", ICON_IMG_PATH"/call_button_keypad.png", 1, 1);
+
+////////////// elm/button/base/style_call_icon_only_end //////////////////////////////////////////////
+/////////////This style is for End button in quickpanel view//////////////////////////////////////////////////////////
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_end, "AO013", "AO013P", ICON_IMG_PATH"/icon_end_call.png", "ATO017", "ATO017");
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_call, "AO012P1", "AO012P", ICON_IMG_PATH"/icon_call.png", "ATO017", "ATO017");
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_end_landscape, "AO013", "AO013P", ICON_IMG_PATH"/icon_end_call.png", "AO017", "ATO017");
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_call_landscape, "AO012P1", "AO012P", ICON_IMG_PATH"/icon_call.png", "AO017", "ATO017");
+
+////////////// elm/button/base/style_call_icon_only_qp_mute //////////////////////////////////////////////
+/////////////This style is for mute/unhold button in quickpanel view//////////////////////////////////////////////////////////
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_mute, "AO001", "AO014P", ICON_IMG_PATH"/icon_mic.png", "AO019", "AO019P");
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_mute_on, "AO001", "AO014P", ICON_IMG_PATH"/icon_mic.png", "AO018", "AO018P");
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_mute_landscape, "AO001", "AO014P", ICON_IMG_PATH"/icon_mic.png", "AO019", "AO019P");
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_mute_on_landscape, "AO001", "AO014P", ICON_IMG_PATH"/icon_mic.png", "AO018", "AO018P");
+////////////// elm/button/base/style_call_icon_only_qp_speaker //////////////////////////////////////////////
+/////////////This style is for speaker/unhold button in quickpanel view//////////////////////////////////////////////////////////
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_speaker, "AO001", "AO014P", ICON_IMG_PATH"/icon_speaker.png", "AO019", "AO019P");
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_speaker_on, "AO001", "AO014P", ICON_IMG_PATH"/icon_speaker.png", "AO018", "AO018P");
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_speaker_landscape, "AO001", "AO014P", ICON_IMG_PATH"/icon_speaker.png", "AO019", "AO019P");
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_speaker_on_landscape, "AO001", "AO014P", ICON_IMG_PATH"/icon_speaker.png", "AO018", "AO018P");
+/////////////This style is for speaker/resume button in quickpanel view//////////////////////////////////////////////////////////
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_resume, "AO001", "AO014P", ICON_IMG_PATH"/call_btn_resume.png", "AO019", "AO019P");
+ STYLE_CALL_TOGGLE_BUTTON(style_call_icon_only_qp_resume_on, "AO001", "AO014P", ICON_IMG_PATH"/call_btn_resume.png", "AO018", "AO018P");
+////////////// elm/button/base/text_only/call_end_grey //////////////////////////////////////////////
+///////////// This style is for add to contacts button in end call view//////////////////////////////
+ STYLE_CALL_END_CONTACT_BUTTONS("style_call_end_create_contact_button", "AO026L1", "AO026P", 15, 60, "AO049", 79, 30, "ATO008", 130, ICON_IMG_PATH"/call_btn_end_03.png")
+ STYLE_CALL_END_CONTACT_BUTTONS("style_call_end_update_contact_button", "AO026L2", "AO026P", 15, 60, "AO049", 79, 30, "ATO008", 130, ICON_IMG_PATH"/call_btn_end_02.png")
+ STYLE_CALL_END_CONTACT_BUTTONS("style_call_end_view_contact_button", "AO026L1", "AO026P", 15, 60, "AO049", 79, 30, "ATO008", 130, ICON_IMG_PATH"/call_btn_end_01.png")
+ STYLE_MERGE_SWAP_BUTTONS("style_call_merge_call_button", "AO022", "AO022P", 0, 60, "AO026", 60, 25, "ATO028", 98, ICON_IMG_PATH"/call_extra_merge.png")
+ STYLE_MERGE_SWAP_BUTTONS("style_call_swap_call_button", "AO022", "AO022P", 0, 60, "AO026", 60, 25, "ATO028", 98, ICON_IMG_PATH"/call_extra_swap.png")
+
+ //STYLE_CALL_END_CONTACT_BUTTONS("style_call_end_contact_button_ln", A026L1, ICON_IMG_PATH"/call_btn_end_01.png")
+
+ STYLE_INDICATOR_BG_COLOR("during_indicator", 94, 163, 10, 255);
+ STYLE_INDICATOR_BG_COLOR("ending_indicator", 224, 89, 37, 255);
+
+ group { name: "elm/layout/list/B/popup/sim_select";
+ parts {
+ part {
+ name: "padding.left";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel2.relative: 0.0 1.0;
+ min: 15 0;
+ max: 15 -1;
+ fixed: 1 0;
+ rel2.relative: 0.0 1.0;
+ align: 0.0 0.5;
+ }
+ }
+ part {
+ name: "padding.right";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 1.0 0.0;
+ min: 1 0;
+ max: 1 -1;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ }
+ }
+ part {
+ name: "elm.swallow.icon";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 1.0 0.0; to_x: "padding.left"; }
+ rel2 { relative: 0.0 1.0; to_x: "padding.right";}
+ min: 46 46;
+ max: 46 46;
+ }
+ }
+ }
+ }
+
+ group { name: "elm/slider/horizontal/indicator/default";
+ alias: "elm/slider/horizontal/indicator/disabled";
+ alias: "elm/slider/horizontal/indicator/tap_to_drag";
+ images {
+ image: BG_IMG_PATH"/vc_volume_slider_handle.png" COMP;
+ image: BG_IMG_PATH"/vc_volume_slider_handle_dim.png" COMP;
+ image: BG_IMG_PATH"/vc_volume_slider_handle_press.png" COMP;
+ }
+ parts {
+ part { name: "access";
+ type: RECT;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "button_events";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ min: 2*SLIDER_INDICATOR_WIDTH_INC 1.5*SLIDER_INDICATOR_HEIGHT_INC;
+ aspect: 1.0 1.0;
+ aspect_preference: VERTICAL;
+ color: 0 0 0 0;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part { name: "image_left_padding";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ min: SLIDER_INDICATOR_IMAGE_PADDING_SIZE_INC;
+ max: SLIDER_INDICATOR_IMAGE_PADDING_SIZE_INC;
+ rel1 {
+ to_x: "elm.indicator";
+ relative: -1.0 0.0;
+ }
+ rel2 {
+ to_x: "elm.indicator";
+ relative: 0.0 1.0;
+ }
+ align: 1.0 0.5;
+ }
+ }
+ part { name: "image_right_padding";
+ type: SPACER;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ min: SLIDER_INDICATOR_IMAGE_PADDING_SIZE_INC;
+ max: SLIDER_INDICATOR_IMAGE_PADDING_SIZE_INC;
+ rel1 {
+ to_x: "elm.indicator";
+ relative: 1.0 0.0;
+ }
+ rel2 {
+ to_x: "elm.indicator";
+ relative: 2.0 1.0;
+ }
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "button0";
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ min: SLIDER_INDICATOR_WIDTH_INC SLIDER_INDICATOR_HEIGHT_INC;
+ max: SLIDER_INDICATOR_MAX_WIDTH_INC SLIDER_INDICATOR_HEIGHT_INC;
+ rel1.to: "image_left_padding";
+ rel2.to: "image_right_padding";
+ image {
+ normal: BG_IMG_PATH"/vc_volume_slider_handle.png";
+ border: 32 32 32 32;
+ border_scale: 1;
+ }
+ }
+ description { state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ image {
+ normal: BG_IMG_PATH"/vc_volume_slider_handle_press.png";
+ }
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image {
+ normal: BG_IMG_PATH"/vc_volume_slider_handle_dim.png";
+ }
+ }
+ }
+ part { name: "elm.indicator";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ color: SLIDER_INDICATOR_TEXT_COLOR_INC;
+ text {
+ font: "Tizen:style=Medium";
+ size: SLIDER_INDICATOR_TEXT_SIZE_INC;
+ min: 1 1;
+ align: 0.5 0.5;
+ text_class: "tizen";
+ }
+ }
+ description { state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description { state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: SLIDER_INDICATOR_TEXT_PRESSED_COLOR_INC;
+ }
+ }
+ }
+ programs {
+ program { name: "set_val_show";
+ signal: "elm,state,val,show";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.indicator";
+ }
+ program { name: "set_val_hide";
+ signal: "elm,state,val,hide";
+ source: "elm";
+ action: STATE_SET "hide" 0.0;
+ target: "elm.indicator";
+ }
+ program { name: "slider_disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button0";
+ target: "button_events";
+ }
+ program { name: "slider_enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button0";
+ target: "button_events";
+ }
+ program { name: "mouse_down";
+ signal: "mouse,down,*";
+ source: "button_events";
+ action: STATE_SET "pressed" 0.0;
+ target: "button0";
+ after: "text_pressed";
+ }
+ program { name: "mouse_up";
+ signal: "mouse,up,*";
+ source: "button_events";
+ action: STATE_SET "default" 0.0;
+ target: "button0";
+ after: "text_unpressed";
+ }
+ program { name: "text_pressed";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.indicator", st, 30, vl);
+ if (!strcmp(st, "default"))
+ set_state(PART:"elm.indicator", "pressed", 0.0);
+ }
+ }
+ program { name: "text_unpressed";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.indicator", st, 30, vl);
+ if (!strcmp(st, "pressed"))
+ set_state(PART:"elm.indicator", "default", 0.0);
+ }
+ }
+ }
+ }
+
+group { name: "elm/button/base/text_only";
+ script {
+ public mouse_down = 0;
+ public multi_down = 0;
+ }
+ images {
+ image: BG_IMG_PATH"/core_button_bg.#.png" COMP;
+ }
+ parts {
+ part { name: "base";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: BUTTON_MIN_WIDTH BUTTON_BOTTOM_MIN_HEIGHT;
+ }
+ }
+ part { name: "bg";
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ image.normal: BG_IMG_PATH"/core_button_bg.#.png";
+ color_class: "AO043";
+ }
+ description { state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "AO043P";
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color_class: "AO043D";
+ }
+ }
+ part { name: "padding_left_top";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0.0 0.0;
+ rel2.relative: 0.0 0.0;
+ min: BUTTON_BOTTOM_PADDING_LEFT_RIGHT 0;
+ fixed: 1 1;
+ }
+ }
+ part { name: "padding_right_bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 1.0 1.0;
+ rel1.relative: 1.0 1.0;
+ min: BUTTON_BOTTOM_PADDING_LEFT_RIGHT 0;
+ fixed: 1 1;
+ }
+ }
+ part { name: "icon_rect";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "padding_left_top";
+ to_y: "padding_right_bottom";
+ }
+ min: 0 0;
+ fixed: 1 1;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: BUTTON_ICON_WIDTH BUTTON_ICON_HEIGHT;
+ fixed: 1 1;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "visible" 0.0;
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "padding_left_top";
+ to_y: "padding_right_bottom";
+ }
+ fixed: 1 0;
+ }
+ description { state: "visible" 0.0;
+ fixed: 1 1;
+ min: BUTTON_ICON_WIDTH BUTTON_ICON_HEIGHT;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "elm.text";
+ to_y: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to_x: "elm.text";
+ to_y: "padding_right_bottom";
+ }
+ }
+ description { state: "icononly" 0.0;
+ min: BUTTON_ICON_WIDTH BUTTON_ICON_HEIGHT;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "visible" 0.0;
+ }
+ }
+ part { name: "elm.text";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ min: BUTTON_MAX_WIDTH BUTTON_ICON_HEIGHT;
+ max: BUTTON_MAX_WIDTH BUTTON_ICON_HEIGHT;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "icon_rect";
+ to_y: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "padding_right_bottom";
+ }
+ text {
+ min: 1 0;
+ style: "button_bottom";
+ }
+ }
+ description { state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ text.style: "button_bottom_press";
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ text.style: "button_bottom_dim";
+ }
+ description { state: "invisible" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part { name: "event";
+ scale: 1;
+ type: RECT;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ color: 0 0 0 0;
+ }
+ }
+ }
+ programs {
+ program { name: "pressed";
+ signal: "mouse,down,1*";
+ source: "event";
+ script {
+ if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0))
+ {
+ set_int(mouse_down, 1);
+ run_program(PROGRAM:"button_press1");
+ }
+ }
+ }
+ program { name: "button_press1";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"bg", st, 30, vl);
+ if (strcmp(st, "disabled")) {
+ set_state(PART:"base", "pressed", 0.0);
+ set_state(PART:"bg", "pressed", 0.0);
+ set_state(PART:"elm.text", "pressed", 0.0);
+ emit("elm,action,press", "");
+ }
+ }
+ }
+ program { name: "unpressed";
+ signal: "mouse,up,1";
+ source: "event";
+ script {
+ if (get_int(mouse_down) == 1) {
+ set_int(mouse_down, 0);
+ run_program(PROGRAM:"button_unpress1");
+ }
+ }
+ }
+ program { name: "button_unpress1";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"bg", st, 30, vl);
+ if (strcmp(st, "disabled")) {
+ set_state(PART:"base", "default", 0.0);
+ set_state(PART:"bg", "default", 0.0);
+ set_state(PART:"elm.text", "default", 0.0);
+ emit("elm,action,unpress", "");
+ }
+ }
+ }
+ program { name: "touch_snd";
+ signal: "mouse,clicked,1";
+ source: "event";
+ script {
+ new st[31];
+ new Float:vl;
+ if (get_int(multi_down) == 0) {
+ get_state(PART:"bg", st, 30, vl);
+ if (strcmp(st, "disabled")) {
+ run_program(PROGRAM:"touch_sound");
+ emit("elm,action,click", "");
+ }
+ }
+ }
+ }
+ program { name: "touch_sound";
+ action: RUN_PLUGIN "touch_sound";
+ }
+ program { name: "text_show";
+ signal: "elm,state,text,visible";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text";
+ }
+ program { name: "text_hide";
+ signal: "elm,state,text,hidden";
+ source: "elm";
+ action: STATE_SET "invisible" 0.0;
+ target: "elm.text";
+ }
+ program { name: "icon_show";
+ signal: "elm,state,icon,visible";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ target: "elm.swallow.content";
+ target: "icon_rect";
+ }
+ program { name: "icon_hide";
+ signal: "elm,state,icon,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.content";
+ target: "icon_rect";
+ }
+ program { name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "bg";
+ target: "elm.text";
+ target: "elm.swallow.content";
+ target: "icon_rect";
+ }
+ program { name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ target: "elm.text";
+ target: "elm.swallow.content";
+ target: "icon_rect";
+ }
+ program { name: "multi_down";
+ signal: "elm,action,multi,down";
+ source: "elm";
+ script {
+ set_int(multi_down, 1);
+ }
+ }
+ program { name: "multi_up";
+ signal: "elm,action,multi,up";
+ source: "elm";
+ script {
+ set_int(multi_down, 0);
+ }
+ }
+ }
+ }
+
+group { name: "elm/button/base/call_icon_only";
+ script {
+ public mouse_down = 0;
+ public multi_down = 0;
+ }
+ images {
+ image: BG_IMG_PATH"/core_button_bg.#.png" COMP;
+ }
+ parts {
+ part { name: "base";
+ scale: 1;
+ description { state: "default" 0.0;
+ image.normal: BG_IMG_PATH"/core_button_bg.#.png";
+ color_class: "W011E1";
+ }
+ description { state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ visible: 0 ;
+ }
+ }
+ part { name: "bg";
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ image.normal: BG_IMG_PATH"/call_btn_circle.png";
+ color_class: "AO043";
+ aspect_preference: SOURCE;
+ }
+ description { state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "AO043P";
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color_class: "AO043D";
+ }
+ }
+ part { name: "padding_left_top";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0.0 0.0;
+ rel2.relative: 0.0 0.0;
+ min: BUTTON_BOTTOM_PADDING_LEFT_RIGHT 0;
+ fixed: 1 1;
+ }
+ }
+ part { name: "padding_right_bottom";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 1.0 1.0;
+ rel1.relative: 1.0 1.0;
+ min: BUTTON_BOTTOM_PADDING_LEFT_RIGHT 0;
+ fixed: 1 1;
+ }
+ }
+ part { name: "icon_rect";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 1.0;
+ to: "padding_left_top";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to_x: "padding_left_top";
+ to_y: "padding_right_bottom";
+ }
+ min: 0 0;
+ fixed: 1 1;
+ }
+ description { state: "visible" 0.0;
+ inherit: "default" 0.0;
+ min: BUTTON_ICON_WIDTH BUTTON_ICON_HEIGHT;
+ max: BUTTON_ICON_WIDTH BUTTON_ICON_HEIGHT;
+ fixed: 1 1;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "visible" 0.0;
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ align: 0.5 0.5;
+ rel1 {
+ relative: BUTTON_BOTTOM_ICON_OFFSET_L 0.0;
+ }
+ rel2 {
+ relative: BUTTON_BOTTOM_ICON_OFFSET_R 1.0;
+ }
+ fixed: 1 0;
+ }
+ description { state: "visible" 0.0;
+ fixed: 1 1;
+ inherit: "default" 0.0;
+ }
+ description { state: "icononly" 0.0;
+ inherit: "visible" 0.0;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "visible" 0.0;
+ }
+ }
+ part { name: "elm.text";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "icon_rect";
+ to_y: "padding_left_top";
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ to: "padding_right_bottom";
+ }
+ text {
+ max: 1 0;
+ style: "button_bottom";
+ }
+ }
+ description { state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ text.style: "button_bottom_press";
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ text.style: "button_bottom_dim";
+ }
+ description { state: "invisible" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part { name: "event";
+ scale: 1;
+ type: RECT;
+ description { state: "default" 0.0;
+ rel1.to: "base";
+ rel2.to: "base";
+ color: 0 0 0 0;
+ }
+ }
+ }
+ programs {
+ program { name: "pressed";
+ signal: "mouse,down,1*";
+ source: "event";
+ script {
+ if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0))
+ {
+ set_int(mouse_down, 1);
+ run_program(PROGRAM:"button_press1");
+ }
+ }
+ }
+ program { name: "button_press1";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"bg", st, 30, vl);
+ if (strcmp(st, "disabled")) {
+ set_state(PART:"base", "pressed", 0.0);
+ set_state(PART:"bg", "pressed", 0.0);
+ set_state(PART:"elm.text", "pressed", 0.0);
+ emit("elm,action,press", "");
+ }
+ }
+ }
+ program { name: "unpressed";
+ signal: "mouse,up,1";
+ source: "event";
+ script {
+ if (get_int(mouse_down) == 1) {
+ set_int(mouse_down, 0);
+ run_program(PROGRAM:"button_unpress1");
+ }
+ }
+ }
+ program { name: "button_unpress1";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"bg", st, 30, vl);
+ if (strcmp(st, "disabled")) {
+ set_state(PART:"base", "default", 0.0);
+ set_state(PART:"bg", "default", 0.0);
+ set_state(PART:"elm.text", "default", 0.0);
+ emit("elm,action,unpress", "");
+ }
+ }
+ }
+ program { name: "touch_snd";
+ signal: "mouse,clicked,1";
+ source: "event";
+ script {
+ new st[31];
+ new Float:vl;
+ if (get_int(multi_down) == 0) {
+ get_state(PART:"bg", st, 30, vl);
+ if (strcmp(st, "disabled")) {
+ run_program(PROGRAM:"touch_sound");
+ emit("elm,action,click", "");
+ }
+ }
+ }
+ }
+ program { name: "touch_sound";
+ action: RUN_PLUGIN "touch_sound";
+ }
+ program { name: "text_show";
+ signal: "elm,state,text,visible";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text";
+ }
+ program { name: "text_hide";
+ signal: "elm,state,text,hidden";
+ source: "elm";
+ action: STATE_SET "invisible" 0.0;
+ target: "elm.text";
+ }
+ program { name: "icon_show";
+ signal: "elm,state,icon,visible";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ target: "elm.swallow.content";
+ target: "icon_rect";
+ }
+ program { name: "icon_hide";
+ signal: "elm,state,icon,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.content";
+ target: "icon_rect";
+ }
+ program { name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "bg";
+ target: "elm.text";
+ target: "elm.swallow.content";
+ target: "icon_rect";
+ }
+ program { name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ target: "elm.text";
+ target: "elm.swallow.content";
+ target: "icon_rect";
+ }
+ program { name: "multi_down";
+ signal: "elm,action,multi,down";
+ source: "elm";
+ script {
+ set_int(multi_down, 1);
+ }
+ }
+ program { name: "multi_up";
+ signal: "elm,action,multi,up";
+ source: "elm";
+ script {
+ set_int(multi_down, 0);
+ }
+ }
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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_control.h>
+#include <Ecore_X.h>
+#include <utilX.h>
+#include <vconf.h>
+#include <sys/sysinfo.h>
+#include <time.h>
+#include <contacts.h>
+#include <device/display.h>
+#include <device/power.h>
+#include <dbus/dbus.h>
+#include <gio/gio.h>
+#include <runtime_info.h>
+#include <bluetooth.h>
+#include <system_info.h>
+#include <system_settings.h>
+
+#include "callui-common.h"
+#include "callui-view-elements.h"
+#include "callui.h"
+#include "callui-view-dialing.h"
+#include "callui-view-single-call.h"
+#include "callui-view-callend.h"
+#include "callui-view-manager.h"
+#include "callui-view-multi-call-list.h"
+#include "callui-view-multi-call-split.h"
+#include "callui-view-multi-call-conf.h"
+#include "callui-view-quickpanel.h"
+#include "callui-view-caller-info-defines.h"
+
+#define CONTACT_PKG "org.tizen.contacts"
+#define PHONE_PKG "org.tizen.phone"
+#define BLUETOOTH_PKG "ug-bluetooth-efl"
+#define BUS_NAME "org.tizen.system.deviced"
+#define OBJECT_PATH "/Org/Tizen/System/DeviceD"
+#define INTERFACE_NAME BUS_NAME
+
+#define DEVICED_PATH_DISPLAY OBJECT_PATH"/Display"
+#define DEVICED_INTERFACE_DISPLAY INTERFACE_NAME".display"
+#define LCD_ON_SIGNAL_NAME "LCDOnByPowerkey"
+#define METHOD_SET_LCDTIMEOUT "setlcdtimeout"
+
+#define TIME_BUF_LEN (16)
+
+#define DBUS_REPLY_TIMEOUT (120 * 1000)
+
+static bool g_is_headset_connected;
+
+#define SCREEN_WIDTH 720
+#define SCREEN_HEIGHT 1280
+
+#define SYSTEM_INFO_KEY_SCREEN_WIDTH "http://tizen.org/feature/screen.width"
+#define SYSTEM_INFO_KEY_SCREEN_HEIGHT "http://tizen.org/feature/screen.height"
+
+struct dbus_byte {
+ const char *data;
+ int size;
+};
+
+static Eina_Bool __callui_common_duration_timer_cb(void *data)
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, ECORE_CALLBACK_CANCEL);
+
+ if ((ad->active) && (ad->incom == NULL) && (ad->active->call_state != CM_CALL_STATE_DIALING)) {
+ if (ad->held) {
+ _callui_common_update_call_duration(ad->held->start_time);
+ } else {
+ _callui_common_update_call_duration(ad->active->start_time);
+ }
+ }
+ return ECORE_CALLBACK_RENEW;
+}
+
+void _callui_common_set_call_duration(char *time_dur)
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+ Evas_Object *layout = NULL;
+ layout = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
+ CALLUI_RETURN_IF_FAIL(layout);
+ if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCALL_MULTICALL_SPLIT_VIEW) {
+ Evas_Object *one_hold_layout = elm_object_part_content_get(layout, PART_SWALLOW_CALL_INFO);
+ Evas_Object *active_layout = elm_object_part_content_get(one_hold_layout, PART_SWALLOW_ACTIVE_INFO);
+ elm_object_part_text_set(active_layout, PART_TEXT_STATUS, time_dur);
+ } else {
+ edje_object_part_text_set(_EDJ(layout), "call_txt_status", _(time_dur));
+ }
+
+ if (ad->win_quickpanel && ad->quickpanel_layout) {
+ _callui_view_qp_set_call_timer(ad->quickpanel_layout, time_dur);
+ }
+}
+
+void _callui_common_update_call_duration(long starttime)
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ long curr_time = 0;
+ struct tm loctime;
+ long call_time;
+
+ curr_time = _callui_common_get_uptime();
+ call_time = curr_time - starttime;
+ gmtime_r((const time_t *)&call_time, &loctime);
+
+ ad->current_sec = loctime.tm_sec;
+ ad->current_min = loctime.tm_min;
+ ad->current_hour = loctime.tm_hour;
+
+ char dur[TIME_BUF_LEN];
+ if (ad->current_hour > 0) {
+ snprintf(dur, TIME_BUF_LEN, "%02d:%02d:%02d", ad->current_hour, ad->current_min, ad->current_sec);
+ } else {
+ snprintf(dur, TIME_BUF_LEN, "%02d:%02d", ad->current_min, ad->current_sec);
+ }
+
+ _callui_common_set_call_duration(dur);
+}
+
+Eina_Bool _callui_common_is_earjack_connected(void)
+{
+ int result = EINA_FALSE;
+ int earjack_status = -1;
+
+ int ret = runtime_info_get_value_int(RUNTIME_INFO_KEY_AUDIO_JACK_STATUS, &earjack_status);
+ if (RUNTIME_INFO_ERROR_NONE == ret) {
+ dbg("earjack_status:[%d]", earjack_status);
+ if (RUNTIME_INFO_AUDIO_JACK_STATUS_UNCONNECTED != earjack_status) {
+ result = EINA_TRUE;
+ }
+ } else {
+ err("runtime_info_get_value_int failed.. Error: %d", ret);
+ }
+
+ return result;
+}
+
+void _callui_common_set_quickpanel_scrollable(Eina_Bool benable)
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ unsigned int val[3];
+
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ if (benable) {
+ val[0] = 1;
+ val[1] = 1;
+ val[2] = 1;
+ } else {
+ val[0] = 0;
+ val[1] = 0;
+ val[2] = 0;
+ }
+
+ dbg("Set Quick panel scrollable : %d", benable);
+ ecore_x_window_prop_card32_set(elm_win_xwindow_get(ad->win), ad->quickpanel_scroll_state, val, 3);
+}
+
+void _callui_common_create_duration_timer()
+{
+ dbg("_callui_common_create_duration_timer..");
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ if (ad->duration_timer) {
+ ecore_timer_del(ad->duration_timer);
+ ad->duration_timer = NULL;
+ }
+ CALLUI_RETURN_IF_FAIL(ad->active);
+
+ _callui_common_update_call_duration(ad->active->start_time);
+ ad->duration_timer = ecore_timer_add(1.0, __callui_common_duration_timer_cb, NULL);
+ if (ad->duration_timer == NULL) {
+ err("ecore_timer_add returned NULL");
+ }
+}
+
+void _callui_common_delete_duration_timer()
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ if (ad->duration_timer) {
+ ecore_timer_del(ad->duration_timer);
+ ad->duration_timer = NULL;
+ }
+}
+
+static Eina_Bool __callui_common_ending_timer_expired_cb(void *data)
+{
+ dbg("__callui_common_ending_timer_expired_cb");
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ ad->ending_timer = NULL;
+ _callvm_terminate_app_or_view_change(ad);
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static Eina_Bool __callui_common_ending_timer_blink_cb(void *data)
+{
+ dbg("__callui_common_ending_timer_blink_cb");
+ callui_app_data_t *ad = _callui_get_app_data();
+ call_view_data_t *vd = data;
+
+ if ((ad->blink_cnt % 2) == 0) {
+ _callui_show_caller_info_status(ad, _("IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"), 0);
+ } else if ((ad->blink_cnt % 2) == 1) {
+ _callui_show_caller_info_status(ad, _(" "), 0);
+ }
+
+ ad->blink_cnt++;
+ if (ad->blink_cnt == 5) {
+ /* Run a timer of 2secs for destroying the end selection menu */
+ if (ad->ending_timer) {
+ ecore_timer_del(ad->ending_timer);
+ ad->ending_timer = NULL;
+ }
+ ad->ending_timer = ecore_timer_add(2, __callui_common_ending_timer_expired_cb, NULL);
+
+ ad->blink_timer = NULL;
+ return ECORE_CALLBACK_CANCEL;
+ }
+ return ECORE_CALLBACK_RENEW;
+}
+
+void _callui_common_create_ending_timer(call_view_data_t *vd, long start_time)
+{
+ CALLUI_RETURN_IF_FAIL(vd);
+ callui_app_data_t *ad = _callui_get_app_data();
+ ad->blink_cnt = 0;
+ if (ad->blink_timer) {
+ ecore_timer_del(ad->blink_timer);
+ ad->blink_timer = NULL;
+ }
+ ad->blink_timer = ecore_timer_add(0.5, __callui_common_ending_timer_blink_cb, vd);
+}
+
+void _callui_common_delete_ending_timer(void)
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ if (ad->ending_timer) {
+ ecore_timer_del(ad->ending_timer);
+ ad->ending_timer = NULL;
+ }
+
+ if (ad->blink_timer) {
+ ecore_timer_del(ad->blink_timer);
+ ad->blink_timer = NULL;
+ }
+}
+
+char *_callui_common_get_sim_name(void *appdata)
+{
+ dbg("_callui_common_get_sim_name");
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ char *sim_name = NULL;
+ if (ad->sim_slot == CM_SIM_SLOT_1_E) {
+ sim_name = vconf_get_str(VCONFKEY_SETAPPL_SIM1_NAME);
+ } else if (ad->sim_slot == CM_SIM_SLOT_2_E) {
+ sim_name = vconf_get_str(VCONFKEY_SETAPPL_SIM2_NAME);
+ } else {
+ err("Invalid option for sim slot reached !!!");
+ }
+ info("sim name is : %s ", sim_name);
+ return sim_name;
+}
+
+
+static bool __callui_common_bt_device_connected_profile(bt_profile_e profile, void *user_data)
+{
+ dbg("..");
+ if ((profile == BT_PROFILE_A2DP) || (profile == BT_PROFILE_HSP)) {
+ dbg("found connected bluetooth headset device");
+ g_is_headset_connected = true;
+ return false;
+ }
+ return true;
+}
+
+
+static bool __callui_common_bt_adapter_bonded_device_cb(bt_device_info_s *device_info, void *user_data)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)user_data;
+ if (device_info->is_connected) {
+ bt_device_foreach_connected_profiles(device_info->remote_address, __callui_common_bt_device_connected_profile, ad);
+ }
+ return true;
+}
+
+
+Eina_Bool _callui_common_is_headset_conected(void)
+{
+ g_is_headset_connected = false;
+ callui_app_data_t *ad = _callui_get_app_data();
+ bt_adapter_foreach_bonded_device(__callui_common_bt_adapter_bonded_device_cb, ad);
+
+ return g_is_headset_connected;
+}
+
+callui_idle_lock_type_t _callui_common_get_idle_lock_type(void)
+{
+ int lock_state = -1;
+ int lock_type = SETTING_SCREEN_LOCK_TYPE_NONE;
+ int ret = 0;
+ callui_idle_lock_type_t ret_val = LOCK_TYPE_UNLOCK;
+
+ ret = system_settings_get_value_int(SYSTEM_SETTINGS_KEY_LOCK_STATE, &lock_state);
+ if (ret < 0) {
+ err("system_settings_get_value_int failed with code %d", ret);
+ }
+
+ ret = vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &lock_type);
+ if (ret < 0) {
+ err("vconf_get_int error");
+ }
+
+ if (lock_state == SYSTEM_SETTINGS_LOCK_STATE_LOCK) {
+ if (lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD
+ || lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD) {
+ ret_val = LOCK_TYPE_SECURITY_LOCK;
+ } else {
+ ret_val = LOCK_TYPE_SWIPE_LOCK;
+ }
+ } else {
+ ret_val = LOCK_TYPE_UNLOCK;
+ }
+
+ info("Lock state : %d", ret_val);
+ return ret_val;
+}
+
+int _callui_common_unlock_swipe_lock(void)
+{
+ vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK);
+ return 0;
+}
+
+long _callui_common_get_uptime(void)
+{
+ struct sysinfo info;
+
+ if (sysinfo(&info) == 0) {
+ return info.uptime;
+ }
+ return 0;
+}
+
+void _callui_common_win_set_noti_type(void *appdata, int bwin_noti)
+{
+ dbg("_callui_common_win_set_noti_type");
+ Ecore_X_Window xwin;
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+
+ /* Get x-window */
+ xwin = elm_win_xwindow_get(ad->win);
+
+ if (bwin_noti == EINA_FALSE) {
+ dbg("window type: NORMAL");
+ /* Set Normal window */
+ ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_NORMAL);
+ } else {
+ dbg("window type: NOTI-HIGH");
+ /* Set Notification window */
+ ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_NOTIFICATION);
+ /* Set Notification's priority to LEVEL_HIGH */
+ utilx_set_system_notification_level(ecore_x_display_get(), xwin, UTILX_NOTIFICATION_LEVEL_HIGH);
+ }
+ return;
+}
+
+void _callui_common_get_contact_info(int person_id, call_contact_data_t *ct_info)
+{
+ dbg("_callui_common_get_contact_info");
+ contacts_error_e err = CONTACTS_ERROR_NONE;
+ contacts_record_h person_record = NULL;
+
+ if (person_id == -1) {
+ err("Invalid contact index!!!");
+ return;
+ }
+
+ if (ct_info == NULL) {
+ err("Empty contact info!!!");
+ return;
+ }
+
+ err = contacts_connect();
+ if (CONTACTS_ERROR_NONE != err) {
+ err("contacts_connect is error : %d", err);
+ return;
+ }
+
+ ct_info->person_id = person_id;
+ err = contacts_db_get_record(_contacts_person._uri, person_id, &person_record);
+ if (CONTACTS_ERROR_NONE != err) {
+ err("contacts_db_get_record error %d", err);
+ } else {
+ char *name = NULL;
+ char *img_path = NULL;
+
+ /* Get display name */
+ err = contacts_record_get_str(person_record, _contacts_person.display_name, &name);
+ if (CONTACTS_ERROR_NONE != err) {
+ err("contacts_record_get_str(display name) error %d", err);
+ } else {
+ g_strlcpy(ct_info->call_disp_name, name, CALLUI_DISPLAY_NAME_LENGTH_MAX);
+ free(name);
+ }
+
+ /* Get caller id path */
+ err = contacts_record_get_str(person_record, _contacts_person.image_thumbnail_path, &img_path);
+ if (CONTACTS_ERROR_NONE != err) {
+ err("contacts_record_get_str(caller id path) error %d", err);
+ } else {
+ g_strlcpy(ct_info->caller_id_path, img_path, CALLUI_IMAGE_PATH_LENGTH_MAX);
+ free(img_path);
+ }
+ contacts_record_destroy(person_record, TRUE);
+ }
+
+ dbg("contact index:[%d]", ct_info->person_id);
+ dbg("display name:[%s]", ct_info->call_disp_name);
+ dbg("img path:[%s]", ct_info->caller_id_path);
+
+ contacts_disconnect();
+ return;
+}
+
+void _callui_common_launch_contacts(void *appdata)
+{
+ dbg("..");
+ app_control_h service;
+
+ _callui_common_win_set_noti_type(appdata, EINA_FALSE);
+
+ int ret = app_control_create(&service);
+ if (ret < 0) {
+ err("app_control_create() return error : %d", ret);
+ return;
+ }
+
+ if (app_control_set_app_id(service, CONTACT_PKG) != APP_CONTROL_ERROR_NONE) {
+ err("app_control_set_app_id() is failed");
+ } else if (app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT) != APP_CONTROL_ERROR_NONE) {
+ err("app_control_set_operation() is failed");
+ } else if (app_control_send_launch_request(service, NULL, NULL) != APP_CONTROL_ERROR_NONE) {
+ err("app_control_send_launch_request() is failed");
+ }
+
+ app_control_destroy(service);
+}
+
+void _callui_common_launch_bt_app(void *appdata)
+{
+ dbg("..");
+ app_control_h service;
+
+ _callui_common_win_set_noti_type(appdata, EINA_FALSE);
+
+ int ret = app_control_create(&service);
+ if (ret < 0) {
+ err("app_control_create() return error : %d", ret);
+ return;
+ }
+
+ if (app_control_set_app_id(service, BLUETOOTH_PKG) != APP_CONTROL_ERROR_NONE) {
+ err("app_control_set_app_id() is failed");
+ } else if (app_control_set_operation(service, APP_CONTROL_OPERATION_PICK) != APP_CONTROL_ERROR_NONE) {
+ err("app_control_set_operation() is failed");
+ } else if (app_control_send_launch_request(service, NULL, NULL) != APP_CONTROL_ERROR_NONE) {
+ err("app_control_send_launch_request() is failed");
+ }
+
+ app_control_destroy(service);
+}
+
+void _callui_common_launch_dialer(void *appdata)
+{
+ app_control_h service = NULL;
+ int ret = APP_CONTROL_ERROR_NONE;
+ char *uri = NULL;
+
+ _callui_common_win_set_noti_type(appdata, EINA_FALSE);
+
+ ret = app_control_create(&service);
+ if (ret < 0) {
+ err("app_control_create() return error : %d", ret);
+ return;
+ }
+
+ uri = (char *)calloc(5, sizeof(char));
+ if (uri == NULL) {
+ err("memory alloc failed");
+ app_control_destroy(service);
+ return;
+ }
+ snprintf(uri, sizeof(char)*5, "%s", "tel:");
+
+ if (app_control_set_app_id(service, PHONE_PKG) != APP_CONTROL_ERROR_NONE) {
+ err("app_control_set_app_id() is failed");
+ } else if (app_control_set_operation(service, APP_CONTROL_OPERATION_DIAL) != APP_CONTROL_ERROR_NONE) {
+ err("app_control_set_operation() is failed");
+ } else if (app_control_set_uri(service, uri) != APP_CONTROL_ERROR_NONE) {
+ err("app_control_set_uri() is failed");
+ } else if (app_control_add_extra_data(service, "launch_type", "add_call") != APP_CONTROL_ERROR_NONE) {
+ err("app_control_add_extra_data() is failed");
+ } else if (app_control_send_launch_request(service, NULL, NULL) != APP_CONTROL_ERROR_NONE) {
+ err("app_control_send_launch_request() is failed");
+ }
+
+ app_control_destroy(service);
+ g_free(uri);
+
+ return;
+}
+
+void _callui_common_launch_msg_composer(void *appdata, char *number)
+{
+ dbg("..");
+
+ app_control_h service;
+ int ret = APP_CONTROL_ERROR_NONE;
+
+ _callui_common_win_set_noti_type(appdata, EINA_FALSE);
+
+ ret = app_control_create(&service);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ warn("app_control_create() return error : %d", ret);
+ return;
+ }
+
+ ret = app_control_set_app_id(service, MSG_PKG);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ warn("app_control_set_app_id() return error : %d", ret);
+ ret = app_control_destroy(service);
+ return;
+ }
+
+ if (number) {
+ ret = app_control_add_extra_data(service, "type", "compose");
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ warn("app_control_add_extra_data() return error : %d", ret);
+ ret = app_control_destroy(service);
+ return;
+ }
+
+ if (strlen(number) > 0) {
+ ret = app_control_add_extra_data_array(service, APP_CONTROL_DATA_TO, &number, 1);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ warn("app_control_add_extra_data() return error : %d", ret);
+ ret = app_control_destroy(service);
+ return;
+ }
+ }
+ }
+
+ ret = app_control_send_launch_request(service, NULL, NULL);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ warn("app_control_send_launch_request() is failed : %d", ret);
+ }
+
+ app_control_destroy(service);
+}
+
+/* LCD api */
+void _callui_common_dvc_control_lcd_state(callui_lcd_control_t state)
+{
+ dbg("[%d]", state);
+ int result = -1;
+ switch (state) {
+ case LCD_ON:
+ result = device_display_change_state(DISPLAY_STATE_NORMAL);
+ break;
+
+ case LCD_ON_LOCK:
+ result = device_display_change_state(DISPLAY_STATE_NORMAL);
+ result = device_power_request_lock(POWER_LOCK_DISPLAY, 0);
+ break;
+
+ case LCD_ON_UNLOCK:
+ result = device_display_change_state(DISPLAY_STATE_NORMAL);
+ result = device_power_release_lock(POWER_LOCK_DISPLAY);
+ result = device_power_release_lock(POWER_LOCK_CPU);
+ break;
+
+ case LCD_OFF_SLEEP_LOCK:
+ result = device_power_request_lock(POWER_LOCK_CPU, 0);
+ break;
+
+ case LCD_OFF_SLEEP_UNLOCK:
+ result = device_power_release_lock(POWER_LOCK_CPU);
+ break;
+
+ default:
+ break;
+ }
+ if (result != DEVICE_ERROR_NONE)
+ warn("error during change lcd state");
+}
+
+static int __callui_common_dvc_append_variant(DBusMessageIter *iter, const char *sig, char *param[])
+{
+ char *ch = NULL;
+ int i;
+ int int_type;
+ uint64_t int64_type;
+ DBusMessageIter arr;
+ struct dbus_byte *byte;
+
+ if (!sig || !param)
+ return 0;
+
+ for (ch = (char *)sig, i = 0; *ch != '\0'; ++i, ++ch) {
+ switch (*ch) {
+ case 'i':
+ int_type = atoi(param[i]);
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_INT32, &int_type);
+ break;
+ case 'u':
+ int_type = strtoul(param[i], NULL, 10);
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT32, &int_type);
+ break;
+ case 't':
+ int64_type = atoll(param[i]);
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT64, &int64_type);
+ break;
+ case 's':
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, ¶m[i]);
+ break;
+ case 'a':
+ if ((ch+1 != NULL) && (*(ch+1) == 'y')) {
+ dbus_message_iter_open_container(iter, DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE_AS_STRING, &arr);
+ byte = (struct dbus_byte *)param[i];
+ dbus_message_iter_append_fixed_array(&arr, DBUS_TYPE_BYTE, &(byte->data), byte->size);
+ dbus_message_iter_close_container(iter, &arr);
+ ch++;
+ }
+ break;
+ default:
+ return -EINVAL;
+ }
+ }
+ return 0;
+}
+
+static void __callui_common_dvc_dbus_reply_cb(DBusPendingCall *call, gpointer user_data)
+{
+ DBusMessage *reply;
+ DBusError derr;
+
+ reply = dbus_pending_call_steal_reply(call);
+ dbus_error_init(&derr);
+
+ if (dbus_set_error_from_message(&derr, reply)) {
+ err("__callui_common_dvc_dbus_reply_cb error: %s, %s",
+ derr.name, derr.message);
+ dbus_error_free(&derr);
+ goto done;
+ }
+ dbus_pending_call_unref(call);
+done:
+ dbg("__callui_common_dvc_dbus_reply_cb : -");
+ dbus_message_unref(reply);
+}
+gboolean __callui_common_dvc_invoke_dbus_method_async(const char *dest,
+ const char *path,
+ const char *interface,
+ const char *method, const char *sig, char *param[])
+{
+ DBusConnection *conn = NULL;
+ DBusMessage *msg = NULL;
+ DBusMessageIter iter;
+ DBusPendingCall *c = NULL;
+ dbus_bool_t ret = FALSE;
+ int r = -1;
+ conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
+ if (!conn) {
+ err("dbus bus get error");
+ return FALSE;
+ }
+
+ msg = dbus_message_new_method_call(dest, path, interface, method);
+ if (!msg) {
+ err("dbus_message_new_method_call(%s:%s-%s",
+ path, interface, method);
+ return FALSE;
+ }
+ dbus_message_iter_init_append(msg, &iter);
+ r = __callui_common_dvc_append_variant(&iter, sig, param);
+ if (r < 0) {
+ err("append_variant error : %d", r);
+ goto EXIT;
+ }
+
+ ret = dbus_connection_send_with_reply(conn, msg, &c, DBUS_REPLY_TIMEOUT);
+ if (!ret) {
+ err("dbus_connection_send_ error (False returned)");
+ }
+ dbus_pending_call_set_notify(c, __callui_common_dvc_dbus_reply_cb, NULL, NULL);
+
+EXIT:
+ dbus_message_unref(msg);
+
+ return ret;
+}
+
+void _callui_common_dvc_set_lcd_timeout(callui_lcd_timeout_t state)
+{
+ int bPowerkeyMode = 0;
+ char str_on[32];
+ char str_dim[32];
+ char str_holdkey[2];
+ char *ar[3];
+ int ret = vconf_get_bool(VCONFKEY_CISSAPPL_POWER_KEY_ENDS_CALL_BOOL, &bPowerkeyMode);
+ if (ret < 0) {
+ err("vconf_get_int failed..[%d]\n", ret);
+ }
+
+ dbg("set timeout : %d, powerkeymode : %d", state, bPowerkeyMode);
+ if (state == LCD_TIMEOUT_SET) {
+ snprintf(str_on, sizeof(str_on), "%d", 10);
+ snprintf(str_dim, sizeof(str_dim), "%d", 20);
+ snprintf(str_holdkey, sizeof(str_holdkey), "%d", bPowerkeyMode);
+ } else if (state == LCD_TIMEOUT_UNSET) {
+ snprintf(str_on, sizeof(str_on), "%d", 0);
+ snprintf(str_dim, sizeof(str_dim), "%d", 0);
+ snprintf(str_holdkey, sizeof(str_holdkey), "%d", bPowerkeyMode);
+ } else if (state == LCD_TIMEOUT_LOCKSCREEN_SET) { /*After lock-screen comes in Connected state LCD goes to OFF in 5 secs*/
+ snprintf(str_on, sizeof(str_on), "%d", 5);
+ snprintf(str_dim, sizeof(str_dim), "%d", 0);
+ snprintf(str_holdkey, sizeof(str_holdkey), "%d", bPowerkeyMode);
+ } else if (state == LCD_TIMEOUT_KEYPAD_SET) {
+ snprintf(str_on, sizeof(str_on), "%d", 3);
+ snprintf(str_dim, sizeof(str_dim), "%d", 5);
+ snprintf(str_holdkey, sizeof(str_holdkey), "%d", bPowerkeyMode);
+ } else {
+ snprintf(str_on, sizeof(str_on), "%d", 0);
+ snprintf(str_dim, sizeof(str_dim), "%d", 0);
+ snprintf(str_holdkey, sizeof(str_holdkey), "%d", 0);
+ }
+
+ dbg("on(%s), dim(%s), hold(%s)", str_on, str_dim, str_holdkey);
+
+ ar[0] = str_on;
+ ar[1] = str_dim;
+ ar[2] = str_holdkey;
+
+ __callui_common_dvc_invoke_dbus_method_async(BUS_NAME,
+ DEVICED_PATH_DISPLAY,
+ DEVICED_INTERFACE_DISPLAY,
+ METHOD_SET_LCDTIMEOUT, "iii", ar);
+}
+
+void _callui_common_reset_main_ly_text_fields(Evas_Object *contents)
+{
+ dbg("..");
+ CALLUI_RETURN_IF_FAIL(contents);
+ Evas_Object *caller_info = NULL;
+
+ edje_object_part_text_set(_EDJ(contents), "call_txt_status", "");
+ edje_object_part_text_set(_EDJ(contents), "txt_timer", "");
+
+ caller_info = elm_object_part_content_get(contents, "caller_info");
+ if (caller_info) {
+ edje_object_part_text_set(_EDJ(caller_info), "txt_call_name", "");
+ edje_object_part_text_set(_EDJ(caller_info), "txt_phone_num", "");
+ }
+
+ return;
+}
+
+gboolean _callui_common_is_extra_volume_available(void)
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, EINA_TRUE);
+ cm_audio_state_type_e snd_path = CM_AUDIO_STATE_NONE_E;
+
+ cm_get_audio_state(ad->cm_handle, &snd_path);
+ dbg("sound path : %d", snd_path);
+
+ if ((snd_path == CM_AUDIO_STATE_BT_E)
+ || ((snd_path == CM_AUDIO_STATE_EARJACK_E)
+ && (_callui_common_is_earjack_connected() == EINA_TRUE))) {
+ return EINA_FALSE;
+ } else {
+ return EINA_TRUE;
+ }
+}
+
+gboolean _callui_common_is_answering_mode_on(void)
+{
+ gboolean bAnswerMode = EINA_FALSE;
+ Eina_Bool ret = EINA_FALSE;
+
+ ret = vconf_get_bool(VCONFKEY_CISSAPPL_ANSWERING_KEY_BOOL, &bAnswerMode);
+ if (0 == ret) {
+ dbg("bAnswerMode = [%d] \n", bAnswerMode);
+ } else {
+ dbg("vconf_get_int failed..[%d]\n", ret);
+ }
+
+ return bAnswerMode;
+}
+
+gboolean _callui_common_is_powerkey_mode_on(void)
+{
+ gboolean bPowerkeyMode = EINA_FALSE;
+ Eina_Bool ret = EINA_FALSE;
+
+ ret = vconf_get_bool(VCONFKEY_CISSAPPL_POWER_KEY_ENDS_CALL_BOOL, &bPowerkeyMode);
+ if (0 == ret) {
+ dbg("bPowerkeyMode = [%d] \n", bPowerkeyMode);
+ } else {
+ dbg("vconf_get_int failed..[%d]\n", ret);
+ }
+
+ return bPowerkeyMode;
+}
+
+int _callui_common_get_scaled_width(int width)
+{
+ int systemWidth = 0;
+ int scaledWidth = 0;
+ int err = system_info_get_platform_int(SYSTEM_INFO_KEY_SCREEN_WIDTH, &systemWidth);
+ if (err != SYSTEM_INFO_ERROR_NONE) {
+ err("system_info_get_platform_int error %d", err);
+ return width;
+ }
+ scaledWidth = (systemWidth * width) / SCREEN_WIDTH;
+ return scaledWidth;
+}
+
+int _callui_common_get_scaled_height(int height)
+{
+ int systemHeight = 0;
+ int scaledHeight = 0;
+ int err = system_info_get_platform_int(SYSTEM_INFO_KEY_SCREEN_HEIGHT, &systemHeight);
+ if (err != SYSTEM_INFO_ERROR_NONE) {
+ err("system_info_get_platform_int error %d", err);
+ return height;
+ }
+ scaledHeight = (systemHeight * height) / SCREEN_HEIGHT;
+ return scaledHeight;
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "callui.h"
+#include "callui-keypad.h"
+#include "callui-common.h"
+#include "callui-view-elements.h"
+#include "callui-view-layout-wvga.h"
+#include "callui-view-caller-info-defines.h"
+
+#define VC_KEYPAD_ENTRY_FONT "<font='Samsung Sans Num47:style=Light'>%s</>"
+#define VC_KEYAD_ENTRY_STYLE "DEFAULT='align=center color=#ffffffff font_size=76'"
+#define KEYPAD_ENTRY_DISP_DATA_SIZE 1024
+
+typedef struct _keypad_data_t {
+ Evas_Object *keypad_ly;
+ Evas_Object *entry;
+ int data_len;
+ char entry_disp_data[KEYPAD_ENTRY_DISP_DATA_SIZE+1];
+ Eina_Bool bkeypad_show;
+ Ecore_Timer *anim_timer;
+
+ Evas_Object *gesture_ly;
+ int gesture_start_y;
+ int gesture_momentum_y;
+} keypad_data_t;
+
+static keypad_data_t *gkeypad_data;
+
+static Evas_Object *__callui_keypad_create_contents(callui_app_data_t *ad, char *grp_name)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, NULL);
+ Evas_Object *eo = NULL;
+
+ /* load edje */
+ eo = _callui_load_edj(ad->win, EDJ_NAME, grp_name);
+ if (eo == NULL)
+ return NULL;
+
+ return eo;
+}
+
+static keypad_data_t *__callui_keypad_memory_alloc()
+{
+ dbg("..");
+
+ CALLUI_RETURN_VALUE_IF_FAIL(gkeypad_data == NULL, gkeypad_data);
+
+ gkeypad_data = (keypad_data_t *) calloc(1, sizeof(keypad_data_t));
+ if (gkeypad_data == NULL) {
+ err("keydata structure not allocated");
+ return NULL;
+ }
+ memset(gkeypad_data, 0x00, sizeof(keypad_data_t));
+ gkeypad_data->bkeypad_show = EINA_FALSE;
+
+ return gkeypad_data;
+}
+
+static void __callui_keypad_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ _callui_keypad_hide_layout(ad);
+}
+
+static Evas_Event_Flags __callui_keypad_arrow_flick_gesture_event_cb(void *data, void *event_info)
+{
+ dbg("Flick_Gesture Move");
+ Elm_Gesture_Line_Info *info = (Elm_Gesture_Line_Info *)event_info;
+ keypad_data_t *pkeypad_data = gkeypad_data;
+
+ dbg("*********************************************");
+ dbg("info->angle = %lf", info->angle);
+ dbg("info->momentum.mx = %d, info->momentum.my = %d", info->momentum.mx, info->momentum.my);
+ dbg("info->momentum.n = %d", info->momentum.n);
+ dbg("info->momentum.tx = %d, info->momentum.ty = %d", info->momentum.tx, info->momentum.ty);
+ dbg("info->momentum.x1 = %d, info->momentum.x2 = %d", info->momentum.x1, info->momentum.x2);
+ dbg("info->momentum.y1 = %d, info->momentum.y2 = %d", info->momentum.y1, info->momentum.y2);
+ dbg("*********************************************");
+
+ pkeypad_data->gesture_momentum_y = info->momentum.my;
+ return EVAS_EVENT_FLAG_NONE;
+}
+
+static void __callui_keypad_arrow_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ keypad_data_t *pkeypad_data = gkeypad_data;
+ Evas_Event_Mouse_Move *ev = event_info;
+
+ pkeypad_data->gesture_start_y = ev->cur.canvas.y;
+
+ return;
+}
+
+static void __callui_keypad_arrow_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ keypad_data_t *pkeypad_data = gkeypad_data;
+ Evas_Event_Mouse_Move *ev = event_info;
+
+ if (((ev->cur.canvas.y-pkeypad_data->gesture_start_y) > 100) && (pkeypad_data->gesture_momentum_y > 500)) {
+ info("Hide keypad!!");
+ _callui_keypad_hide_layout(ad);
+ }
+
+ return;
+}
+
+static void __callui_keypad_create_gesture_layer(void *data)
+{
+ dbg("..");
+
+ keypad_data_t *pkeypad_data = gkeypad_data;
+ Evas_Object *sweep_area = NULL;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+
+ if (pkeypad_data->gesture_ly) {
+ evas_object_del(pkeypad_data->gesture_ly);
+ pkeypad_data->gesture_ly = NULL;
+ }
+
+ sweep_area = _callui_edje_object_part_get(pkeypad_data->keypad_ly, "sweep_area");
+ pkeypad_data->gesture_ly = elm_gesture_layer_add(pkeypad_data->keypad_ly);
+ if (FALSE == elm_gesture_layer_attach(pkeypad_data->gesture_ly, sweep_area)) {
+ err("elm_gesture_layer_attach failed !!");
+ evas_object_del(pkeypad_data->gesture_ly);
+ } else {
+ evas_object_event_callback_add(sweep_area, EVAS_CALLBACK_MOUSE_DOWN, __callui_keypad_arrow_mouse_down_cb, ad);
+ evas_object_event_callback_add(sweep_area, EVAS_CALLBACK_MOUSE_UP, __callui_keypad_arrow_mouse_up_cb, ad);
+ elm_gesture_layer_cb_set(pkeypad_data->gesture_ly, ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_MOVE, __callui_keypad_arrow_flick_gesture_event_cb, ad);
+ }
+
+ return;
+}
+
+
+Eina_Bool _callui_keypad_get_show_status(void)
+{
+ keypad_data_t *pkeypad_data = gkeypad_data;
+ CALLUI_RETURN_VALUE_IF_FAIL(pkeypad_data != NULL, EINA_FALSE);
+
+ return pkeypad_data->bkeypad_show;
+}
+
+static void __callui_keypad_set_show_status(Eina_Bool bkeypad_status)
+{
+ keypad_data_t *pkeypad_data = gkeypad_data;
+
+ CALLUI_RETURN_IF_FAIL(pkeypad_data != NULL);
+
+ dbg("Set show status(%d)", bkeypad_status);
+ pkeypad_data->bkeypad_show = bkeypad_status;
+}
+
+static void __callui_keypad_on_key_down(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ dbg("__callui_keypad_on_key_down");
+ char *entry_dest = NULL;
+ char *keypad_source = NULL;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad);
+ keypad_data_t *pkeypad_data = gkeypad_data;
+ CALLUI_RETURN_IF_FAIL(pkeypad_data != NULL);
+ char *entry_str = NULL;
+ char *disp_str = NULL;
+
+ if (source == NULL || strlen(source) == 0) {
+ err("Source value is not valid");
+ return;
+ }
+
+ if (strcmp(source, "star") == 0) {
+ keypad_source = "*";
+ } else if (strcmp(source, "sharp") == 0) {
+ keypad_source = "#";
+ } else {
+ keypad_source = (char *)source;
+ }
+
+ cm_start_dtmf(ad->cm_handle, keypad_source[0]);
+
+ const char *text = elm_entry_entry_get(pkeypad_data->entry);
+ disp_str = elm_entry_markup_to_utf8(text);
+
+ if (disp_str == NULL) {
+ err("disp_str is null");
+ return;
+ } else if (strlen(disp_str) == 0) {
+ entry_dest = calloc(1, 2);
+ if (entry_dest == NULL) {
+ err("entry_dest allocation fail");
+ free(disp_str);
+ return;
+ }
+ snprintf(entry_dest, 2, "%c", keypad_source[0]);
+ } else {
+ int buf_size = strlen(disp_str) + 2;
+ entry_dest = calloc(1, buf_size);
+ if (entry_dest == NULL) {
+ err("entry_dest allocation fail");
+ free(disp_str);
+ return;
+ }
+ snprintf(entry_dest, buf_size, "%s%c", disp_str, keypad_source[0]);
+ }
+
+ free(disp_str);
+
+ entry_str = g_strdup_printf(VC_KEYPAD_ENTRY_FONT, entry_dest);
+ if (entry_str) {
+ elm_object_text_set(pkeypad_data->entry, entry_str);
+ g_free(entry_str);
+ }
+ elm_entry_cursor_end_set(pkeypad_data->entry);
+
+ if (entry_dest) {
+ free(entry_dest);
+ entry_dest = NULL;
+ }
+}
+
+static void __callui_keypad_on_key_up(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ cm_stop_dtmf(ad->cm_handle);
+}
+
+static Evas_Object *__callui_keypad_create_single_line_scrolled_entry(void *content)
+{
+ Evas_Object *en;
+ Elm_Entry_Filter_Accept_Set digits_filter_data;
+
+ if (content == NULL) {
+ err("content is NULL!");
+ return NULL;
+ }
+
+ en = elm_entry_add(content);
+ elm_entry_editable_set(en, EINA_FALSE);
+ elm_entry_scrollable_set(en, EINA_TRUE);
+
+ elm_entry_select_all(en);
+ elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+
+ elm_scroller_bounce_set(en, EINA_FALSE, EINA_FALSE);
+ elm_entry_line_wrap_set(en, ELM_WRAP_WORD);
+ elm_entry_input_panel_enabled_set(en, EINA_FALSE);
+ elm_entry_single_line_set(en, EINA_TRUE);
+
+ digits_filter_data.accepted = "0123456789+*#";
+ digits_filter_data.rejected = NULL;
+ elm_entry_markup_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data);
+
+ elm_entry_context_menu_disabled_set(en, EINA_TRUE);
+ elm_entry_cursor_end_set(en);
+ evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ elm_entry_text_style_user_push(en, VC_KEYAD_ENTRY_STYLE);
+
+ evas_object_show(en);
+
+ return en;
+}
+
+static void __callui_keypad_create_entry(void *data)
+{
+ dbg("..");
+ keypad_data_t *pkeypad_data = gkeypad_data;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+ Evas_Object *current_ly = _callvm_get_view_layout(ad);
+
+ CALLUI_RETURN_IF_FAIL(pkeypad_data != NULL);
+
+ if (!pkeypad_data->entry) {
+ dbg("..");
+ pkeypad_data->entry = __callui_keypad_create_single_line_scrolled_entry(ad->win_conformant);
+ memset(pkeypad_data->entry_disp_data, 0x0, sizeof(pkeypad_data->entry_disp_data));
+ pkeypad_data->data_len = 0;
+
+ elm_object_signal_callback_add(pkeypad_data->keypad_ly, "pad_down", "*", __callui_keypad_on_key_down, ad);
+ elm_object_signal_callback_add(pkeypad_data->keypad_ly, "pad_up", "*", __callui_keypad_on_key_up, ad);
+
+ if (current_ly) {
+ edje_object_part_swallow(_EDJ(current_ly), PART_SWALLOW_TEXTBLOCK_AREA, pkeypad_data->entry);
+ }
+ }
+}
+
+static Eina_Bool __down_arrow_animation_timerout_cb(void *data)
+{
+ keypad_data_t *pkeypad_data = (keypad_data_t *)data;
+
+ if (pkeypad_data->keypad_ly) {
+ elm_object_signal_emit(pkeypad_data->keypad_ly, "start_animation", "down_arrow");
+ }
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+void _callui_keypad_show_layout(void *app_data)
+{
+ dbg("..");
+ keypad_data_t *pkeypad_data = gkeypad_data;
+ CALLUI_RETURN_IF_FAIL(pkeypad_data);
+ callui_app_data_t *ad = (callui_app_data_t *)app_data;
+ CALLUI_RETURN_IF_FAIL(ad);
+ Evas_Object *view_ly = _callvm_get_view_layout(ad);
+ CALLUI_RETURN_IF_FAIL(view_ly);
+
+ elm_object_signal_emit(pkeypad_data->keypad_ly, "SHOW", "KEYPADBTN");
+ elm_object_signal_emit(view_ly, "SHOW", "KEYPAD_BTN");
+
+ /* Start animation */
+ elm_object_signal_emit(pkeypad_data->keypad_ly, "init", "down_arrow");
+ elm_object_signal_emit(pkeypad_data->keypad_ly, "start_animation", "down_arrow");
+
+ __callui_keypad_set_show_status(EINA_TRUE);
+ /* change LCD timeout duration */
+ _callui_lock_screen_stop_timer();
+ _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_KEYPAD_SET);
+
+ eext_object_event_callback_add(view_ly, EEXT_CALLBACK_BACK, __callui_keypad_back_cb, ad);
+
+ if (pkeypad_data->anim_timer) {
+ ecore_timer_del(pkeypad_data->anim_timer);
+ pkeypad_data->anim_timer = NULL;
+ }
+ pkeypad_data->anim_timer = ecore_timer_add(2.0, __down_arrow_animation_timerout_cb, pkeypad_data);
+}
+
+void _callui_keypad_hide_layout(void *app_data)
+{
+ dbg("..");
+ keypad_data_t *pkeypad_data = gkeypad_data;
+ CALLUI_RETURN_IF_FAIL(pkeypad_data);
+ callui_app_data_t *ad = (callui_app_data_t *)app_data;
+ CALLUI_RETURN_IF_FAIL(ad);
+ Evas_Object *view_ly = _callvm_get_view_layout(ad);
+ CALLUI_RETURN_IF_FAIL(view_ly);
+
+ elm_object_signal_emit(pkeypad_data->keypad_ly, "HIDE", "KEYPADBTN");
+ elm_object_signal_emit(view_ly, "HIDE", "KEYPAD_BTN");
+
+ __callui_keypad_set_show_status(EINA_FALSE);
+ _callui_lock_screen_start_timer();
+ _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_SET);
+
+ eext_object_event_callback_del(view_ly, EEXT_CALLBACK_BACK, __callui_keypad_back_cb);
+
+ if (pkeypad_data->anim_timer) {
+ ecore_timer_del(pkeypad_data->anim_timer);
+ pkeypad_data->anim_timer = NULL;
+ }
+}
+
+void _callui_keypad_create_layout(void *appdata)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ CALLUI_RETURN_IF_FAIL(ad);
+ Evas_Object *parent_ly = _callvm_get_view_layout(ad);
+ CALLUI_RETURN_IF_FAIL(parent_ly);
+
+ _callui_keypad_delete_layout(ad);
+
+ keypad_data_t *pkeypad_data = __callui_keypad_memory_alloc();
+ CALLUI_RETURN_IF_FAIL(pkeypad_data != NULL);
+
+ if (!pkeypad_data->keypad_ly) {
+ dbg("..");
+ pkeypad_data->keypad_ly = __callui_keypad_create_contents(ad, GRP_KEYPAD);
+
+ __callui_keypad_create_gesture_layer(ad);
+
+ elm_object_part_content_set(parent_ly, PART_SWALLOW_KEYPAD, pkeypad_data->keypad_ly);
+ }
+
+ __callui_keypad_create_entry(ad);
+ memset(pkeypad_data->entry_disp_data, '\0', KEYPAD_ENTRY_DISP_DATA_SIZE+1);
+ pkeypad_data->data_len = 0;
+ elm_entry_entry_set(pkeypad_data->entry, "");
+ elm_entry_cursor_end_set(pkeypad_data->entry);
+}
+
+void _callui_keypad_delete_layout(void *appdata)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ CALLUI_RETURN_IF_FAIL(ad);
+ keypad_data_t *pkeypad_data = gkeypad_data;
+ CALLUI_RETURN_IF_FAIL(pkeypad_data);
+ Evas_Object *parent_ly = _callvm_get_view_layout(ad);
+ CALLUI_RETURN_IF_FAIL(parent_ly);
+
+ elm_object_signal_emit(parent_ly, "HIDE", "KEYPAD_AREA");
+
+ if (pkeypad_data->entry) {
+ edje_object_part_unswallow(_EDJ(pkeypad_data->keypad_ly), pkeypad_data->entry);
+ evas_object_del(pkeypad_data->entry);
+ pkeypad_data->entry = NULL;
+ }
+
+ if (pkeypad_data->anim_timer) {
+ ecore_timer_del(pkeypad_data->anim_timer);
+ pkeypad_data->anim_timer = NULL;
+ }
+
+ if (pkeypad_data->keypad_ly) {
+ edje_object_part_unswallow(_EDJ(parent_ly), pkeypad_data->keypad_ly);
+ evas_object_del(pkeypad_data->keypad_ly);
+ pkeypad_data->keypad_ly = NULL;
+ }
+
+ g_free(pkeypad_data);
+ pkeypad_data = NULL;
+ gkeypad_data = NULL;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "callui-view-incoming-lock.h"
+#include "callui-view-active-incoming-call.h"
+#include "callui-view-manager.h"
+#include "callui-view-layout-wvga.h"
+#include "callui-view-elements.h"
+#include "callui-common.h"
+#include <vconf.h>
+#include <app_control.h>
+
+#define DURING_ICON "call_button_icon_03.png"
+#define REJECT_ICON "call_button_icon_04.png"
+#define END_ICON "call_button_icon_01.png"
+#define REJ_MSG_GENLIST_DATA "reject_msg_genlist_data"
+
+static void __callui_view_active_incoming_call_effect_close_active();
+static void __callui_view_active_incoming_call_reject_msg_create_glist(void *data);
+typedef void (*button_cb)(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+
+static void __callui_view_active_incoming_call_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ __callui_view_active_incoming_call_effect_close_active();
+}
+
+static void __callui_view_active_incoming_call_effect_close_active()
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ if (ad && ad->win) {
+ int xpos = 0;
+ int ypos = 0;
+ int width = 0;
+ int height = 0;
+ int transit_y = 0;
+ Evas_Object *screen_ly = ad->win;
+ Elm_Transit *transit = elm_transit_add();
+ elm_transit_object_add(transit, screen_ly);
+ evas_object_geometry_get(screen_ly, &xpos, &ypos, &width, &height);
+ transit_y = -(height + ypos);
+
+ elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
+ elm_transit_duration_set(transit, 0.05);
+ elm_transit_objects_final_state_keep_set(transit, EINA_TRUE);
+ elm_transit_go(transit);
+ }
+}
+
+static void __callui_view_active_incoming_call_reject_message_btn_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ call_view_data_t *vd = (call_view_data_t *)data;
+ if (data) {
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *) vd->priv;
+ callui_app_data_t * ad = (callui_app_data_t *)evas_object_data_get(obj, "app_data");
+ if (ad) {
+ evas_object_resize(ad->win, ad->root_w, ad->root_h);
+ }
+ _callui_view_incoming_lock_reject_msg_create_call_setting_handle(vd);
+ __callui_view_active_incoming_call_reject_msg_create_glist(vd);
+ elm_object_signal_emit(priv->contents, "big_main_ly", "main_incoming_active_call");
+ }
+}
+
+static void __callui_view_active_incoming_call_reject_ms_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ if (data) {
+ incoming_lock_view_priv_t *prev = (incoming_lock_view_priv_t *) data;
+ callui_app_data_t * ad = (callui_app_data_t *)evas_object_data_get(obj, "app_data");
+ if (ad) {
+ evas_object_resize(ad->win, ad->root_w, ELM_SCALE_SIZE(MTLOCK_ACTIVE_CALL_HEIGHT));
+ }
+ elm_object_signal_emit(prev->contents, "small_main_ly", "main_incoming_active_call");
+ evas_object_del(prev->msg_glist);
+ }
+}
+
+static void __callui_view_active_incoming_call_reject_msg_create_glist(void *data)
+{
+ call_view_data_t *vd = (call_view_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(vd);
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ CALLUI_RETURN_IF_FAIL(priv);
+ callui_app_data_t *ad = _callui_get_app_data();
+ Elm_Object_Item *item = NULL;
+ int msg_cnt = 0;
+ int index = 0;
+
+ if (0 != vconf_get_int(VCONFKEY_CISSAPPL_REJECT_CALL_MSG_INT, &msg_cnt)) {
+ warn("vconf_get_int failed.");
+ }
+
+ priv->reject_msg_gl = _callui_load_edj(ad->win, EDJ_NAME, "reject_msg_ly");
+ elm_object_part_content_set(priv->contents, "swallow.reject_msg", priv->reject_msg_gl);
+ priv->msg_glist = elm_genlist_add(priv->contents);
+ CALLUI_RETURN_IF_FAIL(priv->msg_glist);
+ elm_genlist_realization_mode_set(priv->msg_glist, EINA_TRUE);
+ evas_object_data_set(priv->reject_msg_gl, "app_data", ad);
+ eext_object_event_callback_add(priv->reject_msg_gl, EEXT_CALLBACK_BACK, __callui_view_active_incoming_call_reject_ms_back_cb, (void *)priv);
+
+ evas_object_data_set(priv->msg_glist, REJ_MSG_GENLIST_DATA, (const void *)vd);
+ evas_object_size_hint_weight_set(priv->msg_glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(priv->msg_glist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_part_content_set(priv->reject_msg_gl, "swallow.content", priv->msg_glist);
+
+ priv->itc_reject_msg = _callui_view_incoming_lock_create_item_class();
+
+ if (msg_cnt == 0) {
+ index = -1;
+ item = _callui_view_incoming_lock_append_genlist_item(priv->msg_glist, priv->itc_reject_msg, index);
+ if (item) {
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ }
+ } else {
+ for (index = 0; index < msg_cnt; index++) {
+ _callui_view_incoming_lock_append_genlist_item(priv->msg_glist, priv->itc_reject_msg, index);
+ }
+ }
+ elm_genlist_item_class_free(priv->itc_reject_msg);
+ priv->itc_reject_msg = NULL;
+
+ _callui_view_incoming_lock_create_reject_msg_button(priv->reject_msg_gl, "swallow.button", data);
+
+ elm_object_tree_focus_allow_set(priv->msg_glist, EINA_FALSE);
+ evas_object_size_hint_min_set(priv->msg_glist, ad->root_w, 0);
+ evas_object_size_hint_max_set(priv->msg_glist, ad->root_w, ELM_SCALE_SIZE(MTLOCK_REJECT_MSG_LIST_1ITEM_NEW_HEIGHT * msg_cnt));
+ evas_object_show(priv->reject_msg_gl);
+ evas_object_show(priv->msg_glist);
+}
+
+static void __callui_view_active_incoming_call_app_control_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ char *key = (char *) data;
+ if (key == NULL) {
+ return;
+ }
+ app_control_h app_control = NULL;
+ if (app_control_create(&app_control) != APP_CONTROL_ERROR_NONE) {
+ dbg("app_control_create() is failed");
+ } else if (app_control_set_app_id(app_control, "org.tizen.call-ui") != APP_CONTROL_ERROR_NONE) {
+ dbg("app_control_set_app_id() is failed");
+ } else if (app_control_set_operation(app_control, key) != APP_CONTROL_ERROR_NONE) {
+ dbg("app_control_set_operation() is failed");
+ } else if (app_control_send_launch_request(app_control, NULL, NULL) != APP_CONTROL_ERROR_NONE) {
+ err("app_control_send_launch_request() is failed");
+ }
+
+ app_control_destroy(app_control);
+}
+
+int _callui_view_active_incoming_call_oncreate(call_view_data_t *view_data, void *appdata)
+{
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *) view_data->priv;
+
+ priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
+ if (priv->contents) {
+ priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info");
+ if (priv->caller_info) {
+ evas_object_del(priv->caller_info);
+ priv->caller_info = NULL;
+ }
+
+ Evas_Object *btn_ly = elm_object_part_content_get(priv->contents, "btn_region");
+ if (btn_ly) {
+ evas_object_del(btn_ly);
+ btn_ly = NULL;
+ }
+ evas_object_del(priv->contents);
+ elm_win_alpha_set(ad->win, EINA_TRUE);
+ priv->contents = NULL;
+ }
+ if (ad->main_ly) {
+ evas_object_resize(ad->win, ad->root_w, ELM_SCALE_SIZE(MTLOCK_ACTIVE_CALL_HEIGHT));
+ priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
+ if (!priv->contents) {
+ priv->contents = _callui_load_edj(ad->main_ly, EDJ_NAME, "main_incoming_active_call");
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
+ }
+ evas_object_show(priv->contents);
+ evas_object_show(ad->main_ly);
+ }
+ return 0;
+}
+
+void _callui_view_active_incoming_call_create_button(callui_app_data_t *ad, char *icon_name, char *part, button_cb func, void * data, void * data_bt_cb)
+{
+ incoming_lock_view_priv_t * priv = (incoming_lock_view_priv_t *)data;
+ if (priv) {
+ Evas_Object *button_call = elm_layout_add(priv->contents);
+ if (button_call) {
+ elm_layout_file_set(button_call, EDJ_NAME, "main_button_ly");
+ Evas_Object *icon = elm_image_add(button_call);
+ elm_image_file_set(icon, EDJ_NAME, icon_name);
+ elm_object_part_content_set(button_call, "swallow.icon", icon);
+ elm_object_part_content_set(priv->contents, part, button_call);
+ evas_object_data_set(button_call, "app_data", ad);
+ evas_object_event_callback_add(button_call, EVAS_CALLBACK_MOUSE_UP, func, data_bt_cb);
+ }
+ }
+}
+
+void _callui_view_active_incoming_call_draw_screen(callui_app_data_t *ad, call_view_data_t *vd)
+{
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ call_data_t *call_data = NULL;
+
+ call_data = ad->incom;
+ if (call_data == NULL) {
+ err("call data is null");
+ return;
+ }
+ elm_object_signal_emit(priv->contents, "small_main_ly", "main_incoming_active_call");
+
+ _callui_view_active_incoming_call_create_button(ad, DURING_ICON, "swallow.call_button",
+ __callui_view_active_incoming_call_app_control_cb, priv, (void *)APP_CONTROL_OPERATION_DURING_CALL);
+ _callui_view_active_incoming_call_create_button(ad, REJECT_ICON, "swallow.rj_msg_button",
+ __callui_view_active_incoming_call_reject_message_btn_cb, priv, (void *)vd);
+ _callui_view_active_incoming_call_create_button(ad, END_ICON, "swallow.end_call_button",
+ __callui_view_active_incoming_call_app_control_cb, priv, (void *)APP_CONTROL_OPERATION_END_CALL);
+
+ Evas_Object *swipe_button = elm_layout_add(priv->contents);
+ if (swipe_button) {
+ elm_layout_file_set(swipe_button, EDJ_NAME, "swipe_call_button_ly");
+ evas_object_event_callback_add(swipe_button, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_active_incoming_call_mouse_move_cb, (void *)priv);
+ evas_object_data_set(swipe_button, "app_data", ad);
+ }
+ elm_object_part_content_set(priv->contents, "swallow.swipe_button", swipe_button);
+
+ char *call_name = call_data->call_ct_info.call_disp_name;
+ char *call_number = NULL;
+ if (call_data->call_disp_num[0] != '\0') {
+ call_number = call_data->call_disp_num;
+ } else {
+ call_number = call_data->call_num;
+ }
+ char *file_path = call_data->call_ct_info.caller_id_path;
+
+ if (!(call_name && call_name[0] != '\0') && !(call_number && call_number[0] != '\0')) {
+ elm_object_signal_emit(priv->contents, "big_buttons", "main_incoming_active_call");
+ elm_object_part_text_set(priv->contents, "text.contact_name", _("IDS_CALL_BODY_UNKNOWN"));
+ } else if (!(call_name && call_name[0] != '\0')) {
+ elm_object_signal_emit(priv->contents, "small_buttons", "main_incoming_active_call");
+ elm_object_part_text_set(priv->contents, "text.contact_name", call_number);
+ } else {
+ elm_object_signal_emit(priv->contents, "small_buttons", "main_incoming_active_call");
+ elm_object_part_text_set(priv->contents, "text.contact_name", call_name);
+ elm_object_part_text_set(priv->contents, "text.contact_number", call_number);
+ }
+
+ if (strcmp(file_path, "default") != 0) {
+ _callui_show_caller_id(priv->contents, file_path, TRUE);
+ } else {
+ elm_object_signal_emit(priv->contents, "show_image", "main_incoming_active_call");
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "callui.h"
+#include "callui-view-callend.h"
+#include "callui-view-elements.h"
+#include "callui-common.h"
+#include <app_control.h>
+
+#define CALLUI_VIEW_CALLEND_LAYOUT_ID "ENDCALLVIEW"
+struct callui_endcall_view_priv {
+ Evas_Object *contents;
+ Evas_Object *caller_info;
+ Evas_Object *caller_id;
+ Evas_Object *btn_ly;
+ Evas_Object *ic; /* small size call image */
+ Eina_Bool bshowbutton;
+ char caller_id_path[CALLUI_IMAGE_PATH_LENGTH_MAX];
+ char call_number[CALLUI_PHONE_DISP_NUMBER_LENGTH_MAX];
+ int contact_person_id;
+ int call_end_type;
+ bool is_emergency_call;
+};
+
+#define APP_CONTROL_DATA_PHONE "http://tizen.org/appcontrol/data/phone"
+#define APP_CONTROL_MIME_CONTACT "application/vnd.tizen.contact"
+#define APP_CONTROL_OPERATION_ADD "http://tizen.org/appcontrol/operation/add"
+#define APP_CONTROL_DATA_ITEM_ID "http://tizen.org/appcontrol/data/item_id"
+#define CONTACT_NUMBER_BUF_LEN 32
+#define BG_COLOR_ALPHA 120
+
+static int __callui_view_callend_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3);
+static int __callui_view_callend_onupdate(call_view_data_t *view_data, void *update_data1);
+static int __callui_view_callend_onhide(call_view_data_t *view_data);
+static int __callui_view_callend_onshow(call_view_data_t *view_data, void *appdata);
+static int __callui_view_callend_ondestroy(call_view_data_t *view_data);
+static int __callui_view_callend_onrotate(call_view_data_t *view_data);
+static void __callui_view_callend_create_screen(callui_app_data_t *ad, Evas_Object *eo, void *data);
+static Evas_Object *__callui_view_callend_create_contents(void *data, char *grp_name);
+
+call_view_data_t *_callui_view_callend_new(callui_app_data_t *ad)
+{
+ static call_view_data_t callend_view = {
+ .type = VIEW_ENDCALL_VIEW,
+ .layout = NULL,
+ .onCreate = __callui_view_callend_oncreate,
+ .onUpdate = __callui_view_callend_onupdate,
+ .onHide = __callui_view_callend_onhide,
+ .onShow = __callui_view_callend_onshow,
+ .onDestroy = __callui_view_callend_ondestroy,
+ .onRotate = __callui_view_callend_onrotate,
+ .priv = NULL,
+ };
+
+ callend_view.priv = calloc(1, sizeof(callui_endcall_view_priv_t));
+
+ if (!callend_view.priv) {
+ err("ERROR!!!!!!!!!!!");
+ }
+
+ return &callend_view;
+}
+
+static void __callui_endcall_voicecall_btn_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, __callui_endcall_voicecall_btn_cb);
+
+ _callui_common_delete_ending_timer();
+ ad->speaker_status = EINA_FALSE;
+ ad->mute_status = EINA_FALSE;
+ ad->extra_volume_status = EINA_FALSE;
+ cm_dial_call(ad->cm_handle, data, CM_CALL_TYPE_VOICE, ad->sim_slot);
+ free(data);
+ return;
+}
+
+char *__vcui_endcall_get_item_text(void *data, Evas_Object *obj, const char *part)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(data, NULL);
+ if (!strcmp(part, "elm.text")) {
+ return strdup(data);
+ }
+
+ return NULL;
+}
+
+static void __vcui_endcall_create_contact_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+ _callvm_terminate_app_or_view_change(ad);
+ app_control_h request;
+ app_control_create(&request);
+ app_control_set_operation(request, APP_CONTROL_OPERATION_ADD);
+ app_control_set_mime(request, APP_CONTROL_MIME_CONTACT);
+
+ if (data) {
+ app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, data);
+ }
+ int err = app_control_send_launch_request(request, NULL, NULL);
+ if (err != APP_CONTROL_ERROR_NONE) {
+ dbg("app_control_send_launch_request() is failed");
+ }
+ app_control_destroy(request);
+}
+
+static void __vcui_endcall_update_contact_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+ _callvm_terminate_app_or_view_change(ad);
+ app_control_h request;
+ app_control_create(&request);
+ app_control_set_operation(request, APP_CONTROL_OPERATION_EDIT);
+ app_control_set_mime(request, APP_CONTROL_MIME_CONTACT);
+
+ if (data) {
+ app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, data);
+ }
+ int result = app_control_send_launch_request(request, NULL, NULL);
+ if (result != APP_CONTROL_ERROR_NONE) {
+ err("app_control_send_launch_request() failed (%d)", result);
+ }
+ app_control_destroy(request);
+}
+
+static void __vcui_endcall_popup_destroy_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ free(data);
+}
+
+static void __vcui_endcall_popup_back_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad);
+ evas_object_del(obj);
+
+ if (ad->ending_timer) {
+ ecore_timer_thaw(ad->ending_timer);
+ } else if (ad->blink_timer) {
+ ecore_timer_thaw(ad->blink_timer);
+ }
+}
+
+static void __vcui_endcall_create_popup_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ if (ad->ending_timer) {
+ ecore_timer_freeze(ad->ending_timer);
+ } else if (ad->blink_timer) {
+ ecore_timer_freeze(ad->blink_timer);
+ }
+ char *number = (char *)data;
+ Evas_Object *parent = elm_object_top_widget_get(obj);
+ CALLUI_RETURN_IF_FAIL(parent);
+ Evas_Object *popup = elm_popup_add(parent);
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __vcui_endcall_popup_destroy_cb, number);
+ eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, __vcui_endcall_popup_back_cb, ad);
+
+ elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+ if (number) {
+ elm_object_part_text_set(popup, "title,text", number);
+ }
+ Evas_Object *genlist = elm_genlist_add(popup);
+ elm_genlist_homogeneous_set(genlist, EINA_TRUE);
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+ elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+
+ Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
+ CALLUI_RETURN_IF_FAIL(itc);
+ itc->item_style = "type1";
+ itc->func.text_get = __vcui_endcall_get_item_text;
+
+ elm_genlist_item_append(genlist, itc, _("IDS_COM_OPT_CREATE_CONTACT"), NULL, ELM_GENLIST_ITEM_NONE, __vcui_endcall_create_contact_btn_cb, number);
+ elm_genlist_item_append(genlist, itc, "Update contact", NULL, ELM_GENLIST_ITEM_NONE, __vcui_endcall_update_contact_btn_cb, number);
+
+ elm_genlist_item_class_free(itc);
+ elm_object_content_set(popup, genlist);
+ elm_popup_orient_set(popup, ELM_POPUP_ORIENT_CENTER);
+ evas_object_show(popup);
+}
+
+static void __vcui_endcall_msg_btn_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, __vcui_endcall_msg_btn_cb);
+ char *number = (char *)data;
+ app_control_h request;
+ app_control_create(&request);
+ app_control_set_operation(request, APP_CONTROL_OPERATION_COMPOSE);
+ char str[CONTACT_NUMBER_BUF_LEN];
+ snprintf(str, sizeof(str), "sms:%s", number);
+ app_control_set_uri(request, str);
+ int result = app_control_send_launch_request(request, NULL, NULL);
+ if (result != APP_CONTROL_ERROR_NONE) {
+ err("app_control_send_launch_request() failed (%d)", result);
+ }
+ free(number);
+ app_control_destroy(request);
+}
+
+static void __callui_view_callend_create_screen(callui_app_data_t *ad, Evas_Object *eo, void *data)
+{
+ dbg("..");
+
+ call_view_data_t *vd = (call_view_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(vd);
+ callui_endcall_view_priv_t *priv = (callui_endcall_view_priv_t *)vd->priv;
+ CALLUI_RETURN_IF_FAIL(priv);
+ call_data_t *call_data = NULL;
+
+ if (ad->active) {
+ call_data = ad->active;
+ } else {
+ call_data = ad->held;
+ }
+ CALLUI_RETURN_IF_FAIL(call_data);
+
+ char *file_path = call_data->call_ct_info.caller_id_path;
+ char *call_name = call_data->call_ct_info.call_disp_name;
+ char *disp_number = NULL;
+ if (call_data->call_disp_num[0] != '\0') {
+ disp_number = call_data->call_disp_num;
+ } else {
+ disp_number = call_data->call_num;
+ }
+ priv->contact_person_id = call_data->call_ct_info.person_id;
+
+ Evas_Object *button_call_back = elm_layout_add(priv->contents);
+ if (button_call_back) {
+ elm_layout_file_set(button_call_back, EDJ_NAME, "call_back");
+ evas_object_event_callback_add(button_call_back, EVAS_CALLBACK_MOUSE_UP, __callui_endcall_voicecall_btn_cb, (void *)strdup(call_data->call_num));
+ elm_object_part_text_set(button_call_back, "call_back_text", _("IDS_CALL_BUTTON_CALL"));
+ }
+ elm_object_part_content_set(priv->contents, "button_call_back", button_call_back);
+
+ Evas_Object *button_message = elm_layout_add(priv->contents);
+ if (button_message) {
+ elm_layout_file_set(button_message, EDJ_NAME, "message_button");
+ evas_object_event_callback_add(button_message, EVAS_CALLBACK_MOUSE_UP, __vcui_endcall_msg_btn_cb, (void *)strdup(call_data->call_num));
+ elm_object_part_text_set(button_message, "message_text", _("IDS_COM_BODY_MESSAGE"));
+ }
+ elm_object_part_content_set(priv->contents, "button_message_back", button_message);
+ elm_object_part_text_set(priv->contents, "main_title_status", _("IDS_CALL_BODY_CALL_ENDE_M_STATUS_ABB"));
+
+ if (!(call_name && call_name[0] != '\0')) {
+ Evas_Object *button_create = elm_layout_add(priv->contents);
+ if (button_create) {
+ elm_layout_file_set(button_create, EDJ_NAME, "create_contact_button");
+ evas_object_event_callback_add(button_create, EVAS_CALLBACK_MOUSE_UP, __vcui_endcall_create_popup_cb, (void *)strdup(call_data->call_num));
+ elm_object_part_content_set(priv->contents, "swallow.create_contact", button_create);
+ }
+ elm_object_part_text_set(priv->contents, "contact_name", disp_number);
+ elm_object_part_text_set(priv->contents, "contact_number", _("IDS_COM_OPT_ADD_TO_CONTACTS"));
+ } else {
+ elm_object_part_text_set(priv->contents, "contact_name", call_name);
+ elm_object_part_text_set(priv->contents, "contact_number", disp_number);
+ }
+
+ if (strcmp(file_path, "default") != 0) {
+ _callui_show_caller_id(priv->contents, file_path, TRUE);
+ } else {
+ elm_object_signal_emit(priv->contents, "show_image", "main_end_call");
+ }
+ _callui_common_create_ending_timer(vd, call_data->start_time);
+}
+
+static Evas_Object *__callui_view_callend_create_contents(void *data, char *grp_name)
+{
+ if (data == NULL) {
+ err("ERROR");
+ return NULL;
+ }
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ Evas_Object *eo = NULL;
+
+ eo = _callui_load_edj(ad->main_ly, EDJ_NAME, grp_name);
+
+ if (eo == NULL)
+ return NULL;
+
+ return eo;
+}
+
+static int __callui_view_callend_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *data)
+{
+ dbg("endcall view create");
+ call_view_data_t *vd = view_data;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ callui_endcall_view_priv_t *priv = (callui_endcall_view_priv_t *)vd->priv;
+ call_data_t *call_data = NULL;
+
+ priv->bshowbutton = FALSE; /* Init */
+
+ if (ad->active) {
+ call_data = ad->active;
+ } else {
+ call_data = ad->held;
+ }
+ CALLUI_RETURN_VALUE_IF_FAIL(call_data, -1);
+
+ Evas_Object *contents = NULL;
+ Evas_Object *caller_info = NULL;
+ Evas_Object *btn_ly = NULL;
+
+ contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
+ if (contents) {
+ caller_info = elm_object_part_content_get(contents, "caller_info");
+ if (caller_info) {
+ evas_object_del(caller_info);
+ caller_info = NULL;
+ }
+
+ btn_ly = elm_object_part_content_get(contents, "btn_region");
+ if (btn_ly) {
+ evas_object_del(btn_ly);
+ btn_ly = NULL;
+ }
+ evas_object_del(contents);
+
+ elm_win_alpha_set(ad->win, EINA_TRUE);
+ evas_object_color_set(ad->bg, 0, 0, 0, BG_COLOR_ALPHA);
+ contents = NULL;
+ }
+
+ g_strlcpy(priv->caller_id_path, call_data->call_ct_info.caller_id_path, sizeof(priv->caller_id_path));
+ if (ad->main_ly) {
+ priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
+ if (!priv->contents) {
+ priv->contents = __callui_view_callend_create_contents(ad, "main_end_call");
+ _callui_set_object_data(priv->contents, CALLUI_END_TYPE_KEY, CALLUI_END_TYPE_SINGLE_CALL_END);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
+ evas_object_name_set(priv->contents, CALLUI_VIEW_CALLEND_LAYOUT_ID);
+ }
+
+ __callui_view_callend_onshow(view_data, ad);
+ }
+ return 0;
+}
+
+static int __callui_view_callend_onupdate(call_view_data_t *view_data, void *update_data)
+{
+ dbg("end call view update");
+#if 0
+ callui_app_data_t *ad = view_data->app_data;
+
+ if (ad->view_before_top != VIEW_INCALL_MULTICALL_SPLIT_VIEW &&
+ ad->call_end_type != CALL_END_TYPE_MULTIPARTY_CALL) {
+ __callui_view_callend_onshow(view_data);
+ }
+#endif
+ return 0;
+}
+
+static int __callui_view_callend_onhide(call_view_data_t *view_data)
+{
+ dbg("end call view hide");
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ evas_object_hide(ad->main_ly);
+ return 0;
+}
+
+static int __callui_view_callend_onshow(call_view_data_t *view_data, void *appdata)
+{
+ dbg("end call view show");
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ callui_endcall_view_priv_t *priv = (callui_endcall_view_priv_t *)view_data->priv;
+
+ __callui_view_callend_create_screen(ad, priv->contents, view_data);
+
+#if 0
+ /* Check If View is launched in landscape mode and update accordingly */
+ if (IS_LANDSCAPE_MODE(ad->rotate_angle)) { /* Landscape Mode */
+ __callui_view_callend_onrotate(view_data);
+ }
+#endif
+ _callui_common_win_set_noti_type(ad, EINA_TRUE);
+ evas_object_hide(ad->main_ly);
+ evas_object_show(ad->main_ly);
+ return 0;
+}
+
+static int __callui_view_callend_ondestroy(call_view_data_t *view_data)
+{
+ dbg("endcall view destroy");
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, -1);
+ call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_ENDCALL_VIEW);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, -1);
+ callui_endcall_view_priv_t *priv = (callui_endcall_view_priv_t *)vd->priv;
+
+ _callui_common_delete_ending_timer();
+
+ if (priv != NULL) {
+ if (priv->contents) {
+ evas_object_del(priv->contents);
+ priv->contents = NULL;
+ }
+
+ if (priv->caller_info) {
+ evas_object_del(priv->caller_info);
+ priv->caller_info = NULL;
+ }
+
+ if (priv->caller_id) {
+ evas_object_del(priv->caller_id);
+ priv->caller_id = NULL;
+ }
+
+ free(priv);
+ priv = NULL;
+ }
+ _callvm_reset_call_view_data(ad, VIEW_ENDCALL_VIEW);
+
+ dbg("complete destroy one view");
+ return 0;
+}
+
+static int __callui_view_callend_onrotate(call_view_data_t *view_data)
+{
+ dbg("*** Call End view Rotate ***");
+#if 0
+ callui_endcall_view_priv_t *priv = view_data->priv;
+ callui_app_data_t *ad = _vcui_get_app_data();
+
+ if (IS_PORTRAIT_MODE(ad->rotate_angle)) { /* Portrait Mode */
+ if (ad->call_end_type == CALL_END_TYPE_SINGLE_CALL) {
+/***This if else condtion has to be updated when we get more info on single sim and double sim handling***/
+ if (0) {
+ edje_object_signal_emit(_EDJ(priv->contents), "set_portrait_3_btn", "end_singlecall_3_btn");
+ } else {
+ edje_object_signal_emit(_EDJ(priv->contents), "set_portrait_2_btn", "end_singlecall_2_btn");
+ }
+ } else if (ad->call_end_type == CALL_END_TYPE_CONF_CALL) {
+ elm_object_signal_emit(priv->contents, "set_portrait", "end_confcall");
+ } else if (ad->call_end_type == CALL_END_TYPE_MULTIPARTY_CALL) {
+ elm_object_signal_emit(priv->contents, "set_portrait", "end_multicall");
+ }
+ elm_object_signal_emit(priv->caller_info, "set_portrait", "caller_info_layout");
+ elm_object_signal_emit(priv->caller_info, "set-end-caller-info", "end-screen");
+ } else { /* Landscape Mode */
+ if (ad->call_end_type == CALL_END_TYPE_SINGLE_CALL) {
+ elm_object_signal_emit(priv->contents, "set_landscape", "end_singlecall");
+ } else if (ad->call_end_type == CALL_END_TYPE_CONF_CALL) {
+ elm_object_signal_emit(priv->contents, "set_landscape", "end_confcall");
+ } else if (ad->call_end_type == CALL_END_TYPE_MULTIPARTY_CALL) {
+ elm_object_signal_emit(priv->contents, "set_landscape", "end_multicall");
+ }
+ elm_object_signal_emit(priv->caller_info, "set_landscape", "caller_info_layout");
+ elm_object_signal_emit(priv->caller_info, "set-end-caller-info", "end-screen-landscape");
+ }
+
+ CALLUI_DEBUG(DEBUG, "priv->bshowbutton(%d)", priv->bshowbutton);
+ if (priv->bshowbutton == EINA_TRUE) {
+ if (IS_PORTRAIT_MODE(ad->rotate_angle)) {
+/***This if else condtion has to be updated when we get more info on single sim and double sim handling***/
+ if (0) {
+ edje_object_signal_emit(_EDJ(priv->contents), "show_end_menu_3_btns", "show_3_btns");
+ } else {
+ edje_object_signal_emit(_EDJ(priv->contents), "show_end_menu_2_btns", "show_2_btns");
+ }
+ } else {
+ edje_object_signal_emit(_EDJ(priv->contents), "show_end_menu_btns_landscape", "show_btns");
+ }
+ }
+
+ if (ad->call_end_type == CALL_END_TYPE_SINGLE_CALL) {
+ CALLUI_DEBUG(DEBUG, "CALL_END_TYPE_SINGLE_CALL type end screen");
+ CALLUI_SECURE_LOGD("file_path: %s", priv->caller_id_path);
+
+ if (strcmp(priv->caller_id_path, "default") != 0) {
+ _vcui_show_caller_id(priv->caller_info, priv->caller_id_path, TRUE);
+ } else if (_vcui_doc_get_is_favorite_contact(call_data)) {
+ _vcui_show_favorit_caller_id(priv->caller_info, _vcui_doc_get_contact_index(call_data));
+ }
+
+ /* Update End-Screen Contacts btn's */
+ if ((strlen(priv->call_number) != 0) &&
+ (_vcui_is_fm_lock() != EINA_TRUE)) {
+ if (priv->contact_person_id > 0) {
+ _vcui_create_view_contact_button(view_data, priv->contact_person_id);
+ } else {
+ _vcui_create_create_contacts_button(view_data,
+ priv->call_number);
+ _vcui_create_update_existing_contact_button(view_data,
+ priv->call_number);
+ }
+ }
+ } else if (ad->call_end_type == CALL_END_TYPE_CONF_CALL) {
+ CALLUI_DEBUG(DEBUG, "CALL_END_TYPE_CONF_CALL type end screen");
+
+ if (priv->call_status == CALL_HOLD) {
+ CALLUI_DEBUG(DEBUG, "ad->root_w: %d ad->root_h: %d", ad->root_w, ad->root_h);
+ if (ad->root_w == MAIN_WIN_HD_W && ad->root_h == MAIN_WIN_HD_H) {
+ if (IS_PORTRAIT_MODE(ad->rotate_angle)) {
+ elm_object_signal_emit(priv->contents, "SHOW_DIM_HD", "CID_HD");
+ } else {
+ elm_object_signal_emit(priv->contents, "SHOW_DIM_HD_LANDSCAPE", "CID_HD");
+ }
+ } else if (ad->root_w == MAIN_WIN_WVGA_W && ad->root_h == MAIN_WIN_WVGA_H) {
+ if (IS_PORTRAIT_MODE(ad->rotate_angle)) {
+ elm_object_signal_emit(priv->contents, "SHOW_DIM_WVGA", "CID_WVGA");
+ } else {
+ elm_object_signal_emit(priv->contents, "SHOW_DIM_WVGA_LANDSCAPE", "CID_WVGA");
+ }
+ }
+ } else {
+ if (IS_PORTRAIT_MODE(ad->rotate_angle)) {
+ elm_object_signal_emit(priv->contents, "HIDE_DIM", "CID");
+ } else {
+ elm_object_signal_emit(priv->contents, "HIDE_DIM_LANDSCAPE", "CID");
+ }
+ }
+ } else if (ad->call_end_type == CALL_END_TYPE_MULTIPARTY_CALL) {
+ CALLUI_DEBUG(DEBUG, "CALL_END_TYPE_MULTIPARTY_CALL type end screen");
+
+ CALLUI_SECURE_LOGD("file_path: %s", priv->caller_id_path);
+ if (strcmp(priv->caller_id_path, "default") != 0) {
+ _vcui_show_caller_id(priv->caller_info, priv->caller_id_path, TRUE);
+ /*put blur effect on full-cid*/
+ } else if (_vcui_doc_get_is_favorite_contact(call_data)) {
+ _vcui_show_favorit_caller_id(priv->caller_info, _vcui_doc_get_contact_index(call_data));
+ }
+ } else {
+ CALLUI_DEBUG(WARN, "invalid type... return");
+ }
+#endif
+ return 0;
+}
+
+Evas_Object *_callui_view_callend_get_layout(call_view_data_t *vd)
+{
+ dbg("..");
+ callui_endcall_view_priv_t *priv = NULL;
+
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, NULL);
+ priv = (callui_endcall_view_priv_t *) vd->priv;
+
+ CALLUI_RETURN_VALUE_IF_FAIL(priv, NULL);
+ return priv->contents;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "callui-view-manager.h"
+#include "callui-view-circle.h"
+#include "callui-view-incoming-lock.h"
+#include "callui-view-elements.h"
+#include "callui-view-layout-wvga.h"
+#include "callui-common.h"
+
+static void __callui_view_circle_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void __callui_view_circle_multi_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void __callui_view_circle_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void __callui_view_circle_multi_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void __callui_view_circle_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void __callui_view_circle_multi_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void __callui_view_circle_accept_down(call_view_data_t *vd, callui_app_data_t *ad, int x, int y);
+static void __callui_view_circle_accept_move(call_view_data_t *vd, callui_app_data_t *ad, int x, int y);
+static void __callui_view_circle_accept_up(call_view_data_t *vd, callui_app_data_t *ad, int x, int y);
+static void __callui_view_circle_reject_down(call_view_data_t *vd, callui_app_data_t *ad, int x, int y);
+static void __callui_view_circle_reject_move(call_view_data_t *vd, callui_app_data_t *ad, int x, int y);
+static void __callui_view_circle_reject_up(call_view_data_t *vd, callui_app_data_t *ad, int x, int y);
+
+static int accept_touch_num = -1;
+static int reject_touch_num = -1;
+
+static int accept_button_center_x = -1;
+static int reject_button_center_x = -1;
+static int button_center_y = -1;
+static int button_radius = -1;
+static int accept_outer_circle_x = -1;
+static int reject_outer_circle_x = -1;
+static int outer_circle_y = -1;
+static int outer_circle_radius = -1;
+static int outer_circle_width = -1;
+static int outer_circle_height = -1;
+
+static Eina_Bool baccept_clicked;
+static Eina_Bool breject_clicked;
+
+static void __callui_view_circle_handle_accept(call_view_data_t *vd, callui_app_data_t *ad)
+{
+ dbg("..");
+
+ int ret = -1;
+ if (_callui_common_get_idle_lock_type() == LOCK_TYPE_SWIPE_LOCK) {
+ _callui_common_unlock_swipe_lock();
+ }
+
+ if (vd->type == VIEW_INCOMING_LOCK_VIEW) {
+ if (ad->active == NULL) {
+ dbg("No Call Or Held call - Accept");
+
+ ret = cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_NORMAL);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_answer_call() is failed");
+ return;
+ }
+ } else {
+ dbg("Show popup - 2nd MT call - test volume popup");
+ _callui_load_second_call_popup(ad);
+ }
+ }
+}
+
+static void __callui_view_circle_handle_reject(call_view_data_t *vd, callui_app_data_t *ad)
+{
+ dbg("..");
+ int ret = -1;
+
+ if (vd->type == VIEW_INCOMING_LOCK_VIEW) {
+ ret = cm_reject_call(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_reject_call() is failed");
+ }
+ }
+ return;
+}
+
+static Evas_Object *__callui_view_circle_get_accept_layout(void *data)
+{
+ call_view_data_t *vd = (call_view_data_t *)data;
+ Evas_Object *layout = NULL;
+ switch (vd->type) {
+ case VIEW_INCOMING_LOCK_VIEW:
+ {
+ layout = _callui_view_incoming_lock_get_accept_layout(vd);
+ }
+ break;
+ default:
+ err("vd type is error");
+ return NULL;
+ }
+ return layout;
+}
+
+static void __callui_view_circle_set_accept_layout(void *data, Evas_Object *layout)
+{
+ call_view_data_t *vd = (call_view_data_t *)data;
+ switch (vd->type) {
+ case VIEW_INCOMING_LOCK_VIEW:
+ {
+ _callui_view_incoming_lock_set_accept_layout(vd, layout);
+ }
+ break;
+ default:
+ err("vd type is error");
+ }
+}
+
+static Evas_Object *__callui_view_circle_get_reject_layout(void *data)
+{
+ call_view_data_t *vd = (call_view_data_t *)data;
+ Evas_Object *layout = NULL;
+ switch (vd->type) {
+ case VIEW_INCOMING_LOCK_VIEW:
+ {
+ layout = _callui_view_incoming_lock_get_reject_layout(vd);
+ }
+ break;
+ default:
+ err("code should never reach here");
+ return NULL;
+ }
+ return layout;
+}
+
+static void __callui_view_circle_set_reject_layout(void *data, Evas_Object *layout)
+{
+ call_view_data_t *vd = (call_view_data_t *)data;
+ switch (vd->type) {
+ case VIEW_INCOMING_LOCK_VIEW:
+ {
+ _callui_view_incoming_lock_set_reject_layout(vd, layout);
+ }
+ break;
+ default:
+ err("vd type is error");
+ }
+}
+
+static Evas_Coord __callui_view_circle_get_distance(callui_app_data_t *ad, int centre_x, int point_x, int point_y)
+{
+ int centre_y = 0;
+
+ centre_y = button_center_y;
+ return (Evas_Coord)sqrt((point_x-centre_x)*(point_x-centre_x) + (point_y-centre_y)*(point_y-centre_y));
+}
+
+static void __callui_view_circle_accept_down(call_view_data_t *vd, callui_app_data_t *ad, int x, int y)
+{
+ dbg("..");
+ Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd);
+
+ int point_distance = 0;
+
+ point_distance = __callui_view_circle_get_distance(ad, accept_button_center_x, x, y);
+ dbg("point_distance(%d)", point_distance);
+
+ if (point_distance < button_radius) {
+ dbg("Point lies inside the region");
+ baccept_clicked = EINA_TRUE;
+ elm_object_signal_emit(lock_accept, "outer_circle,show", "outer-circle");
+ } else {
+ warn("Point lies outside the region");
+ baccept_clicked = EINA_FALSE;
+ }
+}
+
+static void __callui_view_circle_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ dbg("");
+ Evas_Event_Mouse_Down *ev = event_info;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCOMING_LOCK_VIEW);
+
+ CALLUI_RETURN_IF_FAIL(vd);
+
+ if (-1 == accept_touch_num && -1 == reject_touch_num) {
+ __callui_view_circle_accept_down(vd, ad, ev->canvas.x, ev->canvas.y);
+ if (TRUE == baccept_clicked) {
+ accept_touch_num = 0;
+ } else {
+ __callui_view_circle_reject_down(vd, ad, ev->canvas.x, ev->canvas.y);
+ if (TRUE == breject_clicked)
+ reject_touch_num = 0;
+ }
+ }
+}
+
+static void __callui_view_circle_multi_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ Evas_Event_Multi_Down *ev = event_info;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCOMING_LOCK_VIEW);
+
+ CALLUI_RETURN_IF_FAIL(vd);
+
+ dbg("ev->device = %d, accept_touch_num = %d", ev->device, accept_touch_num);
+ if (-1 == accept_touch_num && -1 == reject_touch_num) {
+ __callui_view_circle_accept_down(vd, ad, ev->canvas.x, ev->canvas.y);
+ if (TRUE == baccept_clicked) {
+ accept_touch_num = ev->device;
+ } else {
+ __callui_view_circle_reject_down(vd, ad, ev->canvas.x, ev->canvas.y);
+ if (TRUE == breject_clicked)
+ reject_touch_num = ev->device;
+ }
+ }
+
+}
+
+static void __callui_view_circle_accept_move(call_view_data_t *vd, callui_app_data_t *ad, int x, int y)
+{
+ Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd);
+
+ Evas_Coord point_distance = 0;
+
+ if (baccept_clicked) {
+ Evas_Object *circle_bg = _callui_edje_object_part_get(lock_accept, "accept_inner_circle_bg");
+ point_distance = __callui_view_circle_get_distance(ad, accept_button_center_x, x, y);
+
+ if (point_distance < outer_circle_radius) {
+ evas_object_move(circle_bg, accept_button_center_x-point_distance, button_center_y-point_distance);
+ evas_object_resize(circle_bg, point_distance*2, point_distance*2);
+ evas_object_image_fill_set(circle_bg, 0, 0, point_distance*2, point_distance*2);
+ } else {
+ evas_object_move(circle_bg, accept_outer_circle_x, outer_circle_y);
+ evas_object_resize(circle_bg, outer_circle_width, outer_circle_height);
+ evas_object_image_fill_set(circle_bg, 0, 0, outer_circle_width, outer_circle_height);
+ }
+ } else {
+ warn("Initial click is not in correct region");
+ }
+}
+
+static void __callui_view_circle_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ Evas_Event_Mouse_Move *ev = event_info;
+ CALLUI_RETURN_IF_FAIL(ev);
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad);
+ call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCOMING_LOCK_VIEW);
+ CALLUI_RETURN_IF_FAIL(vd);
+ if (accept_touch_num == 0)
+ __callui_view_circle_accept_move(vd, ad, ev->cur.canvas.x, ev->cur.canvas.y);
+ else if (reject_touch_num == 0)
+ __callui_view_circle_reject_move(vd, ad, ev->cur.canvas.x, ev->cur.canvas.y);
+}
+
+static void __callui_view_circle_multi_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ Evas_Event_Multi_Move *ev = event_info;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCOMING_LOCK_VIEW);
+ dbg("ev->device = %d, accept_touch_num = %d", ev->device, accept_touch_num);
+ if (vd) {
+ if (accept_touch_num == ev->device)
+ __callui_view_circle_accept_move(vd, ad, ev->cur.canvas.x, ev->cur.canvas.y);
+ else if (reject_touch_num == ev->device)
+ __callui_view_circle_reject_move(vd, ad, ev->cur.canvas.x, ev->cur.canvas.y);
+ }
+
+}
+
+static void __callui_view_circle_accept_up(call_view_data_t *vd, callui_app_data_t *ad, int x, int y)
+{
+ dbg("..");
+ Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd);
+ Evas_Coord point_distance = 0;
+
+ if (baccept_clicked) {
+ dbg("Initial click is in right region");
+ Evas_Object *circle_bg = _callui_edje_object_part_get(lock_accept, "accept_inner_circle_bg");
+ point_distance = __callui_view_circle_get_distance(ad, accept_button_center_x, x, y);
+ if (point_distance >= outer_circle_radius) {
+ evas_object_move(circle_bg, accept_outer_circle_x, outer_circle_y);
+ evas_object_resize(circle_bg, outer_circle_width, outer_circle_height);
+ evas_object_image_fill_set(circle_bg, 0, 0, outer_circle_width, outer_circle_height);
+
+ dbg("__callui_view_circle_handle_accept");
+ __callui_view_circle_handle_accept(vd, ad);
+ } else {
+ elm_object_signal_emit(lock_accept, "outer_circle,hide", "outer-circle");
+ }
+ } else {
+ warn("Initial click is not in correct region");
+ }
+}
+
+static void __callui_view_circle_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ Evas_Event_Mouse_Up *ev = event_info;
+ CALLUI_RETURN_IF_FAIL(ev);
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad);
+ call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCOMING_LOCK_VIEW);
+ CALLUI_RETURN_IF_FAIL(vd);
+
+ if (accept_touch_num == 0) {
+ __callui_view_circle_accept_up(vd, ad, ev->canvas.x, ev->canvas.y);
+ accept_touch_num = -1;
+ } else if (reject_touch_num == 0) {
+ __callui_view_circle_reject_up(vd, ad, ev->canvas.x, ev->canvas.y);
+ reject_touch_num = -1;
+ }
+}
+
+static void __callui_view_circle_multi_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ Evas_Event_Multi_Up *ev = event_info;
+ CALLUI_RETURN_IF_FAIL(ev);
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad);
+ call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCOMING_LOCK_VIEW);
+ CALLUI_RETURN_IF_FAIL(vd);
+ dbg("ev->device = %d", ev->device);
+
+ if (accept_touch_num == ev->device) {
+ __callui_view_circle_accept_up(vd, ad, ev->canvas.x, ev->canvas.y);
+ accept_touch_num = -1;
+ } else if (reject_touch_num == ev->device) {
+ __callui_view_circle_reject_up(vd, ad, ev->canvas.x, ev->canvas.y);
+ reject_touch_num = -1;
+ }
+}
+
+static void __callui_view_circle_reject_down(call_view_data_t *vd, callui_app_data_t *ad, int x, int y)
+{
+ dbg("..");
+ Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd);
+ int point_distance = 0;
+
+ point_distance = __callui_view_circle_get_distance(ad, reject_button_center_x, x, y);
+
+ if (point_distance < button_radius) {
+ dbg("Point lies inside the region");
+ breject_clicked = EINA_TRUE;
+ elm_object_signal_emit(lock_reject, "outer_circle,show", "outer-circle");
+ } else {
+ warn("Point lies outside the region");
+ breject_clicked = EINA_FALSE;
+ }
+}
+
+static void __callui_view_circle_reject_move(call_view_data_t *vd, callui_app_data_t *ad, int x, int y)
+{
+ Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd);
+
+ Evas_Coord point_distance = 0;
+
+ if (breject_clicked) {
+ Evas_Object *circle_bg = _callui_edje_object_part_get(lock_reject, "reject_inner_circle_bg");
+
+ point_distance = __callui_view_circle_get_distance(ad, reject_button_center_x, x, y);
+ if (point_distance < outer_circle_radius) {
+ evas_object_move(circle_bg, reject_button_center_x-point_distance, button_center_y-point_distance);
+ evas_object_resize(circle_bg, point_distance*2, point_distance*2);
+ evas_object_image_fill_set(circle_bg, 0, 0, point_distance*2, point_distance*2);
+ } else {
+ evas_object_move(circle_bg, reject_outer_circle_x, outer_circle_y);
+ evas_object_resize(circle_bg, outer_circle_width, outer_circle_height);
+ evas_object_image_fill_set(circle_bg, 0, 0, outer_circle_width, outer_circle_height);
+ }
+ } else {
+ warn("Initial click is not in correct region");
+ }
+}
+
+static void __callui_view_circle_reject_up(call_view_data_t *vd, callui_app_data_t *ad, int x, int y)
+{
+ dbg("..");
+ Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd);
+ Evas_Coord point_distance = 0;
+
+ if (breject_clicked) {
+ dbg("Initial click is in right region");
+ Evas_Object *circle_bg = _callui_edje_object_part_get(lock_reject, "reject_inner_circle_bg");
+ point_distance = __callui_view_circle_get_distance(ad, reject_button_center_x, x, y);
+ if (point_distance >= outer_circle_radius) {
+ evas_object_move(circle_bg, reject_outer_circle_x, outer_circle_y);
+ evas_object_resize(circle_bg, outer_circle_width, outer_circle_height);
+ evas_object_image_fill_set(circle_bg, 0, 0, outer_circle_width, outer_circle_height);
+ __callui_view_circle_handle_reject(vd, ad);
+ } else {
+ elm_object_signal_emit(lock_reject, "outer_circle,hide", "outer-circle");
+ elm_object_signal_emit(lock_reject, "inner_circle,show", "inner-circle");
+ }
+ } else {
+ warn("Initial click is not in correct region");
+ }
+}
+
+void _callui_view_circle_accept_reject_reset(void *data)
+{
+ dbg("..");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd);
+ Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd);
+
+ baccept_clicked = EINA_FALSE;
+ breject_clicked = EINA_FALSE;
+
+ elm_object_signal_emit(lock_reject, "inner_circle,show", "inner-circle");
+ elm_object_signal_emit(lock_accept, "inner_circle,show", "inner-circle");
+
+}
+
+static void __callui_view_circle_reject_focus_key_down(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ Evas_Event_Key_Down *ev = event_info;
+ if (!ev) return;
+ if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+ return;
+
+ if ((!strcmp(ev->keyname, "Return")) ||
+ (!strcmp(ev->keyname, "KP_Enter"))) {
+ dbg("..");
+ }
+}
+
+Evas_Object *_callui_view_circle_create_reject_layout(callui_app_data_t *ad, void *data)
+{
+ dbg("..");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ Evas_Object *lock_reject = __callui_view_circle_get_reject_layout(vd);
+ Evas_Object *focus = NULL;
+ Evas_Object *inner_circle = NULL;
+ Evas_Object *outer_circle = NULL;
+ int x = 0;
+ int y = 0;
+ int width = 0;
+ int height = 0;
+
+ if (lock_reject != NULL) {
+ evas_object_del(lock_reject);
+ __callui_view_circle_set_reject_layout(vd, NULL);
+ }
+
+ lock_reject = _callui_load_edj(ad->win, EDJ_NAME, GRP_LOCK_REJECT);
+ evas_object_resize(lock_reject, ad->root_w, ad->root_h);
+ evas_object_move(lock_reject, 0, 0);
+
+ __callui_view_circle_set_reject_layout(vd, lock_reject);
+
+ elm_object_signal_emit(lock_reject, "outer_circle,hide", "outer-circle");
+
+ elm_object_part_text_set(lock_reject, "reject_text", _("IDS_CALL_BUTTON_REJECT"));
+
+ evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MOUSE_DOWN, __callui_view_circle_mouse_down_cb, ad);
+ evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_circle_mouse_move_cb, ad);
+ evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MOUSE_UP, __callui_view_circle_mouse_up_cb, ad);
+ evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MULTI_DOWN, __callui_view_circle_multi_down_cb, ad);
+ evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MULTI_MOVE, __callui_view_circle_multi_move_cb, ad);
+ evas_object_event_callback_add(lock_reject, EVAS_CALLBACK_MULTI_UP, __callui_view_circle_multi_up_cb, ad);
+
+ focus = _callui_view_create_focus_layout(ad->win);
+ evas_object_event_callback_add(focus, EVAS_CALLBACK_KEY_DOWN, __callui_view_circle_reject_focus_key_down, vd);
+ elm_object_part_content_set(lock_reject, "reject_inner_circle_focus", focus);
+
+ inner_circle = _callui_edje_object_part_get(lock_reject, "reject_inner_circle");
+ evas_object_geometry_get(inner_circle, &x, &y, &width, &height);
+ dbg("inner circle[%p] geometry: x = %d y = %d w1 =%d h1 =%d\n", inner_circle, x, y, width, height);
+ reject_button_center_x = x+(width/2);
+ dbg("Button center X[%d] Y[%d]", reject_button_center_x, button_center_y);
+
+ outer_circle = _callui_edje_object_part_get(lock_reject, "rect_outer_circle");
+ evas_object_geometry_get(outer_circle, &x, &y, &width, &height);
+ reject_outer_circle_x = x;
+
+ evas_object_show(lock_reject);
+
+ return lock_reject;
+}
+
+static void __callui_view_circle_accept_focus_key_down(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ Evas_Event_Key_Down *ev = event_info;
+
+ if (!ev) return;
+ if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+ return;
+
+ if ((!strcmp(ev->keyname, "Return")) ||
+ (!strcmp(ev->keyname, "KP_Enter"))) {
+ dbg("..");
+ }
+}
+
+Evas_Object *_callui_view_circle_create_accept_layout(callui_app_data_t *ad, void *data)
+{
+ dbg("..");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ Evas_Object *lock_accept = __callui_view_circle_get_accept_layout(vd);
+ Evas_Object *focus = NULL;
+ Evas_Object *inner_circle = NULL;
+ Evas_Object *outer_circle = NULL;
+ int x = 0;
+ int y = 0;
+ int width = 0;
+ int height = 0;
+
+ if (lock_accept != NULL) {
+ evas_object_del(lock_accept);
+ __callui_view_circle_set_accept_layout(vd, NULL);
+ }
+
+ lock_accept = _callui_load_edj(ad->win, EDJ_NAME, GRP_LOCK_ACCEPT);
+ evas_object_resize(lock_accept, ad->root_w, ad->root_h);
+ evas_object_move(lock_accept, 0, 0);
+
+ __callui_view_circle_set_accept_layout(vd, lock_accept);
+
+ elm_object_signal_emit(lock_accept, "outer_circle,hide", "outer-circle");
+
+ elm_object_part_text_set(lock_accept, "accept_text", _("IDS_CALL_BUTTON_ACCEPT"));
+ evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MOUSE_DOWN, __callui_view_circle_mouse_down_cb, ad);
+ evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_circle_mouse_move_cb, ad);
+ evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MOUSE_UP, __callui_view_circle_mouse_up_cb, ad);
+ evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MULTI_DOWN, __callui_view_circle_multi_down_cb, ad);
+ evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MULTI_MOVE, __callui_view_circle_multi_move_cb, ad);
+ evas_object_event_callback_add(lock_accept, EVAS_CALLBACK_MULTI_UP, __callui_view_circle_multi_up_cb, ad);
+
+ focus = _callui_view_create_focus_layout(ad->win);
+ evas_object_event_callback_add(focus, EVAS_CALLBACK_KEY_DOWN, __callui_view_circle_accept_focus_key_down, ad);
+ elm_object_part_content_set(lock_accept, "accept_inner_circle_focus", focus);
+ elm_object_focus_set(focus, EINA_TRUE);
+
+ inner_circle = _callui_edje_object_part_get(lock_accept, "accept_inner_circle");
+ evas_object_geometry_get(inner_circle, &x, &y, &width, &height);
+ dbg("inner circle[%p] geometry: x = %d y = %d w1 =%d h1 =%d\n", inner_circle, x, y, width, height);
+ button_center_y = y+(height/2);
+ accept_button_center_x = x+(width/2);
+ button_radius = width/2;
+ dbg("Button center X[%d] Y[%d]", accept_button_center_x, button_center_y);
+
+ outer_circle = _callui_edje_object_part_get(lock_accept, "rect_outer_circle");
+ evas_object_geometry_get(outer_circle, &x, &y, &width, &height);
+ dbg("outer circle[%p] geometry: x = %d y = %d w1 =%d h1 =%d\n", outer_circle, x, y, width, height);
+ accept_outer_circle_x = x;
+ outer_circle_y = y;
+ outer_circle_radius = width/2;
+ outer_circle_width = width;
+ outer_circle_height = height;
+ dbg("Outer Circle X[%d] Y[%d] Radius[%d]", accept_outer_circle_x, outer_circle_y, outer_circle_radius);
+ evas_object_show(lock_accept);
+
+ return lock_accept;
+}
+
+Eina_Bool _callui_view_circle_easy_touch_state(void)
+{
+ int value = EINA_FALSE;
+
+ /*if (0 != vconf_get_bool(VCONFKEY_SETAPPL_EASY_TOUCH_MODE_BOOL, &value)) {
+ CALLUI_DEBUG(WARN, "vconf_get_bool failed.");
+ }*/
+
+ return value;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 <Elementary.h>
+
+#include "callui-view-dialing.h"
+#include "callui.h"
+#include "callui-view-manager.h"
+#include "callui-view-elements.h"
+#include "callui-keypad.h"
+#include "callui-view-quickpanel.h"
+#include "callui-common.h"
+
+struct callui_view_dialing_priv {
+ Evas_Object *contents;
+ Evas_Object *caller_info;
+ Evas_Object *btn_ly;
+ Evas_Object *ic;
+ Eina_Bool bredial;
+
+ Ecore_Timer *lock_delay_timer;
+};
+
+#define VIEW_DIALING_LAYOUT_ID "DIALVIEW"
+
+static int __callui_view_dialing_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *appdata);
+static int __callui_view_dialing_onupdate(call_view_data_t *view_data, void *update_data1);
+static int __callui_view_dialing_onhide(call_view_data_t *view_data);
+static int __callui_view_dialing_onshow(call_view_data_t *view_data, void *appdata);
+static int __callui_view_dialing_ondestroy(call_view_data_t *view_data);
+static int __callui_view_dialing_onrotate(call_view_data_t *view_data);
+
+call_view_data_t *_callui_dialing_view_dialing_new(callui_app_data_t *ad)
+{
+ static call_view_data_t dialing_view = {
+ .type = VIEW_DIALLING_VIEW,
+ .layout = NULL,
+ .onCreate = __callui_view_dialing_oncreate,
+ .onUpdate = __callui_view_dialing_onupdate,
+ .onHide = __callui_view_dialing_onhide,
+ .onShow = __callui_view_dialing_onshow,
+ .onDestroy = __callui_view_dialing_ondestroy,
+ .onRotate = __callui_view_dialing_onrotate,
+ .priv = NULL,
+ };
+ dialing_view.priv = calloc(1, sizeof(callui_view_dialing_priv_t));
+
+ if (!dialing_view.priv) {
+ err("ERROR!!!!!!!!!!! ");
+ }
+
+ return &dialing_view;
+}
+
+static Evas_Object *__callui_view_dialing_create_contents(void *data, char *grpname)
+{
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ Evas_Object *eo = NULL;
+
+ /* load edje */
+ eo = _callui_load_edj(ad->main_ly, EDJ_NAME, grpname);
+ if (eo == NULL) {
+ err("__callui_view_dialing_create_contents ERROR");
+ return NULL;
+ }
+ return eo;
+}
+
+static Eina_Bool __callui_view_dialing_lock_delay_timeout_cb(void *data)
+{
+ call_view_data_t *vd = (call_view_data_t *)data;
+ callui_view_dialing_priv_t *priv = vd->priv;
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ if (ad->lock_screen_handle == NULL) {
+ ad->lock_screen_handle = _callui_lock_screen_create_layout(vd);
+ } else {
+ _callui_lock_screen_show_layout(ad->lock_screen_handle);
+ }
+ priv->lock_delay_timer = NULL;
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static void __callui_view_dialing_draw_screen(callui_app_data_t *ad, Evas_Object *eo, void *data)
+{
+ dbg("__callui_view_dialing_draw_screen");
+
+ call_view_data_t *vd = (call_view_data_t *)data;
+ callui_view_dialing_priv_t *priv = (callui_view_dialing_priv_t *)vd->priv;
+ call_data_t *now_call_data = ad->active;
+ CALLUI_RETURN_IF_FAIL(now_call_data);
+ char *file_path = NULL;
+ char *sim_name = NULL;
+ char status_txt[128 + 1] = { '\0', };
+
+ call_view_data_t *q_vd = _callvm_get_call_view_data(ad, VIEW_QUICKPANEL_VIEW);
+
+ if (now_call_data == NULL) {
+ err("Now Data is NULL");
+ return;
+ }
+
+ file_path = now_call_data->call_ct_info.caller_id_path;
+ sec_dbg("file_path: %s", file_path);
+
+ char *call_name = now_call_data->call_ct_info.call_disp_name;
+ char *disp_number = NULL;
+ if (strlen(now_call_data->call_disp_num) > 0) {
+ disp_number = now_call_data->call_disp_num;
+ } else {
+ disp_number = now_call_data->call_num;
+ }
+
+ if (now_call_data->is_emergency == EINA_TRUE) {
+ call_name = _("IDS_COM_BODY_EMERGENCY_NUMBER");
+ disp_number = "";
+ }
+
+ if (strlen(call_name) == 0) {
+ _callui_show_caller_info_name(ad, disp_number, EINA_FALSE);
+ elm_object_signal_emit(priv->caller_info, "1line", "caller_name");
+ } else if (now_call_data->is_emergency == EINA_TRUE) {
+ _callui_show_caller_info_name(ad, call_name, EINA_FALSE);
+ elm_object_signal_emit(priv->caller_info, "1line", "caller_name");
+ } else {
+ _callui_show_caller_info_name(ad, call_name, EINA_FALSE);
+ _callui_show_caller_info_number(ad, disp_number, EINA_FALSE);
+ elm_object_signal_emit(priv->caller_info, "2line", "caller_name");
+ }
+
+ _callui_show_caller_info_status(ad, _("IDS_CALL_POP_DIALLING"), EINA_FALSE);
+
+ _callui_create_top_first_button(ad);
+ _callui_create_top_second_button(ad);
+ _callui_create_top_third_button(ad);
+ _callui_create_bottom_first_button_disabled(ad);
+ _callui_create_bottom_second_button_disabled(ad);
+ _callui_create_bottom_third_button_disabled(ad);
+
+ elm_object_signal_emit(priv->contents, "SHOW_EFFECT", "ALLBTN");
+
+ /*_vcui_elements_check_keypad_n_hide(vd);*/
+ _callui_create_end_call_button(priv->contents, vd);
+
+ evas_object_show(eo);
+
+ if (q_vd) {
+ _callui_view_qp_update_text_status(_("IDS_CALL_POP_DIALLING"));
+ }
+
+ if (now_call_data->is_emergency == EINA_TRUE) {
+ elm_object_signal_emit(priv->caller_info, "set_emergency_mode", "");
+ } else {
+ if (strcmp(file_path, "default") != 0) {
+ _callui_show_caller_id(priv->caller_info, file_path, FALSE);
+ }
+ }
+ /*evas_event_callback_add(evas_object_evas_get(eo),
+ EVAS_CALLBACK_RENDER_POST, __vcui_view_dialing_post_render_cb, vd);*/
+}
+
+static int __callui_view_dialing_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *appdata)
+{
+ dbg("dialling view create!!");
+ callui_app_data_t *ad = (callui_app_data_t *) appdata;
+ callui_view_dialing_priv_t *priv = (callui_view_dialing_priv_t *)view_data->priv;
+
+ if (ad->main_ly) {
+ priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
+ if (!priv->contents) {
+ priv->contents = __callui_view_dialing_create_contents(ad, GRP_MAIN_LY);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
+ }
+
+ priv->btn_ly = elm_object_part_content_get(priv->contents, "btn_region");
+ if (!priv->btn_ly) {
+ priv->btn_ly = __callui_view_dialing_create_contents(ad, GRP_BUTTON_LAYOUT);
+ elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly);
+ }
+
+ priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info");
+ if (!priv->caller_info) {
+ priv->caller_info = __callui_view_dialing_create_contents(ad, GRP_CALLER_INFO);
+ elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info);
+ }
+ evas_object_name_set(priv->contents, VIEW_DIALING_LAYOUT_ID);
+ dbg("[========== DIALVIEW: priv->contents Addr : [%p] ==========]", priv->contents);
+
+ /*create keypad layout*/
+ _callui_keypad_create_layout(ad);
+ }
+ __callui_view_dialing_onshow(view_data, ad);
+
+ /* Create Lock Screen instead of using proximity sensor */
+ if (priv->lock_delay_timer == NULL) {
+ priv->lock_delay_timer = ecore_timer_add(2, __callui_view_dialing_lock_delay_timeout_cb, view_data);
+ }
+
+ return 0;
+}
+
+static int __callui_view_dialing_onupdate(call_view_data_t *view_data, void *update_data)
+{
+#if 0
+ CALLUI_DEBUG(DEBUG, "dialling view update");
+ call_view_data_t *priv = view_data->priv;
+
+ __vcui_view_dialing_draw_screen(priv->contents, view_data);
+#endif
+ return 0;
+}
+
+static int __callui_view_dialing_onhide(call_view_data_t *view_data)
+{
+ dbg("dialling view hide");
+
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ evas_object_hide(ad->main_ly);
+
+ return 0;
+}
+
+static int __callui_view_dialing_onshow(call_view_data_t *view_data, void *appdata)
+{
+ dbg("dialling view show");
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+
+ callui_view_dialing_priv_t *priv = (callui_view_dialing_priv_t *)view_data->priv;
+
+ __callui_view_dialing_draw_screen(ad, priv->contents, view_data);
+
+ evas_object_hide(ad->main_ly);
+ evas_object_show(ad->main_ly);
+
+ return 0;
+}
+
+static int __callui_view_dialing_ondestroy(call_view_data_t *vd)
+{
+ dbg("dialling view destroy");
+
+ callui_app_data_t *ad = _callui_get_app_data();
+ callui_view_dialing_priv_t *priv = (callui_view_dialing_priv_t *)vd->priv;
+
+ if (priv != NULL) {
+ /*Delete keypad layout */
+ _callui_keypad_delete_layout(ad);
+ elm_object_signal_emit(priv->contents, "HIDE_BTN_LY", "ALLBTN");
+ _callui_common_reset_main_ly_text_fields(priv->contents);
+ ecore_timer_del(priv->lock_delay_timer);
+ free(priv);
+ priv = NULL;
+ }
+
+ _callvm_reset_call_view_data(ad, VIEW_DIALLING_VIEW);
+
+ return 0;
+}
+
+static int __callui_view_dialing_onrotate(call_view_data_t *view_data)
+{
+ dbg("*** Dialling view Rotate ***");
+#if 0
+ call_view_data_t *priv = view_data->priv;
+ callui_app_data_t *ad = _vcui_get_app_data();
+ call_data_t *now_call_data = _vcui_doc_get_mo_call_data();
+ char *file_path = NULL;
+
+ if (now_call_data == NULL) {
+ CALLUI_DEBUG(DEBUG, "Now Data is NULL");
+ return -1;
+ }
+
+ file_path = _vcui_doc_get_caller_id_file_path(now_call_data);
+ CALLUI_SECURE_LOGD("file_path: %s", file_path);
+
+ if (strcmp(file_path, "default") != 0) {
+ _vcui_show_caller_id(priv->caller_info, file_path, FALSE);
+ } else if (_vcui_doc_get_is_favorite_contact(now_call_data)) {
+ _vcui_show_favorit_caller_id(priv->caller_info, _vcui_doc_get_contact_index(now_call_data));
+ }
+
+ if (IS_PORTRAIT_MODE(ad->rotate_angle)) { /* Portrait Mode */
+ elm_object_signal_emit(priv->contents, "set_portrait", "mo_view_layout");
+ elm_object_signal_emit(priv->caller_info, "set_portrait", "caller_info_layout_without_bg");
+ } else { /* Landscape Mode */
+ elm_object_signal_emit(priv->contents, "set_landscape", "mo_view_layout");
+ elm_object_signal_emit(priv->caller_info, "set_landscape", "caller_info_layout_without_bg");
+ }
+
+#ifdef _VC_SNS_STATUS
+ /*Update the alerts*/
+ _vcui_view_common_update_alerts(now_call_data, EINA_FALSE, view_data);
+#endif
+
+ _vcui_keypad_update_after_rotate(priv->contents, view_data);
+
+ evas_object_show(ad->win_main);
+#endif
+ return 0;
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 <vconf.h>
+#include <vconf-keys.h>
+#include <bluetooth.h>
+
+#include "callui-view-elements.h"
+#include "callui-view-manager.h"
+#include "callui-view-dialing.h"
+#include "callui-view-single-call.h"
+#include "callui-view-callend.h"
+#include "callui-view-incoming-lock.h"
+#include "callui-view-multi-call-split.h"
+#include "callui-view-layout-wvga.h"
+#include "callui-common.h"
+#include "callui-keypad.h"
+#include "callui-view-multi-call-conf.h"
+#include "callui-view-incoming-lock.h"
+#include "callui-view-quickpanel.h"
+#include "callui-view-caller-info-defines.h"
+#include <app_control.h>
+#include <notification.h>
+
+#define POPUP_LIST_W 300
+#define POPUP_LIST_ITEM_H 96
+#define APP_CONTROL_DATA_PHONE "http://tizen.org/appcontrol/data/phone"
+#define APP_CONTROL_MIME_CONTACT "application/vnd.tizen.contact"
+#define APP_CONTROL_OPERATION_ADD "http://tizen.org/appcontrol/operation/add"
+#define APP_CONTROL_DATA_ITEM_ID "http://tizen.org/appcontrol/data/item_id"
+#define CONTACT_ID_BUF_LEN 16
+#define CONTACT_NUMBER_BUF_LEN 32
+
+typedef struct {
+ int index;
+ char option_msg[512];
+} second_call_popup_data_t;
+
+static void __vcui_msg_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static void __vcui_view_contact_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static void __vcui_update_existing_contact_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static void __vcui_create_contact_btn_cb(void *data, Evas_Object *obj, void *event_info);
+static void __callui_unload_more_option(callui_app_data_t *ad);
+
+const char *group_thumbnail[] = {
+ GROUP_THUMBNAIL_98,
+ GROUP_THUMBNAIL_186,
+ "",
+};
+
+const char *group_default_thumbnail[] = {
+ GROUP_DEFAULT_THUMBNAIL_98,
+ GROUP_DEFAULT_THUMBNAIL_186,
+ GROUP_DEFAULT_CONFERENCE_THUMBNAIL_186,
+};
+
+const int thumbnail_size[] = {
+ 98,
+ 186,
+ 186,
+};
+
+Evas_Object *_callui_load_edj(Evas_Object *parent, const char *file, const char *group)
+{
+ Evas_Object *eo;
+ int ret;
+
+ eo = elm_layout_add(parent);
+ if (eo) {
+ ret = elm_layout_file_set(eo, file, group);
+ if (!ret) {
+ evas_object_del(eo);
+ err("ERROR!!");
+ return NULL;
+ }
+
+ evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ }
+
+ return eo;
+}
+
+Evas_Object *_callui_edje_object_part_get(Evas_Object *parent, const char *part)
+{
+ Evas_Object *obj = NULL;
+
+ obj = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(parent), part);
+ if (obj == NULL) {
+ err("(%s) part is not avialable", part);
+ }
+
+ return obj;
+}
+
+static Evas_Object *__callui_create_caller_info(void *data, Eina_Bool bhold)
+{
+ Evas_Object *caller_info = NULL;
+ Evas_Object *layout = NULL;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, NULL);
+
+ layout = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
+ CALLUI_RETURN_VALUE_IF_FAIL(layout, NULL);
+ caller_info = elm_object_part_content_get(layout, "caller_info");
+
+ return caller_info;
+}
+
+static Evas_Object *__callui_create_button_style(void *data, Evas_Object **p_button, char *part_name)
+{
+ Evas_Object *layout = NULL;
+ Evas_Object *btn_ly = NULL;
+ Evas_Object *sw = NULL;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, NULL);
+ layout = _callvm_get_view_layout(ad);
+ CALLUI_RETURN_VALUE_IF_FAIL(layout, NULL);
+ btn_ly = elm_object_part_content_get(layout, "btn_region");
+ CALLUI_RETURN_VALUE_IF_FAIL(btn_ly, NULL);
+
+ sw = edje_object_part_swallow_get(_EDJ(btn_ly), part_name);
+ if (sw) {
+ dbg("Object Already Exists, so Update Only");
+ *p_button = sw;
+ } else {
+ *p_button = elm_button_add(btn_ly);
+ elm_object_part_content_set(btn_ly, part_name, *p_button);
+ }
+
+ return btn_ly;
+}
+
+static void __callui_spk_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+ int ret = -1;
+
+ if (ad->speaker_status == EINA_TRUE) {
+ ret = cm_speaker_off(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_speaker_off() is failed");
+ return;
+ }
+ } else {
+ ret = cm_speaker_on(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_speaker_on() is failed");
+ return;
+ }
+ }
+ _callui_update_speaker_btn(ad, !ad->speaker_status);
+
+ return;
+}
+
+static void __callui_contacts_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ __callui_unload_more_option(ad);
+ _callui_common_launch_contacts(ad);
+}
+
+void _callui_update_speaker_btn(callui_app_data_t *ad, Eina_Bool is_on)
+{
+ dbg("..");
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ ad->speaker_status = is_on;
+ if (is_on) {
+ _callui_lock_screen_stop_timer();
+ } else {
+ _callui_lock_screen_start_timer();
+ }
+
+ /* Update Buttons */
+ _callui_create_top_first_button(ad);
+ _callui_create_quickpanel_speaker_button(ad, EINA_FALSE);
+
+ return;
+}
+
+void _callui_update_headset_btn(callui_app_data_t *ad, Eina_Bool is_on)
+{
+ dbg("..");
+ CALLUI_RETURN_IF_FAIL(ad);
+ ad->headset_status = is_on;
+ _callui_create_top_third_button(ad);
+
+ return;
+}
+
+void _callui_update_mute_btn(callui_app_data_t *ad, Eina_Bool is_on)
+{
+ dbg("..");
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+
+ ad->mute_status = is_on;
+ _callui_create_bottom_second_button(ad);
+ _callui_create_quickpanel_mute_button(ad, EINA_FALSE);
+
+ return;
+}
+
+void _callui_update_extra_vol_btn(callui_app_data_t *ad, Eina_Bool is_on)
+{
+ dbg("..");
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+
+ ad->extra_volume_status = is_on;
+ _callui_create_bottom_third_button(ad);
+
+ return;
+}
+
+void _callui_mute_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+ int ret = -1;
+ gboolean is_mute_on = FALSE;
+
+ if (ad->mute_status == EINA_FALSE) {
+ is_mute_on = TRUE;
+ } else {
+ is_mute_on = FALSE;
+ }
+
+ ret = cm_set_mute_state(ad->cm_handle, is_mute_on);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_set_mute_state() get failed with err[%d]", ret);
+ return;
+ }
+
+ _callui_update_mute_btn(ad, is_mute_on);
+ return;
+}
+
+static void __callui_headset_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+ Eina_Bool bupdate_btn = EINA_FALSE;
+
+ if (ad->headset_status == EINA_TRUE) {
+ ad->headset_status = EINA_FALSE;
+ ad->speaker_status = EINA_FALSE;
+ cm_bluetooth_off(ad->cm_handle);
+ bupdate_btn = EINA_TRUE;
+ } else {
+ /* Check If SCO path exists, open if exists*/
+ if (EINA_TRUE == _callui_common_is_headset_conected()) {
+ ad->headset_status = EINA_TRUE;
+ ad->speaker_status = EINA_FALSE;
+ cm_bluetooth_on(ad->cm_handle);
+ bupdate_btn = EINA_TRUE;
+ } else {
+ bt_adapter_state_e bt_state = -1;
+ int ret_code = bt_adapter_get_state(&bt_state);
+ if ((ret_code == BT_ERROR_NONE) && (bt_state != -1)) {
+ info("BT status value: %d", bt_state);
+ if (bt_state == BT_ADAPTER_DISABLED) {
+ _callui_load_bluetooth_popup(ad);
+ } else {
+ _callui_common_launch_bt_app(ad);
+ }
+ } else {
+ err("fail to get vconf key: %d", ret_code);
+ }
+ bupdate_btn = EINA_FALSE;
+ }
+ }
+
+ if (bupdate_btn) {
+ if (ad->extra_volume_status == EINA_TRUE) {
+ int ret = -1;
+ ret = cm_set_extra_vol(ad->cm_handle, EINA_FALSE);
+ if (ret != CM_ERROR_NONE) {
+ err("Fail cm_set_extra_vol");
+ }
+ ad->extra_volume_status = EINA_FALSE;
+ }
+ /* Update Headset/Speaker buttons */
+ _callui_create_top_first_button(ad);
+ _callui_create_top_third_button(ad);
+ _callui_create_bottom_third_button(ad);
+ }
+}
+
+static void __callui_addcall_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+
+ _callui_common_launch_dialer(ad);
+}
+
+static void __callui_keypad_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+
+ if (_callui_keypad_get_show_status() == EINA_FALSE) { /*show keypad region*/
+ dbg("..");
+ /*Actual show with animation*/
+ _callui_keypad_show_layout(ad);
+ } else {
+ dbg("..");
+ /*Hide animation on keypad*/
+ _callui_keypad_hide_layout(ad);
+ }
+}
+
+/* Speaker Button ENABLED */
+Evas_Object *_callui_create_top_first_button(callui_app_data_t *ad)
+{
+ Evas_Object *btn = NULL;
+ CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL);
+ __callui_create_button_style(ad, &btn, PART_TOP_FIRST_BTN);
+
+ evas_object_smart_callback_del(btn, "clicked", __callui_spk_btn_cb);
+ elm_object_text_set(btn, _("IDS_CALL_BUTTON_SPEAKER"));
+ evas_object_smart_callback_add(btn, "clicked", __callui_spk_btn_cb, ad);
+ if (ad->speaker_status == EINA_FALSE) {
+ elm_object_style_set(btn, "style_call_sixbtn_speaker");
+ } else {
+ elm_object_style_set(btn, "style_call_sixbtn_speaker_on");
+ }
+
+ elm_object_disabled_set(btn, EINA_FALSE);
+
+ return btn;
+}
+
+/* Speaker Button DISABLED */
+Evas_Object *_callui_create_top_first_button_disabled(callui_app_data_t *ad)
+{
+ Evas_Object *btn = NULL;
+ CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL);
+
+ __callui_create_button_style(ad, &btn, PART_TOP_FIRST_BTN);
+ elm_object_style_set(btn, "style_call_sixbtn_disabled_speaker");
+
+ elm_object_text_set(btn, _("IDS_CALL_BUTTON_SPEAKER"));
+ elm_object_disabled_set(btn, EINA_TRUE);
+
+ return btn;
+}
+
+/* Keypad Button ENABLED */
+Evas_Object *_callui_create_top_second_button(callui_app_data_t *ad)
+{
+ Evas_Object *btn = NULL;
+ CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL);
+
+ __callui_create_button_style(ad, &btn, PART_TOP_SECOND_BTN);
+ elm_object_style_set(btn, "style_call_sixbtn_keypad");
+
+ evas_object_smart_callback_del(btn, "clicked", __callui_keypad_btn_cb);
+ evas_object_smart_callback_add(btn, "clicked", __callui_keypad_btn_cb, ad);
+ elm_object_text_set(btn, _("IDS_CALL_SK3_KEYPAD")); /* ToDo: Handle Keypad/Hide layout and text changes */
+ elm_object_disabled_set(btn, EINA_FALSE);
+
+ return btn;
+}
+
+/* Keypad Button DISABLED */
+Evas_Object *_callui_create_top_second_button_disabled(callui_app_data_t *ad)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL);
+ Evas_Object *btn = NULL;
+
+ __callui_create_button_style(ad, &btn, PART_TOP_SECOND_BTN);
+ elm_object_style_set(btn, "style_call_sixbtn_disabled_keypad");
+
+ elm_object_text_set(btn, _("IDS_CALL_SK3_KEYPAD"));
+ elm_object_disabled_set(btn, EINA_TRUE);
+
+ return btn;
+}
+
+/* HeadSet Button ENABLED */
+Evas_Object *_callui_create_top_third_button(callui_app_data_t *ad)
+{
+ Evas_Object *btn = NULL;
+ CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL);
+
+ __callui_create_button_style(ad, &btn, PART_TOP_THIRD_BTN);
+
+ if (ad->headset_status == EINA_FALSE) {
+ elm_object_style_set(btn, "style_call_sixbtn_headset");
+ } else {
+ elm_object_style_set(btn, "style_call_sixbtn_headset_on");
+ }
+ elm_object_text_set(btn, _("IDS_CALL_BUTTON_BLUETOOTH_ABB"));
+ evas_object_smart_callback_del(btn, "clicked", __callui_headset_btn_cb);
+ evas_object_smart_callback_add(btn, "clicked", __callui_headset_btn_cb, ad);
+ elm_object_disabled_set(btn, EINA_FALSE);
+
+ return btn;
+}
+
+/* HeadSet Button DISABLED */
+Evas_Object *_callui_create_top_third_button_disabled(callui_app_data_t *ad)
+{
+ Evas_Object *btn = NULL;
+ CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL);
+
+ __callui_create_button_style(ad, &btn, PART_TOP_THIRD_BTN);
+
+ elm_object_style_set(btn, "style_call_sixbtn_disabled_headset");
+ elm_object_text_set(btn, _("IDS_CALL_BUTTON_BLUETOOTH_ABB"));
+
+ elm_object_disabled_set(btn, EINA_TRUE);
+
+ return btn;
+}
+
+/* Add-Call/Join button ENABLED*/
+Evas_Object *_callui_create_bottom_first_button(callui_app_data_t *ad)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL);
+ Evas_Object *btn = NULL;
+
+ __callui_create_button_style(ad, &btn, PART_BOTTOM_FIRST_BTN);
+ evas_object_smart_callback_del(btn, "clicked", __callui_addcall_btn_cb);
+ elm_object_style_set(btn, "style_call_sixbtn_add");
+ elm_object_text_set(btn, _("IDS_CALL_BUTTON_ADD_CALL"));
+ evas_object_smart_callback_add(btn, "clicked", __callui_addcall_btn_cb, ad);
+
+ elm_object_disabled_set(btn, EINA_FALSE);
+
+ return btn;
+}
+
+/* Add-Call/Join Button DISABLED */
+Evas_Object *_callui_create_bottom_first_button_disabled(callui_app_data_t *ad)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL);
+ Evas_Object *btn = NULL;
+
+ __callui_create_button_style(ad, &btn, PART_BOTTOM_FIRST_BTN);
+
+ elm_object_style_set(btn, "style_call_sixbtn_disabled_add");
+ elm_object_text_set(btn, _("IDS_CALL_BUTTON_ADD_CALL"));
+
+ elm_object_disabled_set(btn, EINA_TRUE);
+
+ return btn;
+}
+
+/* Mute Button ENABLED */
+Evas_Object *_callui_create_bottom_second_button(callui_app_data_t *ad)
+{
+ Evas_Object *btn = NULL;
+ CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL);
+
+ __callui_create_button_style(ad, &btn, PART_BOTTOM_SECOND_BTN);
+ elm_object_text_set(btn, _("IDS_CALL_BUTTON_MUTE_ABB"));
+ if (ad->mute_status == EINA_FALSE) {
+ elm_object_style_set(btn, "style_call_sixbtn_mute");
+ } else {
+ elm_object_style_set(btn, "style_call_sixbtn_mute_on");
+ }
+ elm_object_disabled_set(btn, EINA_FALSE);
+
+ evas_object_smart_callback_del(btn, "clicked", _callui_mute_btn_cb);
+ evas_object_smart_callback_add(btn, "clicked", _callui_mute_btn_cb, ad);
+
+ return btn;
+}
+
+/* Mute Button DISABLED */
+Evas_Object *_callui_create_bottom_second_button_disabled(callui_app_data_t *ad)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL);
+ Evas_Object *btn = NULL;
+
+ __callui_create_button_style(ad, &btn, PART_BOTTOM_SECOND_BTN);
+ elm_object_style_set(btn, "style_call_sixbtn_disabled_mute");
+ elm_object_text_set(btn, _("IDS_CALL_BUTTON_MUTE_ABB"));
+
+ elm_object_disabled_set(btn, EINA_TRUE);
+
+ return btn;
+}
+
+/* Contacts Button ENABLED */
+Evas_Object *_callui_create_bottom_third_button(callui_app_data_t *ad)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL);
+ Evas_Object *btn = NULL;
+ __callui_create_button_style(ad, &btn, PART_BOTTOM_THIRD_BTN);
+ elm_object_text_set(btn, _("IDS_CALL_BUTTON_CONTACTS"));
+ evas_object_smart_callback_del(btn, "clicked", __callui_contacts_btn_cb);
+ evas_object_smart_callback_add(btn, "clicked", __callui_contacts_btn_cb, ad);
+ elm_object_disabled_set(btn, EINA_FALSE);
+ elm_object_style_set(btn, "style_call_sixbtn_contacts");
+
+ return btn;
+}
+
+/* Contacts Button DISABLED */
+Evas_Object *_callui_create_bottom_third_button_disabled(callui_app_data_t *ad)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(ad != NULL, NULL);
+ Evas_Object *btn = NULL;
+#if 1
+ __callui_create_button_style(ad, &btn, PART_BOTTOM_THIRD_BTN);
+ elm_object_style_set(btn, "style_call_sixbtn_disabled_contacts");
+
+ elm_object_text_set(btn, _("IDS_CALL_BUTTON_CONTACTS"));
+ elm_object_disabled_set(btn, EINA_TRUE);
+
+#else
+ __callui_create_button_style(data, &btn, PART_BOTTOM_THIRD_BTN);
+ elm_object_style_set(btn, "style_call_sixbtn_disabled_contacts");
+
+ elm_object_disabled_set(btn, EINA_TRUE);
+
+#endif
+ return btn;
+}
+
+static void __callui_end_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ call_view_data_t *vd = (call_view_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(vd != NULL);
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+ int ret = -1;
+
+ dbg("vd->type:[%d]", vd->type);
+
+ switch (vd->type) {
+ case VIEW_DIALLING_VIEW:
+ {
+ if (ad->active)
+ ret = cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE);
+ }
+ break;
+ case VIEW_INCALL_ONECALL_VIEW:
+ {
+ ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_CALLS);
+ }
+ break;
+ case VIEW_INCALL_MULTICALL_SPLIT_VIEW:
+ {
+ ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_ACTIVE_CALLS);
+ }
+ break;
+ case VIEW_INCALL_MULTICALL_CONF_VIEW:
+ case VIEW_INCALL_MULTICALL_LIST_VIEW:
+ {
+ ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_CALLS);
+ }
+ break;
+ default:
+ err("ERROR - wrong vd type:[%d]", vd->type);
+ break;
+ }
+
+ if (ret != CM_ERROR_NONE) {
+ err("cm_end_call() is failed");
+ }
+ return;
+}
+
+Evas_Object *_callui_create_end_call_button(Evas_Object *parent, void *data)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(parent != NULL, NULL);
+ Evas_Object *btn = NULL;
+
+ callui_app_data_t *ad = _callui_get_app_data();
+ if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCALL_MULTICALL_SPLIT_VIEW) {
+ parent = elm_object_part_content_get(parent, PART_SWALLOW_ACTIONS_PANEL);
+ }
+ btn = elm_object_part_content_get(parent, PART_END_BTN);
+
+ if (!btn) {
+ btn = elm_button_add(parent);
+ elm_object_style_set(btn, "call_icon_only");
+
+ Evas_Object *icon = elm_image_add(btn);
+ elm_image_file_set(icon, EDJ_NAME, "call_button_icon_01.png");
+ elm_object_part_content_set(btn, "elm.swallow.content", icon);
+ elm_object_part_content_set(parent, PART_END_BTN, btn);
+ }
+ evas_object_smart_callback_del(btn, "clicked", __callui_end_btn_cb);
+ evas_object_smart_callback_add(btn, "clicked", __callui_end_btn_cb, data);
+ elm_object_signal_emit(parent, "show_end_btn_bg", "main_ly");
+ evas_object_show(btn);
+
+ return btn;
+}
+
+void _callui_destroy_end_call_button(Evas_Object *parent)
+{
+ CALLUI_RETURN_IF_FAIL(parent != NULL);
+ Evas_Object *btn = NULL;
+
+ btn = elm_object_part_content_get(parent, PART_END_BTN);
+ if (btn) {
+ elm_object_signal_emit(parent, "hide_end_btn_bg", "main_ly");
+ evas_object_del(btn);
+ btn = NULL;
+ }
+ return;
+}
+
+Evas_Object *_callui_create_voicecall_button_disabled(void *data)
+{
+ Evas_Object *btn = NULL;
+ Evas_Object *layout = NULL;
+
+ call_view_data_t *vd = (call_view_data_t *)data;
+
+ CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL);
+ Evas_Object *icon = NULL;
+
+ layout = _callui_view_callend_get_layout(vd);
+
+ btn = elm_button_add(layout);
+ elm_object_style_set(btn, "call_icon_only");
+ icon = elm_image_add(btn);
+ elm_image_file_set(icon, EDJ_NAME, "call_button_icon_03.png");
+ elm_object_part_content_set(btn, "elm.swallow.content", icon);
+
+ elm_object_part_content_set(layout, "three_btn_voicecall", btn);
+ elm_object_disabled_set(btn, EINA_TRUE);
+ evas_object_show(btn);
+
+ return btn;
+}
+
+static void __callui_voicecall_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("__vcui_voicecall_btn_cb..");
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+ char *call_number = (char *)data;
+ CALLUI_RETURN_IF_FAIL(call_number);
+
+ evas_object_smart_callback_del(obj, "clicked", __callui_voicecall_btn_cb);
+
+ _callui_common_delete_ending_timer();
+ ad->speaker_status = EINA_FALSE;
+ ad->mute_status = EINA_FALSE;
+ ad->extra_volume_status = EINA_FALSE;
+ cm_dial_call(ad->cm_handle, call_number, CM_CALL_TYPE_VOICE, ad->sim_slot);
+ g_free(call_number);
+ return;
+}
+
+Evas_Object *_callui_create_voicecall_button(void *data, char *number)
+{
+ Evas_Object *btn = NULL;
+ Evas_Object *layout = NULL;
+
+ call_view_data_t *vd = NULL;
+
+ CALLUI_RETURN_VALUE_IF_FAIL((vd = (call_view_data_t *)data) != NULL, NULL);
+ Evas_Object *icon = NULL;
+ layout = _callui_view_callend_get_layout(vd);
+
+ btn = elm_button_add(layout);
+ elm_object_style_set(btn, "call_icon_only");
+ icon = elm_image_add(btn);
+ elm_image_file_set(icon, EDJ_NAME, "call_button_icon_03.png");
+ elm_object_part_content_set(btn, "elm.swallow.content", icon);
+
+ elm_object_part_content_set(layout, "three_btn_voicecall", btn);
+
+ evas_object_smart_callback_del(btn, "clicked", __callui_voicecall_btn_cb);
+ evas_object_smart_callback_add(btn, "clicked", __callui_voicecall_btn_cb, g_strdup(number));
+
+ evas_object_show(btn);
+ return btn;
+}
+
+Evas_Object *_callui_create_message_button_disabled(void *data)
+{
+ Evas_Object *btn = NULL;
+ Evas_Object *layout = NULL;
+
+ call_view_data_t *vd = (call_view_data_t *)data;
+
+ CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL);
+ Evas_Object *icon = NULL;
+
+#if 0
+ layout = _callui_view_callend_get_layout(vd);
+ Evas_Object *sw = NULL;
+ sw = edje_object_part_swallow_get(_EDJ(layout), "btn_message");
+ if (sw) {
+ edje_object_part_unswallow(_EDJ(layout), sw);
+ evas_object_del(sw);
+ }
+
+ btn = elm_button_add(layout);
+ elm_object_part_content_set(layout, "btn_message", btn);
+ elm_object_style_set(btn, "style_call_end_message_button_disabled");
+
+ elm_object_text_set(btn, _("IDS_COM_BODY_MESSAGE"));
+ elm_object_disabled_set(btn, EINA_TRUE);
+#endif
+ switch (vd->type) {
+ case VIEW_ENDCALL_VIEW:
+ {
+ layout = _callui_view_callend_get_layout(vd);
+ }
+ break;
+ default:
+ err("ERROR - wrong vd type:[%d]", vd->type);
+ return NULL;
+ }
+
+ btn = elm_button_add(layout);
+ elm_object_style_set(btn, "call_icon_only");
+ icon = elm_image_add(btn);
+ elm_image_file_set(icon, EDJ_NAME, "call_button_icon_04.png");
+ elm_object_part_content_set(btn, "elm.swallow.content", icon);
+
+ elm_object_part_content_set(layout, "three_btn_message", btn);
+ elm_object_disabled_set(btn, EINA_TRUE);
+ evas_object_show(btn);
+
+ return btn;
+}
+
+static void __vcui_msg_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ char *number = (char *)data;
+ app_control_h request;
+ app_control_create(&request);
+ app_control_set_operation(request, APP_CONTROL_OPERATION_COMPOSE);
+ char str[CONTACT_NUMBER_BUF_LEN];
+ snprintf(str, sizeof(str), "%s%s", "sms:", number);
+ app_control_set_uri(request, str);
+ int result = app_control_send_launch_request(request, NULL, NULL);
+ if (result != APP_CONTROL_ERROR_NONE) {
+ err("app_control_send_launch_request() failed (%d)", result);
+ }
+ free(number);
+ app_control_destroy(request);
+
+
+}
+
+static void __vcui_view_contact_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ char *contact_id = (char *)data;
+ app_control_h request;
+ app_control_create(&request);
+ app_control_set_operation(request, APP_CONTROL_OPERATION_VIEW);
+ app_control_set_mime(request, APP_CONTROL_MIME_CONTACT);
+ app_control_add_extra_data(request, APP_CONTROL_DATA_ITEM_ID, contact_id);
+
+ int result = app_control_send_launch_request(request, NULL, NULL);
+ if (result != APP_CONTROL_ERROR_NONE) {
+ err("app_control_send_launch_request() failed (%d)", result);
+ }
+ free(contact_id);
+ app_control_destroy(request);
+}
+
+Evas_Object *_callui_create_view_contact_button(void *data, int ct_id)
+{
+ Evas_Object *btn;
+ Evas_Object *layout;
+ Evas_Object *sw;
+
+ call_view_data_t *vd = (call_view_data_t *)data;
+ CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL);
+
+ switch (vd->type) {
+ case VIEW_ENDCALL_VIEW:
+ {
+ layout = _callui_view_callend_get_layout(vd);
+ }
+ break;
+ default:
+ err("ERROR - wrong vd type:[%d]", vd->type);
+ return NULL;
+ }
+
+ sw = edje_object_part_swallow_get(_EDJ(layout), "btn_view_contacts");
+ if (sw) {
+ btn = sw;
+ } else {
+ btn = elm_button_add(layout);
+ elm_object_part_content_set(layout, "btn_view_contacts", btn);
+ }
+
+ elm_object_style_set(btn, "style_call_end_view_contact_button");
+ elm_object_text_set(btn, _("IDS_CALL_BUTTON_VIEW_CONTACT_DETAILS_ABB"));
+ char str[CONTACT_ID_BUF_LEN];
+ sprintf(str, "%d", ct_id);
+ evas_object_smart_callback_add(btn, "clicked", __vcui_view_contact_btn_cb, (void *)strdup(str));
+
+ return btn;
+}
+
+Evas_Object *_callui_create_create_contacts_button(void *data, char *number)
+{
+
+ call_view_data_t *vd = (call_view_data_t *)data;
+ CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL);
+
+ Evas_Object *btn = NULL;
+ Evas_Object *layout = NULL;
+ Evas_Object *sw = NULL;
+
+ switch (vd->type) {
+ case VIEW_ENDCALL_VIEW:
+ {
+ layout = _callui_view_callend_get_layout(vd);
+ }
+ break;
+ default:
+ err("ERROR - wrong vd type:[%d]", vd->type);
+ return NULL;
+ }
+
+ sw = edje_object_part_swallow_get(_EDJ(layout), "btn_create_contacts");
+ if (sw) {
+ btn = sw;
+ } else {
+ btn = elm_button_add(layout);
+ elm_object_part_content_set(layout, "btn_create_contacts", btn);
+ }
+
+ info("Going to set style");
+ elm_object_style_set(btn, "style_call_end_create_contact_button");
+
+ elm_object_text_set(btn, _("IDS_COM_OPT_CREATE_CONTACT"));
+ evas_object_smart_callback_add(btn, "clicked", __vcui_create_contact_btn_cb, (void *)strdup(number));
+
+ return btn;
+}
+
+static void __vcui_create_contact_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("_vcui_create_contact_btn_cb");
+ char *number = (char *)data;
+ app_control_h request;
+ app_control_create(&request);
+ app_control_set_operation(request, APP_CONTROL_OPERATION_ADD);
+ app_control_set_mime(request, APP_CONTROL_MIME_CONTACT);
+
+ if (number) {
+ app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, number);
+ }
+ app_control_send_launch_request(request, NULL, NULL);
+ free(number);
+ app_control_destroy(request);
+}
+
+static void __vcui_update_existing_contact_btn_cb(void *data,
+ Evas_Object *obj, void *event_info)
+{
+ dbg("__vcui_update_existing_contact_btn_cb");
+ char * number = (char *)data;
+ app_control_h request;
+ app_control_create(&request);
+ app_control_set_operation(request, APP_CONTROL_OPERATION_EDIT);
+ app_control_set_mime(request, APP_CONTROL_MIME_CONTACT);
+
+ if (number) {
+ app_control_add_extra_data(request, APP_CONTROL_DATA_PHONE, number);
+ }
+ app_control_send_launch_request(request, NULL, NULL);
+ free(number);
+ app_control_destroy(request);
+}
+
+Evas_Object *_callui_create_update_existing_contact_button(void *data, char *number)
+{
+ Evas_Object *btn;
+ Evas_Object *layout;
+ Evas_Object *sw;
+
+ call_view_data_t *vd = (call_view_data_t *)data;
+ CALLUI_RETURN_VALUE_IF_FAIL(vd != NULL, NULL);
+
+ switch (vd->type) {
+ case VIEW_ENDCALL_VIEW:
+ {
+ layout = _callui_view_callend_get_layout(vd);
+ }
+ break;
+ default:
+ err("ERROR - wrong vd type:[%d]", vd->type);
+ return NULL;
+ }
+
+ sw = edje_object_part_swallow_get(_EDJ(layout), "btn_update");
+ if (sw) {
+ btn = sw;
+ } else {
+ btn = elm_button_add(layout);
+ elm_object_part_content_set(layout, "btn_update", btn);
+ }
+
+ elm_object_style_set(btn, "style_call_end_update_contact_button");
+ elm_object_text_set(btn, _("IDS_CALL_BUTTON_UPDATE_EXISTING"));
+ evas_object_smart_callback_add(btn, "clicked",
+ __vcui_update_existing_contact_btn_cb, (void *)strdup(number));
+
+ return btn;
+}
+
+Evas_Object *_callui_create_message_button(void *data, char *number)
+{
+ Evas_Object *btn = NULL;
+ Evas_Object *layout = NULL;
+
+ call_view_data_t *vd = NULL;
+ CALLUI_RETURN_VALUE_IF_FAIL((vd = (call_view_data_t *)data) != NULL, NULL);
+
+ Evas_Object *icon = NULL;
+#if 0
+ layout = _callui_view_callend_get_layout(vd);
+ Evas_Object *sw = NULL;
+ sw = edje_object_part_swallow_get(_EDJ(layout), "btn_message");
+ if (sw) {
+ edje_object_part_unswallow(_EDJ(layout), sw);
+ evas_object_del(sw);
+ }
+
+ btn = elm_button_add(layout);
+ elm_object_part_content_set(layout, "btn_message", btn);
+ elm_object_style_set(btn, "style_call_end_message_button");
+
+ elm_object_text_set(btn, _("IDS_COM_BODY_MESSAGE"));
+ evas_object_smart_callback_add(btn, "clicked", __vcui_msg_btn_cb, (void *)strdup(number));
+#endif
+ switch (vd->type) {
+ case VIEW_ENDCALL_VIEW:
+ {
+ layout = _callui_view_callend_get_layout(vd);
+ }
+ break;
+ default:
+ err("ERROR - wrong vd type:[%d]", vd->type);
+ return NULL;
+ }
+
+ btn = elm_button_add(layout);
+ elm_object_style_set(btn, "call_icon_only");
+ icon = elm_image_add(btn);
+ elm_image_file_set(icon, EDJ_NAME, "call_button_icon_04.png");
+ elm_object_part_content_set(btn, "elm.swallow.content", icon);
+
+ elm_object_part_content_set(layout, "three_btn_message", btn);
+ evas_object_smart_callback_add(btn, "clicked", __vcui_msg_btn_cb, (void *)strdup(number));
+
+ evas_object_show(btn);
+ return btn;
+}
+
+/* Creates thumbnail */
+Evas_Object *_callui_create_thumbnail(Evas_Object *parent, const char *path, thumbnail_type type)
+{
+ return _callui_create_thumbnail_with_size(parent, path, type, false);
+}
+
+/* Creates thumbnail with possibility to set size in code*/
+Evas_Object *_callui_create_thumbnail_with_size(Evas_Object *parent, const char *path, thumbnail_type type, bool set_size)
+{
+ if (path && *path && (strcmp(path, "default") != 0)) {
+ Evas_Object *layout = elm_layout_add(parent);
+ elm_layout_file_set(layout, EDJ_NAME, group_thumbnail[type]);
+
+ Evas_Object *image = elm_image_add(layout);
+ elm_image_file_set(image, path, NULL);
+ elm_image_aspect_fixed_set(image, EINA_TRUE);
+ elm_image_fill_outside_set(image, EINA_TRUE);
+ if (set_size) {
+ evas_object_size_hint_min_set(image, _callui_common_get_scaled_width(thumbnail_size[type]), _callui_common_get_scaled_height(thumbnail_size[type]));
+ }
+ elm_object_part_content_set(layout, PART_SWALLOW_IMAGE, image);
+
+ return layout;
+ } else {
+ Evas_Object *image = elm_image_add(parent);
+ elm_image_file_set(image, EDJ_NAME, group_default_thumbnail[type]);
+ if (set_size) {
+ evas_object_size_hint_min_set(image, _callui_common_get_scaled_width(thumbnail_size[type]), _callui_common_get_scaled_height(thumbnail_size[type]));
+ }
+ return image;
+ }
+}
+
+/* Caller info name or number*/
+void _callui_show_caller_info_name(void *data, const char *name, Eina_Bool bhold)
+{
+ Evas_Object *layout = NULL;
+
+ layout = __callui_create_caller_info(data, bhold);
+ edje_object_part_text_set(_EDJ(layout), "txt_call_name", name);
+}
+
+/* Caller info number */
+void _callui_show_caller_info_number(void *data, const char *number, Eina_Bool bhold)
+{
+ Evas_Object *layout = NULL;
+
+ layout = __callui_create_caller_info(data, bhold);
+ edje_object_part_text_set(_EDJ(layout), "txt_phone_num", number);
+}
+
+/* Caller info status*/
+Evas_Object *_callui_show_caller_info_status(void *data, const char *status, Eina_Bool bhold)
+{
+ Evas_Object *layout = NULL;
+
+ layout = _callvm_get_view_layout(data);
+ edje_object_part_text_set(_EDJ(layout), "call_txt_status", status);
+
+ return layout;
+}
+
+Evas_Object *_callui_show_caller_id(Evas_Object *contents, char *path, bool is_ending_view)
+{
+ dbg("..");
+ Evas_Object *layout = _callui_create_thumbnail(contents, path, THUMBNAIL_186);
+
+ elm_object_part_content_set(contents, "caller_id", layout);
+
+ /*Hide default caller-ID*/
+ elm_object_signal_emit(contents, "hide_default_cid", "");
+
+ return layout;
+}
+
+Evas_Object *_callui_view_create_focus_layout(Evas_Object *parent)
+{
+ Evas_Object *focus = elm_button_add(parent);
+ elm_object_style_set(focus, "focus");
+
+ Evas_Object *evas_object = evas_object_rectangle_add(evas_object_evas_get(parent));
+ elm_object_part_content_set(focus, "elm.swallow.content", evas_object);
+ evas_object_color_set(evas_object, 0, 0, 0, 0);
+ evas_object_show(evas_object);
+
+ return focus;
+}
+
+static void __callui_hold_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+
+ __callui_unload_more_option(ad);
+
+/* if (_vcui_keypad_get_show_status() == EINA_TRUE) {
+ _vcui_keypad_hide(vd);
+ }
+ */
+ cm_hold_call(ad->cm_handle);
+}
+
+static void __callui_unhold_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+
+ __callui_unload_more_option(ad);
+
+ cm_unhold_call(ad->cm_handle);
+}
+
+static void __callui_move_more_option(Evas_Object *ctxpopup)
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ Evas_Coord w = 0, h = 0;
+ int pos = -1;
+
+ elm_win_screen_size_get(ad->win, NULL, NULL, &w, &h);
+ pos = elm_win_rotation_get(ad->win);
+ dbg("w: %d, h: %d", w, h);
+
+ switch (pos) {
+ case 0:
+ case 180:
+ evas_object_move(ctxpopup, (w / 2), h);
+ break;
+ case 90:
+ evas_object_move(ctxpopup, (h / 2), w);
+ break;
+ case 270:
+ evas_object_move(ctxpopup, (h / 2), w);
+ break;
+ default:
+ evas_object_move(ctxpopup, (w / 2), h);
+ break;
+ }
+}
+
+static void __callui_more_option_dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..**********..");
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ __callui_unload_more_option(ad);
+}
+
+static void __callui_more_option_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ dbg("..**********..");
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ __callui_unload_more_option(ad);
+}
+
+void _callui_load_more_option(void *data)
+{
+ dbg("..");
+ callui_app_data_t *ad = _callui_get_app_data();
+ call_view_data_t *vd = (call_view_data_t *)data;
+
+ if (_callui_lock_screen_is_lockscreen_shown() == TRUE) {
+ dbg("Lock screen active. Do not show popup.");
+ return;
+ }
+
+ if (ad->ctxpopup == NULL) {
+ Evas_Object *ctxpopup = NULL;
+
+ ctxpopup = elm_ctxpopup_add(ad->main_ly);
+ elm_object_style_set(ctxpopup, "more/default");
+ elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE);
+ evas_object_smart_callback_add(ctxpopup, "dismissed", __callui_more_option_dismissed_cb, ad);
+ evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, __callui_more_option_delete_cb, ad);
+ eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_BACK, eext_ctxpopup_back_cb, NULL);
+ eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_MORE, eext_ctxpopup_back_cb, NULL);
+
+ /* Hold/Resume */
+ if (vd->type != VIEW_INCALL_MULTICALL_SPLIT_VIEW) {
+ if (ad->active != NULL) {
+ elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_BUTTON_HOLD"), NULL, __callui_hold_btn_cb, ad);
+ } else {/* CALL_HOLD */
+ elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_BUTTON_RESUME_ABB"), NULL, __callui_unhold_btn_cb, ad);
+ }
+ }
+
+ /* SIM Service */
+/* if (__vcui_view_popup_is_sim_available() == EINA_TRUE) {
+ ctx_it = elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_OPT_SIM_SERVICES"),
+ NULL, __vcui_view_popup_sim_service_cb, vd);
+ }
+*/
+ elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_UP,
+ ELM_CTXPOPUP_DIRECTION_UNKNOWN,
+ ELM_CTXPOPUP_DIRECTION_UNKNOWN,
+ ELM_CTXPOPUP_DIRECTION_UNKNOWN);
+
+ __callui_move_more_option(ctxpopup);
+
+ evas_object_show(ctxpopup);
+ ad->ctxpopup = ctxpopup;
+ } else {
+ elm_ctxpopup_dismiss(ad->ctxpopup);
+ }
+}
+
+static void __callui_unload_more_option(callui_app_data_t *ad)
+{
+ CALLUI_RETURN_IF_FAIL(ad);
+ if (ad->ctxpopup) {
+ evas_object_smart_callback_del(ad->ctxpopup, "dismissed", __callui_more_option_dismissed_cb);
+ evas_object_event_callback_del(ad->ctxpopup, EVAS_CALLBACK_DEL, __callui_more_option_delete_cb);
+
+ evas_object_del(ad->ctxpopup);
+ ad->ctxpopup = NULL;
+ }
+}
+
+int _callui_set_object_data(Evas_Object *obj, char *key, void *value)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(obj, -1);
+ CALLUI_RETURN_VALUE_IF_FAIL(key, -1);
+ CALLUI_RETURN_VALUE_IF_FAIL(value, -1);
+
+ evas_object_data_set(obj, key, value);
+ return 0;
+}
+
+void *_callui_get_object_data(Evas_Object *obj, char *key)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(obj, NULL);
+ CALLUI_RETURN_VALUE_IF_FAIL(key, NULL);
+
+ return evas_object_data_get(obj, key);
+}
+
+static void __callui_unload_second_call_popup(callui_app_data_t *ad)
+{
+ dbg("..");
+ CALLUI_RETURN_IF_FAIL(ad);
+ if (ad->second_call_popup) {
+ evas_object_del(ad->second_call_popup);
+ ad->second_call_popup = NULL;
+ }
+}
+
+static char *__callui_gl_second_call_option_label_get(void *data, Evas_Object *obj, const char *part)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(part, NULL);
+ CALLUI_RETURN_VALUE_IF_FAIL(data, NULL);
+ if (strcmp(part, "elm.text.main.left") == 0) {
+ char *markup_txt = NULL;
+ second_call_popup_data_t *item_data = (second_call_popup_data_t *)data;
+ if (strlen(item_data->option_msg) > 0) {
+ markup_txt = evas_textblock_text_utf8_to_markup(NULL, item_data->option_msg);
+ }
+ return markup_txt;
+ } else {
+ return NULL;
+ }
+}
+
+static void __callui_gl_second_call_option_del_cb(void *data, Evas_Object *obj EINA_UNUSED)
+{
+ second_call_popup_data_t *item_data = (second_call_popup_data_t *)data;
+ g_free(item_data);
+}
+
+static void __callui_gl_second_call_option_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ Elm_Object_Item *item = (Elm_Object_Item *) event_info;
+ call_data_t *hold_call_data = NULL;
+ call_data_t *unhold_call_data = NULL;
+ second_call_popup_data_t *item_data = NULL;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ __callui_unload_second_call_popup(ad);
+
+ if (item != NULL) {
+ item_data = (second_call_popup_data_t *) elm_object_item_data_get(item);
+ CALLUI_RETURN_IF_FAIL(item_data);
+ dbg("index: %d", item_data->index);
+
+ hold_call_data = ad->held;
+ unhold_call_data = ad->active;
+ if ((unhold_call_data) && (hold_call_data == NULL)) {
+ dbg("1 active call OR 1 active conference call");
+ if (item_data->index == 0) {
+ cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_HOLD_ACTIVE_AND_ACCEPT);
+ } else if (item_data->index == 1) {
+ cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_RELEASE_ACTIVE_AND_ACCEPT);
+ } else {
+ err("Wrong index.. Should never get here");
+ }
+ } else if (((unhold_call_data) && (hold_call_data))) {
+ dbg("1 active call + 1 held call OR 1 active conf call + 1 held call OR 1 active call + 1 held conf call");
+ if (item_data->index == 0) {
+ cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_RELEASE_ACTIVE_AND_ACCEPT);
+ } else if (item_data->index == 1) {
+ cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_RELEASE_HOLD_AND_ACCEPT);
+ } else if (item_data->index == 2) {
+ cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_RELEASE_ALL_AND_ACCEPT);
+ } else {
+ err("Wrong index.. Should never get here");
+ }
+ }
+
+ }
+}
+
+static void __callui_second_call_cancel_btn_response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+
+ __callui_unload_second_call_popup(data);
+ _callvm_view_change(VIEW_INCOMING_LOCK_VIEW, -1, NULL, NULL);
+
+ return;
+}
+
+void _callui_load_second_call_popup(callui_app_data_t *ad)
+{
+ dbg("..");
+ CALLUI_RETURN_IF_FAIL(ad);
+ Evas_Object *box = NULL;
+ call_data_t *hold_call_data = NULL;
+ call_data_t *unhold_call_data = NULL;
+ char *hold_call_number = NULL;
+ char *hold_call_name = NULL;
+ char *unhold_call_number = NULL;
+ char *unhold_call_name = NULL;
+ const char *temp_str = NULL;
+ second_call_popup_data_t *item_data = NULL;
+ Elm_Genlist_Item_Class *itc = NULL;
+ Evas_Object *genlist = NULL;
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ hold_call_data = ad->held;
+ unhold_call_data = ad->active;
+ if (unhold_call_data == NULL) {
+ err("active call data is null");
+ return;
+ }
+
+ __callui_unload_second_call_popup(ad);
+
+ ad->second_call_popup = elm_popup_add(ad->win);
+ CALLUI_RETURN_IF_FAIL(ad->second_call_popup);
+ elm_popup_align_set(ad->second_call_popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+ elm_object_domain_translatable_part_text_set(ad->second_call_popup, "title,text", CALLUI_TEXT_DOMAIN, "IDS_CALL_HEADER_ANSWER_CALL_ABB");
+ evas_object_size_hint_weight_set(ad->second_call_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ box = elm_box_add(ad->second_call_popup);
+ CALLUI_RETURN_IF_FAIL(box);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ genlist = elm_genlist_add(box);
+ CALLUI_RETURN_IF_FAIL(genlist);
+ elm_genlist_realization_mode_set(genlist, EINA_TRUE);
+ evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ itc = elm_genlist_item_class_new();
+ CALLUI_RETURN_IF_FAIL(itc);
+
+ itc->item_style = "1line";
+ itc->func.text_get = __callui_gl_second_call_option_label_get;
+ itc->func.content_get = NULL;
+ itc->func.state_get = NULL;
+ itc->func.del = __callui_gl_second_call_option_del_cb;
+
+ if (hold_call_data != NULL) {
+ hold_call_number = hold_call_data->call_num;
+ hold_call_name = hold_call_data->call_ct_info.call_disp_name;
+ if (strlen(hold_call_name) == 0)
+ hold_call_name = hold_call_number;
+ }
+
+ if (unhold_call_data != NULL) {
+ unhold_call_number = unhold_call_data->call_num;
+ unhold_call_name = unhold_call_data->call_ct_info.call_disp_name;
+ if (strlen(unhold_call_name) == 0)
+ unhold_call_name = unhold_call_number;
+ }
+
+ if ((unhold_call_data) && (unhold_call_data->member_count == 1) && (hold_call_data == NULL)) {
+ dbg("1 active call");
+ /* First option */
+ item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t));
+ if (item_data == NULL) {
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+ item_data->index = 0;
+ memset(item_data->option_msg, 0x00, 512);
+ temp_str = _("IDS_CALL_OPT_PUT_PS_ON_HOLD_ABB");
+ snprintf(item_data->option_msg, 512, temp_str, unhold_call_name);
+ elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad);
+
+ /* Second option */
+ item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t));
+ if (item_data == NULL) {
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+ item_data->index = 1;
+ memset(item_data->option_msg, 0x00, 512);
+ temp_str = _("IDS_CALL_OPT_END_CALL_WITH_PS");
+ snprintf(item_data->option_msg, 512, temp_str, unhold_call_name);
+ elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad);
+ } else if ((unhold_call_data) && (unhold_call_data->member_count > 1) && (hold_call_data == NULL)) {
+ dbg("1 active conference call");
+ /* First option */
+ item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t));
+ if (item_data == NULL) {
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+ item_data->index = 0;
+ memset(item_data->option_msg, 0x00, 512);
+ strncpy(item_data->option_msg, _("IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"), 512-1);
+ elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad);
+
+ /* Second option */
+ item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t));
+ if (item_data == NULL) {
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+ item_data->index = 1;
+ memset(item_data->option_msg, 0x00, 512);
+ strncpy(item_data->option_msg, _("IDS_CALL_OPT_END_CONFERENCE_CALL"), 512-1);
+ elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad);
+ } else if ((unhold_call_data) && (hold_call_data) && (unhold_call_data->member_count == 1) && (hold_call_data->member_count == 1)) {
+ dbg("1 active call + 1 held call");
+ /* First option */
+ item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t));
+ if (item_data == NULL) {
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+ item_data->index = 0;
+ memset(item_data->option_msg, 0x00, 512);
+ temp_str = _("IDS_CALL_OPT_END_CALL_WITH_PS");
+ snprintf(item_data->option_msg, 512, temp_str, unhold_call_name);
+ elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad);
+
+ /* Second option */
+ item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t));
+ if (item_data == NULL) {
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+ item_data->index = 1;
+ memset(item_data->option_msg, 0x00, 512);
+ temp_str = _("IDS_CALL_OPT_END_CALL_WITH_PS");
+ snprintf(item_data->option_msg, 512, temp_str, hold_call_name);
+ elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad);
+
+ /* Third option */
+ item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t));
+ if (item_data == NULL) {
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+ item_data->index = 2;
+ memset(item_data->option_msg, 0x00, 512);
+ strncpy(item_data->option_msg, _("IDS_CALL_OPT_END_ALL_CURRENT_CALLS"), 512-1);
+ elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad);
+ } else if ((unhold_call_data) && (hold_call_data) && (unhold_call_data->member_count > 1) && (hold_call_data->member_count == 1)) {
+ dbg("1 active conf call + 1 held call");
+ /* First option */
+ item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t));
+ if (item_data == NULL) {
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+ item_data->index = 0;
+ memset(item_data->option_msg, 0x00, 512);
+ strncpy(item_data->option_msg, "End conference call", 512-1);
+ elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad);
+
+ /* Second option */
+ item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t));
+ if (item_data == NULL) {
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+ item_data->index = 1;
+ memset(item_data->option_msg, 0x00, 512);
+ temp_str = _("IDS_CALL_OPT_END_CALL_WITH_PS");
+ snprintf(item_data->option_msg, 512, temp_str, hold_call_name);
+ elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad);
+
+ /* Third option */
+ item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t));
+ if (item_data == NULL) {
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+ item_data->index = 2;
+ memset(item_data->option_msg, 0x00, 512);
+ strncpy(item_data->option_msg, _("IDS_CALL_OPT_END_ALL_CURRENT_CALLS"), 512-1);
+ elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad);
+ } else if ((unhold_call_data) && (hold_call_data) && (unhold_call_data->member_count == 1) && (hold_call_data->member_count > 1)) {
+ dbg("1 active call + 1 held conf call");
+ /* First option */
+ item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t));
+ if (item_data == NULL) {
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+ item_data->index = 0;
+ memset(item_data->option_msg, 0x00, 512);
+ temp_str = _("IDS_CALL_OPT_END_CALL_WITH_PS");
+ snprintf(item_data->option_msg, 512, temp_str, unhold_call_name);
+ elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad);
+
+ /* Second option */
+ item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t));
+ if (item_data == NULL) {
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+ item_data->index = 1;
+ memset(item_data->option_msg, 0x00, 512);
+ strncpy(item_data->option_msg, _("IDS_CALL_OPT_END_CONFERENCE_CALL"), 512-1);
+ elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad);
+
+ /* Third option */
+ item_data = (second_call_popup_data_t *) calloc(1, sizeof(second_call_popup_data_t));
+ if (item_data == NULL) {
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+ item_data->index = 2;
+ memset(item_data->option_msg, 0x00, 512);
+ strncpy(item_data->option_msg, _("IDS_CALL_OPT_END_ALL_CURRENT_CALLS"), 512-1);
+ elm_genlist_item_append(genlist, itc, (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, __callui_gl_second_call_option_sel, ad);
+ } else {
+ err("invalid call data!!");
+ elm_genlist_item_class_free(itc);
+ return;
+ }
+
+ evas_object_smart_callback_add(ad->second_call_popup, "response",
+ __callui_second_call_cancel_btn_response_cb, ad);
+ eext_object_event_callback_add(ad->second_call_popup, EEXT_CALLBACK_BACK,
+ __callui_second_call_cancel_btn_response_cb, ad);
+ evas_object_smart_callback_add(ad->second_call_popup, "block,clicked",
+ __callui_second_call_cancel_btn_response_cb, ad);
+
+ elm_box_pack_end(box, genlist);
+ evas_object_show(genlist);
+ elm_genlist_item_class_free(itc);
+
+ evas_object_size_hint_min_set(box, ELM_SCALE_SIZE(POPUP_LIST_W), ELM_SCALE_SIZE(POPUP_LIST_ITEM_H * (item_data->index + 1)));
+ evas_object_show(box);
+ elm_object_content_set(ad->second_call_popup, box);
+
+ evas_object_show(ad->second_call_popup);
+}
+
+static void __callui_unload_bt_popup(callui_app_data_t *ad)
+{
+ dbg("..");
+ CALLUI_RETURN_IF_FAIL(ad);
+ if (ad->bt_popup) {
+ evas_object_del(ad->bt_popup);
+ ad->bt_popup = NULL;
+ }
+ return;
+}
+
+static void __callui_bt_popup_cancel_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+
+ __callui_unload_bt_popup(data);
+ return;
+}
+
+static void __callui_bt_popup_ok_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ __callui_unload_bt_popup(ad);
+ /* Launch the BT App Control */
+ _callui_common_launch_bt_app(ad);
+ return;
+}
+
+void _callui_load_bluetooth_popup(callui_app_data_t *ad)
+{
+ Evas_Object *btn_ok = NULL;
+ Evas_Object *btn_cancel = NULL;
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ __callui_unload_bt_popup(ad);
+ ad->bt_popup = elm_popup_add(ad->win);
+ elm_popup_align_set(ad->bt_popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+ evas_object_size_hint_weight_set(ad->bt_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ elm_object_domain_translatable_part_text_set(ad->bt_popup, "title,text", CALLUI_TEXT_DOMAIN, "IDS_CALL_HEADER_TURN_ON_BLUETOOTH_ABB");
+ elm_object_text_set(ad->bt_popup, _("IDS_CALL_POP_TO_SWITCH_TO_USING_YOUR_BLUETOOTH_DEVICE_BLUETOOTH_WILL_BE_TURNED_ON"));
+
+ btn_cancel = elm_button_add(ad->bt_popup);
+ elm_object_style_set(btn_cancel, "popup");
+ elm_object_text_set(btn_cancel, _("IDS_COM_SK_CANCEL"));
+ elm_object_part_content_set(ad->bt_popup, "button1", btn_cancel);
+ evas_object_smart_callback_add(btn_cancel, "clicked", __callui_bt_popup_cancel_btn_cb, ad);
+
+ btn_ok = elm_button_add(ad->bt_popup);
+ elm_object_style_set(btn_ok, "popup");
+ elm_object_text_set(btn_ok, _("IDS_COM_SK_OK"));
+ elm_object_part_content_set(ad->bt_popup, "button2", btn_ok);
+ evas_object_smart_callback_add(btn_ok, "clicked", __callui_bt_popup_ok_btn_cb, ad);
+
+ eext_object_event_callback_add(ad->bt_popup, EEXT_CALLBACK_BACK, __callui_bt_popup_cancel_btn_cb, ad);
+
+ evas_object_show(ad->bt_popup);
+ return;
+}
+
+void _callui_create_extravolume_notify_popup()
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+ char *text = NULL;
+ cm_audio_state_type_e snd_path = CM_AUDIO_STATE_NONE_E;
+
+ cm_get_audio_state(ad->cm_handle, &snd_path);
+ dbg("sound path : %d", snd_path);
+ switch (snd_path) {
+ case CM_AUDIO_STATE_BT_E:
+ {
+ text = _("IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_BLUETOOTH_HEADSET_CONNECTED");
+ }
+ break;
+ case CM_AUDIO_STATE_EARJACK_E:
+ {
+ text = _("IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_CONNECTED");
+ }
+ break;
+ default:
+ text = _("IDS_CALL_POP_EXTRA_VOLUME_CANNOT_BE_TURNED_ON_WHILE_EARPHONES_OR_BLUETOOTH_HEADSET_CONNECTED");
+ break;
+ }
+ _callui_create_toast_message(text);
+
+}
+
+void _callui_create_toast_message(char *string)
+{
+ dbg("$$$$$$ Noti-String : %s", string);
+
+ if (string) {
+ notification_status_message_post(string);
+ }
+ return;
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "callui-view-manager.h"
+#include "callui-view-circle.h"
+#include "callui-view-incoming-call.h"
+#include "callui-view-incoming-lock.h"
+#include "callui-view-layout-wvga.h"
+#include "callui-view-elements.h"
+#include <vconf.h>
+#include "callui-common.h"
+
+#define REJ_MSG_GENLIST_DATA "reject_msg_genlist_data"
+#define REJ_MSG_LIST_OPEN_STATUS_KEY "list_open_status_key"
+#define VIEW_INCOMING_LOCK_LAYOUT_ID "INCOMINGLOCKVIEW"
+#define MAX_MSG_COUNT 6
+
+static Evas_Object *__callui_view_incoming_call_create_reject_msg_layout(void *data);
+static Eina_Bool __callui_view_incoming_lock_reject_msg_available(callui_app_data_t *ad, char *call_num);
+
+#define SCALE_SIZE(x, h) (((x) * (h)) / MAIN_SCREEN_BIG_H)
+
+static Evas_Object *__callui_view_incoming_call_create_contents(void *data, char *grpname)
+{
+ if (data == NULL) {
+ err("ERROR");
+ return NULL;
+ }
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ Evas_Object *eo;
+
+ /* load edje */
+ eo = _callui_load_edj(ad->main_ly, EDJ_NAME, grpname);
+ if (eo == NULL)
+ return NULL;
+
+ return eo;
+}
+
+static void __reject_msg_list_param_reset(void *data)
+{
+ dbg("..");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+
+ priv->y_momentum = 0;
+ priv->reject_with_msg_start_y = 0;
+ priv->reject_with_msg_cur_y = 0;
+ priv->bmouse_down_pressed = EINA_FALSE;
+}
+
+static void __reject_screen_transit_complete_cb(void *data, Elm_Transit *transit)
+{
+ dbg("..");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+
+ if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) {
+ elm_object_tree_focus_allow_set(priv->msg_glist, EINA_FALSE);
+ elm_object_signal_emit(priv->lock_reject_with_msg, "show-up-arrow", "reject_msg");
+ evas_object_hide(priv->dimming_ly);
+ } else {
+ elm_object_tree_focus_allow_set(priv->msg_glist, EINA_TRUE);
+ elm_object_signal_emit(priv->lock_reject_with_msg, "show-down-arrow", "reject_msg");
+ evas_object_show(priv->dimming_ly);
+ }
+
+ __reject_msg_list_param_reset(vd);
+
+ return;
+}
+
+static Eina_Bool __rej_msg_show_sliding_effect(void *data)
+{
+ dbg("..");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ Evas_Object *screen_ly;
+ Elm_Transit *transit;
+ int xpos = 0;
+ int ypos = 0;
+ int width = 0;
+ int height = 0;
+ int transit_y = 0;
+ int max_height_limit = 0;
+
+ screen_ly = priv->lock_reject_with_msg;
+ transit = elm_transit_add();
+ elm_transit_object_add(transit, screen_ly);
+
+ evas_object_geometry_get(priv->lock_reject_with_msg, &xpos, &ypos, &width, &height);
+ dbg("reject_w_msg dimensions ---> x[%d] y[%d] w[%d] h[%d]", xpos, ypos, width, height);
+ dbg("priv->y_momentum: %d", priv->y_momentum);
+
+ /*Max height possible*/
+ max_height_limit = (priv->msg_list_height);
+ dbg("max_height_limit: %d", max_height_limit);
+
+ if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) {
+ dbg("Close list... Check if opening is feasible");
+
+ if (priv->y_momentum) {
+ dbg("Momentum...");
+
+ if (priv->y_momentum < -500) {
+ dbg("Huge Momentum... Move the layout");
+
+ /*effect to pull up the window.*/
+ transit_y = -(max_height_limit + ypos);
+
+ elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
+ } else {
+ dbg("Small Momentum..");
+
+ if (ypos != 0) { /*Reject msg layout is displaced from its original position*/
+ if (-ypos < max_height_limit/2) { /*Layout position is lesser than half of the height*/
+ dbg("Movement L.T. HALF the height..");
+
+ /*effect to pull down the window.*/
+ transit_y = -ypos;
+
+ elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ } else if (-ypos >= max_height_limit/2 && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/
+ dbg("Movement G.T. HALF the height..");
+
+ /*effect to pull up the window.*/
+ transit_y = -(max_height_limit + ypos);
+
+ elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
+ }
+ }
+ }
+ } else {
+ dbg("NO Momentum... Dont open");
+
+ if (ypos != 0) { /*Reject msg layout is displaced from its original position*/
+ if (-ypos < max_height_limit/2) { /*Layout position is lesser than half of the height*/
+ dbg("Movement L.T. HALF the height..");
+
+ /*effect to pull down the window.*/
+ transit_y = -ypos;
+
+ elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ } else if (-ypos >= max_height_limit/2 && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/
+ dbg("Movement G.T. HALF the height..");
+
+ /*effect to pull up the window.*/
+ transit_y = -(max_height_limit + ypos);
+
+ elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
+ }
+ }
+ }
+ } else {
+ dbg("Open list... Check if closing is feasible");
+
+ if (priv->y_momentum) {
+ dbg("Momentum...");
+
+ if (priv->y_momentum > 500) {
+ dbg("Huge Momentum... Move the layout");
+
+ /*effect to pull down the window.*/
+ transit_y = -ypos;
+
+ elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ } else {
+ dbg("Small Momentum..");
+
+ if (ypos != 0) { /*Reject msg layout is displaced from its original position*/
+ if (-ypos < (max_height_limit * 0.8)) { /*Layout position is lesser than 80% of the height*/
+ dbg("Movement L.T. 80 percent of the height..");
+
+ /*effect to pull down the window.*/
+ transit_y = -ypos;
+
+ elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ } else if (-ypos >= (max_height_limit * 0.8) && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/
+ dbg("Movement G.T. 80 percent of the height..");
+
+ /*effect to pull up the window.*/
+ transit_y = -(max_height_limit + ypos);
+
+ elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
+ }
+ }
+ }
+ } else {
+ dbg("NO Momentum... Dont close");
+
+ if (ypos != 0) { /*Reject msg layout is displaced from its original position*/
+ if (-ypos < (max_height_limit * 0.8)) { /*Layout position is lesser than 80% of the height*/
+ dbg("Movement L.T. 80 percent of the height..");
+
+ /*effect to pull down the window.*/
+ transit_y = -ypos;
+
+ elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ } else if (-ypos >= (max_height_limit * 0.8) && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/
+ dbg("Movement G.T. 80 percent of the height..");
+
+ /*effect to pull up the window.*/
+ transit_y = -(max_height_limit + ypos);
+
+ elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
+ }
+ }
+ }
+ }
+
+ elm_transit_del_cb_set(transit, __reject_screen_transit_complete_cb, vd);
+
+ if (priv->y_momentum < 0)
+ priv->y_momentum = -priv->y_momentum;
+
+ if (priv->y_momentum < 1500) {
+ elm_transit_duration_set(transit, 0.5);
+ } else if (priv->y_momentum >= 1500 && priv->y_momentum < 3000) {
+ elm_transit_duration_set(transit, 0.4);
+ } else if (priv->y_momentum >= 3000 && priv->y_momentum < 4500) {
+ elm_transit_duration_set(transit, 0.3);
+ } else if (priv->y_momentum >= 4500) {
+ elm_transit_duration_set(transit, 0.2);
+ }
+ evas_object_show(screen_ly); /*It must be called before elm_transit_go(). transit policy*/
+ elm_transit_objects_final_state_keep_set(transit, EINA_TRUE); /*Keep the window position as end of effect.*/
+ elm_transit_go(transit);
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static void __callui_view_incoming_call_reject_with_msg_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+
+ if (priv->bmouse_down_pressed) {
+ ecore_idle_enterer_before_add(__rej_msg_show_sliding_effect, vd);
+ } else {
+ dbg("mouse down was NOT pressed - DONT handle up event");
+ }
+}
+
+static void __callui_view_incoming_call_handle_reject_with_msg_event(void *data)
+{
+ dbg("..");
+ CALLUI_RETURN_IF_FAIL(data != NULL);
+
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ int max_height_limit = 0;
+
+ /*Max height possible*/
+ max_height_limit = priv->msg_list_height;
+ dbg("max_height_limit: %d", max_height_limit);
+
+ dbg("mouse down was pressed - handle move event");
+
+ if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) {
+ evas_object_move(priv->lock_reject_with_msg, 0, -max_height_limit);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
+ __reject_screen_transit_complete_cb(vd, NULL);
+ } else {
+ /*Special case - Move the max distance - msg-list height*/
+ evas_object_move(priv->lock_reject_with_msg, 0, 0);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ __reject_screen_transit_complete_cb(vd, NULL);
+ }
+}
+
+static void __callui_view_incoming_call_reject_msg_focus_key_down(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ Evas_Event_Key_Down *ev = event_info;
+ if (!ev) return;
+ if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+ return;
+
+ if ((!strcmp(ev->keyname, "Return")) ||
+ (!strcmp(ev->keyname, "KP_Enter"))) {
+ dbg("..");
+ __callui_view_incoming_call_handle_reject_with_msg_event(data);
+ }
+}
+
+static Evas_Event_Flags __reject_msg_flick_gesture_move_event_cb(void *data, void *event_info)
+{
+ dbg("Flick_Gesture Move");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ Elm_Gesture_Line_Info *info = (Elm_Gesture_Line_Info *)event_info;
+
+ dbg("*********************************************");
+ dbg("info->angle = %lf", info->angle);
+ dbg("info->momentum.mx = %d, info->momentum.my = %d", info->momentum.mx, info->momentum.my);
+ dbg("info->momentum.n = %d", info->momentum.n);
+ dbg("info->momentum.tx = %d, info->momentum.ty = %d", info->momentum.tx, info->momentum.ty);
+ dbg("info->momentum.x1 = %d, info->momentum.x2 = %d", info->momentum.x1, info->momentum.x2);
+ dbg("info->momentum.y1 = %d, info->momentum.y2 = %d", info->momentum.y1, info->momentum.y2);
+ dbg("*********************************************");
+
+ priv->y_momentum = info->momentum.my;
+
+ return EVAS_EVENT_FLAG_NONE;
+}
+
+static void __reject_msg_create_gesture_layer(void *data)
+{
+ dbg("..");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ Evas_Object *rej_msg_bg = NULL;
+
+ rej_msg_bg = _callui_edje_object_part_get(priv->lock_reject_with_msg, "reject_msg_bg");
+ if (priv->reject_msg_gl) {
+ evas_object_del(priv->reject_msg_gl);
+ priv->reject_msg_gl = NULL;
+ }
+
+ priv->reject_msg_gl = elm_gesture_layer_add(priv->lock_reject_with_msg);
+ if (FALSE == elm_gesture_layer_attach(priv->reject_msg_gl, rej_msg_bg)) {
+ dbg("elm_gesture_layer_attach failed !!");
+ evas_object_del(priv->reject_msg_gl);
+ priv->reject_msg_gl = NULL;
+ } else {
+ elm_gesture_layer_cb_set(priv->reject_msg_gl, ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_MOVE, __reject_msg_flick_gesture_move_event_cb, vd);
+ }
+}
+
+static void __callui_view_incoming_call_reject_with_msg_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ Evas_Event_Mouse_Move *ev = event_info;
+
+ priv->reject_with_msg_start_y = ev->cur.canvas.y;
+ priv->bmouse_down_pressed = EINA_TRUE;
+}
+
+static void __callui_view_incoming_call_reject_with_msg_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ Evas_Event_Mouse_Move *ev = event_info;
+ int diff_y = 0;
+ int max_height_limit = 0;
+
+ /*Max height possible*/
+ max_height_limit = priv->msg_list_height;
+ dbg("max_height_limit: %d", max_height_limit);
+
+ if (!priv->bmouse_down_pressed) {
+ dbg("mouse down was NOT pressed - DONT handle move event");
+ return;
+ }
+ dbg("mouse down was pressed - handle move event");
+ priv->reject_with_msg_cur_y = ev->cur.canvas.y;
+
+ diff_y = priv->reject_with_msg_cur_y - priv->reject_with_msg_start_y;
+ dbg("diff_y [<<< %d >>>>]", diff_y);
+
+ if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) {
+ elm_object_signal_emit(priv->lock_reject_with_msg, "show-down-arrow", "reject_msg");
+ if ((diff_y > -max_height_limit) && (diff_y <= 0)) {
+ /*Lies between 0 and msg-list layout height*/
+ evas_object_move(priv->lock_reject_with_msg, 0, diff_y);
+ } else if (diff_y <= -max_height_limit) {
+ /*Special case - Move the max distance - msg-list height*/
+ evas_object_move(priv->lock_reject_with_msg, 0, -max_height_limit);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE);
+ __reject_screen_transit_complete_cb(vd, NULL);
+ }
+ } else {
+ if ((diff_y >= 0) && (diff_y < max_height_limit)) {
+ /*Lies between 0 and msg-list layout height*/
+ evas_object_move(priv->lock_reject_with_msg, 0, -(max_height_limit - diff_y));
+ } else if (diff_y >= max_height_limit) {
+ /*Special case - Move the max distance - msg-list height*/
+ evas_object_move(priv->lock_reject_with_msg, 0, 0);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE);
+ __reject_screen_transit_complete_cb(vd, NULL);
+ }
+ }
+}
+
+static void __reject_msg_list_height_update(void *data)
+{
+ dbg("..");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+
+ int msg_cnt = 0;
+ if (0 != vconf_get_int(VCONFKEY_CISSAPPL_REJECT_CALL_MSG_INT, &msg_cnt)) {
+ warn("vconf_get_int failed.");
+ }
+ if (msg_cnt == 0)
+ msg_cnt = 1;
+
+ int win_h = 0;
+ ecore_x_window_size_get(ecore_x_window_root_first_get(), NULL, &win_h);
+ priv->msg_list_height = SCALE_SIZE((REJ_MSG_LIST_CREATE_MSG_BTN_H + ((ITEM_SIZE_H) * msg_cnt)), win_h);/* bottom btn height + (genlist item height * msg count) */
+ if (priv->msg_list_height > (SCALE_SIZE((MTLOCK_REJECT_MSG_LIST_HEIGHT + REJ_MSG_LIST_CREATE_MSG_BTN_H), win_h))) {
+ priv->msg_list_height = SCALE_SIZE((MTLOCK_REJECT_MSG_LIST_HEIGHT + REJ_MSG_LIST_CREATE_MSG_BTN_H), win_h);
+ }
+}
+
+static void __reject_msg_create_glist(void *data)
+{
+ dbg("..");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(vd);
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ CALLUI_RETURN_IF_FAIL(priv);
+ Elm_Object_Item *item = NULL;
+ int msg_cnt = 0;
+ int index = 0;
+
+ /* msg count from setting */
+ if (0 != vconf_get_int(VCONFKEY_CISSAPPL_REJECT_CALL_MSG_INT, &msg_cnt)) {
+ warn("vconf_get_int failed.");
+ }
+ dbg("msg_cnt: %d", msg_cnt);
+
+ /* create gen list */
+ if (priv->msg_glist) {
+ evas_object_del(priv->msg_glist);
+ priv->msg_glist = NULL;
+ }
+
+ priv->msg_glist = elm_genlist_add(priv->lock_reject_with_msg);
+ elm_genlist_homogeneous_set(priv->msg_glist, EINA_TRUE);
+ elm_genlist_mode_set(priv->msg_glist, ELM_LIST_COMPRESS);
+ elm_scroller_content_min_limit(priv->msg_glist, EINA_FALSE, EINA_TRUE);
+ CALLUI_RETURN_IF_FAIL(priv->msg_glist);
+ elm_genlist_realization_mode_set(priv->msg_glist, EINA_TRUE);
+
+ evas_object_data_set(priv->msg_glist, REJ_MSG_GENLIST_DATA, (const void *)vd);
+ evas_object_size_hint_weight_set(priv->msg_glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(priv->msg_glist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_part_content_set(priv->lock_reject_with_msg, "swl_msglist", priv->msg_glist);
+
+ priv->itc_reject_msg = _callui_view_incoming_lock_create_item_class();
+
+ if (msg_cnt == 0) {
+ index = -1;
+ item = _callui_view_incoming_lock_append_genlist_item(priv->msg_glist, priv->itc_reject_msg, index);
+ if (item) {
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ }
+ } else {
+ for (index = 0; index < msg_cnt; index++) {
+ _callui_view_incoming_lock_append_genlist_item(priv->msg_glist, priv->itc_reject_msg, index);
+ }
+ }
+ elm_genlist_item_class_free(priv->itc_reject_msg);
+ priv->itc_reject_msg = NULL;
+
+ _callui_view_incoming_lock_create_reject_msg_button(priv->lock_reject_with_msg, "bottom_btn", data);
+
+ /*Adjust the list height*/
+ __reject_msg_list_height_update(vd);
+ if (msg_cnt < 2)
+ elm_object_signal_emit(priv->lock_reject_with_msg, "set_1item_list", "");
+ else if (msg_cnt <= MAX_MSG_COUNT) {
+ char signal[16] = {0,};
+ snprintf(signal, 16, "set_%ditems_list", msg_cnt);
+ elm_object_signal_emit(priv->lock_reject_with_msg, signal, "");
+ }
+ elm_object_tree_focus_allow_set(priv->msg_glist, EINA_FALSE);
+}
+
+void _callui_view_incoming_call_draw_screen(callui_app_data_t *ad, call_view_data_t *vd)
+{
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ Evas_Object *eo = priv->contents;
+ char *file_path = NULL;
+ call_data_t *call_data = NULL;
+
+ call_data = ad->incom;
+ if (call_data == NULL) {
+ err("call data is null");
+ return;
+ }
+
+ file_path = call_data->call_ct_info.caller_id_path;
+
+ sec_dbg("file_path: %s", file_path);
+ if (strcmp(file_path, "default") != 0) {
+ _callui_show_caller_id(priv->caller_info, file_path, FALSE);
+ }
+
+ char *call_name = call_data->call_ct_info.call_disp_name;
+ char *call_number = NULL;
+ if (call_data->call_disp_num[0] != '\0') {
+ call_number = call_data->call_disp_num;
+ } else {
+ call_number = call_data->call_num;
+ }
+ if (strlen(call_name) == 0) {
+ _callui_show_caller_info_name(ad, call_number, EINA_FALSE);
+ elm_object_signal_emit(priv->caller_info, "1line", "caller_name");
+ } else {
+ _callui_show_caller_info_name(ad, call_name, EINA_FALSE);
+ _callui_show_caller_info_number(ad, call_number, EINA_FALSE);
+ elm_object_signal_emit(priv->caller_info, "2line", "caller_name");
+ }
+
+ _callui_show_caller_info_status(ad, _("IDS_CALL_BODY_INCOMING_CALL"), EINA_FALSE);
+
+ _callui_view_circle_create_accept_layout(ad, vd);
+ _callui_view_circle_create_reject_layout(ad, vd);
+
+ priv->dimming_ly = __callui_view_incoming_call_create_contents(ad, "dimming_ly");
+ evas_object_resize(priv->dimming_ly, ad->root_w, ad->root_h);
+ evas_object_move(priv->dimming_ly, 0, 0);
+
+ if (__callui_view_incoming_lock_reject_msg_available(ad, call_number)) {
+ __callui_view_incoming_call_create_reject_msg_layout(vd);
+ }
+
+ evas_object_show(eo);
+}
+
+static Eina_Bool __callui_view_incoming_lock_reject_msg_available(callui_app_data_t *ad, char *call_num)
+{
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, EINA_FALSE);
+ CALLUI_RETURN_VALUE_IF_FAIL(call_num, EINA_FALSE);
+
+ if (strlen(call_num) <= 0) {
+ info("Invalid number");
+ return EINA_FALSE;
+ }
+/* else if (ad->b_msg_restricted) {
+ CALL_UI_DEBUG(VC_LOG_WARN, "MDM");
+ return EINA_FALSE;
+ }
+*/
+ return EINA_TRUE;
+}
+
+static void __callui_view_incoming_lock_reject_msg_close(void *data)
+{
+ CALLUI_RETURN_IF_FAIL(data != NULL);
+ dbg("..");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+
+ if (EINA_FALSE != evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) {
+ evas_object_move(priv->lock_reject_with_msg, 0, 0);
+ elm_object_signal_emit(priv->lock_reject_with_msg, "show-up-arrow-landscape", "reject_msg");
+ evas_object_hide(priv->dimming_ly);
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, EINA_FALSE);
+ }
+}
+
+static void __callui_view_incoming_call_hw_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ Evas_Event_Mouse_Up *ev = event_info;
+ if (ev->button == 3) {
+ /* Handle mouse right button event */
+ __callui_view_incoming_lock_reject_msg_close(data);
+ }
+}
+
+void _callui_view_incoming_call_ondestroy(void *data)
+{
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)data;
+ callui_app_data_t *ad = _callui_get_app_data();
+ if (priv->lock_reject_with_msg) {
+ evas_object_event_callback_del(priv->lock_reject_with_msg, EVAS_CALLBACK_MOUSE_UP,
+ __callui_view_incoming_call_hw_mouse_up_cb);
+ evas_object_event_callback_del(ad->win_conformant, EVAS_CALLBACK_MOUSE_UP,
+ __callui_view_incoming_call_hw_mouse_up_cb);
+
+ evas_object_del(priv->lock_reject_with_msg);
+ priv->lock_reject_with_msg = NULL;
+ evas_object_del(priv->dimming_ly);
+ priv->dimming_ly = NULL;
+ }
+}
+
+static Evas_Object *__callui_view_incoming_call_create_reject_msg_layout(void *data)
+{
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ callui_app_data_t *ad = _callui_get_app_data();
+ Evas_Object *rej_msg_bg = NULL;
+ Evas_Object *focus = NULL;
+
+ if (priv->lock_reject_with_msg != NULL) {
+ evas_object_event_callback_del(priv->lock_reject_with_msg,
+ EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_hw_mouse_up_cb);
+ evas_object_event_callback_del(ad->win_conformant,
+ EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_hw_mouse_up_cb);
+
+ evas_object_del(priv->lock_reject_with_msg);
+ priv->lock_reject_with_msg = NULL;
+ }
+ priv->lock_reject_with_msg = _callui_load_edj(ad->win, EDJ_NAME, GRP_LOCK_REJECT_WITH_MSG);
+
+ focus = _callui_view_create_focus_layout(priv->lock_reject_with_msg);
+
+ elm_object_part_content_set(priv->lock_reject_with_msg, "reject_msg_focus", focus);
+ evas_object_event_callback_add(focus, EVAS_CALLBACK_KEY_DOWN,
+ __callui_view_incoming_call_reject_msg_focus_key_down, vd);
+
+ evas_object_resize(priv->lock_reject_with_msg, ad->root_w, ad->root_h);
+
+ __reject_msg_create_gesture_layer(vd);
+
+ rej_msg_bg = _callui_edje_object_part_get(priv->lock_reject_with_msg, "reject_msg_bg");
+ evas_object_event_callback_add(rej_msg_bg, EVAS_CALLBACK_MOUSE_DOWN, __callui_view_incoming_call_reject_with_msg_mouse_down_cb, vd);
+ evas_object_event_callback_add(rej_msg_bg, EVAS_CALLBACK_MOUSE_MOVE, __callui_view_incoming_call_reject_with_msg_mouse_move_cb, vd);
+ evas_object_event_callback_add(rej_msg_bg, EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_reject_with_msg_mouse_up_cb, vd);
+
+ elm_object_part_text_set(priv->lock_reject_with_msg, "reject_msg_text", _("IDS_VCALL_BUTTON2_REJECT_CALL_WITH_MESSAGE"));
+
+ elm_object_signal_emit(priv->lock_reject_with_msg, "show-up-arrow", "reject_msg");
+ evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, EINA_FALSE);
+ evas_object_hide(priv->dimming_ly);
+
+ __reject_msg_list_param_reset(vd);
+
+ evas_object_event_callback_add(ad->win_conformant, EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_hw_mouse_up_cb, vd);
+ evas_object_event_callback_add(priv->lock_reject_with_msg, EVAS_CALLBACK_MOUSE_UP, __callui_view_incoming_call_hw_mouse_up_cb, vd);
+
+ evas_object_show(priv->lock_reject_with_msg);
+ _callui_view_incoming_lock_reject_msg_create_call_setting_handle(vd);
+ __reject_msg_create_glist(vd);
+ return priv->lock_reject_with_msg;
+}
+
+int _callui_view_incoming_call_oncreate(call_view_data_t *view_data, void *appdata)
+{
+ dbg("mt-lock view create!!");
+
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ dbg(" active %d", ad->active);
+ dbg(" incoming %d", ad->incom);
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *) view_data->priv;
+
+ evas_object_resize(ad->win, ad->root_w, ad->root_h);
+ evas_object_pointer_mode_set(ad->win, EVAS_OBJECT_POINTER_MODE_NOGRAB);
+ if (ad->main_ly) {
+ priv->contents = __callui_view_incoming_call_create_contents(ad, GRP_MAIN_LY);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
+
+ priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info");
+ if (!priv->caller_info) {
+ priv->caller_info = __callui_view_incoming_call_create_contents(ad, GRP_CALLER_INFO);
+ elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info);
+ }
+ elm_object_signal_emit(priv->contents, "mt_circle_bg_show", "mt_view");
+ _callui_destroy_end_call_button(priv->contents);
+ evas_object_name_set(priv->caller_info, VIEW_INCOMING_LOCK_LAYOUT_ID);
+ }
+ if (ad->lock_screen_handle != NULL && _callui_lock_screen_is_lockscreen_shown() == TRUE) {
+ _callui_lock_screen_hide_layout(ad->lock_screen_handle);
+ }
+
+ return 0;
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 <utilX.h>
+#include <msg.h>
+#include <msg_transport.h>
+#include <dlfcn.h>
+#include <vconf.h>
+#include "callui.h"
+
+#include "notification.h"
+#include <Elementary.h>
+#include "callui.h"
+#include "callui-view-layout-wvga.h"
+#include "callui-view-elements.h"
+#include "callui-view-active-incoming-call.h"
+#include "callui-view-incoming-call.h"
+#include "callui-view-incoming-lock.h"
+#include "callui-common.h"
+#define REJ_MSG_LIST_OPEN_STATUS_KEY "list_open_status_key"
+#define CALLUI_CST_SO_PATH "/usr/apps/setting-call-efl/lib/ug/libsetting-call-efl.so"
+#define CALLUI_CST_REJECT_MSG_GET "cst_reject_msg_get"
+#define REJ_MSG_GENLIST_DATA "reject_msg_genlist_data"
+
+static int __callui_view_incoming_lock_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *appdata);
+static int __callui_view_incoming_lock_onupdate(call_view_data_t *view_data, void *update_data1);
+static int __callui_view_incoming_lock_onhide(call_view_data_t *view_data);
+static int __callui_view_incoming_lock_onshow(call_view_data_t *view_data, void *appdata);
+static int __callui_view_incoming_lock_ondestroy(call_view_data_t *view_data);
+static int __callui_view_incoming_lock_onrotate(call_view_data_t *view_data);
+
+call_view_data_t *_callui_view_incoming_lock_new(callui_app_data_t *ad)
+{
+ dbg("_callui_view_incoming_lock_new");
+ static call_view_data_t incoming_lock_view = {
+ .type = VIEW_INCOMING_LOCK_VIEW,
+ .layout = NULL,
+ .onCreate = __callui_view_incoming_lock_oncreate,
+ .onUpdate = __callui_view_incoming_lock_onupdate,
+ .onHide = __callui_view_incoming_lock_onhide,
+ .onShow = __callui_view_incoming_lock_onshow,
+ .onDestroy = __callui_view_incoming_lock_ondestroy,
+ .onRotate = __callui_view_incoming_lock_onrotate,
+ .priv = NULL,
+ };
+ incoming_lock_view.priv = calloc(1, sizeof(incoming_lock_view_priv_t));
+
+ if (!incoming_lock_view.priv) {
+ err("ERROR!!!!!!!!!!!");
+ }
+
+ return &incoming_lock_view;
+}
+
+void _callui_view_incoming_lock_reject_msg_create_call_setting_handle(void *data)
+{
+ dbg("..");
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ char *error = NULL;
+
+ priv->dl_handle = dlopen(CALLUI_CST_SO_PATH, RTLD_LAZY);
+ if (priv->dl_handle) {
+ priv->msg_func_ptr = dlsym(priv->dl_handle, CALLUI_CST_REJECT_MSG_GET);
+ if ((error = dlerror()) != NULL) {
+ dbg("dlsym failed!!! error = %s", error);
+ priv->msg_func_ptr = NULL;
+ dlclose(priv->dl_handle);
+ priv->dl_handle = NULL;
+ }
+ } else {
+ dbg("failed to open libug-setting-call-efl.so");
+ }
+}
+
+static void __send_reject_msg_status_cb(msg_handle_t Handle, msg_struct_t pStatus, void *pUserParam)
+{
+ CALLUI_RETURN_IF_FAIL(pStatus != NULL);
+ int status = MSG_NETWORK_SEND_FAIL;
+
+ msg_get_int_value(pStatus, MSG_SENT_STATUS_NETWORK_STATUS_INT, &status);
+ dbg("status:[%d]", status);
+}
+
+void _callui_view_incoming_lock_view_send_reject_msg(void *data, call_data_t *call_data)
+{
+ CALLUI_RETURN_IF_FAIL(data != NULL);
+ CALLUI_RETURN_IF_FAIL(call_data != NULL);
+ dbg("..");
+ call_view_data_t *vd = data;
+ callui_app_data_t *ad = _callui_get_app_data();
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ int slot_id;
+
+ msg_error_t err = MSG_SUCCESS;
+ msg_handle_t msgHandle = NULL;
+
+ if (strlen(priv->reject_msg) == 0) {
+ warn("Is not reject with message case");
+ return;
+ }
+
+ err = msg_open_msg_handle(&msgHandle);
+ if (err != MSG_SUCCESS) {
+ dbg("msg_open_msg_handle()- failed [%d]", err);
+ return;
+ }
+
+ err = msg_reg_sent_status_callback(msgHandle, &__send_reject_msg_status_cb, NULL);
+ if (err != MSG_SUCCESS) {
+ dbg("msg_reg_sent_status_callback()- failed [%d]", err);
+ msg_close_msg_handle(&msgHandle);
+ return;
+ }
+ msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+ msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+ msg_struct_t pReq = msg_create_struct(MSG_STRUCT_REQUEST_INFO);
+
+ /* Set message type to SMS reject*/
+ msg_set_int_value(msgInfo, MSG_MESSAGE_TYPE_INT, MSG_TYPE_SMS_REJECT);
+
+ slot_id = ad->sim_slot;
+ dbg("msg_sms_send_message() Sim slot [%d]", slot_id);
+ if (slot_id != -1) {
+ slot_id++;
+ msg_set_int_value(msgInfo, MSG_MESSAGE_SIM_INDEX_INT, slot_id);
+ }
+
+ /* No setting send option */
+ msg_set_bool_value(sendOpt, MSG_SEND_OPT_SETTING_BOOL, FALSE);
+
+ /* Set message body */
+ if (msg_set_str_value(msgInfo, MSG_MESSAGE_SMS_DATA_STR, priv->reject_msg, strlen(priv->reject_msg)) != MSG_SUCCESS) {
+ err("msg_set_str_value() - failed");
+ } else {
+ /* Create address list*/
+ msg_struct_list_s *addr_list;
+ msg_get_list_handle(msgInfo, MSG_MESSAGE_ADDR_LIST_STRUCT, (void **)&addr_list);
+ msg_struct_t addr_info = addr_list->msg_struct_info[0];
+ char *call_number = call_data->call_num;
+
+ /* Set message address */
+ msg_set_int_value(addr_info, MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO);
+ msg_set_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, call_number, strlen(call_number));
+ addr_list->nCount = 1;
+
+ /* Set message struct to Request*/
+ msg_set_struct_handle(pReq, MSG_REQUEST_MESSAGE_HND, msgInfo);
+ msg_set_struct_handle(pReq, MSG_REQUEST_SENDOPT_HND, sendOpt);
+
+ /* Send message */
+ err = msg_sms_send_message(msgHandle, pReq);
+ if (err != MSG_SUCCESS) {
+ err("msg_sms_send_message() - failed [%d]", err);
+ } else {
+ dbg("Sending...");
+ }
+ }
+ msg_close_msg_handle(&msgHandle);
+ msg_release_struct(&pReq);
+ msg_release_struct(&msgInfo);
+ msg_release_struct(&sendOpt);
+
+ return;
+}
+
+static int __callui_view_incoming_lock_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *appdata)
+{
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ if (_callui_common_get_idle_lock_type() == LOCK_TYPE_UNLOCK && ad->held == NULL
+ && ad->active == NULL && ad->incom != NULL && ad->active_incoming == false) {
+ _callui_view_active_incoming_call_oncreate(view_data, appdata);
+ } else {
+ _callui_view_incoming_call_oncreate(view_data, appdata);
+ }
+ __callui_view_incoming_lock_onshow(view_data, ad);
+
+ return 0;
+}
+
+static int __callui_view_incoming_lock_onupdate(call_view_data_t *view_data, void *update_data1)
+{
+ dbg("mt-lock view update!!");
+ callui_app_data_t *ad = _callui_get_app_data();
+ __callui_view_incoming_lock_onshow(view_data, ad);
+ return 0;
+}
+
+static int __callui_view_incoming_lock_onhide(call_view_data_t *view_data)
+{
+ dbg("mt-lock view hide!!");
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ evas_object_hide(ad->main_ly);
+ return 0;
+}
+
+static int __callui_view_incoming_lock_onshow(call_view_data_t *view_data, void *appdata)
+{
+ dbg("mt-lock view show!!");
+ callui_app_data_t *ad = (callui_app_data_t *) appdata;
+ int result = 0;
+ if (_callui_common_get_idle_lock_type() == LOCK_TYPE_UNLOCK && ad->active == NULL
+ && ad->held == NULL && ad->incom != NULL && ad->active_incoming == false) {
+ /* create active incoming call */
+ _callui_view_active_incoming_call_draw_screen(ad, view_data);
+ Ecore_X_Window xwin = elm_win_xwindow_get(ad->win);
+ utilx_set_system_notification_level(ecore_x_display_get(), xwin, UTILX_NOTIFICATION_LEVEL_HIGH);
+ } else {
+ /* create incoming call */
+ evas_object_move(ad->win, 0, 0);
+ _callui_view_incoming_call_draw_screen(ad, view_data);
+ _callui_common_win_set_noti_type(ad, EINA_TRUE);
+ }
+
+ ad->active_incoming = true;
+ evas_object_show(ad->main_ly);
+ result = utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_SELECT, TOP_POSITION_GRAB);
+ if (result) {
+ dbg("KEY_SELECT key grab failed");
+ }
+
+ return 0;
+}
+
+static char *__reject_list_get_msg_by_index(void *data, int index, Eina_Bool b_parsing)
+{
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+
+ char *ret_str = NULL;
+
+ if (priv->msg_func_ptr) {
+ ret_str = (char *) priv->msg_func_ptr(index, b_parsing); /* i : reject msg index(0 ~ 4)*/
+ sec_dbg("b_parsing(%d),ret_str(%s)", b_parsing, ret_str);
+ }
+
+ return ret_str;
+}
+
+static char *__callui_view_incoming_lock_reject_msg_gl_label_get_msg(void *data, Evas_Object *obj, const char *part)
+{
+ CALLUI_RETURN_NULL_IF_FAIL(part);
+ call_view_data_t *vd = (call_view_data_t *)evas_object_data_get(obj, REJ_MSG_GENLIST_DATA);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, NULL);
+
+ int index = (int)data;
+ char *msg_str = NULL;
+
+ if (!strcmp(part, "elm.text")) {
+ if (index != -1) {
+ msg_str = __reject_list_get_msg_by_index(vd, index, EINA_TRUE);
+ sec_dbg("msg_str(%s)", msg_str);
+ return msg_str; /*Send markup text to draw the genlist */
+ } else {
+ warn("invalid index: %d", index);
+ msg_str = _("IDS_CALL_BODY_NO_MESSAGES");
+ return strdup(msg_str);
+ }
+ }
+ return NULL;
+}
+
+static void __reject_msg_gl_sel_msg(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ int index = (int)data;
+ int ret = -1;
+ dbg("index: %d", index);
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+ if (index != -1) {
+ char *reject_msg = NULL;
+ char *ret_str = NULL;
+ call_view_data_t *vd = (call_view_data_t *)evas_object_data_get(obj, REJ_MSG_GENLIST_DATA);
+ CALLUI_RETURN_IF_FAIL(vd);
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+ CALLUI_RETURN_IF_FAIL(priv);
+
+ ret_str = __reject_list_get_msg_by_index(vd, index, EINA_TRUE);
+ if (ret_str) {
+ reject_msg = elm_entry_markup_to_utf8(ret_str); /*send utf8 text to MSG */
+ if (reject_msg != NULL) {
+ snprintf(priv->reject_msg, sizeof(priv->reject_msg), "%s", reject_msg);
+ sec_dbg("priv->reject_msg(%s)", priv->reject_msg);
+ free(reject_msg);
+ }
+ free(ret_str);
+ }
+
+ ret = cm_reject_call(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_reject_call() is failed");
+ } else {
+ _callui_view_incoming_lock_view_send_reject_msg(vd, ad->incom);
+ }
+ }
+
+ return;
+}
+
+Elm_Object_Item *_callui_view_incoming_lock_append_genlist_item(Evas_Object *msg_glist, Elm_Genlist_Item_Class * itc_reject_msg, int index)
+{
+ Elm_Object_Item *item = NULL;
+ item = elm_genlist_item_append(msg_glist, itc_reject_msg, (void *)index, NULL, ELM_GENLIST_ITEM_NONE, __reject_msg_gl_sel_msg, (void *)index);
+ return item;
+}
+
+Elm_Genlist_Item_Class *_callui_view_incoming_lock_create_item_class()
+{
+ Elm_Genlist_Item_Class *item_class = elm_genlist_item_class_new();
+ CALLUI_RETURN_VALUE_IF_FAIL(item_class, NULL);
+
+ item_class->item_style = "type1";
+ item_class->func.text_get = __callui_view_incoming_lock_reject_msg_gl_label_get_msg;
+ item_class->func.content_get = NULL;
+ item_class->func.state_get = NULL;
+ item_class->func.del = NULL;
+ return item_class;
+}
+
+static void __callui_view_incoming_lock_create_new_msg_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ CALLUI_RETURN_IF_FAIL(data != NULL);
+ callui_app_data_t *ad = _callui_get_app_data();
+ char *tel_number = NULL;
+ int ret = -1;
+ call_data_t *call_data = NULL;
+
+ call_data = ad->incom;
+ if (call_data != NULL) {
+ tel_number = call_data->call_num;
+ _callui_common_launch_msg_composer(ad, tel_number);
+ ret = cm_reject_call(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_reject_call() is failed");
+ }
+ }
+}
+
+void _callui_view_incoming_lock_create_reject_msg_button(Evas_Object *parent, char *part, void *data)
+{
+ Evas_Object *msg_button = elm_button_add(parent);
+ CALLUI_RETURN_IF_FAIL(msg_button);
+ elm_object_style_set(msg_button, "default");
+ elm_object_text_set(msg_button, _("IDS_CALL_BUTTON_COMPOSE_MESSAGE_TO_SEND_ABB"));
+ evas_object_smart_callback_add(msg_button, "clicked", __callui_view_incoming_lock_create_new_msg_cb, data);
+ elm_object_part_content_set(parent, part, msg_button);
+ evas_object_show(msg_button);
+}
+
+static int __callui_view_incoming_lock_ondestroy(call_view_data_t *vd)
+{
+ dbg("mt-lock view destroy!!");
+ callui_app_data_t *ad = _callui_get_app_data();
+ incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv;
+
+ /* Set LCD timeout for call state */
+ /* LCD is alwasy on during incoming call screen */
+ if (ad->speaker_status == EINA_TRUE) {
+ _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_SET);
+ }
+
+ if (priv != NULL) {
+ if (priv->lock_accept) {
+ evas_object_del(priv->lock_accept);
+ priv->lock_accept = NULL;
+ }
+ if (priv->lock_reject) {
+ evas_object_del(priv->lock_reject);
+ priv->lock_reject = NULL;
+ }
+
+ if (ad->second_call_popup) {
+ evas_object_del(ad->second_call_popup);
+ ad->second_call_popup = NULL;
+ }
+
+ if (priv->itc_reject_msg) {
+ priv->itc_reject_msg->func.text_get = NULL;
+ priv->itc_reject_msg->func.content_get = NULL;
+ priv->itc_reject_msg->func.state_get = NULL;
+ priv->itc_reject_msg->func.del = NULL;
+ elm_genlist_item_class_free(priv->itc_reject_msg);
+ priv->itc_reject_msg = NULL;
+ }
+
+ if (priv->msg_glist) {
+ elm_genlist_clear(priv->msg_glist);
+ evas_object_del(priv->msg_glist);
+ priv->msg_glist = NULL;
+ }
+
+ if (priv->reject_msg_gl) {
+ evas_object_del(priv->reject_msg_gl);
+ priv->reject_msg_gl = NULL;
+ }
+
+ _callui_view_incoming_call_ondestroy(priv);
+
+ elm_object_signal_emit(priv->contents, "mt_circle_bg_hide", "mt_view");
+ _callui_common_reset_main_ly_text_fields(priv->contents);
+
+ if (ad->main_ly) {
+ priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
+ if (priv->contents) {
+ evas_object_del(priv->contents);
+ priv->contents = NULL;
+ }
+ }
+
+ if (priv->dimming_ly) {
+ evas_object_del(priv->dimming_ly);
+ priv->dimming_ly = NULL;
+ }
+
+ if (ad->win) {
+ evas_object_move(ad->win, 0, 0);
+ evas_object_resize(ad->win, ad->root_w, ad->root_h);
+ }
+
+ free(priv);
+ priv = NULL;
+ }
+ utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_SELECT);
+
+ return 0;
+}
+
+static int __callui_view_incoming_lock_onrotate(call_view_data_t *view_data)
+{
+ dbg("*** Incoming view Rotate ***");
+
+ return 0;
+}
+
+Evas_Object *_callui_view_incoming_lock_get_accept_layout(call_view_data_t *vd)
+{
+ incoming_lock_view_priv_t *priv = NULL;
+
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, NULL);
+ priv = (incoming_lock_view_priv_t *) vd->priv;
+
+ CALLUI_RETURN_VALUE_IF_FAIL(priv, NULL);
+ return priv->lock_accept;
+}
+
+void _callui_view_incoming_lock_set_accept_layout(call_view_data_t *vd, Evas_Object *layout)
+{
+ incoming_lock_view_priv_t *priv = NULL;
+
+ CALLUI_RETURN_IF_FAIL(vd);
+ priv = (incoming_lock_view_priv_t *) vd->priv;
+
+ CALLUI_RETURN_IF_FAIL(priv);
+ priv->lock_accept = layout;
+}
+
+Evas_Object *_callui_view_incoming_lock_get_reject_layout(call_view_data_t *vd)
+{
+ incoming_lock_view_priv_t *priv = NULL;
+
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, NULL);
+ priv = (incoming_lock_view_priv_t *) vd->priv;
+
+ CALLUI_RETURN_VALUE_IF_FAIL(priv, NULL);
+ return priv->lock_reject;
+}
+
+void _callui_view_incoming_lock_set_reject_layout(call_view_data_t *vd, Evas_Object *layout)
+{
+ incoming_lock_view_priv_t *priv = NULL;
+
+ CALLUI_RETURN_IF_FAIL(vd);
+ priv = (incoming_lock_view_priv_t *) vd->priv;
+
+ CALLUI_RETURN_IF_FAIL(priv);
+ priv->lock_reject = layout;
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "callui.h"
+#include "callui-view-lock-screen.h"
+#include "callui-view-dialing.h"
+#include "callui-view-single-call.h"
+#include "callui-view-multi-call-conf.h"
+#include "callui-view-multi-call-split.h"
+#include "callui-view-layout-wvga.h"
+#include "callui-keypad.h"
+#include "callui-view-manager.h"
+#include "callui-view-elements.h"
+#include "callui-common.h"
+
+void _callui_lock_screen_show_layout(lock_screen_data_t *lock_screen_priv)
+{
+ dbg("..");
+ CALLUI_RETURN_IF_FAIL(lock_screen_priv);
+ callui_app_data_t *ad = _callui_get_app_data();
+ if (ad->speaker_status == EINA_TRUE) {
+ dbg("Speaker ON. Do not display lockscreen.");
+ return;
+ }
+ if (EINA_TRUE == _callui_keypad_get_show_status()) {
+ dbg("Keypad is ON. Do not display lockscreen.");
+ return;
+ }
+
+ evas_object_raise(lock_screen_priv->layout);
+ evas_object_show(lock_screen_priv->layout);
+
+ if (_callvm_get_top_view_id(ad->view_manager_handle) != VIEW_DIALLING_VIEW) {
+ dbg("lcd show");
+ _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_LOCKSCREEN_SET);
+ }
+
+ lock_screen_priv->is_locked = true;
+ _callui_common_set_quickpanel_scrollable(EINA_FALSE);
+ return;
+}
+
+void _callui_lock_screen_hide_layout(lock_screen_data_t *lock_screen_priv)
+{
+ dbg("..");
+ CALLUI_RETURN_IF_FAIL(lock_screen_priv);
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ evas_object_hide(lock_screen_priv->layout);
+ lock_screen_priv->is_locked = false;
+ if (_callvm_get_top_view_id(ad->view_manager_handle) != VIEW_DIALLING_VIEW) {
+ dbg("lcd hide");
+ _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_SET);
+ }
+
+ if (_callui_common_get_idle_lock_type() != LOCK_TYPE_UNLOCK) {
+ _callui_common_set_quickpanel_scrollable(EINA_FALSE);
+ } else {
+ _callui_common_set_quickpanel_scrollable(EINA_TRUE);
+ }
+ return;
+}
+
+static Evas_Object *__callui_lock_screen_create_contents(Evas_Object *parent, char *grpname)
+{
+ Evas_Object *eo = NULL;
+
+ /* load edje */
+ eo = _callui_load_edj(parent, EDJ_NAME, grpname);
+ if (eo == NULL)
+ return NULL;
+ return eo;
+}
+
+static Eina_Bool __lock_timeout_cb(void *data)
+{
+ dbg("__lock_timeout_cb");
+ lock_screen_data_t *priv = (lock_screen_data_t *)data;
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ priv->no_lock_timer = NULL;
+
+ if (_callvm_get_top_view_id(ad->view_manager_handle) >= VIEW_INCALL_MULTICALL_LIST_VIEW) {
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCOMING_LOCK_VIEW) {
+ return ECORE_CALLBACK_RENEW;
+ }
+
+ _callui_lock_screen_show_layout(priv);
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static void __callui_lock_screen_icon_double_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source)
+{
+ dbg("__callui_lock_screen_icon_double_clicked_cb");
+ lock_screen_data_t *priv = (lock_screen_data_t *)data;
+
+ _callui_lock_screen_hide_layout(priv);
+ priv->no_lock_timer = ecore_timer_add(3.0, __lock_timeout_cb, priv);
+ return;
+}
+
+static void __callui_lock_screen_user_action_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ dbg("__callui_lock_screen_user_action_cb");
+ lock_screen_data_t *priv = (lock_screen_data_t *)data;
+ if (priv->no_lock_timer) {
+ ecore_timer_del(priv->no_lock_timer);
+ priv->no_lock_timer = NULL;
+ priv->no_lock_timer = ecore_timer_add(3.0, __lock_timeout_cb, priv);
+ }
+ return;
+}
+
+lock_screen_data_t *_callui_lock_screen_create_layout(call_view_data_t *view_data)
+{
+ dbg("lock screen create!!");
+ CALLUI_RETURN_NULL_IF_FAIL(view_data);
+ callui_app_data_t *ad = _callui_get_app_data();
+ lock_screen_data_t *priv = NULL;
+ Evas_Object *layout = NULL;
+ Evas_Object *hit_rect = NULL;
+
+ priv = calloc(1, sizeof(lock_screen_data_t));
+ CALLUI_RETURN_NULL_IF_FAIL(priv);
+
+ /* Make Hit rectangle to refresh lock timer */
+ hit_rect = evas_object_rectangle_add(ad->evas);
+ evas_object_color_set(hit_rect, 0, 0, 0, 0);
+ evas_object_resize(hit_rect, ad->root_w, ad->root_h);
+ evas_object_move(hit_rect, 0, 0);
+ evas_object_repeat_events_set(hit_rect, EINA_TRUE);
+ evas_object_propagate_events_set(hit_rect, EINA_FALSE);
+ evas_object_event_callback_add(hit_rect, EVAS_CALLBACK_MOUSE_DOWN, __callui_lock_screen_user_action_cb, priv);
+ evas_object_show(hit_rect);
+ priv->hit_rect = hit_rect;
+
+ layout = __callui_lock_screen_create_contents(ad->main_ly, "lock-screen");
+ if (NULL == layout) {
+ warn("layout NULL!!!");
+ }
+
+ evas_object_resize(layout, ad->root_w, ad->root_h);
+ evas_object_move(layout, 0, 0);
+ elm_object_domain_translatable_part_text_set(layout, "lock-text", CALLUI_TEXT_DOMAIN, "IDS_CALL_NPBODY_DOUBLE_TAP_THE_LOCK_ICON_TO_UNLOCK_YOUR_DEVICE");
+
+ edje_object_signal_callback_add(_EDJ(layout), "mouse,down,1,double", "lock-icon", __callui_lock_screen_icon_double_clicked_cb, priv);
+
+ priv->layout = layout;
+
+ _callui_lock_screen_show_layout(priv);
+
+ return priv;
+}
+
+void _callui_lock_screen_start_timer()
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ lock_screen_data_t *lock_screen_priv = ad->lock_screen_handle;
+ CALLUI_RETURN_IF_FAIL(lock_screen_priv);
+
+ if (lock_screen_priv->no_lock_timer) {
+ ecore_timer_del(lock_screen_priv->no_lock_timer);
+ lock_screen_priv->no_lock_timer = NULL;
+ }
+
+ lock_screen_priv->no_lock_timer = ecore_timer_add(3.0, __lock_timeout_cb, lock_screen_priv);
+ return;
+}
+
+void _callui_lock_screen_stop_timer()
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ lock_screen_data_t *lock_screen_priv = ad->lock_screen_handle;
+ CALLUI_RETURN_IF_FAIL(lock_screen_priv);
+
+ if (lock_screen_priv->no_lock_timer) {
+ ecore_timer_del(lock_screen_priv->no_lock_timer);
+ lock_screen_priv->no_lock_timer = NULL;
+ }
+ return;
+}
+
+void _callui_lock_screen_refresh_timer(call_view_data_t *view_data)
+{
+ dbg("..");
+ callui_app_data_t *ad = _callui_get_app_data();
+ lock_screen_data_t *lock_screen_priv = ad->lock_screen_handle;
+ CALLUI_RETURN_IF_FAIL(lock_screen_priv);
+
+ if (lock_screen_priv->no_lock_timer) {
+ ecore_timer_del(lock_screen_priv->no_lock_timer);
+ lock_screen_priv->no_lock_timer = ecore_timer_add(3.0, __lock_timeout_cb, lock_screen_priv);
+ }
+
+ return;
+}
+
+void _callui_lock_screen_unlock_screen(call_view_data_t *view_data)
+{
+ warn("_callui_lock_screen_delete_layout");
+ CALLUI_RETURN_IF_FAIL(view_data);
+ callui_app_data_t *ad = _callui_get_app_data();
+ lock_screen_data_t *lock_screen_priv = ad->lock_screen_handle;
+
+ if (lock_screen_priv) {
+ if (lock_screen_priv->is_locked) {
+ _callui_lock_screen_hide_layout(lock_screen_priv);
+ lock_screen_priv->no_lock_timer = ecore_timer_add(3.0, __lock_timeout_cb, lock_screen_priv);
+ } else {
+ _callui_lock_screen_refresh_timer(view_data);
+ }
+ } else {
+ err("lock_screen_priv is NULL");
+ }
+ return;
+}
+
+void _callui_lock_screen_delete_layout(lock_screen_data_t *lock_screen_priv)
+{
+ dbg("lock screen delete!!");
+ CALLUI_RETURN_IF_FAIL(lock_screen_priv);
+ evas_object_del(lock_screen_priv->layout);
+ evas_object_del(lock_screen_priv->hit_rect);
+ if (lock_screen_priv->no_lock_timer) {
+ ecore_timer_del(lock_screen_priv->no_lock_timer);
+ lock_screen_priv->no_lock_timer = NULL;
+ }
+ free(lock_screen_priv);
+
+ return;
+}
+
+gboolean _callui_lock_screen_is_lockscreen_shown()
+{
+ callui_app_data_t *ad = _callui_get_app_data();
+ lock_screen_data_t *lock_screen_priv = ad->lock_screen_handle;
+ if (!lock_screen_priv) {
+ return FALSE;
+ }
+ return lock_screen_priv->is_locked;
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "callui-view-manager.h"
+#include "callui-view-dialing.h"
+#include "callui-view-single-call.h"
+#include "callui-view-callend.h"
+#include "callui-view-incoming-lock.h"
+#include "callui-view-multi-call-split.h"
+#include "callui-view-multi-call-conf.h"
+#include "callui-view-multi-call-list.h"
+#include "callui-view-quickpanel.h"
+
+typedef call_view_data_t *(*new_view_data_cb) ();
+
+struct _view_manager_data {
+ new_view_data_cb func_new[VIEW_MAX];
+ call_view_data_t *view_st[VIEW_MAX];
+ callui_view_id_t view_before_top;
+ callui_view_id_t view_top;
+};
+
+
+static void __callvm_init_view_register_function(view_manager_data_t *vm_data, callui_view_id_t view_id, call_view_data_t *(*view_new) ())
+{
+ vm_data->func_new[view_id] = view_new;
+}
+
+view_manager_data_t *_callvm_init()
+{
+ view_manager_data_t *vm_data = NULL;
+
+ vm_data = (view_manager_data_t *) calloc(1, sizeof(view_manager_data_t));
+ CALLUI_RETURN_VALUE_IF_FAIL(vm_data, NULL);
+ __callvm_init_view_register_function(vm_data, VIEW_DIALLING_VIEW, _callui_dialing_view_dialing_new);
+ __callvm_init_view_register_function(vm_data, VIEW_INCOMING_LOCK_VIEW, _callui_view_incoming_lock_new);
+ __callvm_init_view_register_function(vm_data, VIEW_INCALL_ONECALL_VIEW, _callui_view_single_call_new);
+ __callvm_init_view_register_function(vm_data, VIEW_INCALL_MULTICALL_SPLIT_VIEW, _callui_view_multi_call_split_new);
+ __callvm_init_view_register_function(vm_data, VIEW_INCALL_MULTICALL_CONF_VIEW, _callui_view_multi_call_conf_new);
+ __callvm_init_view_register_function(vm_data, VIEW_INCALL_MULTICALL_LIST_VIEW, _callui_view_multi_call_list_new);
+ __callvm_init_view_register_function(vm_data, VIEW_QUICKPANEL_VIEW, _callui_view_qp_new);
+ __callvm_init_view_register_function(vm_data, VIEW_ENDCALL_VIEW, _callui_view_callend_new);
+ vm_data->view_top = -1;
+ return vm_data;
+}
+
+callui_view_id_t _callvm_get_top_view_id(view_manager_data_t *view_manager_handle)
+{
+ return view_manager_handle->view_top;
+}
+
+call_view_data_t *_callvm_get_call_view_data(void *appdata, callui_view_id_t view_id)
+{
+
+ callui_app_data_t *ad = (callui_app_data_t *) appdata;
+ if (ad->view_manager_handle->view_st[view_id]) {
+ return (call_view_data_t *) ad->view_manager_handle->view_st[view_id];
+ }
+
+ return NULL;
+}
+
+void _callvm_set_call_view_data(void *appdata, callui_view_id_t view_id, call_view_data_t *vd)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *) appdata;
+
+ if (vd) {
+ (ad->view_manager_handle->view_st[view_id]) = vd;
+ }
+}
+
+Evas_Object *_callvm_get_view_layout(void *appdata)
+{
+ Evas_Object *layout = NULL;
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, NULL);
+ layout = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
+
+ return layout;
+}
+
+
+void _callvm_reset_call_view_data(void *appdata, callui_view_id_t view_id)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *) appdata;
+
+ info("view:[%d] -> [%d]", ad->view_manager_handle->view_top, view_id);
+ ad->view_manager_handle->view_st[view_id] = NULL;
+}
+
+static void _callvm_hide_view(call_view_data_t *view)
+{
+ CALLUI_RETURN_IF_FAIL(view);
+
+ hide_cb hide = view->onHide;
+ destroy_cb destroy = view->onDestroy;
+
+ if (hide) {
+ hide(view);
+ }
+ if (destroy) {
+ destroy(view);
+ }
+}
+
+static call_view_data_t *_callvm_show_view(call_view_data_t *view, new_view_data_cb func_new, unsigned int param1, void *param2, void *ad)
+{
+ if (view == NULL) {
+ dbg("Create view data");
+
+ view = func_new(ad);
+ }
+ CALLUI_RETURN_VALUE_IF_FAIL(view, NULL);
+
+ if (view->layout == NULL) {
+ dbg("Create layout");
+
+ create_cb create = view->onCreate;
+ CALLUI_RETURN_VALUE_IF_FAIL(create, NULL);
+ create(view, param1, param2, ad);
+ } else {
+ dbg("Update layout");
+
+ update_cb update = view->onUpdate;
+ CALLUI_RETURN_VALUE_IF_FAIL(update, NULL);
+ update(view, param2);
+ }
+
+ return view;
+}
+
+void _callvm_view_change(callui_view_id_t view_id, unsigned int param1, void *param2, void *appdata)
+{
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ info("view:[%d] -> [%d]", ad->view_manager_handle->view_top, view_id);
+ if ((view_id >= VIEW_MAX) || (view_id < 0)) {
+ err("[=========== ERROR!!!! Invalid View ID : %d =================]", view_id);
+ return;
+ }
+
+ call_view_data_t **views = ad->view_manager_handle->view_st;
+
+ callui_view_id_t last_view_id = ad->view_manager_handle->view_top;
+ ad->view_manager_handle->view_before_top = last_view_id; /* hold the current top window in the before_top pointer */
+ ad->view_manager_handle->view_top = view_id; /* set the new top window to the view_id which is passed... this step enables in setting 00:00:00 as timer */
+ new_view_data_cb func_new = ad->view_manager_handle->func_new[view_id];
+
+
+ if ((last_view_id != -1) && (last_view_id != view_id)) {
+ dbg("hide & destroy [%d]", last_view_id);
+ _callvm_hide_view(views[last_view_id]);
+ views[last_view_id] = NULL;
+ }
+ views[view_id] = _callvm_show_view(views[view_id], func_new, param1, param2, appdata);
+
+ if (view_id == VIEW_DIALLING_VIEW || view_id == VIEW_INCOMING_LOCK_VIEW) {
+ elm_win_activate(ad->win);
+ }
+
+ _callui_view_quickpanel_change();
+
+ evas_object_show(ad->win);
+ dbg("End");
+}
+
+void _callvm_view_auto_change(void *appdata)
+{
+ dbg("_callvm_view_auto_change");
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ if (ad == NULL) {
+ err("Invalid AppData");
+ return;
+ }
+
+ if (ad->multi_call_list_end_clicked) {
+ ad->multi_call_list_end_clicked = false;
+ if (ad->active && ad->active->member_count > 1) {
+ _callvm_view_change(VIEW_INCALL_MULTICALL_LIST_VIEW, 0, NULL, ad);
+ return;
+ }
+ }
+
+ if (ad->incom) {
+ _callvm_view_change(VIEW_INCOMING_LOCK_VIEW, 0, NULL, ad);
+ return;
+ } else if (ad->active) {
+ if (CM_CALL_STATE_DIALING == ad->active->call_state) {
+ _callvm_view_change(VIEW_DIALLING_VIEW, 0, NULL, ad);
+ } else if (ad->held) {
+ _callvm_view_change(VIEW_INCALL_MULTICALL_SPLIT_VIEW, 0, NULL, ad);
+ } else if (ad->active->member_count > 1) {
+ _callvm_view_change(VIEW_INCALL_MULTICALL_CONF_VIEW, 0, NULL, ad);
+ } else {
+ _callvm_view_change(VIEW_INCALL_ONECALL_VIEW, 0, NULL, ad);
+ }
+ return;
+ } else if (ad->held) {
+ if (ad->held->member_count > 1) {
+ _callvm_view_change(VIEW_INCALL_MULTICALL_CONF_VIEW, 0, NULL, ad);
+ } else {
+ _callvm_view_change(VIEW_INCALL_ONECALL_VIEW, 0, NULL, ad);
+ }
+ } else {
+ err("No call exist");
+ }
+ return;
+}
+
+void _callvm_terminate_app_or_view_change(void *appdata)
+{
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ view_manager_data_t *vd = ad->view_manager_handle;
+ int i = 0;
+ if ((NULL == ad->active) && (NULL == ad->incom) && (NULL == ad->held)) {
+ warn("No call exist. App will be terminated");
+ for (i = 0; i < VIEW_MAX; i++) {
+ if (vd->view_st[i] != NULL) {
+ dbg("hide & destory [%d]", i);
+ vd->view_st[i]->onHide(vd->view_st[i]);
+ vd->view_st[i]->onDestroy(vd->view_st[i]);
+ }
+ }
+ vd->view_top = -1;
+ elm_exit();
+ } else {
+ _callvm_view_auto_change(ad);
+ }
+ return;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "callui.h"
+#include "callui-common.h"
+#include "callui-view-elements.h"
+#include "callui-view-multi-call-conf.h"
+#include "callui-view-layout-wvga.h"
+#include "callui-keypad.h"
+
+#define CALLUI_VIEW_MULTICALL_CONF_LAYOUT_ID "MULTIVIEWCONF"
+typedef struct {
+ Evas_Object *contents;
+ Evas_Object *caller_info;
+ Evas_Object *held_call_ly;
+ Evas_Object *btn_ly;
+ Evas_Object *ic;
+ Evas_Object *manage_calls_ly;
+ Eina_Bool is_held;
+} callui_view_multi_call_conf_priv_t;
+
+static int __callui_view_multi_call_conf_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3);
+static int __callui_view_multi_call_conf_onupdate(call_view_data_t *view_data, void *update_data1);
+static int __callui_view_multi_call_conf_onhide(call_view_data_t *view_data);
+static int __callui_view_multi_call_conf_onshow(call_view_data_t *view_data, void *appdata);
+static int __callui_view_multi_call_conf_ondestroy(call_view_data_t *view_data);
+static int __callui_view_multi_call_conf_onrotate(call_view_data_t *view_data);
+
+static call_view_data_t s_view = {
+ .type = VIEW_INCALL_MULTICALL_CONF_VIEW,
+ .layout = NULL,
+ .onCreate = __callui_view_multi_call_conf_oncreate,
+ .onUpdate = __callui_view_multi_call_conf_onupdate,
+ .onHide = __callui_view_multi_call_conf_onhide,
+ .onShow = __callui_view_multi_call_conf_onshow,
+ .onDestroy = __callui_view_multi_call_conf_ondestroy,
+ .onRotate = __callui_view_multi_call_conf_onrotate,
+ .priv = NULL,
+};
+
+call_view_data_t *_callui_view_multi_call_conf_new(callui_app_data_t *ad)
+{
+ s_view.priv = calloc(1, sizeof(callui_view_multi_call_conf_priv_t));
+
+ if (!s_view.priv) {
+ err("ERROR!!!!!!!!!!! ");
+ }
+
+ return &s_view;
+}
+
+static void __callui_view_manage_btn_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source)
+{
+ dbg("..");
+ callui_app_data_t *ad = _callui_get_app_data();
+ _callvm_view_change(VIEW_INCALL_MULTICALL_LIST_VIEW, 0, 0, ad);
+ return;
+}
+
+static void __callui_view_multi_call_conf_draw_screen(Evas_Object *eo, void *data)
+{
+ dbg("..");
+
+ call_view_data_t *vd = (call_view_data_t *)data;
+ callui_view_multi_call_conf_priv_t *priv = (callui_view_multi_call_conf_priv_t *)vd->priv;
+ callui_app_data_t *ad = _callui_get_app_data();
+ char buf[512] = { 0, };
+ call_data_t *call_data = NULL;
+ char *sim_name = NULL;
+ char status_txt[128 + 1] = { '\0', };
+
+ if (ad->active) {
+ call_data = ad->active;
+ priv->is_held = EINA_FALSE;
+ } else if (ad->held) {
+ call_data = ad->held;
+ priv->is_held = EINA_TRUE;
+ } else {
+ err("call data is null");
+ return;
+ }
+
+ if (priv->is_held == EINA_TRUE) {
+ snprintf(status_txt, sizeof(status_txt), _("IDS_CALL_BODY_ON_HOLD_ABB"));
+ _callui_show_caller_info_status(ad, status_txt, EINA_FALSE);
+ elm_object_signal_emit(priv->caller_info, "set-hold-state", "call-screen");
+
+ elm_object_part_content_unset(priv->contents, "resume_icon_swallow");
+ elm_object_part_content_set(priv->contents, "resume_icon_swallow", priv->held_call_ly);
+ evas_object_show(priv->held_call_ly);
+
+ } else {
+ /*****deciding the call status according the sim name******/
+ elm_object_signal_emit(priv->caller_info, "set-unhold-state", "call-screen");
+ evas_object_hide(priv->held_call_ly);
+ elm_object_part_content_unset(priv->contents, "resume_icon_swallow");
+ }
+
+ elm_object_part_content_unset(priv->caller_info, "manage_calls_icon_swallow");
+ elm_object_part_content_set(priv->caller_info, "manage_calls_icon_swallow", priv->manage_calls_ly);
+ evas_object_show(priv->manage_calls_ly);
+ edje_object_signal_callback_del(_EDJ(priv->manage_calls_ly), "mouse,clicked,1", "btn", __callui_view_manage_btn_clicked_cb);
+ edje_object_signal_callback_add(_EDJ(priv->manage_calls_ly), "mouse,clicked,1", "btn", __callui_view_manage_btn_clicked_cb, priv);
+
+ elm_object_signal_emit(priv->caller_info, "set_conference_mode", "");
+ _callui_show_caller_info_name(ad, _("IDS_CALL_BODY_CONFERENCE"), EINA_FALSE);
+ char *status = _("IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB");
+ snprintf(buf, 512, status, call_data->member_count);
+ _callui_show_caller_info_number(ad, buf, EINA_FALSE);
+
+ if (priv->is_held == EINA_TRUE) {
+ _callui_create_top_second_button_disabled(ad);
+ _callui_create_bottom_second_button_disabled(ad);
+ } else {
+ /*Delete keypad layout - before creating the keypad button again
+ * Since layout are created again in update_cb
+ * to handle rotation use-case*/
+ if (_callui_keypad_get_show_status() == EINA_TRUE) {
+ _callui_keypad_hide_layout(ad);
+ }
+
+ _callui_create_top_second_button(ad);
+ _callui_create_bottom_second_button(ad);
+ }
+ _callui_create_top_third_button(ad);
+ _callui_create_bottom_first_button(ad);
+
+ _callui_create_top_first_button(ad);
+ _callui_create_bottom_third_button(ad);
+ elm_object_signal_emit(priv->contents, "SHOW_NO_EFFECT", "ALLBTN");
+ _callui_create_end_call_button(priv->contents, vd);
+ evas_object_show(eo);
+}
+
+static Evas_Object *__callui_view_multi_call_conf_create_contents(void *data, char *group)
+{
+ if (data == NULL) {
+ err("ERROR");
+ return NULL;
+ }
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ Evas_Object *eo;
+
+ /* load edje */
+ eo = _callui_load_edj(ad->main_ly, EDJ_NAME, group);
+ if (eo == NULL)
+ return NULL;
+
+ return eo;
+}
+
+static void __callui_view_multi_call_conf_more_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ call_view_data_t *vd = (call_view_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(vd != NULL);
+ _callui_load_more_option(vd);
+ return;
+}
+
+static int __callui_view_multi_call_conf_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3)
+{
+ callui_view_multi_call_conf_priv_t *priv = (callui_view_multi_call_conf_priv_t *)view_data->priv;
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ if (ad->main_ly) {
+ /* Create Main Layout */
+ priv->contents = __callui_view_multi_call_conf_create_contents(ad, GRP_MAIN_LY);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
+
+ if (priv->contents) {
+ eext_object_event_callback_del(priv->contents, EEXT_CALLBACK_MORE, __callui_view_multi_call_conf_more_btn_cb);
+ }
+ eext_object_event_callback_add(priv->contents, EEXT_CALLBACK_MORE, __callui_view_multi_call_conf_more_btn_cb, view_data);
+
+ priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info");
+ if (!priv->caller_info) {
+ priv->caller_info = __callui_view_multi_call_conf_create_contents(ad, GRP_CALLER_INFO);
+ elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info);
+ }
+
+ /* Manage button Layout */
+ priv->manage_calls_ly = elm_object_part_content_get(priv->caller_info, "manage_calls_icon_swallow");
+ if (!priv->manage_calls_ly) {
+ priv->manage_calls_ly = __callui_view_multi_call_conf_create_contents(ad, GRP_MANAGE_CALLS);
+ }
+
+ priv->btn_ly = elm_object_part_content_get(priv->contents, "btn_region");
+ if (!priv->btn_ly) {
+ priv->btn_ly = __callui_view_multi_call_conf_create_contents(ad, GRP_BUTTON_LAYOUT);
+ elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly);
+ }
+
+ evas_object_name_set(priv->contents, CALLUI_VIEW_MULTICALL_CONF_LAYOUT_ID);
+ dbg("[========== MULTIVIEWCONF: priv->contents Addr : [%p] ==========]", priv->contents);
+
+ /*create keypad layout*/
+ _callui_keypad_create_layout(ad);
+ } else {
+ err("ERROR");
+ return -1;
+ }
+
+ __callui_view_multi_call_conf_onshow(view_data, NULL);
+ return 0;
+}
+
+static int __callui_view_multi_call_conf_onupdate(call_view_data_t *view_data, void *update_data1)
+{
+ dbg("multicall-conf view update");
+
+ __callui_view_multi_call_conf_onshow(view_data, NULL);
+ return 0;
+}
+
+static int __callui_view_multi_call_conf_onhide(call_view_data_t *view_data)
+{
+ dbg("multicall-conf view hide");
+ callui_app_data_t *ad = _callui_get_app_data();
+ evas_object_hide(ad->main_ly);
+ return 0;
+}
+
+static int __callui_view_multi_call_conf_onshow(call_view_data_t *view_data, void *appdata)
+{
+ dbg("multicall-conf view show");
+
+ callui_view_multi_call_conf_priv_t *priv = (callui_view_multi_call_conf_priv_t *)view_data->priv;
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ __callui_view_multi_call_conf_draw_screen(priv->contents, view_data);
+
+ evas_object_hide(ad->main_ly);
+ evas_object_show(ad->main_ly);
+
+ return 0;
+}
+
+static int __callui_view_multi_call_conf_ondestroy(call_view_data_t *view_data)
+{
+ dbg("multicall-conf view destroy");
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, -1);
+
+ call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCALL_MULTICALL_CONF_VIEW);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, -1);
+ callui_view_multi_call_conf_priv_t *priv = (callui_view_multi_call_conf_priv_t *)vd->priv;
+
+ if (priv != NULL) {
+ if (ad->ctxpopup) {
+ elm_ctxpopup_dismiss(ad->ctxpopup);
+ ad->ctxpopup = NULL;
+ }
+
+ _callui_show_caller_info_number(ad, "", EINA_FALSE); /*reset the number text*/
+
+ /*Delete keypad layout*/
+ _callui_keypad_delete_layout(ad);
+
+ if (priv->contents) {
+ eext_object_event_callback_del(priv->contents, EEXT_CALLBACK_MORE, __callui_view_multi_call_conf_more_btn_cb);
+ _callui_common_reset_main_ly_text_fields(priv->contents);
+ }
+ elm_object_signal_emit(priv->contents, "HIDE_BTN_LY", "ALLBTN");
+
+ if (priv->manage_calls_ly) {
+ elm_object_part_content_unset(priv->caller_info, "manage_calls_icon_swallow");
+ edje_object_part_unswallow(_EDJ(priv->caller_info), priv->manage_calls_ly);
+ evas_object_del(priv->manage_calls_ly);
+ priv->manage_calls_ly = NULL;
+ }
+
+ if (priv->held_call_ly) {
+ elm_object_part_content_unset(priv->contents, "resume_icon_swallow");
+ edje_object_part_unswallow(_EDJ(priv->contents), priv->held_call_ly);
+ evas_object_del(priv->held_call_ly);
+ priv->held_call_ly = NULL;
+ }
+
+ free(priv);
+ priv = NULL;
+ }
+
+ _callvm_reset_call_view_data(ad, VIEW_INCALL_MULTICALL_CONF_VIEW);
+
+ dbg("complete destroy multi view conf");
+
+ return 0;
+}
+
+static int __callui_view_multi_call_conf_onrotate(call_view_data_t *view_data)
+{
+ dbg("*** Multi Call conf-view Rotate ***");
+ callui_view_multi_call_conf_priv_t *priv = view_data->priv;
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ elm_object_signal_emit(priv->contents, "set_portrait", "multicall_conf_layout");
+ elm_object_signal_emit(priv->contents, "SHOW_NO_EFFECT", "ALLBTN");
+ elm_object_signal_emit(priv->caller_info, "set_portrait", "caller_info_layout");
+
+ evas_object_show(ad->win);
+
+ return 0;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "callui-common.h"
+#include "callui.h"
+#include "callui-view-elements.h"
+#include "callui-view-multi-call-list.h"
+#include "callui-view-layout-wvga.h"
+
+static Elm_Genlist_Item_Class *itc_call;
+#define CALLUI_VIEW_MULTICALL_LIST_LAYOUT_ID "MULTIVIEWLIST"
+typedef struct {
+ Evas_Object *contents;
+ Evas_Object *ic;
+ Evas_Object *multibox_gl;
+
+ GSList *call_list;
+} callui_view_multi_call_list_priv_t;
+
+static int __callui_view_multi_call_list_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3);
+static int __callui_view_multi_call_list_onupdate(call_view_data_t *view_data, void *update_data1);
+static int __callui_view_multi_call_list_onhide(call_view_data_t *view_data);
+static int __callui_view_multi_call_list_onshow(call_view_data_t *view_data, void *appdata);
+static int __callui_view_multi_call_list_ondestroy(call_view_data_t *view_data);
+static int __callui_view_multi_call_list_onrotate(call_view_data_t *view_data);
+
+static call_view_data_t s_view = {
+ .type = VIEW_INCALL_MULTICALL_LIST_VIEW,
+ .layout = NULL,
+ .onCreate = __callui_view_multi_call_list_oncreate,
+ .onUpdate = __callui_view_multi_call_list_onupdate,
+ .onHide = __callui_view_multi_call_list_onhide,
+ .onShow = __callui_view_multi_call_list_onshow,
+ .onDestroy = __callui_view_multi_call_list_ondestroy,
+ .onRotate = __callui_view_multi_call_list_onrotate,
+ .priv = NULL,
+};
+
+call_view_data_t *_callui_view_multi_call_list_new(callui_app_data_t *ad)
+{
+ s_view.priv = calloc(1, sizeof(callui_view_multi_call_list_priv_t));
+ CALLUI_RETURN_VALUE_IF_FAIL(s_view.priv, NULL);
+ return &s_view;
+}
+
+static void __callui_view_multi_call_list_small_end_call_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+ cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(call_data);
+ int ret = -1;
+ unsigned int call_id = 0;
+ cm_conf_call_data_get_call_id(call_data, &call_id);
+ ret = cm_end_call(ad->cm_handle, call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_end_call() get failed with err[%d]", ret);
+ }
+ ad->multi_call_list_end_clicked = true;
+}
+
+static void __callui_view_multi_call_list_split_call_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+ cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(call_data);
+ int ret = -1;
+ unsigned int call_id = 0;
+
+ cm_conf_call_data_get_call_id(call_data, &call_id);
+ ret = cm_split_call(ad->cm_handle, call_id);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_split_call() get failed with err[%d]", ret);
+ }
+}
+
+static Evas_Object *__callui_view_multi_call_list_gl_icon_get_call(void *data, Evas_Object *obj, const char *part)
+{
+ cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data;
+ Evas_Object *img = NULL;
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, NULL);
+ dbg("__callui_view_multi_call_list_gl_icon_get_call %s ", part);
+ if ((strcmp(part, "elm.swallow.end") == 0)) {
+ Evas_Object *img = elm_image_add(obj);
+ elm_image_file_set(img, EDJ_NAME, GROUP_CALL_BTN_IC_END);
+ evas_object_size_hint_min_set(img, _callui_common_get_scaled_width(CALL_BTN_IC_BG_SIZE), _callui_common_get_scaled_height(CALL_BTN_IC_BG_SIZE));
+ evas_object_propagate_events_set(img, EINA_FALSE);
+ evas_object_smart_callback_add(img, "clicked", __callui_view_multi_call_list_small_end_call_cb, call_data);
+ return img;
+ } else if (strcmp(part, "elm.swallow.icon") == 0) {
+ if (ad->held || ad->active->member_count < 3) {
+ return NULL;
+ }
+ Evas_Object *img = elm_image_add(obj);
+ elm_image_file_set(img, EDJ_NAME, GROUP_CALL_BTN_IC_SPLIT);
+ evas_object_size_hint_min_set(img, _callui_common_get_scaled_width(CALL_BTN_IC_BG_SIZE), _callui_common_get_scaled_height(CALL_BTN_IC_BG_SIZE));
+ evas_object_propagate_events_set(img, EINA_FALSE);
+ evas_object_smart_callback_add(img, "clicked", __callui_view_multi_call_list_split_call_cb, call_data);
+ return img;
+ } else if ((strcmp(part, "elm.swallow.icon.0") == 0)) {
+ call_contact_data_t ct_info = {0,};
+ char *file_path = "default";
+ int person_id = -1;
+
+ cm_conf_call_data_get_person_id(call_data, &person_id);
+ if (person_id != -1) {
+ _callui_common_get_contact_info(person_id, &ct_info);
+ if (strlen(ct_info.caller_id_path) > 0) {
+ file_path = ct_info.caller_id_path;
+ }
+ }
+ img = _callui_create_thumbnail_with_size(obj, file_path, THUMBNAIL_98, true);
+ return img;
+ } else {
+ return NULL;
+ }
+}
+
+static char *__callui_view_multi_call_list_gl_label_get_call(void *data, Evas_Object *obj, const char *part)
+{
+ cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data;
+ int person_id = -1;
+ char *call_number = NULL;
+ dbg("__callui_view_multi_call_list_gl_label_get_call %s ", part);
+ if (strcmp(part, "elm.text") == 0) {
+ cm_conf_call_data_get_person_id(call_data, &person_id);
+ if (person_id != -1) {
+ call_contact_data_t ct_info = {0,};
+ _callui_common_get_contact_info(person_id, &ct_info);
+ if (strlen(ct_info.call_disp_name) > 0) {
+ return strdup(ct_info.call_disp_name);
+ }
+ }
+ cm_conf_call_data_get_call_number(call_data, &call_number);
+ return strdup(call_number);
+ } else {
+ return NULL;
+ }
+}
+
+static void __callui_view_multi_call_list_genlist_init(void *data)
+{
+ itc_call = elm_genlist_item_class_new();
+
+ itc_call->item_style = "type1";
+ itc_call->func.text_get = __callui_view_multi_call_list_gl_label_get_call;
+ itc_call->func.content_get = __callui_view_multi_call_list_gl_icon_get_call;
+ itc_call->func.state_get = NULL;
+ itc_call->func.del = NULL;
+}
+
+static void __callui_view_multi_call_list_genlist_deinit()
+{
+ elm_genlist_item_class_free(itc_call);
+ itc_call = NULL;
+}
+
+static void __callui_view_multi_call_list_genlist_add(void *data)
+{
+ call_view_data_t *vd = data;
+ callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)vd->priv;
+ Evas_Object *genlist = NULL;
+
+ genlist = elm_genlist_add(priv->contents);
+ evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ elm_object_part_content_set(priv->contents, "swl_calllist", genlist);
+ priv->multibox_gl = genlist;
+}
+
+static void __callui_view_multi_call_list_genlist_delete(void *data)
+{
+ call_view_data_t *vd = data;
+ callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)vd->priv;
+ if (priv->multibox_gl != NULL) {
+ elm_genlist_clear(priv->multibox_gl);
+ evas_object_del(priv->multibox_gl);
+ priv->multibox_gl = NULL;
+ }
+}
+
+void __callui_view_multi_call_list_genlist_item_append(void *data)
+{
+ dbg("..");
+ Elm_Object_Item *item = NULL;
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+ call_view_data_t *vd = data;
+ CALLUI_RETURN_IF_FAIL(vd);
+ callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)vd->priv;
+ CALLUI_RETURN_IF_FAIL(priv);
+ int list_len = 0;
+ int idx = 0;
+ cm_conf_call_data_t *call_data = NULL;
+
+ CALLUI_RETURN_IF_FAIL(priv->call_list);
+ list_len = g_slist_length(priv->call_list);
+ for (idx = 0; idx < list_len; idx++) {
+ call_data = (cm_conf_call_data_t *)g_slist_nth_data(priv->call_list, idx);
+ item = elm_genlist_item_append(priv->multibox_gl, itc_call, (void *)call_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ }
+}
+
+static void __callui_view_multi_call_list_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ _callvm_view_auto_change(ad);
+}
+
+static Evas_Object *__callui_view_multi_call_list_create_contents(Evas_Object *parent, char *group)
+{
+ Evas_Object *eo;
+
+ if (parent == NULL) {
+ err("ERROR");
+ return NULL;
+ }
+
+ /* load edje */
+ eo = _callui_load_edj(parent, EDJ_NAME, group);
+ if (eo == NULL)
+ return NULL;
+
+ return eo;
+}
+
+static int __callui_view_multi_call_list_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3)
+{
+ dbg("multicall-list view create");
+
+ __callui_view_multi_call_list_onshow(view_data, NULL);
+
+ return 0;
+}
+
+static void __callui_view_multi_call_list_free_cb(gpointer data)
+{
+ cm_conf_call_data_t *call_data = (cm_conf_call_data_t *)data;
+ cm_conf_call_data_free(call_data);
+}
+
+static int __callui_view_multi_call_list_onupdate(call_view_data_t *view_data, void *update_data1)
+{
+ dbg("multicall-list view update");
+
+ callui_app_data_t *ad = _callui_get_app_data();
+ callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)view_data->priv;
+ GSList *list = NULL;
+
+ __callui_view_multi_call_list_genlist_delete(view_data);
+ g_slist_free_full(priv->call_list, __callui_view_multi_call_list_free_cb);
+
+ cm_get_conference_call_list(ad->cm_handle, &list);
+ CALLUI_RETURN_VALUE_IF_FAIL(list, -1);
+ priv->call_list = list;
+ __callui_view_multi_call_list_genlist_add(view_data);
+ __callui_view_multi_call_list_genlist_init(view_data);
+ __callui_view_multi_call_list_genlist_item_append(view_data);
+ __callui_view_multi_call_list_genlist_deinit();
+
+ elm_object_signal_emit(priv->contents, "set_portrait", "multicall_list_layout");
+ evas_object_show(priv->contents);
+ evas_object_hide(ad->main_ly);
+ evas_object_show(ad->main_ly);
+ return 0;
+}
+
+static int __callui_view_multi_call_list_onhide(call_view_data_t *view_data)
+{
+ dbg("multicall-list view hide");
+ callui_app_data_t *ad = _callui_get_app_data();
+ evas_object_hide(ad->main_ly);
+ return 0;
+}
+
+static int __callui_view_multi_call_list_onshow(call_view_data_t *view_data, void *appdata)
+{
+ dbg("multicall-list view show");
+
+ callui_app_data_t *ad = _callui_get_app_data();
+ callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)view_data->priv;
+ Evas_Object *back_btn = NULL;
+ char *sim_name = NULL;
+ char status_txt[128 + 1] = {'\0', };
+
+ priv->contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
+ if (priv->contents) {
+ elm_object_part_content_unset(ad->main_ly, "elm.swallow.content");
+ evas_object_del(priv->contents);
+ priv->contents = NULL;
+ }
+ priv->contents = __callui_view_multi_call_list_create_contents(ad->main_ly, GRP_MULTICALL);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
+ view_data->layout = priv->contents;
+
+ __callui_view_multi_call_list_genlist_add(view_data);
+ __callui_view_multi_call_list_genlist_init(view_data);
+
+ cm_get_conference_call_list(ad->cm_handle, &priv->call_list);
+ __callui_view_multi_call_list_genlist_item_append(view_data);
+ __callui_view_multi_call_list_genlist_deinit();
+
+ back_btn = elm_button_add(priv->contents);
+ elm_object_style_set(back_btn, "bottom");
+ elm_object_text_set(back_btn, _("IDS_CALL_BUTTON_RETURN_TO_CALL_SCREEN_ABB"));
+ elm_object_part_content_set(priv->contents, "bottom_btn", back_btn);
+
+ evas_object_smart_callback_del(back_btn, "clicked", __callui_view_multi_call_list_back_cb);
+ evas_object_smart_callback_add(back_btn, "clicked", __callui_view_multi_call_list_back_cb, ad);
+
+ evas_object_show(back_btn);
+ eext_object_event_callback_add(priv->contents, EEXT_CALLBACK_BACK, __callui_view_multi_call_list_back_cb, ad);
+
+ evas_object_name_set(priv->contents, CALLUI_VIEW_MULTICALL_LIST_LAYOUT_ID);
+ dbg("[========== MULTIVIEWLIST: priv->contents Addr : [%p] ==========]", priv->contents);
+
+ elm_object_signal_emit(priv->contents, "set_portrait", "multicall_list_layout");
+
+ evas_object_show(priv->contents);
+ evas_object_hide(ad->main_ly);
+ evas_object_show(ad->main_ly);
+ return 0;
+}
+
+static int __callui_view_multi_call_list_ondestroy(call_view_data_t *view_data)
+{
+ dbg("multicall-list view destroy");
+
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, -1);
+ call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCALL_MULTICALL_LIST_VIEW);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, -1);
+ callui_view_multi_call_list_priv_t *priv = (callui_view_multi_call_list_priv_t *)vd->priv;
+
+ if (priv != NULL) {
+ __callui_view_multi_call_list_genlist_delete(vd);
+
+ g_slist_free_full(priv->call_list, __callui_view_multi_call_list_free_cb);
+
+ if (priv->contents) {
+ evas_object_del(priv->contents);
+ priv->contents = NULL;
+ }
+ elm_object_part_content_unset(ad->main_ly, "elm.swallow.content");
+ free(priv);
+ priv = NULL;
+ }
+ vd->layout = NULL;
+ _callvm_reset_call_view_data(ad, VIEW_INCALL_MULTICALL_LIST_VIEW);
+ dbg("complete destroy multi view list");
+ return 0;
+}
+
+static int __callui_view_multi_call_list_onrotate(call_view_data_t *view_data)
+{
+ dbg("*** Multi Call List view Rotate ***");
+
+ __callui_view_multi_call_list_onshow(view_data, NULL);
+ return 0;
+}
+
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "callui.h"
+#include "callui-view-multi-call-split.h"
+#include "callui-keypad.h"
+#include "callui-common.h"
+#include "callui-view-caller-info-defines.h"
+#include "callui-view-elements.h"
+
+#define BUF_SIZE 256
+
+typedef struct {
+ Evas_Object *contents;
+} incall_multi_view_split_priv_t;
+
+static Evas_Object *_create_merge_swap_btn(Evas_Object *parent, const char *name, const char *text);
+
+static Evas_Object *_create_hold_active_layout(Evas_Object *parent, call_data_t *call_data);
+static void _fill_one_contact_layout(Evas_Object *parent, call_data_t *call_data);
+static void _fill_conference_layout(Evas_Object *parent, call_data_t *call_data);
+
+static void _set_hold_info(Evas_Object *parent, Evas_Object *content);
+static void _set_active_info(Evas_Object *parent, Evas_Object *content, callui_app_data_t *ad);
+static void _set_merge_swap(Evas_Object *parent, callui_app_data_t *ad);
+
+static void _create_btn_region(Evas_Object *parent);
+static void _create_action_panel(Evas_Object *parent);
+
+static Evas_Object *_create_call_info_layout(Evas_Object *parent, callui_app_data_t *ad);
+static Evas_Object *_create_split_layout(Evas_Object *parent, callui_app_data_t *ad);
+
+static Evas_Object *_create_split_view(Evas_Object *parent, callui_app_data_t *ad);
+
+static void _callui_view_multi_call_split_draw_screen(Evas_Object *eo, void *data);
+
+static void _manage_callers_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _merge_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _swap_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+
+static int _callui_view_multi_call_split_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3);
+static int _callui_view_multi_call_split_onupdate(call_view_data_t *view_data, void *update_data1);
+static int _callui_view_multi_call_split_onshow(call_view_data_t *view_data, void *appdata);
+static int _callui_view_multi_call_split_ondestroy(call_view_data_t *view_data);
+
+static call_view_data_t s_view = {
+ .type = VIEW_INCALL_MULTICALL_SPLIT_VIEW,
+ .layout = NULL,
+ .onCreate = _callui_view_multi_call_split_oncreate,
+ .onUpdate = _callui_view_multi_call_split_onupdate,
+ .onHide = NULL,
+ .onShow = _callui_view_multi_call_split_onshow,
+ .onDestroy = _callui_view_multi_call_split_ondestroy,
+ .onRotate = NULL,
+ .priv = NULL,
+};
+
+static Evas_Object *_create_merge_swap_btn(Evas_Object *parent, const char *name, const char *text)
+{
+ Evas_Object *layout = elm_layout_add(parent);
+ elm_layout_file_set(layout, EDJ_NAME, name);
+
+ elm_object_part_text_set(layout, PART_TEXT_MERGE_SWAP_BTN, text);
+
+ return layout;
+}
+
+static Evas_Object *_create_hold_active_layout(Evas_Object *parent, call_data_t *call_data)
+{
+ Evas_Object *layout = elm_layout_add(parent);
+ elm_layout_file_set(layout, EDJ_NAME, GROUP_ACTIVE_HOLD_INFO);
+
+ if (call_data->member_count == 1) {
+ _fill_one_contact_layout(layout, call_data);
+ } else {
+ _fill_conference_layout(layout, call_data);
+ }
+
+ return layout;
+}
+
+static void _fill_one_contact_layout(Evas_Object *parent, call_data_t *call_data)
+{
+ const char *pic_path = call_data->call_ct_info.caller_id_path;
+ const char *main_text = call_data->call_ct_info.call_disp_name;
+ const char *sub_text = call_data->call_num;
+ Evas_Object *thumbnail = NULL;
+
+ thumbnail = _callui_create_thumbnail(parent, pic_path, THUMBNAIL_186);
+ elm_object_part_content_set(parent, PART_SWALLOW_CALLER_ID, thumbnail);
+
+ if (main_text && *main_text) {
+ elm_object_part_text_set(parent, PART_TEXT_MAIN, main_text);
+ elm_object_part_text_set(parent, PART_TEXT_SUB, sub_text);
+ } else {
+ elm_object_part_text_set(parent, PART_TEXT_MAIN, sub_text);
+ }
+}
+
+static void _fill_conference_layout(Evas_Object *parent, call_data_t *call_data)
+{
+ CALLUI_RETURN_IF_FAIL(call_data);
+
+ Evas_Object *thumbnail = _callui_create_thumbnail(parent, NULL, CONFERENCE_THUMBNAIL_186);
+ elm_object_part_content_set(parent, PART_SWALLOW_CALLER_ID, thumbnail);
+
+ elm_object_part_text_set(parent, PART_TEXT_MAIN, _("IDS_CALL_BODY_CONFERENCE"));
+
+ char buffer[BUF_SIZE] = {0};
+ snprintf(buffer, BUF_SIZE, _("IDS_CALL_BODY_WITH_PD_PEOPLE_M_CONFERENCE_CALL_ABB"), call_data->member_count);
+ elm_object_part_text_set(parent, PART_TEXT_SUB, buffer);
+}
+
+static void _set_hold_info(Evas_Object *parent, Evas_Object *content)
+{
+ elm_object_part_text_set(content, PART_TEXT_STATUS, _("IDS_CALL_BODY_ON_HOLD_ABB"));
+
+ elm_object_part_content_set(parent, PART_SWALLOW_HOLD_INFO, content);
+ elm_object_signal_emit(content, SIGNAL_SET_BLURRED_BACKGROUND, "");
+}
+
+static void _set_active_info(Evas_Object *parent, Evas_Object *content, callui_app_data_t *ad)
+{
+ elm_object_part_text_set(content, PART_TEXT_STATUS, _("IDS_CALL_BODY_CONNECTED_M_STATUS_ABB"));
+
+ elm_object_part_content_set(parent, PART_SWALLOW_ACTIVE_INFO, content);
+ elm_object_signal_emit(content, SIGNAL_SET_TRANSPARENT_BACKGROUND, "");
+ if (ad->active->member_count > 1) {
+ elm_object_signal_emit(content, SIGNAL_SHOW_ARROW, "");
+ elm_object_signal_callback_add(content, "mouse,up,*", "arrow", _manage_callers_cb, ad);
+ }
+}
+
+static void _set_merge_swap(Evas_Object *parent, callui_app_data_t *ad)
+{
+ Evas_Object *merge = _create_merge_swap_btn(parent, GROUP_MERGE_BTN, _("IDS_CALL_BODY_MERGE_T_CALL"));
+ elm_object_part_content_set(parent, PART_SWALLOW_MERGE, merge);
+ elm_object_signal_callback_add(merge, "mouse,clicked,*", "*", _merge_cb, ad);
+
+ Evas_Object *swap = _create_merge_swap_btn(parent, GROUP_SWAP_BTN, _("IDS_CALL_SK_MULTICALL_SWAP"));
+ elm_object_part_content_set(parent, PART_SWALLOW_SWAP, swap);
+ elm_object_signal_callback_add(swap, "mouse,clicked,*", "*", _swap_cb, ad);
+}
+
+static void _create_btn_region(Evas_Object *parent)
+{
+ Evas_Object *btn_region = elm_layout_add(parent);
+ elm_layout_file_set(btn_region, EDJ_NAME, GROUP_BTN_REGION);
+ elm_object_part_content_set(parent, PART_SWALLOW_BTN_REGION, btn_region);
+}
+
+static void _create_action_panel(Evas_Object *parent)
+{
+ Evas_Object *action_panel = elm_layout_add(parent);
+ elm_layout_file_set(action_panel, EDJ_NAME, GROUP_ACTION_PANEL);
+ elm_object_part_content_set(parent, PART_SWALLOW_ACTIONS_PANEL, action_panel);
+}
+
+static Evas_Object *_create_call_info_layout(Evas_Object *parent, callui_app_data_t *ad)
+{
+ Evas_Object *one_hold_layout = elm_layout_add(parent);
+ elm_layout_file_set(one_hold_layout, EDJ_NAME, GROUP_ONE_HOLD_IN_CONFERENCE);
+
+ Evas_Object *hold_layout = _create_hold_active_layout(one_hold_layout, ad->held);
+ Evas_Object *active_layout = _create_hold_active_layout(one_hold_layout, ad->active);
+
+ _set_hold_info(one_hold_layout, hold_layout);
+ _set_active_info(one_hold_layout, active_layout, ad);
+
+ _set_merge_swap(one_hold_layout, ad);
+
+ return one_hold_layout;
+}
+
+static Evas_Object *_create_split_layout(Evas_Object *parent, callui_app_data_t *ad)
+{
+ Evas_Object *split_layout = elm_layout_add(parent);
+ elm_layout_file_set(split_layout, EDJ_NAME, GROUP_SPLIT);
+
+ Evas_Object *call_info_layout = _create_call_info_layout(parent, ad);
+ elm_object_part_content_set(split_layout, PART_SWALLOW_CALL_INFO, call_info_layout);
+
+ _create_btn_region(split_layout);
+ _create_action_panel(split_layout);
+
+ return split_layout;
+}
+
+static Evas_Object *_create_split_view(Evas_Object *parent, callui_app_data_t *ad)
+{
+ Evas_Object *split_layout = _create_split_layout(parent, ad);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", split_layout);
+
+ _callui_keypad_create_layout(ad);
+
+ return split_layout;
+}
+
+static void _callui_view_multi_call_split_draw_screen(Evas_Object *eo, void *data)
+{
+ dbg("..");
+ call_view_data_t *vd = data;
+ incall_multi_view_split_priv_t *priv = vd->priv;
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ priv->contents = _create_split_view(ad->main_ly, ad);
+
+ _callui_create_top_first_button(ad);
+ _callui_create_top_second_button(ad);
+ _callui_create_top_third_button(ad);
+ _callui_create_bottom_first_button_disabled(ad);
+ _callui_create_bottom_second_button(ad);
+ _callui_create_bottom_third_button(ad);
+
+ _callui_create_end_call_button(priv->contents, vd);
+
+ _callui_lock_screen_refresh_timer(_callvm_get_call_view_data(ad, VIEW_INCALL_MULTICALL_SPLIT_VIEW));
+}
+
+static void _manage_callers_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ callui_app_data_t *ad = data;
+ _callvm_view_change(VIEW_INCALL_MULTICALL_LIST_VIEW, 0, NULL, ad);
+}
+
+static void _merge_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ callui_app_data_t *ad = data;
+ int ret = cm_join_call(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_join_call() is failed");
+ }
+}
+
+static void _swap_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ callui_app_data_t *ad = data;
+ int ret = cm_swap_call(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_swap_call() is failed");
+ }
+}
+
+static int _callui_view_multi_call_split_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3)
+{
+ dbg("multi-split view create");
+
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ _callui_view_multi_call_split_onshow(view_data, ad);
+
+ _callui_lock_screen_delete_layout(ad->lock_screen_handle);
+ _callui_lock_screen_create_layout(view_data);
+
+ return 0;
+}
+
+static int _callui_view_multi_call_split_onupdate(call_view_data_t *view_data, void *update_data1)
+{
+ dbg("multi-split view update");
+ callui_app_data_t *ad = _callui_get_app_data();
+ _callui_view_multi_call_split_onshow(view_data, ad);
+ return 0;
+}
+
+static int _callui_view_multi_call_split_onshow(call_view_data_t *view_data, void *appdata)
+{
+ dbg("multi-split view show");
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *)view_data->priv;
+ _callui_view_multi_call_split_draw_screen(priv->contents, view_data);
+
+ evas_object_hide(ad->main_ly);
+ evas_object_show(ad->main_ly);
+
+ return 0;
+}
+
+static int _callui_view_multi_call_split_ondestroy(call_view_data_t *view_data)
+{
+ dbg("multi-split view destroy");
+
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCALL_MULTICALL_SPLIT_VIEW);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, -1);
+
+ free(vd->priv);
+ vd->priv = NULL;
+
+ _callvm_reset_call_view_data(ad, VIEW_INCALL_MULTICALL_SPLIT_VIEW);
+ return 0;
+}
+
+call_view_data_t *_callui_view_multi_call_split_new(callui_app_data_t*ad)
+{
+ s_view.priv = calloc(1, sizeof(incall_multi_view_split_priv_t));
+
+ if (!s_view.priv) {
+ err("ERROR!");
+ }
+
+ return &s_view;
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "callui.h"
+#include "callui-view-elements.h"
+#include "callui-view-quickpanel.h"
+#include <minicontrol-provider.h>
+#include <minicontrol-internal.h>
+#include "callui-view-layout-wvga.h"
+#include "callui-common.h"
+#include <app_control.h>
+#include <bundle.h>
+
+#define VIEW_QUICKPANEL_LAYOUT_ID "QUICKPANELVIEW"
+#define MSG_DOMAIN_CONTROL_ACCESS (int)ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL
+#define TXT_TIMER_BUF_LEN 26
+#define CALL_NUMBER_ONE 1
+
+struct callui_view_qp_priv {
+ Evas_Object *caller_id;
+ int rotate_angle;
+ Ecore_Event_Handler *client_msg_handler;
+};
+static Evas_Object *__callui_view_qp_create_contents(void *data, char *group);
+static int __callui_view_qp_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3);
+static int __callui_view_qp_onupdate(call_view_data_t *view_data, void *update_data1);
+static int __callui_view_qp_onhide(call_view_data_t *view_data);
+static int __callui_view_qp_onshow(call_view_data_t *view_data, void *appdata);
+static int __callui_view_qp_ondestroy(call_view_data_t *view_data);
+static Eina_Bool __callui_qp_client_message_cb(void *data, int type, void *event);
+
+call_view_data_t *_callui_view_qp_new(callui_app_data_t *ad)
+{
+ static call_view_data_t qp_view = {
+ .type = VIEW_QUICKPANEL_VIEW,
+ .layout = NULL,
+ .onCreate = __callui_view_qp_oncreate,
+ .onUpdate = __callui_view_qp_onupdate,
+ .onHide = __callui_view_qp_onhide,
+ .onShow = __callui_view_qp_onshow,
+ .onDestroy = __callui_view_qp_ondestroy,
+ .onRotate = NULL,
+ .priv = NULL,
+ };
+ qp_view.priv = calloc(1, sizeof(callui_view_qp_priv_t));
+ if (!qp_view.priv) {
+ err("ERROR!!!!!!!!!!! ");
+ }
+ return &qp_view;
+};
+
+void _callui_view_quickpanel_change(void)
+{
+ dbg("..");
+
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ call_view_data_t *view_data = _callvm_get_call_view_data(ad, VIEW_QUICKPANEL_VIEW);
+
+ if (ad->win_quickpanel) {
+
+ if (!ad->held && !ad->active && !ad->incom) {
+
+ dbg("destroy quickpanel");
+ _callui_view_qp_hide(ad);
+ _callvm_reset_call_view_data(ad, VIEW_QUICKPANEL_VIEW);
+ ad->win_quickpanel = NULL;
+
+ } else if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_ENDCALL_VIEW) {
+
+ dbg("destroy quickpanel on the last End call view");
+ __callui_view_qp_ondestroy(view_data);
+
+ } else if (view_data && view_data->layout != NULL) {
+
+ dbg("update quickpanel");
+ __callui_view_qp_onupdate(view_data, NULL);
+
+ }
+ } else {
+ dbg("create quickpanel");
+ if (view_data == NULL) {
+ view_data = _callui_view_qp_new(ad);
+ CALLUI_RETURN_IF_FAIL(view_data);
+ _callvm_set_call_view_data(ad, VIEW_QUICKPANEL_VIEW, view_data);
+ }
+ if (view_data->layout == NULL) {
+ __callui_view_qp_oncreate(view_data, 0, NULL, ad);
+ }
+ }
+}
+
+static Eina_Bool __callui_qp_client_message_cb(void *data, int type, void *event)
+{
+ dbg("__callui_qp_client_message_cb");
+ int new_angle = 0;
+ Ecore_X_Event_Client_Message *ev = (Ecore_X_Event_Client_Message *) event;
+ call_view_data_t *vd = (call_view_data_t *)data;
+ callui_view_qp_priv_t *priv = (callui_view_qp_priv_t *)vd->priv;
+
+ if ((ev->message_type == ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE)
+ || (ev->message_type == ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE)) {
+ new_angle = ev->data.l[0];
+ dbg("ROTATION: %d", new_angle);
+ priv->rotate_angle = new_angle;
+ __callui_view_qp_onshow(vd, NULL);
+ }
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+static void __callui_view_qp_caller_id_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+
+ _callui_view_qp_hide(ad);
+ if (ad->incom) {
+ int ret = -1;
+ ret = cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_NORMAL);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_end_call() is failed");
+ }
+ }
+ /***to do***after lcd changes**/
+/* if (ad->b_lcd_on == EINA_FALSE) {
+ return;
+ }*/
+
+/* if (_callui_common_get_idle_lock_type() == LOCK_TYPE_SWIPE_LOCK) {
+ vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK);
+ }*//**to do**/
+/* if (_callui_get_idle_lock_type() == CALL_LOCK)
+ vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK);*/
+
+ elm_win_activate(ad->win);
+}
+
+static void __callui_qp_launch_top_view_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+ _callui_view_qp_hide(data);
+
+ app_control_h request;
+ app_control_create(&request);
+ app_control_set_app_id(request, PACKAGE);
+ int err = app_control_send_launch_request(request, NULL, NULL);
+ if (err != APP_CONTROL_ERROR_NONE) {
+ err("app_control_send_launch_request() failed(0x%x)", err);
+ return;
+ }
+ app_control_destroy(request);
+}
+
+static void __callui_qp_spk_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+ int ret = -1;
+
+ if (ad->speaker_status == EINA_TRUE) {
+ ret = cm_speaker_off(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_speaker_off() is failed");
+ return;
+ }
+ } else {
+ ret = cm_speaker_on(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_speaker_off() is failed");
+ return;
+ }
+ }
+ _callui_update_speaker_btn(ad, !ad->speaker_status);
+}
+
+static void __callui_qp_resume_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+ int ret = -1;
+
+ if (ad->held != NULL) {
+ ret = cm_unhold_call(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_unhold_call() is failed");
+ }
+ } else {
+ ret = cm_hold_call(ad->cm_handle);
+ if (ret != CM_ERROR_NONE) {
+ err("cm_hold_call() is failed");
+ }
+ }
+}
+
+Evas_Object *_callui_create_quickpanel_resume_button(void *data, Eina_Bool bdisable)
+{
+ dbg("..");
+ Evas_Object *btn = NULL;
+ Evas_Object *layout = NULL;
+ CALLUI_RETURN_NULL_IF_FAIL(data);
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+
+ layout = ad->quickpanel_layout;
+ CALLUI_RETURN_NULL_IF_FAIL(layout);
+
+ btn = edje_object_part_swallow_get(_EDJ(layout), "swallow.resume_button");
+ if (btn) {
+ sec_dbg("Object Already Exists, so Update Only");
+ evas_object_smart_callback_del(btn, "clicked", __callui_qp_resume_btn_cb);
+ } else {
+ sec_dbg("Object Doesn't Exists, so Re-Create");
+ btn = elm_button_add(layout);
+ elm_object_part_content_set(layout, "swallow.resume_button", btn);
+ }
+
+ if (ad->held != NULL) {
+ elm_object_style_set(btn, "style_call_icon_only_qp_resume");
+ evas_object_smart_callback_add(btn, "clicked", __callui_qp_resume_btn_cb, ad);
+ } else {
+ elm_object_style_set(btn, "style_call_icon_only_qp_resume_on");
+ evas_object_smart_callback_add(btn, "clicked", __callui_qp_resume_btn_cb, ad);
+ }
+ evas_object_propagate_events_set(btn, EINA_FALSE);
+
+ return btn;
+}
+
+Evas_Object *_callui_create_quickpanel_speaker_button(void *data, Eina_Bool bdisable)
+{
+ dbg("..");
+ Evas_Object *btn, *layout, *sw;
+ CALLUI_RETURN_NULL_IF_FAIL(data);
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+
+ layout = ad->quickpanel_layout;
+ CALLUI_RETURN_NULL_IF_FAIL(layout);
+
+ sw = edje_object_part_swallow_get(_EDJ(layout), "swallow.speaker_button");
+ if (sw) {
+ sec_dbg("Object Already Exists, so Update Only");
+ btn = sw;
+ evas_object_smart_callback_del(btn, "clicked", __callui_qp_spk_btn_cb);
+ } else {
+ sec_dbg("Object Doesn't Exists, so Re-Create");
+ btn = elm_button_add(layout);
+ elm_object_part_content_set(layout, "swallow.speaker_button", btn);
+ }
+
+ if (ad->speaker_status == EINA_FALSE) {
+ elm_object_style_set(btn, "style_call_icon_only_qp_speaker");
+ evas_object_smart_callback_add(btn, "clicked", __callui_qp_spk_btn_cb, ad);
+ } else {
+ elm_object_style_set(btn, "style_call_icon_only_qp_speaker_on");
+ evas_object_smart_callback_add(btn, "clicked", __callui_qp_spk_btn_cb, ad);
+ }
+ evas_object_propagate_events_set(btn, EINA_FALSE);
+
+ elm_object_disabled_set(btn, bdisable);
+ return btn;
+}
+
+static Evas_Object *__callui_create_quickpanel_call_button(void *data)
+{
+ Evas_Object *layout, *sw;
+ Evas_Object *btn = NULL;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+
+ layout = ad->quickpanel_layout;
+ CALLUI_RETURN_NULL_IF_FAIL(layout);
+ sw = edje_object_part_swallow_get(_EDJ(layout), "swallow.call_button");
+ if (sw) {
+ dbg("Object Already Exists, so Update Only");
+ btn = sw;
+ evas_object_smart_callback_del(btn, "clicked", __callui_view_qp_caller_id_cb);
+ } else {
+ dbg("Object Doesn't Exists, so Re-Create");
+ btn = elm_button_add(layout);
+ elm_object_part_content_set(layout, "swallow.call_button", btn);
+ }
+
+ elm_object_style_set(btn, "style_call_icon_only_qp_call");
+
+ evas_object_smart_callback_add(btn, "clicked", __callui_view_qp_caller_id_cb, ad);
+ evas_object_propagate_events_set(btn, EINA_FALSE);
+
+ return btn;
+}
+
+static void __qp_end_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ dbg("..");
+
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(ad != NULL);
+
+ int ret = -1;
+ _callui_view_qp_hide(ad);
+ if (!(ad->held) && !(ad->incom) && (CM_CALL_STATE_DIALING == ad->active->call_state))/*(dialling_view)*/ {
+ ret = cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE);
+ } else if ((ad->active) && (ad->held)) {
+ ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_ACTIVE_CALLS);
+ } else if ((ad->active) || (ad->held)) {/*single call*/
+ ret = cm_end_call(ad->cm_handle, 0, CALL_RELEASE_TYPE_ALL_CALLS);
+ } else if (ad->incom) {
+ ret = cm_reject_call(ad->cm_handle);
+ } else {
+ err("invalid case!!!!");
+ }
+ if (ret != CM_ERROR_NONE) {
+ err("cm_end_call() is failed");
+ return;
+ }
+}
+
+static Evas_Object *__callui_create_quickpanel_end_button(void *data)
+{
+ Evas_Object *btn, *layout, *sw;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+
+ layout = ad->quickpanel_layout;
+ CALLUI_RETURN_NULL_IF_FAIL(layout);
+ sw = edje_object_part_swallow_get(_EDJ(layout), "swallow.end_button");
+ if (sw) {
+ dbg("Object Already Exists, so Update Only");
+ btn = sw;
+ evas_object_smart_callback_del(btn, "clicked", __qp_end_btn_cb);
+ } else {
+ dbg("Object Doesn't Exists, so Re-Create");
+ btn = elm_button_add(layout);
+ elm_object_part_content_set(layout, "swallow.end_button", btn);
+ }
+
+ elm_object_style_set(btn, "style_call_icon_only_qp_end");
+
+ evas_object_smart_callback_add(btn, "clicked", __qp_end_btn_cb, ad);
+ evas_object_propagate_events_set(btn, EINA_FALSE);
+ return btn;
+}
+
+Evas_Object *_callui_create_quickpanel_mute_button(void *data, Eina_Bool bdisable)
+{
+ dbg("..");
+ Evas_Object *btn, *layout, *sw;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ CALLUI_RETURN_NULL_IF_FAIL(ad);
+
+ layout = ad->quickpanel_layout;
+ CALLUI_RETURN_NULL_IF_FAIL(layout);
+
+ sw = edje_object_part_swallow_get(_EDJ(layout), "swallow.mute_button");
+ if (sw) {
+ dbg("Object Already Exists, so Update Only");
+ btn = sw;
+ evas_object_smart_callback_del(btn, "clicked", _callui_mute_btn_cb);
+ } else {
+ dbg("Object Doesn't Exists, so Re-Create");
+ btn = elm_button_add(layout);
+ elm_object_part_content_set(layout, "swallow.mute_button", btn);
+ }
+
+ if (ad->mute_status == EINA_FALSE) {
+ elm_object_style_set(btn, "style_call_icon_only_qp_mute");
+ evas_object_smart_callback_add(btn, "clicked", _callui_mute_btn_cb, ad);
+ } else {
+ elm_object_style_set(btn, "style_call_icon_only_qp_mute_on");
+ evas_object_smart_callback_add(btn, "clicked", _callui_mute_btn_cb, ad);
+ }
+
+ evas_object_propagate_events_set(btn, EINA_FALSE);
+ elm_object_disabled_set(btn, bdisable);
+
+ return btn;
+}
+
+void _callui_view_qp_hide(callui_app_data_t *ad)
+{
+ dbg("..");
+
+ /* Empty implementation */
+}
+
+static void __callui_view_qp_update_caller(Evas_Object *eo, call_data_t *pcall_data)
+{
+ dbg("..");
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ if (pcall_data == NULL) {
+ return;
+ }
+
+ char *call_name = pcall_data->call_ct_info.call_disp_name;
+ char *file_path = pcall_data->call_ct_info.caller_id_path;
+
+ char *call_number = NULL;
+ if (strlen(pcall_data->call_disp_num) > 0) {
+ call_number = pcall_data->call_disp_num;
+ } else {
+ call_number = pcall_data->call_num;
+ }
+
+ if (strlen(call_name) == 0) {
+ if (strlen(call_number) == 0) {
+ edje_object_part_text_set(_EDJ(eo), "txt_call_name", _("IDS_CALL_BODY_UNKNOWN"));
+ } else {
+ edje_object_part_text_set(_EDJ(eo), "txt_call_name", call_number);
+ }
+ } else {
+ char *convert_text = evas_textblock_text_utf8_to_markup(NULL, call_name);
+ if (convert_text) {
+ edje_object_part_text_set(_EDJ(eo), "txt_call_name", convert_text);
+ free(convert_text);
+ convert_text = NULL;
+ } else {
+ err("Convert text is NULL");
+ }
+ }
+
+ if (strcmp(file_path, "default") != 0) {
+ _callui_show_caller_id(eo, file_path, TRUE);
+ } else if (ad->landscape) {
+ elm_object_signal_emit(eo, "show_image", "quickpanel_ls");
+ } else {
+ elm_object_signal_emit(eo, "show_image", "quickpanel");
+ }
+}
+
+static void __callui_view_qp_draw_screen(Evas_Object *eo, void *data)
+{
+ dbg("..");
+ call_data_t *call_data = NULL;
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+
+ Evas_Object *call_btn = __callui_create_quickpanel_call_button(ad);
+ elm_object_disabled_set(call_btn, EINA_TRUE);
+ _callui_create_quickpanel_speaker_button(ad, EINA_FALSE);
+
+ if (ad->active && (CM_CALL_STATE_DIALING == ad->active->call_state)) {/**dialling**/
+ dbg("dialing view!!!!!!!!!!");
+ call_data = ad->active;
+ _callui_view_qp_update_text_status(_("IDS_CALL_POP_DIALLING"));
+ _callui_create_quickpanel_mute_button(ad, EINA_TRUE);
+ __callui_view_qp_update_caller(eo, call_data);
+ if (ad->landscape) {
+ elm_object_signal_emit(eo, "outgoing_call", "quickpanel_ls");
+ } else {
+ elm_object_signal_emit(eo, "outgoing_call", "quickpanel");
+ }
+ elm_object_signal_emit(eo, "outgoing_call", "quickpanel");
+ } else if (!(ad->held) && !(ad->incom) && ad->active) { /** connected call**/
+ call_data = ad->active;
+ __callui_view_qp_update_caller(eo, call_data);
+ if (ad->active->member_count > 1) {
+ dbg("multi conf call");
+ if (ad->landscape) {
+ elm_object_signal_emit(eo, "during_call", "quickpanel_ls");
+ } else {
+ elm_object_signal_emit(eo, "during_call", "quickpanel");
+ }
+ edje_object_part_text_set(_EDJ(eo), "txt_call_name", _("IDS_CALL_OPT_CONFERENCE_CALL"));
+ } else {
+ call_data = ad->active;
+ __callui_view_qp_update_caller(eo, call_data);
+ if (ad->landscape) {
+ elm_object_signal_emit(eo, "during_call", "quickpanel_ls");
+ } else {
+ elm_object_signal_emit(eo, "during_call", "quickpanel");
+ }
+ }
+ _callui_common_update_call_duration(call_data->start_time);
+ _callui_create_quickpanel_mute_button(ad, EINA_FALSE);
+ } else if ((ad->active) && (ad->held)) {/***split call*****/
+ dbg("multi split call");
+ call_data = ad->active;
+ if (ad->active->member_count > 1) {
+ _callui_create_quickpanel_mute_button(ad, EINA_FALSE);
+ __callui_view_qp_update_caller(eo, call_data);
+ if (ad->landscape) {
+ elm_object_signal_emit(eo, "during_call", "quickpanel_ls");
+ } else {
+ elm_object_signal_emit(eo, "during_call", "quickpanel");
+ }
+ edje_object_part_text_set(_EDJ(eo), "txt_call_name", _("IDS_CALL_OPT_CONFERENCE_CALL"));
+ } else if (ad->active->member_count == 1) {
+ __callui_view_qp_update_caller(eo, call_data);
+ if (ad->landscape) {
+ elm_object_signal_emit(eo, "during_call", "quickpanel_ls");
+ } else {
+ elm_object_signal_emit(eo, "during_call", "quickpanel");
+ }
+ } else {
+ dbg("invalid case");
+ }
+ _callui_create_quickpanel_mute_button(ad, EINA_FALSE);
+ } else if ((ad->active) || (ad->held)) {/**conference call**/
+ if ((ad->active)) {/**active call**/
+ call_data = ad->active;
+ if (ad->active->member_count > 1) {
+ dbg("multi conf call");
+ edje_object_part_text_set(_EDJ(eo), "txt_call_name", _("IDS_CALL_OPT_CONFERENCE_CALL"));
+ } else {
+ dbg("single call");
+ __callui_view_qp_update_caller(eo, call_data);
+ if (ad->landscape) {
+ elm_object_signal_emit(eo, "during_call", "quickpanel_ls");
+ } else {
+ elm_object_signal_emit(eo, "during_call", "quickpanel");
+ }
+ }
+ _callui_common_update_call_duration(call_data->start_time);
+ _callui_create_quickpanel_mute_button(ad, EINA_FALSE);
+ } else if ((ad->held)) {/**held call**/
+ call_data = ad->held;
+ if (ad->held->member_count > 1) {
+ dbg("multi conf call");
+ edje_object_part_text_set(_EDJ(eo), "txt_call_name", _("IDS_CALL_OPT_CONFERENCE_CALL"));
+ _callui_create_quickpanel_resume_button(ad, EINA_TRUE);
+ if (ad->landscape) {
+ elm_object_signal_emit(eo, "resume_call", "quickpanel_ls");
+ } else {
+ elm_object_signal_emit(eo, "resume_call", "quickpanel");
+ }
+ } else {
+ dbg("single call");
+ __callui_view_qp_update_caller(eo, call_data);
+ _callui_create_quickpanel_resume_button(ad, EINA_TRUE);
+ if (ad->landscape) {
+ elm_object_signal_emit(eo, "resume_call", "quickpanel_ls");
+ } else {
+ elm_object_signal_emit(eo, "resume_call", "quickpanel");
+ }
+ }
+ _callui_view_qp_update_text_status(_("IDS_CALL_BODY_ON_HOLD_ABB"));
+ _callui_create_quickpanel_mute_button(ad, EINA_TRUE);
+ }
+ } else if (ad->incom) {
+ dbg("incoming view!!!!!!!!!!");
+ call_data = ad->incom;
+ __callui_view_qp_update_caller(eo, call_data);
+ _callui_view_qp_update_text_status(_("IDS_CALL_BODY_INCOMING_CALL"));
+ _callui_create_quickpanel_mute_button(ad, EINA_TRUE);
+ _callui_create_quickpanel_speaker_button(ad, EINA_TRUE);
+ if (ad->landscape) {
+ elm_object_signal_emit(eo, "incoming_call", "quickpanel_ls");
+ } else {
+ elm_object_signal_emit(eo, "incoming_call", "quickpanel");
+ }
+ elm_object_disabled_set(call_btn, EINA_FALSE);
+ } else {
+ dbg("incoming call. error!");
+ }
+ __callui_create_quickpanel_end_button(ad);
+}
+
+static void __callui_view_qp_provider_cb(minicontrol_viewer_event_e event_type, bundle *event_arg)
+{
+ dbg("__callui_view_qp_viewer_cb %i", event_type);
+ char *angle = NULL;
+ if (event_arg) {
+ bundle_get_str(event_arg, "angle", &angle);
+ }
+
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_IF_FAIL(ad);
+ callui_view_qp_priv_t *priv = (callui_view_qp_priv_t *)ad->view_data->priv;
+ if (angle && angle[0] != '/0') {
+ priv->rotate_angle = atoi(angle);
+ }
+ __callui_view_qp_onshow(ad->view_data, NULL);
+}
+
+static Evas_Object *__callui_view_qp_create_window(callui_app_data_t *priv)
+{
+ Evas_Object *win;
+ win = minicontrol_create_window("org.tizen.call-ui", MINICONTROL_TARGET_VIEWER_QUICK_PANEL, __callui_view_qp_provider_cb);
+ elm_win_alpha_set(win, EINA_TRUE);
+ evas_object_resize(win, ELM_SCALE_SIZE(MAIN_SCREEN_BIG_W), ELM_SCALE_SIZE(QP_WIN_H));
+
+ if (elm_win_wm_rotation_supported_get(win)) {
+ int rotate_angles[3] = {0, 90, 270};
+ /*Set the required angles wherein the rotation has to be supported*/
+ elm_win_wm_rotation_available_rotations_set(win, rotate_angles, 3);
+ }
+ return win;
+}
+
+static Evas_Object *__callui_view_qp_create_layout_main(Evas_Object *parent)
+{
+ if (parent == NULL) {
+ dbg("ERROR");
+ return NULL;
+ }
+
+ Evas_Object *ly;
+ ly = elm_layout_add(parent);
+
+ if (ly == NULL) {
+ err("Failed elm_layout_add.");
+ return NULL;
+ }
+
+ elm_layout_theme_set(ly, "layout", "application", "default");
+ evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(parent, ly);
+
+ edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm");
+
+ return ly;
+}
+
+static Evas_Object *__callui_view_qp_create_contents(void *data, char *group)
+{
+ if (data == NULL) {
+ dbg("ERROR");
+ return NULL;
+ }
+ callui_app_data_t *ad = _callui_get_app_data();
+ Evas_Object *eo = NULL;
+
+ /* load edje */
+ eo = _callui_load_edj(ad->win_quickpanel, EDJ_NAME, group);
+
+ if (eo == NULL)
+ return NULL;
+
+ return eo;
+}
+
+static int __callui_view_qp_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *appdata)
+{
+ dbg("quickpanel view create!!");
+
+ callui_app_data_t *ad = (callui_app_data_t *) appdata;
+ callui_view_qp_priv_t *priv = (callui_view_qp_priv_t *)view_data->priv;
+ ad->view_data = view_data;
+ if (!view_data->layout) {
+ ad->win_quickpanel = __callui_view_qp_create_window(priv);
+ if (ad->win_quickpanel == NULL) {
+ dbg("ERROR");
+ return -1;
+ }
+ priv->rotate_angle = elm_win_rotation_get(ad->win_quickpanel);
+ dbg("current rotate angle(%d)", priv->rotate_angle);
+ view_data->layout = __callui_view_qp_create_layout_main(ad->win_quickpanel);
+ if (view_data->layout == NULL) {
+ dbg("ERROR");
+ return -1;
+ }
+ }
+
+ if (priv->client_msg_handler == NULL)
+ priv->client_msg_handler = ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, __callui_qp_client_message_cb, view_data);
+
+ __callui_view_qp_onshow(view_data, NULL);
+ return 0;
+}
+
+static int __callui_view_qp_onupdate(call_view_data_t *view_data, void *update_data1)
+{
+ dbg("quickpanel view update!!");
+
+ __callui_view_qp_onshow(view_data, NULL);
+ return 0;
+}
+
+static int __callui_view_qp_onhide(call_view_data_t *view_data)
+{
+ dbg("quickpanel view hide!!");
+
+ evas_object_hide(view_data->layout);
+ return 0;
+}
+
+static int __callui_view_qp_onshow(call_view_data_t *view_data, void *appdata)
+{
+ dbg("quickpanel view show!!");
+ callui_app_data_t *ad = _callui_get_app_data();
+ callui_view_qp_priv_t *priv = (callui_view_qp_priv_t *)view_data->priv;
+ if (ad->quickpanel_layout) {
+ evas_object_event_callback_del(ad->quickpanel_layout, EVAS_CALLBACK_MOUSE_UP, __callui_qp_launch_top_view_cb);
+ evas_object_del(ad->quickpanel_layout);
+ ad->quickpanel_layout = NULL;
+ }
+
+ if (priv->rotate_angle == 0 || priv->rotate_angle == 180) {
+ dbg("portrait mode layout");
+ ad->landscape = false;
+ evas_object_resize(ad->win_quickpanel, ELM_SCALE_SIZE(MAIN_SCREEN_BIG_W), ELM_SCALE_SIZE(QP_WIN_H));
+ ad->quickpanel_layout = __callui_view_qp_create_contents(view_data, GRP_QUICKPANEL);
+ } else if (priv->rotate_angle == 90 || priv->rotate_angle == 270) {
+ dbg("landscape mode layout");
+ ad->landscape = true;
+ evas_object_resize(ad->win_quickpanel, ELM_SCALE_SIZE(MAIN_SCREEN_BIG_H), ELM_SCALE_SIZE(QP_WIN_H));
+ ad->quickpanel_layout = __callui_view_qp_create_contents(view_data, GRP_QUICKPANEL_LS);
+ }
+
+ elm_object_part_content_set(view_data->layout, "elm.swallow.content", ad->quickpanel_layout);
+ evas_object_name_set(ad->quickpanel_layout, VIEW_QUICKPANEL_LAYOUT_ID);
+ dbg("[========== QUICKPANEL:ad->quickpanel_layout Addr : [%p] ==========]", ad->quickpanel_layout);
+ evas_object_event_callback_add(ad->quickpanel_layout, EVAS_CALLBACK_MOUSE_UP, __callui_qp_launch_top_view_cb, ad);
+
+ __callui_view_qp_draw_screen(ad->quickpanel_layout, ad);
+ evas_object_show(ad->win_quickpanel);
+ evas_object_show(ad->quickpanel_layout);
+ evas_object_show(view_data->layout);
+
+ /* Prohibit remove of mini control */
+ minicontrol_send_event(ad->win_quickpanel, MINICONTROL_EVENT_REQUEST_LOCK, NULL);
+
+ return 0;
+}
+
+static int __callui_view_qp_ondestroy(call_view_data_t *view_data)
+{
+ dbg("quickpanel view destroy!!");
+
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, -1);
+ call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_QUICKPANEL_VIEW);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, -1);
+
+ callui_view_qp_priv_t *priv = (callui_view_qp_priv_t *)vd->priv;
+
+ if (priv != NULL) {
+ if (priv->caller_id) {
+ evas_object_del(priv->caller_id);
+ priv->caller_id = NULL;
+ }
+
+ ecore_event_handler_del(priv->client_msg_handler);
+
+ free(priv);
+ priv = NULL;
+ }
+
+ if (ad->quickpanel_layout) {
+ evas_object_del(ad->quickpanel_layout);
+ ad->quickpanel_layout = NULL;
+ }
+
+ if (vd->layout != NULL) {
+ evas_object_hide(vd->layout);
+ evas_object_del(vd->layout);
+ vd->layout = NULL;
+ }
+
+ _callvm_reset_call_view_data(ad, VIEW_QUICKPANEL_VIEW);
+
+ if (ad->win_quickpanel) {
+ evas_object_del(ad->win_quickpanel);
+ ad->win_quickpanel = NULL;
+ }
+
+ return 0;
+}
+
+void _callui_view_qp_update_text_status(char *txt_status)
+{
+ dbg("..");
+ callui_app_data_t *ad = _callui_get_app_data();
+ if (ad == NULL) {
+ dbg("app Data is NULL");
+ return;
+ }
+
+ if (ad->win_quickpanel && ad->quickpanel_layout) {
+ edje_object_part_text_set(_EDJ(ad->quickpanel_layout),
+ "txt_timer", txt_status);
+ }
+
+}
+
+void _callui_view_qp_set_call_timer(Evas_Object *qp_layout, char *pcall_timer)
+{
+ CALLUI_RETURN_IF_FAIL(qp_layout);
+ callui_app_data_t *ad = _callui_get_app_data();
+ if (!ad) {
+ dbg("ad is NULL!!!");
+ return;
+ }
+
+ if (ad->active) {
+ if (ad->held) {
+ char buf[TXT_TIMER_BUF_LEN] = {0};
+ char buf_tmp[TXT_TIMER_BUF_LEN] = {0};
+ snprintf(buf_tmp, sizeof(buf_tmp), "%s / %s", pcall_timer, _("IDS_CALL_BODY_PD_ON_HOLD_M_STATUS_ABB"));
+ snprintf(buf, sizeof(buf), buf_tmp, CALL_NUMBER_ONE);
+ edje_object_part_text_set(_EDJ(qp_layout), "txt_timer", buf);
+ } else {
+ edje_object_part_text_set(_EDJ(qp_layout), "txt_timer", _(pcall_timer));
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "callui.h"
+#include "callui-view-single-call.h"
+#include "callui-view-elements.h"
+#include "callui-keypad.h"
+#include "callui-common.h"
+
+#define VIEW_SINGLE_CALL_LAYOUT_ID "ONEVIEW"
+
+struct incall_one_view_priv {
+ Evas_Object *contents;
+ Evas_Object *caller_info;
+ Evas_Object *held_call_ly;
+ Evas_Object *extra_vol_ly;
+ Evas_Object *btn_ly;
+ Evas_Object *ic;
+};
+
+static int __callui_view_single_call_oncreate(call_view_data_t *view_data, unsigned int param1, void *param2, void *param3);
+static int __callui_view_single_call_onupdate(call_view_data_t *view_data, void *update_data1);
+static int __callui_view_single_call_onhide(call_view_data_t *view_data);
+static int __callui_view_single_call_onshow(call_view_data_t *view_data, void *appdata);
+static int __callui_view_single_call_ondestroy(call_view_data_t *view_data);
+static Evas_Object *__callui_view_single_call_create_contents(void *data, char *grpname);
+static int __callui_view_single_call_onRotate(call_view_data_t *view_data);
+
+call_view_data_t *_callui_view_single_call_new(callui_app_data_t *ad)
+{
+ static call_view_data_t one_call_view = {
+ .type = VIEW_INCALL_ONECALL_VIEW,
+ .layout = NULL,
+ .onCreate = __callui_view_single_call_oncreate,
+ .onUpdate = __callui_view_single_call_onupdate,
+ .onHide = __callui_view_single_call_onhide,
+ .onShow = __callui_view_single_call_onshow,
+ .onDestroy = __callui_view_single_call_ondestroy,
+ .onRotate = __callui_view_single_call_onRotate,
+ .priv = NULL,
+ };
+ one_call_view.priv = calloc(1, sizeof(incall_one_view_priv_t));
+
+ if (!one_call_view.priv) {
+ err("ERROR!!!!!!!!!!! ");
+ }
+
+ return &one_call_view;
+}
+
+static Evas_Object *__callui_view_single_call_create_contents(void *data, char *grpname)
+{
+ if (data == NULL) {
+ err("ERROR");
+ return NULL;
+ }
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ Evas_Object *eo = NULL;
+
+ /* load edje */
+ eo = _callui_load_edj(ad->main_ly, EDJ_NAME, grpname);
+ if (eo == NULL)
+ return NULL;
+
+ return eo;
+}
+
+void __callui_view_single_more_btn_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ call_view_data_t *vd = (call_view_data_t *)data;
+ CALLUI_RETURN_IF_FAIL(vd != NULL);
+ _callui_load_more_option(vd);
+ return;
+}
+
+static void __callui_view_single_call_draw_screen(callui_app_data_t *ad, Evas_Object *eo, void *data)
+{
+ dbg("__callui_view_single_call_draw_screen");
+
+ call_view_data_t *vd = (call_view_data_t *)data;
+ incall_one_view_priv_t *priv = (incall_one_view_priv_t *)vd->priv;
+ call_data_t *call_data = NULL;
+ char *file_path = NULL;
+ Eina_Bool is_held = EINA_FALSE;
+ char *sim_name = NULL;
+ char status_txt[128 + 1] = {0, };
+
+ if (ad->active) {
+ call_data = ad->active;
+ is_held = EINA_FALSE;
+ } else {
+ call_data = ad->held;
+ is_held = EINA_TRUE;
+ }
+ if (call_data == NULL) {
+ dbg("call Data is NULL");
+ return;
+ }
+
+ file_path = call_data->call_ct_info.caller_id_path;
+
+ sec_dbg("file_path: %s", file_path);
+
+ if (call_data->is_emergency == EINA_TRUE) {
+ elm_object_signal_emit(priv->caller_info, "set_emergency_mode", "");
+ } else {
+ if (strcmp(file_path, "default") != 0) {
+ _callui_show_caller_id(priv->caller_info, file_path, FALSE);
+ }
+ }
+
+ if (is_held) {
+ dbg("=================HOLD======================");
+ evas_object_show(priv->held_call_ly);
+ elm_object_part_content_set(priv->contents, "resume_icon_swallow", priv->held_call_ly);
+ snprintf(status_txt, sizeof(status_txt), _("IDS_CALL_BODY_ON_HOLD_ABB"));
+ _callui_show_caller_info_status(ad, status_txt, EINA_FALSE);
+ } else {
+ dbg("=================UNHOLD======================");
+ evas_object_hide(priv->held_call_ly);
+ elm_object_part_content_unset(priv->contents, "resume_icon_swallow");
+ _callui_common_update_call_duration(call_data->start_time);
+ }
+
+ char *call_name = call_data->call_ct_info.call_disp_name;
+ char *disp_number = NULL;
+ if (strlen(call_data->call_disp_num) > 0) {
+ disp_number = call_data->call_disp_num;
+ } else {
+ disp_number = call_data->call_num;
+ }
+
+ if (call_data->is_emergency == EINA_TRUE) {
+ call_name = _("IDS_COM_BODY_EMERGENCY_NUMBER");
+ disp_number = "";
+ }
+
+ if (strlen(call_name) == 0) {
+ _callui_show_caller_info_name(ad, disp_number, EINA_FALSE);
+ elm_object_signal_emit(priv->caller_info, "1line", "caller_name");
+ } else if (call_data->is_emergency == EINA_TRUE) {
+ _callui_show_caller_info_name(ad, call_name, EINA_FALSE);
+ elm_object_signal_emit(priv->caller_info, "1line", "caller_name");
+ } else {
+ _callui_show_caller_info_name(ad, call_name, EINA_FALSE);
+ _callui_show_caller_info_number(ad, disp_number, EINA_FALSE);
+ elm_object_signal_emit(priv->caller_info, "2line", "caller_name");
+ }
+
+ _callui_create_top_third_button(ad);
+
+ if (is_held) {
+ _callui_create_top_second_button_disabled(ad);
+ _callui_create_bottom_second_button_disabled(ad);
+
+ } else {
+ _callui_create_top_second_button(ad);
+ _callui_create_bottom_second_button(ad);
+ }
+
+ _callui_create_bottom_first_button(ad);
+ _callui_create_top_first_button(ad);
+ _callui_create_bottom_third_button(ad);
+
+ elm_object_signal_emit(priv->contents, "SHOW_EFFECT", "ALLBTN");
+ if (priv->contents) {
+ eext_object_event_callback_del(priv->contents, EEXT_CALLBACK_MORE, __callui_view_single_more_btn_cb);
+ }
+ eext_object_event_callback_add(priv->contents, EEXT_CALLBACK_MORE, __callui_view_single_more_btn_cb, vd);
+ _callui_create_end_call_button(priv->contents, vd);
+ evas_object_show(eo);
+}
+
+static int __callui_view_single_call_oncreate(call_view_data_t *vd, unsigned int param1, void *param2, void *appdata)
+{
+ dbg("incall view create");
+
+ incall_one_view_priv_t *priv = (incall_one_view_priv_t *)vd->priv;
+ callui_app_data_t *ad = (callui_app_data_t *) appdata;
+ call_data_t *call_data = NULL;
+
+ if (ad->active) {
+ call_data = ad->active;
+ } else {
+ call_data = ad->held;
+ }
+ if (call_data == NULL) {
+ err("call data is null");
+ return -1;
+ }
+
+ if (ad->main_ly) {
+ priv->contents = __callui_view_single_call_create_contents(ad, GRP_MAIN_LY);
+ elm_object_part_content_set(ad->main_ly, "elm.swallow.content", priv->contents);
+
+ /* Extra Volume Layout */
+ priv->extra_vol_ly = __callui_view_single_call_create_contents(ad, GRP_EXTRA_VOLUME);
+
+ priv->btn_ly = elm_object_part_content_get(priv->contents, "btn_region");
+ if (!priv->btn_ly) {
+ priv->btn_ly = __callui_view_single_call_create_contents(ad, GRP_BUTTON_LAYOUT);
+ elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly);
+ }
+
+ priv->caller_info = elm_object_part_content_get(priv->contents, "caller_info");
+ if (!priv->caller_info) {
+ priv->caller_info = __callui_view_single_call_create_contents(ad, GRP_CALLER_INFO);
+ elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info);
+ }
+
+ evas_object_name_set(priv->contents, VIEW_SINGLE_CALL_LAYOUT_ID);
+ dbg("[========== ONEVIEW: priv->contents Addr : [%p] ==========]", priv->contents);
+
+ /*create keypad layout*/
+ _callui_keypad_create_layout(ad);
+ } else {
+ err("ERROR");
+ return -1;
+ }
+
+ __callui_view_single_call_onshow(vd, ad);
+
+ if (ad->lock_screen_handle == NULL) {
+ ad->lock_screen_handle = _callui_lock_screen_create_layout(vd);
+ } else if (_callui_lock_screen_is_lockscreen_shown() == FALSE) {
+ _callui_lock_screen_show_layout(ad->lock_screen_handle);
+ }
+
+ return 0;
+}
+
+static int __callui_view_single_call_onupdate(call_view_data_t *view_data, void *update_data)
+{
+ dbg("incall view update");
+ callui_app_data_t *ad = _callui_get_app_data();
+ __callui_view_single_call_onshow(view_data, ad);
+ return 0;
+}
+
+static int __callui_view_single_call_onhide(call_view_data_t *view_data)
+{
+ dbg("incall view hide");
+ callui_app_data_t *ad = _callui_get_app_data();
+
+ evas_object_hide(ad->main_ly);
+ return 0;
+}
+
+static int __callui_view_single_call_onshow(call_view_data_t *view_data, void *appdata)
+{
+ dbg("incall view show");
+ callui_app_data_t *ad = (callui_app_data_t *)appdata;
+ incall_one_view_priv_t *priv = (incall_one_view_priv_t *)view_data->priv;
+
+ __callui_view_single_call_draw_screen(ad, priv->contents, view_data);
+
+ evas_object_hide(ad->main_ly);
+ evas_object_show(ad->main_ly);
+
+ return 0;
+}
+
+static int __callui_view_single_call_ondestroy(call_view_data_t *view_data)
+{
+ dbg("incall view destroy");
+ callui_app_data_t *ad = _callui_get_app_data();
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, -1);
+
+
+ call_view_data_t *vd = _callvm_get_call_view_data(ad, VIEW_INCALL_ONECALL_VIEW);
+ CALLUI_RETURN_VALUE_IF_FAIL(vd, -1);
+ incall_one_view_priv_t *priv = (incall_one_view_priv_t *)vd->priv;
+
+ if (priv != NULL) {
+ if (ad->ctxpopup) {
+ elm_ctxpopup_dismiss(ad->ctxpopup);
+ ad->ctxpopup = NULL;
+ }
+
+ if (priv->extra_vol_ly) {
+ evas_object_del(priv->extra_vol_ly);
+ priv->extra_vol_ly = NULL;
+ }
+
+ if (priv->held_call_ly) {
+ evas_object_del(priv->held_call_ly);
+ priv->held_call_ly = NULL;
+ }
+
+ /*Delete keypad layout*/
+ _callui_keypad_delete_layout(ad);
+
+ if (priv->contents) {
+ eext_object_event_callback_del(priv->contents, EEXT_CALLBACK_MORE, __callui_view_single_more_btn_cb);
+ _callui_common_reset_main_ly_text_fields(priv->contents);
+ }
+ elm_object_signal_emit(priv->contents, "HIDE_BTN_LY", "ALLBTN");
+
+ free(priv);
+ priv = NULL;
+ }
+
+ _callvm_reset_call_view_data(ad, VIEW_INCALL_ONECALL_VIEW);
+
+ dbg("complete destroy one view");
+ return 0;
+}
+
+static int __callui_view_single_call_onRotate(call_view_data_t *view_data)
+{
+#if 0
+ CALLUI_DEBUG(DEBUG, "*** Single Call view Rotate ***");
+ incall_one_view_priv_t *priv = view_data->priv;
+ callui_app_data_t *ad = _vcui_get_app_data();
+ call_data_t *call_data = _vcui_doc_get_first_call_data_from_list();
+ char *file_path = _vcui_doc_get_caller_id_file_path(call_data);
+
+ if (call_data == NULL) {
+ CALLUI_DEBUG(DEBUG, "call Data is NULL");
+ return -1;
+ }
+
+ if (strcmp(file_path, "default") != 0) {
+ _vcui_show_caller_id(priv->caller_info, file_path, FALSE);
+ /*put blur effect on full-cid*/
+ } else if (_vcui_doc_get_is_favorite_contact(call_data)) {
+ _vcui_show_favorit_caller_id(priv->caller_info, _vcui_doc_get_contact_index(call_data));
+ }
+
+ if (IS_PORTRAIT_MODE(ad->rotate_angle)) { /* Portrait Mode */
+ elm_object_signal_emit(priv->contents, "set_portrait", "incall_layout");
+ elm_object_signal_emit(priv->contents, "SHOW_NO_EFFECT", "ALLBTN");
+ elm_object_signal_emit(priv->caller_info, "set_portrait", "caller_info_layout");
+ elm_object_signal_emit(priv->btn_ly, "set_portrait", "btn_layout");
+ } else { /* Landscape Mode */
+ elm_object_signal_emit(priv->contents, "set_landscape", "incall_layout");
+ elm_object_signal_emit(priv->contents, "SHOW_NO_EFFECT_LANDSCAPE", "ALLBTN");
+ elm_object_signal_emit(priv->caller_info, "set_landscape", "caller_info_layout");
+ elm_object_signal_emit(priv->btn_ly, "set_landscape", "btn_layout");
+ }
+
+#ifdef _VC_NOISE_REDUCTION
+ _vc_ui_view_single_call_set_noise_reduction_icon(view_data);
+#endif
+#ifdef _VC_SOUND_EQ
+ _vc_ui_view_single_call_set_sound_eq_icon(view_data);
+#endif
+
+ _vcui_keypad_update_after_rotate(priv->contents, view_data);
+
+ evas_object_show(ad->win_main);
+#endif
+ return 0;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 <utilX.h>
+#include <app_control.h>
+#include <app.h>
+#include <app_extension.h>
+#include <glib-object.h>
+#include <vconf.h>
+#include <vconf-keys.h>
+#ifdef _CALLUI_SIGNAL_HANDLER
+#include <signal.h>
+#endif
+
+#include <bluetooth.h>
+
+#include "sys/socket.h"
+#include "sys/un.h"
+#include "callui.h"
+#include "callui-view-elements.h"
+#include "callui-common.h"
+#include <device/display.h>
+#include <device/callback.h>
+#include "callui-view-quickpanel.h"
+#include "callui-view-layout-wvga.h"
+
+#define EARSET_KEY_LONG_PRESS_TIMEOUT 1.0
+
+/* Need to remove these global variables and put in app data structure or in other suitable structure */
+#ifdef _CALLUI_SIGNAL_HANDLER
+#define CALLUI_SIG_NUM 12
+static struct sigaction callui_app_sigact;
+static struct sigaction callui_app_sigoldact[CALLUI_SIG_NUM];
+static int callui_app_sig_to_handle[] = { SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGQUIT, SIGSEGV, SIGSYS, SIGTRAP, SIGXCPU, SIGXFSZ, SIGTERM, SIGPIPE };
+#endif
+
+static bool _callui_app_create_layout(void *data);
+static Eina_Bool __callui_app_win_hard_key_down_cb(void *data, int type, void *event);
+static Eina_Bool __callui_app_win_hard_key_up_cb(void *data, int type, void *event);
+
+static callui_app_data_t g_ad;
+
+#ifdef _CALLUI_SIGNAL_HANDLER
+/**
+* This function serves as the signal handler function for the SIGSEGV Signal
+*
+* @return nothing
+* @param[in] signal_no Signal Number
+* @param[in] signal_info Information associated with the generated signal
+* @param[in] signal_context Signal Context Info
+*/
+static void __callui_exit_handler(void)
+{
+ err("\n __callui_exit_handler \n");
+ /*syslog (LOG_INFO, "[VOICE-CALL] __vcui_app_exit_handler\n"); */
+}
+
+/**
+* This function serves as the signal handler function for the SIGSEGV Signal
+*
+* @return nothing
+* @param[in] signal_no Signal Number
+* @param[in] signal_info Information associated with the generated signal
+* @param[in] signal_context Signal Context Info
+*/
+static void __callui_sigsegv_handler(int signal_no)
+{
+ int i = 0;
+
+ err("SISEGV Received, Signal Number: :%d \n", signal_no);
+
+
+ for (i = 0; i < CALLUI_SIG_NUM; i++) {
+ sigaction(callui_app_sig_to_handle[i], &(callui_app_sigoldact[i]), NULL);
+ }
+
+ raise(signal_no); /*raise signal intentionally (pass the same signal) */
+}
+
+/**
+* This function registers a user space signal handler for the signal SIGSEGV (Signal #11)
+*
+* @return nothing
+*/
+static void __callui_register_sigsegv_handler()
+{
+ dbg("..");
+
+ int i = 0;
+ callui_app_sigact.sa_flags = SA_NOCLDSTOP;
+ callui_app_sigact.sa_handler = (void *)__callui_sigsegv_handler;
+ sigemptyset(&callui_app_sigact.sa_mask);
+
+ for (; i < CALLUI_SIG_NUM; i++) {
+ sigaction(callui_app_sig_to_handle[i], &callui_app_sigact, &(callui_app_sigoldact[i]));
+ }
+
+}
+#endif
+
+static call_data_t *__callui_call_data_new(char *number)
+{
+ dbg("__calldoc_call_data_new()");
+ call_data_t *call_data = NULL;
+ if (NULL == number) {
+ warn("number is NULL");
+ }
+
+ call_data = (call_data_t *)calloc(1, sizeof(call_data_t));
+ if (NULL == call_data) {
+ warn("failed to alloc memory");
+ return NULL;
+ }
+
+ call_data->call_id = NO_HANDLE;
+ call_data->member_count = 0;
+ if (number) {
+ g_strlcpy(call_data->call_num, number, CALLUI_PHONE_NUMBER_LENGTH_MAX);
+ }
+ call_data->call_ct_info.person_id = -1;
+
+ return call_data;
+}
+
+static void __callui_app_win_key_grab(callui_app_data_t *ad)
+{
+ int result = 0;
+ result = utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_MEDIA, EXCLUSIVE_GRAB);
+ if (result)
+ dbg("KEY_MEDIA key grab failed");
+
+ if (_callui_common_is_powerkey_mode_on()) {
+ result = utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_POWER, EXCLUSIVE_GRAB);
+ } else {
+ result = utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_POWER, SHARED_GRAB);
+ }
+ if (result) {
+ dbg("KEY_POWER key grab failed");
+ }
+
+ if (ad->downkey_handler == NULL)
+ ad->downkey_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, __callui_app_win_hard_key_down_cb, ad);
+ if (ad->upkey_handler == NULL)
+ ad->upkey_handler = ecore_event_handler_add(ECORE_EVENT_KEY_UP, __callui_app_win_hard_key_up_cb, ad);
+}
+
+static void __callui_update_call_data(call_data_t **call_data, cm_call_data_t* cm_call_data)
+{
+ dbg("__callui_update_call_data()");
+ call_data_t *tmp_call_data = NULL;
+ char *call_number = NULL;
+ int person_id = -1;
+ if (NULL == cm_call_data) {
+ warn("cm_call_data is NULL");
+ g_free(*call_data);
+ *call_data = NULL;
+ return;
+ }
+
+ cm_call_data_get_call_number(cm_call_data, &call_number);
+ tmp_call_data = __callui_call_data_new(call_number);
+ CALLUI_RETURN_IF_FAIL(tmp_call_data);
+
+ cm_call_data_get_call_id(cm_call_data, &tmp_call_data->call_id);
+ cm_call_data_get_call_member_count(cm_call_data, &tmp_call_data->member_count);
+ cm_call_data_get_call_direction(cm_call_data, &tmp_call_data->call_direction);
+ cm_call_data_get_call_domain(cm_call_data, &tmp_call_data->call_domain);
+ cm_call_data_get_call_state(cm_call_data, &tmp_call_data->call_state);
+ cm_call_data_get_call_type(cm_call_data, &tmp_call_data->call_type);
+ cm_call_data_is_emergency_call(cm_call_data, &tmp_call_data->is_emergency);
+ cm_call_data_get_start_time(cm_call_data, &tmp_call_data->start_time);
+
+ /* Check for Contact Index and accordingly update the contact information if the contact is saved */
+ cm_call_data_get_person_id(cm_call_data, &person_id);
+ if ((person_id != -1) && (tmp_call_data->call_ct_info.person_id == -1)) {
+ dbg("contact exists with index:[%d]", person_id);
+ _callui_common_get_contact_info(person_id, &tmp_call_data->call_ct_info);
+ }
+
+ if (strlen(tmp_call_data->call_ct_info.caller_id_path) <= 0) {
+ g_strlcpy(tmp_call_data->call_ct_info.caller_id_path, "default", CALLUI_IMAGE_PATH_LENGTH_MAX);
+ }
+
+ g_free(*call_data);
+ *call_data = tmp_call_data;
+
+ return;
+}
+
+static void __callui_update_all_call_data(callui_app_data_t *ad, cm_call_event_data_t* call_state_data)
+{
+ cm_call_data_t *call_data = NULL;
+ CALLUI_RETURN_IF_FAIL(ad);
+ CALLUI_RETURN_IF_FAIL(call_state_data);
+ dbg("doc_data active!");
+ cm_call_event_data_get_active_call(call_state_data, &call_data);
+ __callui_update_call_data(&(ad->active), call_data);
+ dbg("doc_data incom!");
+ cm_call_event_data_get_incom_call(call_state_data, &call_data);
+ __callui_update_call_data(&(ad->incom), call_data);
+ dbg("doc_data held!");
+ cm_call_event_data_get_held_call(call_state_data, &call_data);
+ __callui_update_call_data(&(ad->held), call_data);
+}
+
+static void __callui_process_incoming_call(callui_app_data_t *ad, unsigned int call_id)
+{
+ dbg("..");
+ cm_call_data_t *cm_incom = NULL;
+
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ cm_get_all_calldata(ad->cm_handle, &cm_incom, NULL, NULL);
+ CALLUI_RETURN_IF_FAIL(cm_incom);
+
+ __callui_update_call_data(&(ad->incom), cm_incom);
+ _callvm_view_change(VIEW_INCOMING_LOCK_VIEW, 0, NULL, ad);
+
+ cm_call_data_free(cm_incom);
+ return;
+}
+
+static void __callui_process_outgoing_call(callui_app_data_t *ad, char *number)
+{
+ sec_dbg("number is (%s)", number);
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ if (CM_ERROR_NONE != cm_dial_call(ad->cm_handle, number, CM_CALL_TYPE_VOICE, CM_SIM_SLOT_DEFAULT_E)) {
+ err("cm_dial_call failed!!");
+ _callvm_terminate_app_or_view_change(ad);
+ return;
+ }
+ ad->active = __callui_call_data_new(number);
+ return;
+}
+
+static void __callui_call_event_cb(cm_call_event_e call_event, cm_call_event_data_t *call_state_data, void *user_data)
+{
+ CALLUI_RETURN_IF_FAIL(call_state_data);
+ info("Call event changed!! %d", call_event);
+ callui_app_data_t *ad = (callui_app_data_t *)user_data;
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ cm_call_event_data_get_sim_slot(call_state_data, &ad->sim_slot);
+ switch (call_event) {
+ case CM_CALL_EVENT_ACTIVE:
+ _callui_common_dvc_control_lcd_state(LCD_ON_UNLOCK);
+ __callui_update_all_call_data(ad, call_state_data);
+ _callui_common_create_duration_timer();
+ _callvm_view_auto_change(ad);
+ if (ad->speaker_status == EINA_TRUE) {
+ _callui_common_dvc_set_lcd_timeout(LCD_TIMEOUT_SET);
+ }
+ break;
+ case CM_CALL_EVENT_IDLE:
+ {
+ unsigned int call_id = 0;
+ cm_call_data_t *incom_call = NULL;
+ cm_call_data_t *active_call = NULL;
+ cm_call_data_t *held_call = NULL;
+
+ _callui_common_dvc_control_lcd_state(LCD_ON_UNLOCK);
+
+ cm_call_event_data_get_call_id(call_state_data, &call_id);
+ cm_call_event_data_get_active_call(call_state_data, &active_call);
+ cm_call_event_data_get_incom_call(call_state_data, &incom_call);
+ cm_call_event_data_get_held_call(call_state_data, &held_call);
+ if ((ad->incom) && (call_id == ad->incom->call_id)) {
+ __callui_update_all_call_data(ad, call_state_data);
+ _callvm_terminate_app_or_view_change(ad);
+ } else if (incom_call == NULL && active_call == NULL && held_call == NULL) {
+ _callui_common_delete_duration_timer();
+ _callvm_view_change(VIEW_ENDCALL_VIEW, call_id, NULL, ad);
+ if (ad->lock_screen_handle) {
+ _callui_lock_screen_hide_layout(ad->lock_screen_handle);
+ _callui_lock_screen_stop_timer();
+ }
+ __callui_update_all_call_data(ad, call_state_data);
+ } else {
+ __callui_update_all_call_data(ad, call_state_data);
+ _callvm_terminate_app_or_view_change(ad);
+ }
+ }
+ break;
+ case CM_CALL_EVENT_INCOMING:
+ {
+ _callui_common_dvc_control_lcd_state(LCD_ON_LOCK);
+ __callui_update_all_call_data(ad, call_state_data);
+ _callvm_view_auto_change(ad);
+ }
+ break;
+ case CM_CALL_EVENT_DIALING:
+ case CM_CALL_EVENT_HELD:
+ case CM_CALL_EVENT_RETRIEVED:
+ case CM_CALL_EVENT_SWAPPED:
+ case CM_CALL_EVENT_JOIN:
+ case CM_CALL_EVENT_SPLIT:
+ __callui_update_all_call_data(ad, call_state_data);
+ _callvm_view_auto_change(ad);
+ break;
+ default:
+ break;
+ }
+
+ dbg("Call event changed cb done");
+ return;
+}
+
+static void __callui_audio_state_changed_cb(cm_audio_state_type_e audio_state, void *user_data)
+{
+ callui_app_data_t *ad = (callui_app_data_t *)user_data;
+ CALLUI_RETURN_IF_FAIL(ad);
+ dbg("__callui_audio_state_changed_cb, audio_state[%d]", audio_state);
+ switch (audio_state) {
+ case CM_AUDIO_STATE_SPEAKER_E:
+ _callui_update_speaker_btn(ad, EINA_TRUE);
+ _callui_update_headset_btn(ad, EINA_FALSE);
+ if ((_callui_common_is_extra_volume_available() == EINA_TRUE) && (ad->extra_volume_status_force_stop == EINA_TRUE)) {
+ int retextravol = -1;
+ retextravol = cm_set_extra_vol(ad->cm_handle, TRUE);
+ if (retextravol == CM_ERROR_NONE) {
+ ad->extra_volume_status_force_stop = EINA_FALSE;
+ _callui_update_extra_vol_btn(ad, EINA_TRUE);
+ }
+ }
+ break;
+ case CM_AUDIO_STATE_RECEIVER_E:
+ _callui_update_speaker_btn(ad, EINA_FALSE);
+ _callui_update_headset_btn(ad, EINA_FALSE);
+ if ((_callui_common_is_extra_volume_available() == EINA_TRUE) && (ad->extra_volume_status_force_stop == EINA_TRUE)) {
+ int retextravol = -1;
+ retextravol = cm_set_extra_vol(ad->cm_handle, TRUE);
+ if (retextravol == CM_ERROR_NONE) {
+ ad->extra_volume_status_force_stop = EINA_FALSE;
+ _callui_update_extra_vol_btn(ad, EINA_TRUE);
+ }
+ }
+ break;
+ case CM_AUDIO_STATE_EARJACK_E:
+ {
+ _callui_update_speaker_btn(ad, EINA_FALSE);
+ _callui_update_headset_btn(ad, EINA_FALSE);
+ if (ad->extra_volume_status == EINA_TRUE) {
+ dbg("Disable extra volume when earphone connected and speaker is turned off");
+ int ret = -1;
+ ret = cm_set_extra_vol(ad->cm_handle, FALSE);
+ if (ret == CM_ERROR_NONE) {
+ ad->extra_volume_status_force_stop = EINA_TRUE;
+ _callui_create_extravolume_notify_popup();
+ _callui_update_extra_vol_btn(ad, EINA_FALSE);
+ } else {
+ err("cm_set_extra_vol() is failed");
+ }
+ }
+ break;
+ }
+ case CM_AUDIO_STATE_BT_E:
+ _callui_update_speaker_btn(ad, EINA_FALSE);
+ _callui_update_headset_btn(ad, EINA_TRUE);
+ break;
+ case CM_AUDIO_STATE_NONE_E:
+ default:
+ err("unhandled state[%d]", audio_state);
+ break;
+ }
+
+ return;
+}
+
+static void __callui_call_list_init(callui_app_data_t *ad)
+{
+ dbg("..");
+ CALLUI_RETURN_IF_FAIL(ad);
+
+ ad->active = NULL;
+ ad->incom = NULL;
+ ad->held = NULL;
+ ad->active_incoming = false;
+ ad->multi_call_list_end_clicked = false;
+
+ return;
+}
+
+
+static void __callui_bt_init()
+{
+ int ret = BT_ERROR_NONE;
+ ret = bt_initialize();
+ if (BT_ERROR_NONE != ret) {
+ err("bt_init() failed [%d]", ret);
+ return;
+ }
+}
+
+
+static gboolean __callui_init(callui_app_data_t *ad)
+{
+ dbg("..");
+
+ if (CM_ERROR_NONE != cm_init(&ad->cm_handle)) {
+ err("cm_init() err");
+ return false;
+ }
+ cm_set_call_event_cb(ad->cm_handle, __callui_call_event_cb, ad);
+ cm_set_audio_state_changed_cb(ad->cm_handle, __callui_audio_state_changed_cb, ad);
+
+ __callui_bt_init();
+
+ ad->view_manager_handle = _callvm_init();
+ return true;
+}
+
+static void __callui_win_delete_request_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ /* To make your application go to background,
+ Call the elm_win_lower() instead
+ Evas_Object *win = (Evas_Object *) data;
+ elm_win_lower(win); */
+ elm_exit();
+}
+
+static Evas_Object *__callui_create_main_win(callui_app_data_t *ad)
+{
+ /*
+ * Widget Tree
+ * Window
+ * - conform
+ * - layout main
+ * - naviframe */
+
+ Evas_Object *eo = NULL;;
+ const char *str = "mobile";
+ Evas_Object *conform = NULL;
+ eo = (Evas_Object *)app_get_preinitialized_window(PACKAGE);
+ if (eo == NULL) {
+ dbg("Create window");
+ eo = elm_win_add(NULL, PACKAGE, ELM_WIN_BASIC);
+ elm_win_alpha_set(eo, EINA_TRUE);
+ elm_win_fullscreen_set(eo, EINA_FALSE);
+ } else {
+ dbg("Preinitialized window");
+ }
+
+ if (eo) {
+ elm_win_profiles_set(eo, &str, 1); /* Desktop mode only */
+ elm_win_title_set(eo, PACKAGE);
+ evas_object_smart_callback_add(eo, "delete,request", __callui_win_delete_request_cb, NULL);
+ elm_config_engine_set("software_x11");
+
+ ecore_x_window_size_get(ecore_x_window_root_first_get(), &ad->root_w, &ad->root_h);
+ dbg("root_w = %d, root_h = %d..", ad->root_w, ad->root_h);
+ evas_object_resize(eo, ad->root_w, ELM_SCALE_SIZE(MTLOCK_ACTIVE_CALL_HEIGHT));
+
+ elm_win_center(eo, EINA_FALSE, EINA_TRUE);
+ evas_object_move(eo, 0, 0);
+ elm_win_indicator_mode_set(eo, ELM_WIN_INDICATOR_SHOW);
+ elm_win_indicator_opacity_set(eo, ELM_WIN_INDICATOR_TRANSLUCENT);
+ elm_win_conformant_set(eo, EINA_TRUE);
+ efl_util_set_window_opaque_state(eo, 1);
+
+ ad->bg = (Evas_Object *)app_get_preinitialized_background();
+ if (!ad->bg)
+ ad->bg = elm_bg_add(eo);
+ evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(ad->bg);
+ elm_object_part_content_set(eo, "elm.swallow.bg", ad->bg);
+
+ conform = (Evas_Object *)app_get_preinitialized_conformant();
+ if (conform == NULL) {
+ conform = elm_conformant_add(eo);
+ }
+ elm_object_signal_emit(conform, "elm,state,indicator,overlap", "elm");
+ evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(eo, conform);
+ evas_object_show(conform);
+ ad->win_conformant = conform;
+
+ }
+
+ return eo;
+}
+
+static Evas_Object *__callui_create_base_layout(callui_app_data_t *ad)
+{
+ dbg("..");
+ CALLUI_RETURN_VALUE_IF_FAIL(ad, NULL);
+ Evas_Object *ly = NULL;
+
+ ly = elm_layout_add(ad->win_conformant);
+ if (ly == NULL) {
+ err("ly is NULL");
+ return NULL;
+ }
+
+ elm_layout_theme_set(ly, "layout", "application", "default");
+ evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(ly);
+
+ return ly;
+}
+
+static void __callui_app_text_classes_set()
+{
+ edje_text_class_set("ATO001", "R", 40);
+ edje_text_class_set("ATO002", "R", 64);
+ edje_text_class_set("ATO003", "R", 40);
+ edje_text_class_set("ATO004", "R", 24);
+ edje_text_class_set("ATO005", "R", 24);
+ edje_text_class_set("ATO006", "R", 24);
+ edje_text_class_set("ATO007", "R", 24);
+ edje_text_class_set("ATO008", "R", 24);
+ edje_text_class_set("ATO010", "R", 30);
+ edje_text_class_set("ATO011", "R", 30);
+ edje_text_class_set("ATO012", "R", 30);
+ edje_text_class_set("ATO013", "R", 30);
+ edje_text_class_set("ATO014", "R", 30);
+ edje_text_class_set("ATO016", "R", 24);
+ edje_text_class_set("ATO017", "R", 24);
+ edje_text_class_set("ATO027", "R", 26);
+ edje_text_class_set("ATO028", "R", 24);
+ edje_text_class_set("ATO030", "R", 42);
+ edje_text_class_set("ATO017", "R", 30);
+}
+
+static bool _callui_app_create(void *data)
+{
+ dbg("..");
+ callui_app_data_t *ad = data;
+ int ret = 0;
+
+ _callui_common_dvc_control_lcd_state(LCD_OFF_SLEEP_LOCK);
+
+ elm_config_preferred_engine_set("opengl_x11");
+ ret = __callui_init(ad);
+ if (!ret) {
+ err("__callui_init failed");
+ elm_exit();
+ return FALSE;
+ }
+
+ _callui_app_create_layout(ad);
+
+ elm_theme_extension_add(NULL, CALL_THEME);
+ elm_theme_extension_add(NULL, CALL_GENLIST_THEME);
+
+
+#ifdef _CALLUI_SIGNAL_HANDLER
+ __callui_register_sigsegv_handler();
+ atexit(__callui_exit_handler);
+#endif
+
+ return true;
+}
+
+static bool _callui_app_create_layout(void *data)
+{
+ callui_app_data_t *ad = data;
+
+ /* Set base scale */
+ elm_app_base_scale_set(2.6);
+
+ ad->win = __callui_create_main_win(ad);
+ if (ad->win == NULL) {
+ err("__callui_create_main_win failed");
+ return FALSE;
+ }
+ ad->main_ly = __callui_create_base_layout(ad);
+ if (ad->main_ly == NULL) {
+ err("__callui_create_base_layout failed");
+ return FALSE;
+ }
+ elm_object_content_set(ad->win_conformant, ad->main_ly);
+
+ __callui_app_text_classes_set();
+
+ ad->evas = evas_object_evas_get(ad->win);
+ __callui_app_win_key_grab(ad);
+
+ ad->quickpanel_scroll_state = ecore_x_atom_get("_E_MOVE_PANEL_SCROLLABLE_STATE");
+ return true;
+}
+
+
+static void __callui_bt_deinit()
+{
+ int ret = BT_ERROR_NONE;
+ ret = bt_deinitialize();
+ if (BT_ERROR_NONE != ret) {
+ err("bt_deinit() failed [%d]", ret);
+ return;
+ }
+}
+
+
+static void _callui_app_terminate(void *data)
+{
+ callui_app_data_t *ad = data;
+ Evas_Object *contents = NULL;
+ Evas_Object *caller_info = NULL;
+ Evas_Object *btn_ly = NULL;
+
+ contents = elm_object_part_content_get(ad->main_ly, "elm.swallow.content");
+ if (contents) {
+ caller_info = elm_object_part_content_get(contents, "caller_info");
+ if (caller_info) {
+ evas_object_del(caller_info);
+ caller_info = NULL;
+ }
+
+ btn_ly = elm_object_part_content_get(contents, "btn_region");
+ if (btn_ly) {
+ evas_object_del(btn_ly);
+ btn_ly = NULL;
+ }
+
+ evas_object_del(contents);
+ contents = NULL;
+ }
+
+ if (ad->downkey_handler) {
+ ecore_event_handler_del(ad->downkey_handler);
+ ad->downkey_handler = NULL;
+ }
+ if (ad->upkey_handler) {
+ ecore_event_handler_del(ad->upkey_handler);
+ ad->upkey_handler = NULL;
+ }
+
+ if (ecore_x_display_get() && elm_win_xwindow_get(ad->win)) {
+ utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_SELECT);
+ utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_POWER);
+ utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_MEDIA);
+ }
+
+ if (ad->main_ly) {
+ evas_object_del(ad->main_ly);
+ ad->main_ly = NULL;
+ }
+
+ __callui_bt_deinit();
+
+ cm_unset_audio_state_changed_cb(ad->cm_handle);
+ cm_unset_call_event_cb(ad->cm_handle);
+}
+
+static void _callui_app_pause(void *data)
+{
+ dbg("..");
+}
+
+static void _callui_app_resume(void *data)
+{
+ dbg("..");
+ _callui_common_set_quickpanel_scrollable(EINA_TRUE);
+}
+
+static void _callui_app_service(app_control_h app_control, void *data)
+{
+ dbg("..");
+ callui_app_data_t *ad = data;
+ char *tmp = NULL;
+ int ret = 0;
+ unsigned int call_id = -1;
+ char *uri_bundle = NULL;
+ char *operation = NULL;
+
+ if (_callvm_get_top_view_id(ad->view_manager_handle) == -1) {
+ err("view_manager_handle->viewtop -1 ");
+ __callui_call_list_init(ad);
+ _callui_common_dvc_control_lcd_state(LCD_OFF_SLEEP_LOCK);
+ }
+
+ evas_object_color_set(ad->bg, 255, 255, 255, 255);
+
+ ret = app_control_get_operation(app_control, &operation);
+ CALLUI_RETURN_IF_FAIL(ret == APP_CONTROL_ERROR_NONE);
+ CALLUI_RETURN_IF_FAIL(operation != NULL);
+
+
+ ret = app_control_get_uri(app_control, &uri_bundle);
+ CALLUI_RETURN_IF_FAIL(ret == APP_CONTROL_ERROR_NONE);
+
+ sec_warn("uri_bundle: [%s]", uri_bundle);
+ if ((strcmp(operation, APP_CONTROL_OPERATION_CALL) == 0) &&
+ (strncmp(uri_bundle, "tel:", 4) == 0)) {
+ if ((strncmp(uri_bundle, "tel:MT", 6) == 0)) {
+ _callui_common_dvc_control_lcd_state(LCD_ON_LOCK);
+ ret = app_control_get_extra_data(app_control, "handle", &tmp);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ err("app_control_get_extra_data failed");
+ }
+ if (tmp) {
+ dbg("handle: [%s]", tmp);
+ call_id = atoi(tmp);
+ g_free(tmp);
+ tmp = NULL;
+ } else {
+ err("handle val is NULL");
+ return;
+ }
+ ret = app_control_get_extra_data(app_control, "sim_slot", &tmp);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ err("app_control_get_extra_data failed");
+ }
+ if (tmp) {
+ dbg("sim_slot: [%s]", tmp);
+ ad->sim_slot = atoi(tmp);
+ g_free(tmp);
+ tmp = NULL;
+ }
+ __callui_process_incoming_call(ad, call_id);
+ } else {
+ tmp = (char *)uri_bundle + 4;
+ sec_dbg("number: [%s]", tmp);
+ if (tmp) {
+ sec_dbg("number: [%s]", tmp);
+ if (!ad->main_ly) {
+ _callui_app_create_layout(ad);
+ }
+ evas_object_resize(ad->win, ad->root_w, ad->root_h);
+ __callui_process_outgoing_call(ad, tmp);
+ } else {
+ err("number val is NULL");
+ }
+ }
+ } else if (strcmp(operation, APP_CONTROL_OPERATION_DEFAULT) == 0) {
+ if (!ad->main_ly) {
+ _callui_app_create_layout(ad);
+ }
+ __callui_process_incoming_call(ad, call_id);
+ } else if (strcmp(operation, APP_CONTROL_OPERATION_DURING_CALL) == 0) {
+ if (!ad->main_ly) {
+ _callui_app_create_layout(ad);
+ }
+ ret = cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_NORMAL);
+ } else if (strcmp(operation, APP_CONTROL_OPERATION_MESSAGE_REJECT) == 0) {
+ /* TODO Implement reject with message button functionality */
+ } else if (strcmp(operation, APP_CONTROL_OPERATION_END_CALL) == 0) {
+ cm_reject_call(ad->cm_handle);
+ }
+
+ if (operation) {
+ g_free(operation);
+ operation = NULL;
+ }
+
+ if (uri_bundle) {
+ g_free(uri_bundle);
+ uri_bundle = NULL;
+ }
+
+}
+
+callui_app_data_t *_callui_get_app_data()
+{
+ return &g_ad;
+}
+
+
+CALLUI_EXPORT_API int main(int argc, char *argv[])
+{
+ dbg("..");
+ ui_app_lifecycle_callback_s event_callback = {0,};
+
+ event_callback.create = _callui_app_create;
+ event_callback.terminate = _callui_app_terminate;
+ event_callback.pause = _callui_app_pause;
+ event_callback.resume = _callui_app_resume;
+ event_callback.app_control = _callui_app_service;
+
+ memset(&g_ad, 0x0, sizeof(callui_app_data_t));
+
+ int ret = APP_ERROR_NONE;
+
+ ret = ui_app_main(argc, argv, &event_callback, &g_ad);
+ if (ret != APP_ERROR_NONE) {
+ err("ui_app_main() is failed. err = %d", ret);
+ }
+
+ return ret;
+}
+
+
+static Eina_Bool __callui_app_win_hard_key_up_cb(void *data, int type, void *event)
+{
+ dbg("..");
+ gboolean bpowerkey_enabled = EINA_FALSE;
+ gboolean banswering_enabled = EINA_FALSE;
+
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ Ecore_Event_Key *ev = event;
+
+ if (ev == NULL) {
+ err("ERROR!!! ========= Event is NULL!!!");
+ return 0;
+ }
+
+ if (elm_win_xwindow_get(ad->win) != ev->event_window) {
+ err("Event window is not main window. Ignore event");
+ return EINA_FALSE;
+ }
+
+ dbg("Top view(%d)", _callvm_get_top_view_id(ad->view_manager_handle));
+
+ /*power key case */
+ if (!strcmp(ev->keyname, CALLUI_KEY_POWER)) {
+ dbg("in keypower");
+ bpowerkey_enabled = _callui_common_is_powerkey_mode_on();
+ dbg("[KEY]KEY_POWER pressed, bpowerkey_enabled(%d)", bpowerkey_enabled);
+ if (bpowerkey_enabled == EINA_TRUE) {
+ if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_DIALLING_VIEW) {
+ if (ad->active)
+ cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_BY_CALL_HANDLE);
+ } else if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCOMING_LOCK_VIEW) {
+ /* ToDo: Stop Incoming ringtone alert to be implemented*/
+ } else if ((_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCALL_ONECALL_VIEW)
+ || (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCALL_MULTICALL_CONF_VIEW)
+ || (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCALL_MULTICALL_LIST_VIEW)) {
+ if (ad->active)
+ cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_ALL_CALLS);
+ else if (ad->held)
+ cm_end_call(ad->cm_handle, ad->held->call_id, CALL_RELEASE_TYPE_ALL_CALLS);
+ } else if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCALL_MULTICALL_SPLIT_VIEW) {
+ if (ad->active)
+ cm_end_call(ad->cm_handle, ad->active->call_id, CALL_RELEASE_TYPE_ALL_ACTIVE_CALLS);
+ } else {
+ dbg("nothing...");
+ }
+ } else {
+ if (ad->incom && !ad->active && !ad->held) {
+ _callvm_view_change(VIEW_INCOMING_LOCK_VIEW, 0, NULL, ad);
+ }
+ /* ToDo: Stop Incoming ringtone alert to be implemented*/
+ /*
+ if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCOMING_LOCK_VIEW) {
+ vcall_engine_stop_alert();
+ ad->bmute_ringtone = EINA_TRUE;
+ }
+ if ((TRUE == _vcui_is_security_lock()) || (_vcui_get_idle_lock_type() != CALL_UNLOCK)) {
+ Ecore_X_Window focus_win = ecore_x_window_focus_get();
+ if (ad->win_main!= NULL && focus_win == elm_win_xwindow_get(ad->win_main)) {
+ _vcui_app_win_set_noti_type(EINA_TRUE);
+ _vcui_view_common_set_quickpanel_scrollable(EINA_FALSE);
+ }
+ }*/
+ }
+ } else if (!strcmp(ev->keyname, CALLUI_KEY_MEDIA)) {
+ /* todo*/
+ dbg("in key-media");
+ } else if (!strcmp(ev->keyname, CALLUI_KEY_VOLUMEUP) || !strcmp(ev->keyname, CALLUI_KEY_VOLUMEDOWN)) {
+ dbg("Handle Volume Up or Down key");
+ if (ad->incom) {
+ cm_stop_alert(ad->cm_handle);
+ }
+ } else if (!strcmp(ev->keyname, CALLUI_KEY_SELECT) || !strcmp(ev->keyname, CALLUI_KEY_HOME)) {
+ dbg("in KEY_SELECT");
+ int result = 0;
+ Ecore_X_Window focus_win = ecore_x_window_focus_get();
+ result = utilx_ungrab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_SELECT);
+ if (result) {
+ dbg("KEY_SELECT key ungrab failed");
+ } else {
+ dbg("KEY_SELECT key ungrab success");
+ }
+ if (_callvm_get_top_view_id(ad->view_manager_handle) == VIEW_INCOMING_LOCK_VIEW) {
+ banswering_enabled = _callui_common_is_answering_mode_on();
+ if (banswering_enabled == EINA_TRUE) {
+ int unhold_call_count = 0;
+ if (ad->active) {
+ unhold_call_count = ad->active->member_count;
+ }
+ dbg("Answering mode on and Home key pressed on MT screen");
+
+ if (unhold_call_count == 0) {
+ dbg("No Call Or Held call - Accept");
+ cm_answer_call(ad->cm_handle, CALL_ANSWER_TYPE_NORMAL);
+ if (_callui_common_get_idle_lock_type() == LOCK_TYPE_SWIPE_LOCK)
+ _callui_common_unlock_swipe_lock();
+ } else if (ad->second_call_popup == NULL) {
+ dbg("Show popup - 2nd MT call - test volume popup");
+ _callui_load_second_call_popup(ad);
+ }
+ } else {
+ int result = 0;
+ /* Grab home key event to keep incoming call view */
+ result = utilx_grab_key(ecore_x_display_get(), elm_win_xwindow_get(ad->win), CALLUI_KEY_SELECT, TOP_POSITION_GRAB);
+ if (result) {
+ dbg("KEY_SELECT key ungrab failed");
+ }
+ }
+
+ } else {
+ if (ad->win != NULL && focus_win == elm_win_xwindow_get(ad->win)) {
+ /* ToDo: Use lock-screen interface to raise the home screen */
+ _callui_common_win_set_noti_type(ad, EINA_FALSE);
+ /* todo: once quickpanel is implemented we have to enable this
+ _vcui_view_common_set_quickpanel_scrollable(EINA_TRUE);
+ */
+ }
+ }
+ } else if (!strcmp(ev->keyname, KEY_BACK)) {
+ /* todo*/
+ dbg("KEY_BACK section");
+ }
+
+
+ ad->b_earset_key_longpress = EINA_FALSE;
+
+ if (ad->earset_key_longpress_timer) {
+ ecore_timer_del(ad->earset_key_longpress_timer);
+ ad->earset_key_longpress_timer = NULL;
+ }
+
+ return EINA_FALSE;
+}
+
+static Eina_Bool __callui_app_win_earset_key_longpress_timer_cb(void *data)
+{
+ dbg("..");
+
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+
+ ad->b_earset_key_longpress = EINA_TRUE;
+ ad->earset_key_longpress_timer = NULL;
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static Eina_Bool __callui_app_win_hard_key_down_cb(void *data, int type, void *event)
+{
+ dbg("..");
+
+ callui_app_data_t *ad = (callui_app_data_t *)data;
+ Ecore_Event_Key *ev = event;
+
+ if (ev == NULL) {
+ err("ERROR!!! ========= Event is NULL!!!");
+ return EINA_FALSE;
+ }
+
+ if (elm_win_xwindow_get(ad->win) != ev->event_window) {
+ err("Event window is not main window. Ignore event");
+ return EINA_FALSE;
+ }
+
+ if (_callvm_get_top_view_id(ad->view_manager_handle) == -1) {
+ dbg("ad->view_top is -1.");
+ return EINA_FALSE;
+ }
+
+ if (!strcmp(ev->keyname, CALLUI_KEY_MEDIA)) {
+ ad->earset_key_longpress_timer = ecore_timer_add(EARSET_KEY_LONG_PRESS_TIMEOUT, __callui_app_win_earset_key_longpress_timer_cb, ad);
+ } else if (!strcmp(ev->keyname, CALLUI_KEY_SELECT)) {
+ /*todo*/
+ } else if (!strcmp(ev->keyname, KEY_CANCEL)) {
+ /*todo*/
+ }
+ dbg("End..");
+ return EINA_FALSE;
+}