tizen 2.3.1 release tizen_2.3.1 submit/tizen_2.3.1/20150915.073124 tizen_2.3.1_release
authorjk7744.park <jk7744.park@samsung.com>
Tue, 8 Sep 2015 12:41:01 +0000 (21:41 +0900)
committerjk7744.park <jk7744.park@samsung.com>
Tue, 8 Sep 2015 12:41:01 +0000 (21:41 +0900)
119 files changed:
AUTHORS [new file with mode: 0644]
CMakeLists.txt [changed mode: 0644->0755]
LICENSE
NOTICE [new file with mode: 0644]
data/CMakeLists.txt
data/images/private/volume/00_popup_bubble_bg.#.png [new file with mode: 0755]
data/images/private/volume/00_volume_icon.png [new file with mode: 0755]
data/images/private/volume/00_volume_icon_call.png [new file with mode: 0755]
data/images/private/volume/00_volume_icon_headphone.png [moved from data/images/public/00_volume_icon.png with 74% similarity]
data/images/private/volume/00_volume_icon_media.png [moved from data/images/public/00_volume_icon_Vibrat.png with 65% similarity]
data/images/private/volume/00_volume_icon_mute.png [moved from data/images/public/00_volume_icon_Mute.png with 79% similarity]
data/images/private/volume/00_volume_icon_notification.png [new file with mode: 0755]
data/images/private/volume/00_volume_icon_notification_mute.png [new file with mode: 0755]
data/images/private/volume/00_volume_icon_notification_vibrate.png [new file with mode: 0755]
data/images/private/volume/00_volume_icon_settings.png [new file with mode: 0755]
data/images/private/volume/00_volume_icon_settings_disabled.png [new file with mode: 0755]
data/images/private/volume/00_volume_icon_settings_pressed.png [new file with mode: 0755]
data/images/private/volume/00_volume_icon_vibrat.png [new file with mode: 0755]
data/images/public/00_volume_icon_settings.png [new file with mode: 0755]
data/images/public/00_volume_icon_settings_disabled.png [new file with mode: 0755]
data/images/public/00_volume_icon_settings_pressed.png [new file with mode: 0755]
data/volume_app.edc [new file with mode: 0755]
data/volume_popup.edc [deleted file]
debian/changelog
debian/control
debian/dirs [new file with mode: 0644]
debian/docs [new file with mode: 0644]
debian/org.tizen.volume.install.in
debian/rules
include/_util_efl.h [new file with mode: 0755]
include/_util_log.h [moved from src/_util_log.h with 60% similarity]
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.spec
po/CMakeLists.txt
po/ar.po
po/az.po [new file with mode: 0644]
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 [new file with mode: 0644]
po/en_US.po
po/es_ES.po
po/es_MX.po [new file with mode: 0644]
po/es_US.po [new file with mode: 0644]
po/et.po [new file with mode: 0644]
po/eu.po [new file with mode: 0644]
po/fi.po
po/fr.po [new file with mode: 0644]
po/fr_CA.po [new file with mode: 0644]
po/fr_FR.po
po/ga.po [new file with mode: 0644]
po/gl.po [new file with mode: 0644]
po/hi.po
po/hr.po
po/hu.po
po/hy.po [new file with mode: 0644]
po/is.po [new file with mode: 0644]
po/it_IT.po
po/ja_JP.po
po/ka.po [new file with mode: 0644]
po/kk.po [new file with mode: 0644]
po/ko_KR.po
po/lt.po
po/lv.po
po/mk.po [new file with mode: 0644]
po/mn_MN.po [new file with mode: 0644]
po/nb.po [new file with mode: 0644]
po/nl.po [new file with mode: 0644]
po/nl_NL.po
po/pl.po
po/pt_BR.po [new file with mode: 0644]
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 [new file with mode: 0644]
po/zh_CN.po
po/zh_HK.po
po/zh_SG.po [new file with mode: 0644]
po/zh_TW.po
src/_button.c [deleted file]
src/_button.h [deleted file]
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/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
new file mode 100644 (file)
index 0000000..59bb9da
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,3 @@
+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 4f0f87f..ef7a01e
@@ -2,11 +2,13 @@ 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/_button.c
+       src/main.c
+       src/view.c
+       src/control.c
+       src/x_event.c
+       src/key_event.c
+       src/timer.c
+       src/sound.c
 )
 
 SET(VENDOR "tizen")
@@ -15,9 +17,9 @@ SET(PKGNAME "org.${VENDOR}.${PACKAGE}")
 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
 SET(BINDIR "${PREFIX}/bin")
 SET(RESDIR "${PREFIX}/res")
-SET(DATADIR "${PREFIX}/data")
+SET(DATADIR "/opt/usr/apps/com.${VENDOR}.${PACKAGE}/data")
 SET(LOCALEDIR "${RESDIR}/locale")
-SET(ICONDIR "/opt/share/icons/default/small")
+SET(ICONDIR "/usr/share/icons/default/small")
 SET(IMAGEDIR "${RESDIR}/images/${PACKAGE}")
 SET(EDJDIR "${RESDIR}/edje")
 
@@ -26,33 +28,44 @@ 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
        evas
        edje
-       mm-sound
+       capi-media-sound-manager
        vconf
        utilX
        syspopup
+       syspopup-caller
        bundle
-       svi
-       glib-2.0
+       feedback
        ui-gadget-1
+       notification
+       x11 xcomposite xext xi
+       efl-assist
 )
 
 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")
@@ -72,9 +85,6 @@ 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)
 
@@ -82,8 +92,9 @@ 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 /opt/share/packages)
+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
index 7ccb5b5..3d4a47d 100755 (executable)
--- a/LICENSE
+++ b/LICENSE
-Flora License
-
-Version 1.0, May, 2012
-
-http://www.tizenopensource.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 Compatibility Definition Document and passes the Compatibility Test Suite 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.
-
-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 (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 Flora License, Version 1.0 (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://www.tizenopensource.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,
    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
new file mode 100644 (file)
index 0000000..717d8cf
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,2 @@
+Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+
index 7569bb7..c9a4189 100755 (executable)
@@ -1,15 +1,15 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
 # install edj
-ADD_CUSTOM_COMMAND(OUTPUT volume_popup.edj
-                COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images/private
-                ${CMAKE_CURRENT_SOURCE_DIR}/volume_popup.edc ${CMAKE_BINARY_DIR}/volume_popup.edj
-                DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/volume_popup.edc
+ADD_CUSTOM_COMMAND(OUTPUT volume_app.edj
+                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_popup.edj)
+
+ADD_CUSTOM_TARGET(edj_build DEPENDS volume_app.edj)
 ADD_DEPENDENCIES(${PROJECT_NAME} edj_build)
-INSTALL(FILES ${CMAKE_BINARY_DIR}/volume_popup.edj DESTINATION ${EDJDIR})
+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/volume/00_popup_bubble_bg.#.png b/data/images/private/volume/00_popup_bubble_bg.#.png
new file mode 100755 (executable)
index 0000000..512eafe
Binary files /dev/null and b/data/images/private/volume/00_popup_bubble_bg.#.png differ
diff --git a/data/images/private/volume/00_volume_icon.png b/data/images/private/volume/00_volume_icon.png
new file mode 100755 (executable)
index 0000000..4abe0fe
Binary files /dev/null and b/data/images/private/volume/00_volume_icon.png differ
diff --git a/data/images/private/volume/00_volume_icon_call.png b/data/images/private/volume/00_volume_icon_call.png
new file mode 100755 (executable)
index 0000000..b64770e
Binary files /dev/null and b/data/images/private/volume/00_volume_icon_call.png differ
similarity index 74%
rename from data/images/public/00_volume_icon.png
rename to data/images/private/volume/00_volume_icon_headphone.png
index ec84b75..55d9dce 100755 (executable)
Binary files a/data/images/public/00_volume_icon.png and b/data/images/private/volume/00_volume_icon_headphone.png differ
similarity index 65%
rename from data/images/public/00_volume_icon_Vibrat.png
rename to data/images/private/volume/00_volume_icon_media.png
index 993ef9c..2d3dba6 100755 (executable)
Binary files a/data/images/public/00_volume_icon_Vibrat.png and b/data/images/private/volume/00_volume_icon_media.png differ
similarity index 79%
rename from data/images/public/00_volume_icon_Mute.png
rename to data/images/private/volume/00_volume_icon_mute.png
index e17ef34..cc90323 100755 (executable)
Binary files a/data/images/public/00_volume_icon_Mute.png and b/data/images/private/volume/00_volume_icon_mute.png differ
diff --git a/data/images/private/volume/00_volume_icon_notification.png b/data/images/private/volume/00_volume_icon_notification.png
new file mode 100755 (executable)
index 0000000..3cf650d
Binary files /dev/null and b/data/images/private/volume/00_volume_icon_notification.png differ
diff --git a/data/images/private/volume/00_volume_icon_notification_mute.png b/data/images/private/volume/00_volume_icon_notification_mute.png
new file mode 100755 (executable)
index 0000000..1a3c3a0
Binary files /dev/null and b/data/images/private/volume/00_volume_icon_notification_mute.png differ
diff --git a/data/images/private/volume/00_volume_icon_notification_vibrate.png b/data/images/private/volume/00_volume_icon_notification_vibrate.png
new file mode 100755 (executable)
index 0000000..0959277
Binary files /dev/null and b/data/images/private/volume/00_volume_icon_notification_vibrate.png differ
diff --git a/data/images/private/volume/00_volume_icon_settings.png b/data/images/private/volume/00_volume_icon_settings.png
new file mode 100755 (executable)
index 0000000..4305660
Binary files /dev/null and b/data/images/private/volume/00_volume_icon_settings.png differ
diff --git a/data/images/private/volume/00_volume_icon_settings_disabled.png b/data/images/private/volume/00_volume_icon_settings_disabled.png
new file mode 100755 (executable)
index 0000000..4305660
Binary files /dev/null and b/data/images/private/volume/00_volume_icon_settings_disabled.png differ
diff --git a/data/images/private/volume/00_volume_icon_settings_pressed.png b/data/images/private/volume/00_volume_icon_settings_pressed.png
new file mode 100755 (executable)
index 0000000..4305660
Binary files /dev/null and b/data/images/private/volume/00_volume_icon_settings_pressed.png differ
diff --git a/data/images/private/volume/00_volume_icon_vibrat.png b/data/images/private/volume/00_volume_icon_vibrat.png
new file mode 100755 (executable)
index 0000000..8e7744d
Binary files /dev/null and b/data/images/private/volume/00_volume_icon_vibrat.png differ
diff --git a/data/images/public/00_volume_icon_settings.png b/data/images/public/00_volume_icon_settings.png
new file mode 100755 (executable)
index 0000000..067f98d
Binary files /dev/null and b/data/images/public/00_volume_icon_settings.png differ
diff --git a/data/images/public/00_volume_icon_settings_disabled.png b/data/images/public/00_volume_icon_settings_disabled.png
new file mode 100755 (executable)
index 0000000..b9a76b4
Binary files /dev/null and b/data/images/public/00_volume_icon_settings_disabled.png differ
diff --git a/data/images/public/00_volume_icon_settings_pressed.png b/data/images/public/00_volume_icon_settings_pressed.png
new file mode 100755 (executable)
index 0000000..5780e17
Binary files /dev/null and b/data/images/public/00_volume_icon_settings_pressed.png differ
diff --git a/data/volume_app.edc b/data/volume_app.edc
new file mode 100755 (executable)
index 0000000..5aa50cb
--- /dev/null
@@ -0,0 +1,547 @@
+/*
+ * 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.
+ */
+
+/*                      ___________________________________________________________________________________________________________________________________
+|                      |                                                                                       |                                                                                       |                                                                               |
+|                      |                                                                                       |                                                                                       |                                                                                       |
+|                      |                       |*-----------------*|                   |                                                                                       |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; \
+               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: "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_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;
+
+                               scale: 1;
+                               description {
+                                       state : "default" 0.0;
+                               }
+                               description{
+                                       state : "transit" 0.0;
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       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";}
+                               }
+                       }
+
+                       part {
+                               name : "popup_bg";
+                               type : IMAGE;
+                               clip_to: "clipper";
+                               mouse_events : 0;
+                               scale : 1;
+                               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 : "ic_sound";
+                               type : SWALLOW;
+                               clip_to: "clipper";
+                               mouse_events : 0;
+                               scale : 1;
+                               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";}
+                               }
+
+                       }
+
+                       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;
+                               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";}
+                               }
+                               description {
+                                       state: "portrait";
+                                       inherit: "default" 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";}
+                               }
+                       }
+                       part {
+                               name : "sw.slider";
+                               type : SWALLOW;
+                               clip_to: "clipper";
+                               scale : 1;
+                               description {
+                                       state : "default" 0.0;
+                                       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;
+                               }
+                               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: "warning_rect";
+                               type: TEXTBLOCK;
+                               clip_to: "clipper";
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       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";
+                                       }
+                               }
+                               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";
+                       }
+               }
+       }
+}
diff --git a/data/volume_popup.edc b/data/volume_popup.edc
deleted file mode 100755 (executable)
index b3649e0..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- * 
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.tizenopensource.org/license
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-collections {        \r
-       group { name: "popup_slider_text_style_with_warn_label";\r
-               parts{\r
-                       part { name: "pad_t";\r
-                        scale : 1;\r
-                        mouse_events: 0;\r
-                        repeat_events: 1;\r
-                        description { state: "default" 0.0;\r
-                           align: 0.0 0.0;\r
-                           min: 0 0;\r
-                           fixed: 0 1;\r
-                           rel1 {\r
-                              relative: 1.0 0.0;\r
-                              to_x: "pad_l";\r
-                           }\r
-                           rel2 {\r
-                              relative: 0.0 0.0;\r
-                              to_x: "pad_r";\r
-                           }\r
-                        }\r
-                     }\r
-                     part { name: "pad_l";\r
-                        scale: 1;\r
-                        description { state: "default" 0.0;\r
-                           min : 38 0;\r
-                           fixed: 1 0;\r
-                           rel1 {\r
-                              relative: 0.0 0.0;\r
-                           }\r
-                           rel2 {\r
-                              relative: 0.0 1.0;\r
-                           }\r
-                           align: 0.0 0.0;\r
-                        }\r
-                     }\r
-                     part { name: "pad_r";\r
-                        scale: 1;\r
-                        description { state: "default" 0.0;\r
-                           min : 38 0;\r
-                           fixed: 1 0;\r
-                           rel1 {\r
-                              relative: 1.0 0.0;\r
-                           }\r
-                           rel2 {\r
-                              relative: 1.0 1.0;\r
-                           }\r
-                           align: 1.0 0.0;\r
-                        }\r
-                     }\r
-                     part{ name:"elm.swallow.slider1";\r
-                        type: SWALLOW;\r
-                        scale : 1;\r
-                        description { state: "default" 0.0;\r
-                           min: 0 0;\r
-                           align: 0.0 0.5;\r
-                           fixed: 1 0;\r
-                           rel1 {\r
-                              relative: 0.0 1.0;\r
-                              to: "pad_t";\r
-                           }\r
-                           rel2 {\r
-                              relative: 1.0 0.0;\r
-                              to: "pad_b";\r
-                           }\r
-                        }\r
-                     }\r
-                     part { name: "pad_b";\r
-                        scale : 1;\r
-                        mouse_events: 0;\r
-                        repeat_events: 1;\r
-                        description { state: "default" 0.0;\r
-                           align: 0.0 1.0;\r
-                           min: 0 101;\r
-                           fixed: 0 1;\r
-                           rel1 {\r
-                              relative: 1.0 1.0;\r
-                              to_x: "pad_l";\r
-                           }\r
-                           rel2 {\r
-                              relative: 0.0 1.0;\r
-                              to_x: "pad_r";\r
-                           }\r
-                        }\r
-                        }\r
-\r
-                       part { name : "elm.swallow.warn_label";\r
-                               type: SWALLOW;\r
-                               scale : 1;\r
-                               mouse_events: 1;\r
-                               repeat_events: 1;\r
-                               description { state: "default" 0.0;\r
-                                       align : 0.0 0.5;\r
-                                       fixed : 0 1;\r
-                                       rel1{\r
-                                               relative: 0.0 0.5;\r
-                                               to: "pad_b";\r
-                                       }\r
-                                       rel2{\r
-                                               relative: 1.0 0.5;\r
-                                               to : "pad_b";\r
-                                       }                                       \r
-                               }\r
-                               \r
-                       }       \r
-                }\r
-       }               \r
-}\r
-\r
index 6b53715..9a5adcf 100755 (executable)
-volume (0.2.4-1) unstable; urgency=low
+volume (0.1.58-1) unstable; urgency=low
 
-  * Remove unused files
+  * fix PLM issue. P130122-5990 : Highlight of setting icon needs consistency.
+
+ -- minho07.kim <minho07.kim@samsung.com>  Mon, 04 Feb 2013 11:30:46 +0900
+
+volume (0.1.57-4) unstable; urgency=low
+
+  * update smack rules.
+
+ -- minho07.kim <mino@ubuntu>  Fri, 01 Feb 2013 13:52:51 +0900
+
+volume (0.1.56-1) unstable; urgency=low
+
+  * update smack rules.
+
+ -- minho07.kim <minho07.kim@samsung.com>  Thu, 31 Jan 2013 11:26:51 +0900
+
+volume (0.1.55-1) unstable; urgency=low
+
+  * applying changed play_sound method.
+
+ -- minho07.kim <minho07.kim@samsung.com>  Wed, 30 Jan 2013 10:00:20 +0900
+
+volume (0.1.54-1) unstable; urgency=low
+
+  * adding some smack rules.
+
+ -- minho07.kim <minho07.kim@samsung.com>  Tue, 29 Jan 2013 17:37:08 +0900
+
+volume (0.1.53-1) unstable; urgency=low
+
+  * applying changed winset GUI and adding exception handling code.
+
+ -- minho07.kim <minho07.kim@samsung.com>  Mon, 28 Jan 2013 11:40:24 +0900
+
+volume (0.1.51-1) unstable; urgency=low
+
+  * Optimize memory.
+  * Git : magnolia/apps/home/volume-app
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Wed, 16 Jan 2013 21:39:33 +0900
+
+volume (0.1.50-1) unstable; urgency=low
+
+  * Fix N_SE-17620 issue that "Unsupported menu" pop-up appears.
+  * Git : magnolia/apps/home/volume-app
+
+ -- minho07.kim <minho07.kim@samsung.com>  Fri, 04 Jan 2013 13:00:43 +0900
+
+volume (0.1.49-1) unstable; urgency=low
+
+  * Apply vconf of "turn off all sounds"
+  * Git : magnolia/apps/home/volume-app
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Thu, 27 Dec 2012 18:26:38 +0900
+
+volume (0.1.48-2) unstable; urgency=low
+
+  *Fix volume setting entry issue.
+
+ -- minho07.kim <minho07.kim@samsung.com>  Fri, 21 Dec 2012 11:21:27 +0900
+
+volume (0.1.47-1) unstable; urgency=low
+
+  * Fix error to block when sliding volume indicator to level 0.
+  * Git : magnolia/apps/home/volume-app
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Sun, 16 Dec 2012 23:21:58 +0900
+
+volume (0.1.46-1) unstable; urgency=low
+
+  * Fix P121212-6027 issue.
+  * Add exception handling code in rotate function.
+
+ -- minho07.kim <minho07.kim@samsung.com>  Thu, 13 Dec 2012 16:42:29 +0900
+
+volume (0.1.45-1) unstable; urgency=low
+
+  * Fix ear safety issue.
+
+ -- minho07.kim <minho07.kim@samsung.com>  Tue, 11 Dec 2012 17:19:59 +0900
+
+volume (0.1.44-1) unstable; urgency=low
+
+  * Fix lock in media issue.
+  * Fix S1-10695 : When music player app is show, volume is launched duoble.
+  * Git : magnolia/apps/home/volume-app
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Fri, 07 Dec 2012 18:00:11 +0900
+
+volume (0.1.43-1) unstable; urgency=low
+
+  * Fix lock in media issue and slider progress invisible issue.
+  * Git : magnolia/apps/home/volume-app
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Thu, 06 Dec 2012 21:24:58 +0900
+
+volume (0.1.42-1) unstable; urgency=low
+
+  *Fix P121126-2715 : sound mode issue.
+
+ -- minho07.kim <minho07.kim@samsung.com>  Tue, 04 Dec 2012 17:16:54 +0900
+
+volume (0.1.41-2) unstable; urgency=low
+
+  * Fix manifest file and spec file.
+  * Git : magnolia/apps/home/volume-app
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Mon, 03 Dec 2012 20:38:00 +0900
+
+volume (0.1.41-1) unstable; urgency=low
+
+  * Seperate volume app from starter.
+  * To change calling setting-efl by using UG to by using service.
+  * Apply new vconf key to fix keygrab issue.
+  * Git : magnolia/apps/home/volume-app
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Thu, 29 Nov 2012 21:51:49 +0900
+
+volume (0.1.40-1) unstable; urgency=low
+
+  * Fix indicator volume issue and vconf setting.
+  * Git : magnolia/apps/home/volume-app
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Fri, 23 Nov 2012 16:42:34 +0900
+
+volume (0.1.39-2) unstable; urgency=low
+
+  * Attach tag note.
   * Git: magnolia/apps/home/volume-app
-  * Tag: volume_0.2.4-1
+  * Tag: volume_0.1.38-1
 
- -- Junghyun Kim <jh1114.kim@samsung.com>  Fri, 17 Aug 2012 16:51:10 +0900
+ -- Hong Kwon <hhh.kwon@samsung.com>  Sun, 18 Nov 2012 17:35:08 +0900
+
+volume (0.1.39-1) unstable; urgency=low
+
+  * Change ticker notification show policy
+  * Fix PLM ISSUE P121114-4779
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.38-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Fri, 16 Nov 2012 16:17:25 +0900
+
+volume (0.1.38-1) unstable; urgency=low
+
+  * Apply new GUI style.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.37-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Wed, 14 Nov 2012 22:31:10 +0900
+
+volume (0.1.37-1) unstable; urgency=low
+
+  * Fix indicator issue.
+  * Fix ticker notification bugs.
+  * Apply desktop mode.
+  * Fix manifest file.
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Wed, 14 Nov 2012 14:54:08 +0900
+
+volume (0.1.36-1) unstable; urgency=low
+
+  * Apply EFL memory optimization.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.36-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Fri, 09 Nov 2012 18:32:07 +0900
+
+volume (0.1.35-1) unstable; urgency=low
+
+  * Apply new theme.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.35-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Sat, 03 Nov 2012 23:02:02 +0900
+
+volume (0.1.34-1) unstable; urgency=low
+
+  * Fix P120919-3736 : Apply earphone safety concept.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.34-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Fri, 02 Nov 2012 11:35:09 +0900
+
+volume (0.1.33-1) unstable; urgency=low
+
+  * Apply new directory policy
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.33-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Tue, 30 Oct 2012 14:11:27 +0900
+
+volume (0.1.32-1) unstable; urgency=low
+
+  * Fix P121023-5098 and set default volume type to RINGTONE
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.32-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Fri, 26 Oct 2012 16:38:41 +0900
+
+volume (0.1.31-1) unstable; urgency=low
+
+  * Fix P121017-7246, P121017-7247
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.31-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Sat, 20 Oct 2012 17:52:27 +0900
+
+volume (0.1.30-2) unstable; urgency=low
+
+  * Fix side effect of P121012-6618
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.30-2
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Fri, 19 Oct 2012 08:52:41 +0900
+
+volume (0.1.30-1) unstable; urgency=low
+
+  * P121012-6618 : When volume popup is opend, keep touching volume key, volume shoul go to max highly/lowly
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.30-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Thu, 18 Oct 2012 21:07:43 +0900
+
+volume (0.1.29-1) unstable; urgency=low
+
+  * To block double launching by stater and menu-daemon
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.29-1
+
+ -- Hong Kwon <hhh.kwon@samung.com>  Tue, 16 Oct 2012 11:39:12 +0900
+
+volume (0.1.28-1) unstable; urgency=low
+
+  * Update license information
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.28-1
+
+ -- Junghyun Kim <jh1114.kim@samsung.com>  Fri, 12 Oct 2012 11:30:50 +0900
+
+volume (0.1.27-1) unstable; urgency=low
+
+  * P121004-2766 : Settings icon should be highlighted when touched.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.27-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Mon, 08 Oct 2012 17:31:17 +0900
+
+volume (0.1.26-1) unstable; urgency=low
+
+  * Make a new xml file.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.26-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Thu, 04 Oct 2012 20:10:01 +0900
+
+volume (0.1.25-3) unstable; urgency=low
+
+  * Fix spec file to read removed file.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.25-3
 
-volume (0.2.3-1) unstable; urgency=low
+ -- Hong Kwon <hhh.kwon@samsung.com>  Fri, 28 Sep 2012 16:54:29 +0900
+
+volume (0.1.25-2) unstable; urgency=low
+
+  * Fix CMakefile to read removed file.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.25-2
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Fri, 28 Sep 2012 16:38:13 +0900
+
+volume (0.1.25-1) unstable; urgency=low
+
+  * Remove unsued vconf callback APIs and remove unused EDJE layout
+  * Apply mute and vibration icon
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.25-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Fri, 28 Sep 2012 16:13:59 +0900
+
+volume (0.1.24-1) unstable; urgency=low
+
+  * Add variable initialized and organize the EDC file.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.24-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Wed, 26 Sep 2012 17:04:54 +0900
+
+volume (0.1.23-1) unstable; urgency=low
+
+  * Rotation fuction of new GUI guide can be supported.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.23-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Mon, 24 Sep 2012 23:02:38 +0900
+
+volume (0.1.22-1) unstable; urgency=low
+
+  * Apply SMACK.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.22-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Mon, 23 Sep 2012 19:31:06 +0900
+
+volume (0.1.21-1) unstable; urgency=low
+
+  * Apply new GUI guide.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.21-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Mon, 24 Sep 2012 18:10:38 +0900
+
+volume (0.1.20-1) unstable; urgency=low
+
+  * Set "Ringtone" the default sound type.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.20-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Wed, 19 Sep 2012 18:35:54 +0900
+
+volume (0.1.19-1) unstable; urgency=low
+
+  * Fix N_SE-7996
+  * Git: magnolia/apps/home/volume-app.
+  * Tag: volume_0.1.19-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Thu, 30 Aug 2012 19:02:09 +0900
+
+volume (0.1.18-2) unstable; urgency=low
+
+  * Fix omitted code.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.18-2
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Mon, 27 Aug 2012 10:43:38 +0900
+
+volume (0.1.18-1) unstable; urgency=low
+
+  * Fix N_SE-5897 and fix rotation issue.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.18-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Thu, 23 Aug 2012 18:20:00 +0900
+
+volume (0.1.17-1) unstable; urgency=low
+
+  * Apply popup subject 'earphone' to PO files.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.17-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Tue, 21 Aug 2012 15:33:55 +0900
+
+volume (0.1.16-1) unstable; urgency=low
+
+  * Fix UG issue on video player
+  * Change default volume 'system' to 'ringtone'
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.16-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Tue, 21 Aug 2012 13:02:23 +0900
+
+volume (0.1.15-2) unstable; urgency=low
+
+  * Update for SEL verifcation
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.15-2
+
+ -- Junghyun Kim <jh1114.kim@samsung.com>  Sun, 19 Aug 2012 14:15:28 +0900
+
+volume (0.1.15-1) unstable; urgency=low
+
+  * Fix N_SE-6981 : Volume increase and decrease when sound off.
+  * Git: magnolia/apps/home/volume-app
+  * Tag: volume_0.1.15-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Fri, 17 Aug 2012 17:11:49 +0900
+
+volume (0.1.14-1) unstable; urgency=low
 
   * Fix an error not to read PO files
   * Git: magnolia/apps/home/volume-app
-  * Tag: volume_0.2.3-1
+  * Tag: volume_0.1.14-1
 
- -- Hong Kwon <hhh.kwon@samsung.com>  Thu, 16 Aug 2012 19:02:09 +0900
+ -- Hong Kwon <hhh.kwon@samsung.com>  Thu, 16 Aug 2012 18:56:03 +0900
 
-volume (0.2.2-1) unstable; urgency=low
+volume (0.1.13-1) unstable; urgency=low
 
-  * Apply open source code
+  * Remove unused image file
   * Git: apps/home/volume-app
-  * Tag: volume_0.2.2-1
+  * Tag: volume_0.1.13-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Thu, 16 Aug 2012 18:56:00 +0900
+
+volume (0.1.12-2) unstable; urgency=low
+
+  * Fix build error
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.12-2
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Fri, 10 Aug 2012 13:10:04 +0900
+
+volume (0.1.12-1) unstable; urgency=low
+
+  * Apply PO files and apply white theme to setting button
+  * Fix edc file and fix UI to ui style guide.
+  * Change warning message showing method
+  * Optimise source codes
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.12-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Fri, 10 Aug 2012 12:43:26 +0900
+
+volume (0.1.11-1) unstable; urgency=low
+
+  * Create/delete window -> Show/hide window
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.11-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Wed, 08 Aug 2012 19:00:37 +0900
+
+volume (0.1.10-1) unstable; urgency=low
+
+  * Fix PLM issue No. P120807-0076
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.10-1
+
+ -- kwonhhh <hhh.kwon@samsung.com>  Wed, 08 Aug 2012 18:08:30 +0900
+
+volume (0.1.9-2) unstable; urgency=low
+
+  * Apply manifest file in the package.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.9-2
+
+ -- kwonhhh <hhh.kwon@samsung.com>  Tue, 31 Jul 2012 18:38:24 +0900
+
+volume (0.1.9-1) unstable; urgency=low
+
+  * Fix warnings and flawlogger warining
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.9-1
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Wed, 25 Jul 2012 18:37:55 +0900
+
+volume (0.1.8-2) unstable; urgency=low
+
+  * Change image files and change version
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.8-2
+
+ -- Hong Kwon <hhh.kwon@samsung.com>  Wed, 25 Jul 2012 12:44:48 +0900
+
+volume (0.1.8-1) unstable; urgency=low
+
+  * Change image files to apply white theme
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.8-1
+
+ -- Hong Kwon <hhh.kwon@Samsung.com>  Tue, 24 Jul 2012 20:09:22 +0900
+
+volume (0.1.7-1) unstable; urgency=low
+
+  * Fix PLM issue No. P120719-5397
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.7-1
+
+ -- Junghyun Kim <jh1114.kim@samsung.com>  Sun, 22 Jul 2012 15:15:50 +0900
+
+volume (0.1.6-1) unstable; urgency=low
+
+  * Change UG API
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.6-1
+
+ -- Junghyun Kim <jh1114.kim@samsung.com>  Wed, 18 Jul 2012 20:36:49 +0900
+
+volume (0.1.5-1) unstable; urgency=low
+
+  * Fix PLM Issue No.P120711-3848
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.5-1
+
+ -- kwonhhh <hhh.kwon@samsung.com>  Thu, 12 Jul 2012 15:35:11 +0900
+
+volume (0.1.4-2) unstable; urgency=low
+
+  * Modify Spec file for fix unstriped issue
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.4-2
+
+ -- Junghyun Kim <jh1114.kim@samsung.com>  Wed, 11 Jul 2012 19:08:18 +0900
+
+volume (0.1.4-1) unstable; urgency=low
+
+  * Fix S1-5152 : Crash issue about deleted windown handle in Setting-UG
+  * Change maintainer information
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.4-1
+
+ -- Junghyun Kim <jh1114.kim@samsung.com>  Mon, 09 Jul 2012 19:28:04 +0900
+
+volume (0.1.3-1) unstable; urgency=low
+
+  * Replace ug_destroyall to ug_destroy and remove close_volume code in destroy_cb
+  * Change maintainer information
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.3-1
+
+ -- Junghyun Kim <jh1114.kim@samsung.com>  Sat, 07 Jul 2012 16:24:27 +0900
+
+volume (0.1.2-20) unstable; urgency=low
+
+  * modified icon path.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-20
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Wed, 30 May 2012 13:15:28 +0900
+
+volume (0.1.2-19) unstable; urgency=low
+
+  * fixed bug: showing indicator in setting.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-19
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Mon, 21 May 2012 15:27:13 +0900
+
+volume (0.1.2-18) unstable; urgency=low
+
+  * modified spec name.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-18
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Thu, 10 May 2012 10:22:40 +0900
+
+volume (0.1.2-17) unstable; urgency=low
+
+  * added volume settings button.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-17
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Wed, 18 Apr 2012 11:19:33 +0900
+
+volume (0.1.2-16) unstable; urgency=low
+
+  * sync with public.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-16
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Thu, 05 Apr 2012 13:50:14 +0900
+
+volume (0.1.2-15) unstable; urgency=low
+
+  * update po files.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-15
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Wed, 04 Apr 2012 09:50:27 +0900
+
+volume (0.1.2-14) unstable; urgency=low
+
+  * added system string.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-14
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Fri, 30 Mar 2012 17:33:49 +0900
+
+volume (0.1.2-13) unstable; urgency=low
+
+  * modified spec file.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-13
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Fri, 23 Mar 2012 19:56:38 +0900
+
+volume (0.1.2-12) unstable; urgency=low
+
+  * modified name in spec file.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-12
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Fri, 23 Mar 2012 11:12:26 +0900
+
+volume (0.1.2-11) unstable; urgency=low
+
+  * modified desktop.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-11
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Fri, 16 Mar 2012 11:00:00 +0900
+
+volume (0.1.2-10) unstable; urgency=low
+
+  * migration efl.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-10
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Wed, 14 Mar 2012 14:00:00 +0900
+
+volume (0.1.2-9) unstable; urgency=low
+
+  * modified new efl apis.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-9
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Wed, 15 Feb 2012 21:00:00 +0900
+
+volume (0.1.2-8) unstable; urgency=low
+
+  * removed old code.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-8
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Tue, 27 Dec 2011 11:00:00 +0900
+
+volume (0.1.2-7) unstable; urgency=low
+
+  * fixed not showing when alarmring was alert
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-7
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Thu, 08 Dec 2011 09:00:00 +0900
+
+volume (0.1.2-6) unstable; urgency=low
+
+  * fixed not closing when alarmring was alert
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-6
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Tue, 06 Dec 2011 09:00:00 +0900
+
+volume (0.1.2-5) unstable; urgency=low
+
+  * modified blinking view volume up, fixed long press error while view lock
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-5
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Mon, 05 Dec 2011 09:00:00 +0900
+
+volume (0.1.2-4) unstable; urgency=low
+
+  * modified boilerplate
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-4
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Fri, 02 Dec 2011 09:00:00 +0900
+
+volume (0.1.2-3) unstable; urgency=low
+
+  * modified first image slider value sets 0
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-3
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Tue, 29 Nov 2011 09:00:00 +0900
+
+volume (0.1.2-2) unstable; urgency=low
+
+  * fixed: CQ H0100137553 needs space between volume type and earphone string
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-2
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Fri, 25 Nov 2011 09:00:00 +0900
+
+volume (0.1.2-1) unstable; urgency=low
+
+  * fixed: CQ H0100136887 mm_func was tried to work when window is NULL
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-1
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Wed, 16 Nov 2011 09:00:00 +0900
+
+volume (0.1.2-0) unstable; urgency=low
+
+  * modified UI
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.2-0
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Fri, 11 Nov 2011 10:00:00 +0900
+
+volume (0.1.1-54) unstable; urgency=low
+
+  * modified window level
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-54
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Tue, 08 Nov 2011 10:00:00 +0900
+
+volume (0.1.1-53) unstable; urgency=low
+
+  * fixed CQ H0100135742: added idler to show popup
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-53
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Tue, 25 Oct 2011 10:00:00 +0900
+
+volume (0.1.1-52) unstable; urgency=low
+
+  * added timer when volume is created to destory window after few seconds.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-52
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Wed, 19 Oct 2011 10:00:00 +0900
+
+volume (0.1.1-51) unstable; urgency=low
+
+  * timer start when release action not press action.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-51
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Wed, 19 Oct 2011 09:00:00 +0900
+
+volume (0.1.1-50) unstable; urgency=low
+
+  * modified volume icon
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-50
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Mon, 10 Oct 2011 09:00:00 +0900
+
+volume (0.1.1-49) unstable; urgency=low
+
+  * modified resolution 720 * 1280
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-49
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Mon, 10 Oct 2011 09:00:00 +0900
+
+volume (0.1.1-48) unstable; urgency=low
+
+  * added warning when level goes up 13
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-48
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Thu, 06 Oct 2011 09:00:00 +0900
+
+volume (0.1.1-47) unstable; urgency=low
+
+  * set mm_sound_type as a system volume
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-47
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Fri, 23 Sep 2011 09:00:00 +0900
+
+volume (0.1.1-46) unstable; urgency=low
+
+  * fixed: set mute when letting media volume down in vib mode
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-46
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Wed, 21 Sep 2011 09:00:00 +0900
+
+volume (0.1.1-45) unstable; urgency=low
+
+  * fixed: not going up max volume level
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-45
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Thu, 14 Sep 2011 09:00:00 +0900
+
+volume (0.1.1-44) unstable; urgency=low
+
+  * added timer for update volume level while draging
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-44
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Mon, 14 Sep 2011 09:00:00 +0900
+
+volume (0.1.1-43) unstable; urgency=low
+
+  * added po files and adjust 15 volume level
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-43
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Tue, 6 Sep 2011 09:00:00 +0900
+
+volume (0.1.1-42) unstable; urgency=low
+
+  * fixed: removed syspopup_reset not to refresh notification level
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-42
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Mon, 5 Sep 2011 09:00:00 +0900
+
+volume (0.1.1-41) unstable; urgency=low
+
+  * fixed: volume touch responce
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-41
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Thu, 1 Sep 2011 09:00:00 +0900
+
+volume (0.1.1-40) unstable; urgency=low
+
+  * fixed: calibrate volume level by adding (double)0.5
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-40
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Tue, 16 Jul 2011 09:00:00 +0900
+
+volume (0.1.1-39) unstable; urgency=low
+
+  * fixed: when idlelock was on, volume could not be controlable.
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-39
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Tue, 26 Jul 2011 09:00:00 +0900
+
+volume (0.1.1-38) unstable; urgency=low
+
+  * applied code cleanup
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-38
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Tue, 26 Jul 2011 09:00:00 +0900
+
+volume (0.1.1-37) unstable; urgency=low
+
+  * modified volume icon when level goes down 0
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-37
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Fri, 22 Jul 2011 09:00:00 +0900
+
+volume (0.1.1-36) unstable; urgency=low
+
+  * added boilerplate
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-36
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Wed, 13 Jul 2011 09:00:00 +0900
+
+volume (0.1.1-35) unstable; urgency=low
+
+  * fixed endkey wrong operation(skipped else phrase for endkey)
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-35
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Fri, 8 Jul 2011 15:10:37 +0900
+
+volume (0.1.1-34) unstable; urgency=low
+
+  * fixed wrong app_resume call even if syspopup was created
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-34
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Fri, 1 Jul 2011 15:10:37 +0900
+
+volume (0.1.1-33) unstable; urgency=low
+
+  * modified volome label to adjust slider label
+  * clean up
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-33
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Fri, 24 Jun 2011 15:10:37 +0900
+
+volume (0.1.1-32) unstable; urgency=low
+
+  * folder name is fixed
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-32
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Tue, 12 Apr 2011 15:10:37 +0900
+
+volume (0.1.1-31) unstable; urgency=low
+
+  * folder name is fixed
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-31
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Mon, 14 Mar 2011 11:10:37 +0900
+
+volume (0.1.1-30) unstable; urgency=low
+
+  * made data folder and postinst file as the home directory policy
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-30
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Mon, 14 Mar 2011 10:36:22 +0900
+
+volume (0.1.1-29) unstable; urgency=low
+
+  * added flush api and modified png files
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-29
+
+ -- jeesun kim <iamjs.kim@samsung.com>  Tue, 08 Mar 2011 09:56:02 +0900
+
+volume (0.1.1-28) unstable; urgency=low
+
+  * fixed bug : relaunch from menu before grabing hardkey by volume
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-28
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Fri, 18 Feb 2011 16:08:57 +0900
+
+volume (0.1.1-27) unstable; urgency=low
+
+  * from show hide to add del (req from memory TF)
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-27
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Wed, 16 Feb 2011 20:30:17 +0900
+
+volume (0.1.1-26) unstable; urgency=low
+
+  * modified wav path
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-26
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Mon, 31 Jan 2011 11:48:31 +0900
+
+volume (0.1.1-25) unstable; urgency=low
+
+  * directory modification
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-25
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Mon, 17 Jan 2011 14:01:49 +0900
+
+volume (0.1.1-24) unstable; urgency=low
+
+  * modified showing up sequence
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-24
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Wed, 05 Jan 2011 17:53:43 +0900
+
+volume (0.1.1-23) unstable; urgency=low
+
+  * removed applog
+  * Git: slp/pkgs/v/volume-app
+  * Tag: volume_0.1.1-23
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Wed, 15 Dec 2010 14:18:26 +0900
+
+volume (0.1.1-22) unstable; urgency=low
+
+  * removed silent button
+  * Git: /git/slp/pkgs/volume-app
+  * Tag: volume_0.1.1-22
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Wed, 24 Nov 2010 15:25:30 +0900
+
+volume (0.1.1-21) unstable; urgency=low
+
+  * taskmanager sets false in desktop
+  * Git: /git/slp/pkgs/volume-app
+  * Tag: volume_0.1.1-21
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Wed, 24 Nov 2010 10:33:51 +0900
+
+volume (0.1.1-20) unstable; urgency=low
+
+  * set hidden ture in desktop.in
+  * Git: /git/slp/pkgs/volume-app
+  * Tag: volume_0.1.1-20
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Wed, 24 Nov 2010 10:33:48 +0900
+
+volume (0.1.1-19) unstable; urgency=low
+
+  * update version
+  * Git: /git/slp/pkgs/volume-app
+  * Tag: volume_0.1.1-19
+
+ -- Jeesun Kim <iamjs.kim@samsung.com>  Tue, 23 Nov 2010 15:37:37 +0900
+
+volume (0.1.1-18) unstable; urgency=low
+
+  * added silent and modfied pkg names
+  * Git: /git/slp/pkgs/volume-app
+  * Tag: volume_0.1.1-18
+
+ -- jeesun Kim <iamjs.kim@samsung.com>  Mon, 22 Nov 2010 14:10:34 +0900
+
+volume (0.1.1-17) unstable; urgency=low
+
+  * Modify to system popup
+  * Git: /git/slp/pkgs/volume-app
+  * Tag: volume_0.1.1-17
+
+ -- Noha Park <noha.park@samsung.com>  Wed, 17 Nov 2010 14:24:43 +0900
+
+volume (0.1.1-16) unstable; urgency=low
+
+  * Add strip code
+  * Git: /git/slp/pkgs/volume-app
+  * Tag: volume_0.1.1-16
+
+ -- Noha Park <noha.park@samsung.com>  Fri, 12 Nov 2010 15:41:32 +0900
+
+volume (0.1.1-15) unstable; urgency=low
+
+  * Add strip code
+  * Git: /git/slp/pkgs/volume-app
+  * Tag: volume_0.1.1-15
+
+ -- Noha Park <noha.park@samsung.com>  Fri, 12 Nov 2010 15:35:42 +0900
+
+volume (0.1.1-14) unstable; urgency=low
+
+  * Add strip code
+  * Git: /git/slp/pkgs/volume-app
+  * Tag: volume_0.1.1-14
+
+ -- Noha Park <noha.park@samsung.com>  Fri, 12 Nov 2010 15:19:18 +0900
+
+volume (0.1.1-13) unstable; urgency=low
+
+  * Repackaging
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-13
+
+ -- Noha Park <noha.park@samsung.com>  Fri, 22 Oct 2010 11:22:52 +0900
+
+volume (0.1.1-12) unstable; urgency=low
+
+  * Repackaging
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-12
+
+ -- Noha Park <noha.park@samsung.com>  Tue, 12 Oct 2010 19:45:30 +0900
+
+volume (0.1.1-11) unstable; urgency=low
+
+  * Remove theme set
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-11
+
+ -- Noha Park <noha.park@samsung.com>  Fri, 08 Oct 2010 08:51:54 +0900
+
+volume (0.1.1-10) unstable; urgency=low
+
+  * Modify window priority and adjust mm_sound spec
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-10
+
+ -- Noha Park <noha.park@samsung.com>  Fri, 01 Oct 2010 08:31:27 +0900
+
+volume (0.1.1-9) unstable; urgency=low
+
+  * Modify popup window layer
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-9
+
+ -- Noha Park <noha.park@samsung.com>  Thu, 30 Sep 2010 17:38:09 +0900
+
+volume (0.1.1-8) unstable; urgency=low
+
+  * Modify CMakeList for installing desktop file
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-8
+
+ -- Noha Park <noha.park@samsung.com>  Thu, 30 Sep 2010 10:57:20 +0900
+
+volume (0.1.1-7) unstable; urgency=low
+
+  * Temporary disable unfocus window set
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-7
+
+ -- Noha Park <noha.park@samsung.com>  Tue, 28 Sep 2010 19:26:34 +0900
+
+volume (0.1.1-6) unstable; urgency=low
+
+  * Adjust longpress
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-6
+
+ -- Noha Park <noha.park@samsung.com>  Tue, 28 Sep 2010 17:03:10 +0900
+
+volume (0.1.1-5) unstable; urgency=low
+
+  * Decrease launching time
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-5
+
+ -- Noha Park <noha.park@samsung.com>  Tue, 28 Sep 2010 15:38:22 +0900
+
+volume (0.1.1-4) unstable; urgency=low
+
+  * Adjust Multi-language
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-4
+
+ -- Noha Park <noha.park@samsung.com>  Mon, 27 Sep 2010 17:20:58 +0900
+
+volume (0.1.1-3) unstable; urgency=low
+
+  * Set popup window as unfocus
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-3
+
+ -- Noha Park <noha.park@samsung.com>  Mon, 27 Sep 2010 15:05:43 +0900
+
+volume (0.1.1-2) unstable; urgency=low
+
+  * Modify title for each type
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-2
+
+ -- Noha Park <noha.park@samsung.com>  Mon, 27 Sep 2010 11:08:21 +0900
+
+volume (0.1.1-1) unstable; urgency=low
+
+  * Adjust volume during changing volume
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-1
+
+ -- Noha Park <noha.park@samsung.com>  Sat, 25 Sep 2010 15:34:57 +0900
+
+volume (0.1.1-0) unstable; urgency=low
+
+  * New volume control release
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.1-0
+
+ -- Noha Park <noha.park@samsung.com>  Fri, 24 Sep 2010 14:04:05 +0900
+
+volume (0.1.0-9) unstable; urgency=low
+
+  * Scalable UI
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.0-9
+
+ -- Noha Park <noha.park@samsung.com>  Fri, 24 Sep 2010 09:55:25 +0900
+
+volume (0.1.0-8) unstable; urgency=low
+
+  * Repackaging
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.0-8
+
+ -- Noha Park <noha.park@samsung.com>  Mon, 20 Sep 2010 08:50:49 +0900
+
+volume (0.1.0-7) unstable; urgency=low
+
+  * Modify mm_sound to mm_keysound
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.0-7
+
+ -- Noha Park <noha.park@samsung.com>  Fri, 17 Sep 2010 18:30:02 +0900
+
+volume (0.1.0-6) unstable; urgency=low
+
+  * Repackaging
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.0-6
+
+ -- Noha Park <noha.park@samsung.com>  Fri, 17 Sep 2010 17:06:10 +0900
+
+volume (0.1.0-5) unstable; urgency=low
+
+  * Exit with ELM_POPUP_RESPONSE_NONE
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.0-5
+
+ -- Noha Park <noha.park@samsung.com>  Thu, 16 Sep 2010 11:48:42 +0900
+
+volume (0.1.0-4) unstable; urgency=low
+
+  * play sound directly using mm_sound
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.0-4
+
+ -- Noha Park <noha.park@samsung.com>  Wed, 15 Sep 2010 09:41:15 +0900
+
+volume (0.1.0-3) unstable; urgency=low
+
+  * modify volume range
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.0-3
+
+ -- Noha Park <noha.park@samsung.com>  Mon, 13 Sep 2010 17:57:51 +0900
+
+volume (0.1.0-2) unstable; urgency=low
+
+  * modify return of ecore fn
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.0-2
+
+ -- Noha Park <noha.park@samsung.com>  Sun, 12 Sep 2010 14:36:14 +0900
+
+volume (0.1.0-1) unstable; urgency=low
+
+  * Initial Release.
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.0-1
+
+ -- Noha Park <noha.park@samsung.com>  Thu, 09 Sep 2010 15:36:43 +0900
+
+volume (0.1.0-0) unstable; urgency=low
 
- -- Hong Kwon <hhh.kwon@samsung.com>  Mon, 13 Aug 2012 19:36:09 +0900
+  * Initial Release.
+  * Git: /git/slp/pkgs/volume-app/.git
+  * Tag: volume_0.1.0-0
 
+ -- Noha Park <noha.park@samsung.com>  Wed, 08 Sep 2010 14:29:45 +0900
index c692e15..c63c695 100644 (file)
@@ -5,12 +5,12 @@ 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
+Package: com.samsung.volume
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: volume
 
-Package: org-tizen.volume-dbg
+Package: com.samsung.volume-dbg
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Volume Debug Symbols
diff --git a/debian/dirs b/debian/dirs
new file mode 100644 (file)
index 0000000..ca882bb
--- /dev/null
@@ -0,0 +1,2 @@
+usr/bin
+usr/sbin
diff --git a/debian/docs b/debian/docs
new file mode 100644 (file)
index 0000000..a0f0008
--- /dev/null
@@ -0,0 +1 @@
+CMakeLists.txt
index 776cc6a..751aaad 100644 (file)
@@ -1,3 +1,3 @@
 @PREFIX@/*
-/opt/share/applications/org.tizen.desktop
+/opt/share/applications/org.tizen.volume.desktop
 /opt/share/icons/default/small/org.tizen.volume.png
index 079eb49..d9b6744 100755 (executable)
@@ -11,9 +11,9 @@
 
 CFLAGS ?= -Wall -g
 LDFLAGS ?=
-PREFIX ?= /opt/apps/org.tizen.volume
-RESDIR ?= /opt/apps/org.tizen.volume/res
-DATADIR ?= /opt/apps/org.tizen.volume/data
+PREFIX ?= /usr/apps/com.samsung.volume
+RESDIR ?= /usr/apps/com.samsung.volume/res
+DATADIR ?= /opt/usr/apps/com.samsung.volume/data
 
 #ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
 #      CFLAGS += -O0
@@ -104,7 +104,7 @@ binary-arch: build install
 #      dh_installinfo
        dh_installman
        dh_link
-       dh_strip --dbg-package=org.tizen.volume-dbg
+       dh_strip --dbg-package=com.samsung.volume-dbg
        dh_compress
        dh_fixperms
 #      dh_perl
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 3c9cacf..43703a9 100755 (executable)
@@ -1,14 +1,14 @@
 /*
- * Copyright 2012  Samsung Electronics Co., Ltd
- * 
- * Licensed under the Flora License, Version 1.0 (the License);
+ * 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.tizenopensource.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/control.h b/include/control.h
new file mode 100755 (executable)
index 0000000..b2c811e
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * 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,
+};
+
+
+int volume_control_viewport_height_get();
+int volume_control_viewport_width_get();
+void volume_control_show_hide_worning();
+Eina_Bool volume_control_viewport_is_warning_visible();
+
+bundle *volume_control_reset_bundle_get(void);
+Eina_Bool volume_control_is_deleting_get(void);
+Eina_Bool volume_control_is_launching_get(void);
+int volume_control_current_angle_get(void);
+sound_type_e volume_control_sound_type_at_show_get(void);
+
+volume_error_e volume_control_cache_flush(void);
+
+volume_error_e volume_control_app_launch_with_bundle(const char *op_type, const char *operation, const char *pkgname);
+volume_error_e volume_control_mode_syspopup_launch(void);
+int volume_control_vconf_idlelock_get(void);
+
+int volume_control_status_check(int *lock, sound_type_e *sound_type);
+
+Eina_Bool volume_control_show(void);
+int volume_control_close(void);
+
+void volume_control_vconfkey_register(void);
+void volume_control_vconfkey_unregister(void);
+
+volume_error_e volume_control_pause(void);
+volume_error_e volume_control_reset(bundle *b);
+volume_error_e volume_control_initialize(void);
+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..4933631
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * 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__
+
+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..17af031
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+ * 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 <ui-gadget.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_viewport_width_get()-WIN_HEIGHT_WITH_WARNING-WIN_LANDSCAPE_X
+#define WIN_LANDSCAPE_Y (volume_control_viewport_height_get()-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..35b8de9
--- /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_TIMER_H__
+#define __VOLUME_TIMER_H__
+
+#define DEL_TIMER(x) \
+       if (x) {\
+               _D("DELTIMER x : %d\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 : %d\n", x);\
+
+typedef enum {
+       TYPE_TIMER_POPUP = 0,
+       TYPE_TIMER_SLIDER,
+       TYPE_TIMER_SD,
+       TYPE_TIMER_SU
+} volume_timer_type;
+
+Ecore_Timer *volume_timer_popup_timer_get(void);
+Ecore_Timer *volume_timer_slider_timer_get(void);
+Ecore_Timer *volume_timer_su_timer_get(void);
+Ecore_Timer *volume_timer_sd_timer_get(void);
+
+Eina_Bool volume_timer_popup_cb(void *data);
+Eina_Bool volume_timer_slider_timer_cb(void *data);
+
+void volume_timer_add(double time, volume_timer_type type);
+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..5c8df26
--- /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_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);
+//volume_error_e volume_view_icon_set(void);
+void volume_view_volume_icon_set(sound_type_e sound_type, int sound, int vibration);
+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..ff739b4
--- /dev/null
@@ -0,0 +1,63 @@
+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 1f8167d..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.4" 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="/opt/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>
index 06711f0..3f03638 100755 (executable)
@@ -1,23 +1,39 @@
-#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
+
 Name:  org.tizen.volume
 Summary:       Volume application (EFL)
-Version:       0.2.4
+Version:       0.1.148
 Release:       1
 Group: TO_BE/FILLED_IN
-License:       Flora Software License
+License:       Apache-2.0
 Source0:       %{name}-%{version}.tar.gz
+BuildRequires:  pkgconfig(capi-appfw-application)
+BuildRequires:  pkgconfig(capi-appfw-app-manager)
 BuildRequires:  pkgconfig(appcore-efl)
 BuildRequires:  pkgconfig(elementary)
 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(feedback)
+BuildRequires:  pkgconfig(syspopup-caller)
+BuildRequires:  pkgconfig(x11)
+BuildRequires:  pkgconfig(xcomposite)
+BuildRequires:  pkgconfig(xext)
+BuildRequires:  pkgconfig(xi)
+BuildRequires:  pkgconfig(efl-assist)
 
 BuildRequires:  cmake
 BuildRequires:  edje-bin
 BuildRequires:  embryo-bin
 BuildRequires:  gettext-devel
+BuildRequires: hash-signer
 
 %description
 volume.
@@ -25,9 +41,27 @@ volume.
 %prep
 %setup -q
 
-%define PREFIX /opt/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}"
@@ -36,10 +70,21 @@ 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 %{_package_name}.manifest
 %defattr(-,root,root,-)
-%{PREFIX}/bin/*
-%{PREFIX}/res/*
-/opt/share/packages/org.tizen.volume.xml
-/opt/share/icons/default/small/org.tizen.volume.png
+%{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 a717272..339b080 100644 (file)
@@ -1,6 +1,6 @@
 # for i18n
 
-SET(POFILES ar.po bg.po ca.po cs.po da.po de_DE.po el_GR.po en.po en_GB.po en_US.po es_ES.po fi.po fr_FR.po he.po hi.po hr.po hu.po id.po it_IT.po ja_JP.po ko_KR.po lt.po lv.po ms.po nl_NL.po no.po pl.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po th.po tr_TR.po uk.po vi.po zh_CN.po zh_HK.po zh_TW.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 "/usr/bin/msgfmt")
 
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 "تم تفعيل الوضع الشخصي"
+
diff --git a/po/az.po b/po/az.po
new file mode 100644 (file)
index 0000000..4cbf3a8
--- /dev/null
+++ b/po/az.po
@@ -0,0 +1,60 @@
+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."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Mediya"
+
+msgid "IDS_COM_BODY_ANDROID"
+msgstr "Android"
+
+msgid "IDS_COM_BODY_JAVA"
+msgstr "Java"
+
+msgid "IDS_COM_BODY_WARNING"
+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."
+
diff --git a/po/en_PH.po b/po/en_PH.po
new file mode 100644 (file)
index 0000000..c896e53
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "High volume may harm your hearing if you listen to it for a long time"
+
+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 "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"
+
diff --git a/po/es_US.po b/po/es_US.po
new file mode 100644 (file)
index 0000000..c1c6f13
--- /dev/null
@@ -0,0 +1,60 @@
+msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Escuchar música a volumen alto por un tiempo prolongado puede dañar su audición"
+
+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:%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."
+
diff --git a/po/et.po b/po/et.po
new file mode 100644 (file)
index 0000000..969d95f
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,60 @@
+msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Valju heli kuulamine pika aja valtel voib pohjustada kuulmiskahjustusi."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Meedia (Telefon)"
+
+msgid "IDS_COM_BODY_ANDROID"
+msgstr "Android"
+
+msgid "IDS_COM_BODY_JAVA"
+msgstr "Java"
+
+msgid "IDS_COM_BODY_WARNING"
+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."
+
diff --git a/po/eu.po b/po/eu.po
new file mode 100644 (file)
index 0000000..7f86cdd
--- /dev/null
+++ b/po/eu.po
@@ -0,0 +1,60 @@
+msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Baliteke bolumen handien zure entzumena kaltetzea denbora luzean entzuten baduzu"
+
+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 "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é."
+
diff --git a/po/fr_CA.po b/po/fr_CA.po
new file mode 100644 (file)
index 0000000..ab044b1
--- /dev/null
@@ -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 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é"
 
diff --git a/po/ga.po b/po/ga.po
new file mode 100644 (file)
index 0000000..45d7ebd
--- /dev/null
+++ b/po/ga.po
@@ -0,0 +1,57 @@
+msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "Is féidir le hairdí arda dochar a dhéanamh don éisteacht má éisteann tú ar feadh tamall fada"
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Meáin"
+
+msgid "IDS_COM_BODY_ANDROID"
+msgstr "Android"
+
+msgid "IDS_COM_BODY_JAVA"
+msgstr "Java"
+
+msgid "IDS_COM_BODY_WARNING"
+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"
+
diff --git a/po/gl.po b/po/gl.po
new file mode 100644 (file)
index 0000000..7998ff4
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,60 @@
+msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
+msgstr "A música a un volume elevado pode danar a túa capacidade auditiva se a escoitas durante un período de tempo prolongado"
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Multimedia"
+
+msgid "IDS_COM_BODY_ANDROID"
+msgstr "Androide"
+
+msgid "IDS_COM_BODY_JAVA"
+msgstr "Java"
+
+msgid "IDS_COM_BODY_WARNING"
+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."
+
diff --git a/po/hy.po b/po/hy.po
new file mode 100644 (file)
index 0000000..13ce8ae
--- /dev/null
+++ b/po/hy.po
@@ -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 կորսված զանգ"
+
+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 "Մատչելիության դրվածքներում կասեցրեք «Անջատել բոլոր հնչյունները»:"
+
diff --git a/po/is.po b/po/is.po
new file mode 100644 (file)
index 0000000..00bec94
--- /dev/null
+++ b/po/is.po
@@ -0,0 +1,60 @@
+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."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Margmiðlunarefni"
+
+msgid "IDS_COM_BODY_ANDROID"
+msgstr "Android"
+
+msgid "IDS_COM_BODY_JAVA"
+msgstr "Java"
+
+msgid "IDS_COM_BODY_WARNING"
+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 "パーソナルモードが有効になりました。"
+
diff --git a/po/ka.po b/po/ka.po
new file mode 100644 (file)
index 0000000..6d3ea46
--- /dev/null
+++ b/po/ka.po
@@ -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 "ჯავა"
+
+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, შუადღის შემდეგ."
+
+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 "წვდომის პარამეტრებში გამორთეთ ყველა ხმის გამორთვა."
+
diff --git a/po/kk.po b/po/kk.po
new file mode 100644 (file)
index 0000000..a1d486f
--- /dev/null
+++ b/po/kk.po
@@ -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 қабылданбаған қоңырау"
+
+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."
+
diff --git a/po/mk.po b/po/mk.po
new file mode 100644 (file)
index 0000000..e39c3c0
--- /dev/null
+++ b/po/mk.po
@@ -0,0 +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"
+
+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:%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 "Хандалтын тохиргоонд Бүх дууг унтраахыг идэвхгүй болго."
+
diff --git a/po/nb.po b/po/nb.po
new file mode 100644 (file)
index 0000000..0d9b309
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,60 @@
+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."
+
+msgid "IDS_COM_BODY_MEDIA"
+msgstr "Medier"
+
+msgid "IDS_COM_BODY_ANDROID"
+msgstr "Android"
+
+msgid "IDS_COM_BODY_JAVA"
+msgstr "Java"
+
+msgid "IDS_COM_BODY_WARNING"
+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ść."
+
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644 (file)
index 0000000..dce7238
--- /dev/null
@@ -0,0 +1,60 @@
+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."
+
+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 "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)
diff --git a/po/uz.po b/po/uz.po
new file mode 100644 (file)
index 0000000..1f198cb
--- /dev/null
+++ b/po/uz.po
@@ -0,0 +1,60 @@
+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."
+
+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 "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 "個人模式已啟用"
+
diff --git a/po/zh_SG.po b/po/zh_SG.po
new file mode 100644 (file)
index 0000000..417d165
--- /dev/null
@@ -0,0 +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 "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:%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/_button.c b/src/_button.c
deleted file mode 100755 (executable)
index 6275934..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- * 
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.tizenopensource.org/license
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include <ui-gadget.h>
-
-#include "_util_log.h"
-#include "volume.h"
-#include "_sound.h"
-#include "_logic.h"
-
-static void button_ug_layout_cb(ui_gadget_h ug,
-               enum ug_mode mode, void *priv)
-{
-       Evas_Object *base;
-       Evas_Object *win;
-
-       base = ug_get_layout(ug);
-       win = ug_get_window();
-
-       switch (mode) {
-               case UG_MODE_FULLVIEW:
-                       evas_object_size_hint_weight_set(base,
-                                       EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-                       elm_win_resize_object_add(win, base);
-                       evas_object_show(base);
-                       break;
-               default:
-                       break;
-       }
-}
-
-static void button_ug_destroy_cb(ui_gadget_h ug, void *priv)
-{
-       _D("%s\n", __func__);
-       struct appdata *ad = (struct appdata *)priv;
-
-       retm_if(ug == NULL, "Invalid argument: ug is NULL\n");
-
-       ug_destroy(ug);
-       ad->ug = NULL;
-
-       ecore_x_netwm_window_type_set(elm_win_xwindow_get(ad->win), ECORE_X_WINDOW_TYPE_NOTIFICATION);
-       utilx_set_window_opaque_state(ecore_x_display_get(), elm_win_xwindow_get(ad->win), UTILX_OPAQUE_STATE_OFF);
-       _close_volume(ad);
-}
-
-ui_gadget_h create_button_ug(void *data)
-{
-       ui_gadget_h ug = NULL;
-       struct ug_cbs cbs = {0};
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, 0, "Invalid argument:appdata is NULL\n");
-
-       cbs.layout_cb = button_ug_layout_cb;
-       cbs.destroy_cb = button_ug_destroy_cb;
-       cbs.priv = (void *)data;
-
-       ecore_x_netwm_window_type_set(elm_win_xwindow_get(ad->win), ECORE_X_WINDOW_TYPE_NORMAL);
-       utilx_set_window_opaque_state(ecore_x_display_get(), elm_win_xwindow_get(ad->win), UTILX_OPAQUE_STATE_ON);
-       ug = ug_create(NULL, "setting-profile-efl", UG_MODE_FULLVIEW, NULL, &cbs);
-
-       return ug;
-}
-
-int _open_ug(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       ui_gadget_h ug= NULL;
-
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-       retvm_if(ad->win == NULL, -1, "Invalid argument: window is NULL\n");
-
-       UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
-       elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW);
-       ug = create_button_ug(ad);
-
-       retvm_if(ug == NULL, -1, "Failed to Create ug!\n");
-
-       ad->ug = ug;
-
-       return 0;
-}
diff --git a/src/_button.h b/src/_button.h
deleted file mode 100755 (executable)
index ae3fd14..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- * 
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.tizenopensource.org/license
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-int _open_ug(void *data);
diff --git a/src/_logic.c b/src/_logic.c
deleted file mode 100755 (executable)
index 030b135..0000000
+++ /dev/null
@@ -1,660 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- * 
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.tizenopensource.org/license
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include <math.h>
-
-#include <Ecore.h>
-#include <Ecore_X.h>
-#include <utilX.h>
-#include <vconf.h>
-#include <ui-gadget.h>
-
-#include "volume.h"
-#include "_util_log.h"
-#include "_util_efl.h"
-#include "_sound.h"
-#include "_button.h"
-
-#define STRBUF_SIZE 128
-
-enum {
-       IDLELOCK_OFF = 0x0,
-       IDLELOCK_ON,
-       IDLELOCK_MAX,
-};
-
-void _ungrab_key(struct appdata *ad);
-
-static void _sound_cb(keynode_t *node, void *data)
-{
-}
-
-static void _vibration_cb(keynode_t *node, void *data)
-{
-}
-
-int _init_vconf(struct appdata *ad)
-{
-       int ret;
-       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, _sound_cb, ad);
-       retvm_if(ret < 0, -1, "Failed to notify sound status\n");
-       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, _vibration_cb, ad);
-       retvm_if(ret < 0, -1, "Failed to notifi vibration status\n");
-       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;
-
-       _ungrab_key(ad);
-
-       DEL_TIMER(ad->sutimer)
-       DEL_TIMER(ad->lutimer)
-       DEL_TIMER(ad->sdtimer)
-       DEL_TIMER(ad->ldtimer)
-       DEL_TIMER(ad->ptimer)
-
-       if (ad->pu)
-               evas_object_hide(ad->pu);
-       if (ad->win)
-               evas_object_hide(ad->win);
-       appcore_flush_memory();
-
-       ad->flag_deleting = 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;
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, 0, "Invalid argument: appdata is NULL\n");
-       if (ad->win == NULL || evas_object_visible_get(ad->win) == EINA_FALSE){
-               _D("win is NULL or hide state, so long press pass\n");
-               return ECORE_CALLBACK_CANCEL;
-       }
-       DEL_TIMER(ad->stimer)
-
-       _get_sound_level(ad->type, &val);
-       _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)
-{
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, 0, "Invalid argument: appdata is NULL\n");
-       ADD_TIMER(ad->lutimer, 0.0, _lu_timer_cb, ad)
-       return ECORE_CALLBACK_CANCEL;
-}
-
-Eina_Bool _ld_timer_cb(void *data)
-{
-       int val;
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, 0, "Invalid argument: appdata is NULL\n");
-       if (ad->win == NULL || evas_object_visible_get(ad->win) == EINA_FALSE){
-               _D("win is NULL or hide state, so long press pass\n");
-               return ECORE_CALLBACK_CANCEL;
-       }
-       DEL_TIMER(ad->stimer)
-
-       _get_sound_level(ad->type, &val);
-       _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)
-{
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, 0, "Invalid argument: appdata is NULL\n");
-       _D("add long down timer\n");
-       ADD_TIMER(ad->ldtimer, 0.0, _ld_timer_cb, ad)
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool _key_press_cb(void *data, int type, void *event)
-{
-       _D("%s\n", __func__);
-       int val=0, snd=0;
-       Ecore_Event_Key *ev = event;
-       struct appdata *ad = (struct appdata *)data;
-
-       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 (ad->flag_touching == EINA_TRUE) {
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &snd);
-
-       ad->flag_pressing = EINA_TRUE;
-
-       DEL_TIMER(ad->ptimer)
-
-       if (!strcmp(ev->keyname, KEY_VOLUMEUP)) {
-               _get_sound_level(ad->type, &val);
-               if (val == ad->step) {
-                       _set_sound_level(ad->type, ad->step);
-                       _play_sound(ad->type, ad->sh);
-                       return ECORE_CALLBACK_CANCEL;
-               }
-               if(!snd){
-                       _D("mute and volume up key pressed\n");
-                       vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, EINA_TRUE);
-               }
-               _set_sound_level(ad->type, val + 1);
-               _play_sound(ad->type, ad->sh);
-               DEL_TIMER(ad->sutimer)
-               ADD_TIMER(ad->sutimer, 0.5, _su_timer_cb, ad)
-
-               _D("set volume %d -> [%d]\n", val, val+1);
-
-       } else if (!strcmp(ev->keyname, KEY_VOLUMEDOWN)) {
-               if(!snd){
-                       /* Do nothing */
-                       return ECORE_CALLBACK_CANCEL;
-               }
-               _get_sound_level(ad->type, &val);
-               if (val == 0) {
-                       _play_vib(ad->sh);
-                       return ECORE_CALLBACK_CANCEL;
-               }
-               _set_sound_level(ad->type, val - 1);
-               _play_sound(ad->type, ad->sh);
-               DEL_TIMER(ad->sdtimer)
-               ADD_TIMER(ad->sdtimer, 0.5, _sd_timer_cb, ad)
-
-               _D("type (%d) set volume %d -> [%d]\n", ad->type, val, val-1);
-
-       }
-       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;
-
-       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 (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)
-
-       /* In UG, This Callback should not be called. */
-       if ( ad->ug == NULL )
-               ADD_TIMER(ad->ptimer, 3.0, popup_timer_cb, ad)
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-int _grab_key(struct appdata *ad)
-{
-       Ecore_X_Window xwin;
-       Ecore_X_Display *disp;
-       int ret;
-
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-
-       disp = ecore_x_display_get();
-       retvm_if(disp == NULL, -1, "Failed to get display\n");
-
-       retvm_if(ad->win == NULL, -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");
-
-       ret = utilx_grab_key(disp, xwin, KEY_VOLUMEDOWN, TOP_POSITION_GRAB);
-       retvm_if(ret < 0, -1, "Failed to grab key down\n");
-
-       ret = utilx_grab_key(disp, xwin, KEY_VOLUMEUP, TOP_POSITION_GRAB);
-       retvm_if(ret < 0, -1, "Failed to grab key up\n");
-
-       ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _key_press_cb, ad);
-       ecore_event_handler_add(ECORE_EVENT_KEY_UP, _key_release_cb, ad);
-       _D("key grabed\n");
-       return 0;
-}
-
-void _ungrab_key(struct appdata *ad)
-{
-       Ecore_X_Window xwin;
-       Ecore_X_Display *disp;
-
-       retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
-       retm_if(ad->win == NULL, "Invalid argument: ad->win is NULL\n");
-
-       xwin = elm_win_xwindow_get(ad->win);
-       retm_if(xwin == 0, "Failed to get xwindow\n");
-
-       disp = ecore_x_display_get();
-       retm_if(disp == NULL, "Failed to get display\n");
-
-       if (disp && xwin) {
-               utilx_ungrab_key(disp, xwin, KEY_VOLUMEUP);
-               utilx_ungrab_key(disp, xwin, KEY_VOLUMEDOWN);
-       }
-}
-
-int _get_vconf_idlelock(void)
-{
-       int ret, lock;
-
-       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;
-       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_SYSTEM;
-                       break;
-               default:
-                       fprintf(stderr, "Failed to get sound type(errno:%x)\n", ret);
-                       return -1;
-       }
-       if(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;
-       }
-       return 0;
-}
-
-int _app_create(struct appdata *ad)
-{
-       _init_vconf(ad);
-       _init_svi(ad);
-
-       return 0;
-}
-
-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;
-       _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 *obj, void *event_info)
-{
-       _close_volume(data);
-}
-
-Eina_Bool _slider_timer_cb(void *data)
-{
-       double val;
-       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) {    /* 0 value could be dealed with in changed callback */
-                       _set_sound_level(ad->type, (int)val);
-               }
-               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_FALSE;
-
-       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)
-{
-       double val;
-       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;
-       }
-       val = elm_slider_value_get(ad->sl);
-       if (val <= 0.5) {
-               elm_slider_value_set(ad->sl, 0);
-               _set_sound_level(ad->type, 0);
-
-       }
-}
-static void _slider_stop_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       _D("func\n");
-       double val;
-       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");
-       _D("add long down timer\n");
-       ADD_TIMER(ad->ldtimer, 0.0, _ld_timer_cb, ad)
-       return ECORE_CALLBACK_CANCEL;
-}
-
-int _handle_bundle(bundle *b, struct appdata *ad)
-{
-       const char *bval;
-
-       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);
-               Ecore_X_Display* disp = ecore_x_display_get();
-               Utilx_Key_Status upstat, downstat;
-
-               if (!strncmp(bval, "VOLUME_UP", strlen("LONG_PRESS"))) {
-                       upstat = utilx_get_key_status(disp, KEY_VOLUMEUP);
-                       if (upstat == UTILX_KEY_STATUS_PRESSED ) {
-                               _D("volume up long press\n");
-                               DEL_TIMER(ad->ptimer)
-                                       ecore_timer_add(0.5, _lu_warmup_timer_cb, ad);
-                       }
-               } else if (!strncmp(bval, "VOLUME_DOWN", strlen("LONG_PRESS"))) {
-                       downstat = utilx_get_key_status(disp, KEY_VOLUMEDOWN);
-                       if (downstat == UTILX_KEY_STATUS_PRESSED ) {
-                               _D("volume down long press\n");
-                               DEL_TIMER(ad->ptimer)
-                               ecore_timer_add(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)
-       }
-       return 0;
-}
-
-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");
-
-       DEL_TIMER(ad->ptimer)
-       _open_ug(ad);
-}
-
-Eina_Bool _unset_layout(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, EINA_FALSE,"Invalid argument: appdata is NULL\n");
-
-       DEL_TIMER(ad->warntimer);
-       if(elm_object_content_get(ad->pu)==ad->warn_ly){
-               elm_object_content_unset(ad->pu);
-               elm_object_content_set(ad->pu, ad->sl);
-               evas_object_hide(ad->warn_ly);
-       }
-       return ECORE_CALLBACK_CANCEL;
-}
-
-int _lang_changed(void *data){
-       _D("%s\n", __func__);
-       struct appdata *ad = (struct appdata *)data;
-       char buf[STRBUF_SIZE] = {0, };
-
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-       retvm_if(ad->win == NULL, -1, "Invalid argument: window is NULL\n");
-
-       elm_object_text_set(ad->bt, S_("IDS_COM_BODY_SETTINGS"));
-       snprintf(buf, sizeof(buf), "<font_size=32><b>%s</b></font_size>", 
-                       T_("IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"));
-       elm_object_text_set(ad->warn_lb, buf);
-       return 0;
-}
-
-int _app_reset(bundle *b, void *data)
-{
-       int ret, status;
-       int lock, type, val;
-       Evas_Object *win, *pu, *ic, *sl, *bt;
-       Evas_Object *label, *warn_ly;
-       char buf[STRBUF_SIZE] = {0, };
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-
-       ad->flag_touching = EINA_FALSE;
-
-       _init_mm_sound(ad);
-       status = _check_status(&lock, &type);
-       mm_sound_volume_get_value(type, (unsigned int*)(&val));
-       ad->type = type;
-
-       if (status == 0) {
-               if(ad->win){
-                       _grab_key(ad);
-                       _handle_bundle(b, ad);
-                       _unset_layout(data);
-                       evas_object_show(ad->pu);
-                       evas_object_show(ad->win);
-                       _mm_func(data);
-                       if(syspopup_has_popup(b))
-                               syspopup_reset(b);
-                       return 0;
-               }
-               ad->step = _get_step(type);
-
-               _set_level(type);
-
-               win = _add_window(PACKAGE);
-               retvm_if(win == NULL, -1, "Failed add window\n");
-               ad->win = win;
-
-               _grab_key(ad);
-
-               pu = _add_popup(win, "volumebarstyle");
-               retvm_if(pu == NULL, -1, "Failed to add popup\n");
-               evas_object_smart_callback_add(pu, "block,clicked", _block_clicked_cb, ad);
-               _get_title(type, buf, sizeof(buf));
-               elm_object_part_text_set(pu, "title,text", buf);
-               ad->pu = pu;
-
-               /* Make a Slider bar */
-               sl = _add_slider(ad->pu, 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;
-
-               ic = elm_icon_add(ad->pu);
-               evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-               elm_icon_resizable_set(ic, EINA_FALSE, EINA_FALSE);
-               elm_object_part_content_set(ad->sl, "icon", ic);
-               ad->ic = ic;
-               _set_icon(ad, val);
-
-               elm_object_content_set(ad->pu, ad->sl);
-
-               /* Make a Layout for volume slider with warning text. */
-               snprintf(buf, sizeof(buf), "<font_size=32><b>%s</b></font_size>", 
-                       T_("IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"));
-               label = _add_label(ad->pu, "popup/default", buf);
-               ad->warn_lb = label;
-               evas_object_hide(ad->warn_lb);
-
-               warn_ly = _add_layout(ad->pu, EDJ_THEME, GRP_VOLUME_SLIDER_WITH_WARNING);
-               elm_object_part_content_set(warn_ly, "elm.swallow.warn_label", ad->warn_lb);
-               ad->warn_ly = warn_ly;
-               evas_object_hide(ad->warn_ly);
-
-               /* Make a setting button */
-               bt = _add_button(ad->pu, "popup_button/default", S_("IDS_COM_BODY_SETTINGS"));
-               evas_object_smart_callback_add(bt, "clicked", _button_cb, ad);
-               elm_object_part_content_set(ad->pu, "button1", bt);
-               ad->bt = bt;
-
-               ret = syspopup_create(b, &handler, ad->win, ad);
-               retvm_if(ret < 0, -1, "Failed to create syspopup\n");
-
-               _handle_bundle(b, ad);
-
-               evas_object_show(ad->win);
-       }
-
-       return 0;
-}
-
-int _app_pause(struct appdata *ad)
-{
-       _D("%s\n", __func__);
-       if(ad->ug){
-               ug_destroy_all();
-               ad->ug = NULL;
-               ecore_x_netwm_window_type_set(elm_win_xwindow_get(ad->win), ECORE_X_WINDOW_TYPE_NOTIFICATION);
-               utilx_set_window_opaque_state(ecore_x_display_get(), elm_win_xwindow_get(ad->win), UTILX_OPAQUE_STATE_OFF);
-       }
-       _close_volume(ad);
-       return 0;
-}
diff --git a/src/_logic.h b/src/_logic.h
deleted file mode 100755 (executable)
index ca5732e..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- * 
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.tizenopensource.org/license
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __VOLUME_LOGIC_H__
-#define __VOLUME_LOGIC_H__
-
-#include "volume.h"
-#include <bundle.h>
-
-int _close_volume(void *data);
-int _app_create(struct appdata *ad);
-int _app_pause(struct appdata *ad);
-int _app_reset(bundle *b, void *data);
-Eina_Bool popup_timer_cb(void *data);
-Eina_Bool _unset_layout(void *data);
-int _lang_changed(void *data);
-
-#endif
-/* __VOLUME_LOGIC_H__ */
diff --git a/src/_sound.c b/src/_sound.c
deleted file mode 100755 (executable)
index 323fa32..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- * 
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.tizenopensource.org/license
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include <appcore-common.h>
-#include <mm_sound.h>
-#include <vconf.h>
-#include <svi.h>
-
-#include "volume.h"
-#include "_util_log.h"
-#include "_logic.h"
-
-#define STRBUF_SIZE 64
-#define PATHBUF_SIZE 256
-
-void _play_vib(int handle)
-{
-       svi_play_vib(handle, SVI_VIB_OPERATION_VIBRATION);
-}
-
-void _play_sound(int type, int handle)
-{
-       if (type == VOLUME_TYPE_MEDIA) {
-
-       } else {
-               svi_play_sound(handle, SVI_SND_TOUCH_TOUCH1);
-       }
-}
-
-int _init_svi(void *data)
-{
-       int ret, handle;
-
-       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 buf[PATHBUF_SIZE] = {0, };
-       char *img;
-       struct appdata *ad = (struct appdata *)data;
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-
-       vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &snd);
-       vconf_get_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vib);
-
-       if (val == 0) {
-               if (vib) {
-                       if (ad->type == VOLUME_TYPE_MEDIA) {
-                               _D("media and mute\n");
-                               img = "00_volume_icon_Mute.png";
-                       } else {
-                               _D("Not media and vib\n");
-                               img = "00_volume_icon_Vibrat.png";
-                               _play_vib(ad->sh);
-                       }
-               } else {
-                       _D("vib\n");
-                       img = "00_volume_icon_Mute.png";
-               }
-       } else {
-               _D("default volume\n");
-               img = "00_volume_icon.png";
-       }
-
-       if(!snd){
-               if(ad->type != VOLUME_TYPE_MEDIA){
-                       _D("Not media and mute\n");
-                       img = "00_volume_icon_Mute.png";
-               }
-       }
-
-
-       snprintf(buf, sizeof(buf), "%s/%s", IMAGEDIR, img);
-       if (ad->ic ) {
-               elm_icon_file_set(ad->ic, buf, NULL);
-       }
-       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 >= 13) {
-                               if(ad->flag_warning) return;
-                               ad->flag_warning = true;
-                               elm_object_content_unset(ad->pu);
-                               elm_object_part_content_set(ad->warn_ly, "elm.swallow.slider1", ad->sl);
-                               elm_object_content_set(ad->pu, ad->warn_ly);
-                               evas_object_show(ad->warn_ly);
-                               DEL_TIMER(ad->warntimer);
-                               ADD_TIMER(ad->warntimer, 3.0, _unset_layout, data);
-                       }
-                       else {
-                               ad->flag_warning = false;
-                               _unset_layout(data);
-                       }
-                       break;
-               default:
-                       ad->flag_warning = false;
-                       _unset_layout(data);
-                       break;
-       }
-}
-
-int _get_title(volume_type_t type, char *label, int size)
-{
-       char *text = NULL;
-
-       text = S_("IDS_COM_BODY_UNKNOWN");
-
-       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;
-}
-
-void _set_popup_title(void *data, int type, int device)
-{
-       char buf[STRBUF_SIZE] = {0, };
-       char name[STRBUF_SIZE] = {0, };
-       struct appdata *ad = (struct appdata *)data;
-       retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
-
-       _get_title(type, buf, sizeof(buf));
-
-       switch (device) {
-               case SYSTEM_AUDIO_ROUTE_PLAYBACK_DEVICE_EARPHONE:
-                       snprintf(name, sizeof(name), "%s (%s)", buf, T_("IDS_COM_OPT_HEADPHONES_ABB"));
-                       elm_object_part_text_set(ad->pu, "title,text", name);
-                       break;
-               default:
-                       elm_object_part_text_set(ad->pu, "title,text", buf);
-                       break;
-       }
-}
-
-int _get_step(int type)
-{
-       int ret, step;
-       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;
-       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->step = _get_step(ad->type);
-       mm_sound_volume_get_value(ad->type, (unsigned int*)(&val));
-       mm_sound_route_get_playing_device(&device);
-
-       _set_slider_value(ad, val);
-       _set_popup_title(ad, ad->type, device);
-       _set_device_warning(ad, val, device);
-       _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 2acde4e..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- * 
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.tizenopensource.org/license
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#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 5f49083..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- * 
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.tizenopensource.org/license
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include <Ecore.h>
-#include <Ecore_X.h>
-
-#include "volume.h"
-#include "_util_log.h"
-
-Evas_Object *_add_window(const char *name)
-{
-       Evas_Object *eo;
-       int w, h;
-       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);
-               evas_object_resize(eo, w, h);
-       }
-       return eo;
-}
-
-Evas_Object *_add_slider(Evas_Object *parent, int min, int max, int val)
-{
-       Evas_Object *sl;
-       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;
-       int r;
-
-       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;
-       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;
-       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;
-       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 0275a0d..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- * 
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.tizenopensource.org/license
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __VOLUME_UTIL_EFL_H__
-#define __VOLUME_UTIL_EFL_H__
-
-#include <Elementary.h>
-
-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/control.c b/src/control.c
new file mode 100755 (executable)
index 0000000..908330c
--- /dev/null
@@ -0,0 +1,847 @@
+/*
+ * 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 <efl_assist.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"
+
+#define VCONF_KEY_FMRADIO_RECORDING "memory/private/Sound/FMRadioRecording"
+
+int myterm(bundle *b, void *data);
+int mytimeout(bundle *b, void *data);
+
+syspopup_handler handler = {
+       .def_term_fn = myterm,
+       .def_timeout_fn = mytimeout
+};
+
+static struct _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_quickpanel;
+       Eina_Bool is_new;
+       Eina_Bool is_warning_visible;
+
+       int current_angle;
+       int viewport_width;
+       int viewport_height;
+
+       sound_type_e sound_type_at_show;
+} s_info = {
+       .volume_bundle = NULL,
+       .handler_qp_state = NULL,
+       .shape_timer = NULL,
+
+       .is_deleting = EINA_FALSE,
+       .is_launching = EINA_FALSE,
+       .is_quickpanel = EINA_FALSE,
+       .is_new = EINA_FALSE,
+       .is_warning_visible = EINA_FALSE,
+
+       .current_angle = 0,
+       .viewport_width = 0,
+       .viewport_height= 0,
+
+       .sound_type_at_show = SOUND_TYPE_RINGTONE,
+};
+
+static void _rotate_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static Eina_Bool _shape_cb(void *data);
+
+bundle* volume_control_reset_bundle_get(void)
+{
+       return s_info.volume_bundle;
+}
+
+Eina_Bool volume_control_is_deleting_get(void)
+{
+       return s_info.is_deleting;
+}
+
+Eina_Bool volume_control_is_launching_get(void)
+{
+       return s_info.is_launching;
+}
+
+int volume_control_current_angle_get(void)
+{
+       return s_info.current_angle;
+}
+
+sound_type_e volume_control_sound_type_at_show_get(void)
+{
+       return s_info.sound_type_at_show;
+}
+
+int volume_control_viewport_height_get()
+{
+       return s_info.viewport_height;
+}
+
+int volume_control_viewport_width_get()
+{
+       return s_info.viewport_width;
+}
+
+Eina_Bool volume_control_viewport_is_warning_visible()
+{
+    return s_info.is_warning_visible;
+}
+
+//int _cache_flush(void *data)
+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. */
+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 *win = volume_view_win_get();
+       ret_if(!win);
+
+       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;
+               s_info.current_angle = current_angle;
+               switch(current_angle){
+               case 90 :
+                       _D("show,landscape");
+                       elm_object_signal_emit(ly_outer, "show,landscape", "bg");
+                       if(s_info.is_warning_visible)
+                       {
+                               elm_object_signal_emit(ly_outer, "show_warning_l", "clipper");
+                       }
+                       break;
+               case 270 :
+                       _D("show,landscape");
+                       elm_object_signal_emit(ly_outer, "show,landscape", "bg");
+                       if(s_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(s_info.is_warning_visible)
+                       {
+                               elm_object_signal_emit(ly_outer, "show_warning", "clipper");
+                       }
+                       break;
+               }
+
+               volume_x_input_event_shape(win, s_info.is_warning_visible);
+       }
+}
+
+static void _control_window_rotation_set(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 _qp_state_check_cb(void *data, int type, void *event)
+{
+       retv_if(!event, ECORE_CALLBACK_PASS_ON);
+
+       Ecore_X_Event_Client_Message *ev = event;
+       if (ev->message_type == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE)
+       {
+               if (ev->data.l[0] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF)
+               {
+                       _D("quickpanel off state");
+                       s_info.is_quickpanel = EINA_FALSE;
+               }
+               else if (ev->data.l[0] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON)
+               {
+                       _D("quickpanel on state");
+                       s_info.is_quickpanel = EINA_TRUE;
+               }
+       }
+
+       return  ECORE_CALLBACK_PASS_ON;
+}
+
+static void _control_qp_state_handler_add(void)
+{
+       Ecore_Event_Handler *handler_qp_state = ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, _qp_state_check_cb, NULL);
+       s_info.handler_qp_state = handler_qp_state;
+}
+
+
+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 _get_vconf_idlelock
+int volume_control_vconf_idlelock_get(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_status_check(int *lock, sound_type_e *sound_type)
+{
+       *lock = volume_control_vconf_idlelock_get();
+       *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;
+}
+
+static Eina_Bool _idler_top_position_grab(void *data)
+{
+       volume_key_event_key_grab(-1, TOP_POSITION_GRAB);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void volume_control_event_shape(Eina_Bool is_warning_visible)
+{
+    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(!s_info.is_warning_visible)
+               {
+                       s_info.is_warning_visible = EINA_TRUE;
+
+                       if(s_info.current_angle == 90 || s_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_event_shape(EINA_TRUE);
+               }
+       }
+       else if(s_info.is_warning_visible)
+       {
+               s_info.is_warning_visible = EINA_FALSE;
+
+               if(s_info.current_angle == 90 || s_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_event_shape(EINA_FALSE);
+       }
+}
+
+Eina_Bool volume_control_show(void)
+{
+       int status = -1;
+       int lock = IDLELOCK_ON;
+       int lock_state = VCONFKEY_IDLE_UNLOCK;
+       int pw_type = 0;
+       bool is_running = false;
+       int ret = 0;
+       int sound_step = 0;
+       static Eina_Bool once = EINA_TRUE;
+       Evas_Object *win = NULL;
+       sound_type_e sound_type = 0;
+
+       retv_if(s_info.is_deleting, EINA_FALSE);
+
+       s_info.is_new = EINA_TRUE;
+
+       win = volume_view_win_get();
+       retv_if(!win, EINA_FALSE);
+
+       status = volume_control_status_check(&lock, &sound_type);
+       _D("status : %d", status);
+
+       if(vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &lock_state) < 0)
+       {
+               _E("Failed to get vconfkey : VCONFKEY_IDLE_LOCK_STATE");
+               return EINA_FALSE;
+       }
+
+       if(status == LOCK_AND_NOT_MEDIA || lock_state == VCONFKEY_IDLE_LAUNCHING_LOCK)
+       {
+               _D("Lock and Not Media");
+               if(evas_object_visible_get(win))
+               {
+                       if(VOLUME_ERROR_OK != volume_control_close())
+                       {
+                               _E("Failed to close volume");
+                       }
+
+                       if(VOLUME_ERROR_OK != volume_control_cache_flush())
+                       {
+                               _E("Failed to flush cache");
+                       }
+               }
+               return EINA_FALSE;
+       }
+       else if(status != LOCK_AND_NOT_MEDIA)
+       {
+               if(status == UNLOCK_STATUS)
+               {
+                       /* Show volume window */
+                       if(VOLUME_ERROR_OK != volume_view_window_show())
+                       {
+                               _E("Failed to show volume window");
+                       }
+
+                       /* register outer window event */
+                       if(VOLUME_ERROR_OK != volume_x_input_event_register())
+                       {
+                               _E("Failed to add x input event handler");
+                       }
+
+                       if(syspopup_has_popup(s_info.volume_bundle))
+                       {
+                               syspopup_reset(s_info.volume_bundle);
+                       }
+
+                       if(once)
+                       {
+                               ecore_idler_add(_idler_top_position_grab, NULL);
+                               once = EINA_FALSE;
+                       }
+               }
+
+               s_info.is_launching = EINA_TRUE;
+
+               int volume = volume_sound_sound_manager_volume_get(sound_type);
+               _D("volume : %d", volume);
+
+               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);
+
+               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");
+               }
+
+               /* Set Volume icon */
+               //@TODO: need to check
+               volume_view_volume_icon_set(sound_type, sound, vibration);
+
+               if(!s_info.shape_timer)
+               {
+                       s_info.shape_timer = ecore_timer_add(0.1, _shape_cb, NULL);
+               }
+               else
+               {
+                       ecore_timer_del(s_info.shape_timer);
+                       s_info.shape_timer = NULL;
+
+                       s_info.shape_timer = ecore_timer_add(0.1, _shape_cb, NULL);
+               }
+
+               return EINA_TRUE;
+       }
+
+       return EINA_FALSE;
+}
+
+//_close_volume(ad);
+volume_error_e volume_control_close(void)
+{
+       retv_if(volume_control_is_deleting_get(), VOLUME_ERROR_FAIL);
+
+       _D("Start closing volume");
+
+       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);
+
+       s_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");
+//             s_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);
+       }
+       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");
+       }
+
+       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");
+       }
+
+       s_info.is_deleting = EINA_FALSE;
+       s_info.is_launching = EINA_FALSE;
+
+       _D("End closing volume");
+
+       return 0;
+}
+
+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_close()) {
+                       _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");
+//             _close_volume(ad);
+//             _cache_flush(ad);
+       }
+}
+
+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)
+       {
+               const char *splash_path = vconf_get_str(VCONFKEY_IDLE_LOCK_BGSET);
+
+               if (splash_path)
+               {
+//                     show_lockscreen_splash(splash_path);
+               } else {
+                       _E("No background found");
+               }
+
+               if(VOLUME_ERROR_OK != volume_view_window_hide())
+               {
+                       _E("Failed to hide window");
+               }
+       }
+       else if(lock == VCONFKEY_IDLE_UNLOCK)
+       {
+//             hide_lockscreen_splash();
+       }
+}
+
+static void _notify_pm_lcdoff_cb(keynode_t * node, void *data)
+{
+       if(VOLUME_ERROR_OK != volume_control_close())
+       {
+               _E("Failed to close volume");
+       }
+
+       if(VOLUME_ERROR_OK != volume_control_cache_flush())
+       {
+               _E("Failed to flush cache");
+       }
+}
+
+void volume_control_vconfkey_register(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_vconfkey_unregister(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");
+       }
+}
+
+//int _app_pause(struct appdata *ad)
+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_close())
+               {
+                       _E("Failed to close volume");
+               }
+
+               if(VOLUME_ERROR_OK != volume_control_cache_flush())
+               {
+                       _E("Failed to flush cache");
+               }
+       }
+
+       return VOLUME_ERROR_OK;
+}
+
+int myterm(bundle *b, void *data)
+{
+       if(VOLUME_ERROR_OK != volume_control_close())
+       {
+               _E("Failed to close volume");
+       }
+       if(VOLUME_ERROR_OK != volume_control_cache_flush())
+       {
+               _E("Failed to flush cache");
+       }
+
+       return 0;
+}
+
+int mytimeout(bundle *b, void *data)
+{
+       return 0;
+}
+
+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;
+
+       static int once = EINA_TRUE;
+       if(once)
+       {
+               ret = syspopup_create(b, &handler, win, NULL);
+               retvm_if(ret < 0, VOLUME_ERROR_FAIL, "Failed to create syspopup");
+               s_info.volume_bundle = bundle_dup(b);
+               once = EINA_FALSE;
+       }
+
+       sound_type_e sound_type = volume_sound_sound_manager_type_get();
+       _D("sound type : %d", sound_type);
+
+       int volume = volume_sound_sound_manager_volume_get(sound_type);
+       _D("volume : %d", volume);
+
+       const char *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();
+               }
+       }
+
+       return VOLUME_ERROR_OK;
+}
+
+volume_error_e volume_control_initialize(void)
+{
+       _D("Volume control initialize");
+#if TBD
+       /* Use GL */
+       elm_config_preferred_engine_set("opengl_x11");
+#endif
+
+       /* 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;
+       }
+
+       ecore_x_window_size_get(ecore_x_window_root_first_get(), &(s_info.viewport_width), &(s_info.viewport_height));
+
+
+       /* Set available rotations */
+       _control_window_rotation_set(win);
+
+       /* Register vconfkey changed callback
+        * : VCONFKEY_STARTER_USE_VOLUME_KEY
+        * : VCONFKEY_IDLE_LOCK_STATE
+        * : VCONFKEY_LOCKSCREEN_SVIEW_STATE
+        * */
+       volume_control_vconfkey_register();
+
+       /* 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();
+
+       /* Add quick panel event handler */
+       _control_qp_state_handler_add();
+
+       /* Register volume changed callback */
+       volume_sound_mm_sound_init();
+
+       /* theme */
+       ea_theme_changeable_ui_enabled_set(EINA_TRUE);
+
+       return VOLUME_ERROR_OK;
+}
+
+void volume_control_deinitialize(void)
+{
+       /* Unregister vconfkey changed callback */
+       volume_control_vconfkey_unregister();
+
+       /* Unregister sound vconfkey changed callback */
+       volume_sound_vconfkey_unregister();
+}
+
+static Eina_Bool _shape_cb(void *data)
+{
+       LOGD("Mik");
+       volume_control_event_shape(s_info.is_warning_visible);
+       s_info.shape_timer = NULL;
+       return ECORE_CALLBACK_CANCEL;
+}
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..7955eca
--- /dev/null
@@ -0,0 +1,591 @@
+/*
+ * 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 "main.h"
+#include "_util_log.h"
+#include "_util_efl.h"
+#include "view.h"
+#include "control.h"
+#include "sound.h"
+#include "timer.h"
+
+#define VCONFKEY_ALARM_VOLUME_POPUP_ENABLE  "memory/alarm/volume_popup_enable"
+#define VOLUME_INPUT_WIN_NAME "volumekey-input-window"
+
+static struct _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;
+} s_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,
+};
+
+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 s_info.input_win;
+}
+
+Ecore_Event_Handler* volume_key_event_handler_volume_up_get(void)
+{
+       return s_info.handler_volume_up;
+}
+
+Ecore_Event_Handler* volume_key_event_handler_volume_down_get(void)
+{
+       return s_info.handler_volume_down;
+}
+
+Ecore_Event_Handler* volume_key_event_handler_qp_state_check(void)
+{
+       return s_info.handler_qp_state_check;
+}
+
+Eina_Bool volume_key_event_is_pressing_get(void)
+{
+       return s_info.is_pressing;
+}
+
+int volume_key_event_count_grabed_get(void)
+{
+       return s_info.count_grabed;
+}
+
+void volume_key_event_count_grabed_set(int val)
+{
+       s_info.count_grabed = val;
+}
+
+//int _grab_key_new
+//volume_error_e volume_key_event_key_grab(Ecore_X_Window _xwin, int grab_mode)
+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;
+
+       s_info.count_grabed++;
+       _D("count_grabed : %d", s_info.count_grabed);
+
+       disp = ecore_x_display_get();
+       retvm_if(disp == NULL, VOLUME_ERROR_FAIL, "Failed to get display");
+
+       /* Check TOP_POSITION_GRAB */
+       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;
+}
+
+static volume_error_e _mute_key_press()
+{
+       int lastval = -1;
+
+       volume_control_show();
+
+       sound_type_e sound_type = volume_control_sound_type_at_show_get();
+       _D("sound type at show : %d", sound_type);
+
+       if(sound_type == SOUND_TYPE_MEDIA){
+               if(s_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);
+
+                       s_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;
+                       }
+                       s_info.is_mute = EINA_TRUE;
+                       return VOLUME_ERROR_OK;
+               } else {
+                       _D("toggle the mute key to normal in media. last value in media : %d", s_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;
+                       }
+                       s_info.is_mute = EINA_FALSE;
+                       return VOLUME_ERROR_OK;
+               }
+       } else {
+               int lock = volume_control_vconf_idlelock_get();
+               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)
+{
+       _D("Volume Up Key Pressed");
+       s_info.is_mute = EINA_FALSE;
+
+       int sound_step = volume_sound_step_get();
+       _D("sound step : %d", sound_step);
+
+       int sound_level = volume_sound_level_get(sound_type);
+       retv_if(sound_level == -1, VOLUME_ERROR_FAIL);
+       _D("sound level : %d", sound_level);
+
+       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. */
+                       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_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)
+{
+       s_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);
+                       }
+               }
+       }
+       /* 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;
+       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_status_check(&lock, &sound_type);
+       _D("status: %d, lock: %d, sound type : %d", status, lock, sound_type);
+
+       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();
+
+       s_info.is_pressing = EINA_TRUE;
+
+       volume_timer_del(TYPE_TIMER_POPUP);
+
+       sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound);
+
+       if (!strncmp(ev->keyname, KEY_VOLUMEUP, strlen(KEY_VOLUMEUP)))
+       {
+               if(VOLUME_ERROR_OK != _volume_up_key_press(sound_type, sound))
+               {
+                       _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))
+               {
+                       _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);
+
+       s_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_close())
+               {
+                       _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;
+}
+
+void volume_key_event_handler_add(void)
+{
+       if(!s_info.handler_volume_up)
+       {
+               s_info.handler_volume_up = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _key_release_cb, NULL);
+       }
+
+       if(!s_info.handler_volume_down)
+       {
+               s_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(s_info.handler_volume_up == NULL);
+       ecore_event_handler_del(s_info.handler_volume_up);
+       s_info.handler_volume_up= NULL;
+
+       ret_if(s_info.handler_volume_down == NULL);
+       ecore_event_handler_del(s_info.handler_volume_down);
+       s_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);
+
+       s_info.input_win = input_win;
+
+       return volume_key_event_key_grab(input_win, SHARED_GRAB);
+}
diff --git a/src/main.c b/src/main.c
new file mode 100755 (executable)
index 0000000..4bf402f
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ * 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 "main.h"
+#include "_util_log.h"
+#include "_util_efl.h"
+#include "view.h"
+#include "control.h"
+
+static bool app_create(void *user_data)
+{
+       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 app_terminate(void *user_data)
+{
+       /* Deinitialize feedback */
+       feedback_deinitialize();
+
+       /* Deinitialize volume */
+       volume_control_deinitialize();
+}
+
+static void app_pause(void *user_data)
+{
+       if(VOLUME_ERROR_OK != volume_control_pause())
+       {
+               _E("Failed to pause volume");
+       }
+}
+
+static void app_resume(void *user_data)
+{
+}
+
+static void app_control(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 lang_changed(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);
+}
+
+int main(int argc, char *argv[])
+{
+       int ret = 0;
+
+       ui_app_lifecycle_callback_s lifecycle_callback = {0,};
+       app_event_handler_h handlers[5] = {NULL, };
+
+       lifecycle_callback.create = app_create;
+       lifecycle_callback.terminate = app_terminate;
+       lifecycle_callback.pause = app_pause;
+       lifecycle_callback.resume = app_resume;
+       lifecycle_callback.app_control = app_control;
+
+       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, lang_changed, 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;
+}
+
diff --git a/src/sound.c b/src/sound.c
new file mode 100755 (executable)
index 0000000..5ccadb8
--- /dev/null
@@ -0,0 +1,387 @@
+/*
+ * 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"
+
+static struct _s_info {
+       int sound_step;
+       int sound_status;
+       int vibration_status;
+       Eina_Bool is_vibration;
+} s_info = {
+       .sound_step = 0,
+       .sound_status = 0,
+       .vibration_status = 0,
+       .is_vibration = EINA_FALSE,
+};
+
+int volume_sound_step_get(void)
+{
+       return s_info.sound_step;
+}
+
+int volume_sound_sound_status_get(void)
+{
+       return s_info.sound_status;
+}
+
+int volume_sound_vibration_status_get(void)
+{
+       return s_info.vibration_status;
+}
+
+Eina_Bool volume_sound_is_vibration_get(void)
+{
+       return s_info.is_vibration;
+}
+
+void volume_sound_is_vibration_set(Eina_Bool val)
+{
+       s_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(s_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");
+       }
+
+       s_info.is_vibration = EINA_TRUE;
+}
+
+void volume_sound_play(void)
+{
+       sound_type_e sound_type = volume_control_sound_type_at_show_get();
+       _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;
+}
+
+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;
+}
+
+//void _play_setting_sound(void)
+void volume_sound_setting_sound_play(void)
+{
+       int snd_enabled = _setting_sound_enabled();
+       _D("snd_enabled(%d)", snd_enabled);
+
+       if(snd_enabled == 1)
+       {
+               //feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TOUCH_TAP);
+               volume_sound_feedback_play(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TOUCH_TAP);
+       }
+}
+
+int volume_sound_sound_manager_step_get(sound_type_e type)
+{
+       int ret = -1, step = 0;
+
+       ret = sound_manager_get_max_volume(type, &step);
+       retvm_if(ret < 0, -1, "Failed to get step");
+
+       s_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 _get_volume_type
+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);
+       switch (ret) {
+       case SOUND_MANAGER_ERROR_NONE:
+               break;
+       case SOUND_MANAGER_ERROR_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)
+{
+       _D("type : %d, volume : %d", type, volume);
+       if(type == volume_control_sound_type_at_show_get()){
+               _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);
+               }
+               if(VOLUME_ERROR_OK != volume_view_slider_value_set(volume))
+               {
+                       _E("Failed to set slider value");
+               }
+       }
+}
+
+//int _init_mm_sound(void *data);
+void volume_sound_mm_sound_init(void)
+{
+       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 _get_sound_level(sound_type_e type, int *val)
+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 _set_sound_level(sound_type_e type, int 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_sound_type_at_show_get();
+       _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();
+               }
+       }
+}
+
+static void _sound_status_changed_cb(keynode_t *key, void *data)
+{
+       const char *keyname = vconf_keynode_get_name(key);
+       ret_if(!keyname);
+       _D("keyname : %s", keyname);
+
+       sound_type_e sound_type = volume_control_sound_type_at_show_get();
+       _D("sound type at show : %d", sound_type);
+
+       int sound = volume_sound_vconf_status_get(TYPE_VCONF_SOUND_STATUS);
+       _D("sound status : %d", sound);
+       s_info.sound_status = sound;
+
+       int vibration = volume_sound_vconf_status_get(TYPE_VCONF_VIBRATION_STATUS);
+       _D("vibration : %d", vibration);
+       s_info.vibration_status = vibration;
+
+       if(sound == 0 && vibration == 1)
+       {
+               _D("vibration mode");
+       } else if(sound == 1 && vibration == 0)
+       {
+               _D("sound mode");
+               s_info.is_vibration = EINA_FALSE;
+       } else if(sound == 0 && vibration == 0)
+       {
+               _D("mute mode");
+               s_info.is_vibration = EINA_FALSE;
+       }
+
+       volume_view_volume_icon_set(sound_type, sound, vibration);
+}
+
+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");
+       }
+}
diff --git a/src/timer.c b/src/timer.c
new file mode 100755 (executable)
index 0000000..1854a69
--- /dev/null
@@ -0,0 +1,323 @@
+/*
+ * 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 : %d\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 : %d\n", x);\
+
+
+static struct _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 */
+} s_info = {
+       .popup_timer = NULL,
+       .slider_timer = NULL,
+       .su_timer = NULL,
+       .sd_timer = NULL,
+       .lu_timer = NULL,
+       .ld_timer = NULL,
+};
+
+Ecore_Timer *volume_timer_popup_timer_get(void)
+{
+       return s_info.popup_timer;
+}
+
+Ecore_Timer *volume_timer_slider_timer_get(void)
+{
+       return s_info.slider_timer;
+}
+
+Ecore_Timer *volume_timer_su_timer_get(void)
+{
+       return s_info.su_timer;
+}
+
+Ecore_Timer *volume_timer_sd_timer_get(void)
+{
+       return s_info.sd_timer;
+}
+
+static Eina_Bool _timer_popup_cb(void *data)
+{
+       if(VOLUME_ERROR_OK != volume_control_close())
+       {
+               _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) {
+               s_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_sound_sound_manager_type_get();
+       sound_type_e sound_type = volume_control_sound_type_at_show_get();
+       _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 0
+               if(VOLUME_ERROR_OK != volume_view_icon_set()) {
+                       _E("Failed to set icon");
+               }
+#endif
+       }
+       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)
+{
+       Evas_Object *win = volume_view_win_get();
+       if(!win)
+       {
+               _E("Window is NULL");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       sound_type_e sound_type = volume_control_sound_type_at_show_get();
+       _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(s_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);
+       }
+
+       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_sound_type_at_show_get();
+       _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(s_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;
+}
+
+void volume_timer_add(double time, volume_timer_type type)
+{
+       if(type == TYPE_TIMER_POPUP)
+       {
+               ADD_TIMER(s_info.popup_timer, time, _timer_popup_cb, NULL);
+       }
+       else if(type == TYPE_TIMER_SLIDER)
+       {
+               ADD_TIMER(s_info.slider_timer, time, _timer_slider_cb, NULL);
+       }
+       else if(type == TYPE_TIMER_SD)
+       {
+               ADD_TIMER(s_info.sd_timer, time, _timer_short_down_cb, NULL);
+       }
+       else if(type == TYPE_TIMER_SU)
+       {
+               ADD_TIMER(s_info.su_timer, time, _timer_short_up_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(s_info.popup_timer);
+       }
+       else if(type == TYPE_TIMER_SLIDER)
+       {
+               DEL_TIMER(s_info.slider_timer);
+       }
+       else if(type == TYPE_TIMER_SD)
+       {
+               DEL_TIMER(s_info.sd_timer);
+       }
+       else if(type == TYPE_TIMER_SU)
+       {
+               DEL_TIMER(s_info.su_timer);
+       }
+       else
+       {
+               _E("Failed to get type : type error(%d)", type);
+               return;
+       }
+}
diff --git a/src/view.c b/src/view.c
new file mode 100755 (executable)
index 0000000..83007e9
--- /dev/null
@@ -0,0 +1,702 @@
+/*
+ * 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 "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"
+
+static struct _s_info {
+       Evas_Object *win;
+       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;
+} s_info = {
+       .win = 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);
+
+Evas_Object* volume_view_win_get(void)
+{
+       return s_info.win;
+}
+
+Evas_Object* volume_view_outer_layout_get(void)
+{
+       return s_info.ly_outer;
+}
+
+Evas_Object* volume_view_icon_volume_get(void)
+{
+       return s_info.icon_volume;
+}
+
+Evas_Object* volume_view_icon_setting_get(void)
+{
+       return s_info.icon_setting;
+}
+
+Evas_Object* volume_view_slider_get(void)
+{
+       return s_info.slider;
+}
+
+Eina_Bool volume_view_is_registered_callback_get(void)
+{
+       return s_info.is_registered_callback;
+}
+
+Eina_Bool volume_view_is_slider_touching_get(void)
+{
+       return s_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_sound_type_at_show_get();
+       _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;
+       }
+}
+
+static void _slider_start_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       s_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_sound_type_at_show_get();
+       _D("sound type at show : %d", sound_type);
+
+       val = elm_slider_value_get(s_info.slider);
+       val += 0.5;
+       _D("slider value : %d", val);
+
+       if (s_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(!s_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)
+{
+       s_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(s_info.win);
+}
+
+//int _set_slider_value(void *data, int val)
+volume_error_e volume_view_slider_value_set(int val)
+{
+       retv_if(s_info.is_slider_touching, VOLUME_ERROR_FAIL);
+       retv_if(val<0, VOLUME_ERROR_FAIL);
+
+       elm_slider_value_set(s_info.slider, val);
+
+       return VOLUME_ERROR_OK;
+}
+
+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(s_info.win))
+       {
+               volume_timer_del(TYPE_TIMER_POPUP);
+               if(ecore_x_e_illume_quickpanel_state_get(ecore_x_e_illume_zone_get(elm_win_xwindow_get(s_info.win))) != ECORE_X_ILLUME_QUICKPANEL_STATE_OFF)
+               {
+                       _D("Quickpanel is hide");
+                       ecore_x_e_illume_quickpanel_state_send(ecore_x_e_illume_zone_get(elm_win_xwindow_get(s_info.win)), ECORE_X_ILLUME_QUICKPANEL_STATE_OFF);
+               }
+
+               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);
+       }
+}
+
+void volume_view_volume_icon_set(sound_type_e sound_type, int sound, int vibration)
+{
+       char *img = NULL;
+
+       if(sound == -1 || vibration == -1)
+       {
+               img = IMG_VOLUME_ICON_MUTE;
+               _D("img : %s", img);
+               elm_image_file_set(s_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:
+               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(s_info.icon_volume, EDJ_APP, img);
+}
+
+void volume_view_setting_icon_set(const char *file)
+{
+       ret_if(!file);
+
+       Evas_Object *icon_setting = s_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(s_info.is_registered_callback);
+
+       Evas_Object *icon_setting = s_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);
+
+       s_info.is_registered_callback = EINA_TRUE;
+}
+
+void volume_view_setting_icon_callback_del(void)
+{
+       _D("Setting callback del");
+       ret_if(!s_info.is_registered_callback);
+
+       Evas_Object *icon_setting = s_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);
+
+       s_info.is_registered_callback = EINA_FALSE;
+}
+
+static Evas_Object* _setting_icon_make()
+{
+       Evas_Object *icon_setting = elm_icon_add(s_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);
+
+       s_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(s_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;
+}
+
+Evas_Object *add_slider(Evas_Object *parent, int min, int max, int val)
+{
+       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;
+}
+
+static Evas_Object* _slider_make()
+{
+       sound_type_e sound_type = volume_control_sound_type_at_show_get();
+       _D("sound type at show : %d", sound_type);
+
+       int sound_step = volume_sound_sound_manager_step_get(sound_type);
+       _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(s_info.ly_outer, 0, sound_step, sound_val);
+       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;
+}
+
+
+static void _safety_warning_text_load()
+{
+       elm_object_domain_translatable_part_text_set(s_info.ly_outer, "warning_rect", "org.tizen.volume", "IDS_COM_POP_TO_LOWER_YOUR_RISK_OF_HEARING_DAMAGE_DO_NOT_LISTEN_AT_HIGH_VOLUMES_FOR_LONG_PERIODS");
+       elm_object_part_text_translatable_set(s_info.ly_outer, "warning_rect", EINA_TRUE);
+       if (!elm_object_part_text_get(s_info.ly_outer, "warning_rect"))
+       {
+               _E("Failed to set warning text");
+               return;
+       }
+}
+
+volume_error_e volume_view_window_show(void)
+{
+       evas_object_show(s_info.win);
+       elm_object_signal_emit(s_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(s_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);
+       s_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);
+       s_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);
+       s_info.icon_volume = icon_volume;
+
+       /* make slider */
+       Evas_Object *slider = _slider_make();
+       retv_if(!slider, VOLUME_ERROR_FAIL);
+       s_info.slider = slider;
+       elm_object_part_content_set(ly_outer, "sw.slider", slider);
+
+       _safety_warning_text_load();
+
+       return VOLUME_ERROR_OK;
+}
+
+Evas_Object *add_volume_window(const char *name)
+{
+       Evas_Object *eo = NULL;
+       int w = -1, h = -1;
+
+       eo = elm_win_add(NULL, name, ELM_WIN_NOTIFICATION);
+       retv_if(!eo, NULL);
+
+       elm_win_title_set(eo, name);
+       elm_win_borderless_set(eo, EINA_TRUE);
+       elm_win_alpha_set(eo, EINA_TRUE);
+       elm_win_role_set(eo, "no-dim");
+
+       ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+       if(w == -1 || h == -1)
+       {
+               _E("ecore_x_window_size_get() is failed\n");
+               return NULL;
+       }
+
+       return eo;
+}
+
+Evas_Object *volume_view_window_create(void)
+{
+       Evas_Object *win = add_volume_window(PACKAGE);
+       retv_if(!win, NULL);
+
+       s_info.win = win;
+
+       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) { // play 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(s_info.lockscreen_splash)
+       {
+               _E("There is remain fake_bg : remove old one");
+               evas_object_del(s_info.lockscreen_splash);
+               s_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");
+
+       s_info.lockscreen_splash = win_splash;
+
+       return win_splash;
+}
+
+volume_error_e hide_lockscreen_splash(void)
+{
+       _D(" ");
+
+       if (!s_info.lockscreen_splash) {
+               _E("No splash window found");
+               return VOLUME_ERROR_FAIL;
+       }
+
+       evas_object_del(s_info.lockscreen_splash);
+       s_info.lockscreen_splash = NULL;
+       _D("Splash window closed");
+
+       return VOLUME_ERROR_OK;
+}
diff --git a/src/volume.c b/src/volume.c
deleted file mode 100755 (executable)
index 13e738b..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- * 
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.tizenopensource.org/license
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include <stdio.h>
-
-#include "volume.h"
-#include "_util_log.h"
-#include "_util_efl.h"
-#include "_logic.h"
-
-struct text_part {
-       char *part;
-       char *msgid;
-};
-
-static int lang_changed(void *data)
-{
-       return _lang_changed(data);
-}
-
-static int app_create(void *data)
-{
-       struct appdata *ad = data;
-
-       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
-
-       _app_create(ad);
-
-       lang_changed(ad);
-
-       /* add system event callback */
-       appcore_set_event_callback(APPCORE_EVENT_LANG_CHANGE,
-                       lang_changed, ad);
-
-       /* appcore measure time example */
-       printf("from AUL to %s(): %d msec\n", __func__,
-                       appcore_measure_time_from("APP_START_TIME"));
-
-       appcore_measure_start();
-       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)
-{
-       struct appdata *ad = data;
-
-       if (ad->flag_launching == EINA_TRUE) {
-               return 0;
-       }
-       ad->flag_launching = EINA_TRUE;
-
-       _app_reset(b, data);
-
-       /* appcore measure time example */
-       printf("from AUL to %s(): %d msec\n", __func__,
-                       appcore_measure_time_from("APP_START_TIME"));
-       printf("from create to %s(): %d msec\n", __func__,
-                       appcore_measure_time());
-
-       if (ad->win)
-               elm_win_activate(ad->win);
-
-       ad->flag_launching = EINA_FALSE;
-
-       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 dbdb578..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- * 
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.tizenopensource.org/license
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#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>
-
-#if !defined(PACKAGE)
-#  define PACKAGE "volume"
-#endif
-
-#if !defined(RESDIR)
-#  define RESDIR "/opt/apps/org.tizen.volume/res"
-#endif
-
-#if !defined(LOCALEDIR)
-#  define LOCALEDIR RESDIR"/locale"
-#endif
-
-#if !defined(EDJDIR)
-#  define EDJDIR RESDIR"/edje"
-#endif
-
-#define EDJ_FILE EDJDIR"/"PACKAGE".edj"
-#define GRP_MAIN "main"
-#define EDJ_THEME EDJDIR"/volume_popup.edj"
-#define GRP_VOLUME_SLIDER "popup_slider_style"
-#define GRP_VOLUME_SLIDER_WITH_WARNING "popup_slider_text_style_with_warn_label"
-
-#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;\
-       }
-
-struct appdata
-{
-       Evas_Object *win, *pu, *bt, *sl, *ic, *warn_lb, *warn_ly;
-
-       Ecore_Timer *ptimer;
-       Ecore_Timer *stimer;    /* slider timer */
-       Ecore_Timer *sutimer, *sdtimer, *lutimer, *ldtimer;     /* long press */
-       Ecore_Timer *warntimer; /* warning message timer */
-       volume_type_t type;
-       int step;
-       int before_mute[32];
-
-       /* ug handler */
-       ui_gadget_h ug;
-
-       /* add more variables here */
-       int sh; /* svi handle */
-       int flag_pressing;      /* to set hard key press */
-       int flag_touching;
-       int flag_launching;     /* to block double launching by double click */
-       int flag_deleting;
-       int flag_warning;       /* set device warning flag */
-};
-
-#endif /* __VOLUME_H__ */
-
diff --git a/src/x_event.c b/src/x_event.c
new file mode 100755 (executable)
index 0000000..45d3774
--- /dev/null
@@ -0,0 +1,248 @@
+/*
+ * 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"
+
+static struct _s_info {
+       Ecore_Event_Handler *event_outer_touch_handler;
+#if 0
+       Ecore_Event_Handler *x_mouse_down_handler;
+       Ecore_Event_Handler *x_mouse_up_handler;
+       Ecore_Event_Handler *x_mouse_move_handler;
+       Ecore_Event_Handler *x_mouse_in_handler;
+       Ecore_Event_Handler *x_mouse_out_handler;
+       Ecore_Event_Handler *x_win_visibility_change_handler;
+
+       Eina_Bool is_down;
+       Eina_Bool is_moving;
+#endif
+       Eina_Bool is_first_touch;
+} s_info = {
+       .event_outer_touch_handler = NULL,
+#if 0
+       .x_mouse_down_handler = NULL,
+       .x_mouse_up_handler = NULL,
+       .x_mouse_move_handler = NULL,
+       .x_mouse_in_handler = NULL,
+       .x_mouse_out_handler = NULL,
+       .x_win_visibility_change_handler = NULL,
+
+       .is_down = EINA_FALSE,
+       .is_moving = EINA_FALSE,
+#endif
+       .is_first_touch = EINA_TRUE,
+};
+
+static void _x_touch_check(int cur_x, int cur_y)
+{
+       int current_angle = volume_control_current_angle_get();
+
+       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);
+
+       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_close())
+                       {
+                               _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_viewport_width_get() - 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_close())
+                       {
+                               _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_close())
+                       {
+                               _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(s_info.is_first_touch == EINA_TRUE)
+       {
+               s_info.is_first_touch = EINA_FALSE;
+               return ECORE_CALLBACK_DONE;
+       }
+       s_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;
+}
+
+void volume_x_input_event_shape(Evas_Object *win, Eina_Bool is_warning_visible)
+{
+       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_current_angle_get();
+
+       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);
+
+       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_viewport_width_get()-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;
+    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(s_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);
+
+               s_info.event_outer_touch_handler = ecore_event_handler_add(ECORE_X_EVENT_GENERIC, (Ecore_Event_Handler_Cb)_event_handler_cb, NULL);
+
+               s_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(s_info.event_outer_touch_handler == NULL, VOLUME_ERROR_FAIL);
+
+       ecore_event_handler_del(s_info.event_outer_touch_handler);
+       s_info.event_outer_touch_handler = NULL;
+
+       return VOLUME_ERROR_OK;
+}