Merge 2.4 28/42328/1 submit/tizen_mobile/20150626.091123
authorjunkyu.han <junkyu.han@samsung.com>
Fri, 26 Jun 2015 00:29:33 +0000 (09:29 +0900)
committerjunkyu.han <junkyu.han@samsung.com>
Fri, 26 Jun 2015 01:03:29 +0000 (10:03 +0900)
Change-Id: If59c75c9c8f5b498f9167815fa147c3a469029ee

118 files changed:
AUTHORS
CMakeLists.txt [changed mode: 0644->0755]
LICENSE [new file with mode: 0755]
LICENSE.Flora [deleted file]
NOTICE [changed mode: 0755->0644]
data/CMakeLists.txt
data/images/private/00_divider_line.png [deleted file]
data/images/private/00_popup_bg.png [deleted file]
data/images/private/00_progress_bar.png [deleted file]
data/images/private/00_progress_bg.png [deleted file]
data/images/private/00_slider_handle.png [deleted file]
data/images/private/00_slider_handle_dim.png [deleted file]
data/images/private/00_slider_handle_press.png [deleted file]
data/images/private/00_volume_icon.png [deleted file]
data/images/private/00_volume_icon_Mute.png [deleted file]
data/images/private/00_volume_icon_Vibrat.png [deleted file]
data/images/private/00_volume_icon_headphone.png [deleted file]
data/images/private/00_volume_icon_media.png [deleted file]
data/images/public/00_volume_icon_settings.png
data/images/public/00_volume_icon_settings_disabled.png [moved from data/images/private/00_volume_icon_Call.png with 61% similarity]
data/images/public/00_volume_icon_settings_pressed.png
data/volume_app.edc
debian/changelog [deleted file]
debian/compat [deleted file]
debian/control [deleted file]
debian/org.tizen.volume.install.in [deleted file]
debian/rules [deleted file]
include/_util_efl.h [new file with mode: 0755]
include/_util_log.h [moved from src/_util_log.h with 60% similarity]
include/bt.h [new file with mode: 0644]
include/control.h [new file with mode: 0755]
include/key_event.h [new file with mode: 0755]
include/main.h [new file with mode: 0755]
include/sound.h [new file with mode: 0755]
include/timer.h [new file with mode: 0755]
include/view.h [new file with mode: 0755]
include/x_event.h [new file with mode: 0755]
org.tizen.volume.efl [new file with mode: 0644]
org.tizen.volume.manifest [new file with mode: 0755]
org.tizen.volume.png
org.tizen.volume.xml
packaging/org.tizen.volume.manifest [deleted file]
packaging/org.tizen.volume.spec
po/CMakeLists.txt
po/ar.po
po/az.po
po/bg.po
po/ca.po
po/cs.po
po/da.po
po/de.po [new file with mode: 0644]
po/de_DE.po
po/el_GR.po
po/en.po
po/en_PH.po
po/en_US.po
po/es_ES.po
po/es_MX.po [new file with mode: 0644]
po/es_US.po
po/et.po
po/eu.po
po/fi.po
po/fr.po [new file with mode: 0644]
po/fr_CA.po
po/fr_FR.po
po/ga.po
po/gl.po
po/hi.po
po/hr.po
po/hu.po
po/hy.po
po/is.po
po/it_IT.po
po/ja_JP.po
po/ka.po
po/kk.po
po/ko_KR.po
po/lt.po
po/lv.po
po/mk.po
po/mn_MN.po [new file with mode: 0644]
po/nb.po
po/nl.po [new file with mode: 0644]
po/nl_NL.po
po/pl.po
po/pt_BR.po
po/pt_PT.po
po/ro.po
po/ru_RU.po
po/sk.po
po/sl.po
po/sr.po
po/sv.po
po/tr_TR.po
po/uk.po
po/update-po.sh [changed mode: 0755->0644]
po/uz.po
po/zh_CN.po
po/zh_HK.po
po/zh_SG.po
po/zh_TW.po
src/_logic.c [deleted file]
src/_logic.h [deleted file]
src/_sound.c [deleted file]
src/_sound.h [deleted file]
src/_util_efl.c [deleted file]
src/_util_efl.h [deleted file]
src/bt.c [new file with mode: 0644]
src/control.c [new file with mode: 0755]
src/format [deleted file]
src/key_event.c [new file with mode: 0755]
src/main.c [new file with mode: 0755]
src/sound.c [new file with mode: 0755]
src/timer.c [new file with mode: 0755]
src/view.c [new file with mode: 0755]
src/volume.c [deleted file]
src/volume.h [deleted file]
src/x_event.c [new file with mode: 0755]

diff --git a/AUTHORS b/AUTHORS
index 566bee7..59bb9da 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,2 +1,3 @@
-Hong Kwon <hhh.kwon at samsung dot com>
-Minho Kim <minho07.kim at samsung dot com>
+Junghyun Kim <jh1114.kim@samsung.com>
+Hong Kwon <hhh.kwon@samsung.com>
+MyungHo Ham <mh.ham@samsung.com>
old mode 100644 (file)
new mode 100755 (executable)
index e26d186..8a2c5cc
@@ -2,10 +2,14 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 PROJECT(volume C)
 
 SET(SRCS
-       src/volume.c
-       src/_util_efl.c
-       src/_logic.c
-       src/_sound.c
+       src/main.c
+       src/view.c
+       src/control.c
+       src/x_event.c
+       src/key_event.c
+       src/timer.c
+       src/sound.c
+       src/bt.c
 )
 
 SET(VENDOR "tizen")
@@ -14,8 +18,9 @@ SET(PKGNAME "org.${VENDOR}.${PACKAGE}")
 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
 SET(BINDIR "${PREFIX}/bin")
 SET(RESDIR "${PREFIX}/res")
+SET(DATADIR "/opt/usr/apps/com.${VENDOR}.${PACKAGE}/data")
 SET(LOCALEDIR "${RESDIR}/locale")
-SET(ICONDIR "${TZ_SYS_SHARE}/icons/default/small")
+SET(ICONDIR "/usr/share/icons/default/small")
 SET(IMAGEDIR "${RESDIR}/images/${PACKAGE}")
 SET(EDJDIR "${RESDIR}/edje")
 
@@ -24,37 +29,43 @@ IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
 
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
 
 INCLUDE(FindPkgConfig)
 pkg_check_modules(pkgs REQUIRED
+       capi-appfw-application
+       capi-appfw-app-manager
        appcore-efl
-       ecore-input
-       ecore-x
+#      ecore-x
        ecore
        evas
        edje
-       mm-sound
+       capi-media-sound-manager
+       capi-network-bluetooth
        vconf
-       utilX
+#      utilX
        syspopup
+       syspopup-caller
        bundle
-       svi
        feedback
-       glib-2.0
-       ui-gadget-1
        notification
-       capi-system-info
-       libtzplatform-config
+#      x11 xcomposite xext xi
 )
 
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
-SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_C_FLAGS_RELEASE "-O2")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE")
+SET(CMAKE_C_FLAGS_PROFILING "-O0 -g -pg -fPIE")
+SET(CMAKE_CXX_FLAGS_PROFILING "-O0 -std=c++0x -g -pg -fPIE")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fPIE")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -std=c++0x -g -fPIE")
+SET(CMAKE_C_FLAGS_RELEASE "-O2 -g -fPIE")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O2 std=c++0x -g -fPIE")
+SET(CMAKE_C_FLAGS_CCOV "-O2 -g --coverage -fPIE")
+SET(CMAKE_CXX_FLAGS_CCOV "-O2 std=c++0x -g --coverage -fPIE")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
 
 FIND_PROGRAM(UNAME NAMES uname)
 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
@@ -68,24 +79,22 @@ ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
 ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
 ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
 ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
 ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
 ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"")
 ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
 
-#SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
-SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
-
 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -lm)
 
 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
 
-
 # install desktop file & icon
 #CONFIGURE_FILE(${PKGNAME}.desktop.in ${CMAKE_BINARY_DIR}/${PKGNAME}.desktop)
 INSTALL(FILES ${CMAKE_BINARY_DIR}/${PKGNAME}.xml DESTINATION /usr/share/packages)
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.png DESTINATION ${ICONDIR})
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.efl DESTINATION /etc/smack/accesses.d)
 
 # data
 ADD_SUBDIRECTORY(data)
diff --git a/LICENSE b/LICENSE
new file mode 100755 (executable)
index 0000000..3d4a47d
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,204 @@
+Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+
+                                 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.
+
diff --git a/LICENSE.Flora b/LICENSE.Flora
deleted file mode 100755 (executable)
index 571fe79..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-Flora License
-
-Version 1.1, April, 2013
-
-http://floralicense.org/license/
-
-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.
-
-"Tizen Certified Platform" shall mean a software platform that complies
-with the standards set forth in the Tizen Compliance Specification
-and passes the Tizen Compliance Tests as defined from time to time
-by the Tizen Technical Steering Group and certified by the Tizen
-Association or its designated agent.
-
-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
-solely as incorporated into a Tizen Certified Platform, 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 solely
-as incorporated into a Tizen Certified Platform 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 pursuant to the copyright license
-above, in any medium, with or without modifications, and in Source or
-Object form, provided that You meet the following conditions:
-
-  1. You must give any other recipients of the Work or Derivative Works
-     a copy of this License; and
-  2. You must cause any modified files to carry prominent notices stating
-     that You changed the files; and
-  3. 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
-  4. 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
-     and your own copyright statement or terms and conditions do not conflict
-     the conditions stated in the License including section 3.
-
-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 Flora License to your work
-
-To apply the Flora 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 Flora License, Version 1.1 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://floralicense.org/license/
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
diff --git a/NOTICE b/NOTICE
old mode 100755 (executable)
new mode 100644 (file)
index db64ab0..717d8cf
--- a/NOTICE
+++ b/NOTICE
@@ -1,3 +1,2 @@
-Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
-Except as noted, this software is licensed under Flora License, Version 1.1
-Please, see the LICENSE file for Flora License, Version 1.1 terms and conditions.
+Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+
index 33e0974..c9a4189 100755 (executable)
@@ -2,9 +2,9 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
 # install edj
 ADD_CUSTOM_COMMAND(OUTPUT volume_app.edj
-               COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images/private
-               ${CMAKE_CURRENT_SOURCE_DIR}/volume_app.edc ${CMAKE_BINARY_DIR}/volume_app.edj
-               DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/volume_app.edc
+                COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images/private/volume
+                ${CMAKE_CURRENT_SOURCE_DIR}/volume_app.edc ${CMAKE_BINARY_DIR}/volume_app.edj
+                DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/volume_app.edc
 )
 
 ADD_CUSTOM_TARGET(edj_build DEPENDS volume_app.edj)
@@ -13,4 +13,3 @@ INSTALL(FILES ${CMAKE_BINARY_DIR}/volume_app.edj DESTINATION ${EDJDIR})
 
 # install images
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/images/public/ DESTINATION ${IMAGEDIR} FILES_MATCHING PATTERN "*.png")
-
diff --git a/data/images/private/00_divider_line.png b/data/images/private/00_divider_line.png
deleted file mode 100755 (executable)
index fa2f19e..0000000
Binary files a/data/images/private/00_divider_line.png and /dev/null differ
diff --git a/data/images/private/00_popup_bg.png b/data/images/private/00_popup_bg.png
deleted file mode 100755 (executable)
index 3a5ede1..0000000
Binary files a/data/images/private/00_popup_bg.png and /dev/null differ
diff --git a/data/images/private/00_progress_bar.png b/data/images/private/00_progress_bar.png
deleted file mode 100755 (executable)
index 5ca3aa2..0000000
Binary files a/data/images/private/00_progress_bar.png and /dev/null differ
diff --git a/data/images/private/00_progress_bg.png b/data/images/private/00_progress_bg.png
deleted file mode 100755 (executable)
index 1f4a0f4..0000000
Binary files a/data/images/private/00_progress_bg.png and /dev/null differ
diff --git a/data/images/private/00_slider_handle.png b/data/images/private/00_slider_handle.png
deleted file mode 100755 (executable)
index 6611247..0000000
Binary files a/data/images/private/00_slider_handle.png and /dev/null differ
diff --git a/data/images/private/00_slider_handle_dim.png b/data/images/private/00_slider_handle_dim.png
deleted file mode 100755 (executable)
index 4d8ebb6..0000000
Binary files a/data/images/private/00_slider_handle_dim.png and /dev/null differ
diff --git a/data/images/private/00_slider_handle_press.png b/data/images/private/00_slider_handle_press.png
deleted file mode 100755 (executable)
index 5b466a0..0000000
Binary files a/data/images/private/00_slider_handle_press.png and /dev/null differ
diff --git a/data/images/private/00_volume_icon.png b/data/images/private/00_volume_icon.png
deleted file mode 100755 (executable)
index 57a23a0..0000000
Binary files a/data/images/private/00_volume_icon.png and /dev/null differ
diff --git a/data/images/private/00_volume_icon_Mute.png b/data/images/private/00_volume_icon_Mute.png
deleted file mode 100755 (executable)
index e044860..0000000
Binary files a/data/images/private/00_volume_icon_Mute.png and /dev/null differ
diff --git a/data/images/private/00_volume_icon_Vibrat.png b/data/images/private/00_volume_icon_Vibrat.png
deleted file mode 100755 (executable)
index 19e34af..0000000
Binary files a/data/images/private/00_volume_icon_Vibrat.png and /dev/null differ
diff --git a/data/images/private/00_volume_icon_headphone.png b/data/images/private/00_volume_icon_headphone.png
deleted file mode 100755 (executable)
index 6da70b6..0000000
Binary files a/data/images/private/00_volume_icon_headphone.png and /dev/null differ
diff --git a/data/images/private/00_volume_icon_media.png b/data/images/private/00_volume_icon_media.png
deleted file mode 100755 (executable)
index b6f7795..0000000
Binary files a/data/images/private/00_volume_icon_media.png and /dev/null differ
index a3ec381..067f98d 100755 (executable)
Binary files a/data/images/public/00_volume_icon_settings.png and b/data/images/public/00_volume_icon_settings.png differ
similarity index 61%
rename from data/images/private/00_volume_icon_Call.png
rename to data/images/public/00_volume_icon_settings_disabled.png
index 20631f8..b9a76b4 100755 (executable)
Binary files a/data/images/private/00_volume_icon_Call.png and b/data/images/public/00_volume_icon_settings_disabled.png differ
index 1808e65..5780e17 100755 (executable)
Binary files a/data/images/public/00_volume_icon_settings_pressed.png and b/data/images/public/00_volume_icon_settings_pressed.png differ
index c4357c5..ad39a1e 100755 (executable)
 /*
- * org.tizen.volume
- * Copyright 2012  Samsung Electronics Co., Ltd
+ * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
  *
- * Licensed under the Flora License, Version 1.1 (the License);
+ * 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://floralicense.org/license/
+ * 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,
+ * 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.
  */
 
+/*                      ___________________________________________________________________________________________________________________________________
+|                      |                                                                                       |                                                                                       |                                                                               |
+|                      |                                                                                       |                                                                                       |                                                                                       |
+|                      |                       |*-----------------*|                   |                                                                                       |CONTENT    |*-----------------*| WIN           |
+|                      |                       |*                                 *|   CONTENT |                                                                                       |       RIGHT   |*                                 *| RIGTH             |
+|                      |                       |*                                 *|   LEFT    |                                                                                       | PADDING       |*                                 *| PADDING   |
+| LEFT         |WIN            |*   IC_SIZE       *|   PADDING |                                                                                       |                       |*              IC                 *|                   |
+| PADDING      |LEFT           |*                                 *|                   |                                       CONTENT                                 |                       |* SETTING                 *|                   |
+|                      |PADDING        |*                                 *|                   |                                       SIZE                                    |                       |*      (IC_SIZE)          *|                   |
+|                      |                       |*                                 *|                   |                                                                                       |                       |*                                 *|                   |
+|                      |                       |*                                 *|                   |                                                                                       |                       |*                                 *|                   |
+|                      |                       |*-----------------*|                   |                                                                                       |                       |*-----------------*|                   |
+|                      |                                                                                       |                                                                                       |                                                                                       |
+|                      |___________________________________________|___________________________________________|___________________________________________|
+*/
+
+
+/*
+* Helper sizes
+*/
+#define SCREEN_HEIGHT 800
+#define SCREEN_WIDTH 480
+
+#define SCREEN_HEIGHT_L 480
+#define SCREEN_WIDTH_L 800
+
+
+/**
+ * Values above should be modified if something will be changed in GUI
+ */
+#define WIN_HEIGHT 102
+#define WIN_WIDTH 456
+
+#define LEFT_PADDING 12
+#define RIGHT_PADDING 12
+#define TOP_PADDING 113
+
+#define WIN_LEFT_PADDING 24
+#define WIN_RIGHT_PADDING 26
+#define SETTING_RIGHT_PADDING 21
+
+#define IC_ICON_SIZE 42
+
+#define CONTENT_TOP_PADDING 28
+#define CONTENT_BOTTOM_PADDING CONTENT_TOP_PADDING
+#define CONTENT_LEFT_PADDING 26
+#define CONTENT_RIGHT_PADDING 26
+
+#define CONTENT_SLIDER_WIDTH 291
+#define CONTENT_SLIDER_WIDTH_L 600
+#define CONTENT_HEIGHT 46
+
+#define WARNING_POPUP_HEIGHT 222
+#define WARRNING_TEXT_TOP_PADDING 38
+#define WARRNING_TEXT_HEIGHT 128
+
+/**
+ * This parameters describes window size and position.
+ */
+#define WIN_X_MIN LEFT_PADDING/SCREEN_WIDTH
+#define WIN_X_MAX 1.0-(RIGHT_PADDING/SCREEN_WIDTH)
+#define WIN_Y_MIN TOP_PADDING/SCREEN_HEIGHT
+#define WIN_Y_MAX (TOP_PADDING+WIN_HEIGHT)/SCREEN_HEIGHT
+
+#define WIN_X_MIN_L LEFT_PADDING/SCREEN_WIDTH_L
+#define WIN_X_MAX_L 1.0-(RIGHT_PADDING/SCREEN_WIDTH_L)
+#define WIN_Y_MIN_L TOP_PADDING/SCREEN_HEIGHT_L
+#define WIN_Y_MAX_L (TOP_PADDING+WIN_HEIGHT)/SCREEN_HEIGHT_L
+
+#define WARRING_Y_MAX (TOP_PADDING+WARNING_POPUP_HEIGHT)/SCREEN_HEIGHT
+#define WARRING_Y_MAX_L (TOP_PADDING+WARNING_POPUP_HEIGHT)/SCREEN_HEIGHT_L
+
+/*
+* IC sound (Positioned to clipper)
+*/
+#define IC_SOUND_X_MIN (LEFT_PADDING+WIN_LEFT_PADDING)/SCREEN_WIDTH
+#define IC_SOUND_X_MAX (LEFT_PADDING+WIN_LEFT_PADDING+IC_ICON_SIZE)/SCREEN_WIDTH
+#define IC_SOUND_Y_MIN (CONTENT_TOP_PADDING+TOP_PADDING)/SCREEN_HEIGHT
+#define IC_SOUND_Y_MAX (CONTENT_TOP_PADDING+IC_ICON_SIZE+TOP_PADDING)/SCREEN_HEIGHT
+
+#define IC_SOUND_X_MIN_L (LEFT_PADDING+WIN_LEFT_PADDING)/SCREEN_WIDTH_L
+#define IC_SOUND_X_MAX_L (LEFT_PADDING+WIN_LEFT_PADDING+IC_ICON_SIZE)/SCREEN_WIDTH_L
+#define IC_SOUND_Y_MIN_L (CONTENT_TOP_PADDING+TOP_PADDING)/SCREEN_HEIGHT_L
+#define IC_SOUND_Y_MAX_L (CONTENT_TOP_PADDING+IC_ICON_SIZE+TOP_PADDING)/SCREEN_HEIGHT_L
+
+/*
+* IC setting (Positioned to clipper)
+*/
+#define IC_SETTING_X_MIN 1.0-(SETTING_RIGHT_PADDING+IC_ICON_SIZE+RIGHT_PADDING)/SCREEN_WIDTH
+#define IC_SETTING_X_MAX 1.0-((SETTING_RIGHT_PADDING+RIGHT_PADDING)/SCREEN_WIDTH)
+#define IC_SETTING_Y_MIN (CONTENT_TOP_PADDING+TOP_PADDING)/SCREEN_HEIGHT
+#define IC_SETTING_Y_MAX (CONTENT_TOP_PADDING+IC_ICON_SIZE+TOP_PADDING)/SCREEN_HEIGHT
+
+#define IC_SETTING_X_MIN_L 1.0-(SETTING_RIGHT_PADDING+IC_ICON_SIZE+RIGHT_PADDING)/SCREEN_WIDTH_L
+#define IC_SETTING_X_MAX_L 1.0-((SETTING_RIGHT_PADDING+RIGHT_PADDING)/SCREEN_WIDTH_L)
+#define IC_SETTING_Y_MIN_L (CONTENT_TOP_PADDING+TOP_PADDING)/SCREEN_HEIGHT_L
+#define IC_SETTING_Y_MAX_L (CONTENT_TOP_PADDING+IC_ICON_SIZE+TOP_PADDING)/SCREEN_HEIGHT_L
+
+/*
+* Content swallow (Positioned to clipper)
+*/
+#define IC_CONTENT_X_MIN (WIN_LEFT_PADDING+IC_ICON_SIZE+4+LEFT_PADDING)/SCREEN_WIDTH
+#define IC_CONTENT_X_MAX (WIN_LEFT_PADDING+IC_ICON_SIZE+CONTENT_SLIDER_WIDTH+4+LEFT_PADDING)/SCREEN_WIDTH
+#define IC_CONTENT_Y_MIN (CONTENT_TOP_PADDING+TOP_PADDING)/SCREEN_HEIGHT
+#define IC_CONTENT_Y_MAX (CONTENT_HEIGHT+CONTENT_TOP_PADDING+TOP_PADDING)/SCREEN_HEIGHT
+
+#define IC_CONTENT_X_MIN_L (WIN_LEFT_PADDING+IC_ICON_SIZE+4+LEFT_PADDING)/SCREEN_WIDTH_L
+#define IC_CONTENT_X_MAX_L (WIN_LEFT_PADDING+IC_ICON_SIZE+CONTENT_SLIDER_WIDTH_L+4+LEFT_PADDING)/SCREEN_WIDTH_L
+#define IC_CONTENT_Y_MIN_L (CONTENT_TOP_PADDING+TOP_PADDING)/SCREEN_HEIGHT_L
+#define IC_CONTENT_Y_MAX_L (CONTENT_HEIGHT+CONTENT_TOP_PADDING+TOP_PADDING)/SCREEN_HEIGHT_L
+
+/**
+ * Divider line
+ */
+#define DIVIDER_X_MIN 386/SCREEN_WIDTH
+#define DIVIDER_X_MAX 388/SCREEN_WIDTH
+#define DIVIDER_Y_MIN (TOP_PADDING+CONTENT_TOP_PADDING)/SCREEN_HEIGHT
+#define DIVIDER_Y_MAX (TOP_PADDING+CONTENT_TOP_PADDING+CONTENT_HEIGHT)/SCREEN_HEIGHT
+
+#define DIVIDER_X_MIN_L IC_CONTENT_X_MAX_L+15/SCREEN_WIDTH_L
+#define DIVIDER_X_MAX_L IC_CONTENT_X_MAX_L+17/SCREEN_WIDTH_L
+#define DIVIDER_Y_MIN_L (TOP_PADDING+CONTENT_TOP_PADDING)/SCREEN_HEIGHT_L
+#define DIVIDER_Y_MAX_L (TOP_PADDING+CONTENT_TOP_PADDING+CONTENT_HEIGHT)/SCREEN_HEIGHT_L
+
+/**
+ * Warnign text
+ */
+#define WARRNING_TEXT_X_MIN (LEFT_PADDING+WIN_LEFT_PADDING)/SCREEN_WIDTH
+#define WARRNING_TEXT_X_MAX 1.0-(RIGHT_PADDING+WIN_RIGHT_PADDING)/SCREEN_HEIGHT
+#define WARRNING_TEXT_Y_MIN (TOP_PADDING+WARRNING_TEXT_TOP_PADDING+CONTENT_TOP_PADDING+CONTENT_HEIGHT)/SCREEN_HEIGHT
+#define WARRNING_TEXT_Y_MAX (TOP_PADDING+WARRNING_TEXT_TOP_PADDING+CONTENT_TOP_PADDING+WARRNING_TEXT_HEIGHT)/SCREEN_HEIGHT
+
+#define WARRNING_TEXT_X_MIN_L (LEFT_PADDING+WIN_LEFT_PADDING)/SCREEN_WIDTH_L
+#define WARRNING_TEXT_X_MAX_L 1.0-(RIGHT_PADDING+WIN_RIGHT_PADDING)/SCREEN_WIDTH_L
+#define WARRNING_TEXT_Y_MIN_L (TOP_PADDING+WARRNING_TEXT_TOP_PADDING+CONTENT_TOP_PADDING+CONTENT_HEIGHT)/SCREEN_HEIGHT_L
+#define WARRNING_TEXT_Y_MAX_L (TOP_PADDING+WARRNING_TEXT_TOP_PADDING+CONTENT_TOP_PADDING+WARRNING_TEXT_HEIGHT)/SCREEN_HEIGHT_L
+
+
 #define RESOURCE_IMAGE( FILE_NAME ) \
        group { \
                name : FILE_NAME; \
                                        image.normal : FILE_NAME; \
                                        aspect : 1 1; \
                                        aspect_preference : BOTH; \
+                                       color_class: "W0661"; \
+                               } \
+                       } \
+               } \
+       }
+
+#define RESOURCE_IMAGE_DIM( FILE_NAME ) \
+       group { \
+               name : FILE_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; \
+                                       color_class: "W0661D"; \
+                               } \
+                       } \
+               } \
+       }
+
+#define RESOURCE_IMAGE_PRESS( FILE_NAME ) \
+       group { \
+               name : FILE_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; \
+                                       color_class: "B0563L1P"; \
                                } \
                        } \
                } \
 collections {
 
 RESOURCE_IMAGE("00_volume_icon.png");
-RESOURCE_IMAGE("00_volume_icon_Call.png");
-RESOURCE_IMAGE("00_volume_icon_Mute.png");
-RESOURCE_IMAGE("00_volume_icon_Vibrat.png");
+RESOURCE_IMAGE("00_volume_icon_call.png");
+RESOURCE_IMAGE("00_volume_icon_mute.png");
+RESOURCE_IMAGE("00_volume_icon_vibrat.png");
 RESOURCE_IMAGE("00_volume_icon_headphone.png");
 RESOURCE_IMAGE("00_volume_icon_media.png");
+RESOURCE_IMAGE("00_volume_icon_notification.png");
+RESOURCE_IMAGE("00_volume_icon_notification_vibrate.png");
+RESOURCE_IMAGE("00_volume_icon_notification_mute.png");
+RESOURCE_IMAGE_DIM("00_volume_icon_settings_disabled.png");
+RESOURCE_IMAGE("00_volume_icon_settings.png");
+RESOURCE_IMAGE_PRESS("00_volume_icon_settings_pressed.png");
 
+       group {
+               name : "volume_layout";
+               images {
+                       image: "00_popup_bubble_bg.#.png" COMP;
+               }
+               styles {
+                       style {
+                               name: "textblock_style";
+                               base: "font=Tizen font_size=24 align=left color=#000000 wrap=mixed";
+                       }
+               }
+               parts{
+                       part {
+                               name : "clipper";
+                               type : RECT;
 
-group { name: "popup_volumebar";
-   images {
-      image: "00_divider_line.png" COMP;
-   }
-   parts {
-      part { name:"bg";
-         type: RECT;
-         scale : 1;
-         description { state: "default" 0.0;
-            min: 668 134;
-            align: 0.5 0.5;
-            fixed: 1 1;
-            visible: 0;
-            rel1 { relative: 0.5 0.5; offset: 0 -10; }
-            rel2 { relative: 0.5 0.5; offset: 0 -10; }
-         }
-      }
-      part { name: "pad_l";
-         type: RECT;
-         scale: 1;
-         description { state: "default" 0.0;
-            min : 0 20;
-            max : 0 20;
-            fixed: 1 1;
-            rel1.to: "bg";
-            rel2.to: "bg";
-            visible: 0;
-            align: 0.0 0.0;
-         }
-      }
-      part { name: "pad_r";
-         type: RECT;
-         scale: 1;
-         description { state: "default" 0.0;
-            min : 0 20;
-            max : 0 20;
-            fixed: 1 1;
-            rel1.to: "bg";
-            rel2.to: "bg";
-            visible: 0;
-            align: 1.0 1.0;
-         }
-      }
-      part { name: "elm.swallow.content";
-         type: SWALLOW;
-         scale: 1;
-         description { state: "default" 0.0;
-            min : 568 134;
-             fixed: 1 1;
-            rel1 {
-               relative: 1.0 0.5;
-               to_x: "pad_l";
-               to_y: "bg";
-            }
-            rel2 {
-               relative: 0.0 0.5;
-               to_x: "pad_after_content";
-               to_y: "bg";
-            }
-            align: 0.5 0.5;
-         }
-      }
-      part { name: "pad_after_content";
-         type: RECT;
-         scale: 1;
-         description { state: "default" 0.0;
-            min: 16 0;
-            fixed: 1 0;
-            rel1 {
-               relative: 0.0 0.5;
-               to_x: "divider";
-               to_y: "bg";
-            }
-            rel2 {
-               relative: 0.0 0.5;
-               to_x: "divider";
-               to_y: "bg";
-            }
-            align: 1.0 0.5;
-            visible: 0;
-         }
-      }
-      part { name: "divider";
-         scale: 1;
-         description { state: "default" 0.0;
-            min: 4 18;
-            max: 4 99999;
-            fixed: 1 1;
-            rel1 {
-               relative: 0.0 1.0;
-               to_x: "pad_after_divider";
-               to_y: "pad_l";
-            }
-            rel2 {
-               relative: 0.0 0.0;
-               to_x: "pad_after_divider";
-               to_y: "pad_r";
-            }
-            image.normal: "00_divider_line.png";
-            align: 1.0 0.5;
-         }
-      }
-      part { name: "pad_after_divider";
-         type: RECT;
-         scale: 1;
-         description { state: "default" 0.0;
-            min: 16 0;
-            max: 16 0;
-            fixed: 1 1;
-            visible: 0;
-            rel1 {
-               relative: 0.0 0.5;
-               to_x: "elm.swallow.icon";
-               to_y: "bg";
-            }
-            rel2 {
-               relative: 0.0 0.5;
-               to_x: "elm.swallow.icon";
-               to_y: "bg";
-            }
-            align: 1.0 0.5;
-         }
-      }
-      part { name: "elm.swallow.icon";
-         type: SWALLOW;
-         scale: 1;
-         description { state: "default" 0.0;
-            min: 64 64;
-            max: 64 64;
-            fixed: 1 1;
-            rel1 {
-               relative: 0.0 0.5;
-               to_x: "pad_r";
-               to_y: "bg";
-            }
-            rel2 {
-               relative: 0.0 0.5;
-               to_x: "pad_r";
-               to_y: "bg";
-            }
-            align: 1.0 0.5;
-         }
-      }
-   }
-}
+                               description {
+                                       state : "default" 0.0;
+                               }
+                               description{
+                                       state : "transit" 0.0;
+                                       color: 0 0 0 0;
+                               }
+                       }
 
-       group { name : "block_events";
-               parts{
-                       part { name : "blockevent";
+                       part {
+                               name : "bg";
                                type : RECT;
+                               clip_to: "clipper";
+                               scale: 1;
                                description {
+                                       state : "default" 0.0;
                                        color : 0 0 0 0;
+                                       rel1 {relative: WIN_X_MIN WIN_Y_MIN; to: "clipper";}
+                                       rel2 {relative: WIN_X_MAX WIN_Y_MAX; to: "clipper";}
+                               }
+                               description {
+                                       state: "portrait" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       rel1 {relative: WIN_X_MIN_L WIN_Y_MIN_L; to: "clipper";}
+                                       rel2 {relative: WIN_X_MAX_L WIN_Y_MAX_L; to: "clipper";}
+                               }
+                               description {
+                                       state: "warning_displayed" 0.0;
+                                       inherit: "default" 0.0;
+                                       color : 0 0 0 0;
+                                       rel2 {relative: WIN_X_MAX WARRING_Y_MAX; to: "clipper";}
+                               }
+                               description {
+                                       state: "warning_displayed_l" 0.0;
+                                       inherit: "default" 0.0;
+                                       color : 0 0 0 0;
+                                       rel1 {relative: WIN_X_MIN_L WIN_Y_MIN_L; to: "clipper";}
+                                       rel2 {relative: WIN_X_MAX_L WARRING_Y_MAX_L; to: "clipper";}
                                }
                        }
-               }
-               programs{
-                       program{
-                               name : "clicked";
-                               source : "blockevent";
-                               signal : "mouse,clicked,1";
-                               action : SIGNAL_EMIT "clicked" "*";
-                       }
-               }
-       }
-       /* END group "block_events" */
 
-       group { name : "volumeLayout";
-               images {
-               image: "00_popup_bg.png" COMP;
-               }
-               parts{
-                       part { name : "base";
+                       part {
+                               name : "popup_bg";
                                type : IMAGE;
+                               clip_to: "clipper";
+                               mouse_events : 0;
                                scale : 1;
-                               description { state: "default" 0.0;
-                                       image {
-                                               normal: "00_popup_bg.png";
-                                               border: 18 18 32 52;
-                                               border_scale: 1;
-                                       }
-                                       min: 720 182;
-                                       max: 720 1120;
-                                       align: 0.5 0.5;
+                               description {
+                                       state : "default" 0.0;
+                                       image.normal: "00_popup_bubble_bg.#.png";
+                                       rel1.to : "bg";
+                                       rel2.to : "bg";
+                               }
+                               description {
+                                       state : "portrait" 0.0;
+                                       image.normal: "00_popup_bubble_bg.#.png";
+                                       rel1.to : "bg";
+                                       rel2.to : "bg";
+                               }
+                               description {
+                                       state : "landscape" 0.0;
+                                       visible : 1;
+                                       image.normal: "00_popup_bubble_bg.#.png";
+                                       rel1.to : "bg";
+                                       rel2.to : "bg";
                                }
                        }
-                       part { name: "elm.swallow.content";
-                               type: SWALLOW;
+                       part {
+                               name : "ic_sound";
+                               type : SWALLOW;
+                               clip_to: "clipper";
+                               mouse_events : 0;
                                scale : 1;
-                               description { state: "default" 0.0;
-                                       min: 720 0;
-                                       fixed: 1 0;
-                                       rel1 {
-                                               relative: 0.5 0.0;
-                                               to: "base";
-                                       }
-                                       rel2 {
-                                               relative: 0.5 1.0;
-                                               to: "base";
-                                       }
+                               description {
+                                       state : "default" 0.0;
+                                       visible : 1;
+                                       fixed: 1 1;
+                                       rel1 { relative : IC_SOUND_X_MIN IC_SOUND_Y_MIN; to : "clipper";}
+                                       rel2 { relative : IC_SOUND_X_MAX IC_SOUND_Y_MAX; to : "clipper";}
+                               }
+                               description {
+                                       state: "portrait";
+                                       inherit: "default" 0.0;
                                }
+                               description {
+                                       state: "landscape";
+                                       inherit: "default" 0.0;
+                                       rel1 { relative : IC_SOUND_X_MIN_L IC_SOUND_Y_MIN_L; to : "clipper";}
+                                       rel2 { relative : IC_SOUND_X_MAX_L IC_SOUND_Y_MAX_L; to : "clipper";}
+                               }
+
                        }
-               }
-       }
-       /* END group "volumeLayout" */
 
-       group { name : "volumeLayoutContent";
-               parts{
-                       part { name : "pad_t";
-                               type : RECT;
+                       part {
+                               name : "ic_setting";
+                               type : SWALLOW;
+                               clip_to: "clipper";
+                               mouse_events : 1;
                                scale : 1;
+                               description {
+                                       state : "default" 0.0;
+                                       visible : 1;
+                                       fixed : 1 1;
+                                       rel1 { relative : IC_SETTING_X_MIN IC_SETTING_Y_MIN; to : "clipper";}
+                                       rel2 { relative : IC_SETTING_X_MAX IC_SETTING_Y_MAX; to : "clipper";}
+                               }
+                               description {
+                                       state: "portrait";
+                                       inherit: "default" 0.0;
+                               }
+                               description {
+                                       state: "landscape";
+                                       inherit: "default" 0.0;
+                                       rel1 { relative : IC_SETTING_X_MIN_L IC_SETTING_Y_MIN_L; to : "clipper";}
+                                       rel2 { relative : IC_SETTING_X_MAX_L IC_SETTING_Y_MAX_L; to : "clipper";}
+                               }
+                       }
+                       part {
+                               name : "divider";
+                               type : RECT;
+                               clip_to: "clipper";
                                mouse_events : 0;
-                               description { state: "default" 0.0;
-                                       align: 0.5 0.0;
-                                       min: 0 49;
-                                       fixed: 0 1;
-                                       visible: 0;
-                                       rel1 {
-                                               relative: 1.0 0.0;
-                                               to_x: "pad_l";
-                                       }
-                                       rel2 {
-                                               relative: 0.0 0.0;
-                                               to_x: "pad_r";
-                                       }
+                               scale : 1;
+                               description {
+                                       state : "default" 0.0;
+                                       color: 200 200 200 100;
+                                       visible : 1;
+                                       rel1 { relative : DIVIDER_X_MIN DIVIDER_Y_MIN; to : "clipper";}
+                                       rel2 { relative : DIVIDER_X_MAX DIVIDER_Y_MAX; to : "clipper";}
                                }
-                       } /* "pad_t" end */
-
-                       part { name : "pad_l";
-                               type: RECT;
-                               scale: 1;
-                               description { state: "default" 0.0;
-                                       min : 26 0;
-                                       fixed: 1 0;
-                                       rel2.relative: 0.0 1.0;
-                                       visible: 0;
-                                       align: 0.0 0.0;
+                               description {
+                                       state: "portrait";
+                                       inherit: "default" 0.0;
                                }
-                       } /* "pad_l" end */
-
-                       part { name: "pad_r";
-                               type: RECT;
-                               scale: 1;
-                               description { state: "default" 0.0;
-                                       min : 26 0;
-                                       fixed: 1 0;
-                                       rel1.relative: 1.0 0.0;
-                                       visible: 0;
-                                       align: 1.0 0.0;
+                               description {
+                                       state: "landscape";
+                                       inherit: "default" 0.0;
+                                       rel1 { relative : DIVIDER_X_MIN_L DIVIDER_Y_MIN_L; to : "clipper";}
+                                       rel2 { relative : DIVIDER_X_MAX_L DIVIDER_Y_MAX_L; to : "clipper";}
                                }
-                       } /* "pad_r" end */
-
-                       part{ name:"elm.swallow.content";
-                               type: SWALLOW;
+                       }
+                       part {
+                               name : "sw.slider";
+                               type : SWALLOW;
+                               clip_to: "clipper";
                                scale : 1;
-                               description { state: "default" 0.0;
-                                       min: 668 0;
-                                       fixed: 1 0;
-                                       rel1 {
-                                               relative: 0.5 1.0;
-                                               to: "pad_t";
-                                       }
-                                       rel2 {
-                                               relative: 0.5 0.0;
-                                               to: "pad_b";
-                                       }
+                               description {
+                                       state : "default" 0.0;
+                                       fixed: 1 1;
+                                       rel1 { relative : IC_CONTENT_X_MIN IC_CONTENT_Y_MIN; to : "clipper";}
+                                       rel2 { relative : IC_CONTENT_X_MAX IC_CONTENT_Y_MAX; to : "clipper";}
+                                       visible : 1;
                                }
-                       } /* "elm.swallow.content" end */
+                               description {
+                                       state: "portrait";
+                                       inherit: "default" 0.0;
+                               }
+                               description {
+                                       state: "landscape";
+                                       inherit: "default" 0.0;
+                                       rel1 { relative : IC_CONTENT_X_MIN_L IC_CONTENT_Y_MIN_L; to : "clipper";}
+                                       rel2 { relative : IC_CONTENT_X_MAX_L IC_CONTENT_Y_MAX_L; to : "clipper";}
+                               }
+                       }
 
-                       part { name: "pad_b";
-                               type: RECT;
-                               scale : 1;
-                               mouse_events: 0;
-                               description { state: "default" 0.0;
-                                       align: 0.5 1.0;
-                                       min: 0 69;
-                                       fixed: 0 1;
+                       part {
+                               name: "warning_rect";
+                               type: TEXTBLOCK;
+                               clip_to: "clipper";
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
                                        visible: 0;
-                                       rel1 {
-                                               relative: 0.0 1.0;
-                                               to_x: "pad_l";
+                                       rel1 { relative: WARRNING_TEXT_X_MIN  WARRNING_TEXT_Y_MIN; to: "clipper";}
+                                       rel2 { relative: WARRNING_TEXT_X_MAX  WARRNING_TEXT_Y_MAX; to: "clipper";}
+                                       text {
+                                               style: "textblock_style";
                                        }
-                                       rel2.to_x: "pad_r";
+                               }
+                               description {
+                                       state: "landscape" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "warning_displayed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "warning_displayed_l" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: WARRNING_TEXT_X_MIN_L  WARRNING_TEXT_Y_MIN_L; to: "clipper";}
+                                       rel2 { relative: WARRNING_TEXT_X_MAX_L  WARRNING_TEXT_Y_MAX_L; to: "clipper";}
                                }
                        }
                }
+               programs {
+                       program {
+                               name : "unset,emergency-mode";
+                               signal : "unset,emergency-mode";
+                               source : "bg";
+                               action : STATE_SET "default" 0.0;
+                               target : "ic_setting";
+                               target : "divider";
+                               target : "sw.slider";
+                       }
+                       program {
+                               name : "set,emergency-mode";
+                               signal : "set,emergency-mode";
+                               source : "bg";
+                               action : STATE_SET "hidden" 0.0;
+                               target : "ic_setting";
+                               target : "divider";
+                               target : "sw.slider";
+                       }
+                       program {
+                               name : "show,landscape";
+                               signal : "show,landscape";
+                               source : "bg";
+                               action : STATE_SET "landscape" 0.0;
+                               target : "popup_bg";
+                               target : "bg";
+                               target : "ic_sound";
+                               target : "ic_setting";
+                               target : "sw.slider";
+                               target : "divider";
+                       }
+                       program {
+                               name : "show,portrait";
+                               signal : "show,portrait";
+                               source : "bg";
+                               action : STATE_SET "portrait" 0.0;
+                               target : "popup_bg";
+                               target : "bg";
+                               target : "ic_sound";
+                               target : "ic_setting";
+                               target : "sw.slider";
+                               target : "divider";
+                       }
+                       program{
+                               name : "hide_effect";
+                               signal : "hide_effect";
+                               source : "clipper";
+                               action : STATE_SET "transit" 0.0;
+                               target : "clipper";
+                               transition : ACCEL 0.3;
+                               after: "hide,popup";
+                       }
+                       program{
+                               name : "show_effect";
+                               signal : "show_effect";
+                               source : "clipper";
+                               action : STATE_SET "portrait" 0.0;
+                               target : "clipper";
+                       }
+                       program{
+                               name: "hide,popup";
+                               signal: "hide,popup";
+                               source: "popup_bg";
+                               action: SIGNAL_EMIT "hide,popup" "event";
+                       }
+                       program{
+                               name: "show_warning";
+                               signal: "show_warning";
+                               source: "clipper";
+                               action: STATE_SET "warning_displayed" 0.0;
+                               target: "warning_rect";
+                               target: "bg";
+                       }
+                       program{
+                               name: "show_warning_l";
+                               signal: "show_warning_l";
+                               source: "clipper";
+                               action: STATE_SET "warning_displayed_l" 0.0;
+                               target: "warning_rect";
+                               target: "bg";
+                       }
+                       program{
+                               name: "hide_warning";
+                               signal: "hide_warning";
+                               source: "clipper";
+                               action: STATE_SET "default" 0.0;
+                               target: "warning_rect";
+                               target: "bg";
+                       }
+                       program{
+                               name: "hide_warning_l";
+                               signal: "hide_warning_l";
+                               source: "clipper";
+                               action: STATE_SET "landscape" 0.0;
+                               target: "warning_rect";
+                               target: "bg";
+                       }
+                       program{
+                               name: "slider_touching_on";
+                               signal: "slider_touching_on";
+                               source: "clipper";
+                               action: STATE_SET "slider_touching" 0.0;
+                               target: "bg";
+                       }
+                       program{
+                               name: "slider_touching_off";
+                               signal: "slider_touching_off";
+                               source: "clipper";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg";
+                       }
+               }
        }
-       /* END group "volumeLayoutContent" */
-
 }
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100755 (executable)
index e49db5e..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-volume (0.2.6-1) unstable; urgency=low
-
-  * update version to 0.2.6-1
-
- -- minho07.kim <minho07.kim@samsung.com>  Mon, 21 Jan 2013 13:35:38 +0900
-
-volume (0.2.5-1) unstable; urgency=low
-
-  * Fix some issues
-  * Git : apps/home/volume-app
-
- -- minho07.kim <minho07.kim@samsung.com>  Mon, 07 Jan 2013 15:42:55 +0900
-
-volume (0.2.4-1) unstable; urgency=low
-
-  * Remove unused files
-  * Git: magnolia/apps/home/volume-app
-  * Tag: volume_0.2.4-1
-
- -- Junghyun Kim <jh1114.kim@samsung.com>  Fri, 17 Aug 2012 16:51:10 +0900
-
-volume (0.2.3-1) unstable; urgency=low
-
-  * Fix an error not to read PO files
-  * Git: magnolia/apps/home/volume-app
-  * Tag: volume_0.2.3-1
-
- -- Hong Kwon <hhh.kwon@samsung.com>  Thu, 16 Aug 2012 19:02:09 +0900
-
-volume (0.2.2-1) unstable; urgency=low
-
-  * Apply open source code
-  * Git: apps/home/volume-app
-  * Tag: volume_0.2.2-1
-
- -- Hong Kwon <hhh.kwon@samsung.com>  Mon, 13 Aug 2012 19:36:09 +0900
-
diff --git a/debian/compat b/debian/compat
deleted file mode 100644 (file)
index 7ed6ff8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-5
diff --git a/debian/control b/debian/control
deleted file mode 100644 (file)
index c692e15..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Source: volume
-Section: devel
-Priority: extra
-Maintainer: Junghyun Kim <jh1114.kim@samsung.com>, hhh.kwon<hhh.kwon@samsung.com>
-Build-Depends: debhelper (>= 5), libappcore-efl-dev, libelm-dev, libmm-sound-dev, dlog-dev, libsvi-dev, libvconf-dev, libslp-utilx-dev, syspopup-dev, libbundle-dev, libglib2.0-dev, libui-gadget-dev
-Standards-Version: 3.7.2
-
-Package: org.tizen.volume
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: volume
-
-Package: org-tizen.volume-dbg
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: Volume Debug Symbols
- Debug symbols for volume
diff --git a/debian/org.tizen.volume.install.in b/debian/org.tizen.volume.install.in
deleted file mode 100644 (file)
index 776cc6a..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-@PREFIX@/*
-/opt/share/applications/org.tizen.desktop
-/opt/share/icons/default/small/org.tizen.volume.png
diff --git a/debian/rules b/debian/rules
deleted file mode 100755 (executable)
index 079eb49..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-CFLAGS ?= -Wall -g
-LDFLAGS ?=
-PREFIX ?= /opt/apps/org.tizen.volume
-RESDIR ?= /opt/apps/org.tizen.volume/res
-DATADIR ?= /opt/apps/org.tizen.volume/data
-
-#ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-#      CFLAGS += -O0
-#else
-#      CFLAGS += -O2
-#endif
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-        BUILD_TYPE=Debug
-else
-        BUILD_TYPE=Release
-endif
-
-LDFLAGS += -Wl,--rpath=$(PREFIX)/lib -Wl,--as-needed
-
-CMAKE_BUILD_DIR ?= $(CURDIR)/cmake_build_tmp
-
-configure: configure-stamp
-configure-stamp:
-       dh_testdir
-       # Add here commands to configure the package.
-       mkdir -p $(CMAKE_BUILD_DIR) && cd $(CMAKE_BUILD_DIR) && \
-       CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" cmake .. -DCMAKE_INSTALL_PREFIX="$(PREFIX)" -DCMAKE_BUILD_TYPE="$(BUILD_TYPE)"
-
-       touch configure-stamp
-
-build: build-stamp
-
-build-stamp: configure-stamp 
-       dh_testdir
-
-       # Add here commands to compile the package.
-       cd $(CMAKE_BUILD_DIR) && $(MAKE)
-
-       for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
-               cat $$f > $${f%.in}; \
-               sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \
-               sed -i -e "s#@RESDIR@#$(RESDIR)#g" $${f%.in}; \
-               sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \
-       done
-
-       touch $@
-
-clean:
-       dh_testdir
-       dh_testroot
-       rm -f build-stamp configure-stamp
-
-       # Add here commands to clean up after the build process.
-       rm -rf $(CMAKE_BUILD_DIR)
-
-       for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
-               rm -f $${f%.in}; \
-       done
-
-       dh_clean 
-
-install: build
-       dh_testdir
-       dh_testroot
-       dh_clean -k 
-#      dh_installdirs
-
-       # Add here commands to install the package into debian/wavplayer.
-       cd $(CMAKE_BUILD_DIR) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
-
-
-# Build architecture-independent files here.
-binary-indep: build install
-# We have nothing to do by default.
-
-# Build architecture-dependent files here.
-binary-arch: build install
-       dh_testdir
-       dh_testroot
-#      dh_installchangelogs 
-#      dh_installdocs
-#      dh_installexamples
-       dh_install --sourcedir=debian/tmp
-#      dh_installmenu
-#      dh_installdebconf       
-#      dh_installlogrotate
-#      dh_installemacsen
-#      dh_installpam
-#      dh_installmime
-#      dh_python
-#      dh_installinit
-#      dh_installcron
-#      dh_installinfo
-       dh_installman
-       dh_link
-       dh_strip --dbg-package=org.tizen.volume-dbg
-       dh_compress
-       dh_fixperms
-#      dh_perl
-       dh_makeshlibs
-       dh_installdeb
-       dh_shlibdeps
-       dh_gencontrol
-       dh_md5sums
-       dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/include/_util_efl.h b/include/_util_efl.h
new file mode 100755 (executable)
index 0000000..c64148f
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2009-2014 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 __VOLUME_UTIL_EFL_H__
+#define __VOLUME_UTIL_EFL_H__
+
+#include <Elementary.h>
+
+Ecore_X_Window _add_input_window(void);
+Evas_Object *add_volume_window(const char *name);
+Evas_Object *add_slider(Evas_Object *parent, int min, int max, int val);
+Evas_Object *add_layout(Evas_Object *parent, const char *file, const char *group);
+Evas_Object *add_button(Evas_Object *parent, const char *style, const char *text);
+Evas_Object *add_popup(Evas_Object *parent, const char *style);
+Evas_Object *add_label(Evas_Object *parent, const char *text);
+#endif
+/* __VOLUME_UTIL_EFL_H__ */
similarity index 60%
rename from src/_util_log.h
rename to include/_util_log.h
index aa5154b..43703a9 100755 (executable)
@@ -1,15 +1,14 @@
 /*
- * org.tizen.volume
- * Copyright 2012  Samsung Electronics Co., Ltd
+ * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
  *
- * Licensed under the Flora License, Version 1.1 (the License);
+ * 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://floralicense.org/license/
+ * 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,
+ * 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.
 
 #undef LOG_TAG
 #define LOG_TAG "VOLUME"
-#define _E(fmt, arg...) LOGE("[%s,%d] "fmt,__FUNCTION__,__LINE__,##arg)
-#define _D(fmt, arg...) LOGD("[%s,%d] "fmt,__FUNCTION__,__LINE__,##arg)
+#define _E(fmt, arg...) LOGE("[%s:%d] "fmt,__FUNCTION__,__LINE__,##arg)
+#define _D(fmt, arg...) LOGD("[%s:%d] "fmt,__FUNCTION__,__LINE__,##arg)
+#define _SECURE_E(fmt, arg...) SECURE_LOGE("[%s:%d] "fmt,__FUNCTION__,__LINE__,##arg)
+#define _SECURE_D(fmt, arg...) SECURE_LOGD("[%s:%d] "fmt,__FUNCTION__,__LINE__,##arg)
+
+#define retvm_if_timer(timer, expr, val, fmt, arg...) do { \
+       if(expr) { \
+               _E(fmt, ##arg); \
+               _E("(%s) -> %s() return", #expr, __FUNCTION__); \
+               timer = NULL; \
+               return (val); \
+       } \
+} while (0)
 
 #define retvm_if(expr, val, fmt, arg...) do { \
        if(expr) { \
diff --git a/include/bt.h b/include/bt.h
new file mode 100644 (file)
index 0000000..ee04efc
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2009-2014 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 __VOLUME_BT_H__
+#define __VOLUME_BT_H__
+
+extern int bt_get_bt_volume(void);
+extern void bt_init_sco(void);
+extern void bt_deinit_sco(void);
+
+#endif
diff --git a/include/control.h b/include/control.h
new file mode 100755 (executable)
index 0000000..def1e63
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2009-2014 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 __VOLUME_CONTROL_H__
+#define __VOLUME_CONTROL_H__
+
+enum {
+       IDLELOCK_ERROR = -1,
+       IDLELOCK_OFF = 0,
+       IDLELOCK_ON = 1,
+       IDLELOCK_MAX,
+};
+
+/* _check_status() return value */
+enum{
+       LOCK_AND_NOT_MEDIA = -0x1,
+       UNLOCK_STATUS,
+       LOCK_AND_MEDIA,
+};
+
+extern void volume_control_check_syspopup();
+extern int volume_register_shape_timer();
+extern void volume_control_check_once(void);
+extern int volume_control_get_viewport_height();
+extern int volume_control_get_viewport_width();
+extern void volume_control_show_hide_worning();
+extern Eina_Bool volume_control_viewport_is_warning_visible();
+
+extern bundle *volume_control_reset_get_bundle(void);
+extern Eina_Bool volume_control_get_is_deleting(void);
+extern Eina_Bool volume_control_get_is_launching(void);
+extern int volume_control_get_current_angle(void);
+extern sound_type_e volume_control_get_sound_type_at_show(void);
+
+extern volume_error_e volume_control_cache_flush(void);
+
+extern volume_error_e volume_control_app_launch_with_bundle(const char *op_type, const char *operation, const char *pkgname);
+extern volume_error_e volume_control_mode_syspopup_launch(void);
+extern int volume_control_get_vconf_idlelock(void);
+
+extern int volume_control_check_status(int *lock, sound_type_e *sound_type);
+
+extern Eina_Bool volume_control_show_view(int status, sound_type_e sound_type, int sound, bool bt_opened);
+extern int volume_control_hide_view(void);
+extern volume_error_e volume_control_close_bt_display();
+
+extern void volume_control_register_vconfkey(void);
+extern void volume_control_unregister_vconfkey(void);
+
+extern volume_error_e volume_control_pause(void);
+extern volume_error_e volume_control_reset(bundle *b);
+extern volume_error_e volume_control_initialize(void);
+extern void volume_control_deinitialize(void);
+
+#endif /* __VOLUME_CONTROL_H__ */
diff --git a/include/key_event.h b/include/key_event.h
new file mode 100755 (executable)
index 0000000..2666833
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2009-2014 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 __VOLUME_KEY_EVENT_H__
+#define __VOLUME_KEY_EVENT_H__
+
+#define KEY_VOLUMEUP "XF86AudioRaiseVolume"
+#define KEY_VOLUMEDOWN "XF86AudioLowerVolume"
+#define KEY_MUTE "XF86AudioMute"
+#define KEY_BACK "XF86Back"
+#define KEY_CANCEL "Cancel"
+
+Ecore_X_Window volume_key_event_input_window_get(void);
+Ecore_Event_Handler *volume_key_event_handler_volume_up_get(void);
+Ecore_Event_Handler *volume_key_event_handler_volume_down_get(void);
+Ecore_Event_Handler *volume_key_event_handler_qp_state_check(void);
+Eina_Bool volume_key_event_is_pressing_get(void);
+int volume_key_event_count_grabed_get(void);
+void volume_key_event_count_grabed_set(int val);
+
+sound_type_e volume_key_event_sound_type_at_key_pressed_get(void);
+
+int volume_key_event_key_grab(Ecore_X_Window _xwin, int grab_mode);
+volume_error_e volume_key_event_key_ungrab(void);
+
+void volume_key_event_handler_add(void);
+void volume_key_event_handler_del(void);
+volume_error_e volume_key_event_input_window_create(void);
+
+#endif /* __VOLUME_KEY_EVENT_H__ */
diff --git a/include/main.h b/include/main.h
new file mode 100755 (executable)
index 0000000..3d94db9
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2009-2014 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 __VOLUME_H__
+#define __VOLUME_H__
+
+#include <Elementary.h>
+#include <sound_manager.h>
+//#include <syspopup.h>
+#include <appcore-efl.h>
+//#include <Ecore_X.h>
+#include <notification.h>
+#include <syspopup_caller.h>
+
+#if !defined(PACKAGE)
+#  define PACKAGE "volume"
+#endif
+
+#if !defined(RESDIR)
+#  define RESDIR "/usr/apps/org.tizen.volume/res"
+#endif
+
+#if !defined(LOCALEDIR)
+#  define LOCALEDIR RESDIR"/locale"
+#endif
+
+#if !defined(EDJDIR)
+#  define EDJDIR RESDIR"/edje"
+#endif
+
+#if !defined(PKGNAME)
+#  define PKGNAME "org.tizen.volume"
+#endif
+
+#define EDJ_APP EDJDIR"/volume_app.edj"
+
+#define IMG_VOLUME_ICON "00_volume_icon.png"
+#define IMG_VOLUME_ICON_CALL "00_volume_icon_call.png"
+#define IMG_VOLUME_ICON_MUTE "00_volume_icon_mute.png"
+#define IMG_VOLUME_ICON_VIB "00_volume_icon_vibrat.png"
+#define IMG_VOLUME_ICON_NOTI "00_volume_icon_notification.png"
+#define IMG_VOLUME_ICON_NOTI_VIB "00_volume_icon_notification_vibrate.png"
+#define IMG_VOLUME_ICON_NOTI_MUTE "00_volume_icon_notification_mute.png"
+#define IMG_VOLUME_ICON_HEADPHONE "00_volume_icon_headphone.png"
+#define IMG_VOLUME_ICON_MEDIA "00_volume_icon_media.png"
+#define IMG_VOLUME_ICON_SETTINGS "00_volume_icon_settings.png"
+#define IMG_VOLUME_ICON_SETTINGS_PRESSED "00_volume_icon_settings_pressed.png"
+#define IMG_VOLUME_ICON_SETTINGS_DISABLED "00_volume_icon_settings_disabled.png"
+
+#define _EDJ(x) elm_layout_edje_get(x)
+#define _X(x) (x) / elm_app_base_scale_get() * elm_config_scale_get()
+
+#define S_(str) dgettext("sys_string", str)
+#define T_(str) dgettext(PACKAGE, str)
+#undef _
+#define _(str) gettext(str)
+
+#ifndef VCONFKEY_SETAPPL_ACCESSIBILITY_TURN_OFF_ALL_SOUNDS
+#define VCONFKEY_SETAPPL_ACCESSIBILITY_TURN_OFF_ALL_SOUNDS VCONFKEY_SETAPPL_PREFIX"/accessibility/turn_off_all_sounds"
+#endif
+
+/* Fake-BG : bundle */
+#define SHOWLOCK "show_lock"
+#define ISTRUE "TRUE"
+
+/* For voice control */
+#define SHOWVOLUME "show_volume"
+
+#define LOCKSCREEN_PKG "org.tizen.lockscreen"
+
+#define SCREEN_W_HD 720
+#define SCREEN_H_HD 1280
+
+#define SCREEN_W_WVGA 480
+#define SCREEN_H_WVGA 800
+
+#define SCREEN_W_FHD 1080
+#define SCREEN_H_FHD 1920
+
+#define WIN_WIDTH 456
+#define WIN_HEIGHT_WITH_WARNING 222
+#define WIN_HEIGHT 102
+
+#define WIN_LANDSCAPE_X 79
+#define WIN_LANDSCAPE_INVERTED_X volume_control_get_viewport_width()-WIN_HEIGHT_WITH_WARNING-WIN_LANDSCAPE_X
+#define WIN_LANDSCAPE_Y (volume_control_get_viewport_height()-WIN_WIDTH)/2
+#define WIN_PORTRAIT_X 12
+#define WIN_PORTRAIT_Y 113
+#define WIN_SLIDER_TOUCHING_OFFSET 55
+
+#define SOUND_TYPE_SYSTEM 0
+#define SOUND_TYPE_NOTIFICATION 1
+#define SOUND_TYPE_ALARM 2
+#define SOUND_TYPE_RINGTONE 3
+#define SOUND_TYPE_MEDIA 4
+#define SOUND_TYPE_CALL 5
+
+#define VOLUME_MAX_SAFETY_VOLUME_LEVEL 10
+
+typedef enum {
+       TYPE_VCONF_SOUND_STATUS = 0,
+       TYPE_VCONF_VIBRATION_STATUS
+} volume_vconf_type_e;
+
+/* Volume : return values */
+typedef enum {
+       VOLUME_ERROR_OK = 0,
+       VOLUME_ERROR_FAIL = -1,
+       VOLUME_ERROR_INVALID_PARAMETER = -2,
+       VOLUME_ERROR_NO_DATA = -3
+} volume_error_e;
+
+#endif /* __VOLUME_H__ */
+
diff --git a/include/sound.h b/include/sound.h
new file mode 100755 (executable)
index 0000000..6e8c54b
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2009-2014 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 __VOLUME_SOUND_H__
+#define __VOLUME_SOUND_H__
+
+int volume_sound_sound_status_get(void);
+int volume_sound_vibration_status_get(void);
+int volume_sound_step_get(void);
+Eina_Bool volume_sound_is_vibration_get(void);
+void volume_sound_is_vibration_set(Eina_Bool val);
+
+void volume_sound_mm_sound_init(void);
+//int _get_volume_type_max(void);
+int volume_sound_slider_value_set(void *data, int val);
+volume_error_e volume_sound_level_get(sound_type_e type);
+//sound_route_e volume_sound_sound_manager_device_get(void);
+int volume_sound_sound_manager_step_get(sound_type_e type);
+int volume_sound_sound_manager_volume_get(sound_type_e type);
+sound_type_e volume_sound_sound_manager_type_get(void);
+void volume_sound_feedback_play(int feedback_type, int pattern);
+void volume_sound_vib_play(void);
+void volume_sound_play(void);
+int volume_sound_icon_set(void *data, int val);
+int volume_sound_level_set(sound_type_e type, int val);
+void volume_sound_setting_sound_play(void);
+void volume_sound_change_set(int val);
+
+void volume_sound_vconf_status_set(volume_vconf_type_e type, int val);
+int volume_sound_vconf_status_get(volume_vconf_type_e type);
+void volume_sound_vconfkey_register(void);
+void volume_sound_vconfkey_unregister(void);
+
+#endif
+/* __VOLUME_SOUND_H__ */
diff --git a/include/timer.h b/include/timer.h
new file mode 100755 (executable)
index 0000000..cb5780b
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2009-2014 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 __VOLUME_TIMER_H__
+#define __VOLUME_TIMER_H__
+
+#define DEL_TIMER(x) \
+       if (x) {\
+               _D("DELTIMER x : %p\n", x);\
+               ecore_timer_del(x);\
+               x = NULL;\
+       }
+#define ADD_TIMER(x, time, _timer_cb, data) \
+       if(x != NULL) DEL_TIMER(x); \
+       x = ecore_timer_add(time, _timer_cb, data);\
+       _D("ADDTIMER x : %p\n", x);\
+
+typedef enum {
+       TYPE_TIMER_POPUP = 0,
+       TYPE_TIMER_SLIDER,
+       TYPE_TIMER_SD,
+       TYPE_TIMER_SU,
+       TYPE_TIMER_BT
+} volume_timer_type;
+
+extern Ecore_Timer *volume_timer_popup_timer_get(void);
+extern Ecore_Timer *volume_timer_slider_timer_get(void);
+extern Ecore_Timer *volume_timer_su_timer_get(void);
+extern Ecore_Timer *volume_timer_sd_timer_get(void);
+
+extern Eina_Bool volume_timer_popup_cb(void *data);
+extern Eina_Bool volume_timer_slider_timer_cb(void *data);
+
+extern void volume_timer_add(double time, volume_timer_type type);
+extern void volume_timer_del(volume_timer_type);
+
+#endif /* __VOLUME_TIMER_H__ */
diff --git a/include/view.h b/include/view.h
new file mode 100755 (executable)
index 0000000..5444849
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2009-2014 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 __VOLUME_VIEW_H__
+#define __VOLUME_VIEW_H__
+
+Evas_Object *volume_view_win_get(void);
+Evas_Object *volume_view_evas_get(void);
+Evas_Object *volume_view_outer_layout_get(void);
+Evas_Object *volume_view_icon_volume_get(void);
+Evas_Object *volume_view_icon_setting_get(void);
+Evas_Object *volume_view_slider_get(void);
+Eina_Bool volume_view_is_registered_callback_get(void);
+Eina_Bool volume_view_is_slider_touching_get(void);
+void volume_view_is_registered_callback_set(Eina_Bool val);
+int volume_mute_toggle_set(void);
+
+volume_error_e volume_view_slider_value_set(int val);
+void volume_view_volume_icon_set(sound_type_e sound_type, int sound, int vibration, bool bt_opened);
+void volume_view_setting_icon_set(const char *file);
+void volume_view_setting_icon_callback_del(void);
+
+volume_error_e volume_view_window_show(void);
+volume_error_e volume_view_window_hide(void);
+
+volume_error_e volume_view_layout_create(Evas_Object *win);
+Evas_Object *volume_view_window_create(void);
+
+Evas_Object* show_lockscreen_splash(const char *bg_path);
+volume_error_e hide_lockscreen_splash(void);
+
+#endif /* __VOLUME_VIEW_H__ */
diff --git a/include/x_event.h b/include/x_event.h
new file mode 100755 (executable)
index 0000000..0e9fa1b
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2009-2014 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 __UTIL_EVENT_H__
+#define __UTIL_EVENT_H__
+
+void volume_x_input_event_shape(Evas_Object *win, Eina_Bool is_warning_visible);
+volume_error_e volume_x_input_event_register(void);
+volume_error_e volume_x_input_event_unregister(void);
+
+#endif
diff --git a/org.tizen.volume.efl b/org.tizen.volume.efl
new file mode 100644 (file)
index 0000000..7b396e6
--- /dev/null
@@ -0,0 +1,64 @@
+User::App::org.tizen.volume User r----- ------
+org.tizen.volume system::use_internet r----- ------
+org.tizen.volume net-config r----- ------
+org.tizen.volume xorg rw---- ------
+org.tizen.volume isf rwx--- ------
+org.tizen.volume sound_server rw---- ------
+org.tizen.volume syspopup::db rw---- ------
+org.tizen.volume pulseaudio rwxat- ------
+org.tizen.volume ail::db rw---- ------
+org.tizen.volume connman r----- ------
+org.tizen.volume system rwx--- ------
+org.tizen.volume immvibed rw---- ------
+org.tizen.volume svi-data r-x--- ------
+org.tizen.volume org.tizen.setting rwx--- ------
+org.tizen.volume org.tizen.message rw---- ------
+org.tizen.volume org.tizen.lockscreen rwx--- ------
+org.tizen.volume e17 r-x--- ------
+org.tizen.volume system::vconf_setting rw---- ------
+org.tizen.volume system::vconf_inhouse rw---- ------
+org.tizen.volume notification::db rw---- ------
+org.tizen.volume org.tizen.indicator rw---- ------
+org.tizen.volume data-provider-master::notification rw---- ------
+org.tizen.volume data-provider-master::notification.client rw---- ------
+org.tizen.volume system::vconf_multimedia rw---- ------
+org.tizen.volume org.tizen.setting::default-resources r-x--- ------
+org.tizen.volume ug-image-viewer-efl rwx--- ------
+org.tizen.volume org.tizen.clock rw---- ------
+org.tizen.volume sdbd rw---- ------
+org.tizen.volume clock::vconf_share rw---- ------
+org.tizen.volume aul::launch --x--- ------
+org.tizen.volume starter::vconf rw---- ------
+org.tizen.volume ug-setting-call-efl::vconf rw---- ------
+org.tizen.volume org.tizen.safetyvolume-syspopup r-x--- ------
+org.tizen.volume pkgmgr::db rw---l ------
+org.tizen.volume trm -w---- ------
+org.tizen.volume app-svc --x--- ------
+org.tizen.volume org.tizen.music-player-lite rw---- ------
+org.tizen.volume deviced::haptic rw---- ------
+org.tizen.volume org.tizen.wallpaper-service rwx--- ------
+org.tizen.volume org.tizen.wallpaper-service::wallpaper-service rwx--- ------
+aul org.tizen.volume r-x--- ------
+system org.tizen.volume -w---- ------
+org.tizen.cluster-home org.tizen.volume r-x--- ------
+org.tizen.app-tray org.tizen.volume r-x--- ------
+org.tizen.indicator org.tizen.volume -w---- ------
+org.tizen.music-player-lite org.tizen.volume r----- ------
+org.tizen.clock org.tizen.volume rw---- ------
+org.tizen.mode-syspopup org.tizen.volume --x--- ------
+org.tizen.dailybriefing-agent org.tizen.volume --x--- ------
+org.tizen.safetyvolume-syspopup org.tizen.volume r-x--- ------
+org.tizen.volume system::homedir rwxat- ------
+org.tizen.volume system::vconf rwxat- ------
+org.tizen.volume system::media rwxat- ------
+org.tizen.volume system::share rwxat- ------
+e17 org.tizen.volume -w---- ------
+org.tizen.volume device::app_logging rw---- ------
+org.tizen.volume device::sys_logging rw---- ------
+org.tizen.volume sys-assert::core rwxat- ------
+org.tizen.volume privacy-manager::db r----l ------
+org.tizen.volume system::vconf_privacy rw---- ------
+org.tizen.volume system::vconf_system rw---- ------
+org.tizen.volume system::vconf_network rw---- ------
+org.tizen.volume system::vconf_misc rw---- ------
+org.tizen.volume ecore::lock rwxat- ------
diff --git a/org.tizen.volume.manifest b/org.tizen.volume.manifest
new file mode 100755 (executable)
index 0000000..72157d9
--- /dev/null
@@ -0,0 +1,11 @@
+<manifest>
+    <define>
+        <domain name="org.tizen.volume"/>
+    </define>
+    <assign>
+       <filesystem path="/usr/share/icons/default/small/org.tizen.volume.png" label="_" />
+    </assign>
+    <request>
+        <domain name="org.tizen.volume"/>
+    </request>
+</manifest>
index 8f488b4..63cb5d5 100755 (executable)
Binary files a/org.tizen.volume.png and b/org.tizen.volume.png differ
index 5d38166..8634727 100755 (executable)
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.volume" version="0.2.8" install-location="internal-only">\r
-       <label>Volume</label>\r
-       <author email="hhh.kwon@samsung.com" href="www.samsung.com">Hong Kwon</author>\r
-       <description>Volume Application</description>\r
-       <ui-application appid="org.tizen.volume" exec="/usr/apps/org.tizen.volume/bin/volume" nodisplay="true" multiple="false" type="capp" taskmanage="false">\r
-               <icon>org.tizen.volume.png</icon>\r
-               <label>Volume</label>\r
-       </ui-application>\r
-</manifest>\r
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.volume" version="0.1.148" install-location="internal-only" api-version="2.3.1">
+       <label>Volume</label>
+       <author email="hhh.kwon@samsung.com" href="www.samsung.com">Hong Kwon</author>
+       <description>Volume Application</description>
+       <ui-application appid="org.tizen.volume" exec="/usr/apps/org.tizen.volume/bin/volume" nodisplay="true" multiple="false" type="capp" taskmanage="false">
+               <icon>org.tizen.volume.png</icon>
+               <label>Volume</label>
+       </ui-application>
+</manifest>
diff --git a/packaging/org.tizen.volume.manifest b/packaging/org.tizen.volume.manifest
deleted file mode 100644 (file)
index 017d22d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<manifest>
- <request>
-    <domain name="_"/>
- </request>
-</manifest>
index 48e262c..e882f90 100755 (executable)
@@ -1,53 +1,93 @@
-#sbs-git:slp/pkgs/v/volume-app volume-app 0.1.2 226202351de9fefb43756c36d215ca74f52431d0
+%define _project_name volume
+%define _package_name org.tizen.%{_project_name}
+%if "%{?tizen_profile_name}" == "wearable"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
+%if "%{?tizen_profile_name}" == "tv"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
 Name:  org.tizen.volume
 Summary:       Volume application (EFL)
-Version:       0.2.8
+Version:       0.1.148
 Release:       1
 Group: TO_BE/FILLED_IN
-License:       Flora Software License
+License:       Apache
 Source0:       %{name}-%{version}.tar.gz
-Source1001:    org.tizen.volume.manifest
+BuildRequires:  pkgconfig(capi-appfw-application)
+BuildRequires:  pkgconfig(capi-appfw-app-manager)
 BuildRequires:  pkgconfig(appcore-efl)
 BuildRequires:  pkgconfig(elementary)
-BuildRequires:  pkgconfig(utilX)
-BuildRequires:  pkgconfig(mm-sound)
+#BuildRequires:  pkgconfig(utilX)
+BuildRequires:  pkgconfig(capi-media-sound-manager)
 BuildRequires:  pkgconfig(syspopup)
 BuildRequires:  pkgconfig(dlog)
-BuildRequires:  pkgconfig(svi)
-BuildRequires:  pkgconfig(ui-gadget-1)
-BuildRequires: pkgconfig(notification)
-BuildRequires: pkgconfig(capi-system-info)
-BuildRequires: pkgconfig(feedback)
-BuildRequires:  pkgconfig(libtzplatform-config)
+BuildRequires:  pkgconfig(notification)
+BuildRequires:  pkgconfig(feedback)
+BuildRequires:  pkgconfig(syspopup-caller)
+#BuildRequires:  pkgconfig(x11)
+#BuildRequires:  pkgconfig(xcomposite)
+#BuildRequires:  pkgconfig(xext)
+#BuildRequires:  pkgconfig(xi)
+BuildRequires:  pkgconfig(capi-network-bluetooth)
 
 BuildRequires:  cmake
 BuildRequires:  edje-bin
 BuildRequires:  embryo-bin
 BuildRequires:  gettext-devel
+BuildRequires: hash-signer
 
 %description
 volume.
 
 %prep
 %setup -q
-cp %{SOURCE1001} .
 
-%define PREFIX /usr/apps/org.tizen.volume
+%define PREFIX /usr/apps/%{_package_name}
 
 %build
+export CFLAGS+=" -fPIE"
+export CXXFLAGS+=" -fPIE"
+export LDFLAGS+=" -pie"
+
+%if 0%{?sec_build_binary_debug_enable}
+export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
+export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
+%endif
+
+%if 0%{?sec_build_binary_sdk}
+export CFLAGS+=" -DFEATURE_SDK"
+export CXXFLAGS+=" -DFEATURE_SDK"
+export FFLAGS+=" -DFEATURE_SDK"
+
+echo EMULATOR BUILD
+%endif
+
 RPM_OPT=`echo $CFLAGS|sed 's/-Wp,-D_FORTIFY_SOURCE=2//'`
 export CFLAGS=$RPM_OPT
-cmake  -DCMAKE_INSTALL_PREFIX="%{PREFIX}" -DTZ_SYS_SHARE=%TZ_SYS_SHARE -DTZ_SYS_ETC=%TZ_SYS_ETC -DTZ_SYS_BIN=%TZ_SYS_BIN
+cmake  -DCMAKE_INSTALL_PREFIX="%{PREFIX}"
 make %{?jobs:-j%jobs}
 
 %install
 rm -rf %{buildroot}
 %make_install
+mkdir -p %{buildroot}/usr/share/license
+cp LICENSE %{buildroot}/usr/share/license/%{_package_name}
+%define tizen_sign 1
+%define tizen_sign_base /usr/apps/%{_package_name}
+%define tizen_sign_level public
+%define tizen_author_sign 1
+%define tizen_dist_sign 1
 
 %files
-%manifest %{name}.manifest
+%manifest %{_package_name}.manifest
 %defattr(-,root,root,-)
-%{PREFIX}/bin/*
-%{PREFIX}/res/*
-%{TZ_SYS_SHARE}/icons/default/small/org.tizen.volume.png
-/usr/share/packages/org.tizen.volume.xml
+%{PREFIX}/*
+#%{PREFIX}/bin/*
+#%{PREFIX}/res/*
+/etc/smack/accesses.d/%{_package_name}.efl
+/usr/share/packages/%{_package_name}.xml
+/usr/share/icons/default/small/%{_package_name}.png
+/usr/share/license/%{_package_name}
index c21601e..339b080 100644 (file)
@@ -1,8 +1,8 @@
 # for i18n
 
-SET(POFILES hy.po az.po eu.po bg.po ca.po zh_CN.po zh_HK.po zh_TW.po hr.po cs.po da.po nl_NL.po en.po en_US.po et.po fi.po fr_FR.po gl.po ka.po de_DE.po el_GR.po hu.po is.po ga.po it_IT.po ja_JP.po kk.po ko_KR.po lv.po lt.po mk.po nb.po pl.po pt_PT.po pt_BR.po ro.po ru_RU.po sr.po sk.po sl.po es_ES.po es_US.po sv.po  tr_TR.po uk.po uz.po ar.po zh_SG.po hi.po en_PH.po fr_CA.po)
+SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de.po de_DE.po el_GR.po en.po en_PH.po en_US.po es_MX.po es_ES.po et.po eu.po fi.po fr.po fr_CA.po fr_FR.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 mn_MN.po mk.po nb.po nl.po nl_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_SG.po zh_TW.po)
 
-SET(MSGFMT "${TZ_SYS_BIN}/msgfmt")
+SET(MSGFMT "/usr/bin/msgfmt")
 
 FOREACH(pofile ${POFILES})
        SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
index 0b2bb3a..b524d36 100644 (file)
--- a/po/ar.po
+++ b/po/ar.po
@@ -1,6 +1,9 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
 msgstr "قد تضر مستويات الصوت العالية بسمعك إذا استمعت إليها لفترة طويلة"
 
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "وسائط"
+
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
 
@@ -10,9 +13,45 @@ msgstr "جافا"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "تحذير"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "وسائط"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "سماعات رأس"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "يتعذر ضبط مستوى الصوت عند إيقاف تشغيل الصوت تماما. يمكنك تشغيل الصوت بالانتقال إلى إعدادات إمكانية الوصول."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "إنها %d:%02d مساء"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "إنها %d:%02d صباحا"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "لديك %1$d مكالمات فائتة و%2$d رسائل غير مقروءة"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d م. فائتة"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d رسالة جديدة"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "مكالمة لم يرد عليها"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "رسالة واحدة جديدة"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "إنها %1$d:%2$02d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "لديك مكالمة واحدة فائتة ورسالة واحدة غير مقروءة"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "لديك %d مكالمات فائتة ورسالة واحدة غير مقروءة"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "لديك مكالمة واحدة فائتة و%d رسائل غير مقروءة"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "تم تفعيل الوضع الشخصي"
+
index 9ef5746..4cbf3a8 100644 (file)
--- a/po/az.po
+++ b/po/az.po
@@ -1,5 +1,5 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Uzun müddət ucadan qulaq assanız, bu sizin eşitmənizə mənfi təsir edə bilər"
+msgstr "Uzun müddət ucadan qulaq assanız, bu sizin eşitmənizə mənfi təsir edə bilər."
 
 msgid "IDS_COM_BODY_MEDIA"
 msgstr "Mediya"
@@ -16,3 +16,45 @@ msgstr "Xəbərdarlıq"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Qulaqlıqlar"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Bütün səslər sönülü olduqda səsi tənzimləmək mümkün deyil. Siz xüsusi imkanlar parametrlərinə keçərək səsi yandıra bilərsiniz."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Saat %d:%d PM."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Saat %d:%d AM."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Sizin %1$d cavabsız zənginiz və %2$d oxunmamış mesajınız var."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d cavabsız zəng"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d yeni mesaj"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 cavabsız zəng"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 yeni mesaj"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Belədir: %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 cavabsız zəng və 1 oxunmamış mesaj"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d cavabsız zəng və 1 oxunmamış mesaj"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 cavabsız zəng və %d oxunmamış mesaj"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Şəxsi rejim aktivləşdirilmişdir."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Xüsusi imkanlar parametrlərində bütün səsləri Söndürməni qeyri-aktiv edin."
+
index f3f42e3..b34b62b 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Голямата сила на звука може да увреди слуха ви, ако слушате дълго"
+msgstr "Голямата сила на звука може да увреди слуха ви, ако слушате дълго."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Медии"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Предупреждение"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Медии"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Слушалки"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Силата на звука не може да се регулира, когато всички звуци са изключени. Можете да включите звука, като отидете в настройките за достъпност."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Сега е %d:%d часа сл.об."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Сега е %d:%d часа пр.об."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Имате %1$d пропуснати повиквания и %2$d непрочетени съобщения."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d пропуснати повиквания"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d нови съобщения"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 пропуснато повикване"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 ново съобщение"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Сега е %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 пропуснато повикване и 1 непрочетено съобщение"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d пропуснати повиквания и 1 непрочетено съобщение"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 пропуснато повикване и %d непрочетени съобщения"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Личен режим е активиран."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Деактивирайте Изключване на всички звуци в Настройки за достъпност."
+
index 49cc43c..6084a87 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -1,6 +1,9 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
 msgstr "Volums elevats poden malmetre la seva oïda si els escolta durant molt temps"
 
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Multimèdia"
+
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
 
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Advertiment"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Multimèdia"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Auriculars"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "No es pot ajustar el volum mentre tot el so està apagat. Pot activar el so anant als ajustaments d'accessibilitat."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Són les %d:%d PM"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Són les %d:%d AM"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Té %1$d trucades perdudes i %2$d missatges sense llegir"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d trucades perdudes"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d missatges nous"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 trucada perduda"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 missatge nou"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Són les %1$d:%2$d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 trucada perduda i 1 missatge sense llegir"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d trucades perdudes i 1 missatge sense llegir"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 trucada perduda i %d missatges sense llegir"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Mode Personal habilitat"
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Deshabilitar Apagar tots els sons a Ajustaments d'accessibilitat."
+
index 791cffd..d92f240 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Dlouhodobý poslech velmi hlasité reprodukce může poškodit sluch"
+msgstr "Dlouhodobý poslech velmi hlasité reprodukce může poškodit sluch."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Média"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Upozornění"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Média"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Sluchátka"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Když jsou všechny zvuky vypnuté, není možné upravit hlasitost. Zvuk můžete zapnout v nastavení usnadnění."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Je %d:%d odp."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Je %d:%d dop."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Máte %1$d nepřijatých hovorů a %2$d nepřečtených zpráv."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d nepřijatých hovorů"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d nových zpráv"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 nepřijatý hovor"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nová zpráva"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Je %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 nepřijatý hovor a 1 nepřečtená zpráva"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d nepřijatých hovorů a 1 nepřečtená zpráva"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 nepřijatý hovor a %d nepřečtených zpráv"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Osobní režim je zapnutý."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Vypněte možnost Vypnout všechny zvuky v nastavení Usnadnění."
+
index 492564b..0522e05 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Høj musik kan skade din hørelse, hvis du lytter i for lang tid"
+msgstr "Høj musik kan skade din hørelse, hvis du lytter i for lang tid."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Medie"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Advarsel"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Medie"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Høretelefoner"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Kan ikke justere lydstyrke, mens lyd er slået fra. Du kan slå lyd til ved at gå til indstillinger for tilgængelighed."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Den er %d:%d."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Den er %d:%d."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Du har %1$d %ubesvarede opkald, og %2$d ulæste beskeder."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d ubesvarede opkald"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d nye meddelelser"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 ubesvaret opkald"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 ny meddelelse"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Den er %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 ubesvaret opkald og 1 ulæst besked"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d ubesvarede opkald, og 1 ulæst besked"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 ubesvaret opkald, og %d ulæste beskeder"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Tilstanden Personlig aktiveret."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Slå Deaktivér alle lyde fra i indstillinger for Tilgængelighed."
+
diff --git a/po/de.po b/po/de.po
new file mode 100644 (file)
index 0000000..6c721a6
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,60 @@
+msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Das Hören lauter Musik über einen längeren Zeitraum kann sich schädlich auf Ihr Gehör auswirken."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Medien"
+
+msgid "IDS_COM_BODY_ANDROID"
+msgstr "Android"
+
+msgid "IDS_COM_BODY_JAVA"
+msgstr "Java"
+
+msgid "IDS_COM_BODY_WARNING"
+msgstr "Warnung"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Kopfhörer"
+
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Lautstärke kann nicht angepasst werden, solange alle Töne ausgeschaltet sind. Sie können die Töne unter den Eingabehilfeeinstellungen einschalten."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Es ist %d:%d PM"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Es ist %d:%d AM"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Sie haben %1$d verpasste Anrufe und %2$d ungelesene Nachrichten."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d verpasste Anrufe"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d neue Nachrichten"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 Anruf in Abwesenheit"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 neue Nachricht"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Es ist %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 verpasster Anruf und 1 ungelesene Nachricht"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d verpasste Anrufe und 1 ungelesene Nachricht"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 verpasster Anruf und %d ungelesene Nachrichten"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Persönlicher Modus aktiviert."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "„Alle Töne abschalten“ in den Eingabehilfeeinstellungen deaktivieren."
+
index 609d635..0e151fd 100644 (file)
@@ -1,6 +1,9 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
 msgstr "Das Hören lauter Musik über einen längeren Zeitraum kann sich schädlich auf Ihr Gehör auswirken."
 
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Medien"
+
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
 
@@ -10,9 +13,45 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Warnung"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Medien"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Kopfhörer"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Lautstärke kann nicht angepasst werden, solange alle Töne ausgeschaltet sind. Sie können die Töne unter den Eingabehilfeeinstellungen einschalten."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Es ist %d:%02d PM"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Es ist %d:%02d AM"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Sie haben %1$d verpasste Anrufe und %2$d ungelesene Nachrichten."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d verpasste Anrufe"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d neue Nachrichten"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 Anruf in Abwesenheit"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 neue Nachricht"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Es ist %1$d:%2$02d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 verpasster Anruf und 1 ungelesene Nachricht"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d verpasste Anrufe und 1 ungelesene Nachricht"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 verpasster Anruf und %d ungelesene Nachrichten"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Persönlicher Modus aktiviert."
+
index 5b8e401..d140a43 100644 (file)
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Η ακρόαση μουσικής σε υψηλή ένταση για μεγάλο χρονικό διάστημα μπορεί να βλάψει την ακοή σας"
+msgstr "Η ακρόαση μουσικής σε υψηλή ένταση για μεγάλο χρονικό διάστημα μπορεί να βλάψει την ακοή σας."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Μέσα"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Προειδοποίηση"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Μέσα"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Ακουστικά"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Δεν είναι δυνατή η προσαρμογή της έντασης όταν έχει γίνει σίγαση του ήχου. Μπορείτε να ενεργοποιήσετε τον ήχο μεταβαίνοντας στις ρυθμίσεις προσβασιμότητας."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Η ώρα είναι %d:%d μμ."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Η ώρα είναι %d:%d πμ."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Έχετε %1$d αναπάντητες κλήσεις και %2$d μη αναγνωσμένα μηνύματα."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d αναπάντητες κλήσεις"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d νέα μηνύματα"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 αναπάντητη κλήση"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 νέο μήνυμα"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Η ώρα είναι %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 αναπάντητη κλήση και 1 μη αναγνωσμένο μήνυμα"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d αναπάντητες κλήσεις και 1 μη αναγνωσμένο μήνυμα"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 αναπάντητη κλήση και %d μη αναγνωσμένα μηνύματα"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Η προσωπική λειτουργία ενεργοποιήθηκε."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Απενεργοποιήστε τη ρύθμιση «Απενεργοποίηση όλων των ήχων» στις ρυθμίσεις προσβασιμότητας."
+
index 7aaa29e..99e0c48 100644 (file)
--- a/po/en.po
+++ b/po/en.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "High volumes may harm your hearing if you listen for a long time"
+msgstr "High volumes may harm your hearing if you listen for a long time."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Media"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Warning"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Media"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Headphones"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Unable to adjust volume while all sound is off. You can turn on sound by going to accessibility settings."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "It is %d:%d PM."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "It is %d:%d AM."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "You have %1$d missed calls and %2$d unread messages."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d missed calls"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d new messages"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 missed call"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 new message"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "It is %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 missed call and 1 unread message"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d missed calls and 1 unread message"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 missed call and %d unread messages"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Personal mode enabled."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Disable Turn off all sounds in Accessibility settings."
+
index 0d1afd8..c896e53 100644 (file)
@@ -16,3 +16,42 @@ msgstr "Warning"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Headphones"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Unable to adjust volume while all sound is off. You can turn on sound by going to accessibility settings"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "It is %d:%02d PM"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "It is %d:%02d AM"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "You have %1$d missed calls and %2$d unread messages"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d missed calls"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d new messages"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 missed call"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 new message"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "It is %d:%02d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 missed call and 1 unread message"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d missed calls and 1 unread message"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 missed call and %d unread messages"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Personal mode enabled"
+
index 7aaa29e..ae8d09f 100644 (file)
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "High volumes may harm your hearing if you listen for a long time"
+msgstr "High volumes may harm your hearing if you listen for a long time."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Media"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Warning"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Media"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Headphones"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Unable to adjust volume while all sound is off. You can turn on sound by going to accessibility settings."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "It is %d:%d PM."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "It is %d:%d AM."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "You have %1$d missed calls and %2$d unread messages."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d missed calls"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d new messages"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 missed call"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 new message"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "It is %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 missed call and 1 unread message"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d missed calls and 1 unread message"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 missed call and %d unread messages"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Personal mode turned on."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Disable Turn off all sounds in Accessibility settings."
+
index 8293735..48fc8be 100644 (file)
@@ -1,6 +1,9 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
 msgstr "El volumen alto durante un tiempo prolongado puede dañar sus oídos"
 
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Multimedia"
+
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
 
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Aviso"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Multimedia"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Auriculares"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "No se puede ajustar el volumen mientras todo el sonido está apagado. Puede activar el sonido desde ajustes de accesibilidad."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Son las %d:%d PM"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Son las %d:%d AM"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Tiene %1$d llamadas perdidas y %2$d mensajes sin leer"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d llamadas perdidas"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d mensajes nuevos"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 llamada perdida"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 mensaje nuevo"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Son las %1$d:%2$d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 llamada perdida y 1 mensaje sin leer"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d llamadas perdidas y 1 mensaje sin leer"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 llamada perdida y %d mensajes sin leer"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Modo Personal activado"
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Anular Desactivar todos los sonidos en los ajustes de accesibilidad."
+
diff --git a/po/es_MX.po b/po/es_MX.po
new file mode 100644 (file)
index 0000000..bb58aa3
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Volúmenes elevados pueden dañar su oído si los escucha durante un tiempo prolongado"
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Multimedia"
+
+msgid "IDS_COM_BODY_ANDROID"
+msgstr "Android"
+
+msgid "IDS_COM_BODY_JAVA"
+msgstr "Java"
+
+msgid "IDS_COM_BODY_WARNING"
+msgstr "Aviso"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Auricular"
+
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "No se pude ajustar el volumen mientras todos los sonidos están desactivados. Para activar los sonidos, vaya a la configuración de accesibilidad."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Son las %d:%02d PM"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Son las %d:%02d AM"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Tiene %1$d llamadas perdidas y %2$d mensajes sin leer"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d llamadas perdidas"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d nuevos mensajes"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 llamada perdida"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nuevo mensaje"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Son las %1$d:%2$02d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 llamada perdida y 1 mensaje no leído"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d llamadas perdidas y 1 mensaje no leído"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 llamada perdida y %d mensajes no leídos"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Modo personal activado"
+
index 138201b..c1c6f13 100644 (file)
@@ -1,5 +1,5 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Volúmenes elevados pueden dañar su oído si los escucha durante un tiempo prolongado"
+msgstr "Escuchar música a volumen alto por un tiempo prolongado puede dañar su audición"
 
 msgid "IDS_COM_BODY_MEDIA"
 msgstr "Multimedia"
@@ -14,5 +14,47 @@ msgid "IDS_COM_BODY_WARNING"
 msgstr "Aviso"
 
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
-msgstr "Auriculares"
+msgstr "Auricular"
+
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "No se pude ajustar el volumen mientras todos los sonidos están desactivados. Para activar los sonidos, vaya a la configuración de accesibilidad."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Son las %d:%d PM."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Son las %d:%d AM."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Tiene %1$d llamadas perdidas y %2$d mensajes sin leer."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d llamadas perdidas"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d nuevos mensajes"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 llamada perdida"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nuevo mensaje"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Son las %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 llamada perdida y 1 mensaje no leído"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d llamadas perdidas y 1 mensaje no leído"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 llamada perdida y %d mensajes no leídos"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Modo personal activado."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Anular Desactivar todos los sonidos en la configuración de accesibilidad."
 
index 464a6fe..969d95f 100644 (file)
--- a/po/et.po
+++ b/po/et.po
@@ -1,5 +1,5 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Valju heli kuulamine pika aja vältel võib põhjustada kuulmiskahjustusi"
+msgstr "Valju heli kuulamine pika aja valtel voib pohjustada kuulmiskahjustusi."
 
 msgid "IDS_COM_BODY_MEDIA"
 msgstr "Meedia (Telefon)"
@@ -16,3 +16,45 @@ msgstr "Hoiatus"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Kõrvaklapid"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Helitugevust ei saa reguleerida, kui kõik helid on välja lülitatud. Heli sisselülitamiseks minge juurdepääsuseadetesse."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Kell on %d:%d PL."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Kell on %d:%d EL."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Teil on %1$d vastamata konet ja %2$d lugemata sonumit."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d vastamata kõnet"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d uut sõnumit"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 vastamata kõne"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 uus sõnum"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Kell on %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 vastamata kõne ja 1 lugemata sõnum"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d vastamata kõnet ja 1 lugemata sõnum"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 vastamata kõne ja %d lugemata sõnumit"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Isiklik režiim on aktiveeritud."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Desaktiveerige menüüs Juurdepääsu seaded käsk Lülita kõik helid välja."
+
index ed35339..7f86cdd 100644 (file)
--- a/po/eu.po
+++ b/po/eu.po
@@ -16,3 +16,45 @@ msgstr "Oharra"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Aurikularrak"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Ezin da bolumena egokitu soinu guztiak itzalita daudenean. Soinua piztu dezakezu irisgarritasun ezarpenetan."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Arratsaldeko %d:%d-a(k) d(ir)a"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Goizeko %d:%d-a(k) d(ir)a"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "%1$d dei galdu eta irakurri gabeko %2$d mezu dituzu"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d dei galdu"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d mezu berri"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "Dei galdu 1"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "Mezu berri 1"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "%1$d:%2$d dira"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "Dei galdu 1 eta irakurri gabeko mezu 1"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d dei galdu eta irakurri gabeko mezu 1"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "Dei galdu 1 eta %d irakurri gabeko mezu"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Modu pertsonala gaituta"
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Ezgaitu Itzali soinu guztiak Irisgarritasun ezarpenetan."
+
index c7178a2..3eeca4f 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Suuri äänenvoimakkuus vaurioittaa kuuloasi pitkäaikaisen kuuntelun aikana"
+msgstr "Suuri äänenvoimakkuus vaurioittaa kuuloasi pitkäaikaisen kuuntelun aikana."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Media"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Varoitus"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Media"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Kuulokkeet"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Äänenvoimakkuutta ei voi säätää, kun kaikki äänet on poistettu käytöstä. Voit ottaa äänet käyttöön siirtymällä helppokäyttöisyysasetuksiin."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Nyt on klo %d:%d ip."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Nyt on klo %d:%d ap."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "%1$d vastaamatonta puhelua ja %2$d lukematonta viestiä"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d vastaamatonta puhelua"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d uutta viestiä"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 vastaamaton puhelu"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 uusi viesti"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Kello on %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 vastaamaton puhelu ja 1 lukematon viesti"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d vastaamatonta puhelua ja 1 lukematon viesti"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 vastaamaton puhelu ja %d lukematonta viestiä"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Henkilökohtainen tila käytössä."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Poista Poista äänet käytöstä -toiminto helppokäyttöasetuksissa käytöstä."
+
diff --git a/po/fr.po b/po/fr.po
new file mode 100644 (file)
index 0000000..b1fc55c
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,60 @@
+msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "L'écoute prolongée de musique à un volume élevé risque d'endommager votre audition."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Média"
+
+msgid "IDS_COM_BODY_ANDROID"
+msgstr "Android"
+
+msgid "IDS_COM_BODY_JAVA"
+msgstr "Java"
+
+msgid "IDS_COM_BODY_WARNING"
+msgstr "Avertissement"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Écouteurs"
+
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Impossible d'ajuster le volume lorsque le son est désactivé. Vous pouvez activer le son en accédant aux paramètres d'accessibilité."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Il est %d:%d de l'après-midi."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Il est %d:%d du matin."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Vous avez %1$d appels manqués et %2$d messages non lus."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d appels manqués"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d nouveaux messages"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 appel manqué"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nouveau message"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Il est %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 appel manqué et 1 message non lu"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d appels manqués et 1 message non lu"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 appel manqué et %d messages non lus"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Mode personnel activé"
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Désactivez l'option Désactiver tous les sons dans le menu Paramètres d'accessibilité."
+
index 4437185..ab044b1 100644 (file)
@@ -1,5 +1,5 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "L'écoute prolongée de musique à un volume élevé risque d'endommager votre audition"
+msgstr "L'écoute prolongée de musique à un volume élevé risque d'endommager votre audition."
 
 msgid "IDS_COM_BODY_MEDIA"
 msgstr "Média"
@@ -16,3 +16,45 @@ msgstr "Avertissement"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Écouteurs"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Impossible d'ajuster le volume lorsque le son est désactivé. Vous pouvez activer le son en accédant aux paramètres d'accessibilité."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Il est %d:%d de l'après-midi."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Il est %d:%d du matin."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Vous avez %1$d appels manqués et %2$d messages non lus."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d appels manqués"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d nouveaux messages"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 appel manqué"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nouveau message"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Il est %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 appel manqué et 1 message non lu"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d appels manqués et 1 message non lu"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 appel manqué et %d messages non lus"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Mode personnel activé."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Désactivez Désactiver tous les sons dans Paramètres d'accessibilité."
+
index ece5be6..e88b0c1 100644 (file)
@@ -1,6 +1,9 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
 msgstr " L'écoute prolongée de musique à un volume élevé risque d'endommager votre audition"
 
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Média"
+
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
 
@@ -10,9 +13,45 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Avertissement"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Média"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
-msgstr "Ecouteurs"
+msgstr "Écouteurs"
+
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Impossible d'ajuster le volume lorsque le son est désactivé. Vous pouvez activer le son en accédant aux paramètres d'accessibilité."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Il est %d:%02d de l'après-midi"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Il est %d:%02d du matin"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Vous avez %1$d appels manqués et %2$d messages non lus"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d appels manqués"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d nouveaux messages"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 appel manqué"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nouveau message"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Il est %1$d:%2$02d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 appel manqué et 1 message non lu"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d appels manqués et 1 message non lu"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 appel manqué et %d messages non lus"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Mode personnel activé"
 
index 3382374..45d7ebd 100644 (file)
--- a/po/ga.po
+++ b/po/ga.po
@@ -16,3 +16,42 @@ msgstr "Rabhadh"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Cluasáin"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Ní féidir an airde a choigeartú agus gach fuaim casta as. Féadann tú fuaim a chasadh air trí ghabháil chuig socruithe inrochtaineachta."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Tá sé %d:%02d I.N."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Tá sé %d:%02d R.N."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Tá %1$d glao caillte agus %2$d teachtaireacht neamhléite agat"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d glao caillte"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d teachtaireacht nua"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 ghlao caillte"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 teachtaireacht nua"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "%1$d:%2$02d an t-am anois"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 ghlao a cailleadh agus 1 teachtaireacht neamhléite"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d glao a cailleadh agus 1 teachtaireacht neamhléite"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 ghlao a cailleadh agus %d teachtaireacht neamhléite"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Mód pearsanta cumasaithe"
+
index 0c9d7de..7998ff4 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -16,3 +16,45 @@ msgstr "Aviso"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Auriculares"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Non se pode axustar o volume mentres todo o son está desactivado. Podes activar o son dirixíndote aos axustes de accesibilidade."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Son as %d:%d PM"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Son as %d:%d AM"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Tes %1$d chamadas perdidas e %2$d mensaxes sen ler"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d chamadas perdidas"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d mensaxes novas"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 chamada perdida"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nova mensaxe"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Son as %1$d:%2$d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 chamada perdida e 1 mensaxe sen ler"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d chamadas perdidas e 1 mensaxe sen ler"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 chamada perdida e %d mensaxes sen ler"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Modo persoal activado"
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Desactiva Desactivar todos os sons nos axustes de accesibilidade."
+
index cce70e5..19ce62e 100644 (file)
--- a/po/hi.po
+++ b/po/hi.po
@@ -1,18 +1,57 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
 msgstr "उच्च वॉल्यूम से आपके सुनने में नुकसान हो सकता है यदि आप लंबे समय तक उसे सुनते हैं"
 
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "मीडिया"
+
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "एंड्रोइड"
 
 msgid "IDS_COM_BODY_JAVA"
-msgstr "Java"
+msgstr "जावा"
 
 msgid "IDS_COM_BODY_WARNING"
 msgstr "चेतावनी"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "मीडिया"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "हेडफ़ोन्‍स"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "सभी ध्वनि बंद करने के दौरान वोल्यूम समायोजित करने में अक्षम। एक्‍सेसीबीलीटी सेटिंग्स पर जाते हुए आप ध्वनि चालू कर सकते हैं।"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "समय है %d:%02d PM"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "समय है %d:%02d AM"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "आपके पास %1$d छूटी कॉलें और %2$d अपठित सन्देश हैं"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d छूटी कॉल्स"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d नए संदेश"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 छूटी कॉल"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 नया संदेश"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "यह %1$d:%2$02d है"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 छूटी कॉल और 1 अपठित संदेश"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d छूटी कॉल और 1 अपठित संदेश"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 छूटी कॉल और %d अपठित संदेश"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "व्यक्तिगत मोड सक्षम किया गया है"
+
index d78e735..406d540 100644 (file)
--- a/po/hr.po
+++ b/po/hr.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Velika glasnoća može oštetiti sluh pri dugom slušanju"
+msgstr "Velika glasnoća može oštetiti sluh pri dugom slušanju."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Mediji"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Upozorenje"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Mediji"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Slušalice"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Greška prilagođavanja glasnoće kada je zvuk isključen. Možete uključiti zvuk tako da odete na postavke pristupačnosti."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Sada je %d:%d poslijepodne."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Sada je %d:%d ujutro."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Imate %1$d propuštenih poziva i %2$d nepročitanih poruka."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d propuštenih poziva"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d novih poruka"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 propušten poziv"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nova poruka"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Sada je %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 propušten poziv i 1 nepročitana poruka"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d propuštenih poziva i 1 nepročitana poruka"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 propušten poziv i %d nepročitanih poruka"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Uključen Osobni način rada."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Isključi funkciju Isključi sve zvukove u Postavkama pristupačnosti."
+
index 696f86d..1da2dff 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Ha sokáig hallgat nagy hangerőn zenét vagy egyebet, akkor károsodhat a hallása"
+msgstr "Ha sokáig hallgat nagy hangerőn zenét vagy egyebet, akkor károsodhat a hallása."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Média"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Figyelmeztetés"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Média"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Fejhallgató"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Ha minden hang ki van kapcsolva, nem módosítható a hangerő. A kisegítő lehetőségek beállításaiban bekapcsolhatja a hangot."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "%d:%d du. van."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "%d:%d de. van."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Van %1$d nem fogadott hívása és %2$d olvasatlan üzenete."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d nem fogadott hívás"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d új üzenet"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 nem fogadott hívás"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 új üzenet"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "%1$d óra %2$d perc van."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 nem fogadott hívás és 1 olvasatlan üzenet"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d nem fogadott hívás és 1 olvasatlan üzenet"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 nem fogadott hívás és %d olvasatlan üzenet"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Személyes mód engedélyezve."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Tiltsa le a Minden hang kikapcsolását a Kisegítő lehetőségek beállításaiban."
+
index 299d0a3..13ce8ae 100644 (file)
--- a/po/hy.po
+++ b/po/hy.po
@@ -1,5 +1,5 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Բարձր ձայնը կարող է վնասել Ձեր լսողությունը, եթե այն լսեք երկար ժամանակ"
+msgstr "Բարձր ձայնը կարող է վնասել Ձեր լսողությունը, եթե այն լսեք երկար ժամանակ:"
 
 msgid "IDS_COM_BODY_MEDIA"
 msgstr "Մեդիա"
@@ -16,3 +16,45 @@ msgstr "Զգուշացում"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Գլխ. հեռախոսներ"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Անհնար է կարգավորել ձայնի ուժգնությունը, երբ բոլոր ձայներն անջատված են: Կարող եք միացնել ձայնը՝ գնալով մատչելիության դրվածքներ:"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Ժամը՝ %d:%d PM:"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Ժամը՝ %d:%d AM:"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Դուք ունեք %1$d կորսված զանգ և %2$d չկարդացված հաղորդագրություն:"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d կորսված զանգ"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d նոր հաղորդագրություն"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 կորսված զանգ"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 նոր հաղորդագրություն"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Ժամը %1$d:%2$d է:"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 կորսված զանգ և 1 չկարդացված հաղորդագրություն"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d կորսված զանգ և 1 չկարդացված հաղորդագրություն"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 կորսված զանգ և %d չկարդացված հաղորդագրություն"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Անհատական ռեժիմն ընձեռված է:"
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Մատչելիության դրվածքներում կասեցրեք «Անջատել բոլոր հնչյունները»:"
+
index 174b96b..00bec94 100644 (file)
--- a/po/is.po
+++ b/po/is.po
@@ -1,8 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Hátt spiluð tónlist getur skaðað heyrn þína ef hlustað er í langan tíma í einu"
+msgstr "Hátt spiluð tónlist getur skaðað heyrn þína ef hlustað er í langan tíma í einu."
 
 msgid "IDS_COM_BODY_MEDIA"
-msgstr "Miðill"
+msgstr "Margmiðlunarefni"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -16,3 +16,45 @@ msgstr "Viðvörun"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Höfuðtól"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Ekki er hægt að stilla hljóðstyrk þegar slökkt er á hljóði. Þú getur kveikt á hljóði í aðgengisstillingum."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Hún er %d:%d eftir hádegi."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Hún er %d:%d fyrir hádegi."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Þú átt %1$d ósvaraðar hringingar og %2$d ólesin skilaboð."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d ósvöruð símtöl"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d ný skilaboð"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "Eitt ósvarað símtal"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "Ein ný skilaboð"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Klukkan er %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "Eitt ósvarað símtal og ein ólesin skilaboð"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d ósvöruð símtöl og ein ólesin skilaboð"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "Eitt ósvarað símtal og %d ólesin skilaboð"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Kveikt á einkastillingu."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Gerðu „Slökkva á öllum hljóðum“ óvirkt í aðgengisstillingum."
+
index 26f69ca..4fb3ffc 100644 (file)
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Volumi troppo alti possono danneggiare l'udito in caso di ascolto prolungato"
+msgstr "Volumi troppo alti possono danneggiare l'udito in caso di ascolto prolungato."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Multimedia"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Avviso"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Multimedia"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Cuffie"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Impossibile regolare il volume se tutti i suoni sono disattivati. Potete attivare i suoni accedendo alle impostazioni di accessibilità."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Sono le %d:%d PM."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Sono le %d:%d AM."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "%1$d chiamate perse e %2$d messaggi non letti."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d chiamate perse"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d nuovi messaggi"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 chiamata persa"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nuovo messaggio"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Sono le %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 chiamata persa e 1 messaggio non letto"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d chiamate perse e 1 messaggio non letto"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 chiamata persa e %d messaggi non letti"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Modalità Personale attivata."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Disabilitate l'opzione Disattiva tutti i suoni nelle impostazioni di accessibilità."
+
index a35215f..ac64540 100644 (file)
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr " ​長時間​​大音量​​で​​聴き​​続ける​​と、​​聴力​​を​​損傷​​する​​可能性​​が​​あります"
+msgstr " 長時間大音量で聴き続けると、聴力を損傷する可能性があります"
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "メディア"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,45 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "警告"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "メディア"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "ヘッドホン"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "[全ての音をOFF]を有効にしている間は音量を調整できません。[ユーザー補助]から、音量をONにできます。"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "午後%d時%d分です。"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "午前%d時%d分です。"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "%1$d件の不在着信と、%2$d件の未読メッセージがあります。"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d件の不在着信があります。"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d件の新着メッセージがあります。"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1件の不在着信があります。"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1件の新着メッセージがあります。"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "%1$d:%2$dです。"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1件の不在着信と1件の未読メッセージ"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d件の不在着信と1件の未読メッセージ"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1件の不在着信と%d件の未読メッセージ"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "パーソナルモードが有効になりました。"
+
index 57ddae2..6d3ea46 100644 (file)
--- a/po/ka.po
+++ b/po/ka.po
@@ -1,5 +1,5 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "ხანგრძლივი დროით მუსიკის მაღალ ხმაზე მოსმენა შეიძლება გახდეს სმენის დაქვეითების მიზეზი"
+msgstr "ხანგრძლივი დროით მუსიკის მაღალ ხმაზე მოსმენა შეიძლება გახდეს სმენის დაქვეითების მიზეზი."
 
 msgid "IDS_COM_BODY_MEDIA"
 msgstr "მედია"
@@ -16,3 +16,45 @@ msgstr "გაფრთხილება"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "გარნიტურები"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "ხმის სიმაღლეს ვერ დააყენებთ, როდესაც ყველა ხმა გამორთულია. შეგიძლიათ გახსნათ წვდომის პარამეტრები და ჩართოთ ხმა."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "ახლა არის %d:%d, შუადღის შემდეგ."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "ახლა არის %d:%d, შუადღემდე."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "თქვენ გაქვთ %1$d გამოტოვებული ზარი და %2$d წაუკითხავი წერილი."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d გამოტოვებული ზარი"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d ახალი წერილი"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 გამოტოვებული ზარი"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 ახალი წერილი"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "ახლა არის %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 გამოტოვებული ზარი და 1 წაუკითხავი წერილი"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d გამოტოვებული ზარი და 1 წაუკითხავი წერილი"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 გამოტოვებული ზარი და %d წაუკითხავი წერილი"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "პერსონალური რეჟიმი გააქტიურებულია."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "წვდომის პარამეტრებში გამორთეთ ყველა ხმის გამორთვა."
+
index 4b21e9d..a1d486f 100644 (file)
--- a/po/kk.po
+++ b/po/kk.po
@@ -1,5 +1,5 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Ұзақ уақыт тыңдайтын болсаңыз, қатты дауыс деңгейі есту мүшеңізді зақымдауы мүмкін"
+msgstr "Ұзақ уақыт тыңдайтын болсаңыз, қатты дауыс деңгейі есту мүшеңізді зақымдауы мүмкін."
 
 msgid "IDS_COM_BODY_MEDIA"
 msgstr "Ақпарат"
@@ -16,3 +16,45 @@ msgstr "Ескерту"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Құлаққаптар"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Барлық дыбыс өшірулі кезде дыбыс деңгейін реттеу мүмкін емес. Арнайы мүмкіндіктер параметрлеріне өту арқылы дыбысты қосуға болады."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Сағат %d:%d PM."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Сағат %d:%d AM."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Сізде қабылданбаған %1$d қоңырау және оқылмаған %2$d хабар бар."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d қабылданбаған қоңырау"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d жаңа хабар"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 қабылданбаған нөмір"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 жаңа хабар"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Ол — %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 қабылданбаған қоңырау және 1 оқылмаған хабар"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d қабылданбаған қоңырау және 1 оқылмаған хабар"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 қабылданбаған қоңырау және %d оқылмаған хабар"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Жеке режим іске қосылды."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Қол жетімділік параметрлерінен Барлық дыбыстарды өшіру опциясын өшіріңіз."
+
index 6f4d30e..af70dca 100644 (file)
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "오랫동안 큰 소리로 음악을 들으면 청각이 손상될 수 있습니다"
+msgstr "오랫동안 큰 소리로 음악을 들으면 청각이 손상될 수 있습니다."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "미디어"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "안드로이드"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "경고"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "미디어"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "헤드폰"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "모든 소리가 꺼진 상태에서는 음량을 조절할 수 없습니다. 접근성 설정으로 이동하여 소리를 켤 수 있습니다."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "오후 %d시%d분입니다."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "오전 %d시%d분입니다."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "%1$d개의 부재중 전화 및 %2$d개의 읽지 않은 메시지가 있습니다."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d개의 부재중 전화가 있습니다"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d개의 새 메시지가 있습니다"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "부재중 전화가 1통 있습니다"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "새 메시지가 1개 있습니다"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "%1$d시 %2$d분입니다."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1통의 부재중 전화와 1개의 읽지 않은 메시지가 있습니다"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d개의 부재중 전화와 1개의 읽지 않은 메시지가 있습니다"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1통의 부재중 전화와 %d개의 읽지 않은 메시지가 있습니다"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "개인 모드가 실행되었습니다."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "접근성 설정에서 [모든 소리 끄기]를 해제하세요."
+
index a8b3357..69c4653 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Jei klausysitės garsiai ilgą laiką, gali būti pažeista klausa"
+msgstr "Jei klausysitės garsiai ilgą laiką, gali būti pažeista klausa."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Daugialypė terpė"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "„Android“"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Perspėjimas"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Daugialypė terpė"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Ausinės"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Neįmanoma sureguliuoti garso, kai išjungti visi garsai. Garsą galite įjungti pritaikymo neįgaliesiems nustatymuose."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Dabar %d:%d (popiet)."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Dabar %d:%d (priešpiet)."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Yra %1$d praleisti (-ų) skambučiai (-ių) ir %2$d neskaitytos (-ų) žinutės (-ių)."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "Praleista skambučių: %d"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "Naujų žinučių: %d"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 praleistas skambutis"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nauja žinutė"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Tai %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 praleistas skambutis ir 1 neperskaityta žinutė"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d praleisti (-ų) skambučiai (-ių) ir 1 neperskaityta žinutė"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 praleistas skambutis ir %d neperskaitytos (-ų) žinutės (-ių)"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Asmeninis režimas įjungtas."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Pritaikymo neįgaliesiems nustatymuose išjunkite „Išjungti visus garsus“."
+
index 7949db5..3843142 100644 (file)
--- a/po/lv.po
+++ b/po/lv.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Ilgstoša skaļas mūzikas klausīšanās var izraisīt dzirdes traucējumus"
+msgstr "Ilgstoša skaļas mūzikas klausīšanās var izraisīt dzirdes traucējumus."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Multivide"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Brīdinājums"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Multivide"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Austiņas"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Nevar pielāgot skaļuma līmeni, ja visas skaņas ir izslēgtas. Lai ieslēgtu skaņu, dodieties uz pieejamības iestatījumiem."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Pareizs laiks %d:%d pēcpusdienā."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Pareizs laiks %d:%d priekšpusdienā."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Jums ir %1$d neatbildēti zvani un %2$d nelasītas ziņas."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d neatbildēti zvani"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d jaunas ziņas"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 neatbildēts zvans"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 jauna ziņa"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Pareizs laiks ir %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 neatbildēts zvans un 1 nelasīta ziņa"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d neatbildēti zvani un 1 nelasīta ziņa"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 neatbildēts zvans un %d nelasītas ziņas"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Personiskais režīms ir aktivizēts."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Pieejamības iestatījumos deaktivizējiet funkciju Izslēgt visas skaņas."
+
index a348a15..e39c3c0 100644 (file)
--- a/po/mk.po
+++ b/po/mk.po
@@ -16,3 +16,42 @@ msgstr "Предупредување"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Слушалки"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Не може да се прилагоди јачината додека сите звуци се исклучени. Може да го вклучите звукот одејќи во опциите за пристапност."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Сега е %d:%02d PM"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Сега е %d:%02d AM"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Имате %1$d пропуштени повици и %2$d непрочитани пораки"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d пропуштени повици"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d нови пораки"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 пропуштен повик"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 нова порака"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Сега е %1$d:%2$02d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 пропуштен повик и 1 непрочитана порака"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d пропуштени повици и 1 непрочитана порака"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 пропуштен повик и %d непрочитани пораки"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Личниот режим е вклучен"
+
diff --git a/po/mn_MN.po b/po/mn_MN.po
new file mode 100644 (file)
index 0000000..528ab50
--- /dev/null
@@ -0,0 +1,60 @@
+msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Хэрэв та дууг чангаар удаан сонсвол сонсгол тань гэмтээж болзошгүй."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Медиа"
+
+msgid "IDS_COM_BODY_ANDROID"
+msgstr "Android"
+
+msgid "IDS_COM_BODY_JAVA"
+msgstr "Java"
+
+msgid "IDS_COM_BODY_WARNING"
+msgstr "Анхааруулга"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Чихэвч"
+
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Дуу хаагдсан үед дууны хэмжээ тохируулах боломжгүй. Та хандалтын тохиргоо руу очиж дууг нээх боломжтой."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Одоо %d:%d PM"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Одоо %d:%d AM"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Танд %1$d аваагүй дуудлага ба %2$d уншаагүй зурвас байна"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d missed calls"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d new messages"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 missed call"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 new message"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Энэ нь %1$d:%2$d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 missed call and 1 unread message"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d missed calls and 1 unread message"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 missed call and %d unread messages"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Хувийн горим идэвхжсэн."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Хандалтын тохиргоонд Бүх дууг унтраахыг идэвхгүй болго."
+
index 177cec0..0d9b309 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -1,5 +1,5 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Høy lydstyrke kan skade hørselen din hvis du lytter til det over lengre perioder"
+msgstr "Høy lydstyrke kan skade hørselen din hvis du lytter til det over lengre perioder."
 
 msgid "IDS_COM_BODY_MEDIA"
 msgstr "Medier"
@@ -16,3 +16,45 @@ msgstr "Advarsel"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Hodetelefoner"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Kan ikke justere volumet mens all lyd er slått av. Du kan slå på lyd ved å gå til tilgjengelighetsinnstillinger."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Klokken er %d:%d."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Klokken er %d:%d."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Du har %1$d tapte anrop og %2$d uleste meldinger."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d tapte anrop"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d nye meldinger"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 ubesvart anrop"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 ny melding"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Den er %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 tapt anrop og 1 ulest melding"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d tapte anrop og 1 ulest melding"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 tapt anrop og %d uleste meldinger"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Personlig modus aktivert."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Deaktiver Slå av alle lyder i tilgjengelighetsinnstillingene."
+
diff --git a/po/nl.po b/po/nl.po
new file mode 100644 (file)
index 0000000..e5d7415
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,60 @@
+msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Hoog volume kan uw gehoor beschadigen wanneer u er lang naar luistert."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Media"
+
+msgid "IDS_COM_BODY_ANDROID"
+msgstr "Android"
+
+msgid "IDS_COM_BODY_JAVA"
+msgstr "Java"
+
+msgid "IDS_COM_BODY_WARNING"
+msgstr "Waarschuwing"
+
+msgid "IDS_COM_OPT_HEADPHONES_ABB"
+msgstr "Koptelefoons"
+
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Kan het volume niet aanpassen als alle geluiden uit zijn. Zet het geluid aan via de toegankelijkheidsinstellingen."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Het is %d:%d nm."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Het is %d:%d vm."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "U hebt %1$d gemiste oproepen en %2$d ongelezen berichten."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d gemiste oproepen"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d nieuwe berichten"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 gemiste oproep"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nieuw bericht"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Het is %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 gemiste oproep en 1 ongelezen bericht"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d gemiste oproepen en 1 ongelezen bericht"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 gemiste oproep en %d ongelezen berichten"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Persoonlijke stand ingeschakeld."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Schakel Alle geluiden uit in Toegankelijkheidsinstellingen uit."
+
index 038c6bf..4d52084 100644 (file)
@@ -1,6 +1,9 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
 msgstr "Hoog volume kan uw gehoor beschadigen wanneer u er lang naar luistert"
 
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Media"
+
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
 
@@ -10,9 +13,45 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Waarschuwing"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Media"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Koptelefoons"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Kan het volume niet aanpassen als alle geluiden uit zijn. Zet het geluid aan via de toegankelijkheidsinstellingen."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Het is %d:%02d nm"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Het is %d:%02d vm"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "U hebt %1$d gemiste oproepen en %2$d ongelezen berichten"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d gemiste oproepen"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d nieuwe berichten"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 gemiste oproep"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nieuw bericht"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Het is %1$d:%2$02d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 gemiste oproep en 1 ongelezen bericht"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d gemiste oproepen en 1 ongelezen bericht"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 gemiste oproep en %d ongelezen berichten"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Persoonlijke stand ingeschakeld"
+
index 700a5d4..7fc5f25 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Słuchanie muzyki przy wysokim ustawieniu głośności przez długi czas może spowodować uszkodzenie słuchu"
+msgstr "Słuchanie muzyki przy wysokim ustawieniu głośności przez długi czas może spowodować uszkodzenie słuchu."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Media"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Ostrzeżenie"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Media"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Słuchawki"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Nie można dostosować głośności, gdy dźwięk jest wyłączony. Możesz włączyć dźwięk, przechodząc do ustawień dostępności."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Godzina %d:%d po południu"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Godzina %d:%d rano"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Nieodebranych połączeń: %1$d i nieprzeczytanych wiadomości: %2$d."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "Nieodebranych połączeń %d"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "Nowych wiadomości %d"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "Nieodebranych połączeń 1"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "Nowych wiadomości 1"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Godzina %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "Nieodebranych połączeń 1 i nieprzeczytanych wiadomości 1"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "Nieodebranych połączeń %d i nieprzeczytanych wiadomości 1"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr " Nieodebranych połączeń 1 i nieprzeczytanych wiadomości %d"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Tryb osobisty włączony."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Wyłącz opcję Wyłącz wszystkie dźwięki w ustawieniach opcji Dostępność."
+
index a04d26a..dce7238 100644 (file)
@@ -1,5 +1,5 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "O volume alto do som  pode prejudicar a sua audição se a expor durante muito tempo"
+msgstr "O volume alto do som pode prejudicar a sua audição se a expor durante muito tempo."
 
 msgid "IDS_COM_BODY_MEDIA"
 msgstr "Mídia"
@@ -16,3 +16,45 @@ msgstr "Aviso"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Fones de ouvido"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Não é possível ajustar o volume enquanto todos os sons estiverem desligados. Você pode ligar os sons indo para as configurações de acessibilidade."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "São %d:%d PM."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "São %d:%d AM."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Você tem %1$d chamadas perdidas e %2$d mensagens não lidas."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d chamadas perdidas"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d novas mensagens"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 chamada perdida"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nova mensagem"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "São %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 chamada perdida e 1 mensagem não lida"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d chamadas perdidas e 1 mensagem não lida"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 chamada perdida e %d mensagens não lidas"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Modo Pessoal ativado."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Desativar desligar todos os sons nas configurações de Acessibilidade."
+
index deeeae3..9ba2a6a 100644 (file)
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "O volume de som elevado pode prejudicar a sua audição se a expuser a este durante muito tempo"
+msgstr "O volume de som elevado pode prejudicar a sua audição se a expuser a este durante muito tempo."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Multimédia"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Aviso"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Multimédia"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Auscultadores"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Impossível regular o volume quando todos os sons estão desligados. Pode ligar o som acedendo às definições de acessibilidade."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "São %d:%d PM."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "São %d:%d AM."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Tem %1$d chamadas perdidas e %2$d mensagens não lidas."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d chamadas perdidas"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d mensagens novas"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 chamada não atendida"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 mensagem nova"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "São %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 chamada perdida e 1 mensagem não lida"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d chamadas perdidas e 1 mensagem não lida"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 chamada perdida e %d mensagens não lidas"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Modo Pessoal activado."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Desactive Desligar todos os sons nas definições de Acessibilidade."
+
index 57c032f..bc89dd5 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Sunetele la volum ridicat pot afecta auzul, dacă le ascultaţi timp îndelungat"
+msgstr "Sunetele la volum ridicat pot afecta auzul, dacă le ascultaţi timp îndelungat."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Media"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Avertisment"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Media"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Căşti"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Imposibil de reglat volumul când toate sunetele sunt dezactivate. Puteţi activa sunetul accesând setările de accesibilitate."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Este ora %d:%d p.m."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Este ora %d:%d a.m."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Aveţi %1$d apeluri pierdute şi %2$d mesaje necitite."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d apeluri pierdute"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d mesaje noi"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 apel pierdut"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 mesaj nou"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Este %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 apel pierdut şi 1 mesaj necitit"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d apeluri pierdute şi 1 mesaj necitit"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 apel pierdut şi %d mesaje necitite"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Mod Personal activat"
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Dezactivaţi Oprire toate sunetele în setările Accesibilitate."
+
index 9c14ef4..b30082c 100644 (file)
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Прослушивание громкой музыки в течение продолжительного времени может привести к ухудшению слуха"
+msgstr "Прослушивание громкой музыки в течение продолжительного времени может привести к ухудшению слуха."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Медиа"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Предупреждение"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Медиа"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Наушники"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Невозможно настроить громкость, если отключены все звуки. Звук можно включить в меню “Параметры специальных возможностей”."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Сейчас %d:%d после полудня."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Сейчас %d:%d до полудня."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "У вас есть пропущенные вызовы (%1$d) и непрочитанные сообщения (%2$d)."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "Пропущено вызовов: %d"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "Новых сообщений: %d"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 пропущенный вызов"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 новое сообщение"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Сейчас %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "Пропущено вызовов: 1, не прочитано сообщений: 1"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "Пропущено вызовов: %d, не прочитано сообщений: 1"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "Пропущено вызовов: 1, не прочитано сообщений: %d"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Личный режим включен."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Отключить в специальных возможностях параметр “Отключение всех звуков”."
+
index e09ad1e..628e012 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Vysoká hlasitosť môže pri dlhodobom počúvaní poškodiť sluch"
+msgstr "Vysoká hlasitosť môže pri dlhodobom počúvaní poškodiť sluch."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Médium"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Varovanie"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Médium"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Slúchadlá"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Keď sú vypnuté všetky zvuky, nedá sa upraviť hlasitosť. Zvuk môžete zapnúť v nastaveniach zjednodušenia ovládania."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Je %d:%d PM."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Je %d:%d AM."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Máte zmeškané hovory v počte %1$d a neprečítané správy v počte %2$d."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "Zmeškané hovory: %d"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "Nové správy: %d"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 zmeškaný hovor"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nová správa"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Je %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 zmeškaný hovor a 1 neprečítaná správa"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "Zmeškané hovory v počte %d a 1 neprečítaná správa"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 zmeškaný hovor a neprečítané správy v počte %d"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Osobný režim je zapnutý."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Vypnite možnosť Vypnúť všetky zvuky v menu Nastavenia zjednodušenia ovládania."
+
index 8d2d911..7564949 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Če glasno glasbo poslušate daljši čas, lahko to škoduje vašem sluhu"
+msgstr "Če glasno glasbo poslušate daljši čas, lahko to škoduje vašem sluhu."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Medij"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Opozorilo"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Medij"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Slušalke"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Glasnosti ni mogoče prilagoditi, ko je zvok izključen. Pojdite v nastavitve dostopnosti in vklopite zvok."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Ura je %d:%d popoldne."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Ura je %d:%d dopoldne."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Imate %1$d zgrešenih klicev in %2$d neprebranih sporočil."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d neodgovorjenih klicev"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d novih sporočil"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 neodgovorjen klic"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 novo sporočilo"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Ura je %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 zgrešen klic in 1 neprebrano sporočilo"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d zgrešenih klicev in 1 neprebrano sporočilo"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 zgrešen klic in %d neprebranih sporočil"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Osebni način omogočen."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Onemogočite možnost Izklop vseh zvokov v meniju Nastavitve dostopnosti."
+
index 29dd718..a25666e 100644 (file)
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Velika jačina zvuka može da ošteti sluh ukoliko tako slušate duže vreme"
+msgstr "Velika jačina zvuka može da ošteti sluh ukoliko tako slušate duže vreme."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Mediji"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Upozorenje"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Mediji"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Slušalice"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Nije moguće podesiti jačinu zvuka dok su svi zvukovi isključeni. Uključi zvuk tako što ćeš otići na podešavanja pristupanja."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Sad je %d:%d PM."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Sad je %d:%d AM."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Imaš propuštenih poziva: %1$d i nepročitanih poruka: %2$d."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d propuštenih poziva"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d nove/ih poruke/a"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 propušten poziv"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nova poruka"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Sada je %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 propušten poziv 1 nepročitana poruka"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d propuštena/ih poziva i 1 nepročitana poruka"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 propušteni poziv i %d nepročitane/ih poruke/a"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Ličan režim je omogućen."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Onemogući opciju Isključi sve zvuke u Podešavanjima pristupačnosti."
+
index e837074..4c02234 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Hög volym kan skada din hörsel om du lyssnar för länge"
+msgstr "Hög volym kan skada din hörsel om du lyssnar för länge."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Media"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Varning"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Media"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Hörlurar"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Det går inte att justera volymen när alla ljud är avstängda. Du kan slå på ljudet i tillgänglighetsinställningarna."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Klockan är %d:%d PM."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Klockan är %d:%d AM."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Du har %1$d missade samtal och %2$d olästa meddelanden."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d missade samtal"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d nya meddelanden"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 missat samtal"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 nytt meddelande"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Klockan är %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 missat samtal och 1 oläst meddelande"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d missade samtal och 1 oläst meddelande"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 missat samtal och %d olästa meddelanden"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Privat läge aktiverat."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Inaktivera Stäng av allt ljud i Hjälpmedelsinställningarna."
+
index 271e339..1181a1a 100644 (file)
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Yüksek ses düzeyi, uzun süre dinlemeniz durumunda işitme duyunuza zarar verebilir"
+msgstr "Yüksek ses düzeyi, uzun süre dinlemeniz durumunda işitme duyunuza zarar verebilir."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Medya"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Uyarı"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Medya"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Kulaklıklar"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Tüm sesler kapalıyken ses düzeyi ayarlanamıyor. Erişebilirlik ayarlarına giderek sesi açabilirsiniz."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Saat öğleden sonra %d:%d."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Saat öğleden önce %d:%d."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "%1$d cevapsız arama ve %2$d okunmamış mesajınız var."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d cevapsız çağrı"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d yeni mesaj"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 cevapsız arama"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 yeni mesaj"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Saat %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 cevapsız arama ve 1 okunmamış mesaj"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d cevapsız arama ve 1 okunmamış mesaj"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 cevapsız arama ve %d okunmamış mesaj"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Kişisel mod etkinleştirildi."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Erişilebilirlik ayarlarında Tüm sesleri kapat seçeneğini devre dışı bırakın."
+
index 08d2684..359189a 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -1,5 +1,8 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Тривале прослуховування за високого рівня гучності може призвести до погіршення слуху"
+msgstr "Тривале прослуховування за високого рівня гучності може призвести до погіршення слуху."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Медіадані"
 
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
@@ -10,9 +13,48 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "Попередження"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "Медіадані"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Навушники"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Неможливо відрегулювати гучність у разі вимкнення всіх звуків. Звуки можна ввімкнути, перейшовши до установок доступності."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Зараз %d:%d після полудня."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Зараз %d:%d до полудня."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Пропущених викликів: %1$d, непрочитаних повідомлень: %2$d."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "Пропущені виклики: %d"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "Нові повідомлення: %d"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 пропущений виклик"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 нове повідомлення"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "Зараз %1$d:%2$d."
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 пропущений виклик; 1 непрочитане повідомлення"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "Пропущених викликів: %d; 1 непрочитане повідомлення"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 пропущений виклик; непрочитаних повідомлень: %d"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Особистий режим увімкнено."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Вимкніть опцію «Вимкнути всі звуки» в установках доступності."
+
old mode 100755 (executable)
new mode 100644 (file)
index bff2330..c84f1a7
@@ -7,10 +7,8 @@ POTFILES=POTFILES.in
 #ALL_LINGUAS= ar bg ca cs da de_DE el_GR en en_GB en_US es_ES fi fr_FR he hi hr hu id it_IT ja_JP ko_KR lt lv ms nl_NL no pl pt_PT ro ru_RU sk sl sr sv th tr_TR uk vi zh_CN zh_HK zh_TW
 ALL_LINGUAS="ar bg ca cs da de_DE el_GR en en_GB en_US es_ES fi fr_FR he hi hr hu id it_IT ja_JP ko_KR lt lv ms nl_NL no pl pt_PT ro ru_RU sk sl sr sv th tr_TR uk vi zh_CN zh_HK zh_TW"
 
-source /etc/tizen-platform.conf
-
-XGETTEXT=${TZ_SYS_BIN}/xgettext
-MSGMERGE=${TZ_SYS_BIN}/msgmerge
+XGETTEXT=/usr/bin/xgettext
+MSGMERGE=/usr/bin/msgmerge
 
 echo -n "Make ${PACKAGE}.pot  "
 if [ ! -e $POTFILES ] ; then
index 85fccdc..1f198cb 100644 (file)
--- a/po/uz.po
+++ b/po/uz.po
@@ -1,5 +1,5 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "Musiqani baland ovozda uzoq vaqt davomida tinglash eshitish a’zolaringizga zarar yetkazishi mumkin"
+msgstr "Musiqani baland ovozda uzoq vaqt davomida tinglash eshitish a’zolaringizga zarar yetkazishi mumkin."
 
 msgid "IDS_COM_BODY_MEDIA"
 msgstr "Media"
@@ -16,3 +16,45 @@ msgstr "Ogohlantirish"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "Quloqliklar"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "Barcha tovushlar o‘chirilganda, ovoz balandligini moslab bo‘lmaydi. Maxsus imkoniyatlar parametrlariga o‘tish orqali ovozni yoqishingiz mumkin."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "Bu %d:%d Tushdan so‘ng."
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "Bu %d:%d Tushdan avvalgi."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "Sizda %1$d o‘tkazib yuborilgan qo‘ng‘iroq va %2$d o‘qilmagan xabar mavjud."
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%dta o‘tkazib yuborilgan qo‘ng‘iroq"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%dta yangi xabar"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1ta o‘tkazib yuborilgan qo‘ng‘iroq"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1ta yangi xabar"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "U %1$d:%2$d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1ta o‘tkazib yuborilgan qo‘ng‘iroq va 1ta o‘qilmagan xabar"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%dta o‘tkazib yuborilgan qo‘ng‘iroq va 1ta o‘qilmagan xabar"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1ta o‘tkazib yuborilgan qo‘ng‘iroq va %dta o‘qilmagan xabar"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "Shaxsiy rejim yoqildi."
+
+msgid "IDS_ST_TPOP_DISABLE_TURN_OFF_ALL_SOUNDS_IN_ACCESSIBILITY_SETTINGS"
+msgstr "Maxsus imkoniyatlar parametrlarida Barcha ovozlarni o‘chirishni o‘chiring."
+
index f1084c3..27d6463 100644 (file)
@@ -1,6 +1,9 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
 msgstr "如果长时间用高音量收听,可能会损坏听力"
 
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "媒体"
+
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
 
@@ -10,9 +13,45 @@ msgstr "Java程序"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "警告"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "媒体"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "耳机"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "所有声音关闭时无法调节音量。您可在辅助功能中打开声音。"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "下午 %d点 %d分"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "上午 %d点 %d分"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "您有 %1$d 个未接来电和 %2$d 条未读消息"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d 个未接来电"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d 条新信息"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 个未接来电"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 条新信息"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "现在时间 %1$d:%2$02d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 个未接来电和 1 条未读信息"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d 个未接来电和 1 条未读信息"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 个未接来电和 %d 条未读信息"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "个人模式已启用"
+
index 3e1988c..3ed4e4b 100644 (file)
@@ -1,6 +1,9 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
 msgstr "長期聆聽高音量會損害您的聽力"
 
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "媒體"
+
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
 
@@ -10,9 +13,45 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "警告"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "媒體"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "耳機"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "所有聲音關閉時無法調整音量。可前往協助工具設定中開啟聲音。"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "現在是下午 %d:%02d"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "現在是上午 %d:%02d"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "您有 %1$d 個未接來電及 %2$d 封未讀取訊息"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d 個未接來電"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d 個新訊息"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 個未接來電"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 則新訊息"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "現在時間是 %1$d:%2$02d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 個未接來電和 1 則未讀訊息"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d 個未接來電和 1 則未讀訊息"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 個未接來電和 %d 則未讀訊息"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "個人模式已啟用"
+
index 6292605..417d165 100644 (file)
@@ -16,3 +16,42 @@ msgstr "警告"
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "耳机"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "所有声音关闭时无法调节音量。您可在无障碍设置中打开声音"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "现在是下午%d:%02d"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "现在是上午%d:%02d"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "您有 %1$d 个未接来电和 %2$d 条未读消息"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d 个未接来电"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d 条新信息"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 个未接来电"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 条新信息"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "现在时间 %1$d:%2$02d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 个未接来电和 1 条未读信息"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d 个未接来电和 1 条未读信息"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 个未接来电和 %d 条未读信息"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "个人模式已启用"
+
index 7b90ac5..76f339e 100644 (file)
@@ -1,6 +1,9 @@
 msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
 msgstr "長期聆聽過大音量會損害您的聽力"
 
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "媒體"
+
 msgid "IDS_COM_BODY_ANDROID"
 msgstr "Android"
 
@@ -10,9 +13,45 @@ msgstr "Java"
 msgid "IDS_COM_BODY_WARNING"
 msgstr "警告"
 
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "媒體"
-
 msgid "IDS_COM_OPT_HEADPHONES_ABB"
 msgstr "耳機"
 
+msgid "IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"
+msgstr "所有音效關閉時無法調整音量。可前往協助工具設定開啟音效。"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_PM"
+msgstr "現在是下午 %d:%02d"
+
+msgid "IDS_TTS_BODY_IT_IS_PD_CPD_AM"
+msgstr "現在是上午 %d:%02d"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS"
+msgstr "您有 %1$d 通未接來電及 %2$d 封未讀取訊息"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"
+msgstr "%d 通未接來電"
+
+msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"
+msgstr "%d 個新訊息"
+
+msgid "IDS_TTS_BODY_1_MISSED_CALL_T_TTS"
+msgstr "1 通未接來電"
+
+msgid "IDS_TTS_BODY_1_NEW_MESSAGE_T_TTS"
+msgstr "1 則新訊息"
+
+msgid "IDS_LCKSCN_BODY_IT_IS_P1SD_CP2SD_T_TTS"
+msgstr "現在時間是 %1$d:%2$02d"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "1 通未接來電與 1 則未讀訊息"
+
+msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_AND_1_UNREAD_MESSAGE_T_TTS"
+msgstr "%d 通未接來電與 1 則未讀訊息"
+
+msgid "IDS_LCKSCN_BODY_1_MISSED_CALL_AND_PD_UNREAD_MESSAGES_T_TTS"
+msgstr "1 通未接來電和 %d 則未讀訊息"
+
+msgid "IDS_ST_BODY_PERSONAL_MODE_ENABLED"
+msgstr "個人模式已啟用"
+
diff --git a/src/_logic.c b/src/_logic.c
deleted file mode 100755 (executable)
index 959531a..0000000
+++ /dev/null
@@ -1,1165 +0,0 @@
-/*
- * org.tizen.volume
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include <math.h>
-
-#include <Ecore.h>
-#include <Ecore_X.h>
-#include <utilX.h>
-#include <vconf.h>
-#include <ui-gadget.h>
-#include <X11/Xatom.h>
-#include <X11/Xutil.h>
-#include <system_info.h>
-
-#include"_logic.h"
-#include "volume.h"
-#include "_util_log.h"
-#include "_util_efl.h"
-#include "_sound.h"
-
-#define STRBUF_SIZE 128
-#define PATHBUF_SIZE 256
-#define EMUL_STR       "Emulator"
-
-enum {
-       IDLELOCK_OFF = 0x0,
-       IDLELOCK_ON,
-       IDLELOCK_MAX,
-};
-
-/* _check_status() return value */
-enum{
-       LOCK_AND_NOT_MEDIA = -0x1,
-       UNLOCK_STATUS,
-       LOCK_AND_MEIDA,
-};
-
-#ifndef VCONFKEY_SETAPPL_ACCESSIBILITY_TURN_OFF_ALL_SOUNDS
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_TURN_OFF_ALL_SOUNDS              VCONFKEY_SETAPPL_PREFIX"/accessibility/turn_off_all_sounds"
-#endif
-
-int _cache_flush(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-
-       Evas *evas = NULL;
-
-       int file_cache = -1;
-       int collection_cache = -1;
-       int image_cache = -1;
-       int font_cache = -1;
-
-       evas = evas_object_evas_get(ad->win);
-       retvm_if(evas == NULL, -1, "Evas is NULL\n");
-
-       file_cache = edje_file_cache_get();
-       collection_cache = edje_collection_cache_get();
-       image_cache = evas_image_cache_get(evas);
-       font_cache = evas_font_cache_get(evas);
-
-       edje_file_cache_set(file_cache);
-       edje_collection_cache_set(collection_cache);
-       evas_image_cache_set(evas, 0);
-       evas_font_cache_set(evas, 0);
-
-       evas_image_cache_flush(evas);
-       evas_render_idle_flush(evas);
-       evas_font_cache_flush(evas);
-
-       edje_file_cache_flush();
-       edje_collection_cache_flush();
-
-       edje_file_cache_set(file_cache);
-       edje_collection_cache_set(collection_cache);
-       evas_image_cache_set(evas, image_cache);
-       evas_font_cache_set(evas, font_cache);
-
-       return 0;
-}
-
-int _close_volume(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-       retvm_if(ad->flag_deleting == EINA_TRUE, -1, "Closing volume\n");
-
-       _D("start closing volume\n");
-       ad->flag_deleting = EINA_TRUE;
-
-       if(ad->flag_exclusive_grabed){
-               _ungrab_key_new(ad);
-       }
-
-       if(ad->flag_top_positioni_grabed){
-               _ungrab_key_new(ad);
-       }
-
-       if(ad->flag_shared_grabed){
-               _ungrab_key_new(ad);
-       }
-
-       _grab_key_new(ad, ad->input_win, SHARED_GRAB);
-
-       DEL_TIMER(ad->sutimer)
-       DEL_TIMER(ad->lutimer)
-       DEL_TIMER(ad->sdtimer)
-       DEL_TIMER(ad->ldtimer)
-       DEL_TIMER(ad->ptimer)
-
-       _D("hide window\n");
-       evas_object_hide(ad->win);
-
-       appcore_flush_memory();
-
-       ad->flag_deleting = EINA_FALSE;
-       ad->flag_launching = EINA_FALSE;
-       _D("end closing volume\n");
-       return 0;
-}
-
-Eina_Bool popup_timer_cb(void *data)
-{
-       _D("%s\n", __func__);
-       _close_volume(data);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-Eina_Bool _lu_timer_cb(void *data)
-{
-       int val = -1;
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument: appdata is NULL\n");
-       retvm_if(ad->win == NULL, ECORE_CALLBACK_CANCEL, "window is NULL");
-       retvm_if(evas_object_visible_get(ad->win) == EINA_FALSE, ECORE_CALLBACK_CANCEL, "window is hide\n");
-
-       DEL_TIMER(ad->stimer)
-
-       _get_sound_level(ad->type, &val);
-       if(val == 15){
-               _D("already 15\n");
-               return ECORE_CALLBACK_CANCEL;
-       }
-       _set_sound_level(ad->type, val +1 > ad->step ? ad->step : val + 1);
-       _D("down, type(%d), step(%d) val[%d]\n", ad->type, ad->step, val+1);
-       return ECORE_CALLBACK_RENEW;
-}
-
-Eina_Bool _su_timer_cb(void *data)
-{
-       int val = -1;
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument: appdata is NULL\n");
-       retvm_if(ad->win == NULL, ECORE_CALLBACK_CANCEL, "window is NULL");
-       retvm_if(evas_object_visible_get(ad->win) == EINA_FALSE, ECORE_CALLBACK_CANCEL, "window is hide\n");
-
-       ecore_timer_interval_set(ad->sutimer, 0.1);
-       DEL_TIMER(ad->stimer)
-
-       _get_sound_level(ad->type, &val);
-       if(val == 15){
-               _D("already 15\n");
-               return ECORE_CALLBACK_CANCEL;
-       }
-       _set_sound_level(ad->type, val +1 > ad->step ? ad->step : val + 1);
-       _D("down, type(%d), step(%d) val[%d]\n", ad->type, ad->step, val+1);
-       return ECORE_CALLBACK_RENEW;
-}
-
-Eina_Bool _ld_timer_cb(void *data)
-{
-       int val = 0;
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument: appdata is NULL\n");
-       retvm_if(ad->win == NULL, ECORE_CALLBACK_CANCEL, "window is NULL");
-       retvm_if(evas_object_visible_get(ad->win) == EINA_FALSE, ECORE_CALLBACK_CANCEL, "window is hide\n");
-
-       DEL_TIMER(ad->stimer)
-
-       _get_sound_level(ad->type, &val);
-       if(val == 0){
-               _D("already 0\n");
-               return ECORE_CALLBACK_CANCEL;
-       }
-       _set_sound_level(ad->type, val -1 <= 0 ? 0 : val - 1);
-       _D("down, type(%d), step(%d) val[%d]\n", ad->type, ad->step, val+1);
-       return ECORE_CALLBACK_RENEW;
-}
-
-Eina_Bool _sd_timer_cb(void *data)
-{
-       int val = 0;
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument: appdata is NULL\n");
-       retvm_if(ad->win == NULL, ECORE_CALLBACK_CANCEL, "window is NULL");
-       retvm_if(evas_object_visible_get(ad->win) == EINA_FALSE, ECORE_CALLBACK_CANCEL, "window is hide\n");
-
-       ecore_timer_interval_set(ad->sdtimer, 0.1);
-       DEL_TIMER(ad->stimer)
-
-       _get_sound_level(ad->type, &val);
-       if(val == 0){
-               _D("already 0\n");
-               return ECORE_CALLBACK_CANCEL;
-       }
-       _set_sound_level(ad->type, val -1 <= 0 ? 0 : val - 1);
-       _D("down, type(%d), step(%d) val[%d]\n", ad->type, ad->step, val+1);
-       return ECORE_CALLBACK_RENEW;
-}
-
-static Eina_Bool _grab_top_position(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument: appdata is NULL\n");
-       _grab_key_new(ad, -1, TOP_POSITION_GRAB);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-Eina_Bool _volume_show(void *data)
-{
-       _D("%s\n", __func__);
-       int status = -1;
-       int type = MM_ERROR_SOUND_VOLUME_CAPTURE_ONLY;
-       int lock = IDLELOCK_ON;
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, EINA_FALSE, "Invalid argument: appdata is NULL\n");
-       retvm_if(ad->flag_deleting ==  EINA_TRUE, EINA_FALSE, "volume is closing\n");
-
-       status = _check_status(&lock, &type);
-       if(status != LOCK_AND_NOT_MEDIA && ad->win)
-       {
-               _init_mm_sound(ad);
-               /* ungrab SHARED_GRAB */
-               //_ungrab_key_new(ad);
-
-               if(status == UNLOCK_STATUS)
-               {
-                       _rotate_func(ad);
-                       elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_HIDE);
-                       evas_object_show(ad->win);
-                       if(syspopup_has_popup(ad->volume_bundle))
-                               syspopup_reset(ad->volume_bundle);
-                       //_grab_key_new(ad, -1, TOP_POSITION_GRAB);
-                       ecore_idler_add(_grab_top_position, ad);
-               }
-               else if(status == LOCK_AND_MEIDA)
-               {
-                       _grab_key_new(ad, ad->input_win, EXCLUSIVE_GRAB);
-               }
-               ad->flag_launching = EINA_TRUE;
-               _mm_func(ad);
-               return EINA_TRUE;
-       }
-       else if(!ad->win)
-       {
-               /* recreate window */
-       }
-
-       _D("status == LOCK_AND_NOT_MEDIA\n");
-       return EINA_FALSE;
-}
-
-static Eina_Bool _key_press_cb(void *data, int type, void *event)
-{
-       int val=0, snd=0, vib=0;
-       Ecore_Event_Key *ev = event;
-       _D("%s %s\n", __func__, ev->keyname);
-       int status = -1;
-       int mtype = MM_ERROR_SOUND_VOLUME_CAPTURE_ONLY;
-       int lock = IDLELOCK_ON;
-       int is_turn_off_all_sounds = 0;
-       int ret = -1;
-       struct appdata *ad = (struct appdata *)data;
-
-       status = _check_status(&lock, &mtype);
-
-       retvm_if(ev == NULL, ECORE_CALLBACK_CANCEL, "Invalid arguemnt: event is NULL\n");
-       retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument: appdata is NULL\n");
-       retvm_if(ad->win == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument: window is NULL\n");
-
-       if(!strcmp(ev->keyname, KEY_CANCEL))
-       {
-               _D("CANCEL Key is pressed\n");
-               _close_volume(ad);
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TURN_OFF_ALL_SOUNDS, &is_turn_off_all_sounds);
-       if(is_turn_off_all_sounds)
-       {
-               if(status == LOCK_AND_NOT_MEDIA)
-                       return ECORE_CALLBACK_CANCEL;
-               notification_status_message_post(_("IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"));
-               retvm_if(is_turn_off_all_sounds == EINA_TRUE, ECORE_CALLBACK_CANCEL,
-                       "VCONFKEY_SETAPPL_ACCESSIBILITY_TURN_OFF_ALL_SOUNDS is set, all sound is mute\n");
-       }
-
-       if(!ad->flag_launching)
-       {
-               if(_volume_show(data) != EINA_TRUE)
-               {
-                       return ECORE_CALLBACK_CANCEL;
-               }
-       }
-
-       if(ad->flag_touching == EINA_TRUE) {
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       ad->flag_pressing = EINA_TRUE;
-
-       DEL_TIMER(ad->ptimer)
-       vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &snd);
-       vconf_get_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vib);
-
-       /* If sound is set off, only RINGTONE, MEDIA types are able to change. */
-       if(!snd && ad->type != VOLUME_TYPE_MEDIA && ad->type != VOLUME_TYPE_RINGTONE){
-               if(vib)_play_vib(ad->sh);
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if (!strcmp(ev->keyname, KEY_VOLUMEUP)) {
-               _get_sound_level(ad->type, &val);
-               if (val == ad->step) {
-                       _set_sound_level(ad->type, ad->step);
-                       if(snd)_play_sound(ad->type, ad->sh);
-                       return ECORE_CALLBACK_CANCEL;
-               }
-               _set_sound_level(ad->type, val + 1);
-               if(snd)_play_sound(ad->type, ad->sh);
-               DEL_TIMER(ad->sutimer)
-               DEL_TIMER(ad->sdtimer)
-               DEL_TIMER(ad->ldtimer)
-               ADD_TIMER(ad->sutimer, 0.5, _su_timer_cb, ad)
-
-               _D("set volume %d -> [%d]\n", val, val+1);
-               if(ad->sutimer == NULL){
-                       _D("error\n");
-               }
-       } else if (!strcmp(ev->keyname, KEY_VOLUMEDOWN)) {
-               _get_sound_level(ad->type, &val);
-               if (val == 0) {
-                       if(vib)_play_vib(ad->sh);
-                       return ECORE_CALLBACK_CANCEL;
-               }
-               _set_sound_level(ad->type, val - 1);
-               if(snd)_play_sound(ad->type, ad->sh);
-               DEL_TIMER(ad->sdtimer)
-               DEL_TIMER(ad->sutimer)
-               DEL_TIMER(ad->lutimer)
-               ADD_TIMER(ad->sdtimer, 0.5, _sd_timer_cb, ad)
-
-               _D("type (%d) set volume %d -> [%d]\n", ad->type, val, val-1);
-       if(ad->sdtimer == NULL)
-               _D("error\n");
-
-       }
-       _D("key press fini\n");
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool _key_release_cb(void *data, int type, void *event)
-{
-       Ecore_Event_Key *ev = event;
-       struct appdata *ad = (struct appdata *)data;
-       _D("%s %s\n", __func__, ev->keyname);
-
-       retvm_if(ev == NULL, ECORE_CALLBACK_CANCEL, "Invalid arguemnt: event is NULL\n");
-       retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument:appdata is NULL\n");
-       retvm_if(ad->win == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument: window is NULL\n");
-
-       if(!strcmp(ev->keyname, KEY_CANCEL))
-       {
-               _D("CANCEL Key is released\n");
-               _close_volume(ad);
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if (ad->flag_touching == EINA_TRUE) {
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if (!strcmp(ev->keyname, KEY_VOLUMEUP)) {
-               _D("up key released and del timer\n");
-               DEL_TIMER(ad->sutimer)
-               DEL_TIMER(ad->lutimer)
-       } else if (!strcmp(ev->keyname, KEY_VOLUMEDOWN)) {
-               _D("down key released and del timer\n");
-               DEL_TIMER(ad->sdtimer)
-               DEL_TIMER(ad->ldtimer)
-       }
-
-       ad->flag_pressing = EINA_FALSE;
-
-       DEL_TIMER(ad->ptimer)
-
-       ADD_TIMER(ad->ptimer, 3.0, popup_timer_cb, ad)
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-int _grab_key_new(struct appdata *ad, Ecore_X_Window _xwin, int grab_mode)
-{
-       _D("%s\n", __func__);
-       Ecore_X_Display *disp = NULL;
-       Ecore_X_Window xwin = 0;
-       int ret = -1;
-
-       /* ALREADY GRAB check */
-       switch(grab_mode)
-       {
-               case SHARED_GRAB : if(ad->flag_shared_grabed)return -1;
-                       break;
-               case EXCLUSIVE_GRAB : if(ad->flag_exclusive_grabed)return -1;
-                       break;
-               case TOP_POSITION_GRAB : if(ad->flag_top_positioni_grabed)return -1;
-                       break;
-       }
-
-       disp = ecore_x_display_get();
-       retvm_if(disp == NULL, -1, "Failed to get display\n");
-
-       if(_xwin == -1)
-       {
-               /* TOP_POSITION_GRAB */
-               xwin = elm_win_xwindow_get(ad->win);
-               retvm_if(xwin == 0, -1, "elm_win_xwindow_get() failed\n");
-       }
-       else
-               xwin = _xwin;
-
-       ret = utilx_grab_key(disp, xwin, KEY_VOLUMEDOWN, grab_mode);
-       retvm_if(ret < 0, -1, "Failed to grab key down\n");
-       retvm_if(ret == 1, -1, "Already grab\n");
-
-       ret = utilx_grab_key(disp, xwin, KEY_VOLUMEUP, grab_mode);
-       retvm_if(ret < 0, -1, "Failed to grab key up\n");
-       retvm_if(ret == 1, -1, "Already grab\n");
-
-       switch(grab_mode)
-       {
-               case SHARED_GRAB :
-                       ad->flag_shared_grabed = EINA_TRUE;
-                       break;
-               case EXCLUSIVE_GRAB :
-                       ad->flag_exclusive_grabed = EINA_TRUE;
-                       break;
-               case TOP_POSITION_GRAB :
-                       ad->flag_top_positioni_grabed = EINA_TRUE;
-                       break;
-       }
-
-       return 0;
-}
-
-int _ungrab_key_new(struct appdata *ad)
-{
-       Ecore_X_Window xwin = 0;
-       Ecore_X_Display *disp = NULL;
-
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-       retvm_if(ad->input_win == 0, -1, "Invalid argument: ad->win is NULL\n");
-
-       xwin = elm_win_xwindow_get(ad->win);
-       retvm_if(xwin == 0, -1, "Failed to get xwindow\n");
-
-       disp = ecore_x_display_get();
-       retvm_if(disp == NULL, -1, "Failed to get display\n");
-
-       utilx_ungrab_key(disp, ad->input_win, KEY_VOLUMEUP);
-       utilx_ungrab_key(disp, ad->input_win, KEY_VOLUMEDOWN);
-       _D("key ungrabed\n");
-
-       if(ad->flag_exclusive_grabed)
-               ad->flag_exclusive_grabed = EINA_FALSE;
-       else if(ad->flag_top_positioni_grabed)
-               ad->flag_top_positioni_grabed = EINA_FALSE;
-       else if(ad->flag_shared_grabed)
-               ad->flag_shared_grabed = EINA_FALSE;
-
-       return 0;
-}
-
-int _get_vconf_idlelock(void)
-{
-       int ret = -1;
-       int lock = IDLELOCK_OFF;
-
-       ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &lock);
-       retvm_if(ret < 0, -1, "Failed to get vconf %s\n",
-                VCONFKEY_IDLE_LOCK_STATE);
-       _D("idlelock vconf:%d\n", lock);
-
-       return lock == VCONFKEY_IDLE_LOCK ? IDLELOCK_ON : IDLELOCK_OFF;
-}
-
-volume_type_t _get_volume_type(void)
-{
-       int ret = MM_ERROR_NONE;
-       volume_type_t type = -1;
-
-       ret = mm_sound_volume_get_current_playing_type(&type);
-       switch (ret) {
-               case MM_ERROR_NONE:
-                       break;
-               case MM_ERROR_SOUND_VOLUME_NO_INSTANCE:
-               case MM_ERROR_SOUND_VOLUME_CAPTURE_ONLY:
-                       type = VOLUME_TYPE_RINGTONE;
-                       break;
-               default:
-                       _D("Failed to get sound type(errno:%x)\n", ret);
-                       return -1;
-       }
-       if(type == VOLUME_TYPE_NOTIFICATION || type == VOLUME_TYPE_SYSTEM)
-               type = VOLUME_TYPE_RINGTONE;
-       return type;
-}
-
-int _check_status(int *lock, int *type)
-{
-       *lock = _get_vconf_idlelock();
-       *type = _get_volume_type();
-       _D("lock(%d) type(%d)\n", *lock, *type);
-
-       if (*type == MM_ERROR_SOUND_VOLUME_CAPTURE_ONLY
-                       || *type == MM_ERROR_SOUND_INTERNAL) {
-               _D("Do not show by type\n");
-               return -1;
-       }
-
-       if (*lock == IDLELOCK_ON && *type != VOLUME_TYPE_MEDIA) {
-               _D("lock is set, not in media\n");
-               return -1;
-       }
-
-       if (*lock == IDLELOCK_ON && *type == VOLUME_TYPE_MEDIA) {
-               _D("lock is set, in media\n");
-               return 1;
-       }
-       _D("unlock status, normal case\n");
-       return 0;
-}
-
-void _starter_user_volume_key_vconf_changed_cb(keynode_t *key, void *data){
-       _D("%s\n", __func__);
-       int ret = EINA_FALSE;
-       vconf_get_int(VCONFKEY_STARTER_USE_VOLUME_KEY, &ret);
-       if(ret != 0)
-       {
-               _D("any other App grab volume hard key\n", __func__);
-               _close_volume(data);
-               vconf_set_int(VCONFKEY_STARTER_USE_VOLUME_KEY, 0);
-       }
-}
-
-void _idle_lock_state_vconf_chnaged_cb(keynode_t *key, void *data){
-       _close_volume(data);
-}
-
-int _app_create(struct appdata *ad)
-{
-       _D("%s\n", __func__);
-       int ret = 0;
-       _init_svi(ad);
-
-       /* create input_window */
-       ad->input_win = _add_input_window();
-       retvm_if(ad->input_win == 0, -1, "Failed to create input window\n");
-
-       /* vconf changed callback */
-       vconf_notify_key_changed(VCONFKEY_STARTER_USE_VOLUME_KEY,
-                                _starter_user_volume_key_vconf_changed_cb, ad);
-
-       /* Lock screen status vconf changed callback */
-       vconf_notify_key_changed(VCONFKEY_IDLE_LOCK_STATE,
-                               _idle_lock_state_vconf_chnaged_cb, ad);
-
-       /* grab volume shared grab */
-       ret = _grab_key_new(ad, ad->input_win, SHARED_GRAB);
-
-       /* ecore event handler add once */
-       if(ad->event_volume_down == NULL)
-               ad->event_volume_down = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _key_press_cb, ad);
-       if(ad->event_volume_up == NULL)
-               ad->event_volume_up = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _key_release_cb, ad);
-
-       _init_mm_sound(ad);
-
-       return ret;
-}
-
-int __utilx_ss_get_window_property(Display *dpy, Window win, Atom atom,
-                                         Atom type, unsigned int *val,
-                                         unsigned int len)
-{
-       unsigned char *prop_ret = NULL;
-       Atom type_ret = -1;
-       unsigned long bytes_after = 0;
-       unsigned long  num_ret = -1;
-       int format_ret = -1;
-       unsigned int i = 0;
-       int num = 0;
-
-       prop_ret = NULL;
-       if (XGetWindowProperty(dpy, win, atom, 0, 0x7fffffff, False,
-                              type, &type_ret, &format_ret, &num_ret,
-                              &bytes_after, &prop_ret) != Success)
-               return -1;
-
-       if (type_ret != type || format_ret != 32)
-               num = -1;
-       else if (num_ret == 0 || !prop_ret)
-               num = 0;
-       else {
-               if (num_ret < len)
-                       len = num_ret;
-               for (i = 0; i < len; i++) {
-                       val[i] = ((unsigned long *)prop_ret)[i];
-               }
-               num = len;
-       }
-
-       if (prop_ret)
-               XFree(prop_ret);
-
-       return num;
-}
-
-int _x_rotation_get(Display *dpy, void *data)
-{
-       Window active_win = 0;
-       Window root_win = 0;
-       int rotation = -1;
-       int ret = -1;
-
-       Atom atom_active_win;
-       Atom atom_win_rotate_angle;
-
-       retvm_if(dpy == NULL, -1, "dpy is NULL\n");
-       root_win = XDefaultRootWindow(dpy);
-
-       atom_active_win = XInternAtom(dpy, "_NET_ACTIVE_WINDOW", False);
-       ret = __utilx_ss_get_window_property(dpy, root_win, atom_active_win,
-                                            XA_WINDOW,
-                                            (unsigned int *)&active_win, 1);
-
-       if(ret < 0)
-               return ret;
-
-       atom_win_rotate_angle = XInternAtom(dpy, "_E_ILLUME_ROTATE_ROOT_ANGLE", False);
-       ret = __utilx_ss_get_window_property(dpy, root_win,
-                                         atom_win_rotate_angle, XA_CARDINAL,
-                                         (unsigned int *)&rotation, 1);
-
-       if(ret != -1)
-               return rotation;
-
-       return -1;
-}
-
-int _volume_popup_resize(void *data, int angle)
-{
-       int rotation = 0;
-       int offx=0, offy=0;
-       Evas_Coord minw = -1, minh = -1;
-       Evas_Coord w = 0, h = 0;
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad->win == NULL, -1, "Invalid argument: window is NULL\n");
-       retvm_if(ad->block_events == NULL, -1, "Invalid argument: notify is NULL\n");
-
-       if(angle == -1)
-               rotation = ad->angle;
-       else
-               rotation = angle;
-
-       ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
-
-       switch(rotation){
-               case 90 :
-               case 270 :
-                       evas_object_resize(ad->block_events, h, w);
-                       edje_object_size_min_get(ad->block_events, &minw, &minh);
-                       edje_object_size_min_restricted_calc(ad->block_events, &minw, &minh, minw, minh);
-                       offx = (h - minw) / 2;
-                       offy = (w - minh) / 5;
-                       break;
-               case 0 :
-               case 180 :
-               default :
-                       evas_object_resize(ad->block_events, w, h);
-                       edje_object_size_min_get(ad->block_events, &minw, &minh);
-                       edje_object_size_min_restricted_calc(ad->block_events, &minw, &minh, minw, minh);
-                       offx = (w - minw) / 2;
-                       offy = (h - minh) / 5;
-                       break;
-       }
-       _D("w(%d) h(%d) offx(%d) offy(%d)\n", w, h, offx, offy);
-       evas_object_move(ad->ly, offx, offy);
-       return 1;
-}
-
-int _efl_rotate(Display *dpy, void *data)
-{
-       int rotation = -1;
-       struct appdata *ad = (struct appdata *)data;
-
-       rotation = _x_rotation_get(dpy, ad);
-
-       if(rotation == -1)
-               rotation = 0;
-
-       if(rotation >= 0){
-               elm_win_rotation_set(ad->win, rotation);
-               ad->angle = rotation;
-               return _volume_popup_resize(data, rotation);
-       }
-
-       return 0;
-}
-
-int _rotate_func(void *data)
-{
-       _D("%s\n", __func__);
-       struct appdata *ad = (struct appdata *)data;
-       Display *d = NULL;
-       int ret = 0;
-
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-
-       d = XOpenDisplay(NULL);
-       ret = _efl_rotate(d, ad);
-       XCloseDisplay(d);
-
-       return ret;
-}
-
-int myterm(bundle *b, void *data)
-{
-       return 0;
-}
-
-int mytimeout(bundle *b, void *data)
-{
-       return 0;
-}
-
-syspopup_handler handler = {
-       .def_term_fn = myterm,
-       .def_timeout_fn = mytimeout
-};
-
-void _set_level(int type)
-{
-       int val = 0;
-       _get_sound_level(type, &val);
-       _set_sound_level(type, val);
-       _D("type(%d) val(%d)\n", type, val);
-}
-
-static void _block_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source)
-{
-       _close_volume(data);
-}
-
-Eina_Bool _slider_timer_cb(void *data)
-{
-       double val = 0;
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, 0, "Invalid argument: appdata is NULL\n");
-       if (ad->sl) {
-               val = elm_slider_value_get(ad->sl);
-               val += 0.5;
-               if ((int)val != 0) {
-                       _set_sound_level(ad->type, (int)val);
-               }
-               if (val <= 0.5) {
-                       elm_slider_value_set(ad->sl, 0);
-                       _set_sound_level(ad->type, 0);
-               }
-               return ECORE_CALLBACK_RENEW;
-       }
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static void _slider_start_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       _D("%s\n", __func__);
-       int snd= 0 ;
-       struct appdata *ad = (struct appdata *)data;
-       retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
-
-       if (ad->flag_pressing == EINA_TRUE) {
-               return;
-       }
-       ad->flag_touching = EINA_TRUE;
-
-       DEL_TIMER(ad->ptimer)
-
-       vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &snd);
-       if(!snd){
-               vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, EINA_TRUE);
-               _set_icon(data, -1);
-       }
-
-       if (ad->lutimer || ad->ldtimer) {
-               _D("return when long press is working\n");
-               return;
-       }
-
-       ADD_TIMER(ad->stimer, 0.2, _slider_timer_cb, data)
-}
-
-static void _slider_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       struct appdata *ad = (struct appdata *)data;
-       retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
-
-       if (ad->flag_pressing == EINA_TRUE) {
-               return;
-       }
-       if (ad->lutimer || ad->ldtimer) {
-               _D("return when long press is working\n");
-               return;
-       }
-}
-static void _slider_stop_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       _D("func\n");
-       double val = 0;
-       struct appdata *ad = (struct appdata *)data;
-       retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
-
-       if (ad->flag_pressing == EINA_TRUE) {
-               return;
-       }
-       if (ad->lutimer || ad->ldtimer) {
-               _D("return when long press is working\n");
-               return;
-       }
-       DEL_TIMER(ad->stimer)
-       if (ad->sl) {
-               val = elm_slider_value_get(ad->sl);
-               val += 0.5;
-               _set_sound_level(ad->type, (int)val);
-       }
-       _play_sound(ad->type, ad->sh);
-       ad->flag_touching = EINA_FALSE;
-       ADD_TIMER(ad->ptimer, 3.0, popup_timer_cb, ad)
-}
-
-Eina_Bool _lu_warmup_timer_cb(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument: appdata is NULL\n");
-       ADD_TIMER(ad->lutimer, 0.0, _lu_timer_cb, ad)
-       return ECORE_CALLBACK_CANCEL;
-}
-
-Eina_Bool _ld_warmup_timer_cb(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument: appdata is NULL\n");
-       ADD_TIMER(ad->ldtimer, 0.0, _ld_timer_cb, ad)
-       return ECORE_CALLBACK_CANCEL;
-}
-
-void _init_press_timers(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
-       DEL_TIMER(ad->sdtimer)
-       DEL_TIMER(ad->ldtimer)
-       DEL_TIMER(ad->ldwarmtimer)
-       DEL_TIMER(ad->sutimer)
-       DEL_TIMER(ad->lutimer)
-       DEL_TIMER(ad->luwarmtimer)
-}
-
-int _handle_bundle(bundle *b, struct appdata *ad)
-{
-       const char *bval = NULL;
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-
-       bval = bundle_get_val(b, "LONG_PRESS");
-       if (bval) {
-               _D("val(%s)\n", bval);
-
-               if (!strncmp(bval, "VOLUME_UP", strlen("LONG_PRESS"))) {
-                       _D("volume up long press\n");
-                       DEL_TIMER(ad->ptimer)
-                       ADD_TIMER(ad->luwarmtimer, 0.5, _lu_warmup_timer_cb, ad);
-               } else if (!strncmp(bval, "VOLUME_DOWN", strlen("LONG_PRESS"))) {
-                       _D("volume down long press\n");
-                       DEL_TIMER(ad->ptimer)
-                       ADD_TIMER(ad->ldwarmtimer, 0.5, _ld_warmup_timer_cb, ad);
-               } else {
-                       ADD_TIMER(ad->ptimer, 3.0, popup_timer_cb, ad)
-               }
-       } else {
-               ADD_TIMER(ad->ptimer, 3.0, popup_timer_cb, ad)
-               _init_press_timers(ad);
-       }
-       return 0;
-}
-
-static void _button_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
-       _D("%s\n", __func__);
-       struct appdata *ad = (struct appdata *)data;
-       retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
-       char buf[PATHBUF_SIZE] = {0, };
-       snprintf(buf, sizeof(buf), "%s/%s", IMAGEDIR, IMG_VOLUME_ICON_SETTINGS_PRESSED);
-       elm_image_file_set(obj, buf, NULL);
-}
-
-static void _button_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       _D("%s\n", __func__);
-       struct appdata *ad = (struct appdata *)data;
-       retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
-       char buf[PATHBUF_SIZE] = {0, };
-       int ret = -1;
-
-       snprintf(buf, sizeof(buf), "%s/%s", IMAGEDIR, IMG_VOLUME_ICON_SETTINGS);
-       elm_image_file_set(obj, buf, NULL);
-       if(evas_object_visible_get(ad->win)){
-               DEL_TIMER(ad->ptimer)
-               if(ecore_x_e_illume_quickpanel_state_get(
-                       ecore_x_e_illume_zone_get(elm_win_xwindow_get(ad->win))) != ECORE_X_ILLUME_QUICKPANEL_STATE_OFF)
-               {
-                       _D("Quickpanel is hide\n");
-                       ecore_x_e_illume_quickpanel_state_send(
-                               ecore_x_e_illume_zone_get(elm_win_xwindow_get(ad->win)), ECORE_X_ILLUME_QUICKPANEL_STATE_OFF);
-               }
-               service_h svc;
-               ret = service_create(&svc);
-               if(ret != SERVICE_ERROR_NONE)
-               {
-                       switch(ret)
-                       {
-                               case SERVICE_ERROR_INVALID_PARAMETER :
-                                       _D("error : SERVICE_ERROR_INVALID_PARAMETER");
-                                       break;
-                               case SERVICE_ERROR_OUT_OF_MEMORY :
-                                       _D("error : SERVICE_ERROR_OUT_OF_MEMORY");
-                                       break;
-                               default :
-                                       _D("error : %d\n", ret);
-                                       break;
-                       }
-               }
-               ret = service_set_package(svc, "setting-profile-efl");
-
-               if(ret != SERVICE_ERROR_NONE)
-               {
-                       switch(ret)
-                       {
-                               case SERVICE_ERROR_INVALID_PARAMETER :
-                                       _D("error : SERVICE_ERROR_INVALID_PARAMETER");
-                                       break;
-                               case SERVICE_ERROR_OUT_OF_MEMORY :
-                                       _D("error : SERVICE_ERROR_OUT_OF_MEMORY");
-                                       break;
-                               default :
-                                       _D("error : %d\n", ret);
-                                       break;
-                       }
-               }
-               ret = service_send_launch_request(svc, NULL, NULL);
-               if(ret != SERVICE_ERROR_NONE)
-               {
-                       switch(ret)
-                       {
-                               case SERVICE_ERROR_INVALID_PARAMETER :
-                                       _D("error : SERVICE_ERROR_INVALID_PARAMETER");
-                                       break;
-                               case SERVICE_ERROR_OUT_OF_MEMORY :
-                                       _D("error : SERVICE_ERROR_OUT_OF_MEMORY");
-                                       break;
-                               case SERVICE_ERROR_APP_NOT_FOUND :
-                                       _D("error : SERVICE_ERROR_APP_NOT_FOUND");
-                                       break;
-                               case SERVICE_ERROR_LAUNCH_REJECTED :
-                                       _D("error : SERVICE_ERROR_LAUNCH_REJECTED");
-                                       break;
-                               default :
-                                       _D("error : %d\n", ret);
-                                       break;
-                       }
-               }
-               _app_pause(ad);
-
-               service_destroy(svc);
-       }
-}
-static int _check_emul(void)
-{
-        int is_emul = 0;
-        char *info = NULL;
-
-        if (system_info_get_value_string(SYSTEM_INFO_KEY_MODEL, &info) == 0) {
-                if (info == NULL) return 0;
-                if (!strncmp(EMUL_STR, info, strlen(info))) {
-                        is_emul = 1;
-                }
-        }
-
-        if (info != NULL) free(info);
-
-        return is_emul;
-}
-int _app_reset(bundle *b, void *data)
-{
-       _D("%s\n", __func__);
-       int ret = -1, status = -1, val = 0;
-       int type = MM_ERROR_SOUND_VOLUME_CAPTURE_ONLY;
-       int lock = IDLELOCK_ON;
-       Evas_Object *win, *sl, *ic, *ic_settings;
-       /* volume-app layout */
-       Elm_Theme *th;
-       Evas_Object *outer, *inner, *block;
-       char buf[PATHBUF_SIZE] = {0, };
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-
-       ad->noti_seen = EINA_FALSE;
-       ad->flag_launching = EINA_FALSE;
-       ad->flag_pressing = EINA_FALSE;
-       ad->flag_touching = EINA_FALSE;
-
-       status = _check_status(&lock, &type);
-       ad->type = type;
-       mm_sound_volume_get_value(type, (unsigned int*)(&val));
-
-       if(ad->win == NULL) {
-               win = _add_window(PACKAGE);
-               retvm_if(win == NULL, -1, "Failed add window\n");
-               _D("create window\n");
-               ad->win = win;
-       }
-       else {
-               _E("window already exist\n");
-               return -1;
-       }
-
-       th = elm_theme_new();
-       elm_theme_ref_set(th, NULL);
-       elm_theme_extension_add(th, EDJ_APP);
-
-       ad->flag_emul = _check_emul();
-#if USE_SETTING_ICON
-       if(!ad->flag_emul)
-       {
-               block = _add_layout(win, EDJ_APP, GRP_VOLUME_BLOCKEVENTS);
-               retvm_if(block == NULL, -1, "Failed to add block layout\n");
-
-               edje_object_signal_callback_add(elm_layout_edje_get(block), "clicked", "*", _block_clicked_cb, ad);
-
-               outer = _add_layout(win, EDJ_APP, GRP_VOLUME_LAYOUT);
-               retvm_if(outer== NULL, -1, "Failed to add outer layout\n");
-
-               inner = _add_layout(win, EDJ_APP, "popup_volumebar");
-               retvm_if(inner == NULL, -1, "Failed to add inner layout\n");
-
-               ad->block_events = block;
-               ad->ly = outer;
-
-               elm_object_part_content_set(outer, "elm.swallow.content", inner);
-
-               sl = _add_slider(win, 0, ad->step, val);
-               elm_object_theme_set(sl, th);
-               evas_object_smart_callback_add(sl, "slider,drag,start", _slider_start_cb, ad);
-               evas_object_smart_callback_add(sl, "changed", _slider_changed_cb, ad);
-               evas_object_smart_callback_add(sl, "slider,drag,stop", _slider_stop_cb, ad);
-
-               ic_settings = elm_icon_add(win);
-               evas_object_size_hint_aspect_set(ic_settings, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-               elm_image_resizable_set(ic_settings, EINA_FALSE, EINA_FALSE);
-               snprintf(buf, sizeof(buf), "%s/%s", IMAGEDIR, IMG_VOLUME_ICON_SETTINGS);
-               _D("%s\n", buf);
-               elm_image_file_set(ic_settings, buf, NULL);
-               elm_object_part_content_set(inner, "elm.swallow.icon", ic_settings);
-               evas_object_event_callback_add(ic_settings, EVAS_CALLBACK_MOUSE_DOWN, _button_mouse_down_cb, ad);
-               evas_object_smart_callback_add(ic_settings, "clicked", _button_cb, ad);
-               evas_object_show(ic_settings);
-               ad->ic_settings = ic_settings;
-
-               ad->sl = sl;
-               elm_object_part_content_set(inner, "elm.swallow.content", sl);
-
-               ic = elm_icon_add(win);
-               evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-               elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
-               elm_object_part_content_set(ad->sl, "icon", ic);
-               ad->ic = ic;
-               _set_icon(ad, val);
-       }
-       else
-       {
-#endif
-               block = _add_layout(win, EDJ_APP, GRP_VOLUME_BLOCKEVENTS);
-               retvm_if(block == NULL, -1, "Failed to add block layout\n");
-
-               edje_object_signal_callback_add(elm_layout_edje_get(block), "clicked", "*", _block_clicked_cb, ad);
-
-               outer = _add_layout(win, EDJ_APP, GRP_VOLUME_LAYOUT);
-               retvm_if(outer == NULL, -1, "Failed to add outer layout\n");
-
-               inner = _add_layout(win, EDJ_APP, GRP_VOLUME_CONTENT);
-               retvm_if(inner == NULL, -1, "Failed to add inner layout\n");
-
-               ad->block_events = block;
-               ad->ly = outer;
-
-               elm_object_part_content_set(outer, "elm.swallow.content", inner);
-
-               sl = _add_slider(win, 0, ad->step, val);
-               evas_object_smart_callback_add(sl, "slider,drag,start", _slider_start_cb, ad);
-               evas_object_smart_callback_add(sl, "changed", _slider_changed_cb, ad);
-               evas_object_smart_callback_add(sl, "slider,drag,stop", _slider_stop_cb, ad);
-
-               ad->sl = sl;
-               elm_object_part_content_set(inner, "elm.swallow.content", sl);
-               evas_object_show(sl);
-
-               ic = elm_icon_add(win);
-               evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-               elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
-               elm_object_part_content_set(ad->sl, "icon", ic);
-               ad->ic = ic;
-               _set_icon(ad, val);
-#if USE_SETTING_ICON
-       }
-#endif
-
-
-       ret = syspopup_create(b, &handler, ad->win, ad);
-       retvm_if(ret < 0, -1, "Failed to create syspopup\n");
-       ad->volume_bundle = bundle_dup(b);
-
-       return 0;
-}
-
-int _app_pause(struct appdata *ad)
-{
-       _D("%s\n", __func__);
-       _close_volume(ad);
-       _cache_flush(ad);
-       return 0;
-}
diff --git a/src/_logic.h b/src/_logic.h
deleted file mode 100755 (executable)
index eb51f7c..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * org.tizen.volume
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __VOLUME_LOGIC_H__
-#define __VOLUME_LOGIC_H__
-
-#include "volume.h"
-#include <bundle.h>
-
-int _get_vconf_idlelock(void);
-volume_type_t _get_volume_type(void);
-int _close_volume(void *data);
-int _app_create(struct appdata *ad);
-int _app_pause(struct appdata *ad);
-int _rotate_func(void *data);
-int _app_reset(bundle *b, void *data);
-Eina_Bool popup_timer_cb(void *data);
-void _init_press_timers(void *data);
-int _check_status(int *lock, int *type);
-int _ungrab_key_new(struct appdata *ad);
-int _grab_key_new(struct appdata *ad, Ecore_X_Window _xwin, int grab_mode);
-
-#endif
-/* __VOLUME_LOGIC_H__ */
diff --git a/src/_sound.c b/src/_sound.c
deleted file mode 100755 (executable)
index 8bd8f58..0000000
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * org.tizen.volume
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include <appcore-common.h>
-#include <mm_sound.h>
-#include <vconf.h>
-#include <svi.h>
-#include <feedback.h>
-
-#include "volume.h"
-#include "_util_log.h"
-#include "_logic.h"
-
-#define STRBUF_SIZE 64
-#define PATHBUF_SIZE 256
-
-int _set_sound_level(volume_type_t type, int val);
-int _get_sound_level(volume_type_t type, int * val);
-
-void _play_vib(int handle)
-{
-       svi_play_vib(handle, SVI_VIB_OPERATION_VIBRATION);
-}
-
-void _play_sound(int type, int handle)
-{
-       feedback_initialize();
-
-       if (type == VOLUME_TYPE_MEDIA) {
-
-       } else {
-               feedback_play(FEEDBACK_PATTERN_VOLUME_KEY);
-       }
-       feedback_deinitialize();
-}
-
-int _init_svi(void *data)
-{
-       int ret = -1, handle = -1;
-
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, -1, "Invaild argument: appdata is NULL\n");
-
-       ret = svi_init(&handle);
-       if (ret != SVI_SUCCESS) {
-               _E("Failed to init svi\n");
-               svi_fini(handle);
-               return -1;
-       }
-       ad->sh = handle;
-       return 0;
-}
-
-int _set_slider_value(void *data, int val)
-{
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-
-       if (ad->flag_touching == EINA_TRUE) {
-               return 0;
-       }
-       if (ad->sl) {
-               elm_slider_min_max_set(ad->sl, 0, ad->step);
-               elm_slider_value_set(ad->sl, val);
-       }
-
-       return 0;
-}
-
-int _set_icon(void *data, int val)
-{
-       int snd=0, vib=0;
-       char *img = NULL;
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-
-       system_audio_route_device_t device = 0;
-       mm_sound_route_get_playing_device(&device);
-
-       vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &snd);
-       vconf_get_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vib);
-
-       switch(ad->type){
-               case VOLUME_TYPE_RINGTONE:
-                       img = IMG_VOLUME_ICON;
-                       break;
-               case VOLUME_TYPE_MEDIA:
-                       if(device == SYSTEM_AUDIO_ROUTE_PLAYBACK_DEVICE_EARPHONE)
-                               img = IMG_VOLUME_ICON_HEADPHONE;
-                       else
-                               img = IMG_VOLUME_ICON_MEDIA;
-                       break;
-               case VOLUME_TYPE_CALL:
-                       img = IMG_VOLUME_ICON_CALL;
-                       break;
-               default:
-                       img = IMG_VOLUME_ICON;
-                       break;
-       }
-       if (ad->ic ) {
-               elm_image_file_set(ad->ic, EDJ_APP, img);
-       }
-       return 1;
-}
-
-void _set_device_warning(void *data, int val, int device)
-{
-       struct appdata *ad = (struct appdata *)data;
-       retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
-
-       switch (device) {
-               case SYSTEM_AUDIO_ROUTE_PLAYBACK_DEVICE_EARPHONE:
-                       if (val >= 10 && ad->type == VOLUME_TYPE_MEDIA) {
-                               if(ad->noti_seen == EINA_FALSE){
-                                       ad->noti_seen = EINA_TRUE;
-                                       notification_status_message_post(T_(IDS_WARNING_MSG));
-                               }
-                       }
-                       else {
-                               ad->noti_seen = EINA_FALSE;
-                       }
-                       break;
-               default:
-                       ad->noti_seen = EINA_FALSE;
-                       break;
-       }
-}
-
-int _get_title(volume_type_t type, char *label, int size)
-{
-       char *text = NULL;
-
-       switch (type) {
-       case VOLUME_TYPE_SYSTEM:
-               text = S_("IDS_COM_BODY_SYSTEM");
-               break;
-       case VOLUME_TYPE_NOTIFICATION:
-               text = S_("IDS_COM_HEADER_NOTIFICATION");
-               break;
-       case VOLUME_TYPE_ALARM:
-               text = S_("IDS_COM_BODY_ALARM");
-               break;
-       case VOLUME_TYPE_RINGTONE:
-               text = S_("IDS_COM_BODY_RINGTONE");
-               break;
-       case VOLUME_TYPE_MEDIA:
-               text = T_("IDS_COM_BODY_MEDIA");
-               break;
-       case VOLUME_TYPE_CALL:
-               text = S_("IDS_COM_BODY_CALL");
-               break;
-       case VOLUME_TYPE_EXT_ANDROID:
-               /* this enum is different from mm_sound.h and avsys-audio.h */
-               text = T_("IDS_COM_BODY_ANDROID");
-               break;
-       case VOLUME_TYPE_EXT_JAVA:
-               text = T_("IDS_COM_BODY_JAVA");
-               break;
-       default:
-               text = S_("IDS_COM_BODY_SYSTEM");
-               break;
-       }
-       snprintf(label, size, "%s", text);
-       _D("get title(%s)\n", label);
-
-       return 0;
-}
-
-int _get_step(int type)
-{
-       int ret = -1, step = 0;
-       ret = mm_sound_volume_get_step(type, &step);
-       retvm_if(ret < 0, -1, "Failed to get step\n");
-       step -= 1;
-       return step;
-}
-
-void _mm_func(void *data)
-{
-       _D("%s\n", __func__);
-       int val = 0;
-       system_audio_route_device_t device = 0;
-       struct appdata *ad = (struct appdata *)data;
-       retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
-
-       retm_if(ad->win == NULL, "Failed to get window\n");
-
-       /* function could be activated when window exists */
-       ad->type = _get_volume_type();
-       ad->step = _get_step(ad->type);
-       mm_sound_route_get_playing_device(&device);
-       mm_sound_volume_get_value(ad->type, (unsigned int*)(&val));
-
-       /* apply earphone safety concept */
-       if(ad->device != device) {
-               if(device == SYSTEM_AUDIO_ROUTE_PLAYBACK_DEVICE_EARPHONE && val > 9) {
-                       val = 9;
-                       _set_sound_level(ad->type, val);
-               }
-               ad->device = device;
-       }
-       _set_device_warning(ad, val, device);
-       _set_slider_value(ad, val);
-       _set_icon(ad, val);
-       _D("type(%d) val(%d)\n", ad->type, val);
-}
-
-void _mm_system_cb(void *data)
-{
-       _mm_func(data);
-}
-
-void _mm_notification_cb(void *data)
-{
-       _mm_func(data);
-}
-
-void _mm_alarm_cb(void *data)
-{
-       _mm_func(data);
-}
-
-void _mm_ringtone_cb(void *data)
-{
-       _mm_func(data);
-}
-
-void _mm_media_cb(void *data)
-{
-       _mm_func(data);
-}
-
-void _mm_call_cb(void *data)
-{
-       _mm_func(data);
-}
-
-void _mm_ext_android_cb(void *data)
-{
-       _mm_func(data);
-}
-
-void _mm_ext_java_cb(void *data)
-{
-       _mm_func(data);
-}
-
-int _get_volume_type_max(void)
-{
-       return VOLUME_TYPE_MAX;
-}
-
-int _init_mm_sound(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-
-       mm_sound_volume_add_callback(VOLUME_TYPE_SYSTEM,
-                       _mm_system_cb, (void *)ad);
-       mm_sound_volume_add_callback(VOLUME_TYPE_NOTIFICATION,
-                       _mm_notification_cb, (void *)ad);
-       mm_sound_volume_add_callback(VOLUME_TYPE_ALARM,
-                       _mm_alarm_cb, (void *)ad);
-       mm_sound_volume_add_callback(VOLUME_TYPE_RINGTONE,
-                       _mm_ringtone_cb, (void *)ad);
-       mm_sound_volume_add_callback(VOLUME_TYPE_MEDIA,
-                       _mm_media_cb, (void *)ad);
-       mm_sound_volume_add_callback(VOLUME_TYPE_CALL,
-                       _mm_call_cb, (void *)ad);
-       mm_sound_volume_add_callback(VOLUME_TYPE_EXT_ANDROID,
-                       _mm_ext_android_cb, (void *)ad);
-       mm_sound_volume_add_callback(VOLUME_TYPE_EXT_JAVA,
-                       _mm_ext_java_cb, (void *)ad);
-
-       return 0;
-}
-
-int _get_sound_level(volume_type_t type, int *val)
-{
-       mm_sound_volume_get_value(type, (unsigned int*)val);
-       return 0;
-}
-
-int _set_sound_level(volume_type_t type, int val)
-{
-       mm_sound_volume_set_value(type, val);
-       return 0;
-}
diff --git a/src/_sound.h b/src/_sound.h
deleted file mode 100755 (executable)
index fb71df3..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * org.tizen.volume
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __VOLUME_SOUND_H__
-#define __VOLUME_SOUND_H__
-
-#include <mm_sound.h>
-
-int _init_svi();
-int _init_mm_sound(void *data);
-int _get_volume_type_max(void);
-int _get_title(volume_type_t type, char *label, int size);
-int _get_sound_level(volume_type_t type, int *val);
-int _get_step(int type);
-void _play_vib(int handle);
-void _play_sound(int type, int handle);
-void _mm_func(void *data);
-int _set_icon(void * data, int val);
-int _set_sound_level(volume_type_t type, int val);
-
-#endif
-/* __VOLUME_SOUND_H__ */
diff --git a/src/_util_efl.c b/src/_util_efl.c
deleted file mode 100755 (executable)
index 79289bb..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * org.tizen.volume
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include <Ecore.h>
-#include <Ecore_X.h>
-#include <system_info.h>
-
-#include "volume.h"
-#include "_util_log.h"
-
-Ecore_X_Window _add_input_window(void)
-{
-       Ecore_X_Window win = 0;
-       win = ecore_x_window_input_new(0, 0, 0, 1, 1);
-       if(win){
-               ecore_x_event_mask_unset(win, ECORE_X_EVENT_MASK_NONE);
-               ecore_x_icccm_title_set(win, "volumekey-input-window");
-               ecore_x_netwm_name_set(win, "volumekey-input-window");
-               ecore_x_netwm_pid_set(win, getpid());
-               return win;
-       }
-       else{
-               _E("%s() is failed\n", __func__);
-               return 0;
-       }
-}
-
-Evas_Object *_add_window(const char *name)
-{
-       Evas_Object *eo = NULL;
-       int w = -1, h = -1;
-       eo = elm_win_add(NULL, name, ELM_WIN_NOTIFICATION);
-       if (eo) {
-               elm_win_title_set(eo, name);
-               elm_win_borderless_set(eo, EINA_TRUE);
-               elm_win_alpha_set(eo, EINA_TRUE);
-               ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
-               if(w == -1 || h == -1){
-                       _E("ecore_x_window_seiz_get() is failed\n");
-                       return NULL;
-               }
-               evas_object_resize(eo, w, h);
-       }
-       return eo;
-}
-
-Evas_Object *_add_slider(Evas_Object *parent, int min, int max, int val)
-{
-       Evas_Object *sl = NULL;
-       sl = elm_slider_add(parent);
-       retvm_if(sl == NULL, NULL, "Failed to add slider\n");
-       elm_slider_horizontal_set(sl, EINA_TRUE);
-       elm_slider_indicator_show_set(sl, EINA_TRUE);
-       elm_slider_indicator_format_set(sl, "%.0f");
-       evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
-       evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
-       elm_slider_min_max_set(sl, min, max);
-       elm_slider_value_set(sl, val);
-       return sl;
-}
-
-Evas_Object *_add_layout(Evas_Object *parent, const char *file,
-                            const char *group)
-{
-       Evas_Object *eo = NULL;
-       int r = -1;
-
-       retvm_if(parent == NULL, NULL, "Invalid argument: parent is NULL\n");
-       retvm_if(file == NULL, NULL, "Invalid argument: file is NULL\n");
-       retvm_if(group == NULL, NULL, "Invalid argument: group is NULL\n");
-
-       eo = elm_layout_add(parent);
-       retvm_if(eo == NULL, NULL, "Failed to add layout\n");
-
-       r = elm_layout_file_set(eo, file, group);
-       if (!r) {
-               _E("Failed to set file[%s]\n", file);
-               evas_object_del(eo);
-               return NULL;
-       }
-
-       evas_object_size_hint_weight_set(eo,
-                       EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_show(eo);
-       return eo;
-}
-
-Evas_Object *_add_button(Evas_Object *parent, const char *style, const char *text)
-{
-       Evas_Object *bt = NULL;
-       bt = elm_button_add(parent);
-       retvm_if(bt == NULL, NULL, "Failed to add button\n");
-       if (style) elm_object_style_set(bt, style);
-       elm_object_focus_set(bt, EINA_FALSE);
-       elm_object_text_set(bt, text);
-       evas_object_show(bt);
-       return bt;
-}
-
-Evas_Object *_add_popup(Evas_Object *parent, const char *style)
-{
-       Evas_Object *pu = NULL;
-       pu = elm_popup_add(parent);
-       retvm_if(pu == NULL, NULL, "[Error] Failed to add popup\n");
-       evas_object_size_hint_weight_set(pu, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       if (style) elm_object_style_set(pu, style);
-       evas_object_show(pu);
-       return pu;
-}
-Evas_Object *_add_label(Evas_Object *parent, const char *style, const char *text)
-{
-       Evas_Object *lb = NULL;
-       lb = elm_label_add(parent);
-       retvm_if(lb == NULL, NULL, "Failed to add label\n");
-       elm_object_style_set(lb, style);
-       evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, 0.0);
-       evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL);
-       elm_label_line_wrap_set(lb, ELM_WRAP_MIXED);
-       elm_object_text_set(lb, text);
-       return lb;
-}
-
diff --git a/src/_util_efl.h b/src/_util_efl.h
deleted file mode 100755 (executable)
index 911c02c..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * org.tizen.volume
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __VOLUME_UTIL_EFL_H__
-#define __VOLUME_UTIL_EFL_H__
-
-#include <Elementary.h>
-
-Ecore_X_Window _add_input_window(void);
-Evas_Object *_add_window(const char *name);
-Evas_Object *_add_slider(Evas_Object *parent, int min, int max, int val);
-Evas_Object *_add_layout(Evas_Object *parent, const char *file, const char *group);
-Evas_Object *_add_button(Evas_Object *parent, const char *style, const char *text);
-Evas_Object *_add_popup(Evas_Object *parent, const char *style);
-Evas_Object *_add_label(Evas_Object *parent, const char *style, const char *text);
-#endif
-/* __VOLUME_UTIL_EFL_H__ */
diff --git a/src/bt.c b/src/bt.c
new file mode 100644 (file)
index 0000000..72c7a4d
--- /dev/null
+++ b/src/bt.c
@@ -0,0 +1,195 @@
+/*
+ * Copyright (c) 2009-2014 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 <appcore-common.h>
+#include <vconf.h>
+#include <vconf-keys.h>
+#include <feedback.h>
+#include <bluetooth.h>
+#include <bluetooth_internal.h>
+//#include <bluetooth_extention.h>
+
+#include "main.h"
+#include "_util_log.h"
+#include "view.h"
+#include "control.h"
+#include "sound.h"
+#include "x_event.h"
+#include "timer.h"
+
+static void _bt_display_bt_volume_view(sound_type_e sound_type, int sound, int vibration, bool bt_opened);
+static void _bt_volume_changed_cb(int volume, void *user_data);
+static void _bt_state_changed_cb(int result, bool opened, void *user_data);
+static int _bt_register_changed_cb(void);
+static int _bt_unregister_changed_cb(void);
+
+int bt_get_bt_volume(void)
+{
+       int ret = BT_ERROR_NONE;
+       int bt_vol = 0;
+
+       ret = bt_ag_get_speaker_gain(&bt_vol);
+       if (ret != BT_ERROR_NONE)
+       {
+               _E("bt_ag_get_speaker_gain Failed");
+               return -1;
+       }
+       _D("bt vol: %d", bt_vol);
+       return bt_vol;
+}
+
+void bt_init_sco(void)
+{
+       _D("SCO volume initialize");
+       if (BT_ERROR_NONE != bt_initialize())
+               _E("BT initialize failed");
+
+       if (_bt_register_changed_cb() != BT_ERROR_NONE)
+               _E("volume bt register changed cb failed");
+}
+
+void bt_deinit_sco(void)
+{
+       _D("SCO volume Deinitialize");
+       if (_bt_unregister_changed_cb() != BT_ERROR_NONE)
+               _E("volume bt Unregister changed cb failed");
+
+       if (BT_ERROR_NONE != bt_deinitialize())
+               _E("BT Deinitialize failed");
+}
+
+static void _bt_display_bt_volume_view(sound_type_e sound_type, int sound, int vibration, bool bt_opened)
+{
+       if (VOLUME_ERROR_OK != volume_view_window_show())
+               _E("Failed to show volume window");
+
+       /*if (VOLUME_ERROR_OK != volume_x_input_event_register())
+               _E("Failed to add x input event handler");*/
+
+       volume_control_check_syspopup();
+
+       volume_control_check_once();
+
+       volume_view_volume_icon_set(sound_type, sound, vibration, bt_opened);
+
+       if (VOLUME_ERROR_OK != volume_register_shape_timer())
+               _E("Failed to register shape timer");
+}
+
+static void _bt_volume_changed_cb(int volume, void *user_data)
+{
+       bool bt_opened = false;
+       int error = 0;
+       int status = 0;
+       int sound = 0;
+       int lock = 1;
+       int vibration = 0;
+       sound_type_e sound_type = 0;
+       _D("BT VOLUME is changed");
+
+       status = volume_control_check_status(&lock, &sound_type);
+       _D("status: %d, lock: %d, sound type : %d", status, lock, sound_type);
+
+       sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound);
+
+       error = bt_ag_is_sco_opened(&bt_opened);
+       if (error != BT_ERROR_NONE)
+               _E("bt_ag_is_sco_opened return [%d]", error);
+       _D("BT state %d", bt_opened);
+
+       if (bt_opened == true && sound_type == SOUND_TYPE_CALL)
+       {
+               _bt_display_bt_volume_view(sound_type, sound, vibration, bt_opened);
+               if (VOLUME_ERROR_OK != volume_view_slider_value_set(volume))
+                       _E("Failed to set slider value");
+
+               volume_timer_add(3.0, TYPE_TIMER_BT);
+       }
+}
+
+static void _bt_state_changed_cb(int result, bool opened, void *user_data)
+{
+       int status = 0;
+       int sound = 0;
+       sound_type_e sound_type = 0;
+       int lock = 0;
+
+       _D("SCO opened [%s]", opened ? "YES" : "NO");
+
+       status = volume_control_check_status(&lock, &sound_type);
+       _D("status: %d, lock: %d, sound type : %d", status, lock, sound_type);
+
+       sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound);
+
+       if (sound_type == SOUND_TYPE_CALL)
+       {
+               volume_control_show_view(status, sound_type, sound, opened);
+               volume_timer_add(3.0, TYPE_TIMER_BT);
+       }
+
+}
+
+static int _bt_register_changed_cb(void)
+{
+       int ret = 0;
+
+       ret = bt_audio_initialize();
+       if (ret != BT_ERROR_NONE)
+       {
+               _E("bt audio initialize failed");
+               return -1;
+       }
+
+       ret = bt_ag_set_speaker_gain_changed_cb(_bt_volume_changed_cb, NULL);
+       if (ret != BT_ERROR_NONE)
+       {
+               _E("register bt volume changed callback failed");
+               return -1;
+       }
+
+       ret = bt_ag_set_sco_state_changed_cb(_bt_state_changed_cb, NULL);
+       if (ret != BT_ERROR_NONE)
+               _E("register bt state changed callback failed");
+
+       return 0;
+}
+
+static int _bt_unregister_changed_cb(void)
+{
+       int ret = 0;
+
+       ret = bt_audio_deinitialize();
+       if (ret != BT_ERROR_NONE) {
+               _E("bt audio initialize failed");
+               return -1;
+       }
+
+       ret = bt_ag_unset_speaker_gain_changed_cb();
+       if (ret != BT_ERROR_NONE) {
+               _E("register bt volume changed callback failed");
+               return -1;
+       }
+
+       ret = bt_ag_unset_sco_state_changed_cb();
+       if (ret != BT_ERROR_NONE)
+               _E("register bt state changed callback failed");
+
+       return 0;
+}
+
diff --git a/src/control.c b/src/control.c
new file mode 100755 (executable)
index 0000000..ccdc752
--- /dev/null
@@ -0,0 +1,850 @@
+/*
+ * Copyright (c) 2009-2014 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 <app_manager.h>
+#include <bluetooth.h>
+#include <bluetooth_internal.h>
+#include <app.h>
+//#include <bluetooth_extention.h>
+
+#include "main.h"
+#include "_util_efl.h"
+#include "_util_log.h"
+#include "view.h"
+#include "control.h"
+#include "sound.h"
+#include "timer.h"
+#include "x_event.h"
+#include "key_event.h"
+#include "bt.h"
+
+#define VCONF_KEY_FMRADIO_RECORDING "memory/private/Sound/FMRadioRecording"
+
+struct _control_s_info{
+       bundle *volume_bundle;
+       Ecore_Event_Handler *handler_qp_state;
+       Ecore_Timer *shape_timer;
+
+       Eina_Bool is_deleting;
+       Eina_Bool is_launching;
+       Eina_Bool is_new;
+       Eina_Bool is_warning_visible;
+       Eina_Bool reset_once;
+       Eina_Bool show_once;
+
+       int current_angle;
+       int viewport_width;
+       int viewport_height;
+
+       sound_type_e sound_type_at_show;
+};
+static struct _control_s_info control_info = {
+       .volume_bundle = NULL,
+       .handler_qp_state = NULL,
+       .shape_timer = NULL,
+
+       .is_deleting = EINA_FALSE,
+       .is_launching = EINA_FALSE,
+       .is_new = EINA_FALSE,
+       .is_warning_visible = EINA_FALSE,
+       .reset_once = EINA_FALSE,
+       .show_once = EINA_FALSE,
+
+       .current_angle = 0,
+       .viewport_width = 0,
+       .viewport_height= 0,
+
+       .sound_type_at_show = SOUND_TYPE_RINGTONE,
+};
+
+static int _myterm(bundle *b, void *data);
+static int _mytimeout(bundle *b, void *data);
+static void _notify_pm_lcdoff_cb(keynode_t * node, void *data);
+static void _idle_lock_state_vconf_changed_cb(keynode_t *key, void *data);
+static void _starter_user_volume_key_vconf_changed_cb(keynode_t *key, void *data);
+static Eina_Bool _shape_cb(void *data);
+static Eina_Bool _idler_top_position_grab(void *data);
+static void _control_set_window_rotation(Evas_Object *win);
+static void _rotate_changed_cb(void *data, Evas_Object *obj, void *event_info);
+
+bundle* volume_control_reset_get_bundle(void)
+{
+       return control_info.volume_bundle;
+}
+
+Eina_Bool volume_control_get_is_deleting(void)
+{
+       return control_info.is_deleting;
+}
+
+Eina_Bool volume_control_get_is_launching(void)
+{
+       return control_info.is_launching;
+}
+
+int volume_control_get_current_angle(void)
+{
+       return control_info.current_angle;
+}
+
+sound_type_e volume_control_get_sound_type_at_show(void)
+{
+       return control_info.sound_type_at_show;
+}
+
+int volume_control_get_viewport_height()
+{
+       return control_info.viewport_height;
+}
+
+int volume_control_get_viewport_width()
+{
+       return control_info.viewport_width;
+}
+
+Eina_Bool volume_control_viewport_is_warning_visible()
+{
+    return control_info.is_warning_visible;
+}
+
+volume_error_e volume_control_cache_flush(void)
+{
+       Evas_Object *win = volume_view_win_get();
+       retv_if(win == NULL, VOLUME_ERROR_FAIL);
+
+       Evas *evas = NULL;
+       int file_cache = -1;
+       int collection_cache = -1;
+       int image_cache = -1;
+       int font_cache = -1;
+
+       evas = evas_object_evas_get(win);
+       retv_if(!evas, VOLUME_ERROR_FAIL);
+
+       file_cache = edje_file_cache_get();
+       collection_cache = edje_collection_cache_get();
+       image_cache = evas_image_cache_get(evas);
+       font_cache = evas_font_cache_get(evas);
+
+       edje_file_cache_set(file_cache);
+       edje_collection_cache_set(collection_cache);
+       evas_image_cache_set(evas, 0);
+       evas_font_cache_set(evas, 0);
+
+       evas_image_cache_flush(evas);
+       evas_render_idle_flush(evas);
+       evas_font_cache_flush(evas);
+
+       edje_file_cache_flush();
+       edje_collection_cache_flush();
+
+       edje_file_cache_set(file_cache);
+       edje_collection_cache_set(collection_cache);
+       evas_image_cache_set(evas, image_cache);
+       evas_font_cache_set(evas, font_cache);
+
+       return VOLUME_ERROR_OK;
+}
+
+/* rotation event callback func. */
+volume_error_e volume_control_app_launch_with_bundle(const char *op_type, const char *operation, const char *pkgname)
+{
+       app_control_h app_control;
+       int ret = 0;
+
+       ret = app_control_create(&app_control);
+       if (ret != 0) {
+               _E("Failed to create app control");
+               return VOLUME_ERROR_FAIL;
+       }
+
+       ret = app_control_set_app_id(app_control, pkgname);
+       if (ret != 0)
+       {
+               _E("Failed to set appid");
+               app_control_destroy(app_control);
+               return VOLUME_ERROR_FAIL;
+       }
+
+       ret = app_control_add_extra_data(app_control, op_type, operation);
+       if (ret != 0)
+       {
+               _E("Failed to add extra data");
+               app_control_destroy(app_control);
+               return VOLUME_ERROR_FAIL;
+       }
+
+       ret = app_control_send_launch_request(app_control, NULL, NULL);
+       _D("launch app with service : [%s][%d]", pkgname, ret);
+
+       app_control_destroy(app_control);
+
+       return VOLUME_ERROR_OK;
+}
+
+int volume_control_get_vconf_idlelock(void)
+{
+       int lock = IDLELOCK_OFF;
+       int pm_state = VCONFKEY_PM_STATE_NORMAL;
+
+       /* Check Idle-Lock */
+       if(vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &lock) < 0)
+       {
+               _E("Failed to get vconfkey : VCONFKEY_IDLE_LOCK_STATE");
+               return IDLELOCK_ERROR;
+       }
+       _D("idlelock vconf : %d", lock);
+
+       /* Check PM state */
+       if(vconf_get_int(VCONFKEY_PM_STATE, &pm_state) < 0)
+       {
+               _E("Failed to get vconfkey : VCONFKEY_PM_STATE");
+               return IDLELOCK_ERROR;
+       }
+       _D("PM STATE vconf : %d", pm_state);
+
+       return (lock == VCONFKEY_IDLE_LOCK ||
+               pm_state == VCONFKEY_PM_STATE_LCDOFF ||
+               pm_state  == VCONFKEY_PM_STATE_SLEEP
+               ) ? IDLELOCK_ON : IDLELOCK_OFF;
+}
+
+
+int volume_control_check_status(int *lock, sound_type_e *sound_type)
+{
+       *lock = volume_control_get_vconf_idlelock();
+       *sound_type = volume_sound_sound_manager_type_get();
+       _D("lock : %d / sound_type : %d", *lock, *sound_type);
+
+       if(*lock == IDLELOCK_ON)
+       {
+               if(*sound_type == SOUND_TYPE_RINGTONE)
+               {
+                       _D("IDLELOCK is ON / sound type is Ringtone");
+                       return LOCK_AND_NOT_MEDIA;
+               }
+
+               if(*sound_type != SOUND_TYPE_RINGTONE)
+               {
+                       _D("IDLELOCK is ON / sound type is not Ringtone(media or alaram)");
+                       return LOCK_AND_MEDIA;
+               }
+       }
+
+       _D("IDLELOCK is OFF / normal case");
+
+       return UNLOCK_STATUS;
+}
+
+void volume_control_shape_event_area(Eina_Bool is_warning_visible)
+{
+       _D("shape event area");
+       Evas_Object *win = volume_view_win_get();
+       //volume_x_input_event_shape(win, is_warning_visible);
+}
+
+void volume_control_show_hide_worning()
+{
+       Evas_Object *ly_outer = volume_view_outer_layout_get();
+       sound_type_e sound_type = volume_sound_sound_manager_type_get();
+       int volume = volume_sound_sound_manager_volume_get(sound_type);
+
+       if(sound_type == SOUND_TYPE_MEDIA
+        && volume>VOLUME_MAX_SAFETY_VOLUME_LEVEL)
+       {
+               if(!control_info.is_warning_visible)
+               {
+                       control_info.is_warning_visible = EINA_TRUE;
+
+                       if(control_info.current_angle == 90 || control_info.current_angle == 270)
+                       {
+                               elm_object_signal_emit(ly_outer, "show_warning_l", "clipper"); //landscape
+                       }
+                       else
+                       {
+                               elm_object_signal_emit(ly_outer, "show_warning", "clipper"); //landscape
+                       }
+
+            volume_control_shape_event_area(EINA_TRUE);
+               }
+       }
+       else if(control_info.is_warning_visible)
+       {
+               control_info.is_warning_visible = EINA_FALSE;
+
+               if(control_info.current_angle == 90 || control_info.current_angle == 270)
+               {
+                       elm_object_signal_emit(ly_outer, "hide_warning_l", "clipper"); //landscape
+               }
+               else
+               {
+                       elm_object_signal_emit(ly_outer, "hide_warning", "clipper"); //landscape
+               }
+
+               volume_control_shape_event_area(EINA_FALSE);
+       }
+}
+
+int volume_register_shape_timer()
+{
+       if (control_info.shape_timer) {
+               ecore_timer_del(control_info.shape_timer);
+               control_info.shape_timer = NULL;
+       }
+
+       control_info.shape_timer = ecore_timer_add(0.1, _shape_cb, NULL);
+
+       if (control_info.shape_timer)
+               return VOLUME_ERROR_OK;
+       else
+               return VOLUME_ERROR_FAIL;
+}
+
+void volume_control_check_syspopup()
+{
+       if(syspopup_has_popup(control_info.volume_bundle)) {
+               syspopup_reset(control_info.volume_bundle);
+       }
+}
+
+void volume_control_check_once(void)
+{
+       if(control_info.show_once) {
+               ecore_idler_add(_idler_top_position_grab, NULL);
+               control_info.show_once = EINA_FALSE;
+       }
+}
+
+Eina_Bool volume_control_show_view(int status, sound_type_e sound_type, int sound, bool bt_opened)
+{
+       _D("Volume control show");
+       Evas_Object *win = NULL;
+       int volume = 0;
+       int vibration = 0;
+
+       retv_if(control_info.is_deleting, EINA_FALSE);
+
+       control_info.is_new = EINA_TRUE;
+
+       win = volume_view_win_get();
+       retv_if(!win, EINA_FALSE);
+
+       if(status == LOCK_AND_NOT_MEDIA)
+       {
+               _D("Lock and Not Media");
+               if(evas_object_visible_get(win))
+               {
+                       if(VOLUME_ERROR_OK != volume_control_hide_view())
+                       {
+                               _E("Failed to close volume");
+                       }
+
+                       if(VOLUME_ERROR_OK != volume_control_cache_flush())
+                       {
+                               _E("Failed to flush cache");
+                       }
+               }
+               return EINA_FALSE;
+       } else {
+               _D("UNLOCK or LOCK_AND_MEDIA");
+               control_info.sound_type_at_show = sound_type;
+
+               if(status == UNLOCK_STATUS)     {
+                       if(VOLUME_ERROR_OK != volume_view_window_show()) {
+                               _E("Failed to show volume window");
+                       }
+
+                       /*if(VOLUME_ERROR_OK != volume_x_input_event_register()) {
+                               _E("Failed to add x input event handler");
+                       }*/
+
+                       volume_control_check_syspopup();
+
+                       volume_control_check_once();
+               }
+
+               control_info.is_launching = EINA_TRUE;
+
+               if(bt_opened == 1 && sound_type == SOUND_TYPE_CALL)
+               {
+                       _D("bt is opened and is calling");
+                       volume = bt_get_bt_volume();
+                       _D("bt volume is : %d", volume);
+
+                       if(VOLUME_ERROR_OK != volume_view_slider_value_set(volume))
+                       {
+                               _E("Failed to set volume value to slider");
+                       }
+               }
+               else
+               {
+                       volume = volume_sound_sound_manager_volume_get(sound_type);
+                       _D("volume : %d", volume);
+
+                       vibration = volume_sound_vconf_status_get(TYPE_VCONF_VIBRATION_STATUS);
+                       _D("vibration : %d", vibration);
+
+                       if(((vibration == 1 && sound == 0) || sound == 0) && sound_type == SOUND_TYPE_RINGTONE)
+                       {
+                               volume = 0;
+                       }
+
+                       if(VOLUME_ERROR_OK != volume_view_slider_value_set(volume))
+                       {
+                               _E("Failed to set volume value to slider");
+                       }
+               }
+
+               //@TODO: need to check
+               volume_view_volume_icon_set(sound_type, sound, vibration, bt_opened);
+
+               if(VOLUME_ERROR_OK != volume_register_shape_timer())
+               {
+                       _E("Failed to register shape_timer");
+               }
+
+               return EINA_TRUE;
+       }
+}
+
+volume_error_e volume_control_close_bt_display(void)
+{
+       retv_if(volume_control_get_is_deleting(), VOLUME_ERROR_FAIL);
+
+       _D("Start closing bt display");
+
+       Ecore_X_Window input_win = volume_key_event_input_window_get();
+       retv_if(!input_win, VOLUME_ERROR_FAIL);
+
+       control_info.is_deleting = EINA_TRUE;
+
+       /* unregister outer event handler */
+       /*if(VOLUME_ERROR_OK != volume_x_input_event_unregister())
+       {
+               _E("Failed to unregister x input event handler");
+       }*/
+
+       /* hide window */
+       if(VOLUME_ERROR_OK != volume_view_window_hide())
+       {
+               _E("Failed to hide window");
+       }
+
+       control_info.is_deleting = EINA_FALSE;
+
+       _D("End closing bt display");
+       volume_timer_del(TYPE_TIMER_BT);
+
+       return 0;
+}
+
+volume_error_e volume_control_hide_view(void)
+{
+       retv_if(volume_control_get_is_deleting(), VOLUME_ERROR_FAIL);
+
+       _D("Start closing volume view");
+
+       int i = 0;
+       int count_grabed = volume_key_event_count_grabed_get();
+
+       //Ecore_X_Window input_win = volume_key_event_input_window_get();
+       //retv_if(!input_win, VOLUME_ERROR_FAIL);
+
+       control_info.is_deleting = EINA_TRUE;
+
+       /* unregister outer event handler */
+       /*if(VOLUME_ERROR_OK != volume_x_input_event_unregister())
+       {
+               _E("Failed to unregister x input event handler");
+//             control_info.is_deleting = EINA_FALSE;
+//             return VOLUME_ERROR_FAIL;
+       }*/
+
+       /*for (i = 0; i < count_grabed; i++) {
+               if (VOLUME_ERROR_OK != volume_key_event_key_ungrab()) {
+                       _E("Failed to ungrab key");
+                       continue;
+               }
+               _D("ungrab key : %d/%d", i+1, count_grabed);
+       }*/
+       //elm_win_keygrab_unset(volume_view_win_get(), KEY_VOLUMEUP, 0, 0);
+       //elm_win_keygrab_unset(volume_view_win_get(), KEY_VOLUMEDOWN, 0, 0);
+       volume_key_event_count_grabed_set(0);
+       /*if (VOLUME_ERROR_OK != volume_key_event_key_grab(input_win, SHARED_GRAB)) {
+               _E("Failed to grab key : SHARED_GRAB");
+       }*/
+       //elm_win_keygrab_set(volume_view_win_get(), KEY_VOLUMEUP, 0, 0, 0, ELM_WIN_KEYGRAB_SHARED);
+       //elm_win_keygrab_set(volume_view_win_get(), KEY_VOLUMEDOWN, 0, 0, 0, ELM_WIN_KEYGRAB_SHARED);
+
+       volume_timer_del(TYPE_TIMER_SU);
+       volume_timer_del(TYPE_TIMER_SD);
+       volume_timer_del(TYPE_TIMER_SLIDER);
+       volume_timer_del(TYPE_TIMER_POPUP);
+
+       /* hide window */
+       if (VOLUME_ERROR_OK != volume_view_window_hide()) {
+               _E("Failed to hide window");
+       }
+
+       control_info.is_deleting = EINA_FALSE;
+       control_info.is_launching = EINA_FALSE;
+
+       _D("End closing volume view");
+
+       return 0;
+}
+
+void volume_control_register_vconfkey(void)
+{
+       /* other app grab volume key => close volume */
+       if(vconf_notify_key_changed(VCONFKEY_STARTER_USE_VOLUME_KEY, _starter_user_volume_key_vconf_changed_cb, NULL) != 0)
+       {
+               _E("Failed to register callback function : VCONFKEY_STARTER_USE_VOLUME_KEY");
+       }
+
+       /* Lock screen status vconf changed callback */
+       if(vconf_notify_key_changed(VCONFKEY_IDLE_LOCK_STATE, _idle_lock_state_vconf_changed_cb, NULL) != 0)
+       {
+               _E("Failed to notify vconfkey : VCONFKEY_IDLE_LOCK_STATE");
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_PM_LCDOFF_SOURCE, _notify_pm_lcdoff_cb, NULL) != 0) {
+               _E("Failed to notify vconfkey : VCONFKEY_PM_LCDOFF_SOURCE");
+       }
+}
+
+void volume_control_unregister_vconfkey(void)
+{
+       /* other app grab volume key => close volume */
+       if(vconf_ignore_key_changed(VCONFKEY_STARTER_USE_VOLUME_KEY, _starter_user_volume_key_vconf_changed_cb) < 0)
+       {
+               _E("Failed to ignore vconfkey : VCONFKEY_STARTER_USE_VOLUME_KEY");
+       }
+
+       /* Lock screen status vconf changed callback */
+       if(vconf_ignore_key_changed(VCONFKEY_IDLE_LOCK_STATE, _idle_lock_state_vconf_changed_cb) < 0)
+       {
+               _E("Failed to ignore vconfkey : VCONFKEY_IDLE_LOCK_STATE");
+       }
+
+       if (vconf_ignore_key_changed
+               (VCONFKEY_PM_LCDOFF_SOURCE, _notify_pm_lcdoff_cb) != 0) {
+               _E("Fail vconf_ignore_key_changed : VCONFKEY_PM_LCDOFF_SOURCE");
+       }
+}
+
+volume_error_e volume_control_pause(void)
+{
+       Evas_Object *win = volume_view_win_get();
+       retv_if(!win, VOLUME_ERROR_FAIL);
+
+       if(evas_object_visible_get(win)) {
+               if(VOLUME_ERROR_OK != volume_control_hide_view())
+               {
+                       _E("Failed to close volume");
+               }
+
+               if(VOLUME_ERROR_OK != volume_control_cache_flush())
+               {
+                       _E("Failed to flush cache");
+               }
+       }
+
+       return VOLUME_ERROR_OK;
+}
+
+volume_error_e volume_control_reset(bundle *b)
+{
+       _D("Volume control reset");
+       Evas_Object *win = volume_view_win_get();
+       retv_if(!win, VOLUME_ERROR_FAIL);
+
+       int ret = -1;
+       int lock = IDLELOCK_ON;
+       int status = 0;
+       int volume = 0;
+       int sound = 0;
+       int error = 0;
+       bool bt_opened = false;
+       sound_type_e sound_type = 0;
+       const char *show_volume = NULL;
+/*
+       if(control_info.reset_once) {
+               static syspopup_handler handler = {
+                       .def_term_fn = _myterm,
+                       .def_timeout_fn = _mytimeout
+               };
+
+               ret = syspopup_create(b, &handler, win, NULL);
+               retvm_if(ret < 0, VOLUME_ERROR_FAIL, "Failed to create syspopup");
+               control_info.volume_bundle = bundle_dup(b);
+               control_info.reset_once = EINA_FALSE;
+       }*/
+
+       status = volume_control_check_status(&lock, &sound_type);
+       _D("status: %d, lock: %d, sound type : %d", status, lock, sound_type);
+
+       volume = volume_sound_sound_manager_volume_get(sound_type);
+       _D("volume : %d", volume);
+
+       sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound);
+
+       error = bt_ag_is_sco_opened(&bt_opened);
+       if(error != BT_ERROR_NONE)
+       {
+               _E("bt_ag_is_sco_opened return [%d]", error);
+       }
+       _D("BT state %d", bt_opened);
+
+       show_volume = bundle_get_val(b, SHOWVOLUME);
+       retv_if(!show_volume, VOLUME_ERROR_FAIL);
+
+       if(!strncasecmp(show_volume, ISTRUE, strlen(ISTRUE)))
+       {
+               _D("Bundle : %s", show_volume);
+               if(lock == IDLELOCK_OFF)
+               {
+                       _D("Show Volume");
+                       volume_timer_add(3.0, TYPE_TIMER_POPUP);
+                       volume_control_show_view(status, sound_type, sound, bt_opened);
+               }
+       }
+
+       return VOLUME_ERROR_OK;
+}
+
+volume_error_e volume_control_initialize(void)
+{
+       _D("Volume control initialize");
+
+       /* Create main window */
+       Evas_Object *win = volume_view_window_create();
+       retv_if(!win, VOLUME_ERROR_FAIL);
+
+       /* Create input_window */
+       /*if(VOLUME_ERROR_OK != volume_key_event_input_window_create()) {
+               _E("Failed to create input window");
+               return VOLUME_ERROR_FAIL;
+       }*/
+
+       /* Create volume layout */
+       if(VOLUME_ERROR_OK != volume_view_layout_create(win)) {
+               _E("Failed to create volume layout");
+               return VOLUME_ERROR_FAIL;
+       }
+
+       elm_win_screen_size_get(win, NULL, NULL, &(control_info.viewport_width), &(control_info.viewport_height));
+
+
+       /* Set available rotations */
+       _control_set_window_rotation(win);
+
+       /* Register vconfkey changed callback
+        * : VCONFKEY_STARTER_USE_VOLUME_KEY
+        * : VCONFKEY_IDLE_LOCK_STATE
+        * : VCONFKEY_LOCKSCREEN_SVIEW_STATE
+        * */
+       volume_control_register_vconfkey();
+
+       /* Register vconfkey changed callback
+        * : VCONFKEY_SETAPPL_SOUND_STATUS_BOOL
+        * : VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL
+        * */
+       volume_sound_vconfkey_register();
+
+       /* Add key event handler */
+       volume_key_event_handler_add();
+
+       /* Register volume changed callback */
+       volume_sound_mm_sound_init();
+
+       /* BT initialize and register changed callback */
+       bt_init_sco();
+
+       return VOLUME_ERROR_OK;
+}
+
+void volume_control_deinitialize(void)
+{
+       /* Unregister vconfkey changed callback */
+       volume_control_unregister_vconfkey();
+
+       /* Unregister sound vconfkey changed callback */
+       volume_sound_vconfkey_unregister();
+
+       /* Unregister bt changed callback */
+       bt_deinit_sco();
+}
+
+static void _rotate_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       static int current_angle = -1;
+       int changed_angle = elm_win_rotation_get(obj);
+       LOGD("MIK");
+
+       Evas_Object *ly_outer = volume_view_outer_layout_get();
+       ret_if(!ly_outer);
+
+       _D("window rotated [%d] => [%d]", current_angle, changed_angle);
+       if(current_angle != changed_angle) {
+               current_angle = changed_angle;
+               control_info.current_angle = current_angle;
+               switch(current_angle){
+               case 90 :
+               case 270 :
+                       _D("show,landscape");
+                       elm_object_signal_emit(ly_outer, "show,landscape", "bg");
+                       if(control_info.is_warning_visible)
+                       {
+                               elm_object_signal_emit(ly_outer, "show_warning_l", "clipper");
+                       }
+                       break;
+               default :
+                       _D("show,portrait");
+                       elm_object_signal_emit(ly_outer, "show,portrait", "bg");
+                       if(control_info.is_warning_visible)
+                       {
+                               elm_object_signal_emit(ly_outer, "show_warning", "clipper");
+                       }
+                       break;
+               }
+
+               //volume_x_input_event_shape(obj, control_info.is_warning_visible);
+       }
+}
+
+static void _control_set_window_rotation(Evas_Object *win)
+{
+       ret_if(!win);
+
+       if (elm_win_wm_rotation_supported_get(win)) {
+               const int rots[4] = { 0, 90, 180, 270 };
+               elm_win_wm_rotation_available_rotations_set(win, (const int *)&rots, 4);
+               _D("set available rotations");
+       }
+
+       /* rotation event callback */
+       evas_object_smart_callback_add(win, "wm,rotation,changed", _rotate_changed_cb, NULL);
+
+       /* initialize degree */
+       _rotate_changed_cb(NULL, win, NULL);
+}
+
+static Eina_Bool _idler_top_position_grab(void *data)
+{
+       //volume_key_event_key_grab(-1, TOP_POSITION_GRAB);
+       elm_win_keygrab_set(volume_view_win_get(), KEY_VOLUMEUP, 0, 0, 0, ELM_WIN_KEYGRAB_TOPMOST);
+       elm_win_keygrab_set(volume_view_win_get(), KEY_VOLUMEDOWN, 0, 0, 0, ELM_WIN_KEYGRAB_TOPMOST);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static Eina_Bool _shape_cb(void *data)
+{
+       LOGD("shape callback");
+       volume_control_shape_event_area(control_info.is_warning_visible);
+       control_info.shape_timer = NULL;
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void _starter_user_volume_key_vconf_changed_cb(keynode_t *key, void *data)
+{
+       int ret = EINA_FALSE;
+
+       if(vconf_get_int(VCONFKEY_STARTER_USE_VOLUME_KEY, &ret) < 0)
+       {
+               _E("Failed to get vconfkey : VCONFKEY_STARTER_USE_VOLUME_KEY");
+               return;
+       }
+       _D("ret : %d", ret);
+
+       if(ret == 1)
+       {
+               _D("any other App grab volume hard key");
+               if(VOLUME_ERROR_OK != volume_control_hide_view()) {
+                       _E("Failed to close volume");
+                       return;
+               }
+               if(VOLUME_ERROR_OK != volume_control_cache_flush()) {
+                       _E("Failed to flush cache");
+                       return;
+               }
+               if(vconf_set_int(VCONFKEY_STARTER_USE_VOLUME_KEY, 0) < 0) {
+                       _E("Failed to get vconfkey : VCONFKEY_STATER_USE_VOLUME_KEY");
+                       return;
+               }
+       }
+       else if(ret == 2)
+       {
+               _D("setting App grab volume hard key");
+       }
+}
+
+static void _idle_lock_state_vconf_changed_cb(keynode_t *key, void *data)
+{
+       int lock = VCONFKEY_IDLE_UNLOCK;
+
+       if(vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &lock) < 0)
+       {
+               _E("Failed to get vconfkey : VCONFKEY_IDLE_LOCK_STATE");
+               return;
+       }
+       _D("idle lock state : %d", lock);
+
+       /*if(lock == VCONFKEY_IDLE_LAUNCHING_LOCK)
+       {
+               if(VOLUME_ERROR_OK != volume_view_window_hide())
+               {
+                       _E("Failed to hide window");
+               }
+       }*/
+}
+
+static void _notify_pm_lcdoff_cb(keynode_t * node, void *data)
+{
+       if(VOLUME_ERROR_OK != volume_control_hide_view())
+       {
+               _E("Failed to close volume");
+       }
+
+       if(VOLUME_ERROR_OK != volume_control_cache_flush())
+       {
+               _E("Failed to flush cache");
+       }
+}
+
+static int _mytimeout(bundle *b, void *data)
+{
+       return 0;
+}
+
+static int _myterm(bundle *b, void *data)
+{
+       if (VOLUME_ERROR_OK != volume_control_hide_view())
+       {
+               _E("Failed to close volume");
+       }
+       if (VOLUME_ERROR_OK != volume_control_cache_flush())
+       {
+               _E("Failed to flush cache");
+       }
+
+       return 0;
+}
+
diff --git a/src/format b/src/format
deleted file mode 100755 (executable)
index 6fa025a..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-
-/*
- * Copyright (c) 2011 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.
- */
-
-
diff --git a/src/key_event.c b/src/key_event.c
new file mode 100755 (executable)
index 0000000..3538ca0
--- /dev/null
@@ -0,0 +1,616 @@
+/*
+ * Copyright (c) 2009-2014 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 <Ecore.h>
+//#include <Ecore_X.h>
+#include <vconf.h>
+#include <vconf-keys.h>
+#include <feedback.h>
+#include <bluetooth.h>
+#include <bluetooth_internal.h>
+//#include <bluetooth_extention.h>
+#include <app.h>
+
+#include "main.h"
+#include "_util_log.h"
+#include "_util_efl.h"
+#include "view.h"
+#include "control.h"
+#include "sound.h"
+#include "timer.h"
+#include "key_event.h"
+#include "bt.h"
+
+#define VCONFKEY_ALARM_VOLUME_POPUP_ENABLE  "memory/alarm/volume_popup_enable"
+#define VOLUME_INPUT_WIN_NAME "volumekey-input-window"
+
+struct _key_event_s_info {
+       Ecore_X_Window input_win;
+
+       Ecore_Event_Handler *handler_volume_up;
+       Ecore_Event_Handler *handler_volume_down;
+       Ecore_Event_Handler *handler_qp_state_check;
+
+       Eina_Bool is_mute;
+       Eina_Bool is_pressing;
+
+       int count_grabed;
+
+       int last_value_in_media;
+};
+
+static struct _key_event_s_info key_event_info = {
+       .input_win = 0,
+
+       .handler_volume_up = NULL,
+       .handler_volume_down = NULL,
+       .handler_qp_state_check = NULL,
+
+       .is_mute = EINA_FALSE,
+       .is_pressing = EINA_FALSE,
+
+       .count_grabed = 0,
+
+       .last_value_in_media = 0,
+};
+
+static Eina_Bool _key_release_cb(void *data, int type, void *event);
+static Eina_Bool _key_press_cb(void *data, int type, void *event);
+static volume_error_e _volume_popup_check_in_alarm_type(sound_type_e sound_type);
+static volume_error_e _volume_down_key_press(sound_type_e sound_type, int sound, bool bt_opened);
+static volume_error_e _volume_up_key_press(sound_type_e sound_type, int sound, bool bt_opened);
+static volume_error_e _mute_key_press();
+
+/*
+Ecore_X_Window _add_input_window(void)
+{
+       Ecore_X_Window win = 0;
+       win = ecore_x_window_input_new(0, -10000, -10000, 1, 1);
+       retv_if(!win, 0);
+
+       ecore_x_icccm_title_set(win, VOLUME_INPUT_WIN_NAME);
+       ecore_x_netwm_name_set(win, VOLUME_INPUT_WIN_NAME);
+       ecore_x_netwm_pid_set(win, getpid());
+       ecore_x_flush();
+
+       return win;
+}*/
+
+Ecore_X_Window volume_key_event_input_window_get(void)
+{
+       return key_event_info.input_win;
+}
+
+Ecore_Event_Handler* volume_key_event_handler_volume_up_get(void)
+{
+       return key_event_info.handler_volume_up;
+}
+
+Ecore_Event_Handler* volume_key_event_handler_volume_down_get(void)
+{
+       return key_event_info.handler_volume_down;
+}
+
+Ecore_Event_Handler* volume_key_event_handler_qp_state_check(void)
+{
+       return key_event_info.handler_qp_state_check;
+}
+
+Eina_Bool volume_key_event_is_pressing_get(void)
+{
+       return key_event_info.is_pressing;
+}
+
+int volume_key_event_count_grabed_get(void)
+{
+       return key_event_info.count_grabed;
+}
+
+void volume_key_event_count_grabed_set(int val)
+{
+       key_event_info.count_grabed = val;
+}
+
+/*
+volume_error_e volume_key_event_key_grab(Ecore_X_Window _xwin, int grab_mode)
+{
+       Evas_Object *win = volume_view_win_get();
+       retv_if(win == NULL, VOLUME_ERROR_FAIL);
+
+       Ecore_X_Display *disp = NULL;
+       Ecore_X_Window xwin = 0;
+       int ret = -1;
+
+       key_event_info.count_grabed++;
+       _D("count_grabed : %d", key_event_info.count_grabed);
+
+       disp = ecore_x_display_get();
+       retvm_if(disp == NULL, VOLUME_ERROR_FAIL, "Failed to get display");
+
+       if (_xwin == -1) {
+               _D("Top position grab");
+               xwin = elm_win_xwindow_get(win);
+               retvm_if(xwin == 0, VOLUME_ERROR_FAIL, "Failed to get xwindow");
+       } else
+               xwin = _xwin;
+
+       ret = utilx_grab_key(disp, xwin, KEY_VOLUMEDOWN, grab_mode);
+       retvm_if(ret < 0, VOLUME_ERROR_FAIL, "Failed to grab key down");
+       retvm_if(ret == 1, VOLUME_ERROR_FAIL, "Already grab");
+
+       ret = utilx_grab_key(disp, xwin, KEY_VOLUMEUP, grab_mode);
+       retvm_if(ret < 0, VOLUME_ERROR_FAIL, "Failed to grab key up");
+       retvm_if(ret == 1, VOLUME_ERROR_FAIL, "Already grab");
+
+       ret = utilx_grab_key(disp, xwin, KEY_MUTE, grab_mode);
+       retvm_if(ret < 0, VOLUME_ERROR_FAIL, "Failed to grab key mute");
+       retvm_if(ret == 1, VOLUME_ERROR_FAIL, "Already grab");
+
+       return VOLUME_ERROR_OK;
+}
+
+volume_error_e volume_key_event_key_ungrab(void)
+{
+       Ecore_X_Window xwin = 0;
+       Ecore_X_Display *disp = NULL;
+
+       Evas_Object *win = volume_view_win_get();
+       retv_if(win == NULL, VOLUME_ERROR_FAIL);
+
+       Ecore_X_Window input_win = volume_key_event_input_window_get();
+       retv_if(input_win == 0, VOLUME_ERROR_FAIL);
+
+       xwin = elm_win_xwindow_get(win);
+       retv_if(xwin == 0, VOLUME_ERROR_FAIL);
+
+       disp = ecore_x_display_get();
+       retv_if(disp == NULL, VOLUME_ERROR_FAIL);
+
+       //@TODO : need to check
+       utilx_ungrab_key(disp, input_win, KEY_VOLUMEUP);
+       utilx_ungrab_key(disp, input_win, KEY_VOLUMEDOWN);
+       utilx_ungrab_key(disp, input_win, KEY_MUTE);
+
+       _D("key ungrabed");
+
+       return VOLUME_ERROR_OK;
+}*/
+
+void volume_key_event_handler_add(void)
+{
+       if(!key_event_info.handler_volume_up)
+               key_event_info.handler_volume_up = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _key_release_cb, NULL);
+
+       if(!key_event_info.handler_volume_down)
+               key_event_info.handler_volume_down = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _key_press_cb, NULL);
+}
+
+void volume_key_event_handler_del(void)
+{
+       ret_if(key_event_info.handler_volume_up == NULL);
+       ecore_event_handler_del(key_event_info.handler_volume_up);
+       key_event_info.handler_volume_up= NULL;
+
+       ret_if(key_event_info.handler_volume_down == NULL);
+       ecore_event_handler_del(key_event_info.handler_volume_down);
+       key_event_info.handler_volume_down = NULL;
+}
+/*
+volume_error_e volume_key_event_input_window_create(void)
+{
+       Ecore_X_Window input_win = _add_input_window();
+       retv_if(!input_win, VOLUME_ERROR_FAIL);
+
+       key_event_info.input_win = input_win;
+
+       return volume_key_event_key_grab(input_win, SHARED_GRAB);
+}*/
+
+static volume_error_e _mute_key_press()
+{
+       int lastval = -1;
+       int lock = IDLELOCK_ON;
+       int status = 0;
+       int sound = 0;
+       int error = 0;
+       bool bt_opened = false;
+       sound_type_e sound_type = 0;
+
+       status = volume_control_check_status(&lock, &sound_type);
+       _D("status: %d, lock: %d, sound type : %d", status, lock, sound_type);
+
+       sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound);
+
+       error = bt_ag_is_sco_opened(&bt_opened);
+       if(error != BT_ERROR_NONE)
+               _E("bt_ag_is_sco_opened return [%d]", error);
+
+       _D("BT state %d", bt_opened);
+
+       volume_control_show_view(status, sound_type, sound, bt_opened);
+
+       if (sound_type == SOUND_TYPE_MEDIA) {
+               if (key_event_info.is_mute == EINA_FALSE) {
+                       _D("media is playing. set media volume to 0.");
+                       lastval = volume_sound_level_get(sound_type);
+                       retv_if(lastval == -1, VOLUME_ERROR_FAIL);
+
+                       key_event_info.last_value_in_media = lastval;
+                       volume_sound_level_set(sound_type, 0);
+                       if (VOLUME_ERROR_OK != volume_view_slider_value_set(0)) {
+                               _E("Failed to set slider value");
+                               return VOLUME_ERROR_FAIL;
+                       }
+                       key_event_info.is_mute = EINA_TRUE;
+                       return VOLUME_ERROR_OK;
+               } else {
+                       _D("toggle the mute key to normal in media. last value in media : %d", key_event_info.last_value_in_media);
+                       volume_sound_level_set(sound_type, lastval);
+                       if (VOLUME_ERROR_OK != volume_view_slider_value_set(lastval)) {
+                               _E("Failed to set slider value");
+                               return VOLUME_ERROR_FAIL;
+                       }
+                       key_event_info.is_mute = EINA_FALSE;
+                       return VOLUME_ERROR_OK;
+               }
+       } else {
+               if (lock == IDLELOCK_ON) {
+                       _D("lock is on, block the MUTE key");
+                       return VOLUME_ERROR_OK;
+               }
+
+               if (volume_mute_toggle_set())
+                       volume_sound_feedback_play(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_GENERAL);
+
+               return VOLUME_ERROR_OK;
+       }
+}
+
+static volume_error_e _volume_up_key_press(sound_type_e sound_type, int sound, bool bt_opened)
+{
+       int sound_step = 0;
+       int sound_level = 0;
+       int vibration = 0;
+
+       _D("Volume Up Key Pressed");
+       key_event_info.is_mute = EINA_FALSE;
+
+       sound_step = volume_sound_step_get();
+       _D("sound step : %d", sound_step);
+
+       sound_level = volume_sound_level_get(sound_type);
+       retv_if(sound_level == -1, VOLUME_ERROR_FAIL);
+       _D("sound level : %d", sound_level);
+
+       vibration = volume_sound_vconf_status_get(TYPE_VCONF_VIBRATION_STATUS);
+       _D("vibration : %d", vibration);
+
+       if (elm_object_disabled_get(volume_view_slider_get()))
+               elm_object_disabled_set(volume_view_slider_get(), EINA_FALSE);
+
+       if (sound_type == SOUND_TYPE_RINGTONE) {
+               if (!sound) {
+                       /* Check sound status change case. */
+                       if (!vibration) {
+                               _D("mute -> vib.");
+                               volume_sound_vconf_status_set(TYPE_VCONF_VIBRATION_STATUS, 1);
+                               volume_sound_vib_play();
+                       }
+                       else {
+                               _D("vib -> sound");
+                               volume_sound_vconf_status_set(TYPE_VCONF_SOUND_STATUS, 1);
+                               volume_sound_vconf_status_set(TYPE_VCONF_VIBRATION_STATUS, 0);
+                               volume_sound_level_set(sound_type, sound_level+1);
+                               volume_view_slider_value_set(sound_level+1);
+                               _D("new sound value: %d", sound_level+1);
+                       }
+               }
+               else {
+                       /*adjust the sound level normally */
+                       if (sound_level != sound_step) {
+                               volume_sound_level_set(sound_type, sound_level+1);
+                               volume_view_slider_value_set(sound_level+1);
+                               _D("new sound value: %d", sound_level+1);
+                       }
+               }
+       }
+       else if (sound_type == SOUND_TYPE_NOTIFICATION) {
+               if (!sound) {
+                       /* No sound in notification type. */
+                       volume_view_slider_value_set(0);
+                       elm_object_disabled_set(volume_view_slider_get(), EINA_TRUE);
+               }
+               else {
+                       /*adjust the sound level normally */
+                       if (sound_level != sound_step) {
+                               volume_sound_level_set(sound_type, sound_level+1);
+                               volume_view_slider_value_set(sound_level+1);
+                               _D("new sound value: %d", sound_level+1);
+                       }
+               }
+       }
+       /* Sound type is not ringtone. Need to adjust sound level */
+       else if (sound_type == SOUND_TYPE_CALL && bt_opened) {
+               int bt_vol = 0;
+               if (bt_ag_get_speaker_gain(&bt_vol) != BT_ERROR_NONE)
+                       _E("Getting bt volume is failed");
+
+               _D("BT VOLUME : %d", bt_vol);
+
+               if (bt_vol != sound_step) {
+                       if(bt_ag_notify_speaker_gain(bt_vol+1) != BT_ERROR_NONE)
+                               _E("Setting bt volume is failed");
+                       volume_view_slider_value_set(bt_vol+1);
+                       _D("New BT VOLUME : %d", bt_vol+1);
+               }
+       }
+       else {
+               if (sound_level != sound_step) {
+                       volume_sound_level_set(sound_type, sound_level+1);
+                       volume_view_slider_value_set(sound_level+1);
+                       _D("new sound value: %d", sound_level+1);
+               }
+       }
+
+       if (sound_type != SOUND_TYPE_ALARM)
+               volume_sound_play();
+
+       volume_timer_del(TYPE_TIMER_SU);
+       volume_timer_del(TYPE_TIMER_SD);
+       volume_timer_add(0.5, TYPE_TIMER_SU);
+
+       if (!volume_timer_su_timer_get()) {
+               _E("Failed to get SUTIMER");
+               return VOLUME_ERROR_FAIL;
+       }
+
+       return VOLUME_ERROR_OK;
+}
+
+static volume_error_e _volume_down_key_press(sound_type_e sound_type, int sound, bool bt_opened)
+{
+       key_event_info.is_mute = EINA_FALSE;
+
+       int val = volume_sound_level_get(sound_type);
+       retv_if(val == -1, VOLUME_ERROR_FAIL);
+
+       int sound_st = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound_st);
+
+       int vibration = volume_sound_vconf_status_get(TYPE_VCONF_VIBRATION_STATUS);
+       _D("vibration : %d", vibration);
+
+       if (elm_object_disabled_get(volume_view_slider_get()))
+               elm_object_disabled_set(volume_view_slider_get(), EINA_FALSE);
+
+       if(sound_type == SOUND_TYPE_RINGTONE){
+               if (!sound)
+                       /* Check sound status change case. */
+                       _D("Do nothing.");
+               else {
+                       if (val != 0) {
+                               volume_sound_level_set(sound_type, val - 1);
+                               volume_view_slider_value_set(val - 1);
+                               /*adjust the sound level normally */
+                               if (val == 1) {
+                                       volume_sound_vconf_status_set(TYPE_VCONF_SOUND_STATUS, 0);
+                                       volume_sound_vconf_status_set(TYPE_VCONF_VIBRATION_STATUS, 1);
+                                       volume_sound_vib_play();
+                               }
+                       }
+               }
+       }
+       else if (sound_type == SOUND_TYPE_NOTIFICATION) {
+               if(!sound) {
+                       /* No sound in notification type. */
+                       volume_view_slider_value_set(0);
+                       elm_object_disabled_set(volume_view_slider_get(), EINA_TRUE);
+               }
+               else {
+                       /*adjust the sound level normally */
+                       if (val != 0) {
+                               volume_sound_level_set(sound_type, val-1);
+                               volume_view_slider_value_set(val-1);
+                               _D("new sound value: %d", val-1);
+                       }
+               }
+       }
+       else if(sound_type == SOUND_TYPE_CALL && bt_opened) {
+               int bt_vol = 0;
+               if(bt_ag_get_speaker_gain(&bt_vol) != BT_ERROR_NONE)
+                       _E("Getting bt volume is failed");
+
+               _D("BT VOLUME : %d", bt_vol);
+               if(bt_ag_notify_speaker_gain(bt_vol-1) != BT_ERROR_NONE)
+                       _E("Setting bt volume is failed");
+               volume_view_slider_value_set(bt_vol-1);
+
+               _D("New BT VOLUME : %d", bt_vol-1);
+       }
+       /* Sound type is not ringtone. Need to adjust sound level */
+       else {
+               if (val != 0) {
+                       volume_sound_level_set(sound_type, val - 1);
+                       volume_view_slider_value_set(val - 1);
+                       _D("new sound value: %d", val-1);
+               }
+       }
+
+       if(sound_type != SOUND_TYPE_ALARM)
+               volume_sound_play();
+
+       volume_timer_del(TYPE_TIMER_SD);
+       volume_timer_del(TYPE_TIMER_SU);
+       volume_timer_add(0.5, TYPE_TIMER_SD);
+
+       return VOLUME_ERROR_OK;
+}
+
+static volume_error_e _volume_popup_check_in_alarm_type(sound_type_e sound_type)
+{
+       int is_enabled = 0;
+
+       if(sound_type == SOUND_TYPE_ALARM) {
+               _D("Sound type is Alarm Type");
+               if(vconf_get_bool(VCONFKEY_ALARM_VOLUME_POPUP_ENABLE, &is_enabled) < 0) {
+                       _E("Failed to get vconfkey : VCONFKEY_ALARM_VOLUME_POPUP_ENABLE");
+                       return VOLUME_ERROR_FAIL;
+               }
+               _D("volume popup enabled in alarm type : %d", is_enabled);
+
+               if(!is_enabled) {
+                       _D("alarm type but vconf for the volume popup is disabled");
+                       return VOLUME_ERROR_FAIL;
+               }
+       }
+
+       return VOLUME_ERROR_OK;
+}
+
+static Eina_Bool _key_press_cb(void *data, int type, void *event)
+{
+       int sound = 0;
+       int lock = IDLELOCK_ON;
+       int key_status = 0;
+       int status = 0;
+       int error = 0;
+       bool bt_opened = false;
+       sound_type_e sound_type = 0;
+       Evas_Object *win = NULL;
+       Ecore_Event_Key *ev = NULL;
+
+       ev = (Ecore_Event_Key*) event;
+       retv_if(!ev, ECORE_CALLBACK_CANCEL);
+
+       _D("Key Press CB : %s", ev->keyname);
+
+       win = volume_view_win_get();
+       retv_if(!win, ECORE_CALLBACK_CANCEL);
+
+       if(!strncmp(ev->keyname, KEY_CANCEL, strlen(KEY_CANCEL)) || !strncmp(ev->keyname, KEY_BACK, strlen(KEY_BACK))) {
+               _D("%s is pressed", ev->keyname);
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if(volume_view_is_slider_touching_get()) {
+               _E("Failed to show volume : is_slider_touching is EINA_TRUE");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if(vconf_get_int(VCONFKEY_STARTER_USE_VOLUME_KEY, &key_status) < 0) {
+               _E("Failed to get vconf : VCONFKEY_STATER_USE_VOLUME_KEY");
+               return ECORE_CALLBACK_CANCEL;
+       }
+       retvm_if(key_status == 2, ECORE_CALLBACK_CANCEL, "starter use volume key. status : 2");
+
+#ifndef FEATURE_SDK
+       int is_call = -1;
+       if(!strncmp(ev->keyname, KEY_MUTE, strlen(KEY_MUTE))) {
+               _D("MUTE key is pressed");
+               if(VOLUME_ERROR_OK != _mute_key_press())
+                       _E("Failed to press MUTE key");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if(vconf_get_int(VCONFKEY_TELEPHONY_CALL_STATE, &is_call) < 0 || is_call < 0) {
+               _E("Failed to get call state vconf");
+               return ECORE_CALLBACK_CANCEL;
+       }
+       if(is_call>0) {
+               _D("Call is active");
+               return ECORE_CALLBACK_CANCEL;
+       }
+#endif
+
+       status = volume_control_check_status(&lock, &sound_type);
+       _D("status: %d, lock: %d, sound type : %d", status, lock, sound_type);
+
+       sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound);
+
+       error = bt_ag_is_sco_opened(&bt_opened);
+       if(error != BT_ERROR_NONE)
+               _E("bt_ag_is_sco_opened return [%d]", error);
+
+       _D("BT state %d", bt_opened);
+
+       if(VOLUME_ERROR_OK != _volume_popup_check_in_alarm_type(sound_type)) {
+               _E("Failed to set volume popup");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       volume_control_show_view(status, sound_type, sound, bt_opened);
+
+       key_event_info.is_pressing = EINA_TRUE;
+
+       volume_timer_del(TYPE_TIMER_POPUP);
+
+       if (!strncmp(ev->keyname, KEY_VOLUMEUP, strlen(KEY_VOLUMEUP))) {
+               if(VOLUME_ERROR_OK != _volume_up_key_press(sound_type, sound, bt_opened))
+                       _E("Failed to press volume up key");
+       }
+       else if (!strncmp(ev->keyname, KEY_VOLUMEDOWN, strlen(KEY_VOLUMEDOWN))) {
+               if(VOLUME_ERROR_OK != _volume_down_key_press(sound_type, sound, bt_opened))
+                       _E("Failed to press volume down key");
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static Eina_Bool _key_release_cb(void *data, int type, void *event)
+{
+       Ecore_Event_Key *ev = event;
+       retv_if(ev == NULL, ECORE_CALLBACK_CANCEL);
+       _D("Key Release CB : %s", ev->keyname);
+
+       Evas_Object *win = volume_view_win_get();
+       retv_if(win == NULL, ECORE_CALLBACK_CANCEL);
+
+       key_event_info.is_pressing = EINA_FALSE;
+
+       if(!strncmp(ev->keyname, KEY_CANCEL, strlen(KEY_CANCEL))) {
+               _D("%s is released", ev->keyname);
+               if(VOLUME_ERROR_OK != volume_control_hide_view())
+                       _E("Failed to close volume");
+               if(VOLUME_ERROR_OK != volume_control_cache_flush())
+                       _E("Failed to flush cache");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if(!strncmp(ev->keyname, KEY_BACK, strlen(KEY_BACK))) {
+               _D("BACK Key is released");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (!strncmp(ev->keyname, KEY_VOLUMEUP, strlen(KEY_VOLUMEUP))) {
+               _D("up key released and del timer");
+               volume_timer_del(TYPE_TIMER_SU);
+       }
+       else if (!strncmp(ev->keyname, KEY_VOLUMEDOWN, strlen(KEY_VOLUMEDOWN))) {
+               _D("down key released and del timer");
+               volume_timer_del(TYPE_TIMER_SD);
+       }
+
+       volume_timer_del(TYPE_TIMER_POPUP);
+
+       if(volume_view_is_slider_touching_get() == EINA_FALSE)
+               volume_timer_add(3.0, TYPE_TIMER_POPUP);
+
+       _D("key release fini");
+       return ECORE_CALLBACK_CANCEL;
+}
+
diff --git a/src/main.c b/src/main.c
new file mode 100755 (executable)
index 0000000..0235549
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 2009-2014 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 <feedback.h>
+#include <vconf.h>
+#include <app_control_internal.h>
+#include <app_preference.h>
+#include <Elementary.h>
+#include <appcore-efl.h>
+#include <app.h>
+
+#include "main.h"
+#include "_util_log.h"
+#include "_util_efl.h"
+#include "view.h"
+#include "control.h"
+
+static bool _create_app(void *user_data);
+static void _terminate_app(void *user_data);
+static void _pause_app(void *user_data);
+static void _resume_app(void *user_data);
+static void _control_app(app_control_h service, void *user_data);
+static void _control_app(app_control_h service, void *user_data);
+static void _changed_language(app_event_info_h event_info, void *user_data);
+
+int main(int argc, char *argv[])
+{
+       _D(">>>>>>>>>>>>>>>>>>>>>>>>>> main >>>>>>>>>>>>>>>>");
+       int ret = 0;
+
+       ui_app_lifecycle_callback_s lifecycle_callback = {0,};
+       app_event_handler_h handlers[5] = {NULL, };
+
+       lifecycle_callback.create = _create_app;
+       lifecycle_callback.terminate = _terminate_app;
+       lifecycle_callback.pause = _pause_app;
+       lifecycle_callback.resume = _resume_app;
+       lifecycle_callback.app_control = _control_app;
+
+       ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, NULL, NULL);
+       ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, NULL, NULL);
+       ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, NULL, NULL);
+       ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, _changed_language, NULL);
+       ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, NULL, NULL);
+
+       ret = ui_app_main(argc, argv, &lifecycle_callback, NULL);
+       if (ret != APP_ERROR_NONE)
+               _E("app_main() is failed. err = %d", ret);
+
+       return ret;
+}
+
+static bool _create_app(void *user_data)
+{
+       _D(">>>>>>>>>>>>>>>>>>>>>>>>> create app >>>>>>>>>>>>>>>>>>>>");
+       elm_app_base_scale_set(1.8);
+       /* Initialize feedback */
+       //feedback_initialize();
+
+       /* Initialize volume */
+       if (VOLUME_ERROR_OK != volume_control_initialize()) {
+               _E("Failed to initialize volume");
+               return false;
+       }
+
+       return true;
+}
+
+static void _terminate_app(void *user_data)
+{
+       /* Deinitialize feedback */
+       feedback_deinitialize();
+
+       /* Deinitialize volume */
+       volume_control_deinitialize();
+}
+
+static void _pause_app(void *user_data)
+{
+       if(VOLUME_ERROR_OK != volume_control_pause())
+               _E("Failed to pause volume");
+}
+
+static void _resume_app(void *user_data)
+{
+}
+
+static void _control_app(app_control_h service, void *user_data)
+{
+       bundle *b = NULL;
+       app_control_to_bundle(service, &b);
+
+       if(VOLUME_ERROR_OK != volume_control_reset(b)) {
+               _E("Failed to reset volume");
+               return;
+       }
+
+       Evas_Object *win = volume_view_win_get();
+       if(win)
+               elm_win_activate(win);
+}
+
+static void _changed_language(app_event_info_h event_info, void *user_data)
+{
+       _D("language changed");
+       char *locale = vconf_get_str(VCONFKEY_LANGSET);
+       if (locale)
+               elm_language_set(locale);
+       free(locale);
+}
+
diff --git a/src/sound.c b/src/sound.c
new file mode 100755 (executable)
index 0000000..d1efaca
--- /dev/null
@@ -0,0 +1,356 @@
+/*
+ * Copyright (c) 2009-2014 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 <appcore-common.h>
+#include <vconf.h>
+#include <vconf-keys.h>
+#include <feedback.h>
+
+#include "main.h"
+#include "_util_log.h"
+#include "view.h"
+#include "control.h"
+#include "sound.h"
+#include "bt.h"
+
+struct _sound_s_info {
+       int sound_step;
+       int sound_status;
+       int vibration_status;
+       Eina_Bool is_vibration;
+};
+
+static struct _sound_s_info sound_info = {
+       .sound_step = 0,
+       .sound_status = 0,
+       .vibration_status = 0,
+       .is_vibration = EINA_FALSE,
+};
+
+static void _sound_status_changed_cb(keynode_t *key, void *data);
+static int _setting_sound_enabled(void);
+
+int volume_sound_step_get(void)
+{
+       return sound_info.sound_step;
+}
+
+int volume_sound_sound_status_get(void)
+{
+       return sound_info.sound_status;
+}
+
+int volume_sound_vibration_status_get(void)
+{
+       return sound_info.vibration_status;
+}
+
+Eina_Bool volume_sound_is_vibration_get(void)
+{
+       return sound_info.is_vibration;
+}
+
+void volume_sound_is_vibration_set(Eina_Bool val)
+{
+       sound_info.is_vibration = val;
+}
+
+void volume_sound_feedback_play(int feedback_type, int pattern)
+{
+       _D("Feedback type : %d / pattern : %d", feedback_type, pattern);
+
+       if (FEEDBACK_ERROR_NONE != feedback_play_type(feedback_type, pattern))
+               _E("Failed to play feedback");
+}
+
+void volume_sound_vib_play(void)
+{
+       ret_if(sound_info.is_vibration);
+
+       _D("Play Feedback : vibration");
+
+       //if (FEEDBACK_ERROR_NONE != feedback_play_type(FEEDBACK_TYPE_VIBRATION, FEEDBACK_PATTERN_VIBRATION_ON))
+       //      _E("Failed to play feedback");
+
+       sound_info.is_vibration = EINA_TRUE;
+}
+
+void volume_sound_play(void)
+{
+       sound_type_e sound_type = volume_control_get_sound_type_at_show();
+       _D("sound type at show : %d", sound_type);
+
+       ret_if(sound_type == SOUND_TYPE_ALARM);
+       ret_if(sound_type == SOUND_TYPE_MEDIA);
+       ret_if(sound_type == SOUND_TYPE_VOICE);
+       ret_if(sound_type == SOUND_TYPE_NOTIFICATION);
+
+       _D("Play Feedback : sound");
+       if(FEEDBACK_ERROR_NONE != feedback_play(FEEDBACK_PATTERN_VOLUME_KEY)) {
+               _E("Failed to play feedback");
+       }
+
+       return;
+}
+
+void volume_sound_setting_sound_play(void)
+{
+       int snd_enabled = _setting_sound_enabled();
+       _D("snd_enabled(%d)", snd_enabled);
+
+       if(snd_enabled == 1)
+               volume_sound_feedback_play(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TOUCH_TAP);
+}
+
+int volume_sound_sound_manager_step_get(sound_type_e type)
+{
+       _D("volume sound manager step get");
+       int ret = -1, step = 0;
+
+       ret = sound_manager_get_max_volume(type, &step);
+       retvm_if(ret < 0, -1, "Failed to get step");
+
+       sound_info.sound_step = step;
+
+       return step;
+}
+
+int volume_sound_sound_manager_volume_get(sound_type_e type)
+{
+       int ret = -1, val = 0;
+       ret = sound_manager_get_volume(type, &val);
+       retvm_if(ret < 0, -1, "Failed to get volume");
+       return val;
+}
+
+sound_type_e volume_sound_sound_manager_type_get(void)
+{
+       _D(" Volume sound manager type get");
+       int ret = 0;
+       sound_type_e sound_type = -1;
+
+       ret = sound_manager_get_current_sound_type(&sound_type);
+       _D("ret: %d, sound type: %d", ret, sound_type);
+       switch (ret) {
+       case SOUND_MANAGER_ERROR_NONE:
+               _D("Error none");
+               break;
+       case SOUND_MANAGER_ERROR_NO_PLAYING_SOUND:
+               _D("NO playing sound");
+               sound_type = SOUND_TYPE_RINGTONE;
+               break;
+       default:
+               _E("Failed to get sound type : %d", ret);
+               sound_type = SOUND_TYPE_RINGTONE;
+               return sound_type;
+       }
+
+       if(sound_type == SOUND_TYPE_SYSTEM)
+               sound_type = SOUND_TYPE_RINGTONE;
+
+       return sound_type;
+}
+
+void _mm_func(sound_type_e type, unsigned int volume, void *data)
+{
+       bool bt_opened = false;
+
+       _D("mm func is called type : %d, volume : %d", type, volume);
+       if (type == volume_control_get_sound_type_at_show()) {
+               _D("current show type : %d, volume : %d", type, volume);
+               /* Need to check sound type & device in media type volume. */
+               if (type == SOUND_TYPE_MEDIA) {
+                       int sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+                       _D("sound status : %d", sound);
+
+                       int vibration = volume_sound_vconf_status_get(TYPE_VCONF_VIBRATION_STATUS);
+                       _D("vibration : %d", vibration);
+                       volume_view_volume_icon_set(type, sound, vibration, bt_opened);
+               }
+               if (VOLUME_ERROR_OK != volume_view_slider_value_set(volume))
+                       _E("Failed to set slider value");
+       }
+}
+
+void volume_sound_mm_sound_init(void)
+{
+       _D("MM sound Init");
+       int ret = sound_manager_set_volume_changed_cb(_mm_func, NULL);
+       if (ret != SOUND_MANAGER_ERROR_NONE)
+               _E("Failed to set volume changed event[%d]", ret);
+}
+
+int volume_sound_level_get(sound_type_e type)
+{
+       int val = -1;
+       if (sound_manager_get_volume(type, &val) < 0) {
+               _E("Failed to get Volume step");
+               return -1;
+       }
+
+       return val;
+}
+
+int volume_sound_level_set(sound_type_e type, int val)
+{
+       int ret = -1;
+       ret = sound_manager_set_volume(type, val);
+
+       return ret;
+}
+
+void volume_sound_change_set(int val)
+{
+       sound_type_e sound_type = volume_control_get_sound_type_at_show();
+       _D("sound type at show : %d", sound_type);
+
+       int sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound);
+
+       if (val) {
+               if (sound_type != SOUND_TYPE_MEDIA) {
+                       if (!volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS)) {
+                               volume_sound_vconf_status_set(TYPE_VCONF_SOUND_STATUS, 1);
+                               volume_sound_vconf_status_set(TYPE_VCONF_VIBRATION_STATUS, 0);
+                       }
+               }
+               if (volume_sound_level_set(sound_type, val) != 0)
+                       volume_sound_level_set(sound_type, 9);
+
+               volume_sound_play();
+       } else {
+               if (sound_type != SOUND_TYPE_MEDIA)
+                       volume_sound_vconf_status_set(TYPE_VCONF_SOUND_STATUS, 0);
+               volume_view_slider_value_set(0);
+               volume_sound_level_set(sound_type, 0);
+
+               if (sound_type == SOUND_TYPE_RINGTONE) {
+                       volume_sound_vconf_status_set(TYPE_VCONF_VIBRATION_STATUS, 1);
+                       volume_sound_vib_play();
+               }
+       }
+}
+
+void volume_sound_vconf_status_set(volume_vconf_type_e type, int val)
+{
+       char *vconfkey = NULL;
+       switch (type)
+       {
+       case TYPE_VCONF_SOUND_STATUS:
+               vconfkey = VCONFKEY_SETAPPL_SOUND_STATUS_BOOL;
+               break;
+       case TYPE_VCONF_VIBRATION_STATUS:
+               vconfkey = VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL;
+               break;
+       default:
+               _E("Failed to set vconfkey : Type error");
+               return;
+       }
+
+       if (vconf_set_bool(vconfkey, val) < 0)
+               _E("Failed to set vconfkey : %s", vconfkey);
+}
+
+int volume_sound_vconf_status_get(volume_vconf_type_e type)
+{
+       int ret = -1;
+       char *vconfkey = NULL;
+
+       switch (type)
+       {
+       case TYPE_VCONF_SOUND_STATUS:
+               vconfkey = VCONFKEY_SETAPPL_SOUND_STATUS_BOOL;
+               break;
+       case TYPE_VCONF_VIBRATION_STATUS:
+               vconfkey = VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL;
+               break;
+       default:
+               _E("Failed to get vconfkey : Type error");
+               return -1;
+       }
+
+       if (vconf_get_bool(vconfkey, &ret) < 0) {
+               _E("Failed to get vconfkey : %s", vconfkey);
+               return -1;
+       }
+
+       return ret;
+}
+
+void volume_sound_vconfkey_register(void)
+{
+       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, _sound_status_changed_cb, NULL) < 0)
+               _E("Failed to notify vconfkey : VCONFKEY_SETAPPL_SOUND_STATUS_BOOL");
+
+       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, _sound_status_changed_cb, NULL) < 0)
+               _E("Failed to notify vconfkey : VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL");
+       _sound_status_changed_cb(NULL, NULL);
+}
+
+void volume_sound_vconfkey_unregister(void)
+{
+       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, _sound_status_changed_cb) < 0)
+               _E("Failed to ignore vconfkey : VCONFKEY_SETAPPL_SOUND_STATUS_BOOL");
+
+       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, _sound_status_changed_cb) < 0)
+               _E("Failed to ignore vconfkey : VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL");
+}
+
+static int _setting_sound_enabled(void)
+{
+       int snd_status = 0;
+
+       if (vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &snd_status) < 0)
+               _E("Failed to get vconfkey : VCONFKEY_SETAPPL_SOUND_STATUS_BOOL");
+
+       if (snd_status == 1)
+               return 1;
+
+       return 0;
+}
+
+static void _sound_status_changed_cb(keynode_t *key, void *data)
+{
+       bool bt_opened = false;
+       const char *keyname = vconf_keynode_get_name(key);
+       ret_if(!keyname);
+       _D("keyname : %s", keyname);
+
+       sound_type_e sound_type = volume_control_get_sound_type_at_show();
+       _D("sound type at show : %d", sound_type);
+
+       int sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound);
+       sound_info.sound_status = sound;
+
+       int vibration = volume_sound_vconf_status_get(TYPE_VCONF_VIBRATION_STATUS);
+       _D("vibration : %d", vibration);
+       sound_info.vibration_status = vibration;
+
+       if (sound == 0 && vibration == 1)
+               _D("vibration mode");
+       else if (sound == 1 && vibration == 0) {
+               _D("sound mode");
+               sound_info.is_vibration = EINA_FALSE;
+       } else if (sound == 0 && vibration == 0) {
+               _D("mute mode");
+               sound_info.is_vibration = EINA_FALSE;
+       }
+
+       volume_view_volume_icon_set(sound_type, sound, vibration, bt_opened);
+}
+
diff --git a/src/timer.c b/src/timer.c
new file mode 100755 (executable)
index 0000000..466f3c7
--- /dev/null
@@ -0,0 +1,309 @@
+/*
+ * Copyright (c) 2009-2014 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 "main.h"
+#include "_util_log.h"
+#include "view.h"
+#include "control.h"
+#include "sound.h"
+#include "timer.h"
+
+#define DEL_TIMER(x) \
+       if (x) {\
+               _D("DELTIMER x : %p\n", x);\
+               ecore_timer_del(x);\
+               x = NULL;\
+       }
+#define ADD_TIMER(x, time, _timer_cb, data) \
+       if(x != NULL) DEL_TIMER(x); \
+       x = ecore_timer_add(time, _timer_cb, data);\
+       _D("ADDTIMER x : %p\n", x);\
+
+
+struct _timer_s_info {
+       Ecore_Timer *popup_timer; /* pop-up timer */
+       Ecore_Timer *slider_timer; /* slider timer */
+       Ecore_Timer *su_timer; /* short up timer */
+       Ecore_Timer *sd_timer; /* short down timer */
+       Ecore_Timer *lu_timer; /* long up timer */
+       Ecore_Timer *ld_timer; /* long down timer */
+       Ecore_Timer *bt_timer; /* long down timer */
+};
+
+static struct _timer_s_info timer_info = {
+       .popup_timer = NULL,
+       .slider_timer = NULL,
+       .su_timer = NULL,
+       .sd_timer = NULL,
+       .lu_timer = NULL,
+       .ld_timer = NULL,
+       .bt_timer = NULL,
+};
+
+static Eina_Bool _timer_short_down_cb(void *data);
+static Eina_Bool _timer_short_up_cb(void *data);
+static Eina_Bool _timer_slider_cb(void *data);
+static Eina_Bool _timer_popup_cb(void *data);
+static Eina_Bool _timer_bt_cb(void *data);
+
+Ecore_Timer *volume_timer_bt_timer_get(void)
+{
+       return timer_info.bt_timer;
+}
+
+Ecore_Timer *volume_timer_popup_timer_get(void)
+{
+       return timer_info.popup_timer;
+}
+
+Ecore_Timer *volume_timer_slider_timer_get(void)
+{
+       return timer_info.slider_timer;
+}
+
+Ecore_Timer *volume_timer_su_timer_get(void)
+{
+       return timer_info.su_timer;
+}
+
+Ecore_Timer *volume_timer_sd_timer_get(void)
+{
+       return timer_info.sd_timer;
+}
+
+void volume_timer_add(double time, volume_timer_type type)
+{
+       _D("VOLUME TIMER ADD");
+       if (type == TYPE_TIMER_POPUP) {
+               ADD_TIMER(timer_info.popup_timer, time, _timer_popup_cb, NULL);
+       } else if (type == TYPE_TIMER_SLIDER) {
+               ADD_TIMER(timer_info.slider_timer, time, _timer_slider_cb, NULL);
+       } else if (type == TYPE_TIMER_SD) {
+               ADD_TIMER(timer_info.sd_timer, time, _timer_short_down_cb, NULL);
+       } else if (type == TYPE_TIMER_SU) {
+               ADD_TIMER(timer_info.su_timer, time, _timer_short_up_cb, NULL);
+       } else if (type == TYPE_TIMER_BT) {
+               ADD_TIMER(timer_info.bt_timer, time, _timer_bt_cb, NULL);
+       } else {
+               _E("Failed to get type : type error(%d)", type);
+               return;
+       }
+}
+
+void volume_timer_del(volume_timer_type type)
+{
+       if (type == TYPE_TIMER_POPUP) {
+               DEL_TIMER(timer_info.popup_timer);
+       } else if (type == TYPE_TIMER_SLIDER) {
+               DEL_TIMER(timer_info.slider_timer);
+       } else if (type == TYPE_TIMER_SD) {
+               DEL_TIMER(timer_info.sd_timer);
+       } else if (type == TYPE_TIMER_SU) {
+               DEL_TIMER(timer_info.su_timer);
+       } else if (type == TYPE_TIMER_BT) {
+               DEL_TIMER(timer_info.bt_timer);
+       } else {
+               _E("Failed to get type : type error(%d)", type);
+               return;
+       }
+}
+
+static Eina_Bool _timer_bt_cb(void *data)
+{
+       if (VOLUME_ERROR_OK != volume_control_close_bt_display())
+               _E("Failed to close volume");
+       if (VOLUME_ERROR_OK != volume_control_cache_flush())
+               _E("Failed to flush cache");
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static Eina_Bool _timer_popup_cb(void *data)
+{
+       if (VOLUME_ERROR_OK != volume_control_hide_view())
+               _E("Failed to close volume");
+       if (VOLUME_ERROR_OK != volume_control_cache_flush())
+               _E("Failed to flush cache");
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static Eina_Bool _timer_slider_cb(void *data)
+{
+       Evas_Object *slider = volume_view_slider_get();
+       if (slider == NULL) {
+               timer_info.slider_timer = NULL;
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       double val = 0;
+
+       int sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound);
+
+#if 0
+       int vibration = volume_sound_vconf_status_get(TYPE_VCONF_VIBRATION_STATUS);
+       _D("vibration : %d", vibration);
+#endif
+
+       sound_type_e sound_type = volume_control_get_sound_type_at_show();
+       _D("sound type at show : %d", sound_type);
+
+       val = elm_slider_value_get(slider);
+       val += 0.5;
+       _D("slider value : %d", (int)val);
+
+       if ((int)val != 0) {
+               if (sound_type != SOUND_TYPE_MEDIA) {
+                       volume_sound_vconf_status_set(TYPE_VCONF_SOUND_STATUS, 1);
+                       volume_sound_vconf_status_set(TYPE_VCONF_VIBRATION_STATUS, 0);
+               }
+               volume_sound_is_vibration_set(EINA_FALSE);
+       }
+       if (val < 1) {
+               if (sound_type != SOUND_TYPE_MEDIA) {
+                       volume_sound_vconf_status_set(TYPE_VCONF_SOUND_STATUS, 0);
+
+                       if (sound) {
+                               volume_sound_vconf_status_set(TYPE_VCONF_VIBRATION_STATUS, 1);
+                               volume_sound_vib_play();
+                       }
+               }
+               elm_slider_value_set(slider, 0);
+               volume_sound_level_set(sound_type, 1);
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+static Eina_Bool _timer_short_up_cb(void *data)
+{
+       _D("volume is in LongPress");
+       Evas_Object *win = volume_view_win_get();
+       if (!win) {
+               _E("Window is NULL");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       sound_type_e sound_type = volume_control_get_sound_type_at_show();
+       _D("sound type at show : %d", sound_type);
+
+       if (!evas_object_visible_get(win) && sound_type == SOUND_TYPE_RINGTONE) {
+               _E("Window is hidden");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (volume_view_is_slider_touching_get())
+               return ECORE_CALLBACK_RENEW;
+
+       ecore_timer_interval_set(timer_info.su_timer, 0.1);
+       volume_timer_del(TYPE_TIMER_SLIDER);
+
+       int sound_step = volume_sound_step_get();
+       _D("sound step : %d", sound_step);
+
+       int sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound);
+
+       int val = volume_sound_level_get(sound_type);
+       if (val == -1) {
+               _E("Failed to get volume level");
+               return ECORE_CALLBACK_CANCEL;
+       }
+       _D("sound value : %d", val);
+
+       if (val == sound_step) {
+               _D("already sound value : %d", sound_step);
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       if (!sound && sound_type == SOUND_TYPE_NOTIFICATION) {
+               _D("Do not adjust the noti type in no sound.");
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       if (!sound && sound_type == SOUND_TYPE_RINGTONE) {
+               volume_sound_vconf_status_set(TYPE_VCONF_SOUND_STATUS, 1);
+               volume_sound_vconf_status_set(TYPE_VCONF_VIBRATION_STATUS, 0);
+       }
+
+       if (volume_sound_level_set(sound_type, val+1 > sound_step ? sound_step : val+1)) {
+               _D("[SAFETY_SOUND] release timer");
+               volume_timer_add(3.0, TYPE_TIMER_POPUP);
+       }
+       val = volume_sound_level_get(sound_type);
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+static Eina_Bool _timer_short_down_cb(void *data)
+{
+       Evas_Object *win = volume_view_win_get();
+       if (!win) {
+               _E("Window is NULL");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       sound_type_e sound_type = volume_control_get_sound_type_at_show();
+       _D("sound type at show : %d", sound_type);
+
+       if (!evas_object_visible_get(win) && sound_type == SOUND_TYPE_RINGTONE) {
+               _E("Window is hidden");;
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (volume_view_is_slider_touching_get())
+               return ECORE_CALLBACK_RENEW;
+
+       ecore_timer_interval_set(timer_info.sd_timer, 0.1);
+       volume_timer_del(TYPE_TIMER_SLIDER);
+
+       int sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound);
+
+       int val = volume_sound_level_get(sound_type);
+       if (val == -1) {
+               _E("Failed to get volume level");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (!sound && sound_type == SOUND_TYPE_NOTIFICATION) {
+               _D("Do not adjust the noti type in no sound.");
+               return ECORE_CALLBACK_RENEW;
+       }
+       _D("sound value : %d", val);
+
+       if (val == 1) {
+               if (sound && sound_type == SOUND_TYPE_RINGTONE) {
+                       _D("Set sound status to vibration in long press");
+                       volume_sound_vconf_status_set(TYPE_VCONF_SOUND_STATUS, 0);
+                       volume_sound_vconf_status_set(TYPE_VCONF_VIBRATION_STATUS, 1);
+                       volume_sound_vib_play();
+               }
+       } else if (!val) {
+               _D("already sound value : 0");
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       if (sound || sound_type != SOUND_TYPE_RINGTONE)
+               volume_sound_level_set(sound_type, val-1 <= 0 ? 0 : val-1);
+
+       return ECORE_CALLBACK_RENEW;
+}
+
diff --git a/src/view.c b/src/view.c
new file mode 100755 (executable)
index 0000000..867cec0
--- /dev/null
@@ -0,0 +1,675 @@
+/*
+ * Copyright (c) 2009-2014 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 <Ecore.h>
+//#include <Ecore_X.h>
+#include <feedback.h>
+#include <vconf.h>
+#include <vconf-keys.h>
+#include <app.h>
+
+#include "main.h"
+#include "_util_efl.h"
+#include "_util_log.h"
+#include "view.h"
+#include "control.h"
+#include "timer.h"
+#include "x_event.h"
+#include "key_event.h"
+#include "sound.h"
+
+struct _view_s_info {
+       Evas_Object *win;
+       Evas_Object *evas;
+       Evas_Object *ly_outer;
+       Evas_Object *icon_volume;
+       Evas_Object *icon_setting;
+       Evas_Object *slider;
+
+       Evas_Object *lockscreen_splash;
+
+       Evas_Object *ao_settings;
+
+       Eina_Bool is_registered_callback;
+       Eina_Bool is_slider_touching;
+       Eina_Bool is_warning_displayed;
+};
+static struct _view_s_info view_info = {
+       .win = NULL,
+       .evas = NULL,
+       .ly_outer = NULL,
+       .icon_volume = NULL,
+       .icon_setting = NULL,
+       .slider = NULL,
+
+       .lockscreen_splash = NULL,
+
+       .ao_settings = NULL,
+
+       .is_registered_callback = EINA_FALSE,
+       .is_slider_touching = EINA_FALSE,
+       .is_warning_displayed = EINA_FALSE
+};
+
+static void _button_cb(void *data, Evas_Object *obj, void *event_info);
+static void _button_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void _app_control_error_check(int ret);
+static void _hide_launcher(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _slider_stop_cb(void *data, Evas_Object *obj, void *event_info);
+static void _slider_start_cb(void *data, Evas_Object *obj, void *event_info);
+static void _slider_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object* _slider_make();
+static Evas_Object* _volume_icon_make();
+static Evas_Object* _setting_icon_make();
+
+Evas_Object* volume_view_win_get(void)
+{
+       return view_info.win;
+}
+
+Evas_Object* volume_view_evas_get(void)
+{
+       return view_info.evas;
+}
+
+Evas_Object* volume_view_outer_layout_get(void)
+{
+       return view_info.ly_outer;
+}
+
+Evas_Object* volume_view_icon_volume_get(void)
+{
+       return view_info.icon_volume;
+}
+
+Evas_Object* volume_view_icon_setting_get(void)
+{
+       return view_info.icon_setting;
+}
+
+Evas_Object* volume_view_slider_get(void)
+{
+       return view_info.slider;
+}
+
+Eina_Bool volume_view_is_registered_callback_get(void)
+{
+       return view_info.is_registered_callback;
+}
+
+Eina_Bool volume_view_is_slider_touching_get(void)
+{
+       return view_info.is_slider_touching;
+}
+
+volume_error_e volume_view_set_default_slider(){
+       Evas_Object *slider = volume_view_slider_get();
+       elm_object_style_set(slider, "default");
+       return VOLUME_ERROR_OK;
+}
+
+volume_error_e volume_view_set_warning_slider(){
+       Evas_Object *slider = volume_view_slider_get();
+       elm_object_style_set(slider, "warning");
+       Edje_Message_Float_Set *msg = alloca(sizeof(Edje_Message_Float_Set) + (sizeof(double)));
+       msg->count = 1;
+       msg->val[0] = 0.66;
+       edje_object_message_send(elm_layout_edje_get(slider), EDJE_MESSAGE_FLOAT_SET, 0, msg);
+
+       return VOLUME_ERROR_OK;
+}
+
+int volume_mute_toggle_set()
+{
+       sound_type_e sound_type = volume_control_get_sound_type_at_show();
+       _D("sound type at show : %d", sound_type);
+
+       int sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound);
+
+       int vibration = volume_sound_vconf_status_get(TYPE_VCONF_VIBRATION_STATUS);
+       _E("vibration : %d", vibration);
+
+       if (sound == 1 || vibration == 1) {
+               volume_sound_vconf_status_set(TYPE_VCONF_SOUND_STATUS, 0);
+               volume_sound_vconf_status_set(TYPE_VCONF_VIBRATION_STATUS, 0);
+
+               if(VOLUME_ERROR_OK != volume_view_slider_value_set(0))
+                       _E("Failed to set slider value");
+
+               return 0;
+       }
+       else {
+               volume_sound_vconf_status_set(TYPE_VCONF_SOUND_STATUS, 1);
+               volume_sound_vconf_status_set(TYPE_VCONF_VIBRATION_STATUS, 0);
+
+               int val = volume_sound_level_get(sound_type);
+               retv_if(val == -1, 0);
+
+               if (val == 0) {
+                       if (VOLUME_ERROR_OK != volume_view_slider_value_set(1))
+                               _E("Failed to set slider value");
+                       volume_sound_level_set(sound_type, 1);
+               } else {
+                       if (VOLUME_ERROR_OK != volume_view_slider_value_set(val))
+                               _E("Failed to set slider value");
+               }
+
+               return 1;
+       }
+}
+
+volume_error_e volume_view_slider_value_set(int val)
+{
+       _D("Slider value set : %d", val);
+       retv_if(view_info.is_slider_touching, VOLUME_ERROR_FAIL);
+       retv_if(val<0, VOLUME_ERROR_FAIL);
+
+       elm_slider_value_set(view_info.slider, val);
+
+       return VOLUME_ERROR_OK;
+}
+
+void volume_view_volume_icon_set(sound_type_e sound_type, int sound, int vibration, bool bt_opened)
+{
+       char *img = NULL;
+
+       if (sound == -1 || vibration == -1) {
+               img = IMG_VOLUME_ICON_MUTE;
+               _D("img : %s", img);
+               elm_image_file_set(view_info.icon_volume, EDJ_APP, img);
+               return;
+       }
+
+       switch (sound_type)
+       {
+       case SOUND_TYPE_RINGTONE:
+               if (sound)
+                       img = IMG_VOLUME_ICON;
+               else if (vibration)
+                       img = IMG_VOLUME_ICON_VIB;
+               else
+                       img = IMG_VOLUME_ICON_MUTE;
+               break;
+       case SOUND_TYPE_MEDIA:
+               img = IMG_VOLUME_ICON_MEDIA;
+               break;
+       case SOUND_TYPE_CALL:
+               if (bt_opened)
+                       img = IMG_VOLUME_ICON_CALL;
+               else
+                       img = IMG_VOLUME_ICON_CALL;
+               break;
+       case SOUND_TYPE_NOTIFICATION:
+               if (sound)
+                       img = IMG_VOLUME_ICON_NOTI;
+               else if(vibration)
+                       img = IMG_VOLUME_ICON_NOTI_VIB;
+               else
+                       img = IMG_VOLUME_ICON_NOTI_MUTE;
+               break;
+       case SOUND_TYPE_ALARM:
+               img = IMG_VOLUME_ICON_MEDIA;
+               break;
+       default:
+               img = IMG_VOLUME_ICON;
+               break;
+       }
+
+       volume_view_set_default_slider();
+
+       _D("img : %s", img);
+       elm_image_file_set(view_info.icon_volume, EDJ_APP, img);
+}
+
+void volume_view_setting_icon_set(const char *file)
+{
+       ret_if(!file);
+
+       Evas_Object *icon_setting = view_info.icon_setting;
+       ret_if(!icon_setting);
+
+       elm_image_file_set(icon_setting, EDJ_APP, file);
+}
+
+void volume_view_setting_icon_callback_add(void)
+{
+       _D("Setting callback add");
+       ret_if(view_info.is_registered_callback);
+
+       Evas_Object *icon_setting = view_info.icon_setting;
+       ret_if(!icon_setting);
+
+       evas_object_event_callback_add(icon_setting, EVAS_CALLBACK_MOUSE_DOWN, _button_mouse_down_cb, NULL);
+       evas_object_smart_callback_add(icon_setting, "clicked", _button_cb, NULL);
+
+       view_info.is_registered_callback = EINA_TRUE;
+}
+
+void volume_view_setting_icon_callback_del(void)
+{
+       _D("Setting callback del");
+       ret_if(!view_info.is_registered_callback);
+
+       Evas_Object *icon_setting = view_info.icon_setting;
+       ret_if(!icon_setting);
+
+       evas_object_smart_callback_del(icon_setting, "clicked", _button_cb );
+       evas_object_event_callback_del(icon_setting, EVAS_CALLBACK_MOUSE_DOWN, _button_mouse_down_cb);
+
+       view_info.is_registered_callback = EINA_FALSE;
+}
+
+Evas_Object *add_slider(Evas_Object *parent, int min, int max, int val)
+{
+       retv_if(!parent, NULL);
+       Evas_Object *slider = elm_slider_add(parent);
+       retvm_if(!slider, NULL, "Failed to add slider");
+
+       elm_slider_horizontal_set(slider, EINA_TRUE);
+       elm_slider_indicator_show_set(slider, EINA_FALSE);
+       elm_slider_indicator_format_set(slider, "%.0f");
+       evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, 0.5);
+       elm_slider_min_max_set(slider, min, max);
+       elm_slider_value_set(slider, val);
+
+       return slider;
+}
+
+volume_error_e volume_view_window_show(void)
+{
+       evas_object_show(view_info.win);
+       elm_object_signal_emit(view_info.ly_outer, "show_effect", "clipper");
+       volume_view_setting_icon_callback_add();
+
+       return VOLUME_ERROR_OK;
+}
+
+volume_error_e volume_view_window_hide(void)
+{
+       elm_object_signal_emit(view_info.ly_outer, "hide_effect", "clipper");
+       volume_view_setting_icon_callback_del();
+
+       return VOLUME_ERROR_OK;
+}
+
+Evas_Object *add_layout(Evas_Object *parent, const char *file, const char *group)
+{
+       retvm_if(!parent, NULL, "Invalid argument: parent is NULL\n");
+       retvm_if(!file, NULL, "Invalid argument: file is NULL\n");
+       retvm_if(!group, NULL, "Invalid argument: group is NULL\n");
+
+       Evas_Object *eo = elm_layout_add(parent);
+       retvm_if(!eo, NULL, "Failed to add layout\n");
+
+       int r = -1;
+       r = elm_layout_file_set(eo, file, group);
+       if (!r) {
+               _E("Failed to set file[%s]\n", file);
+               evas_object_del(eo);
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(eo);
+
+       return eo;
+}
+
+volume_error_e volume_view_layout_create(Evas_Object *win)
+{
+       LOGD("Layout create");
+
+       retv_if(!win, VOLUME_ERROR_FAIL);
+
+       Evas_Object *ly_outer = add_layout(win, EDJ_APP, "volume_layout");
+       retv_if(!ly_outer, VOLUME_ERROR_FAIL);
+       elm_win_resize_object_add(win, ly_outer);
+       elm_object_signal_callback_add(ly_outer, "hide,popup", "event", _hide_launcher, NULL);
+       view_info.ly_outer = ly_outer;
+
+       /* make setting icon */
+       Evas_Object *icon_setting = _setting_icon_make();
+       retv_if(!icon_setting, VOLUME_ERROR_FAIL);
+       elm_object_part_content_set(ly_outer, "ic_setting", icon_setting);
+       view_info.icon_setting = icon_setting;
+
+       /* make volume icon */
+       Evas_Object *icon_volume = _volume_icon_make();
+       retv_if(!icon_volume, VOLUME_ERROR_FAIL);
+       elm_object_part_content_set(ly_outer, "ic_sound", icon_volume);
+       view_info.icon_volume = icon_volume;
+
+       /* make slider */
+       Evas_Object *slider = _slider_make();
+       retv_if(!slider, VOLUME_ERROR_FAIL);
+       view_info.slider = slider;
+       elm_object_part_content_set(ly_outer, "sw.slider", slider);
+
+       return VOLUME_ERROR_OK;
+}
+
+Evas_Object *add_volume_window(const char *name)
+{
+       _D(">>>>>>>>>>>>>>>>>>>>>>>>>> add volume window >>>>>>>>>>>>>>>>>>");
+       Evas_Object *eo = NULL;
+       Evas *evas = NULL;
+       int x, y, w, h = 0;
+
+       eo = elm_win_add(NULL, name, ELM_WIN_NOTIFICATION);
+       retv_if(!eo, NULL);
+       evas = evas_object_evas_get(eo);
+       retv_if(!evas, NULL);
+       view_info.evas = evas;
+
+       elm_win_alpha_set(eo, EINA_TRUE);
+       elm_win_title_set(eo, name);
+       elm_win_borderless_set(eo, EINA_TRUE);
+       ecore_evas_name_class_set(ecore_evas_ecore_evas_get(evas), "SYSTEM_POPUP", "SYSTEM_POPUP");
+       elm_win_role_set(eo, "no-dim");
+
+       elm_win_screen_size_get(eo, &x, &y, &w, &h);
+       _D("volume screen size => x: %d, y: %d, w: %d, h: %d", x, y, w, h);
+
+       return eo;
+}
+
+Evas_Object *volume_view_window_create(void)
+{
+       _D(">>>>>>>>>>>>>>>>>>>>>>>>>>> view win create >>>>>>>>>>>>>>>>>>>");
+       Evas_Object *win = add_volume_window(PACKAGE);
+       retv_if(!win, NULL);
+
+       view_info.win = win;
+       elm_win_keygrab_set(win, KEY_VOLUMEUP, 0, 0, 0, ELM_WIN_KEYGRAB_SHARED);
+       elm_win_keygrab_set(win, KEY_VOLUMEDOWN, 0, 0, 0, ELM_WIN_KEYGRAB_SHARED);
+
+       return win;
+}
+
+void _lock_sound_check(void)
+{
+       int lcdoff_source = -1;
+       int lock_sound = -1;
+       int lock_type = -1;
+
+       if (vconf_get_int(VCONFKEY_PM_LCDOFF_SOURCE, &lcdoff_source) < 0) {
+               _E("Failed to get vconfkey : VCONFKEY_PM_LCDOFF_SOURCE");
+               return;
+       }
+       _D("lcd off source : %d", lcdoff_source);
+
+       if (lcdoff_source != VCONFKEY_PM_LCDOFF_BY_POWERKEY) {
+               _E("Should not play lock sound");
+               return;
+       }
+
+       if (vconf_get_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, &lock_sound) < 0) {
+               _E("Failed to get vconfkey : VCONFKEY_SETAPPL_SOUND_LOCK_BOOL");
+               return;
+       }
+       _D("lock sound : %d", lock_sound);
+
+       if (lock_sound) {
+               if (vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &lock_type) < 0) {
+                       _E("Failed to get vconfkey : VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT");
+                       lock_type = 0;
+               }
+               _D("lock type : %d", lock_type);
+
+               /*if (lock_type == SETTING_SCREEN_LOCK_TYPE_SWIPE)
+                       feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_LOCK_SWIPE);
+
+               else
+                       feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_LOCK);*/
+       }
+}
+
+Evas_Object* show_lockscreen_splash(const char* bg_path)
+{
+       _D(" ");
+
+       retv_if(bg_path == NULL, NULL);
+
+       if (view_info.lockscreen_splash) {
+               _E("There is remain fake_bg : remove old one");
+               evas_object_del(view_info.lockscreen_splash);
+               view_info.lockscreen_splash = NULL;
+       }
+
+       /* Check Lock Sound */
+       _lock_sound_check();
+
+       /* hide volume window */
+       if(VOLUME_ERROR_OK != volume_view_window_hide())
+               _E("Failed to hide window");
+
+       Evas_Object *win_splash = elm_win_add(NULL,"lockscreen_splash", ELM_WIN_NOTIFICATION);
+
+       if (!win_splash) {
+               _E("Failed to add splash window");
+               return NULL;
+       }
+
+       _D("Splash window created");
+
+       Evas_Object *bg = elm_bg_add(win_splash);
+       if (!bg) {
+               _D("Failed to get background");
+               evas_object_del(win_splash);
+               return NULL;
+       }
+
+       elm_win_resize_object_add(win_splash, bg);
+       elm_bg_file_set(bg, bg_path, NULL);
+       evas_object_show(bg);
+
+       evas_object_show(win_splash);
+
+       _D("Splash window shown");
+
+       view_info.lockscreen_splash = win_splash;
+
+       return win_splash;
+}
+
+volume_error_e hide_lockscreen_splash(void)
+{
+       _D(" ");
+
+       if (!view_info.lockscreen_splash) {
+               _E("No splash window found");
+               return VOLUME_ERROR_FAIL;
+       }
+
+       evas_object_del(view_info.lockscreen_splash);
+       view_info.lockscreen_splash = NULL;
+       _D("Splash window closed");
+
+       return VOLUME_ERROR_OK;
+}
+static void _slider_start_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       view_info.is_slider_touching = EINA_TRUE;
+
+       volume_timer_del(TYPE_TIMER_POPUP);
+
+       volume_timer_add(0.2, TYPE_TIMER_SLIDER);
+}
+
+static void _slider_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       volume_timer_del(TYPE_TIMER_POPUP);
+
+       double val = 0;
+
+       sound_type_e sound_type = volume_control_get_sound_type_at_show();
+       _D("sound type at show : %d", sound_type);
+
+       val = elm_slider_value_get(view_info.slider);
+       val += 0.5;
+       _D("slider value : %d", val);
+
+       if (view_info.is_slider_touching)
+               return;
+
+       volume_sound_change_set((int)val);
+
+       if (!volume_key_event_is_pressing_get()) {
+               volume_timer_add(3.0, TYPE_TIMER_POPUP);
+               return;
+       }
+
+       if (!view_info.is_slider_touching) {
+               volume_timer_add(3.0, TYPE_TIMER_POPUP);
+               return;
+       }
+}
+
+static void _slider_stop_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       view_info.is_slider_touching = EINA_FALSE;
+
+       volume_timer_del(TYPE_TIMER_SLIDER);
+
+       Evas_Object *slider = volume_view_slider_get();
+       ret_if(slider == NULL);
+
+       double val = 0;
+
+       val = elm_slider_value_get(slider);
+       val += 0.5;
+       _D("slider value : %d", (int)val);
+
+       volume_sound_change_set((int)val);
+
+       volume_timer_add(3.0, TYPE_TIMER_POPUP);
+}
+
+static void _hide_launcher(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       evas_object_hide(view_info.win);
+}
+
+static void _button_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       volume_view_setting_icon_set(IMG_VOLUME_ICON_SETTINGS_PRESSED);
+}
+
+static void _app_control_error_check(int ret)
+{
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               switch (ret)
+               {
+               case APP_CONTROL_ERROR_INVALID_PARAMETER :
+                       _E("error : APP_CONTROL_ERROR_INVALID_PARAMETER");
+                       break;
+               case APP_CONTROL_ERROR_OUT_OF_MEMORY :
+                       _E("error : APP_CONTROL_ERROR_OUT_OF_MEMORY");
+                       break;
+               case APP_CONTROL_ERROR_APP_NOT_FOUND :
+                       _E("error : APP_CONTROL_ERROR_APP_NOT_FOUND");
+                       break;
+               case APP_CONTROL_ERROR_LAUNCH_REJECTED :
+                       _E("error : APP_CONTROL_ERROR_LAUNCH_REJECTED");
+                       break;
+               default :
+                       _E("error : %d", ret);
+                       break;
+               }
+       }
+}
+
+static void _button_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       _D("volume setting is clicked");
+       int ret = -1;
+       app_control_h svc;
+
+       if (evas_object_visible_get(view_info.win)) {
+               volume_timer_del(TYPE_TIMER_POPUP);
+
+               ret = app_control_create(&svc);
+               _app_control_error_check(ret);
+
+               ret = app_control_set_app_id(svc, "org.tizen.setting.volume");
+               _app_control_error_check(ret);
+
+               ret = app_control_send_launch_request(svc, NULL, NULL);
+               _app_control_error_check(ret);
+
+               if (VOLUME_ERROR_OK != volume_control_pause())
+                       _E("Failed to pause volume");
+
+               app_control_destroy(svc);
+       }
+}
+
+static Evas_Object* _setting_icon_make()
+{
+       Evas_Object *icon_setting = elm_icon_add(view_info.ly_outer);
+       retv_if(!icon_setting, NULL);
+
+       evas_object_size_hint_aspect_set(icon_setting, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+       elm_image_resizable_set(icon_setting, EINA_TRUE, EINA_TRUE);
+
+       view_info.icon_setting = icon_setting;
+
+       volume_view_setting_icon_set(IMG_VOLUME_ICON_SETTINGS);
+       evas_object_show(icon_setting);
+
+       return icon_setting;
+}
+
+static Evas_Object* _volume_icon_make()
+{
+       Evas_Object *icon_volume = elm_icon_add(view_info.ly_outer);
+       retv_if(!icon_volume, NULL);
+
+       evas_object_size_hint_aspect_set(icon_volume, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+       elm_image_resizable_set(icon_volume, EINA_TRUE, EINA_TRUE);
+       evas_object_show(icon_volume);
+
+       return icon_volume;
+}
+
+static Evas_Object* _slider_make()
+{
+       _D("Volume Slider Make");
+       sound_type_e sound_type = volume_control_get_sound_type_at_show();
+       _D("sound type at show : %d", sound_type);
+
+       //int sound_step = volume_sound_sound_manager_step_get(sound_type);
+       int sound_step = 7;
+       _D("sound step : %d", sound_step);
+
+       int sound_val = volume_sound_level_get(sound_type);
+       if (sound_val == -1) {
+               _E("Failed to get volume level");
+               sound_val = 0;
+       }
+       _D("sound value : %d", sound_val);
+
+       Evas_Object *slider = add_slider(view_info.ly_outer, 0, sound_step, sound_val);
+       retv_if(!slider, NULL);
+       evas_object_smart_callback_add(slider, "slider,drag,start", _slider_start_cb, NULL);
+       evas_object_smart_callback_add(slider, "changed", _slider_changed_cb, NULL);
+       evas_object_smart_callback_add(slider, "slider,drag,stop", _slider_stop_cb, NULL);
+
+       return slider;
+}
+
diff --git a/src/volume.c b/src/volume.c
deleted file mode 100755 (executable)
index 4979512..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * org.tizen.volume
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include <stdio.h>
-
-#include "volume.h"
-#include "_util_log.h"
-#include "_util_efl.h"
-#include "_logic.h"
-
-struct text_part {
-       char *part;
-       char *msgid;
-};
-
-static Eina_Bool rotate_cb(void *data, int type, void *event)
-{
-       struct appdata *ad = data;
-       Ecore_X_Event_Client_Message *ev = event;
-
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-       if (!event){
-               return ECORE_CALLBACK_RENEW;
-       }
-
-       if (ev->message_type == ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE){
-               _rotate_func(data);
-       }
-       return ECORE_CALLBACK_RENEW;
-}
-
-static int app_create(void *data)
-{
-       struct appdata *ad = data;
-
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-
-       if(_app_create(ad)!=0){
-               _E("_app_create() if failed\n");
-               return -1;
-       }
-
-       /* add rotation event callback */
-       ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE,
-                                       rotate_cb, (void *)data);
-
-       return 0;
-}
-
-static int app_terminate(void *data)
-{
-       struct appdata *ad = data;
-
-       if (ad->win)
-               evas_object_del(ad->win);
-
-       return 0;
-}
-
-static int app_pause(void *data)
-{
-       _app_pause(data);
-       return 0;
-}
-
-static int app_resume(void *data)
-{
-       return 0;
-}
-
-static int app_reset(bundle *b, void *data)
-{
-       _D("%s\n", __func__);
-       struct appdata *ad = data;
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-
-       if(_app_reset(b, data) == -1){
-               _D("_app_reset() if failed\n");
-               return -1;
-       }
-       if (ad->win)
-               elm_win_activate(ad->win);
-
-       return 0;
-}
-
-int main(int argc, char *argv[])
-{
-       struct appdata ad;
-       struct appcore_ops ops = {
-               .create = app_create,
-               .terminate = app_terminate,
-               .pause = app_pause,
-               .resume = app_resume,
-               .reset = app_reset,
-       };
-
-       /* appcore measure time example */
-       printf("from AUL to %s(): %d msec\n", __func__,
-                       appcore_measure_time_from("APP_START_TIME"));
-
-       memset(&ad, 0x0, sizeof(struct appdata));
-       ops.data = &ad;
-
-       return appcore_efl_main(PACKAGE, &argc, &argv, &ops);
-}
-
diff --git a/src/volume.h b/src/volume.h
deleted file mode 100755 (executable)
index 4922e1d..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * org.tizen.volume
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __VOLUME_H__
-#define __VOLUME_H__
-
-#include <Elementary.h>
-#include <mm_sound.h>
-#include <ui-gadget.h>
-#include <syspopup.h>
-#include <appcore-efl.h>
-#include <Ecore_X.h>
-#include <notification.h>
-#include <tzplatform_config.h>
-#if !defined(PACKAGE)
-#  define PACKAGE "volume"
-#endif
-
-#if !defined(RESDIR)
-#  define RESDIR tzplatform_mkpath(TZ_SYS_RO_APP,"org.tizen.volume/res")
-#endif
-
-#if !defined(LOCALEDIR)
-#  define LOCALEDIR RESDIR"/locale"
-#endif
-
-#if !defined(EDJDIR)
-#  define EDJDIR RESDIR"/edje"
-#endif
-
-#if !defined(PKGNAME)
-#  define PKGNAME "org.tizen.volume"
-#endif
-
-#define EDJ_APP EDJDIR"/volume_app.edj"
-#define GRP_VOLUME_BLOCKEVENTS "block_events"
-#define GRP_VOLUME_LAYOUT "volumeLayout"
-#define GRP_VOLUME_CONTENT "volumeLayoutContent"
-#define GRP_VOLUME_SLIDER_HORIZONTAL "volumeHorizontalSlider"
-
-#define IMG_VOLUME_PACKAGE_ICON "/usr/share/icons/default/small/org.tizen.volume.png"
-#define IMG_VOLUME_ICON "00_volume_icon.png"
-#define IMG_VOLUME_ICON_CALL "00_volume_icon_Call.png"
-#define IMG_VOLUME_ICON_MUTE "00_volume_icon_Mute.png"
-#define IMG_VOLUME_ICON_VIB "00_volume_icon_Vibrat.png"
-#define IMG_VOLUME_ICON_HEADPHONE "00_volume_icon_headphone.png"
-#define IMG_VOLUME_ICON_MEDIA "00_volume_icon_media.png"
-#define IMG_VOLUME_ICON_SETTINGS "00_volume_icon_settings.png"
-#define IMG_VOLUME_ICON_SETTINGS_PRESSED "00_volume_icon_settings_pressed.png"
-
-#define IDS_WARNING_MSG "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-
-#define S_(str) dgettext("sys_string", str)
-#define T_(str) dgettext(PACKAGE, str)
-
-#define ADD_TIMER(x, time, _timer_cb, data) \
-       x = ecore_timer_add(time, _timer_cb, data);\
-
-#define DEL_TIMER(x) \
-       if (x) {\
-               ecore_timer_del(x);\
-               x = NULL;\
-       }
-
-#define USE_SETTING_ICON 0
-
-struct appdata
-{
-       Ecore_X_Window input_win;
-       Evas_Object *win, *block_events, *ly, *sl, *ic, *ic_settings, *warn_lb;
-
-       Ecore_Timer *ptimer;
-       Ecore_Timer *stimer;    /* slider timer */
-       Ecore_Timer *sutimer, *sdtimer, *lutimer, *ldtimer;     /* long press */
-       Ecore_Timer *warntimer; /* warning message timer */
-       Ecore_Timer *luwarmtimer, *ldwarmtimer;
-       volume_type_t type;
-       system_audio_route_device_t device;
-       int step;
-       int angle;
-
-       /* bundle */
-       bundle *volume_bundle;
-
-       /* ticker notification handler */
-       int noti_id;
-       bool noti_seen;
-
-       /* add more variables here */
-       int sh; /* svi handle */
-       int flag_pressing;      /* EINA_TRUE : hw key pressing, block slider cb */
-       int flag_touching;      /* EINA_TRUE : slider indicator pressing, block hw key cb */
-       int flag_launching;     /* EINA_TRUE : volume is launcing block double lauch*/
-       int flag_deleting;      /* EINA_TRUE : closing volume, block double close_volume() */
-       int flag_media;
-       int flag_shared_grabed;
-       int flag_top_positioni_grabed;
-       int flag_exclusive_grabed;
-       int flag_emul; /* EINA_TRUE : emulator, EINA_FALSE : target */
-
-       /* Ecore event handler */
-       Ecore_Event_Handler *event_volume_up;
-       Ecore_Event_Handler *event_volume_down;
-};
-
-#endif /* __VOLUME_H__ */
-
diff --git a/src/x_event.c b/src/x_event.c
new file mode 100755 (executable)
index 0000000..658a8cd
--- /dev/null
@@ -0,0 +1,203 @@
+/*
+ * Copyright (c) 2009-2014 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 <X11/Xlib.h>
+//#include <X11/extensions/XInput.h>
+//#include <X11/extensions/XInput2.h>
+//#include <X11/extensions/shape.h>
+
+#include "main.h"
+#include "view.h"
+#include "control.h"
+#include "_util_log.h"
+
+/*struct _x_event_s_info {
+       Ecore_Event_Handler *event_outer_touch_handler;
+       Eina_Bool is_first_touch;
+};
+static struct _x_event_s_info x_event_info = {
+       .event_outer_touch_handler = NULL,
+       .is_first_touch = EINA_TRUE,
+};
+
+static Eina_Bool _event_handler_cb(void *data, int type, void *event_info);
+static void _x_touch_check(int cur_x, int cur_y);
+
+void volume_x_input_event_shape(Evas_Object *win, Eina_Bool is_warning_visible)
+{
+       _D("X input event shape");
+       Evas_Object *ly = NULL;
+       XRectangle rect;
+
+       int x, y, w ,h;
+       int tmp_x;
+       int tmp_y;
+       int tmp_w;
+       int tmp_h;
+
+       int current_angle = volume_control_get_current_angle();
+       _D("Current angle : %d", current_angle);
+
+       ly = volume_view_outer_layout_get();
+       if (!ly) {
+               _E("Failed to load edje");
+               return;
+       }
+
+       edje_object_part_geometry_get(_EDJ(ly), "bg", &x, &y, &w, &h);
+       _D("The position of bg x: %d, y: %d, w: %d, h: %d", x, y, w, h);
+
+       if (current_angle == 90) {
+               tmp_x = x;
+               tmp_y = y;
+               tmp_w = w;
+               tmp_h = h;
+
+               x = tmp_y;
+               y = tmp_x;
+               w = tmp_h;
+               h = tmp_w;
+       }
+       else if (current_angle == 270) {
+               tmp_x = x;
+               tmp_y = y;
+               tmp_w = w;
+               tmp_h = h;
+
+               x = volume_control_get_viewport_width()-tmp_y-tmp_h;
+               y = tmp_x;
+               w = tmp_h;
+               h = tmp_w;
+       }
+
+       rect.x = x;
+       rect.y = y;
+       rect.height = h;
+       rect.width  = w;
+       _D("shape x: %d, y: %d, w: %d, h: %d", x, y, w, h);
+       XShapeCombineRectangles(ecore_x_display_get(), elm_win_xwindow_get(win), ShapeInput, 0, 0, &rect, 1, ShapeSet, Unsorted);
+}
+
+volume_error_e volume_x_input_event_register(void)
+{
+       if (x_event_info.event_outer_touch_handler == NULL) {
+               XIEventMask event_mask;
+
+               event_mask.deviceid = XIAllMasterDevices;
+               event_mask.mask_len = XIMaskLen(XI_RawMotion);
+               event_mask.mask = calloc(event_mask.mask_len, sizeof(char));
+               retvm_if(!event_mask.mask, VOLUME_ERROR_FAIL, "Failed to allocate memory");
+
+               XISetMask(event_mask.mask, XI_RawMotion);
+               XISelectEvents(ecore_x_display_get(), ecore_x_window_root_first_get(), &event_mask, 1);
+
+               x_event_info.event_outer_touch_handler = ecore_event_handler_add(ECORE_X_EVENT_GENERIC, (Ecore_Event_Handler_Cb)_event_handler_cb, NULL);
+
+               x_event_info.is_first_touch = EINA_TRUE;
+               free(event_mask.mask);
+       }
+
+       return VOLUME_ERROR_OK;
+}
+
+volume_error_e volume_x_input_event_unregister(void)
+{
+       retv_if(x_event_info.event_outer_touch_handler == NULL, VOLUME_ERROR_FAIL);
+
+       ecore_event_handler_del(x_event_info.event_outer_touch_handler);
+       x_event_info.event_outer_touch_handler = NULL;
+
+       return VOLUME_ERROR_OK;
+}
+
+static void _x_touch_check(int cur_x, int cur_y)
+{
+       int current_angle = volume_control_get_current_angle();
+
+       int x = 0, y = 0;
+       int w = 0, h = 0;
+
+       Evas_Object *ly = volume_view_outer_layout_get();
+
+       if (!ly) {
+               _E("Failed to load edje");
+               return;
+       }
+
+       edje_object_part_geometry_get(_EDJ(ly), "bg", &x, &y, &w, &h);
+       _D("control view x: %d, y: %d, w: %d, h: %d", x, y, w, h);
+
+       w = x + w; //WIDTH
+       h = y + h; //HEIGHT
+
+       if (current_angle == 90) {
+               if (cur_x > y && cur_x < h && cur_y > x && cur_y < w)
+                       _D("touched inside");
+               else {
+                       _D("current angle : %d / touched outside ", current_angle);
+                       if (VOLUME_ERROR_OK != volume_control_hide_view())
+                               _E("Failed to close volume");
+
+                       if (VOLUME_ERROR_OK != volume_control_cache_flush())
+                               _E("Failed to flush cache");
+               }
+       } else if (current_angle == 270) {
+               if (cur_x > h && cur_x < (volume_control_get_viewport_width() - y) && cur_y > x && cur_y < w)
+                       _D("touched inside");
+               else {
+                       _D("current angle : %d / touched outside ", current_angle);
+                       if (VOLUME_ERROR_OK != volume_control_hide_view())
+                               _E("Failed to close volume");
+
+                       if (VOLUME_ERROR_OK != volume_control_cache_flush())
+                               _E("Failed to flush cache");
+               }
+       } else {
+               if (x < cur_x && cur_x < w && y < cur_y && cur_y < h)
+                       _D("current angle : %d / touched inside", current_angle);
+               else {
+                       _D("current angle : %d / touched outside ", current_angle);
+                       if (VOLUME_ERROR_OK != volume_control_hide_view())
+                               _E("Failed to close volume");
+
+                       if (VOLUME_ERROR_OK != volume_control_cache_flush())
+                               _E("Failed to flush cache");
+               }
+       }
+}
+
+static Eina_Bool _event_handler_cb(void *data, int type, void *event_info)
+{
+       _D("%s", __func__);
+
+       Ecore_X_Event_Generic *e = (Ecore_X_Event_Generic *)event_info;
+       retv_if(e->evtype != XI_RawMotion, ECORE_CALLBACK_DONE);
+
+       if (x_event_info.is_first_touch == EINA_TRUE) {
+               x_event_info.is_first_touch = EINA_FALSE;
+               return ECORE_CALLBACK_DONE;
+       }
+       x_event_info.is_first_touch = EINA_TRUE;
+
+       int cur_x = 0, cur_y = 0;
+       ecore_x_pointer_xy_get(ecore_x_window_root_first_get(), &cur_x, &cur_y);
+       _D("cur_x : %d / cur_y : %d", cur_x, cur_y);
+
+       _x_touch_check(cur_x, cur_y);
+
+       return ECORE_CALLBACK_DONE;
+}
+*/